Commit Graph

931 Commits

Author SHA1 Message Date
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
Carter Kolwey 912f17f335 Split wires into their own mod, introduce autoconnect hooks
The update_autoconnect function had to be abstracted away from the
default wires, any kind of wire can now register autoconnect hooks,
which should make having multiple different wire types much easier.

mesecons_mvps, mesecons_receiver and mesecons_random made use of
update_autoconnect, their code was also adapted. This also fixes a
receiver bug: If a receiver was placed with a onstate receptor next
to it (but not the wall lever / button that caused the receiver to
appear) the receiver didn't turn on in the past.

Also move documentation for mesecon wire into mesecons_wire.
2016-08-23 11:08:53 +02:00
Carter Kolwey 4816dee396 Move shared textures into base mod (fixes a few LuaC issues) 2016-08-23 11:02:12 +02:00
Florian Euchner a3042b44fc Merge pull request #282 from Hawk777/luacontroller-comment
Remove an obsolete comment.
2016-08-16 12:14:33 +02:00
Christopher Head 53eaf2af11
Remove an obsolete comment. 2016-08-16 00:16:24 -07:00
Jeija 778ee427f4 Fix bug introduced in previous commit that broke all logic blocks
turnon / turnoff were calling activate / deactivate on nodes even though
their rules didn't link

Fixes #278, thanks to @darkfeels
2016-07-31 22:26:33 +02:00
Jeija 7c7595fd7d Fix #276: Fix bugs in block forceloading in turnon / turnoff
Thanks to @Hawk777 for reporting this problem
2016-07-25 10:01:43 +02:00
Carter Kolwey acd41b5773 Don't bother checking if a node can overheat before cooling it 2016-07-09 11:17:08 +02:00
number Zero f9f7600017 Command block server crash fixed
Before that, command block would crash the server if activated when no
players are online
2016-07-09 11:01:27 +02:00
Carter Kolwey 40487a65f4 Add protection support to Luacontrollers,
protection is ignored with protection_bypass_priv
2016-05-17 07:58:50 +02:00
Florian Euchner 75308f73e4 Merge pull request #270 from Emon-Omen/patch-1
Fixed missing capital letter in "ghoststone"
2016-05-17 07:53:35 +02:00
Emon 478680292c fixed missing capital letter @ line 29 2016-05-16 22:24:56 +02:00
Jeija 85bc62a65d Add COPYING.txt file to clarify coprights and licenses 2016-05-16 08:04:57 +02:00
Jeija ed3964da80 Remove microcontroller documentation files from the source tree
The files are still available for download in a GitHub release
2016-05-15 19:04:18 +02:00
electrodude 6cae381c27 Luacontroller: Fix `remove_functions` stack overflow bug 2016-04-26 20:40:12 +02:00
Jeija 4249ed4986 Mese as conductor: Fix light source, make code more flexible
Closes #265
2016-04-26 19:44:05 +02:00
Florian Euchner c4f0c5c169 Merge pull request #264 from cheapie/master
Escape command block commands for formspec
2016-04-21 19:26:28 +02:00
Carter Kolwey 2dea21f9ef Escape command block commands for formspec 2016-04-21 02:15:54 -05:00
Pedro Gimeno b487783c23 Disable JIT optimization for user code and allow string.find in plain mode
Disabling LuaJIT for user code enables normal working of debug.sethook() even for loops. The drawback is that that code will run more slowly.

The fourth parameter of string.find indicates whether the second parameter should be interpreted literally (true) or as a pattern (false). Allowing patterns enables DoS attacks, but it's possible to
allow literal matching with little effort, by disallowing the function only if the fourth parameter (plain mode) is not `true`.
2016-04-02 17:31:40 +02:00
Jeija 72e513ecbd Luacontroller: Put clearing debug hook before throwing error back in 2016-03-14 12:51:57 +01:00
Jeija 1e77b193dd Luacontroller: Add safe version of string.rep and remove string.gsub,
fixes #255
2016-03-13 22:01:46 +01:00