<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mesecons, branch origin/voxelmanip</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<id>http://git.linux-forks.de/mesecons/atom?h=origin%2Fvoxelmanip</id>
<link rel='self' href='http://git.linux-forks.de/mesecons/atom?h=origin%2Fvoxelmanip'/>
<link rel='alternate' type='text/html' href='http://git.linux-forks.de/mesecons/'/>
<updated>2017-02-12T15:55:13+00:00</updated>
<entry>
<title>fix Z-fighting on water turbine</title>
<updated>2017-02-12T15:55:13+00:00</updated>
<author>
<name>Vanessa Ezekowitz</name>
<email>vanessaezekowitz@gmail.com</email>
</author>
<published>2017-02-12T15:55:13+00:00</published>
<link rel='alternate' type='text/html' href='http://git.linux-forks.de/mesecons/commit/?id=50cc79ed0a6144e96d29c060102f8c168234a039'/>
<id>urn:sha1:50cc79ed0a6144e96d29c060102f8c168234a039</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Duplicate unhash_blockpos code to legacy.lua</title>
<updated>2016-08-31T06:46:11+00:00</updated>
<author>
<name>Jeija</name>
<email>norrepli@gmail.com</email>
</author>
<published>2016-08-31T06:46:11+00:00</published>
<link rel='alternate' type='text/html' href='http://git.linux-forks.de/mesecons/commit/?id=54efc64558ec21847c0b8d668bd206e88403a410'/>
<id>urn:sha1:54efc64558ec21847c0b8d668bd206e88403a410</id>
<content type='text'>
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.
</content>
</entry>
<entry>
<title>Remove some long unused legacy code</title>
<updated>2016-08-30T18:54:20+00:00</updated>
<author>
<name>Jeija</name>
<email>norrepli@gmail.com</email>
</author>
<published>2016-08-30T18:54:20+00:00</published>
<link rel='alternate' type='text/html' href='http://git.linux-forks.de/mesecons/commit/?id=dfeb070a2066e9a0c7e41c6c509ec7c2b3d95f8b'/>
<id>urn:sha1:dfeb070a2066e9a0c7e41c6c509ec7c2b3d95f8b</id>
<content type='text'>
The change that required this compatibility layer happened in
2014, so other mods have had a lot of time to update.
</content>
</entry>
<entry>
<title>Small cleanups in `internal.lua`, move forceloading reversal to legacy</title>
<updated>2016-08-30T17:37:43+00:00</updated>
<author>
<name>Jeija</name>
<email>norrepli@gmail.com</email>
</author>
<published>2016-08-30T17:32:11+00:00</published>
<link rel='alternate' type='text/html' href='http://git.linux-forks.de/mesecons/commit/?id=6dacdaee1f942e1ba662ef017b9bde3a238f1732'/>
<id>urn:sha1:6dacdaee1f942e1ba662ef017b9bde3a238f1732</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Greatly improve performance by making use of VoxelManips in turnoff</title>
<updated>2016-08-30T17:12:09+00:00</updated>
<author>
<name>Jeija</name>
<email>norrepli@gmail.com</email>
</author>
<published>2016-08-30T17:12:09+00:00</published>
<link rel='alternate' type='text/html' href='http://git.linux-forks.de/mesecons/commit/?id=e561be7fa36b6de90a759c13d745f8e54359ce3d'/>
<id>urn:sha1:e561be7fa36b6de90a759c13d745f8e54359ce3d</id>
<content type='text'>
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.
</content>
</entry>
<entry>
<title>Further simplification of turnon/turnoff</title>
<updated>2016-08-30T16:24:08+00:00</updated>
<author>
<name>Jeija</name>
<email>norrepli@gmail.com</email>
</author>
<published>2016-08-30T16:24:08+00:00</published>
<link rel='alternate' type='text/html' href='http://git.linux-forks.de/mesecons/commit/?id=89153f6909558d1ba619b30a8c792c5f8493f7bc'/>
<id>urn:sha1:89153f6909558d1ba619b30a8c792c5f8493f7bc</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Simplify turnon/turnoff.</title>
<updated>2016-08-24T07:42:40+00:00</updated>
<author>
<name>Christopher Head</name>
<email>chead@chead.ca</email>
</author>
<published>2016-08-21T17:28:10+00:00</published>
<link rel='alternate' type='text/html' href='http://git.linux-forks.de/mesecons/commit/?id=8e6536ca2edd51175733b972fb24014b342681a8'/>
<id>urn:sha1:8e6536ca2edd51175733b972fb24014b342681a8</id>
<content type='text'>
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.
</content>
</entry>
<entry>
<title>Use VM transactions for conductor state changes.</title>
<updated>2016-08-24T07:42:40+00:00</updated>
<author>
<name>Christopher Head</name>
<email>chead@chead.ca</email>
</author>
<published>2016-08-21T04:54:15+00:00</published>
<link rel='alternate' type='text/html' href='http://git.linux-forks.de/mesecons/commit/?id=bc9d4c2d5a1d535f4abc001d527cc65c78227016'/>
<id>urn:sha1:bc9d4c2d5a1d535f4abc001d527cc65c78227016</id>
<content type='text'>
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.
</content>
</entry>
<entry>
<title>Implement VoxelManipulator-based transactions.</title>
<updated>2016-08-24T07:42:38+00:00</updated>
<author>
<name>Christopher Head</name>
<email>chead@chead.ca</email>
</author>
<published>2016-08-21T04:53:02+00:00</published>
<link rel='alternate' type='text/html' href='http://git.linux-forks.de/mesecons/commit/?id=6d79272ed4966b63e2035b19af07d13f2a0be2a3'/>
<id>urn:sha1:6d79272ed4966b63e2035b19af07d13f2a0be2a3</id>
<content type='text'>
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.
</content>
</entry>
<entry>
<title>Use VoxelManipulators for get_node_force.</title>
<updated>2016-08-24T07:41:47+00:00</updated>
<author>
<name>Christopher Head</name>
<email>chead@chead.ca</email>
</author>
<published>2016-08-21T04:48:18+00:00</published>
<link rel='alternate' type='text/html' href='http://git.linux-forks.de/mesecons/commit/?id=564cee346afcf94339472e75995394f0363a5543'/>
<id>urn:sha1:564cee346afcf94339472e75995394f0363a5543</id>
<content type='text'>
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.
</content>
</entry>
</feed>
