Commit Graph

825 Commits

Author SHA1 Message Date
thetaepsilon-gamedev
cb692d2188
Merge pull request #209 from h-v-smacker/luatube_pin_report
Explicitly report the color of incoming port for items coming through tubes
2017-12-25 19:48:21 +00:00
thetaepsilon-gamedev
91bd0c7e98 teleport_tube.lua: add checks for hash collisions in positions table 2017-12-22 17:57:00 +00:00
thetaepsilon-gamedev
57fc8c67f8 teleport_tube.lua: fix 32-bit clamping issues on some systems for %d in string.format
Some servers running ubuntu in particular were reporting issues with teleport tubes not working.
On investigation, all tube entries were colliding as string.format("%d", ...)
was returning either -2^31 or 2^31-1 depending on system bit width,
causing hash entries to be overwritten.
This is possibly related to the use of C sprintf within lua.
Fix this by using %g instead to interpret as double without int conversion,
with a large enough number of digits such that all possible 2^48 values from
minetest.hash_node_position() can be correctly serialised.
2017-12-22 17:18:31 +00:00
thetaepsilon-gamedev
a2e183c6f3 item_transport.lua: split out determination of next position in go_next() into separate function 2017-12-19 23:15:44 +00:00
thetaepsilon-gamedev
fb91ba53f1 item_transport.lua: read cycle direction at start of go_next() in preparation for refactoring 2017-12-19 22:53:18 +00:00
thetaepsilon-gamedev
97522b6a24 item_transport.lua: update return statements in go_next() to include multimode parameter 2017-12-19 18:38:02 +00:00
thetaepsilon-gamedev
755dd26208 item_transport.lua: move tube limit checking before can_go() callback in go_next() 2017-12-19 18:17:22 +00:00
thetaepsilon-gamedev
56362cdd2a item_transport.lua: factor out tube overload code into separate function 2017-12-18 23:07:40 +00:00
thetaepsilon-gamedev
28a3ba44d1 item_transport.lua: initial support in item luaentity for multiple outputs and trajectories from go_next() 2017-12-18 22:38:24 +00:00
thetaepsilon-gamedev
d659cb38b3 item_transport.lua: read extra multimode parameter from go_next callback 2017-12-18 22:07:53 +00:00
h-v-smacker
83c3030494 Explicitly report the color of incoming port for items in tubes 2017-11-30 11:48:51 +03:00
Vanessa Ezekowitz
8fa259c93f remove regular pipe inventory image 2017-11-11 00:22:52 -05:00
Vanessa Ezekowitz
8db1f02bca add craft recipe for straight-only pipe 2017-11-11 00:22:52 -05:00
thetaepsilon-gamedev
59d9e0b97d pressure logic: detect vertical orientation for horizontal rotating flowables 2017-11-04 22:27:47 +00:00
Vanessa Ezekowitz
ee0c276900 added straight-only pipe
(for situations where one might want to run
several closely-spaced parallel pipelines)

Also fixed a bug where a pipe "entry panel" would
report full of water if a pipe next to it (but not
connecting) was also full of water

Only tested under "classic" flowing logic mode.
2017-11-03 23:02:36 -04:00
Vanessa Ezekowitz
e46e2f8c45 clean-up "loaded"/"empty" images
re-UV-map the pipes that use them
2017-11-03 22:46:53 -04:00
Vanessa Ezekowitz
67b777885b Fix bad rotation of highpoly "pipe 5"
(X/Z corner with -Y junction)
2017-11-03 22:14:07 -04:00
Vanessa Ezekowitz
a2f9be258e fix bad UV mapping on high poly entry panel 2017-10-28 11:26:17 -04:00
Vanessa Ezekowitz
d71e371d17 flip pump models around (light faced the wrong way) 2017-10-28 11:05:36 -04:00
Vanessa Ezekowitz
c2bd682388 add models and textures for pressure gauge
to be implemented later
2017-10-27 20:35:37 -04:00
Vanessa Ezekowitz
82524cb448 fix bad n-gon splitting in valve handle
(high-poly model only)
2017-10-27 19:39:47 -04:00
Vanessa Ezekowitz
8ffef8e43c treat unknown node obstructing chest lid as solid
fixes #207
2017-10-27 14:49:25 -04:00
Vanessa Ezekowitz
7b167224f4 Redrew all of the not-low-poly pipe-related models
to higher quality.  Way more polys than before, but
without a measurable drop in FPS.

Also tweaked the textures for the pump and flow
sensor, and tweaked the low-poly models for them,
so that low-poly models use a different part of
the texture for the "light" on the side (allows
the higher-poly models to just put a glow there
and use a raised dome for the actual light).

