16 Commits

Author SHA1 Message Date
Aaron Suen
d37e9e9ace Genericize lens beam emitters
Look for optic_lens_emit group instead of explicit
lens_on node, to support multiple lens beam emitting
nodes (e.g. glued/unglued) for firestarting, door
ablation, etc.
2022-01-09 13:07:16 -05:00
Aaron Suen
7d12ea4acb Use textures for all particles
These cannot be overridden by texturepacks
otherwise.
2021-12-13 22:18:06 -05:00
Aaron Suen
293b3de9ee Move ablation cooldown to RAM, fix meta loss
Apparently metarefs are cached somehow such that
values written to them are not returned from subsequent
reads.  Must be an engine bug, but it's probably not
worth trying to fix it at this point.  Some startup jank
is apparently inevitable anyway, and a 2 second cooldown
time is not easily exploitable by restarting the world.
2021-07-10 18:31:18 -04:00
Aaron Suen
9fb4cf55b2 Deprecate register_limited_abm
This has just been an alias to minetest.register_abm
for a while now, and all ABM enhancement features
have been added directly to the core API.
2021-07-10 11:09:44 -04:00
Aaron Suen
7d41fc53c3 Door ablation check on load
Try to make sure doors don't have to wait arbitrarily long
for a patrol ABM to fire if their DNT was lost and they're
part of a stable circuit.  This seems to have caused some
sponge squeezers in particularly busy areas to stop for a
while when first loaded sometimes, which can interrupt
the water flow they provide, which can lead to a fire
hazard.
2021-07-09 08:18:55 -04:00
Aaron Suen
11a3790bc6 Fix door ablation spurious refiring 2021-07-05 12:10:47 -04:00
Aaron Suen
56b718f479 Door ablation particles 2021-04-03 19:21:09 -04:00
Aaron Suen
b8bf2322fa More work on DNTs
- DNTs can have default time value
- Automatic loop option
- Optional node name filter
- Use DNT for scaling particles
- A few tail call optimizations
2020-06-19 09:38:03 -04:00
Aaron Suen
d3dc7f28e1 Trigger door ablation instantly on signal 2020-06-19 00:30:17 -04:00
Aaron Suen
db2d748104 DNT API and reliable door ablation
- New Delayed Node Trigger API that allows
  the use of multiple externally-defined node
  timer events, as long as on_timer of a node
  is not explicitly overridden.
- Use the new DNT system to make door
  ablation reliable.
2020-06-18 22:35:47 -04:00
Aaron Suen
984e87e155 Consistent ABM labeling
- Make sure every ABM has a label
- Use consistent case
- More concise names / consistent voice
2020-06-17 07:09:20 -04:00
Aaron Suen
0067c5d18d Remove delay/jitter from limited abm
Before, ABM firing was delayed by up to a full
interval, but the fulfillment timer could wander
around relative to the trigger, which could lead
to unreliable door ablation.

Instead, just always run the ABM fulfilment
triggers on the next tick, so limted_abm is
ONLY doing the limiting for events that arrive
within the same tick, as most ABMs do.
2020-06-01 21:44:22 -04:00
Aaron Suen
e2a5581085 Hint updates! 2020-01-21 21:19:30 -05:00
Aaron Suen
8c029817bb Remove laser ablation timing jitter. 2020-01-05 12:34:15 -05:00
Aaron Suen
d4dd7a00a4 Slow down optic door operation.
This prevents catapults from missing their empty signal.
2019-12-03 20:21:09 -05:00
Aaron Suen
522a4c0de5 Laser ablation door operation.
This now allows optics to interact with doors, tying the two
systems together.
2019-10-11 08:34:50 -04:00