Skip to content
Snippets Groups Projects
  1. Sep 04, 2016
  2. Aug 31, 2016
    • Jeija's avatar
      Duplicate unhash_blockpos code to legacy.lua · 54efc645
      Jeija authored
      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.
      54efc645
  3. Aug 30, 2016
  4. Aug 24, 2016
    • Christopher Head's avatar
      Simplify turnon/turnoff. · 8e6536ca
      Christopher Head authored
      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.
      8e6536ca
    • Christopher Head's avatar
      Use VM transactions for conductor state changes. · bc9d4c2d
      Christopher Head authored
      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.
      bc9d4c2d
    • Christopher Head's avatar
      Implement VoxelManipulator-based transactions. · 6d79272e
      Christopher Head authored
      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.
      6d79272e
    • Christopher Head's avatar
      Use VoxelManipulators for get_node_force. · 564cee34
      Christopher Head authored
      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.
      564cee34
  5. Aug 23, 2016
    • Carter Kolwey's avatar
      Split wires into their own mod, introduce autoconnect hooks · 912f17f3
      Carter Kolwey authored
      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.
      912f17f3
    • Carter Kolwey's avatar
  6. Aug 16, 2016
  7. Jul 31, 2016
  8. Jul 25, 2016
  9. Jul 09, 2016
  10. May 17, 2016
  11. May 16, 2016
  12. May 15, 2016
  13. Apr 26, 2016
  14. Apr 21, 2016
  15. Apr 02, 2016
    • Pedro Gimeno's avatar
      Disable JIT optimization for user code and allow string.find in plain mode · b487783c
      Pedro Gimeno authored
      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`.
      b487783c
  16. Mar 14, 2016
  17. Mar 13, 2016
  18. Feb 28, 2016
  19. Feb 27, 2016
  20. Feb 23, 2016
  21. Feb 19, 2016
    • Jeija's avatar
      Remove unused VERSION file · c7428d81
      Jeija authored
      and remove debug output
      c7428d81
    • Jeija's avatar
      Force-load areas with mesecon usage · cfd4f7c2
      Jeija authored
      This is a major speedup for large mesecon machines / structures.
      Force-loaded areas are stored in a file to be persistent over server
      reboots. By default, areas are unloaded after 10 minutes (600s) without
      usage, this can be customized with the mesecon.forceload_timeout
      setting. Please turn max_forceloaded_blocks up for better performance.
      cfd4f7c2
  22. Feb 16, 2016
  23. Feb 15, 2016
Loading