[Mod] [discontinued] xFurniture (various items)

User avatar
Linuxdirk
Member
Posts: 3216
Joined: Wed Sep 17, 2014 11:21
In-game: Linuxdirk
Location: Germany
Contact:

Re: [Mod] xFurniture (various items, WIP)

by Linuxdirk » Post

A lot of technical stuff was going on in the “xTend ecosystem”. xFurniture was partly affected from that.

As a player you don’t need to worry: Everything works as before. Game creators, server owners, companion mod makers, and/or API users should check this list of changes:

https://github.com/4w/xtend/issues/16

User avatar
azekill_DIABLO
Member
Posts: 7507
Joined: Wed Oct 29, 2014 20:05
GitHub: azekillDIABLO
In-game: azekill_DIABLO
Location: OMICRON
Contact:

Re: [Mod] xFurniture (various items, WIP)

by azekill_DIABLO » Post

thanks! will update everything :)
Gone, but not dead. Contact me on discord: azekill_DIABLO#6565
DMs are always open if you want to get in touch!

User avatar
Linuxdirk
Member
Posts: 3216
Joined: Wed Sep 17, 2014 11:21
In-game: Linuxdirk
Location: Germany
Contact:

Re: [Mod] xFurniture (various items, WIP)

by Linuxdirk » Post

Tiny wall update (only visual): All walls and wall parts are shifted up by 3/16th of a node. See commit description why.

Image

Nothing has to be changed, it just looks a little different and you can now use wall extensions as base walls without baseboard (pictured right).

User avatar
Linuxdirk
Member
Posts: 3216
Joined: Wed Sep 17, 2014 11:21
In-game: Linuxdirk
Location: Germany
Contact:

Re: [Mod] xFurniture (various items, WIP)

by Linuxdirk » Post

The mod now has window frames. But not particularly “window frames” … The frames match anything that are panes from the xpanes mod that is a part of a default Minetest installation (or any panes that have similar dimensions, especially thickness and position). The frames are provided in a cross shape, as regular vertical frame and as corner frame in L shape.

Image

Click the Thumbnails for a detailed view.

Image Image Image

Since the frames are centered it is possible to place two of them “into” one pane from both sides.

Image

By placing and rotating the panes (needs some coordination of placement and some patience with the screwdriver) pretty much all shapes are possible.

Image

The frame parts can be combined with other xpanes (and xpanes-like) panes, too.

Image

For the sake of simplicity (and for not registering too many objects) full nodes are not supported, only panes as described.
Last edited by Linuxdirk on Sat Dec 30, 2017 14:56, edited 1 time in total.

User avatar
azekill_DIABLO
Member
Posts: 7507
Joined: Wed Oct 29, 2014 20:05
GitHub: azekillDIABLO
In-game: azekill_DIABLO
Location: OMICRON
Contact:

Re: [Mod] xFurniture (various items, WIP)

by azekill_DIABLO » Post

+1 really nice! you should also show a screenshot of how it works with unified glass!
Gone, but not dead. Contact me on discord: azekill_DIABLO#6565
DMs are always open if you want to get in touch!

User avatar
Linuxdirk
Member
Posts: 3216
Joined: Wed Sep 17, 2014 11:21
In-game: Linuxdirk
Location: Germany
Contact:

Re: [Mod] xFurniture (various items, WIP)

by Linuxdirk » Post

I updated the introduction post to have proper screenshots and documentation.
azekill_DIABLO wrote:you should also show a screenshot of how it works with unified glass!
If it is in the same shape/size of the panes introduced by the xpanes mod it will look pretty much the same.

User avatar
azekill_DIABLO
Member
Posts: 7507
Joined: Wed Oct 29, 2014 20:05
GitHub: azekillDIABLO
In-game: azekill_DIABLO
Location: OMICRON
Contact:

Re: [Mod] xFurniture (various items, WIP)

by azekill_DIABLO » Post

wow, the last picks looks more than awesome!
Gone, but not dead. Contact me on discord: azekill_DIABLO#6565
DMs are always open if you want to get in touch!

User avatar
Linuxdirk
Member
Posts: 3216
Joined: Wed Sep 17, 2014 11:21
In-game: Linuxdirk
Location: Germany
Contact:

Re: [Mod] xFurniture (various items, WIP)

by Linuxdirk » Post

Important technical change that might need taking action!

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. (Filter are not applied in combination but individually.)
  • 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.

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 and the blacklist entries will be complemented with a list of built-in entries.
Spoiler

Code: Select all

# Filter-based node whitelist
#
# The filter-based whitelist is a space-separated list of
# filters. Filters are colon-separated strings containing a
# filter and its value.
#
# 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”.
#
# The following filters are available.
#
# 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
#
# Node names are always the names after the mod prefix. So
# the node name of `mymod:mynode` is “mynode”. An empty
# value means “everything”
#
# Nodes from mods that are not in xFurniture’s depends.txt
# file are ignored.
#
# If nothing is set here xFurniture automatically sets the
# filter `contains:` which means that nodes are not
# filtered and all nodes of mods in `depends.txt` are used
# to generate the objects from.
xfurniture_node_whitelist (Node whitelist) string

