Commit graph

182 commits

Author SHA1 Message Date
8c4d503f1f
turn wea_core into an EventEmitter; emit command execution pipeline events
These are subject to feedback and change - please let me know if they are named sensibly or not!
2024-09-13 02:52:35 +01:00
f09e10ae49
document register_command 2024-09-13 02:51:36 +01:00
VorTechnix
a772f7ed55
Merge pull request #111 from sbrl/axis-parser-hv-rework
Axis parser hv rework
2024-09-12 06:32:53 -07:00
VorTechnix
738940a431
stable at last 2024-09-11 19:41:57 -07:00
VorTechnix
bcaceac28b
parseNumber unstable (0 bug) 2024-09-11 18:04:25 -07:00
VorTechnix
7e9e0f6a48
Finally committing this 2024-09-09 12:19:54 -07:00
977dcc6a93
pos_marker_manage: add some checks to update_entity event listener
For #105 because I can't reproduce the issue.
2024-08-18 20:33:57 +01:00
e2167c4ba3
core.param2: add todo reimplement notice
Ref https://discord.com/channels/1135598362821935254/1247681375935533119

---------------------------------------

Hi, a wild //orient+ appeared! While it (probably) doesn't crash, it also unfortunately doesn't work yet.

This is because facedir e.g. points towards the direction the node is pointing, and minetest.facedir_to_dir doesn't capture all the nuance of how the node is pointing, and e.g. if a node is pointing +y and you want to rotate by (0, 90, 0) [degrees], then the current implementation won't do anything.

Then I decided that this is silly and there has to be a solution. After all, screwdriver2 has a great implementation! https://content.minetest.net/packages/12Me21/screwdriver2/

....then I found this lookup table in their codebase: https://github.com/12Me21/screwdriver2/blob/master/init.lua#L75-L79

....aaaaarrrggggghhhhh //orient+ is such a pain to implement!

and my existing implementation is so neat 😢 1dd073f14b/worldeditadditions_core/utils/param2.lua

so, in other words, although I've implemented //orient+ I'm going to have to reimplement the nuts-and-bolts function that does the rotation, which may make it slightly more complicated and annoying to implement support for nodes with param2 types other than facedir.

