Commit graph

235 commits

Author SHA1 Message Date
0561e02845
pos_marker_manage: fix crash 2024-09-13 02:54:38 +01:00
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
78c418cb24
pos_marker quick patch 2024-09-12 09:55:02 -07:00
VorTechnix
e24997dd80
Update split.lua 2024-09-12 09:54:40 -07: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
3c7e1ef545
Create proper io namespace directory 2023-08-08 18:46:41 +01:00
76c02cd42f
update more comments 2023-08-03 14:37:05 +01:00
9d47dcbcf3
comments: update 2023-08-03 14:16:14 +01:00
fadf4ed06c
Merge branch 'fix-markerdupes' into dev 2023-08-01 00:35:44 +01:00
dd6e34bde1
Update changelog, prepare for (another) release 2023-08-01 00:34:35 +01:00
125638a079
pos_marker, pos_marker_wall: default to 1 hp 2023-08-01 00:27:07 +01:00
7be2fb125e
add more debug logging 2023-08-01 00:16:36 +01:00
6231132055
pos_marker: debug logging; set health = 0 2023-08-01 00:14:43 +01:00
daae15eb57
EventEmitter: improve debug logging 2023-07-31 22:06:44 +01:00
6fabc89e72
Merge branch 'fix-marker-wall' into dev 2023-07-31 18:25:49 +01:00
2840ba4dea
bump version, prepare for release 2023-07-31 18:24:32 +01:00
564785ddf6
When any segment of the marker wall is punched, unmark the entire wall
Fixes #102
2023-07-31 18:22:00 +01:00
1c90e03d3e
When any segment of the marker wall is punched, unmark the entire wall
Fixes #102
2023-07-31 18:20:06 +01:00
dacbeaf81d
comment debug logging 2023-07-18 00:42:42 +01:00
a465a50244
Bump version to 1.14.3 2023-07-18 00:35:19 +01:00
5505575cf9
Fix regions not remembering their state and being unresettable
This fix means that wwe require minetest 5.2 as a minimum rather than 5.1
ref https://rubenwardy.com/minetest_modding_book/en/quality/common_mistakes.html#be-careful-when-storing-objectrefs-ie-players-or-entities
2023-07-18 00:35:07 +01:00
ee4b3e09bb
Bump version 2023-07-12 20:30:13 +01:00
5baa72cf6f
core/run_command: guard against invalid potential_changes 2023-07-11 19:12:04 +01:00
7f4798432e
Bump version! 2023-07-11 18:16:02 +01:00
5c632df658
Override basic selection commands
//mark
//unmark
//pos1 //1
//pos2 //2
//reset
Also add //pos <index>
2023-07-10 20:17:28 +01:00
693fc145d5
pos: avoid calling worldedit.marker_update unless necessary 2023-07-10 19:25:48 +01:00
f2214150f2
Update minetest.chatcommands → minetest.registered_chatcommands 2023-07-09 19:49:38 +01:00
3bfc62be24
Make //unmark WEA-aware
Backwards compatibility with WE is maintained.
2023-07-09 19:44:31 +01:00
e916057133
safe_region: update comment
We need @value
2023-07-07 01:31:06 +01:00
VorTechnix
5cf155772d Merge branch 'main' of https://github.com/sbrl/Minetest-WorldEditAdditions 2023-07-04 14:50:17 -07:00
VorTechnix
55ddc16b2e small fix to file:read error 2023-07-04 14:50:14 -07:00
6bc1987916
Update and correct a bunch of comments
note that @module is outdated and should not be used
2023-07-04 22:45:02 +01:00
5d18f6d0db
comment debug 2023-07-04 22:00:28 +01:00
7bdefc8d42
split_shell: comment out debug 2023-07-04 19:10:05 +01:00
02ad40eaae
split_shell: add automated tests, and fix an obscure bug 2023-07-04 19:04:11 +01:00
047033a6ef
comments: update @class definitions 2023-07-02 19:03:46 +01:00
8981bc4baa
weac.pos: update comments 2023-07-02 17:48:43 +01:00
464ea53465
vector3: fix comments 2023-07-02 17:03:39 +01:00
61403108d6
disable a bunch of debug logging 2023-07-01 02:46:08 +01:00
92fd201b42
pos_marker_lua: add last_reset to properly clear huge regions 2023-07-01 01:11:56 +01:00
b3f7ae9d7c
pos_marker_wall: add support for customising sides displayed
...it's not exposed in the UI yet tho.
2023-06-30 02:08:46 +01:00
277da67dda
marker wall: got it! 2023-06-29 01:49:15 +01:00
a173edfbc4
wall markers: it shouldn't work, but it does
....I'll take it!
2023-06-29 01:22:50 +01:00
c622fb554f
Hook in the new marker wall system
it works!
now for the other walls.
2023-06-29 00:39:55 +01:00
f7530da608
initial pos marker wall for +x only
it's not hooked up yet.
2023-06-27 21:45:48 +01:00
61e04952e0
move pos marker textures. will this help #90? 2023-06-27 20:16:04 +01:00
141ea2f0a7
For compatibility, ensure that we also clear the legacy worldedit region too 2023-06-27 20:00:07 +01:00
bfecc2da80
Merge branch 'main' of github.com:sbrl/Minetest-WorldEditAdditions 2023-06-27 19:40:12 +01:00
53bbe14c63
update cloud wand to use new wea_c.pos interface 2023-06-27 19:39:57 +01:00
VorTechnix
8d9f51de35 handler patch
I should have done this in a branch lol
2023-05-28 08:45:39 -07:00
VorTechnix
67baee7465 fixed missing underscore 2023-05-28 08:37:57 -07:00
VorTechnix
8de2892907 added setting_handler 2023-05-24 16:02:51 -07:00