# Filter-based node blacklist
#
# The filter-based blacklist is a space-separated list of
# filters. Filters are colon-separated strings containing a
# filter and its value.
#
# See the documentation for the node whitelist for syntax
# and detailled information. The same filters can be used.
#
# The blacklist entries set here are complemented with a
# list of built-in blacklist entries to filter out some
# utterly useless nodes (glasslike, plantlike, chests,
# furnaces, nodeboxed, etc.)
xfurniture_node_blacklist (Node blacklist) string
Sorry for any inconvenience … it’s WIP after all, eh :)

User avatar
azekill_DIABLO
Member
Posts: 7507
Joined: Wed Oct 29, 2014 20:05
GitHub: azekillDIABLO
In-game: azekill_DIABLO
Location: OMICRON
Contact:

Re: [Mod] xFurniture (various items, WIP)

by azekill_DIABLO » Post

This is quality work!
Gone, but not dead. Contact me on discord: azekill_DIABLO#6565
DMs are always open if you want to get in touch!

User avatar
Linuxdirk
Member
Posts: 3216
Joined: Wed Sep 17, 2014 11:21
In-game: Linuxdirk
Location: Germany
Contact:

Re: [Mod] xFurniture (various items, WIP)

by Linuxdirk » Post

Thanks :) I guess the next step will be having easier object registration (IDs should stay the same but descriptions and the actual registration function will change).

https://gitlab.com/4w/xtend/issues/17

User avatar
Linuxdirk
Member
Posts: 3216
Joined: Wed Sep 17, 2014 11:21
In-game: Linuxdirk
Location: Germany
Contact:

Re: [Mod] xFurniture (various items, WIP)

by Linuxdirk » Post

There were some major changes some time ago that might need taking action – again.

The node registration was completely reworked and now is adjusted to Minetest’s style of registration. You need to care if you created an own mod registering objects using xFurniture’s API.

Code: Select all

xfurniture.register('node_base_id', {
    name = 'Name of the Object',
    description = 'One-line description for later use', -- optional
    category = 'Simple category for later use', -- optional
    material = 'modname:nodename',  -- used for texture and recipe
    nodebox = fixed_nodebox_definition,
    recipe = minetest_recipe_definition -- optional
})
There now is an API function get_nodes() taking a table of filterstrings. It returns all nodes that match the provided filters. It can be used like the still available nodes API variable.

Code: Select all

for node in pairs(xfurniture.get_nodes({'contains:wood', 'startswith:stone'})) do
    -- Do something with all nodes supported by xFurniture
    -- that contain `wood` and all nodes whose name starts
    -- with `stone`.
end
See full examples for everything here.

In other news: The mod is now hosted on GitLab instead of GitHub so don’t forget to update your origin URL (it is literally just changing lab to hub in the host name).

User avatar
Linuxdirk
Member
Posts: 3216
Joined: Wed Sep 17, 2014 11:21
In-game: Linuxdirk
Location: Germany
Contact:

Re: [Mod] xFurniture (various items, WIP)

by Linuxdirk » Post

I was thinking about it for some time now and I kinda like the idea to branch xFurniture out of the xTend modpack that was never intended for such large mods.

My idea is to first split the xfurniture folder from the xtend repository and create a new repository containing the xFurniture mod without any changes as only mod in a modpack. This needs unloading and deleting the currently installed mod and cloning and enabling the new modpack.

Next step will be making the mod independent from xtend (nothing on user side needs to be be changed fo this. The API and everything else will remain the same). A long-term solution will be making xFurniture a modpack containing the xFurniture API and all of the objects will be provided by mini mods using the API (like I did for my streetlights API and mods).

The last step will be the most breaking release ever because every ID will become invalid since it will be the mods registering the furniture and the IDs are prefixed by the mod's name.

Since most users of this mod are here and not on GitLab I ask/inform everyone here to discuss this or at least keeping in mind :)

User avatar
BirgitLachner
Member
Posts: 393
Joined: Thu May 05, 2016 10:18
In-game: Bibs

Re: [Mod] xFurniture (various items, WIP)

by BirgitLachner » Post

Sorry for others ... I use german, because it is a but easier

Hallo ...
ich habe mal ein paar Verständnis Fragen. So in Richtung der Erstellung eigener Mods und Nutzung deines Codes.
Was mit bisher noch nicht aufgefallen war ... die Platzierung der Fackelhalter. Man muss ja quasi einen Block vor Abstand vor der Wand klicken. Und um dann die Fackel zu platzieren, an die Wand selber.
Hat das einen Grund, z.B. dass man nicht zwei mal an die gleiche "Stelle" etwas bauen kann?

Eine ähnliche Frage bei dem Sofa ... soweit ich verstanden habe, muss man den Block über dem anklicken, vor dem man das Sofa-Teil stellen kann. Hat das einen speziellen Grund.

Grüße, Birgit

Post Reply

Who is online

Users browsing this forum: No registered users and 4 guests