/rant about Minetest's param2 value and rotations 😛
2024-06-05 00:14:17 +01:00
1dd073f14b
//orient: it works without crashing.... but very strangely.. 2024-06-04 23:07:05 +01:00
02d95cec46
Initial //orient implementation
....unfortunately, it doesn't work yet.
Next up is a frankly ridiculous number of print()s to figure out what's going on here
2024-06-04 22:49:41 +01:00
ffdd1b65b3
Implement //set+
This is on the road to //orient and later stair/etc support in //rotate :D
2024-05-25 14:45:56 +01:00
00478c2ea8
weac/polyfill: add @module so it appears in the Lua API 2024-05-25 14:06:57 +01:00
66c939c917
fix comments 2024-05-19 16:28:05 +01:00
abe66cf1c5
//speed: fix crash when pova isn't installed
stupid bug in weac.{player_get_physics_override,player_set_physics_override}, as you might have suspected
2024-01-01 22:24:49 +00:00
c1fce81bc3
post_marker_wall: @module → @namespace 2023-12-31 17:08:36 +00:00
2f98b86c5f
movetool, //speed: add optdepend on pova
pova is a physics_override manager mod, so it's important we have support for it to ensure we play nice with other mods
Ref https://content.minetest.net/packages/TenPlus1/pova/
2023-12-30 13:12:10 +00:00
b56bd0d84b
//rotate: fix some minor keyword issues, update reference & changelog
At some point we need to move the parser to allow for a `player` reference for relative keywords.... or else pass them through somehow
2023-12-16 01:11:25 +00:00
dc39dbff08
Bugfix: don't +/1 (1, 1, 1) twice in //rotate 2023-12-16 00:37:27 +00:00
54c66e0dc9
//rotate: fix bug in which regions are accidentally cut off 2023-12-16 00:35:52 +00:00
7d29453699
plug in new //rotate+ logic
...but it doesn't work yet
currently it crashes with a variety of interesting and colourful error messages
working on debugging it now, but it's gonna take a moment
2023-12-13 23:05:00 +00:00
b92cc434db
core/run_command: be more robust in case of programming errors 2023-12-13 23:04:09 +00:00
873ff4bef8
Bugfix: don't error out on //flora → //bonemeal alias if bonemeal mod isn't installed
Also add worldeditadditions_core.command_exists to check both WEA and WEW for whether a command exists or not
2023-12-13 22:15:27 +00:00
74a8996afc
//rotate: start implementing a frontend
This is more complicated than I expected.
We've got a new parser and a state machine for the args, but we now need to put these values to use and pass them to worldeditadditions.rotate().
NOTE TO SELF: BE REAL CAREFUL WITH ORIGIN HANDLING.
We MUST NOT pull from sorted pos1/2 by accident! Though I doubt this would be an issue since weac.pos.get(player_name, i) is a thing
2023-12-10 03:16:28 +00:00
45f69eb8f9
Vector3.rotate3d: clarity in comment 2023-11-29 00:36:50 +00:00
e28c428ef7
vector3: doc comment layout 2023-11-28 22:38:26 +00:00
e3962bc8d7
StagedVoxelRegion : ..... I really need to come back and comb through this 2023-11-28 00:40:11 +00:00
6d03a5ca2c
EventEmitter: fix luacheck error 2023-11-28 00:33:27 +00:00
78844484f8
Add //ngroups, which lists the groups a given node is a member of 2023-11-27 23:44:06 +00:00
ef86a0658a
NodeListMatcher: I think groups need to be prefixed with group: when calling minetest.get_item_group
....but we'll find out in testing!
2023-11-27 23:19:34 +00:00
050bd80cf3
//nodeapply: Generalise matching engine into NodeListMatcher
Also add support for @groups, i.e. @crumbly matches nodes that are a member of the "crumbly" group
This groups feature is untested atm as I need to implement //ninfo....
2023-11-27 22:27:20 +00:00
9dd92dbe70
StagedVoxelRegion: initial save() implementation.
....but it's untested, as usual.
2023-09-24 02:07:08 +01:00
f02b1d0b33
fix syntax errors 2023-09-23 21:56:56 +01:00
621ca53d28
Merge branch 'dev' of github.com:sbrl/Minetest-WorldEditAdditions into dev 2023-09-23 21:54:03 +01:00
985901de94
noodle around with StagedVoxelRegion 2023-09-23 21:53:47 +01:00
546de3d6ca
Implement StagedVOxelRegion.NewFromRaw 2023-09-19 18:08:37 +01:00
f2c3ca124c
weaschem: properly document with comments 2023-08-21 22:17:36 +01:00
b42c8f2641
Bugfix: fix crash in pos_marker_wall/delete 2023-08-20 16:46:30 +01:00
f590304995
post_marker: comment debug logging 2023-08-19 13:49:13 +01:00
f4471dfa8e
Does this finally fix the zombie marker wall bug?
only time will tell.
2023-08-19 00:58:58 +01:00
e5493dfb11
tests/weaschem: write tests for parse, except delta_which functionality 2023-08-18 21:17:17 +01:00
78ec40b6be
weaschem: finish write tests for parse_data_table
glad I did, 'cause I found a bunch of subtle bugs
2023-08-18 20:27:00 +01:00
bd012813b3
weaschem: validate node ids in parse_data_table 2023-08-18 15:21:02 +01:00
3b7e91b3b7
weaschem: adjust call to make testable
really annoying how the test environment & MT have different import schemes.....
2023-08-18 15:02:26 +01:00
8048310419
tests/weaschem: write tests for parse_id_map 2023-08-16 02:02:10 +01:00
2dc1755b5c
tests/weaschem: Finish initial tests for parse_header 2023-08-15 19:25:13 +01:00
270ec92fee
start with tests for the header parser, but they aren't finished yet 2023-08-15 03:07:30 +01:00
7e6e61a00b
start basic tests for headers.
We might want to consider a separate distribution that omits all the test files......
2023-08-15 02:59:19 +01:00
3faaaa5283
weaschem: make basically testable 2023-08-15 00:19:54 +01:00
1abab143e7
.weaschem: initial, UNTESTED, parsing implementation
....it's not hooked up at all yet.
WEA will not even load the file yet, and we don't have tests either
....tests might be a bit of a problem given we use minetest.parse_json directly.
2023-08-12 03:05:10 +01:00
e4539edb4b
rough sketch of the outline of StagedVoxelRegion.
This doesn't include the deltas feature yet
2023-08-09 03:33:56 +01:00