def try_transform_miner(world, entity, transform):
    new_entity = transform(world, entity)
    if entity != new_entity:
        remove_entity(world, entity)
        worldmodel.add_entity(world, new_entity)
        schedule_animation(world, new_entity)

    return new_entity
Пример #2
0
def try_transform_miner(world, entity, transform):
    new_entity = transform(world, entity)
    if entity != new_entity:
        clear_pending_actions(world, entity)
        worldmodel.remove_entity_at(world, entity.get_position())
        worldmodel.add_entity(world, new_entity)
        schedule_animation(world, new_entity)

    return new_entity
Пример #3
0
def try_transform_miner(world, entity, transform):
   new_entity = transform(world, entity)
   if entity != new_entity:
      clear_pending_actions(world, entity)
      worldmodel.remove_entity_at(world, entity.get_position())
      worldmodel.add_entity(world, new_entity)
      schedule_animation(world, new_entity)

   return new_entity
Пример #4
0
   def action(current_ticks):
      entity.remove_pending_action(action)
      blob = create_blob(world, entity.get_name() + " -- blob",
         entity.get_position(),
         entity.get_rate() // BLOB_RATE_SCALE,
         current_ticks, i_store)

      remove_entity(world, entity)
      worldmodel.add_entity(world, blob)

      return [blob.get_position()]
Пример #5
0
    def action(current_ticks):
        entity.remove_pending_action(action)
        blob = create_blob(world,
                           entity.get_name() + " -- blob",
                           entity.get_position(),
                           entity.get_rate() // BLOB_RATE_SCALE, current_ticks,
                           i_store)

        remove_entity(world, entity)
        worldmodel.add_entity(world, blob)

        return [blob.get_position()]
Пример #6
0
    def action(current_ticks):
        entity.remove_pending_action(action)

        entity_pt = entity.get_position()
        vein = worldmodel.find_nearest(world, entity_pt, entities.Vein)
        (tiles, found) = blob_to_vein(world, entity, vein)

        next_time = current_ticks + entity.get_rate()
        if found:
            quake = create_quake(world, tiles[0], current_ticks, i_store)
            worldmodel.add_entity(world, quake)
            next_time = current_ticks + entity.get_rate() * 2

        schedule_action(world, entity,
                        create_ore_blob_action(world, entity, i_store),
                        next_time)

        return tiles
Пример #7
0
   def action(current_ticks):
      entity.remove_pending_action(action)

      open_pt = find_open_around(world, entity.get_position(),
         entity.get_resource_distance())
      if open_pt:
         ore = create_ore(world,
            "ore - " + entity.get_name() + " - " + str(current_ticks),
            open_pt, current_ticks, i_store)
         worldmodel.add_entity(world, ore)
         tiles = [open_pt]
      else:
         tiles = []

      schedule_action(world, entity,
         create_vein_action(world, entity, i_store),
         current_ticks + entity.get_rate())
      return tiles
Пример #8
0
   def action(current_ticks):
      entity.remove_pending_action(action)

      entity_pt = entity.get_position()
      vein = worldmodel.find_nearest(world, entity_pt, entities.Vein)
      (tiles, found) = blob_to_vein(world, entity, vein)

      next_time = current_ticks + entity.get_rate()
      if found:
         quake = create_quake(world, tiles[0], current_ticks, i_store)
         worldmodel.add_entity(world, quake)
         next_time = current_ticks + entity.get_rate() * 2

      schedule_action(world, entity,
         create_ore_blob_action(world, entity, i_store),
         next_time)

      return tiles
Пример #9
0
    def action(current_ticks):
        entities.remove_pending_action(entity, action)

        open_pt = find_open_around(world, entities.get_position(entity),
                                   entities.get_resource_distance(entity))
        if open_pt:
            ore = create_ore(
                world, "ore - " + entities.get_name(entity) + " - " +
                str(current_ticks), open_pt, current_ticks, i_store)
            worldmodel.add_entity(world, ore)
            tiles = [open_pt]
        else:
            tiles = []

        schedule_action(world, entity,
                        create_vein_action(world, entity, i_store),
                        current_ticks + entities.get_rate(entity))
        return tiles
Пример #10
0
def handle_mouse_button(view, world, event, entity_select, i_store):
   mouse_pt = mouse_to_tile(event.pos, view.tile_width, view.tile_height)
   tile_view_pt = worldview.viewport_to_world(view.viewport, mouse_pt)
   if event.button == mouse_buttons.LEFT and entity_select:
      if is_background_tile(entity_select):
         worldmodel.set_background(world, tile_view_pt,
            entities.Background(entity_select,
               image_store.get_images(i_store, entity_select)))
         return [tile_view_pt]
      else:
         new_entity = create_new_entity(tile_view_pt, entity_select, i_store)
         if new_entity:
            worldmodel.remove_entity_at(world, tile_view_pt)
            worldmodel.add_entity(world, new_entity)
            return [tile_view_pt]
   elif event.button == mouse_buttons.RIGHT:
      worldmodel.remove_entity_at(world, tile_view_pt)
      return [tile_view_pt]
   return []
Пример #11
0
def handle_mouse_button(view, world, event, entity_select, i_store):
   mouse_pt = mouse_to_tile(event.pos, view.tile_width, view.tile_height)
   tile_view_pt = worldview.viewport_to_world(view.viewport, mouse_pt)
   if event.button == mouse_buttons.LEFT and entity_select:
      if is_background_tile(entity_select):
         worldmodel.set_background(world, tile_view_pt,
            entities.Background(entity_select,
               image_store.get_images(i_store, entity_select)))
         return [tile_view_pt]
      else:
         new_entity = create_new_entity(tile_view_pt, entity_select, i_store)
         if new_entity:
            worldmodel.remove_entity_at(world, tile_view_pt)
            worldmodel.add_entity(world, new_entity)
            return [tile_view_pt]
   elif event.button == mouse_buttons.RIGHT:
      worldmodel.remove_entity_at(world, tile_view_pt)
      return [tile_view_pt]

   return []
Пример #12
0
def add_entity(world, properties, i_store, run):
    new_entity = create_from_properties(properties, i_store)
    if new_entity:
        worldmodel.add_entity(world, new_entity)
        if run:
            schedule_entity(world, new_entity, i_store)
Пример #13
0
def add_entity(world, properties, i_store, run):
   new_entity = create_from_properties(properties, i_store)
   if new_entity:
      worldmodel.add_entity(world, new_entity)
      if run:
         schedule_entity(world, new_entity, i_store)