ChillerDragon
e06ce8366f
feat!: snap items in sys/game messages
...
This commit is not about snapshots!
Generated the snap item classes for 0.6 and 0.7
And changed the type used for snap items from int to the snap class
This now allows to properly serialize and deserialize
messages such as sys.input
2023-06-09 13:06:24 +02:00
ChillerDragon
4fd648025f
feat!: proper support for optional fields
...
This sets message fields to `None` if they were not set.
And also does not pack fields that are set to `None`
BREAKING CHANGE: earlier to this commit the control close reason field
was set to an empty string if it was not set. Now it is set to None
2023-06-04 11:43:18 +02:00
ChillerDragon
7c70e32725
First 0.6 draft
...
No 0.6 code is tested yet
This commit is just about adding all 0.6 code without
breaking existing 0.7 tests
2023-05-19 18:27:39 +02:00
ChillerDragon
6be2f54103
Do not gen 0.6 code yet
2023-05-19 09:45:57 +02:00
ChillerDragon
e4e1c40d85
Adapt gen script to support 0.6
2023-05-19 09:17:02 +02:00
ChillerDragon
81cee81e94
Remove snap message from generation
...
currently blocked by broken huffman decompression
2023-05-15 11:24:42 +02:00
ChillerDragon
fb12b0a498
Fix snap damage "self" conflicting w python keyword
2023-05-15 10:13:39 +02:00
ChillerDragon
7684002a64
Finish poc snap item generation
2023-05-14 12:18:29 +02:00
ChillerDragon
211f470e7b
Finish snap init args generation
2023-05-14 11:33:53 +02:00
ChillerDragon
37ec4349aa
Make gen init header code shared
2023-05-14 10:41:05 +02:00
ChillerDragon
4801af9c59
A bit more snap generation prep
2023-05-13 16:33:12 +02:00
ChillerDragon
6fef3f1abb
More snap preperation in generate script
2023-05-13 14:33:50 +02:00
ChillerDragon
08f71f60a2
Type out snap items for libtw2 json
2023-05-13 10:23:23 +02:00
ChillerDragon
8c13ce6c2b
Add connless info (inf3)
2023-05-12 17:17:07 +02:00
ChillerDragon
f7ab25ab78
Pick type for packed_addresses (pack not working yet)
2023-05-10 09:45:06 +02:00
ChillerDragon
1b445c3a12
Add connless fields to initialize
2023-05-10 09:05:48 +02:00
ChillerDragon
7874d769aa
Start working on connection less messages
2023-05-09 17:06:40 +02:00
ChillerDragon
2ef0b07282
Add message_type field for control, game and system messages
2023-05-09 11:42:19 +02:00
ChillerDragon
18dd35f4fa
Create chunk header instance for every message
2023-04-16 16:51:28 +02:00
ChillerDragon
6a351073d3
Include ids in message classes
2023-04-16 16:06:23 +02:00
ChillerDragon
1fd099c3de
Intentionally keep enums ints
...
https://gitlab.com/teeworlds-network/twnet_parser/-/issues/7
2023-04-16 11:25:31 +02:00
ChillerDragon
67c54c4be4
Use python enums for enums
...
I played a bit with getting the text instead
of the magic number in the string representation
but everything I tried got a bit ugly
2023-04-16 10:53:29 +02:00
ChillerDragon
e4ab0a7791
Make 0 member msgs look nicer
2023-04-16 09:40:12 +02:00
ChillerDragon
90b43608b9
Use named default for enums and move enum file
2023-04-16 09:28:36 +02:00
ChillerDragon
58051469f2
Start using classes in gen script to avoid globals
2023-04-16 08:52:03 +02:00
ChillerDragon
1767d05f4e
Generate enums
2023-04-16 08:43:37 +02:00
ChillerDragon
8b0cce28be
Expect the sha256 field to be 32 bytes
2023-04-16 08:15:55 +02:00
ChillerDragon
3b93a6bba2
Packing python bools as tw net bools just works
...
python handles bools more like the ints 0 and 1
and those are exactly the values the
teeworlds network protocol expects
I can totally see this breaking in python4
or a new mypy version
maybe one day a ``get_bool()`` could make sense
also for readability
but for now this should be stable as long as the
tests pass
2023-04-09 12:14:13 +02:00
ChillerDragon
2b28e755bc
Add support for the data size field
2023-04-09 11:44:43 +02:00
ChillerDragon
822074ea47
Add support for generating array chunk fields
2023-04-08 14:24:44 +02:00
ChillerDragon
7dfaeda45f
Apply sanitize string cc to all messages that need it
2023-04-07 14:27:25 +02:00
ChillerDragon
760d8bce1f
Fix comment too long
2023-04-02 20:03:50 +02:00
ChillerDragon
044e17b6e6
Do not import unused Unpacker
2023-04-02 20:02:27 +02:00
ChillerDragon
d6d8abc091
Do not instantiate unused unpacker
2023-04-02 20:00:42 +02:00
ChillerDragon
df3fcb9b17
Fix optional type assuming int
2023-04-02 19:56:29 +02:00
ChillerDragon
e20fd4c019
Use vanilla server defaults for tunes
2023-04-02 11:51:21 +02:00
ChillerDragon
029cebcb25
Fully support tune params
2023-04-02 10:39:52 +02:00
ChillerDragon
0013b9b8c0
Add shebang to gen script
2023-04-02 09:40:54 +02:00
ChillerDragon
41f4742ac1
Generate system message matcher
2023-03-31 10:14:55 +02:00
ChillerDragon
a19df04b80
Sort dependencies to avoid changes on regen
...
Seems like the set has different orders when running
the generate script multiple times
this causes all game message class files to change
2023-03-31 09:55:07 +02:00
ChillerDragon
0d4f6057a2
Prefix generated classes with Msg
2023-03-29 16:50:28 +02:00
ChillerDragon
d21092f44b
Fix line too long (pylint)
2023-03-29 16:23:11 +02:00
ChillerDragon
b39f067222
Generate system messages
2023-03-29 16:22:00 +02:00
ChillerDragon
14fd5f2b40
Fix rename
2023-03-29 14:54:21 +02:00
ChillerDragon
4adf33061c
Gen game msg id matching
2023-03-29 14:51:58 +02:00
ChillerDragon
5f76de93a9
Generate pack() code for messages
2023-03-26 13:03:04 +02:00
ChillerDragon
e22530743c
Fix build of generated game msgs
...
the vote status field `pass` conflicts
with the python keyword so rename it to `pass_`
also fix `get_string()` not being a function
2023-03-25 18:43:45 +01:00
ChillerDragon
bfa8162aa1
Start working on code generation
...
Using libtw2's network spec
a6e26ebd0a/gamenet/generate/spec
2023-03-25 18:19:52 +01:00