Commit Graph

951 Commits

Author SHA1 Message Date
DS
928f04fa9c Rewrite pistons (#362) 2017-10-08 19:21:19 +03:00
DS
c4a1aa0b98 MVPS: Improve object move (#367) 2017-10-08 18:18:47 +03:00
DS
37eb7f00e8 Improve rules and rule handling (#370) 2017-10-08 02:39:02 +03:00
DS
905260c8db Handle blasts (#356) 2017-10-07 01:44:49 +03:00
DS
8999597df2 Support an on-move callback (#363) 2017-10-06 00:09:48 +03:00
DS
0b3039e9a9 Make removestone check nodes above for falling (#357)
Fixes a part of #290.
2017-10-04 01:19:09 +03:00
DS
1f5601661e Do not reset conductor param2 on place (#364) 2017-10-04 00:55:33 +03:00
DS-Minetest
fa58607546 fpga: Make rotatable with screwdrivers 2017-10-03 17:46:58 +02:00
DS
1963d8b3d5 Prevent wires from being rotated (#365) 2017-09-19 18:12:00 +03:00
Wuzzy
954262d016 Add 6 new lightstone colors (#329)
Cyan, magenta, orange, pink, violet and white.
2017-09-18 01:38:55 +03:00
DS
3ef8ae01e7 Add conversation recipes for Lua- and Microcontroller (#354) 2017-09-11 21:26:37 +02:00
DS
42cd973921 Do not stop node timers on mvps move (#359) 2017-09-11 21:26:04 +02:00
DS
36a6419481 Fix active button staying on forever (#355) 2017-09-03 21:27:31 +03:00
number Zero
564bdc2d9b Fix crash when error()ing an invalid value
See #337 for details.
2017-05-08 17:34:30 +03:00
DS
f9ebbdc0fb Make LuaC formspec bigger (#338) 2017-05-08 02:59:57 +04:00
sfan5
4dcc7fb32f Update github links in the README 2017-04-21 21:33:21 +02:00
numberZero
54b9eaffa2 Improve overheating (#334)
New overheating system that doesn’t use the meta.
2017-04-14 23:14:17 +04:00
Josh Mars
2554164674 Improve object and node detectors
* Support detection of multiple players in object detector
* Add distance parameter to node detector
* Fix area protection
2017-03-31 12:11:40 +02:00
Wuzzy
967bde284a Spell-check and clarify item names
* Fix inconsistent insulated mesecon names
* Clarify lightstone names
* Rename meselamp to "Mesecon Lamp"
* Use capitalization "Luacontroller" consistently
* Cleanup / improvements for logic gate naming
2017-03-07 19:04:05 +01:00
DS
d80c788fab Change sticky movestone craft recipe
It used to be so that you could gain two sticky movestones out of one normal one,
this didn't make much sense.
2017-03-04 09:10:44 +01:00
Wuzzy
03ab151c87 Fix active ghoststones being droppable with sand
Fixes #289
2017-02-15 23:00:02 +01:00
Vanessa Ezekowitz
dd2b36c41c fix wrong UV mapping on "on" turbine blades 2017-02-13 14:24:29 -05:00
Vanessa Ezekowitz
0cb286b425 Merge pull request #321 from Jeija/animated_turbine
Make "on" water turbine animated!
2017-02-12 19:56:29 -05:00
Vanessa Ezekowitz
46cbc76988 make "on" water turbine animated!
This uses a fairly simple trick: the textures are animated, while the
model is static and has a number of rotated copies of the parts that are
seen to move (four copies of the blades, eight copies of the top/bottom
and their edges).  The opaque parts of the textures then decide which of
those faces' copies are visible in each frame.
2017-02-12 13:57:30 -05:00
Vanessa Ezekowitz
fa3bd19270 fix Z-fighting on water turbine 2017-02-12 10:56:54 -05:00
sfan5
2bc3c5d97c fpga: Make formspec usage less prone to breakage 2017-01-28 11:54:27 +01:00
sfan5
07d074075c FPGAs (#315) 2017-01-28 11:33:13 +01:00
sfan5
5188853014 Make descriptions of insulated wires consistent
This allows finding all of them by searching
"insulated" in the creative menu.
2017-01-22 13:39:10 +01:00
sfan5
7667e7d8c5 Fix Lua error with microcontrollers
caused by an oversight in ececf525b6
2017-01-19 16:31:36 +01:00
sfan5
ececf525b6 Fix remaining namespace pollutions (closes #311) 2017-01-15 23:12:13 +01:00
Jeija
54daee236e Luacontroller: Revert function stripping from digiline messages 2017-01-15 20:11:12 +01:00
sfan5
c2e3d7c4e5 Fix most of the namespace pollutions reported in #311 2017-01-15 11:53:49 +01:00
DS-Minetest
7415036f5b Make insulated cossover to mesh
This removes the weird "holes" in the isolation of the crossing
2017-01-02 14:59:52 +01:00
Carter Kolwey
1bd936ad8c Properly handle rotation of buttons / levers
Buttons and levers can now also be pointed upwards / downwards which will make them connect to corresponding up / down receivers. You will need to use the screwdriver for this.

Receivers cannot be rotated using the screwdriver anymore.
2017-01-02 14:51:28 +01:00
Carter Kolwey
79edbed8d7 Allow water turbines to work with river water (fixes #294)
This also makes turbines compatible with any liquid that is in the `water` group and has `liquidtype == "flowing"`.
2016-12-31 10:57:50 +01:00
Jeija
8743699298 Luacontroller: Fix bugs in 703e6fda, no more functions as keys
Thanks to @ShadowNinja for reporting this
Make sure functions that are keys in tables and functions inside nested tables also get removed when using digiline_send.
2016-12-31 10:43:45 +01:00
Jeija
703e6fdadb Luacontroller: Restrict digiline messages
Restrict maximum length of messages to 50.000 characters and disable sending functions or table references over the wire. Restrict types of channel variable to string, number or boolean.

The missing length restriction made DoS-like attacks possible by overflowing memory using string concatenation. Thanks to gamemanj for disclosing this issue.
2016-12-28 10:07:59 +01:00
Yutao Yuan
67cd17aa79 Fix crash with movestones 2016-12-04 19:37:31 +08:00
Christopher Head
203aaf3c90 Remove an unused function. 2016-11-17 14:55:02 +01:00
Jeija
95fedc88bc Never postpone action_on or action_off
There is no more need for that since VoxelManip caching makes sure we
always get an answer to get_node_force.
2016-09-04 09:50:30 +02:00
Jeija
433778c2ec Add Hawk777 to contributor list, update developer documentation URL 2016-09-04 09:32:41 +02:00
Jeija
54efc64558 Duplicate unhash_blockpos code to legacy.lua
Duplicating that small piece of code seems like a better idea than
putting the undo-forceloading code back into util.lua. This way, it is
easier to remember to remove that unneccesary code after a couple of
months / years, when people have transitioned. This also means we can
make changes to the code in util.lua without breaking old code.
2016-08-31 08:46:11 +02:00
Jeija
dfeb070a20 Remove some long unused legacy code
The change that required this compatibility layer happened in
2014, so other mods have had a lot of time to update.
2016-08-30 20:54:20 +02:00
Jeija
6dacdaee1f Small cleanups in internal.lua, move forceloading reversal to legacy 2016-08-30 19:37:43 +02:00
Jeija
e561be7fa3 Greatly improve performance by making use of VoxelManips in turnoff
Instead of seperately looking for onstate receptors along equipotential
sections of the circuit before turning off, do that while already
modifying the VoxelManip. In case an onstate receptor is found, discard
the VoxelManip cache, otherwise commit it after turnoff is completed.
2016-08-30 19:12:09 +02:00
Jeija
89153f6909 Further simplification of turnon/turnoff 2016-08-30 18:24:08 +02:00
Christopher Head
8e6536ca2e
Simplify turnon/turnoff.
It is no longer possible for get_node_force to return nil if the target
location does, in fact, exist, because a VM will always be able to load
it (whereas a forceload might not, due to exhaustion of forceload
resources). So it is no longer necessary to handle get_node_force
returning nil by deferring processing.
2016-08-24 00:42:40 -07:00
Christopher Head
bc9d4c2d5a
Use VM transactions for conductor state changes.
VoxelManipulator-based transactions are used to hopefully speed up
scanning and replacing of networks of conductors when receptors start or
stop driving signals into them.
2016-08-24 00:42:40 -07:00
Christopher Head
6d79272ed4
Implement VoxelManipulator-based transactions.
Rather than calling out through the Lua-to-C API for each node that
needs to be read or written, a group of map reads (and optionally
writes) can be grouped into a transaction. Access to map data within the
transaction is provided at high speed by means of VoxelManipulators.
Once the reads and writes are finished, the transaction can be committed
or aborted.
2016-08-24 00:42:38 -07:00
Christopher Head
564cee346a
Use VoxelManipulators for get_node_force.
A VoxelManipulator, when asked to read a mapblock, in addition to making
that mapblock available to the caller, also pulls it into the server’s
map cache, thus making get_node calls in the immediate future succeed.

This has the dual advantages that not every mapblock containing a
Mesecons circuit need remain loaded at all times (rather mapblocks can
be loaded on demand as signals are sent), and that the server need not
bother running ABMs and ticking entities within those mapblocks that are
loaded due to Mesecons signalling.
2016-08-24 00:41:47 -07:00