Also fixed a Z-fighting issue with the grating on
the bottom of the pump (both versions)
2017-10-27 00:30:26 -04:00
Vanessa Ezekowitz
8817918a53 add low-poly mode
to enable, set pipeworks_enable_lowpoly = true in minetest.conf
2017-10-26 04:11:30 -04:00
Vanessa Ezekowitz
dfc09f3acc fix smooth shading on valve and flow sensor 2017-10-25 20:47:12 -04:00
thetaepsilon-gamedev
75978a0207 refactor pressure logic toggle to act as option enum 2017-10-20 22:46:51 +01:00
thetaepsilon-gamedev
538e33c537 init.lua: update pressure logic mode warning 2017-10-20 21:34:08 +01:00
thetaepsilon-gamedev
86fa342d85 default_settings.lua: line wrap length fixes for pressure logic toggle documentation 2017-10-19 21:51:55 +01:00
thetaepsilon-gamedev
d4b32d5fa3 default_settings.lua: document pressure logic settings 2017-10-19 21:41:04 +01:00
thetaepsilon-gamedev
4d1c8d5529 changelog: add entry for pressure logic directionality work 2017-10-19 13:46:30 +01:00
thetaepsilon-gamedev
bd172a3ca1 todo: remove item for directionality code 2017-10-19 13:43:11 +01:00
thetaepsilon-gamedev
b7714df954 devices.lua: convert spigot to single-ended horizontally rotating flowable 2017-10-19 13:41:37 +01:00
thetaepsilon-gamedev
b2b29a1737 pressure logic: rewrite callbacks for horizontal rotation flowables to support singular and double-ended devices 2017-10-19 13:35:31 +01:00
thetaepsilon-gamedev
9df0ec7edb devices.lua: convert entry panel and valve to horizontal rotation flowable class 2017-10-19 13:05:16 +01:00
thetaepsilon-gamedev
fd4bd8eadc devices.lua: make flow sensor use the horizontally rotating flowable class 2017-10-19 12:30:28 +01:00
thetaepsilon-gamedev
0913098a9d pressure logic: add horizontally-rotating directional flowable helper 2017-10-19 12:28:33 +01:00
thetaepsilon-gamedev
efcec7bdce pressure logic: abms.lua: fix invocation bug for directionality callback accidentally passing origin data to neighbour's directionfn 2017-10-19 12:13:44 +01:00
thetaepsilon-gamedev
3a85152e4d devices.lua: make fountainheads directional using fixed vertical helper 2017-10-18 21:44:36 +01:00
thetaepsilon-gamedev
7f7dfb79d5 pressure logic/flowable node registry: move pump directionality code to dedicated fixed vertical helper 2017-10-18 21:20:19 +01:00
thetaepsilon-gamedev
7b141fb0ea todo: rename file for new flow logic in line with aacd5ec 2017-10-18 12:07:16 +01:00
thetaepsilon-gamedev
38a893ec82 todo: update item for pressure logic directionality code 2017-10-18 12:06:00 +01:00
thetaepsilon-gamedev
0a97abcaf6 pressure logic/abms.lua: implement testing of flow direction testing in get_neighbour_positions() 2017-10-18 11:57:31 +01:00
thetaepsilon-gamedev
653aaffa3e pressure logic/abms.lua: rename local variables and retain node data in connection check for-loop 2017-10-18 11:32:16 +01:00
thetaepsilon-gamedev
084bbc6c0b pressure logic: abms.lua: get_neighbour_positions: move calculation of absolute world position to neighbour probing for-loop
This allows the raw offset to be visible inside that for-loop, which will be needed for calling the directionfn for directional neighbours to determine if they can flow in the given direction.
2017-10-18 09:32:33 +01:00
thetaepsilon-gamedev
a69c5e24a9 devices.lua: implement directionfn for pump registration 2017-10-17 23:42:05 +01:00
thetaepsilon-gamedev
0a4d15d26e pressure logic: flowable node registry: add directionfn to directional flowable entries 2017-10-17 23:14:26 +01:00
thetaepsilon-gamedev
909b321f3c pressure logic: abms.lua: refactor balance_pressure() to move responsiblity for checking neighbour flow classes to get_neighbour_positions 2017-10-17 22:20:13 +01:00
thetaepsilon-gamedev
d68d3d5852 pressure logic: abms.lua: move neighbour candidates calculation to separate function 2017-10-17 22:01:29 +01:00
thetaepsilon-gamedev
a7c171940e todo: add item for supporting other fluid types 2017-10-17 14:53:32 +01:00
thetaepsilon-gamedev
aacd5ec829 rename new_flow_logic subdirectory to a less ambiguous name
The "new flow logic" name was supposed to indicate that it was a continuation of the old branch by the same name, but it is beginning to become clear that it's not "new" any more and it might lead to confusion with "classic mode" flow logic while that still co-exists.
Explicitly name the subdirectory "pressure logic" to give a better idea of what goes in it, init.lua edited accordingly.
2017-10-17 14:20:55 +01:00