1. 11 Jun, 2018 4 commits
    • Dirk's avatar
      API documentation update · a0ddc479
      Dirk authored
    • Dirk's avatar
      implement node filtering · 3095475a
      Dirk authored
      the API function `get_nodes()` returns a list of all supported and
      pre-filtered nodes. In addition to that the API table `nodes` has this
      nodes already pre-loaded for use in other mods.
      The function takes a parameter for allowing ad-hoc whitelisting of nodes
      from the pre-filtered nodes list. The syntax is identical to the
      filterstrings implemented with the nodes whitelist and blacklist
      functionality and is described there. The optional parameter has to be
      a table of filterstrings. The built-in furniture uses the API table.
    • Dirk's avatar
      use function to get nodes instead of table · a97fedd0
      Dirk authored
    • Dirk's avatar
      clean up init information for later reimplemtation · 2e0c7674
      Dirk authored
  2. 05 Jun, 2018 1 commit
  3. 27 May, 2018 1 commit
  4. 26 May, 2018 1 commit
  5. 23 May, 2018 1 commit
  6. 22 May, 2018 1 commit
  7. 21 May, 2018 3 commits
  8. 19 May, 2018 4 commits
    • Dirk's avatar
      fix undeclared variable error · ea02d09b
      Dirk authored
      According to some research using rawser() is actually pretty common and
      not seen as bad practice.
    • Dirk's avatar
      i18n update · e5146767
      Dirk authored
    • Dirk's avatar
      change to nodeboxes (no machine filters · 46499c91
      Dirk authored
    • Dirk's avatar
      rework node fetching · 5d03a6da
      Dirk authored
      Before this commit node fetching was kind of a mess. Now nodes are
      fetched based on simple but powerful filter lists. A filter list is
      a space-separated string of filter strings. A filter string is
      a colon-separated string of a filter type and a filter value.
      This commit introduces `xfurniture_node_backlist` and
      `xfurniture_node_whitelist`. Both are taking the following filters.
      * group       Matches the group a node is in
      * startswith  Matches the beginning of node name
      * endswith    Matches the end of a node name
      * contains    Matches if a node name contains the value
      * origin      Matches the node’s mod_origin value
      * drawtype    Matches the node’s drawtype value
      * a node ID   Matches the exact node ID
      The name of the node is always the node’s ID without the mod prefix.
      For example: `default:dirt` becomes `dirt`. And the filter `contains`
      allows Lua patterns to be used.
      Filter are not applied in combination but individually. So for example
      setting `group:foo endwith:bar` will not match all nodes that are in
      group “foo” and end with “bar” but will match all nodes in group “foo”
      and all nodes that end with “bar”.
      If the whitelist is not configured by the user it will automatically be
      set to `contains:` which results in all supported nodes being used to
      create the objects.
      The blacklist entries will be complemented with a list of built-in
      entries that filter out utterly useless nodes (glasslike, plantlike,
      chests, furnaces, nodeboxes, etc.)
  9. 17 May, 2018 1 commit
    • Dirk's avatar
      move configuration to mod’s spaces and more · abe2c828
      Dirk authored
      All mods are now properly separated form xTend’s other options in an own
      table `_xtend.mods`. All configuration was moved into the individual
      mod’s tables, too. All individual mod’s tables are now propery cleaned
      after the mod was loaded.
      Also some changes to the xTend API (see documentation of
  10. 13 May, 2018 1 commit
    • Dirk's avatar
      allow mods to access their dependencies · 802ecd00
      Dirk authored
      This commit adds a table entry to the init table of the mods that
      contains the mod’s dependencies. Mods can access them by
      As first mod xFurniture uses this to prevent registering of nodes
      basing on nodes outside the dependencies.
  11. 17 Mar, 2018 1 commit
  12. 28 Jan, 2018 1 commit
  13. 03 Jan, 2018 1 commit
  14. 29 Dec, 2017 4 commits
    • Dirk's avatar
      adjust frame lengths to cover corners · 8eb3e601
      Dirk authored
    • Dirk's avatar
      add frames for xpanes panes · 6543d8e0
      Dirk authored
      The panes come in three shapes +, L, and |. All of them are rotatable
      and look the same no matter from what direction they are placed so this
      three parts cover pretty much all common frame shapes.
    • Dirk's avatar
      clean up indent style (all-space) and EOL spaces · 3e17ae3a
      Dirk authored
    • Dirk's avatar
      rework wall nodeboxes to be 1 node high · 167b2ce8
      Dirk authored
      Before this commit wall nodeboxes were designed to be one node high in
      total when putting a wall top on the walls. The wall top is 3/16 high
      that means that all wall parts were lowered by 3/16 on the upside and
      extended by 3/16 on the botton (optically reaching into the node below).
      This resulted in not being able to use the wall extensions as wall bases
      by placing them on the ground without having 3/16 being either buried
      or protuding to the layer below the wall was placed on.
      This commit fixes the issue by moving all wall parts 3/16 upwards. Now
      walls are exact one node high and are completely within that node. In
      result walls with a wall top are now 19/16 high (16/16 for the wall and
      additional 3/16 for the wall top placed on the wall).
      Nothing has to be changes, all nodes still match. This is just a little
      optical tweak - oh, and now wall extensions can be properly used as base
      walls, too.
  15. 28 Dec, 2017 9 commits
    • Dirk's avatar
      rework xFurniture after-init to work with cleanup · 3332f2be
      Dirk authored
      some of the functions and variables are now re-created or re-load 2-3
      times (not while looping over all nodes of course). This is needed so
      the crafting addition and the API are properly working after cleaning
      the mod’s entry from the gobal _xtend table.
    • Dirk's avatar
      switch from type namespaces to mod namespaces · d6e33e5c
      Dirk authored
      Before this commit all mods had to store their global information into
      different tables within the global _xtend table. Now mods have their own
      idividual mod-named namespace where they can do whatever they want.
    • Dirk's avatar
      get rid of modpath table entry in _xtend · aaff0804
      Dirk authored
    • Dirk's avatar
      add a cleanup function · c8ef4d55
      Dirk authored
      Use _xtend.clean() after a mod is processed (end of `init.lua` file for
      example) to remove all entries regarding this mod from the global _xtend
      table because they are not needed any longer.
    • Dirk's avatar
      readme update · 74425b03
      Dirk authored
    • Dirk's avatar
      change _xtend.get_option() to be more specific · 96d53ba1
      Dirk authored
      Since _xtend.get_option() should only be used to get an xTend mod’s
      options manually having to provide the option prefix is a waste of space
      and adds unnecessary redundancy.
      The function is altered to take an unprefixed option and automatically
      prefixes it with the mod name. The prefixed name is then searched in the
      configuration. This means that in the `settingtypes.txt` file and in
      all other locations where _xtend.get_option() is not used the prefix has
      to be added manually like before.
    • Dirk's avatar
      allow logging function to have an option loglevel · 433761fa
      Dirk authored
    • Dirk's avatar
      rename _xtend.d to _xtend.log · 83d8d151
      Dirk authored
    • Dirk's avatar
      rename _xtend.t to _xtend.translate · ee880790
      Dirk authored
  16. 27 Dec, 2017 6 commits