tiles = [ [false, false, false, false, false], [false, true, true, false, false], [false, true, true, true, false], [false, true, true, true, false], [false, false, :path, :path, false], ] IMICRTS::Entity.define_entity(:refinery, :building, 1_400, 200, "Generates credits", tiles) do |entity| entity.has(:building) entity.radius = 44 entity.max_health = 100.0 entity.body_image = "buildings/refinery/refinery.png" entity.shell_image = "buildings/refinery/refinery_shell.png" entity.overlay_image = "buildings/refinery/refinery_overlay.png" position = entity.position.clone position.z = IMICRTS::ZOrder::OVERLAY p1 = position.clone p1.x += 2 p1.y += 12 entity.particle_emitters << IMICRTS::SmokeEmitter.new(position: p1, emitting: false) entity.on_tick do if entity.component(:building).data.state == :idle entity.particle_emitters.each do |emitter| emitter.emitting = true end end end end