Skip to content
Snippets Groups Projects
  1. Mar 12, 2016
    • Auke Kok's avatar
      Allow nodes to specify which sides to connect to. · 37b4f0d3
      Auke Kok authored
      NDT_CONNECTED attempts to connect to any side of nodes that it can
      connect to, which is troublesome for FACEDIR type nodes that generally
      may only have one usable face, and can be rotated.
      
      We introduce a node parameter `connect_sides` that is valid for
      any node type. If specified, it lists faces of the node (in "top",
      "bottom", "front", "left", "back", "right", form, as array) that
      connecting nodeboxes can connect to. "front" corresponds to the south
      facing side of a node with facedir = 0.
      
      If the node is rotatable using *simple* FACEDIR, then the attached
      face is properly rotated before checking. This allows e.g. a chest
      to be attached to only from the rear side.
      37b4f0d3
    • Auke Kok's avatar
      Nodebox: Allow nodeboxes to "connect" · e737b1c2
      Auke Kok authored
      We introduce a new nodebox type "connected", and allow these nodes to
      have optional nodeboxes that connect it to other connecting nodeboxes.
      
      This is all done at scenedraw time in the client. The client will
      inspect the surrounding nodes and if they are to be connected to,
      it will draw the appropriate connecting nodeboxes to make those
      connections.
      
      In the node_box definition, we have to specify separate nodeboxes for
      each valid connection. This allows us to make nodes that connect only
      horizontally (the common case) by providing optional nodeboxes for +x,
      -x, +z, -z directions. Or this allows us to make wires that can connect
      up and down, by providing nodeboxes that connect it up and down (+y,
      -y) as well.
      
      The optional nodeboxes can be arrays. They are named "connect_top,
      "connect_bottom", "connect_front", "connect_left", "connect_back" and
      "connect_right". Here, "front" means the south facing side of the node
      that has facedir = 0.
      
      Additionally, a "fixed" nodebox list present will always be drawn,
      so one can make a central post, for instance. This "fixed" nodebox
      can be omitted, or it can be an array of nodeboxes.
      
      Collision boxes are also updated in exactly the same fashion, which
      allows you to walk over the upper extremities of the individual
      node boxes, or stand really close to them. You can also walk up
      node noxes that are small in height, all as expected, and unlike the
      NDT_FENCELIKE nodes.
      
      I've posted a screenshot demonstrating the flexibility at
          http://i.imgur.com/zaJq8jo.png
      In the screenshot, all connecting nodes are of this new subtype.
      
      Transparent textures render incorrectly, Which I don't think is
      related to this text, as other nodeboxes also have issues with this.
      
      A protocol bump is performed in order to be able to send older clients
      a nodeblock that is usable for them. In order to avoid abuse of users
      we send older clients a "full-size" node, so that it's impossible for
      them to try and walk through a fence or wall that's created in this
      fashion. This was tested with a pre-bump client connected against a
      server running the new protocol.
      
      These nodes connect to other nodes, and you can select which ones
      those are by specifying node names (or group names) in the
      connects_to string array:
            connects_to = { "group:fence", "default:wood" }
      By default, nodes do not connect to anything, allowing you to create
      nodes that always have to be paired in order to connect. lua_api.txt
      is updated to reflect the extension to the node_box API.
      
      Example lua code needed to generate these nodes can be found here:
          https://gist.github.com/sofar/b381c8c192c8e53e6062
      e737b1c2
    • ShadowNinja's avatar
      Fix chat console not opening after formspec opened over it · 8c951cae
      ShadowNinja authored
      The MainMenuManager set the console invisible when a
      formspec opened over it, but didn't properly close it,
      and the chat console never set itself visible again.
      8c951cae
    • paramat's avatar
  2. Mar 11, 2016
    • orwell96's avatar
      Fix ask_reconnect_on_crash option being ignored · 0d2df732
      orwell96 authored
      Since commit
      
      3b50b276 "Optional reconnect functionality"
      
      there is a config option named ask_reconnect_on_crash.
      It asks the client to reconnect to the server if the server crashed.
      It has been implemeted and works, but due to a function parameter not
      being passed it never showed effect. This patch adds the parameter
      and fixes the bug.
      
      Also fixes the `reconnect` option of minetest.request_shutdown being ignored.
      0d2df732
  3. Mar 09, 2016
    • Auke Kok's avatar
      Avoid try/catch for settings. · dc8bf4e9
      Auke Kok authored
      We can just test for the presence of these settings nicely here,
      no need to use a try / catch construct.
      dc8bf4e9
    • Auke Kok's avatar
      Add consistent monotonic day counter - get_day_count() · 4e59fcf5
      Auke Kok authored
      I've written several experimental bits of code that revolve around the
      need for a consistent calendar, but implementing one is extremely hard
      in mods due to time changes and mods overriding core.get_timeofday(),
      which will conflict.
      
      The second part of the problem is that doing this from a mod requires
      constant maintenance of a settings file.
      
      An implementation in core is trivial, however, and solves all of
      these problems at virtually no cost: No extra branches in server
      steps, and a single branch when minetest.set_time_of_day(), which is
      entirely reasonable.
      
      We store the day_count value in env_meta.txt.
      
      The use case is obvious: This change allows mods to create an actual
      virtual calendar, or properly account for seasonal changes, etc..
      
      We add a "/days" chatcommand that displays the current day count. No
      permissions are needed. It can only retrieve the day count, not
      modify it.
      4e59fcf5
  4. Mar 07, 2016
  5. Mar 04, 2016
  6. Mar 03, 2016
  7. Mar 01, 2016
  8. Feb 27, 2016
  9. Feb 26, 2016
  10. Feb 24, 2016
    • paramat's avatar
      Sheet Ore: Eliminate crash caused by PcgRandom range max < min · 85917134
      paramat authored
      In the calculation of y_start,
      when 'column height max' was large it caused
      nmin.Y + max_height > nmax.Y - max_height
      Now, in this situation y_start is set to the
      midpoint between nmin.Y and nmax.Y
      
      Limit y0 and y1 to between nmin.Y and nmax.Y,
      otherwise index calculation, which has no checks for limits,
      places them at unwanted locations in the voxelmanip
      85917134
  11. Feb 23, 2016
Loading