vault_coh 0.1.1 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d037f1a8b11d1d9820e21730aca8d80c2ab32239bb3b305ed29424ee3c3b759a
4
- data.tar.gz: 367550271199e47efc96d0e7600b57b55a520d928acef511a100e55bd160f900
3
+ metadata.gz: 95461c3147428ac051ee0003a88304da0fe3bd82a3d62fb333b82efadfc54a69
4
+ data.tar.gz: ba0b1420bdadb6b0143f19d2b071060d600113fb5b8ecc44862e3bb9459b45f1
5
5
  SHA512:
6
- metadata.gz: 11afc8175e8add463bd27fa312d50d3b8fa40352f6162fc6e20a9bf194f547dcb4afdbc9f544928712a1734a58e0dd6de43c333be8345bffe033fa681d0cd6b3
7
- data.tar.gz: 8033766809f1e3d244ea0c210c6ec2f7e3d2ac0499f365355f96ccfe8ee8ebc080b0e50018a90a5aeb762af91cd601d7f0819101962fbf84a45692d2bf6b0b87
6
+ metadata.gz: 3c73ae3273b3a66ec94dec001ec9a971888a33f53c1e6a3389cf9bec5f9e716f19a049ac0a25ea9c6a0900edb3958b4c0d25b4f083a9e3db299d0ea381de8d12
7
+ data.tar.gz: 18ef4b4dd7ba45c938b092dda340e0406bc396676d7d022126b7298a2d70bb52e9f3f094bf73a86ffab69cee0f88fa5c4b02dc79d87a2fb93b5f02987e2ec2d0
data/Cargo.lock CHANGED
@@ -292,9 +292,9 @@ checksum = "e5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4"
292
292
 
293
293
  [[package]]
294
294
  name = "vault"
295
- version = "3.0.1"
295
+ version = "4.0.0"
296
296
  source = "registry+https://github.com/rust-lang/crates.io-index"
