Give Connection some use, added magic comment to i-mic-rts.rb

This commit is contained in:
2019-10-09 20:43:14 -05:00
parent d6615872ba
commit e67325e831
3 changed files with 22 additions and 2 deletions

2
i-mic-rts.rb Normal file → Executable file
View File

@@ -1,3 +1,5 @@
#!/usr/bin/env ruby
begin
require_relative "../cyberarm_engine/lib/cyberarm_engine"
rescue LoadError

View File

@@ -1,9 +1,23 @@
class IMICRTS
class Connection
def initialize(*args)
@pending_orders = []
end
def add_order(order)
@pending_orders.push(order)
end
def update
data = @pending_orders.sort_by { |order| order.tick_id }.map do |order|
# Order serialized size in bytes + serialized order data
[order.serialized_order.length].pack("n") + order.serialized_order
end.join
# p data if data.length > 0
@pending_orders.clear
end
end
end

View File

@@ -61,7 +61,9 @@ class IMICRTS
if order = Order.get(order_id)
struct = order.struct(args)
player(struct.player_id).orders.push(Player::ScheduledOrder.new( order_id, @current_tick + 1, order.serialize(struct, self) ))
scheduled_order = Player::ScheduledOrder.new( order_id, @current_tick + 1, order.serialize(struct, self) )
@connection.add_order(scheduled_order)
player(struct.player_id).orders.push(scheduled_order)
else
raise "Undefined order: #{Order.order_name(order_id)}"
end
@@ -73,7 +75,9 @@ class IMICRTS
pp Order.order_name(order_id)
player(struct.player_id).orders.push(Player::ScheduledOrder.new( order_id, @current_tick + 2, order.serialize(struct, self) ))
scheduled_order = Player::ScheduledOrder.new( order_id, @current_tick + 2, order.serialize(struct, self) )
@connection.add_order(scheduled_order)
player(struct.player_id).orders.push(scheduled_order)
else
raise "Undefined order: #{Order.order_name(order_id)}"
end