From 0232c5bbd1e290ad2f1bbca3c6d2595a8a303c58 Mon Sep 17 00:00:00 2001 From: Jat Date: Sun, 5 Jan 2014 19:01:57 +0100 Subject: [PATCH] Use one node for all direction Bug correct and optimization for later -Facedir 5 and 7 bug texture -Prediction node for facedir to change --- init.lua | 210 +++-------- shared_locked.lua | 353 ++++-------------- .../{arrow_sign_right.png => arrow_sign.png} | Bin textures/arrow_sign_border_down.png | Bin 0 -> 220 bytes textures/arrow_sign_border_left.png | Bin 0 -> 202 bytes textures/arrow_sign_border_right.png | Bin 0 -> 176 bytes textures/arrow_sign_border_up.png | Bin 0 -> 222 bytes textures/arrow_sign_down.png | Bin 676 -> 0 bytes textures/arrow_sign_left.png | Bin 658 -> 0 bytes textures/arrow_sign_up.png | Bin 691 -> 0 bytes textures/rightandleft.xcf | Bin 0 -> 898 bytes textures/{sign_right.xcf => sign.xcf} | Bin textures/sign_down.xcf | Bin 1485 -> 0 bytes textures/sign_left.xcf | Bin 1327 -> 0 bytes textures/sign_up.xcf | Bin 1485 -> 0 bytes textures/upanddown.xcf | Bin 0 -> 963 bytes 16 files changed, 135 insertions(+), 428 deletions(-) rename textures/{arrow_sign_right.png => arrow_sign.png} (100%) create mode 100644 textures/arrow_sign_border_down.png create mode 100644 textures/arrow_sign_border_left.png create mode 100644 textures/arrow_sign_border_right.png create mode 100644 textures/arrow_sign_border_up.png delete mode 100644 textures/arrow_sign_down.png delete mode 100644 textures/arrow_sign_left.png delete mode 100644 textures/arrow_sign_up.png create mode 100644 textures/rightandleft.xcf rename textures/{sign_right.xcf => sign.xcf} (100%) delete mode 100644 textures/sign_down.xcf delete mode 100644 textures/sign_left.xcf delete mode 100644 textures/sign_up.xcf create mode 100644 textures/upanddown.xcf diff --git a/init.lua b/init.lua index 864e6d7..c7f36f8 100644 --- a/init.lua +++ b/init.lua @@ -12,7 +12,7 @@ arrow_signs={} minetest.chat_send_player(sender:get_player_name(), "error: you don't have permission to edit the sign. you need the interact priv") return end - local meta = minetest.env:get_meta(pos) + local meta = minetest.get_meta(pos) fields.text = fields.text or "" print((sender:get_player_name() or "").." wrote \""..fields.text.. "\" to sign at "..minetest.pos_to_string(pos)) @@ -61,68 +61,40 @@ else end minetest.register_node(":default:sign_wall", node) - - - - - - - - ---Sign right -minetest.register_node("arrow_signs:wall_right", { - description = "Sign right", - drawtype = "signlike", - tiles = {"arrow_sign_right.png"}, - inventory_image = "arrow_sign_right.png", +--Sign arrow +minetest.register_node("arrow_signs:wall", { + description = "Arrow signs", + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + {0.25, -0.5, 0.25, -0.5, -0.47, -0.25}, + {0.3125, -0.5, 0.1875, 0.25, -0.47, -0.1875}, + {0.3125, -0.5, 0.125, 0.375, -0.47, -0.125}, + {0.375, -0.5, 0.0625, 0.437, -0.47, -0.0625} + } + }, + selection_box = { + type = "fixed", + fixed = { + {0.25, -0.5, 0.25, -0.5, -0.47, -0.25}, + {0.3125, -0.5, 0.1875, 0.25, -0.47, -0.1875}, + {0.3125, -0.5, 0.125, 0.375, -0.47, -0.125}, + {0.375, -0.5, 0.0625, 0.437, -0.47, -0.0625} + } + }, + tiles = {"arrow_sign.png", "arrow_sign.png", "arrow_sign_border_right.png", "arrow_sign_border_left.png", "arrow_sign_border_up.png", "arrow_sign_border_down.png" }, + inventory_image = "arrow_sign.png", paramtype = "light", - paramtype2 = "wallmounted", + paramtype2 = "facedir", sunlight_propagates = true, walkable = false, - selection_box = { - type = "wallmounted", - --wall_top = - --wall_bottom = - --wall_side = - }, - groups = {choppy=2,dig_immediate=2,attached_node=1,sign=1}, - legacy_wallmounted = true, + groups = {choppy=2,dig_immediate=2,sign=1}, sounds = default.node_sound_defaults(), + on_place = minetest.rotate_node, on_construct = function(pos) - --local n = minetest.env:get_node(pos) - local meta = minetest.env:get_meta(pos) - meta:set_string("formspec", "hack:sign_text_input") - meta:set_string("infotext", "\"\"") - end, - on_receive_fields = function(pos, formname, fields, sender) - arrow_signs:savetext(pos, formname, fields, sender) - end, - -}) - - --- sign left -minetest.register_node("arrow_signs:wall_left", { - description = "Sign left", - drawtype = "signlike", - tiles = {"arrow_sign_left.png"}, - inventory_image = "arrow_sign_left.png", - paramtype = "light", - paramtype2 = "wallmounted", - sunlight_propagates = true, - walkable = false, - selection_box = { - type = "wallmounted", - --wall_top = - --wall_bottom = - --wall_side = - }, - groups = {choppy=2,dig_immediate=2,attached_node=1,sign=1}, - legacy_wallmounted = true, - sounds = default.node_sound_defaults(), - on_construct = function(pos) - --local n = minetest.env:get_node(pos) - local meta = minetest.env:get_meta(pos) + --local n = minetest.get_node(pos) + local meta = minetest.get_meta(pos) meta:set_string("formspec", "hack:sign_text_input") meta:set_string("infotext", "\"\"") end, @@ -131,115 +103,20 @@ minetest.register_node("arrow_signs:wall_left", { end, }) - ---Sign up -minetest.register_node("arrow_signs:wall_up", { - description = "Sign up", - drawtype = "signlike", - tiles = {"arrow_sign_up.png"}, - inventory_image = "arrow_sign_up.png", - paramtype = "light", - paramtype2 = "wallmounted", - sunlight_propagates = true, - walkable = false, - selection_box = { - type = "wallmounted", - --wall_top = - --wall_bottom = - --wall_side = - }, - groups = {choppy=2,dig_immediate=2,attached_node=1,sign=1}, - legacy_wallmounted = true, - sounds = default.node_sound_defaults(), - on_construct = function(pos) - --local n = minetest.env:get_node(pos) - local meta = minetest.env:get_meta(pos) - meta:set_string("formspec", "hack:sign_text_input") - meta:set_string("infotext", "\"\"") - end, - on_receive_fields = function(pos, formname, fields, sender) - arrow_signs:savetext(pos, formname, fields, sender) - end, -}) - - ---Sign down -minetest.register_node("arrow_signs:wall_down", { - description = "Sign down", - drawtype = "signlike", - tiles = {"arrow_sign_down.png"}, - inventory_image = "arrow_sign_down.png", - paramtype = "light", - paramtype2 = "wallmounted", - sunlight_propagates = true, - walkable = false, - selection_box = { - type = "wallmounted", - --wall_top = - --wall_bottom = - --wall_side = - }, - groups = {choppy=2,dig_immediate=2,attached_node=1,sign=1}, - legacy_wallmounted = true, - sounds = default.node_sound_defaults(), - on_construct = function(pos) - --local n = minetest.env:get_node(pos) - local meta = minetest.env:get_meta(pos) - meta:set_string("formspec", "hack:sign_text_input") - meta:set_string("infotext", "\"\"") - end, - on_receive_fields = function(pos, formname, fields, sender) - arrow_signs:savetext(pos, formname, fields, sender) - end, -}) - - - - - - ---recipes +--Recipes minetest.register_craft({ - output = 'arrow_signs:wall_right 1', - recipe = { - {'', '', ''}, - {'', 'group:sign', 'default:stick'}, - {'', '', ''}, - } -}) -minetest.register_craft({ - output = 'arrow_signs:wall_left 1', - recipe = { - {'', '', ''}, - {'default:stick', 'group:sign', ''}, - {'', '', ''}, - } -}) -minetest.register_craft({ - output = 'arrow_signs:wall_up 1', - recipe = { - {'', 'default:stick', ''}, - {'', 'group:sign', ''}, - {'', '', ''}, - } -}) -minetest.register_craft({ - output = 'arrow_signs:wall_down 1', - recipe = { - {'', '', ''}, - {'', 'group:sign', ''}, - {'', 'default:stick', ''}, - } + type = 'shapeless', + output = 'arrow_signs:wall', + recipe = {'group:sign', 'default:stick'}, }) minetest.register_craft({ output = 'default:sign_wall', recipe = { - {'group:sign'}, - } }) +--Alias minetest.register_alias("more_signs:wall_right", "arrow_signs:wall_right") minetest.register_alias("sign_right", "arrow_signs:wall_right") @@ -252,7 +129,24 @@ minetest.register_alias("sign_up", "arrow_signs:wall_up") minetest.register_alias("more_signs:wall_down", "arrow_signs:wall_down") minetest.register_alias("sign_down", "arrow_signs:wall_down") +--Redefinition +minetest.register_abm({ + nodenames = {"arrow_signs:wall_right", "arrow_signs:wall_left", "arrow_signs:wall_up", "arrow_signs:wall_down"}, + interval = 1, + chance = 1, + action = function(pos, node) + local convert_facedir={ + ["arrow_signs:wall_right"]={17,15,8,6}, + ["arrow_signs:wall_left"]={19,13,10,4}, + ["arrow_signs:wall_up"]={16,14,11,5}, + ["arrow_signs:wall_down"]={18,12,9,7} + } + minetest.swap_node(pos, {name="arrow_signs:wall",param2=convert_facedir[node.name][node.param2-1]}) + end, +}) + +--Locked sign if locks then local MODPATH = minetest.get_modpath("arrow_signs"); dofile(MODPATH.."/shared_locked.lua") diff --git a/shared_locked.lua b/shared_locked.lua index f185f76..fa2a9d8 100644 --- a/shared_locked.lua +++ b/shared_locked.lua @@ -1,284 +1,97 @@ -- a sign -minetest.register_node("arrow_signs:shared_locked_right", { - description = "Shared locked sign right", - drawtype = "signlike", - tiles = {"arrow_sign_right.png"}, - inventory_image = "arrow_sign_right.png", - paramtype = "light", - paramtype2 = "wallmounted", - sunlight_propagates = true, - walkable = false, - selection_box = { - type = "wallmounted", - --wall_top = - --wall_bottom = - --wall_side = - }, - groups = {choppy=2,dig_immediate=2,sign_locked=1}, - legacy_wallmounted = true, +minetest.register_node("arrow_signs:shared_locked", { + description = "Shared locked sign", + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + {0.25, -0.5, 0.25, -0.5, -0.47, -0.25}, + {0.3125, -0.5, 0.1875, 0.25, -0.47, -0.1875}, + {0.3125, -0.5, 0.125, 0.375, -0.47, -0.125}, + {0.375, -0.5, 0.0625, 0.437, -0.47, -0.0625} + } + }, + selection_box = { + type = "fixed", + fixed = { + {0.25, -0.5, 0.25, -0.5, -0.47, -0.25}, + {0.3125, -0.5, 0.1875, 0.25, -0.47, -0.1875}, + {0.3125, -0.5, 0.125, 0.375, -0.47, -0.125}, + {0.375, -0.5, 0.0625, 0.437, -0.47, -0.0625} + } + }, + tiles = {"arrow_sign.png", "arrow_sign.png", "arrow_sign_border_right.png", "arrow_sign_border_left.png", "arrow_sign_border_up.png", "arrow_sign_border_down.png" }, + inventory_image = "arrow_sign.png", + paramtype = "light", + paramtype2 = "wallmounted", + sunlight_propagates = true, + walkable = false, + groups = {choppy=2,dig_immediate=2,sign_locked=1}, + legacy_wallmounted = true, + + on_place = minetest.rotate_node, + + on_construct = function(pos) + local meta = minetest.get_meta(pos) + -- prepare the lock of the sign + locks:lock_init( pos, + "size[8,4]".. + "field[0.3,0.6;6,0.7;text;Text:;]".. + "field[0.3,3.6;6,0.7;locks_sent_lock_command;Locked sign. Type /help for help:;]".. + "button_exit[6.3,3.2;1.7,0.7;locks_sent_input;Proceed]" ); + end, + + after_place_node = function(pos, placer) + locks:lock_set_owner( pos, placer, "Shared locked sign" ); + end, - on_construct = function(pos) - local meta = minetest.env:get_meta(pos) - -- prepare the lock of the sign - locks:lock_init( pos, - "size[8,4]".. - "field[0.3,0.6;6,0.7;text;Text:;]".. - "field[0.3,3.6;6,0.7;locks_sent_lock_command;Locked sign. Type /help for help:;]".. - "button_exit[6.3,3.2;1.7,0.7;locks_sent_input;Proceed]" ); - end, + can_dig = function(pos,player) + return locks:lock_allow_dig( pos, player ); + end, - after_place_node = function(pos, placer) - locks:lock_set_owner( pos, placer, "Shared locked sign" ); - end, + on_receive_fields = function(pos, formname, fields, sender) + -- if the user already has the right to use this and did input text + if( fields.text + and ( not(fields.locks_sent_lock_command) + or fields.locks_sent_lock_command=="") + and locks:lock_allow_use( pos, sender )) then - can_dig = function(pos,player) - return locks:lock_allow_dig( pos, player ); - end, + --print("Sign at "..minetest.pos_to_string(pos).." got "..dump(fields)) + local meta = minetest.get_meta(pos) + fields.text = fields.text or ""; + print((sender:get_player_name() or "").." wrote \""..fields.text.. + "\" to sign at "..minetest.pos_to_string(pos)); + meta:set_string("text", fields.text.." ["..sender:get_player_name().."]"); + meta:set_string("infotext", '"'..fields.text..'"'.." ["..sender:get_player_name().."]"); - on_receive_fields = function(pos, formname, fields, sender) + -- a command for the lock? + else + arrow_signs:savetext( pos, formname, fields, sender ); + end - -- if the user already has the right to use this and did input text - if( fields.text - and ( not(fields.locks_sent_lock_command) - or fields.locks_sent_lock_command=="") - and locks:lock_allow_use( pos, sender )) then - - --print("Sign at "..minetest.pos_to_string(pos).." got "..dump(fields)) - local meta = minetest.env:get_meta(pos) - fields.text = fields.text or ""; - print((sender:get_player_name() or "").." wrote \""..fields.text.. - "\" to sign at "..minetest.pos_to_string(pos)); - meta:set_string("text", fields.text.." ["..sender:get_player_name().."]"); - meta:set_string("infotext", '"'..fields.text..'"'.." ["..sender:get_player_name().."]"); - - -- a command for the lock? - else - arrow_signs:savetext( pos, formname, fields, sender ); - end - - end, - }); ---left - minetest.register_node("arrow_signs:shared_locked_left", { - description = "Shared locked sign left", - drawtype = "signlike", - tiles = {"arrow_sign_left.png"}, - inventory_image = "arrow_sign_left.png", - paramtype = "light", - paramtype2 = "wallmounted", - sunlight_propagates = true, - walkable = false, - selection_box = { - type = "wallmounted", - --wall_top = - --wall_bottom = - --wall_side = - }, - groups = {choppy=2,dig_immediate=2,sign_locked=1}, - legacy_wallmounted = true, - - - on_construct = function(pos) - local meta = minetest.env:get_meta(pos) - -- prepare the lock of the sign - locks:lock_init( pos, - "size[8,4]".. - "field[0.3,0.6;6,0.7;text;Text:;]".. - "field[0.3,3.6;6,0.7;locks_sent_lock_command;Locked sign. Type /help for help:;]".. - "button_exit[6.3,3.2;1.7,0.7;locks_sent_input;Proceed]" ); - end, - - after_place_node = function(pos, placer) - locks:lock_set_owner( pos, placer, "Shared locked sign" ); - end, - - - can_dig = function(pos,player) - return locks:lock_allow_dig( pos, player ); - end, - - on_receive_fields = function(pos, formname, fields, sender) - - -- if the user already has the right to use this and did input text - if( fields.text - and ( not(fields.locks_sent_lock_command) - or fields.locks_sent_lock_command=="") - and locks:lock_allow_use( pos, sender )) then - - --print("Sign at "..minetest.pos_to_string(pos).." got "..dump(fields)) - local meta = minetest.env:get_meta(pos) - fields.text = fields.text or ""; - print((sender:get_player_name() or "").." wrote \""..fields.text.. - "\" to sign at "..minetest.pos_to_string(pos)); - meta:set_string("text", fields.text.." ["..sender:get_player_name().."]"); - meta:set_string("infotext", '"'..fields.text..'"'.." ["..sender:get_player_name().."]"); - - -- a command for the lock? - else - arrow_signs:savetext( pos, formname, fields, sender ); - end - - end, - }); - --up - minetest.register_node("arrow_signs:shared_locked_up", { - description = "Shared locked sign up", - drawtype = "signlike", - tiles = {"arrow_sign_up.png"}, - inventory_image = "arrow_sign_up.png", - paramtype = "light", - paramtype2 = "wallmounted", - sunlight_propagates = true, - walkable = false, - selection_box = { - type = "wallmounted", - --wall_top = - --wall_bottom = - --wall_side = - }, - groups = {choppy=2,dig_immediate=2,sign_locked=1}, - legacy_wallmounted = true, - - - on_construct = function(pos) - local meta = minetest.env:get_meta(pos) - -- prepare the lock of the sign - locks:lock_init( pos, - "size[8,4]".. - "field[0.3,0.6;6,0.7;text;Text:;]".. - "field[0.3,3.6;6,0.7;locks_sent_lock_command;Locked sign. Type /help for help:;]".. - "button_exit[6.3,3.2;1.7,0.7;locks_sent_input;Proceed]" ); - end, - - after_place_node = function(pos, placer) - locks:lock_set_owner( pos, placer, "Shared locked sign" ); - end, - - - can_dig = function(pos,player) - return locks:lock_allow_dig( pos, player ); - end, - - on_receive_fields = function(pos, formname, fields, sender) - - -- if the user already has the right to use this and did input text - if( fields.text - and ( not(fields.locks_sent_lock_command) - or fields.locks_sent_lock_command=="") - and locks:lock_allow_use( pos, sender )) then - - --print("Sign at "..minetest.pos_to_string(pos).." got "..dump(fields)) - local meta = minetest.env:get_meta(pos) - fields.text = fields.text or ""; - print((sender:get_player_name() or "").." wrote \""..fields.text.. - "\" to sign at "..minetest.pos_to_string(pos)); - meta:set_string("text", fields.text.." ["..sender:get_player_name().."]"); - meta:set_string("infotext", '"'..fields.text..'"'.." ["..sender:get_player_name().."]"); - - -- a command for the lock? - else - arrow_signs:savetext( pos, formname, fields, sender ); - end - - end, - }); - --down - minetest.register_node("arrow_signs:shared_locked_down", { - description = "Shared locked sign down", - drawtype = "signlike", - tiles = {"arrow_sign_down.png"}, - inventory_image = "arrow_sign_down.png", - paramtype = "light", - paramtype2 = "wallmounted", - sunlight_propagates = true, - walkable = false, - selection_box = { - type = "wallmounted", - --wall_top = - --wall_bottom = - --wall_side = - }, - groups = {choppy=2,dig_immediate=2,sign_locked=1}, - legacy_wallmounted = true, - - - on_construct = function(pos) - local meta = minetest.env:get_meta(pos) - -- prepare the lock of the sign - locks:lock_init( pos, - "size[8,4]".. - "field[0.3,0.6;6,0.7;text;Text:;]".. - "field[0.3,3.6;6,0.7;locks_sent_lock_command;Locked sign. Type /help for help:;]".. - "button_exit[6.3,3.2;1.7,0.7;locks_sent_input;Proceed]" ); - end, - - after_place_node = function(pos, placer) - locks:lock_set_owner( pos, placer, "Shared locked sign" ); - end, - - - can_dig = function(pos,player) - return locks:lock_allow_dig( pos, player ); - end, - - on_receive_fields = function(pos, formname, fields, sender) - - -- if the user already has the right to use this and did input text - if( fields.text - and ( not(fields.locks_sent_lock_command) - or fields.locks_sent_lock_command=="") - and locks:lock_allow_use( pos, sender )) then - - --print("Sign at "..minetest.pos_to_string(pos).." got "..dump(fields)) - local meta = minetest.env:get_meta(pos) - fields.text = fields.text or ""; - print((sender:get_player_name() or "").." wrote \""..fields.text.. - "\" to sign at "..minetest.pos_to_string(pos)); - meta:set_string("text", fields.text.." ["..sender:get_player_name().."]"); - meta:set_string("infotext", '"'..fields.text..'"'.." ["..sender:get_player_name().."]"); - - -- a command for the lock? - else - arrow_signs:savetext( pos, formname, fields, sender ); - end - - end, + end, }); minetest.register_craft({ - output = 'arrow_signs:shared_locked_right', - recipe = { - { 'arrow_signs:wall_right', 'locks:lock', '' }, - }, + type = 'shapeless', + output = 'arrow_signs:shared_locked', + recipe = {'arrow_signs:wall', 'locks:lock'}, }) -minetest.register_craft({ - output = 'arrow_signs:shared_locked_left', - recipe = { - { 'arrow_signs:wall_left', 'locks:lock', '' }, - }, +--Redefinition +minetest.register_abm({ + nodenames = {"arrow_signs:shared_locked_right", "'arrow_signs:shared_locked_left", "arrow_signs:shared_locked_up", "arrow_signs:shared_locked_down"}, + interval = 1, + chance = 1, + action = function(pos, node) + local convert_facedir={ + ["arrow_signs:shared_locked_right"]={17,15,8,6}, + ["arrow_signs:shared_locked_left"]={19,13,10,4}, + ["arrow_signs:shared_locked_up"]={16,14,11,5}, + ["arrow_signs:shared_locked_down"]={18,12,9,7} + } + minetest.swap_node(pos, {name="arrow_signs:shared_locked",param2=convert_facedir[node.name][node.param2-1]}) + end, }) - -minetest.register_craft({ - output = 'arrow_signs:shared_locked_up', - recipe = { - { 'arrow_signs:wall_up', 'locks:lock', '' }, - }, -}) - -minetest.register_craft({ - output = 'arrow_signs:shared_locked_down', - recipe = { - { 'arrow_signs:wall_down', 'locks:lock', '' }, - }, -}) - - -minetest.register_craft({ - output = 'arrow_signs:shared_locked_right', - recipe = { - { 'group:', 'locks:lock', '' }, - }, -}) \ No newline at end of file diff --git a/textures/arrow_sign_right.png b/textures/arrow_sign.png similarity index 100% rename from textures/arrow_sign_right.png rename to textures/arrow_sign.png diff --git a/textures/arrow_sign_border_down.png b/textures/arrow_sign_border_down.png new file mode 100644 index 0000000000000000000000000000000000000000..5b0c083aeba489ff151b1e00bea2ae4fff1a14e6 GIT binary patch literal 220 zcmeAS@N?(olHy`uVBq!ia0vp^0zk~j!3HF+SL($BDYhhUcNd2LAh=-f^2tCE&H|6f zVg?4jBOuH;Rhv&5D9B#o>FdgVkC9bS!Xk3<^S?kL+02lL66gHf+|;}hAeVu`xhOTU zBsE2$JhLQ2!QIn0AVn{g9VqVL>Eal|aXtCZ|M$oLYrCf#eE865xTm_Vukqo3c{VdX zLAErtw6^R1euf`DoHqLNG$bKl!ow7SiQCg1*nDK7dKms55Ma{H-ct>-#M9N!Wt~$( F699cCMNFdgVkC9bSo2RFytO6(`n;8;O;+&tGo0?YwFVdQ I&MBb@0HhBsG5`Po literal 0 HcmV?d00001 diff --git a/textures/arrow_sign_border_up.png b/textures/arrow_sign_border_up.png new file mode 100644 index 0000000000000000000000000000000000000000..45eb19027b37f3b90a144f7b9706253b1d243946 GIT binary patch literal 222 zcmeAS@N?(olHy`uVBq!ia0vp^0zk~j!3HF+SL($BDYhhUcNd2LAh=-f^2tCE&H|6f zVg?4jBOuH;Rhv&5D9B#o>FdgVkC9bSgU>VGWjatuHZvrm#5q4VH#M&W$Yo$~E=o-- zNlj5G&n(GMaQE~LNYP7W2Z}p+x;Tb#Tu)9(NJ#kc{qe1OHkA*b5A(L&w~sU4Q&BO; zG0e81v9ou2bP0 Hl+XkKI4ebQ literal 0 HcmV?d00001 diff --git a/textures/arrow_sign_down.png b/textures/arrow_sign_down.png deleted file mode 100644 index 8d42d10a01e1c64cce32579f7859af975645808e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 676 zcmV;V0$crwP)@i?8SGiYwwP{E*-UMT1y2!bFIOuFq4=&rgh>L%z< zh$4bO@xmymh#;x(qK0jXvUFv(ah&*aX1e{l2tp_Gs^{{{^L%)oub@hDGb3&53&s2t z9)AmEdlA)DkN@CRgcJzHEq3~~sxYP1@7%n2nRTa!mE}!LzhrewFgbIL$D{X=l?{aA z`Ik|40&FXV;;6@#lI}zcZIKXX2QL!v>2$>my#6ru()g~%y8!OS3pgBtqXSVI;yr9> zZk~^P#40G{iwf4_B)XBT4Ja**f})Ylb<2zfZ*TLZa`ZKY}hbR)^u zS`MF9$BAQ64#!QLt%s;n*Kw-bINc_8FCqf@RH8 z@pze-EilxgvoJkYyTQWr7_MM~XwU(`@X#5WBXx8qR7_RFjGn>_$7%!2aE!adr^TJo z*PI(X$@r7EZ&9X&jF^@gtYKEZz4SbWB<^C9kC3Q;Ld$%ohb<(1x$tdyqY?ZFrw zkpOZtvnwO20lJaIwo>Ru5-H0PptSr|*u^w@Fo9i6Q{Q=m|E51y-^#GU$O^0g0000< KMNUMnLSTXkPe3OC diff --git a/textures/arrow_sign_left.png b/textures/arrow_sign_left.png deleted file mode 100644 index 92bbf35732702e75a752ce304b6e3818c7d4d96e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 658 zcmV;D0&V??P)o5t=M3(*JJ!NLv&2BA=gZUsUAfDj$RL)4*T z9lb;>Qb9^xgrE|kv>-)8bkhu1Lvz2J-I<-)ubJsEXn#XJ*B5^8^Sti^|GWeMeR~W5 zLrIWHt}d{T=h+0nbaK&f>onhwXv#M8k!E_-XnV@7>ZBYcLy$zRH}re9D!hfmE|}W zFNN4hYN)j$p z*K|C=9%9EM6ze@G=_SX3ZJYM!y<2>qUZel|dE%oVkP9isUe8m>rP0e(N@b0F!Digrh&0p5LKwun+yk zIHs}v_X`caZhK;6n9Y?1z9mdtx`zL7BdvZnW!+$FL!)RmlHb*l{T6xE;PLY(&J7GD z!K0f4!sXldS)9w0Qx%Senh`CFbgDuotCLkV3Tl=uLu5x4nOm*kJ#xc|AT>vMI+fyC z=#;RuK5J)^Q>_0o5RG-T{3e0m8BEKhQp$kfMs7QaR!AY(f)gRT{1CbG8o8gZ0QSpd sC<&zID29??Z_$3aTKW-O9{vOU0j;g{Erx^Zu>b%707*qoM6N<$f|V{P1ONa4 diff --git a/textures/arrow_sign_up.png b/textures/arrow_sign_up.png deleted file mode 100644 index 4285f89d9d4b1d0091decbe58bd439e52164a273..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 691 zcmV;k0!;mhP)R#iZ$gCkWx)G#;Bpj7#|x+B#;;r7Jda+8g(N(2zVq=jgfAiO+3vqFtd~Rw?PpeYsT#Xz2)6ZG~*P zfUDKc(esyC*PL_*1Gv3zHe=Js&cNXUvf?MVvj)I1myN{N&lJ@p(diINiz+SM188dK z@C>wc1h@Ah#lj?od_8q`3;qrlT|H;;wi#Gz8>zK>tG8g71{<3h)>m`XAMZdf=<@Q!z>h6h_GrfFhzmqTv9Jy-`h7c>)9XUL67upm$=-g3YZFBMFO@AuA;CCUfsQ` zY@q{R1D_GTArSM{A-@AyXE3d4M?pZt6voA@D|<1uQtFTso_eISe{hJAr6QFF7NaJM zxg)YwrIDlqpOPfGR(n?l+m)P&ORlu{Wde-kY2Cq2vN zAtP=1FAxXQM4_3-Ax{YpZI32cAGvNq)1L;h`nNPzCQET2gsHcRqFu@npgbeQO3ay8 z?6D>?Du8%6IXIpqa?G3)96;GD@mh(`m-s@7*Gqg6xV#}i6{8fB7emLu*fdWN*){Z| zola`n1&)o8kr@vL_APS}XMO4x3;YiYlbZ~E={xX2lg+}y^rNvPHNALKS^n`ld>@YT X?Cb6RCna8Rgx4TnVXQ6#gRTbYH=wne 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 literal 0 HcmV?d00001