From ea938237d58a31209935a13c4884f92d5a98e070 Mon Sep 17 00:00:00 2001 From: Elias Fleckenstein Date: Sun, 3 Jan 2021 14:21:35 +0100 Subject: [PATCH] Animated Chests --- mods/ITEMS/mcl_chests/init.lua | 265 +++++++++++++++--- .../mcl_chests/models/mcl_chests_chest.b3d | Bin 0 -> 6075 bytes .../mcl_chests/models/mcl_chests_chest.obj | 91 ++++++ .../models/mcl_chests_double_chest.b3d | Bin 0 -> 10342 bytes .../mcl_chests/sounds/default_chest_close.ogg | Bin 0 -> 10768 bytes .../mcl_chests/sounds/default_chest_open.ogg | Bin 0 -> 11092 bytes .../textures/mcl_chests_trapped.png | Bin 0 -> 1209 bytes .../textures/mcl_chests_trapped_double.png | Bin 0 -> 2011 bytes 8 files changed, 320 insertions(+), 36 deletions(-) create mode 100644 mods/ITEMS/mcl_chests/models/mcl_chests_chest.b3d create mode 100644 mods/ITEMS/mcl_chests/models/mcl_chests_chest.obj create mode 100644 mods/ITEMS/mcl_chests/models/mcl_chests_double_chest.b3d create mode 100644 mods/ITEMS/mcl_chests/sounds/default_chest_close.ogg create mode 100644 mods/ITEMS/mcl_chests/sounds/default_chest_open.ogg create mode 100644 mods/ITEMS/mcl_chests/textures/mcl_chests_trapped.png create mode 100644 mods/ITEMS/mcl_chests/textures/mcl_chests_trapped_double.png diff --git a/mods/ITEMS/mcl_chests/init.lua b/mods/ITEMS/mcl_chests/init.lua index 3d5fbbca3..fdfae533a 100644 --- a/mods/ITEMS/mcl_chests/init.lua +++ b/mods/ITEMS/mcl_chests/init.lua @@ -7,6 +7,148 @@ if minetest.get_modpath("screwdriver") then simple_rotate = screwdriver.rotate_simple end +-- Chest Entity +local entity_animations = {} +local entity_animation_speed = 25 + +do + local names = {"open", "opened", "close", "closed"} + local following = {["open"] = "opened", ["close"] = "closed"} + local durations = {10, 0, 10, 5} + local anim_start = 0 + for index, name in ipairs(names) do + local duration = durations[index] + local anim_end = anim_start + duration + entity_animations[name] = { + bounds = {x = anim_start, y = anim_end}, + sched_anim = following[name], + sched_time = duration / entity_animation_speed + } + anim_start = anim_end + end +end + +minetest.register_entity("mcl_chests:chest", { + initial_properties = { + visual = "mesh", + visual_size = {x = 3, y = 3}, + pointable = false, + physical = false, + }, + + set_animation = function(self, animname) + local anim = entity_animations[animname] + self.object:set_animation(anim.bounds, entity_animation_speed, 0, false) + if anim.sched_anim then + self.sched_anim = anim.sched_anim + self.sched_time = anim.sched_time + end + end, + + open = function(self, playername) + self.players[playername] = true + if not self.is_open then + self.is_open = true + self:set_animation("open") + minetest.sound_play("default_chest_open", { + pos = self.node_pos, + }) + end + end, + + close = function(self, playername) + local playerlist = self.players + playerlist[playername] = nil + if self.is_open then + for _ in pairs(playerlist) do + return + end + self.is_open = false + self:set_animation("close") + minetest.sound_play("default_chest_close", { + pos = self.node_pos, + }) + end + end, + + initialize = function(self, node_pos, node_name, textures, dir, double) + self.node_pos = node_pos + self.node_name = node_name + local obj = self.object + obj:set_properties({textures = textures}) + obj:set_yaw(minetest.dir_to_yaw(dir)) + obj:set_properties({mesh = double and "mcl_chests_double_chest.b3d" or "mcl_chests_chest.b3d"}) + end, + + check = function(self) + local node_pos, node_name = self.node_pos, self.node_name + if not node_pos or not node_name then + return false + end + local node = minetest.get_node(node_pos) + if node.name ~= node_name then + return false + end + return true + end, + + on_activate = function(self) + self.object:set_armor_groups({immortal = 1}) + self:set_animation("closed") + self.players = {} + end, + + on_step = function(self, dtime) + local sched_anim, sched_time = self.sched_anim, self.sched_time + if not self:check() then + self.object:remove() + elseif sched_anim and sched_time then + sched_time = sched_time - dtime + if sched_time < 0 then + self:set_animation(sched_anim) + self.sched_time = nil + self.sched_anim = nil + else + self.sched_time = sched_time + end + end + end +}) + +local function get_entity_pos(pos, dir, double) + pos = vector.new(pos) + pos.y = pos.y - 0.4375 + if double then + local add, mul, vec, cross = vector.add, vector.multiply, vector.new, vector.cross + pos = add(pos, mul(cross(dir, vec(0, 1, 0)), -0.5)) + end + return pos +end + +local function find_entity(pos) + for _, obj in ipairs(minetest.get_objects_inside_radius(pos, 0)) do + local luaentity = obj:get_luaentity() + if luaentity and luaentity.name == "mcl_chests:chest" then + return luaentity + end + end +end + +local function create_entity(pos, node_name, textures, param2, double, dir, entity_pos) + dir = dir or minetest.facedir_to_dir(param2) + entity_pos = entity_pos or get_entity_pos(pos, dir, double) + local obj = minetest.add_entity(entity_pos, "mcl_chests:chest") + local luaentity = obj:get_luaentity() + luaentity:initialize(pos, node_name, textures, dir, double) + return luaentity +end + +local function find_or_create_entity(pos, node_name, textures, param2, double) + local dir = minetest.facedir_to_dir(param2) + local entity_pos = get_entity_pos(pos, dir, double) + return find_entity(entity_pos) or create_entity(pos, node_name, textures, param2, double, dir, entity_pos) +end + --[[ List of open chests. Key: Player name Value: @@ -14,8 +156,10 @@ Value: Otherwise: nil ]] local open_chests = {} -- To be called if a player opened a chest -local player_chest_open = function(player, pos) - open_chests[player:get_player_name()] = { pos = pos } +local player_chest_open = function(player, pos, node_name, textures, param2, double) + local name = player:get_player_name() + open_chests[name] = {pos = pos, node_name = node_name, textures = textures, param2 = param2, double = double} + find_or_create_entity(pos, node_name, textures, param2, double):open(name) end -- Simple protection checking functions @@ -67,11 +211,12 @@ end -- To be called if a player closed a chest local player_chest_close = function(player) local name = player:get_player_name() - if open_chests[name] == nil then + local open_chest = open_chests[name] + if open_chest == nil then return end - local pos = open_chests[name].pos - chest_update_after_close(pos) + find_or_create_entity(open_chest.pos, open_chest.node_name, open_chest.textures, open_chest.param2, open_chest.double):close(name) + chest_update_after_close(open_chest.pos) open_chests[name] = nil end @@ -146,18 +291,34 @@ local on_chest_blast = function(pos) minetest.remove_node(pos) end -minetest.register_node("mcl_chests:"..basename, { +local small_name = "mcl_chests:"..basename +local small_textures = tiles_table.small +local left_name = "mcl_chests:"..basename.."_left" +local left_textures = tiles_table.double + +minetest.register_node(small_name, { description = desc, _tt_help = tt_help, _doc_items_longdesc = longdesc, _doc_items_usagehelp = usagehelp, _doc_items_hidden = hidden, - tiles = tiles_table.small, + drawtype = "airlike", + selection_box = { + type = "fixed", + fixed = {-0.4375, -0.5, -0.4375, 0.4375, 0.375, 0.4375}, + }, + collision_box = { + type = "fixed", + fixed = {-0.4375, -0.5, -0.4375, 0.4375, 0.375, 0.4375}, + }, + inventory_image = "mcl_chests_normal.png", + tiles = {"blank.png"}, + _chest_entity_textures = small_textures, paramtype = "light", paramtype2 = "facedir", stack_max = 64, drop = drop, - groups = {handy=1,axey=1, container=2, deco_block=1, material_wood=1,flammable=-1}, + groups = {handy=1,axey=1, container=2, deco_block=1, material_wood=1,flammable=-1,chest_entity=1}, is_ground_content = false, sounds = mcl_sounds.node_sound_wood_defaults(), on_construct = function(pos) @@ -189,12 +350,15 @@ minetest.register_node("mcl_chests:"..basename, { minetest.swap_node(pos, {name="mcl_chests:"..canonical_basename.."_right",param2=param2}) local p = mcl_util.get_double_container_neighbor_pos(pos, param2, "right") minetest.swap_node(p, { name = "mcl_chests:"..canonical_basename.."_left", param2 = param2 }) + create_entity(p, "mcl_chests:"..canonical_basename.."_left", left_textures, param2, true) elseif minetest.get_node(mcl_util.get_double_container_neighbor_pos(pos, param2, "left")).name == "mcl_chests:"..canonical_basename then minetest.swap_node(pos, {name="mcl_chests:"..canonical_basename.."_left",param2=param2}) + create_entity(pos, "mcl_chests:"..canonical_basename.."_left", left_textures, param2, true) local p = mcl_util.get_double_container_neighbor_pos(pos, param2, "left") minetest.swap_node(p, { name = "mcl_chests:"..canonical_basename.."_right", param2 = param2 }) else minetest.swap_node(pos, { name = "mcl_chests:"..canonical_basename, param2 = param2 }) + create_entity(pos, small_name, small_textures, param2, false) end end, after_place_node = function(pos, placer, itemstack, pointed_thing) @@ -235,7 +399,7 @@ minetest.register_node("mcl_chests:"..basename, { if name == "" then name = S("Chest") end - + minetest.show_formspec(clicker:get_player_name(), "mcl_chests:"..canonical_basename.."_"..pos.x.."_"..pos.y.."_"..pos.z, "size[9,8.75]".. @@ -253,6 +417,8 @@ minetest.register_node("mcl_chests:"..basename, { if on_rightclick_addendum then on_rightclick_addendum(pos, node, clicker) end + + player_chest_open(clicker, pos, small_name, small_textures, node.param2, false) end, on_destruct = function(pos) @@ -265,11 +431,21 @@ minetest.register_node("mcl_chests:"..basename, { on_rotate = simple_rotate, }) -minetest.register_node("mcl_chests:"..basename.."_left", { - tiles = tiles_table.left, +minetest.register_node(left_name, { + drawtype = "nodebox", + selection_box = { + type = "fixed", + fixed = {-0.4375, -0.5, -0.4375, 1.4375, 0.375, 0.4375}, + }, + collision_box = { + type = "fixed", + fixed = {-0.4375, -0.5, -0.4375, 1.4375, 0.375, 0.4375}, + }, + tiles = {"blank.png"}, + _chest_entity_textures = left_textures, paramtype = "light", paramtype2 = "facedir", - groups = {handy=1,axey=1, container=5,not_in_creative_inventory=1, material_wood=1,flammable=-1}, + groups = {handy=1,axey=1, container=5,not_in_creative_inventory=1, material_wood=1,flammable=-1,chest_entity=1,double_chest=1}, drop = drop, is_ground_content = false, sounds = mcl_sounds.node_sound_wood_defaults(), @@ -281,6 +457,7 @@ minetest.register_node("mcl_chests:"..basename.."_left", { n.name = "mcl_chests:"..canonical_basename minetest.swap_node(pos, n) end + create_entity(pos, left_name, left_textures, param2, true) end, after_place_node = function(pos, placer, itemstack, pointed_thing) minetest.get_meta(pos):set_string("name", itemstack:get_meta():get_string("name")) @@ -305,6 +482,7 @@ minetest.register_node("mcl_chests:"..basename.."_left", { minetest.close_formspec(players[pl]:get_player_name(), "mcl_chests:"..canonical_basename.."_"..p.x.."_"..p.y.."_"..p.z) end minetest.swap_node(p, { name = "mcl_chests:"..basename, param2 = param2 }) + create_entity(p, "mcl_chests:"..basename, small_textures, param2, false) end, after_dig_node = drop_items_chest, on_blast = on_chest_blast, @@ -399,16 +577,26 @@ minetest.register_node("mcl_chests:"..basename.."_left", { if on_rightclick_addendum_left then on_rightclick_addendum_left(pos, node, clicker) end + + player_chest_open(clicker, pos, left_name, left_textures, node.param2, true) end, mesecons = mesecons, on_rotate = no_rotate, }) minetest.register_node("mcl_chests:"..basename.."_right", { - tiles = tiles_table.right, + drawtype = "airlike", paramtype = "light", paramtype2 = "facedir", - groups = {handy=1,axey=1, container=6,not_in_creative_inventory=1, material_wood=1,flammable=-1}, + selection_box = { + type = "fixed", + fixed = {0, 0, 0, 0, 0, 0}, + }, + collision_box = { + type = "fixed", + fixed = {0, 0, 0, 0, 0, 0}, + }, + groups = {handy=1,axey=1, container=6,not_in_creative_inventory=1, material_wood=1,flammable=-1,double_chest=2}, drop = drop, is_ground_content = false, sounds = mcl_sounds.node_sound_wood_defaults(), @@ -540,6 +728,8 @@ minetest.register_node("mcl_chests:"..basename.."_right", { if on_rightclick_addendum_right then on_rightclick_addendum_right(pos, node, clicker) end + + player_chest_open(clicker, pos_other, left_name, left_textures, node.param2, true) end, mesecons = mesecons, on_rotate = no_rotate, @@ -561,29 +751,33 @@ register_chest("chest", chestusage, S("27 inventory slots") .. "\n" .. S("Can be combined to a large chest"), { - small = {"default_chest_top.png", "mcl_chests_chest_bottom.png", + small = {"mcl_chests_normal.png"}, + double = {"mcl_chests_normal_double.png"}, + inv = {"default_chest_top.png", "mcl_chests_chest_bottom.png", "mcl_chests_chest_right.png", "mcl_chests_chest_left.png", "mcl_chests_chest_back.png", "default_chest_front.png"}, - left = {"default_chest_top_big.png", "default_chest_top_big.png", + --[[left = {"default_chest_top_big.png", "default_chest_top_big.png", "mcl_chests_chest_right.png", "mcl_chests_chest_left.png", "default_chest_side_big.png^[transformFX", "default_chest_front_big.png"}, right = {"default_chest_top_big.png^[transformFX", "default_chest_top_big.png^[transformFX", "mcl_chests_chest_right.png", "mcl_chests_chest_left.png", - "default_chest_side_big.png", "default_chest_front_big.png^[transformFX"}, + "default_chest_side_big.png", "default_chest_front_big.png^[transformFX"},]]-- }, false ) local traptiles = { - small = {"mcl_chests_chest_trapped_top.png", "mcl_chests_chest_trapped_bottom.png", + small = {"mcl_chests_trapped.png"}, + double = {"mcl_chests_trapped_double.png"}, + inv = {"mcl_chests_chest_trapped_top.png", "mcl_chests_chest_trapped_bottom.png", "mcl_chests_chest_trapped_right.png", "mcl_chests_chest_trapped_left.png", "mcl_chests_chest_trapped_back.png", "mcl_chests_chest_trapped_front.png"}, - left = {"mcl_chests_chest_trapped_top_big.png", "mcl_chests_chest_trapped_top_big.png", + --[[left = {"mcl_chests_chest_trapped_top_big.png", "mcl_chests_chest_trapped_top_big.png", "mcl_chests_chest_trapped_right.png", "mcl_chests_chest_trapped_left.png", "mcl_chests_chest_trapped_side_big.png^[transformFX", "mcl_chests_chest_trapped_front_big.png"}, right = {"mcl_chests_chest_trapped_top_big.png^[transformFX", "mcl_chests_chest_trapped_top_big.png^[transformFX", "mcl_chests_chest_trapped_right.png", "mcl_chests_chest_trapped_left.png", - "mcl_chests_chest_trapped_side_big.png", "mcl_chests_chest_trapped_front_big.png^[transformFX"}, + "mcl_chests_chest_trapped_side_big.png", "mcl_chests_chest_trapped_front_big.png^[transformFX"},]]-- } register_chest("trapped_chest", @@ -600,7 +794,6 @@ register_chest("trapped_chest", function(pos, node, clicker) minetest.swap_node(pos, {name="mcl_chests:trapped_chest_on", param2 = node.param2}) mesecon.receptor_on(pos, trapped_chest_mesecons_rules) - player_chest_open(clicker, pos) end, function(pos, node, clicker) local meta = minetest.get_meta(pos) @@ -612,8 +805,6 @@ register_chest("trapped_chest", local pos_other = mcl_util.get_double_container_neighbor_pos(pos, node.param2, "left") minetest.swap_node(pos_other, {name="mcl_chests:trapped_chest_on_right", param2 = node.param2}) mesecon.receptor_on(pos_other, trapped_chest_mesecons_rules) - - player_chest_open(clicker, pos) end, function(pos, node, clicker) local pos_other = mcl_util.get_double_container_neighbor_pos(pos, node.param2, "right") @@ -623,8 +814,6 @@ register_chest("trapped_chest", minetest.swap_node(pos_other, {name="mcl_chests:trapped_chest_on_left", param2 = node.param2}) mesecon.receptor_on(pos_other, trapped_chest_mesecons_rules) - - player_chest_open(clicker, pos) end ) @@ -634,15 +823,7 @@ register_chest("trapped_chest_on", state = mesecon.state.on, rules = trapped_chest_mesecons_rules, }}, - function(pos, node, clicker) - player_chest_open(clicker, pos) - end, - function(pos, node, clicker) - player_chest_open(clicker, pos) - end, - function(pos, node, clicker) - player_chest_open(clicker, pos) - end, + nil, nil, nil, "trapped_chest", "trapped_chest" ) @@ -676,9 +857,9 @@ local function close_if_trapped_chest(pos, player) end end --- Disable trapped chest when it has been closed +-- Disable chest when it has been closed minetest.register_on_player_receive_fields(function(player, formname, fields) - if formname:find("mcl_chests:trapped_chest_") == 1 then + if formname:find("mcl_chests:") == 1 then if fields.quit then player_chest_close(player) end @@ -1001,6 +1182,18 @@ minetest.register_on_craft(function(itemstack, player, old_craft_grid, craft_inv end end) +minetest.register_lbm({ + label = "Spawn Chest entities", + name = "mcl_chests:spawn_chest_entities", + nodenames = {"group:chest_entity"}, + run_at_every_load = true, + action = function(pos, node) + local node_name = node.name + local node_def = minetest.registered_nodes[node_name] + local double_chest = minetest.get_item_group(node_name, "double_chest") > 0 + create_entity(pos, node_name, node_def._chest_entity_textures, node.param2, double_chest) + end +}) minetest.register_lbm({ -- Disable active/open trapped chests when loaded because nobody could diff --git a/mods/ITEMS/mcl_chests/models/mcl_chests_chest.b3d b/mods/ITEMS/mcl_chests/models/mcl_chests_chest.b3d new file mode 100644 index 0000000000000000000000000000000000000000..e82c7e3639236824597be75b0126f74156f491a7 GIT binary patch literal 6075 zcmbVQYiv|S6#jrxc@$7k%0sY%Jf*bV6)1h|DWye;0+B5sCd8tEgdiY=m`I=_|9r$B zD!wr#;g2CPl#3*UM@vi$5eP<&uS680Cj5|x5^WV(^W8Jkdw09--uNY#GqdO1Gjq>; zGvAcj+IXE;2=oC^yL4G{CTx4__NMhSOH0cD7)gILf=H!Osl`j`>YptHo?5@QXP zhsSsC2l?su^Cvhz>zBZ9y8NO15{ys3KYmVsuKc0;_~UDRYSPBH_4CIM{L$*0V}1Pj z_mcmA&ab7KYuGbC_#KYRWDj-=Pt z@ANN1o6i5n1n_o(zxVw)R^$8u|LJe+@^>aZ;rjvq2=z0+^9SEgX#VW}Msa?Q@7@pc z)9>e(kUzx#sa^h1{!snt_s7ra&y_z^pAi3la`o}^+xmt0Pk%6eZ~h$lbFNRW^$pc0 zv_7m4(2?w^KAeBx&p!WP{T+X}{<{Bz^~qk}uKYc%zZ*Z-_xD=Ac-(8lpVh}`yYqjB z@b~`vQoeQk*7zBd*wDEiN=g6OPeR8dDs6L_f(eoi5@2Nhze?$H(^H+XkAD{Vq zTfeUS?)x&=-#DQJOH=ZKHGx;3C_80)80gM7L*7n&R4`3XCy8+x| z`)p4Da4&!&026JW?a2Tp0k{vq6x(NeI)G^arUJO%_SxnYwHUw*04281b_@WotEB+q zw$Ju#0J8u*0AP;ovt0pTE`V|XmA20|4=!FFDBwI~*=M^Jz&rpo0Os31+Y12H1E>S= zpzX6gZ}GxKtSiBK0b6Q$S*|MpHg0}y?N>>|iCf-ED*CjKczmeG=Nv}7ACSw%~>(UN(zWF0NpMN8Jvl7X~jAFY37gc1Mh3M0OR z!iY}-7$Mte$wFE(l9p_wCF^L(Mp`nHmaL?GxPE1_rJwS_a>&rr1OE))q2KZ>Qmo}- zq*%+>NU@gFkzy_HBgNXi5h>R0pGdKGk41{L`!G_h-K&ve?S76FYxjJlSbHu+inV7) zq*!~tM2fX%P^4IUPDP5fXIZ3Jd)`HgrGj!3@}FG$jVdudAK1QSi>ic~Fz*lUM7tyP z|5Mhq=f&5w=Xp2sW(l8kl`x_^+=%X8Bf2w<=&m!OJIaXe79+Y7j3~>ED1(hCJB=vw zj3}#&C}WH$8;s~m8_`uXqAO%Xt8YXrYecJNL@Q!MRlgb`HZv1m95spozn*HbM@xJj1$Md~MkIs>i z3u2awUA*@5y4dfBcEmPZE%1&O*T|@%X_l|)v2G4eH2)Cme5=rFJhE6S@(L}dgIMNt zu|qE&jIDlml6U&^)iR*$dcvthw)wWavo1F7K+M~}uSsr}?@c(BaIv>+UfKZ%&X>J- zb*{JjrJb_r%^?Y=5-yf=U>u+Frh_FHk5zhAx0+@Cd)F$RN`zxw{I460M4V zOVQ}PC!9*SSod9wAK!VTwQNO&_g&#GS!OyuN^(&z>)0pKcoK?fyL}hhHCNbrjNzIwZ*oj3 qw(itG@7On$a_F~WdzPigy4;!PvQr5+2j=T3)~SSxb#b(rdH(|k^~@ar literal 0 HcmV?d00001 diff --git a/mods/ITEMS/mcl_chests/models/mcl_chests_chest.obj b/mods/ITEMS/mcl_chests/models/mcl_chests_chest.obj new file mode 100644 index 000000000..36268146f --- /dev/null +++ b/mods/ITEMS/mcl_chests/models/mcl_chests_chest.obj @@ -0,0 +1,91 @@ +# Blender v2.76 (sub 0) OBJ File: 'chest.small.facedir.blend' +# www.blender.org +mtllib chest.small.facedir.mtl +o chest_upper_upper +v 0.062513 -0.063134 -0.500468 +v 0.062513 0.186920 -0.500468 +v 0.062514 -0.063134 -0.437955 +v 0.062514 0.186920 -0.437955 +v -0.062514 -0.063134 -0.500468 +v -0.062514 0.186920 -0.500468 +v -0.062514 -0.063134 -0.437955 +v -0.062514 0.186920 -0.437955 +v 0.437907 0.061263 -0.438085 +v 0.437907 0.373830 -0.438085 +v 0.437907 0.061263 0.437729 +v 0.437907 0.373830 0.437729 +v -0.437907 0.061263 -0.438085 +v -0.437907 0.373830 -0.438085 +v -0.437907 0.061263 0.437729 +v -0.437907 0.373830 0.437729 +v 0.437595 -0.500754 -0.437772 +v 0.437595 0.124381 -0.437772 +v 0.437595 -0.500754 0.437417 +v 0.437595 0.124381 0.437417 +v -0.437595 -0.500754 -0.437772 +v -0.437595 0.124381 -0.437772 +v -0.437595 -0.500754 0.437417 +v -0.437595 0.124381 0.437417 +vt 0.015625 0.921875 +vt 0.015625 0.984375 +vt 0.000000 0.984375 +vt 0.000000 0.921875 +vt 0.093750 0.921875 +vt 0.093750 0.984375 +vt 0.062500 0.984375 +vt 0.062500 0.921875 +vt 0.046875 0.984375 +vt 0.046875 0.921875 +vt 0.078125 0.984375 +vt 0.078125 1.000000 +vt 0.046875 1.000000 +vt 0.015625 1.000000 +vt 0.218750 0.703125 +vt 0.218750 0.781250 +vt 0.000000 0.781250 +vt 0.000000 0.703125 +vt 0.875000 0.703125 +vt 0.875000 0.781250 +vt 0.656250 0.781250 +vt 0.656250 0.703125 +vt 0.437500 0.781250 +vt 0.437500 0.703125 +vt 0.656250 1.000000 +vt 0.437500 1.000000 +vt 0.218750 1.000000 +vt 0.218750 0.328125 +vt 0.218750 0.484375 +vt -0.000000 0.484375 +vt -0.000000 0.328125 +vt 0.875000 0.328125 +vt 0.875000 0.484375 +vt 0.656250 0.484375 +vt 0.656250 0.328125 +vt 0.437500 0.484375 +vt 0.437500 0.328125 +vn 1.000000 0.000000 -0.000000 +vn 0.000000 0.000000 1.000000 +vn -1.000000 0.000000 0.000000 +vn 0.000000 0.000000 -1.000000 +vn 0.000000 -1.000000 0.000000 +vn 0.000000 1.000000 0.000000 +usemtl None +s off +f 1/1/1 2/2/1 4/3/1 3/4/1 +f 3/5/2 4/6/2 8/7/2 7/8/2 +f 7/8/3 8/7/3 6/9/3 5/10/3 +f 5/10/4 6/9/4 2/2/4 1/1/4 +f 3/9/5 7/11/5 5/12/5 1/13/5 +f 8/13/6 4/14/6 2/2/6 6/9/6 +f 9/15/1 10/16/1 12/17/1 11/18/1 +f 11/19/2 12/20/2 16/21/2 15/22/2 +f 15/22/3 16/21/3 14/23/3 13/24/3 +f 13/24/4 14/23/4 10/16/4 9/15/4 +f 11/25/5 15/26/5 13/23/5 9/21/5 +f 16/26/6 12/27/6 10/16/6 14/23/6 +f 17/28/1 18/29/1 20/30/1 19/31/1 +f 19/32/2 20/33/2 24/34/2 23/35/2 +f 23/35/3 24/34/3 22/36/3 21/37/3 +f 21/37/4 22/36/4 18/29/4 17/28/4 +f 19/22/5 23/24/5 21/36/5 17/34/5 +f 24/24/6 20/15/6 18/29/6 22/36/6 diff --git a/mods/ITEMS/mcl_chests/models/mcl_chests_double_chest.b3d b/mods/ITEMS/mcl_chests/models/mcl_chests_double_chest.b3d new file mode 100644 index 0000000000000000000000000000000000000000..86c44bfeb96b2de946ffe210f23c56910567d2ca GIT binary patch literal 10342 zcmeHMU1(fI6h3K^#@elaiMC2X2}**568A>>lI*N&wi;}bHi=?IY6wJyrfIAREf&m0 ziY6cmS}>rNzW88ku}P&!OE$4ZNQ?=Dza6NxPypa8Xe`NkCq9ft?;a{2G;BNjca6YpB z#q2L(eSE&r^H+)g1rMDs@Ua9@ZhiWEtpDL3#-sh4!zKPg=a2Z*;|1688xfykU;D@6 zd_G+rEuH(!Ey8`ky+A9?-4CMWL{v^hWkghAp7H*AB3eO2*AdZ5^Nja55YZ|kiV@L` z<{9sAA)=d!=q4hnG|zZ{8xh?~L{&tz+C1a^18ps>7>9;uqJb1dAi095Z^thE3EDTm zO=z{rW{36bayEOEL0^>+d8zic^mLA`Khp}u_up68E7S^mLXW+o$G*{H&*-r?^w=|c z>>oY$j-J=*E9@Q5@B@1I06q4K9zH-1f1rmi(DNRB1z+G9enAhPpnoL2rSm{3pMg0i zAIKv6_b~?h=Y6_y*%xkH_Lm!%ed@+#zq@hyY}~kfer{YoV>d3xfg6`&#f@uX-|37w z=G?d(mu_5+T{kYrw;Px5fE$oJ-+AFbJF#;-<)S+CJpqgc1mqBP3vUuzgN39pw!`xlK0a-rwoo;$S7EBo%E zclz=5>dE)xMz1N7`+2qRm4Eo7*PcnJSms`%>G@n)!%Y91-leVc-t?M{YGmXNqx+UC z-zVUoS{V2C?LX_?z5gk-UHzI6jS8+;?50QNyt!lVdBgpKs=ID1AsQuI*%$irD}V7` z8|?8eCWh5~<-1LyQDN@o?6BJYNom8H>X_Ge;YIbuh7*&bQNjfWYxpBOtbTuMc|&IW zaQxKfJ?i#_R7NyPxWP5d?5$|1sp*eDJ-S;xH#n3LjS_B&{vPqwGV;~Q;}s1b+}Rrc z;f-Bt%R?_^M5BUS@G$1g-in5`HU05tMt7?h28S}DQNk5}p~rfUjUSGm+`LCsFQhV} zQDH9D9rVMO8%|7$MuoYsI~Ve=XjGVs_2S&ln{(@_8%u~r1-at4=}T3pOiMY``{`f~t97K36au z8U30Q*FeHr{c$`g1y$dn^+{V$bt7RGT#qw21eD0&#=gdleS>pC9F3!3V%*FhvJYI( zpA6v2&X0nL@qm40=LgOSeIdM%{eXXDep4{z&94)B>t93HS5y_gB_nM zC}jPM*jN(PS6py19_?TFN8{q3(D`HkdARmZM0|>U?H`N7 zes|*kS5RGB$qFK%SWvkox{|E8_)L-&7p^2LE?h}gT)2{~xNs#|ap6j`;=+|=#f2-$ ziVIhg6&J1~D=u6~R$RD}thjI`S#jYmy`Z|be)Mrk@QMXhv7jmzRQ^9zP{pBZf%ex6 zs@cyrW-bg&sGiuYPDo#!d|Opjmg5KQMxp~vzz=SVB?W)t)743f`;CIn?Bs+N__B$< zDPA1ourE05Tb%7jaY`2i=y*CPIfe;AMUZw}Y-cjfsbKK1xQ z@p;w#7YnNY_OHK)fnq^bEU1bF75^JsEU3`_UH_sN3o1So@q_%sfWG(-73c27f2i0G Jf7d@$e*(GW{;mK3 literal 0 HcmV?d00001 diff --git a/mods/ITEMS/mcl_chests/sounds/default_chest_close.ogg b/mods/ITEMS/mcl_chests/sounds/default_chest_close.ogg new file mode 100644 index 0000000000000000000000000000000000000000..068d9002fb0db2e50ac3155f53fb3d610386c179 GIT binary patch literal 10768 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 Wgv4}9lfQR9KB%%qfvErHkN+P|`Zjj} literal 0 HcmV?d00001 diff --git a/mods/ITEMS/mcl_chests/sounds/default_chest_open.ogg b/mods/ITEMS/mcl_chests/sounds/default_chest_open.ogg new file mode 100644 index 0000000000000000000000000000000000000000..40b0b93416cbf8a724a255ba202bcbf4ec74f429 GIT binary patch literal 11092 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 literal 0 HcmV?d00001 diff --git a/mods/ITEMS/mcl_chests/textures/mcl_chests_trapped.png b/mods/ITEMS/mcl_chests/textures/mcl_chests_trapped.png new file mode 100644 index 0000000000000000000000000000000000000000..de21d8f2fa5920d54c01431967f5d97c1f8e8355 GIT binary patch literal 1209 zcmV;q1V;ObP)3)75JvM1=~Aan zjVOpj8!06f1vL^)d0vx3}B)`}_ON$G4Ba`117T7y5`HmYffduYV(Rdor$-J-;bJ@s8W{(6RxD z{r2hIZ+!p!ehWhS24s`K*dJe?wlL25zt(^px9Oo}Je#b14Y>a1)+w{=90S^xk+YNepJ@rIkGWoKkNFpI1GuVexTn7X2(w8-ocaE4Bp16lV->j4?69+5p!w@6>vuysXz`j;$}I2*$ZEe&>P3=`w}%+jZy6BgVON)*Izz zy(V*PB#Ff!eU2&QJBw2Y%t@bOq4I%wuBp%QzIvm)tk-0YjUYRF2zJ(-%;kTP)i`6% zS#LzfHks!)zU3ZIpeJLh)03R*=Udr%tQW(N5l_BFf1L6g26LPTu6aUE&(sY-1b^1< z0ukAOUbOVW^-tY^N^k|SUgs2KOxXZ7bxZ>gYXi*f$@!jEb{=C>h)R*%iV>Wu zV)AqW@vP+-7<)^2Z)N8(gdpm<8qm|q&SR%G05J;3=hy}$)87C#cS-}u;~hNV^ob21 zua%w05Oqugh~o@B&MTt52og3eyc*fH&ln)4Dh8fFA2Z6scS^lO^P0@Dv1yZ7 zjHE2Yvlj-VJUKS+)O!2!n#{4eFpIiy;=;}oi~mycn#{4eFt`X$$b~J=llM!>Ycj`{ z3qyWKEZqBel5;6}P3G8KoJDxDi0|ox^vUdbP3C_a+Gev^n$o!vrE?`p=Sq~$l_;Gn zQ94(mbgo3{T#3@T5~Xt`O6N+H&Xp*gD^WUEqI9lA>0F7@xe}#wMxM>8Vl(nQc6Id= X*tZtL<|9;J00000NkvXXu0mjffNDzn literal 0 HcmV?d00001 diff --git a/mods/ITEMS/mcl_chests/textures/mcl_chests_trapped_double.png b/mods/ITEMS/mcl_chests/textures/mcl_chests_trapped_double.png new file mode 100644 index 0000000000000000000000000000000000000000..95f768f97c0e7f1243b73df472b10174c7e69246 GIT binary patch literal 2011 zcmZ`&dpr|*AO5W!#2QJogC#|j>xyZFA%_)lkW$UY4vza}TR4YN4(BN3QW56TQHq+; zi?GZk9LXis$YGPQ*~o1n6X*SS|9Rhk-ao$2AJ6l7p3mp`JfCm6`*|n0g1Q0#0FHA$ z;{gCj1^{4p%K`v~IY~(XfbW9rT3Cj$VGk8<`Q1EAQta}cq8Z5seUj)HS_ zlp9x2mRFHc4IZ)v03aximnfc*fs|Okm;eyv7aTz`jtHO}GBY+cHV;TW5deVP54baS zUU9yki(cN;4cMC|R7c00^ixU6yf7pKRaQH2MA^*Lbe~N7P@9+OUXwN}Q;EXG((=+z z^t$Fs;m`zGT5KFQyDb)OKB=l16pP_2D>HqKE8jLGjg7D6rn_z(Xxy&xefi5~pGD-t za*rEqLW2eiEjIf&Bk3)??U`QfX-T5#?VE(;ks5-Vnr8@fiD3lujWoH&In-?eEEQgD zjxp5+FPCMla}$L+%}oMlixJI*-Y0OPb`#wUOB+VUB7~y_I$Py5NJAJX%ndSfcgml~ zP{{o`5e$ss;r%i%==(DtICE#;^Mf=OKe*8su~24Ov|2!)EK#W*i^SInhx*N(nwtd7 zKjMyrgMAlld9#L(9nG^Uszxe9!IB=(S0HP_qXG%Zh7=>B|5d4nJFg{v1%^d2$|3j4 zuE5lkVfNADaK=xlOg^%R0MpQ+ibJ83Pl9cQWef3>(`K)F(UXlh-2Wts1G*_)g>Mtq_$Z#>5M8HGb$L zScN4IbUaO;llbPf=y~US+m&6x`ixY=XtbRYP3gzcAo^*wXg8@afjUrYjx8cL6Hcj@ zSq$sJkC{IQm|ifeL|=;an5p)3-UZ+B0icZ>?$MSu=AG@ViYu<>z z`{%6orqInZCPLV6u4|!)F7%Pu*)^+*jq}aBp7mESgB3fvtt%{7#U6v7PU)BF`T6|u zCAJu)=Gh{#Jdf|5Et9mKvb2CVtyuVgEnn5-cYp)U$V$85d&_I5Q z(8rJuW!?+rJjhfXIQ+LJ{;CK6gBE;fch?~dzMYd?|LqvUz{?4ZT^+=H$tfm9Kq*P9 z$MMk(#Cq97$8;(UIO^^?8h|yC-hercrkz@=prqzAPF-P!K;7>c?vuF;ptDx*p#h81_3_57 zP;k?(+^{aS&p#`Nmd#$J9;9ODqvmlU1rvO9!{lL&whpY3cfkDI+=gN(T#zQIkFk{h+1bwz|_i`omhfNCEu819_{+8sYg)NP;5ear}s90 z{ZEMc@-=T~?}w6e2l<4=@T@Gc0X@>Gdryyz&rZh_c+@xQ(#rH@hr+>&`oCpAJ~nJ2 zO6W1g(Ze$$TxS#VjAbo(x;rbE)-3s0&)C*IZN)IqC0aJWUMngN0~C=bU#ywYI2JiJ zbY1eut(!{T6Kq5H`HC5(&KCQ3k?pAXPz8@R(D3&BX)r9 zr1cq-Z&`BxG^I(g0vUrhP17sp(|$KAt%=)>LLDs^$L-6LKd1F%txywj>$*$SSoOmA zx>dzSLaOU7IYF;BvQp8*Lh$FaF{JP$sfzdh5^^xZ4f+1XfYX(FtAU_yFLv#6w!lFV zGo9_w{cw{|SW@VKzQX`+{U6Td-wB-(KRox^JbHClcc$>gFQVK!Ioh`P-K_vmQErP| z^DDeU(b@cQ>ml6*k5RAY>4odY(fJ*ZhIM0=DCsTx(RYoTMqcgYSV#S3zr$+QWm9@5 rpuZdH;A7U?v|+gX@&6-{X9NNQ?*42UlxyAu00210^Jf_L#2fzx3KZfx literal 0 HcmV?d00001