297
- checksum = "57f13d25b120beed4d279bf11c1cab834225fe07a13ea9f001c5ff7c1f2eb20a"
297
+ checksum = "fbc584e1c893f783e5eb795b849c5a512992b3d0f39c0b2c124e8d17584f9b82"
298
298
  dependencies = [
299
299
  "byteorder",
300
300
  "magnus",
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- vault_coh (0.1.1)
4
+ vault_coh (1.0.0)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Vault
2
2
 
3
- [![Gem Version](https://badge.fury.io/rb/vault_coh.svg)](https://badge.fury.io/rb/vault_coh) [![Documentation](https://img.shields.io/badge/View-Documentation-blue.svg)](https://rubydoc.info/github/ryantaylor/vault-rb/v0.1.1)
3
+ [![Gem Version](https://badge.fury.io/rb/vault_coh.svg)](https://badge.fury.io/rb/vault_coh) [![Documentation](https://img.shields.io/badge/View-Documentation-blue.svg)](https://rubydoc.info/github/ryantaylor/vault-rb/v1.0.0)
4
4
 
5
5
  A native Ruby client wrapper for the [vault](https://github.com/ryantaylor/vault) Company of Heroes replay parser, integrated via a Rust native extension.
6
6
 
@@ -24,7 +24,7 @@ bytes = File.read('/path/to/replay.rec').unpack('C*')
24
24
  replay = VaultCoh::Replay.from_bytes(bytes)
25
25
  puts replay.version
26
26
  ```
27
- All information available from parsing can be found in the [documentation](https://rubydoc.info/github/ryantaylor/vault-rb/v0.1.1).
27
+ All information available from parsing can be found in the [documentation](https://rubydoc.info/github/ryantaylor/vault-rb/v1.0.0).
28
28
 
29
29
  ## Contributing
30
30
 
@@ -11,4 +11,4 @@ crate-type = ["cdylib"]
11
11
 
12
12
  [dependencies]
13
13
  magnus = { version = "0.5" }
14
- vault = { version = "3", features = ["magnus"] }
14
+ vault = { version = "4", features = ["magnus"] }
@@ -1,5 +1,6 @@
1
1
  use magnus::{class, define_module, exception, function, method, prelude::*, Error};
2
- use vault::{Faction, Map, Message, Player, Replay, Team};
2
+ use vault::commands::{BuildSquad, SelectBattlegroup, Unknown};
3
+ use vault::{Command, Faction, Map, Message, Player, Replay, Team};
3
4
 
4
5
  #[magnus::init]
5
6
  fn init() -> Result<(), Error> {
@@ -35,9 +36,12 @@ fn init() -> Result<(), Error> {
35
36
  player.define_method("name", method!(Player::name, 0))?;
36
37
  player.define_method("faction", method!(Player::faction, 0))?;
37
38
  player.define_method("team", method!(Player::team, 0))?;
39
+ player.define_method("battlegroup", method!(Player::battlegroup, 0))?;
38
40
  player.define_method("steam_id", method!(Player::steam_id, 0))?;
39
41
  player.define_method("profile_id", method!(Player::profile_id, 0))?;
40
42
  player.define_method("messages", method!(Player::messages, 0))?;
43
+ player.define_method("commands", method!(Player::commands, 0))?;
44
+ player.define_method("build_commands", method!(Player::build_commands, 0))?;
41
45
 
42
46
  let message = module.define_class("Message", class::object())?;
43
47
  message.define_method("tick", method!(Message::tick, 0))?;
@@ -49,6 +53,33 @@ fn init() -> Result<(), Error> {
49
53
  let team = module.define_class("Team", class::object())?;
50
54
  team.define_method("value", method!(Team::value, 0))?;
51
55
 
56
+ let command = module.define_class("Command", class::object())?;
57
+
58
+ let commands_module = module.define_module("Commands")?;
59
+
60
+ let build_squad_command = commands_module.define_class("BuildSquadCommand", command)?;
61
+ build_squad_command.define_method("value", method!(Command::extract_build_squad, 0))?;
62
+
63
+ let build_squad = commands_module.define_class("BuildSquad", class::object())?;
64
+ build_squad.define_method("tick", method!(BuildSquad::tick, 0))?;
65
+ build_squad.define_method("pbgid", method!(BuildSquad::pbgid, 0))?;
66
+
67
+ let select_battlegroup_command =
68
+ commands_module.define_class("SelectBattlegroupCommand", command)?;
69
+ select_battlegroup_command
70
+ .define_method("value", method!(Command::extract_select_battlegroup, 0))?;
71
+
72
+ let select_battlegroup = commands_module.define_class("SelectBattlegroup", class::object())?;
73
+ select_battlegroup.define_method("tick", method!(SelectBattlegroup::tick, 0))?;
74
+ select_battlegroup.define_method("pbgid", method!(SelectBattlegroup::pbgid, 0))?;
75
+
76
+ let unknown_command = commands_module.define_class("UnknownCommand", command)?;
77
+ unknown_command.define_method("value", method!(Command::extract_unknown, 0))?;
78
+
79
+ let unknown = commands_module.define_class("Unknown", class::object())?;
80
+ unknown.define_method("tick", method!(Unknown::tick, 0))?;
81
+ unknown.define_method("action_type", method!(Unknown::action_type, 0))?;
82
+
52
83
  Ok(())
53
84
  }
54
85
 
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module VaultCoh
4
+ # Base class that all command wrappers extend.
5
+ class Command
6
+ # Data object that contains information specific to the
7
+ # type of command it represents.
8
+ #
9
+ # @return [Commands::BuildSquad|Commands::SelectBattlegroup|Commands::Unknown]
10
+ def value; end
11
+ end
12
+ end
@@ -0,0 +1,29 @@
1
+ # frozen_string_literal: true
2
+
3
+ module VaultCoh
4
+ module Commands
5
+ # Data object representing information parsed from a
6
+ # unit construction command.
7
+ class BuildSquad
8
+ # This value is the tick at which the command was
9
+ # found while parsing the replay, which represents
10
+ # the time in the replay at which it was executed.
11
+ # Because CoH3's engine runs at 8 ticks per second,
12
+ # you can divide this value by 8 to get the number
13
+ # of seconds since the replay began, which will tell
14
+ # you when this command was executed.
15
+ #
16
+ # @return [Integer] unsigned, 32 bits
17
+ def tick; end
18
+
19
+ # Internal ID that uniquely identifies the unit being
20
+ # built. This value can be matched to CoH3 attribute
21
+ # files in order to determine the unit being built.
22
+ # Note that, while rare, it is possible that this value
23
+ # may change between patches for the same unit.
24
+ #
25
+ # @return [Integer] unsigned, 32 bits
26
+ def pbgid; end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module VaultCoh
4
+ module Commands
5
+ # Wrapper for a unit construction command.
6
+ class BuildSquadCommand < Command
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ module VaultCoh
4
+ module Commands
5
+ # Data object representing information parsed from a
6
+ # battlegroup selection command.
7
+ class SelectBattlegroup
8
+ # This value is the tick at which the command was
9
+ # found while parsing the replay, which represents
10
+ # the time in the replay at which it was executed.
11
+ # Because CoH3's engine runs at 8 ticks per second,
12
+ # you can divide this value by 8 to get the number
13
+ # of seconds since the replay began, which will tell
14
+ # you when this command was executed.
15
+ #
16
+ # @return [Integer] unsigned, 32 bits
17
+ def tick; end
18
+
19
+ # Internal ID that uniquely identifies the battlegroup
20
+ # selected. This value can be matched to CoH3 attribute
21
+ # files in order to determine the battlegroup being
22
+ # selected. Note that, while rare, it is possible that
23
+ # this value may change between patches for the same
24
+ # battlegroup.
25
+ #
26
+ # @return [Integer] unsigned, 32 bits
27
+ def pbgid; end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module VaultCoh
4
+ module Commands
5
+ # Wrapper for a battlegroup selection command.
6
+ class SelectBattlegroupCommand < Command
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,27 @@
1
+ # frozen_string_literal: true
2
+
3
+ module VaultCoh
4
+ module Commands
5
+ # Data object representing an unknown (i.e. not yet
6
+ # handled) command.
7
+ class Unknown
8
+ # This value is the tick at which the command was
9
+ # found while parsing the replay, which represents
10
+ # the time in the replay at which it was executed.
11
+ # Because CoH3's engine runs at 8 ticks per second,
12
+ # you can divide this value by 8 to get the number
13
+ # of seconds since the replay began, which will tell
14
+ # you when this command was executed.
15
+ #
16
+ # @return [Integer] unsigned, 32 bits
17
+ def tick; end
18
+
19
+ # This value identifies the type of the command
20
+ # (build, move, stop, etc.). Commands with similar
21
+ # functionality can be grouped by this value.
22
+ #
23
+ # @return [Integer] unsigned, 8 bits
24
+ def action_type; end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module VaultCoh
4
+ module Commands
5
+ # Wrapper for an unknown (i.e. not yet handled) command.
6
+ class UnknownCommand < Command
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ module VaultCoh
4
+ # Various classes responsible for handling command data.
5
+ module Commands
6
+ end
7
+ end
@@ -24,6 +24,13 @@ module VaultCoh
24
24
  # @return [Team]
25
25
  def team; end
26
26
 
27
+ # The pbgid of the battlegroup the player selected, or +nil+ if no
28
+ # battlegroup was selected. For details on what this ID represents
29
+ # please see {Commands::SelectBattlegroup#pbgid}.
30
+ #
31
+ # @return [Integer|NilClass]
32
+ def battlegroup; end
33
+
27
34
  # The Steam ID of the player. This ID can be used to uniquely
28
35
  # identify a player between replays, and connect them to their
29
36
  # Steam profile.
@@ -44,5 +51,18 @@ module VaultCoh
44
51
  #
45
52
  # @return [Array<Message>]
46
53
  def messages; end
54
+
55
+ # A list of all commands executed by the player in the match.
56
+ # Sorted chronologically from first to last.
57
+ #
58
+ # @return [Array<Command>]
59
+ def commands; end
60
+
61
+ # A list of only build-related commands executed by the player in
62
+ # the match. A build command is any that enqueues the construction
63
+ # of a new unit. Sorted chronologically from first to last.
64
+ #
65
+ # @return [Array<Commands::BuildSquad>]
66
+ def build_commands; end
47
67
  end
48
68
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module VaultCoh
4
- VERSION = '0.1.1'
4
+ VERSION = '1.0.0'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vault_coh
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - ryantaylor
@@ -33,6 +33,14 @@ files:
33
33
  - ext/vault_coh/extconf.rb
34
34
  - ext/vault_coh/src/lib.rs
35
35
  - lib/vault_coh.rb
36
+ - lib/vault_coh/command.rb
37
+ - lib/vault_coh/commands.rb
38
+ - lib/vault_coh/commands/build_squad.rb
39
+ - lib/vault_coh/commands/build_squad_command.rb
40
+ - lib/vault_coh/commands/select_battlegroup.rb
41
+ - lib/vault_coh/commands/select_battlegroup_command.rb
42
+ - lib/vault_coh/commands/unknown.rb
43
+ - lib/vault_coh/commands/unknown_command.rb
36
44
  - lib/vault_coh/faction.rb
37
45
  - lib/vault_coh/map.rb
38
46
  - lib/vault_coh/message.rb