openra 0.0.3 → 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 62b93a256a360d12ed36a4b50207648cb78f0db6
4
- data.tar.gz: 2cd510fb3f3bb34916f1ecc278f3dea352ed31a6
3
+ metadata.gz: e029e23b233d065443fef36c02df47517ab18155
4
+ data.tar.gz: c73247c0487c8316dee554b8d9b17feec9920102
5
5
  SHA512:
6
- metadata.gz: 9d378e1942e96d258d4d96228812435a9404aab7301f7b40e0426167745acb2755c04b6a3c4e09474f04fbec7f8abc2c1fd9d05107995472776ff87ab9137c88
7
- data.tar.gz: b62c614956326db37a276fdd845264d2bd30ed8babd4c126442a6afd187409f2e54845007c2691af1c0bbfb1c7f907d5f28bc343341e357e90d544e7f552895c
6
+ metadata.gz: fc2a499388e8e4c19dc8affb7783cdb3dfc85de7591e6b760ccecd8921b3cf42b0ece3b2206da6e901659ba1dcffc795f7dfc22d50fa192b6145c81bd6652572
7
+ data.tar.gz: ddbd900f7f584d34fa8b5076013f6ec98479d63808a6ed3d2b6b1a88b22f74ed3e1c55127683a53906cc6e5bbd6e32ae34d2e30d10dbc9f5dff3dec68117d2fd
@@ -75,7 +75,8 @@ module Openra
75
75
  when 'GlobalSettings'
76
76
  next unless index.next == num_sync_info_orders
77
77
 
78
- timestep = data['Timestep']
78
+ timestep = Integer(data['Timestep'])
79
+
79
80
  replay_data[:server_name] = data['ServerName']
80
81
  replay_data[:game][:options] = {
81
82
  explored_map: data['Options']['explored']['Value'] == 'True',
@@ -103,8 +104,17 @@ module Openra
103
104
  candidate[:index] == order.client_index.to_s
104
105
  end
105
106
 
107
+ current_time = order.frame * timestep
108
+ current_time_seconds = current_time / 1000
109
+ mm, ss = current_time_seconds.divmod(60)
110
+ hh, mm = mm.divmod(60)
111
+
106
112
  client[:build] << {
107
113
  structure: order.target_string,
114
+ game_time: {
115
+ formatted: '%02d:%02d:%02d' % [hh, mm, ss],
116
+ msec: current_time
117
+ },
108
118
  placement: {
109
119
  x: order.target_x,
110
120
  y: order.target_y
@@ -1,10 +1,11 @@
1
1
  module Openra
2
2
  module Replays
3
3
  class OrderDecorator < SimpleDelegator
4
- attr_reader :client_index
4
+ attr_reader :client_index, :frame
5
5
 
6
- def initialize(order, client_index)
6
+ def initialize(order, client_index, frame)
7
7
  @client_index = client_index
8
+ @frame = frame
8
9
  super(order)
9
10
  end
10
11
  end
@@ -2,7 +2,7 @@ module Openra
2
2
  module Replays
3
3
  class OrderList < BinData::Record
4
4
  endian :little
5
- skip length: 4
5
+ int32 :frame
6
6
  array :orders, type: :order, read_until: :eof
7
7
  end
8
8
  end
@@ -9,11 +9,19 @@ module Openra
9
9
  def orders
10
10
  return unless valid_order_list?
11
11
 
12
- @orders ||= OrderList.read(data).orders.map do |order|
13
- OrderDecorator.new(order, client_index)
12
+ order_list = OrderList.read(data)
13
+
14
+ @orders ||= order_list.orders.map do |order|
15
+ OrderDecorator.new(order, client_index, order_list.frame)
14
16
  end
15
17
  end
16
18
 
19
+ def order_list
20
+ return unless valid_order_list?
21
+
22
+ @order_list ||= OrderList.read(data)
23
+ end
24
+
17
25
  def valid_order_list?
18
26
  return @valid_order_list if defined?(@valid_order_list)
19
27
 
@@ -1,3 +1,3 @@
1
1
  module Openra
2
- VERSION = '0.0.3'.freeze
2
+ VERSION = '0.0.4'.freeze
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: openra
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andy Holland