]> git.lizzy.rs Git - xdecor.git/commitdiff
Add Ender Chest and Trash Can
authorjp <jeanpatrick.guerrero@gmail.com>
Sun, 5 Jul 2015 14:40:33 +0000 (16:40 +0200)
committerjp <jeanpatrick.guerrero@gmail.com>
Sun, 5 Jul 2015 15:29:52 +0000 (17:29 +0200)
crafts.lua
hive.lua
nodes.lua
textures/xdecor_enderchest_front.png [new file with mode: 0644]
textures/xdecor_enderchest_side.png [new file with mode: 0644]
textures/xdecor_enderchest_top.png [new file with mode: 0644]
worktable.lua

index 7215e30065034ee9afa39e74c7203fcea1239efa..407fdb02bc4b85b0dd0b6801fd980035e86ff56e 100644 (file)
@@ -97,6 +97,15 @@ minetest.register_craft({
        }
 })
 
+minetest.register_craft({
+       output = "xdecor:enderchest",
+       recipe = {
+               {"", "default:obsidian", ""},
+               {"default:obsidian", "default:chest", "default:obsidian"},
+               {"", "default:obsidian", ""}
+       }
+})
+
 minetest.register_craft({
        output = "xdecor:fence_wrought_iron 2",
        recipe = {
@@ -285,6 +294,15 @@ minetest.register_craft({
        } 
 })
 
+minetest.register_craft({
+       output = "xdecor:trash_can",
+       recipe = {
+               {"group:wood", "", "group:wood"},
+               {"group:wood", "", "group:wood"},
+               {"group:wood", "group:wood", "group:wood"}
+       }
+})
+
 minetest.register_craft({
        output = "xdecor:tv",
        recipe = {
index 3a64913d7ef1bdc2cd93d3ba0359e3855124b97d..34015e5fc06e9b74a34d8ccecc13805c254e3422 100644 (file)
--- a/hive.lua
+++ b/hive.lua
@@ -42,9 +42,9 @@ xdecor.register("hive", {
        allow_metadata_inventory_put = function(pos, listname, index, stack, player)
                local meta = minetest.get_meta(pos)
                local inv = meta:get_inventory()
-               local to_stack = inv:get_stack(listname, index)
 
                if listname == "honey" then return 0 end
+               return stack:get_count()
        end,
 })
 
index b3c0e262b5c4b67f6bba470ce099614ff98ece6a..e0de3c5ac340aebdb0fbcc9b0dfdde2cef8a3be2 100644 (file)
--- a/nodes.lua
+++ b/nodes.lua
@@ -222,6 +222,32 @@ xdecor.register("empty_shelf", {
        sounds = xdecor.wood
 })
 
+xdecor.register("enderchest", {
+       description = "Ender Chest",
+       tiles = {
+               "xdecor_enderchest_top.png",
+               "xdecor_enderchest_top.png",
+               "xdecor_enderchest_side.png",
+               "xdecor_enderchest_side.png",
+               "xdecor_enderchest_side.png",
+               "xdecor_enderchest_front.png"
+       },
+       groups = {cracky=2},
+       on_construct = function(pos)
+               local meta = minetest.get_meta(pos)
+               meta:set_string("formspec",
+                               "size[8,9]"..xdecor.fancy_gui..
+                               "list[current_player;enderchest;0,0;8,4;]"..
+                               "list[current_player;main;0,5;8,4;]")
+               meta:set_string("infotext", "Ender Chest")
+       end
+})
+
+minetest.register_on_joinplayer(function(player)
+       local inv = player:get_inventory()
+       inv:set_size("enderchest", 8*4)
+end)
+
 local fence_sbox = {
        type = "fixed",
        fixed = {-1/7, -1/2, -1/7, 1/7, 1/2, 1/7}
@@ -472,6 +498,47 @@ xdecor.register("tatami", {
        }
 })
 
+xdecor.register("trash_can", {
+       description = "Trash Can",
+       tiles = {"xdecor_wood.png"},
+       groups = {choppy=3, flammable=2},
+       sounds = xdecor.wood,
+       node_box = {
+               type = "fixed",
+               fixed = {
+                       {-0.3125, -0.5, 0.3125, 0.3125, 0.5, 0.375},
+                       {0.3125, -0.5, -0.375, 0.375, 0.5, 0.375},
+                       {-0.3125, -0.5, -0.375, 0.3125, 0.5, -0.3125},
+                       {-0.375, -0.5, -0.375, -0.3125, 0.5, 0.375},
+                       {-0.3125, -0.5, -0.3125, 0.3125, -0.4375, 0.3125}
+               }
+       },
+       collision_box = {
+               type = "fixed",
+               fixed = {
+                       {-0.375, -0.5, 0.375, 0.375, 0.25, 0.375},
+                       {0.375, -0.5, -0.375, 0.375, 0.25, 0.375},
+                       {-0.375, -0.5, -0.375, 0.375, 0.25, -0.375},
+                       {-0.375, -0.5, -0.375, -0.375, 0.25, 0.375},
+                       {-0.375, -0.5, -0.375, 0.375, -0.4375, 0.375}
+               }
+       },
+       on_construct = function(pos)
+               local meta = minetest.get_meta(pos)
+               meta:set_string("infotext", "Trash Can - throw your waste here!")
+       end
+})
+
+-- Thanks to Evergreen for this code.
+local old_on_step = minetest.registered_entities["__builtin:item"].on_step
+minetest.registered_entities["__builtin:item"].on_step = function(self, dtime)
+       if minetest.get_node(self.object:getpos()).name == "xdecor:trash_can" then
+               self.object:remove()
+               return
+       end
+       old_on_step(self, dtime)
+end
+
 xdecor.register("tv", {
        description = "Television",
        light_source = 11,
diff --git a/textures/xdecor_enderchest_front.png b/textures/xdecor_enderchest_front.png
new file mode 100644 (file)
index 0000000..c4bb284
Binary files /dev/null and b/textures/xdecor_enderchest_front.png differ
diff --git a/textures/xdecor_enderchest_side.png b/textures/xdecor_enderchest_side.png
new file mode 100644 (file)
index 0000000..161d8fa
Binary files /dev/null and b/textures/xdecor_enderchest_side.png differ
diff --git a/textures/xdecor_enderchest_top.png b/textures/xdecor_enderchest_top.png
new file mode 100644 (file)
index 0000000..938e402
Binary files /dev/null and b/textures/xdecor_enderchest_top.png differ
index 0a00b940c96a0b8c6aedef994e29672e496dc775..b6ad9ac793e9ec50aebe302f8234ce3af896b7ea 100644 (file)
@@ -108,13 +108,18 @@ end
 local function xput(pos, listname, index, stack, player)
        local meta = minetest.get_meta(pos)
        local inv = meta:get_inventory()
-       local to_stack = inv:get_stack(listname, index)
 
        if listname == "output" then
                return 0
-       else
-               return 99
        end
+       if listname == "fuel" then
+               if stack:get_name() == "xdecor:hammer" then
+                       return stack:get_count()
+               else
+                       return 0
+               end
+       end
+       return stack:get_count()
 end
 
 xdecor.register("worktable", {