From 67425aa3b408c91f993f2253b03859be2df6195a Mon Sep 17 00:00:00 2001 From: Maciej Kasatkin Date: Sun, 21 Oct 2012 19:29:56 +0200 Subject: [PATCH] Added constructors, added dye grinding recipes --- constructor.lua | 297 ++++++++++++++++++ grinder.lua | 1 + init.lua | 1 + node_breaker.lua | 2 +- textures/technic_constructor_back.png | Bin 0 -> 2094 bytes textures/technic_constructor_front_off.png | Bin 0 -> 2677 bytes textures/technic_constructor_front_on.png | Bin 0 -> 2627 bytes .../technic_constructor_mk1_bottom_off.png | Bin 0 -> 2272 bytes .../technic_constructor_mk1_bottom_on.png | Bin 0 -> 2308 bytes .../technic_constructor_mk1_side1_off.png | Bin 0 -> 2327 bytes textures/technic_constructor_mk1_side1_on.png | Bin 0 -> 2342 bytes .../technic_constructor_mk1_side2_off.png | Bin 0 -> 2326 bytes textures/technic_constructor_mk1_side2_on.png | Bin 0 -> 2338 bytes textures/technic_constructor_mk1_top_off.png | Bin 0 -> 2292 bytes textures/technic_constructor_mk1_top_on.png | Bin 0 -> 2319 bytes .../technic_constructor_mk2_bottom_off.png | Bin 0 -> 2281 bytes .../technic_constructor_mk2_bottom_on.png | Bin 0 -> 2316 bytes .../technic_constructor_mk2_side1_off.png | Bin 0 -> 2339 bytes textures/technic_constructor_mk2_side1_on.png | Bin 0 -> 2355 bytes .../technic_constructor_mk2_side2_off.png | Bin 0 -> 2338 bytes textures/technic_constructor_mk2_side2_on.png | Bin 0 -> 2354 bytes textures/technic_constructor_mk2_top_off.png | Bin 0 -> 2307 bytes textures/technic_constructor_mk2_top_on.png | Bin 0 -> 2329 bytes .../technic_constructor_mk3_bottom_off.png | Bin 0 -> 2286 bytes .../technic_constructor_mk3_bottom_on.png | Bin 0 -> 2318 bytes .../technic_constructor_mk3_side1_off.png | Bin 0 -> 2378 bytes textures/technic_constructor_mk3_side1_on.png | Bin 0 -> 2402 bytes .../technic_constructor_mk3_side2_off.png | Bin 0 -> 2313 bytes textures/technic_constructor_mk3_side2_on.png | Bin 0 -> 2338 bytes textures/technic_constructor_mk3_top_off.png | Bin 0 -> 2313 bytes textures/technic_constructor_mk3_top_on.png | Bin 0 -> 2338 bytes 31 files changed, 300 insertions(+), 1 deletion(-) create mode 100644 constructor.lua create mode 100644 textures/technic_constructor_back.png create mode 100644 textures/technic_constructor_front_off.png create mode 100644 textures/technic_constructor_front_on.png create mode 100644 textures/technic_constructor_mk1_bottom_off.png create mode 100644 textures/technic_constructor_mk1_bottom_on.png create mode 100644 textures/technic_constructor_mk1_side1_off.png create mode 100644 textures/technic_constructor_mk1_side1_on.png create mode 100644 textures/technic_constructor_mk1_side2_off.png create mode 100644 textures/technic_constructor_mk1_side2_on.png create mode 100644 textures/technic_constructor_mk1_top_off.png create mode 100644 textures/technic_constructor_mk1_top_on.png create mode 100644 textures/technic_constructor_mk2_bottom_off.png create mode 100644 textures/technic_constructor_mk2_bottom_on.png create mode 100644 textures/technic_constructor_mk2_side1_off.png create mode 100644 textures/technic_constructor_mk2_side1_on.png create mode 100644 textures/technic_constructor_mk2_side2_off.png create mode 100644 textures/technic_constructor_mk2_side2_on.png create mode 100644 textures/technic_constructor_mk2_top_off.png create mode 100644 textures/technic_constructor_mk2_top_on.png create mode 100644 textures/technic_constructor_mk3_bottom_off.png create mode 100644 textures/technic_constructor_mk3_bottom_on.png create mode 100644 textures/technic_constructor_mk3_side1_off.png create mode 100644 textures/technic_constructor_mk3_side1_on.png create mode 100644 textures/technic_constructor_mk3_side2_off.png create mode 100644 textures/technic_constructor_mk3_side2_on.png create mode 100644 textures/technic_constructor_mk3_top_off.png create mode 100644 textures/technic_constructor_mk3_top_on.png diff --git a/constructor.lua b/constructor.lua new file mode 100644 index 0000000..1e58408 --- /dev/null +++ b/constructor.lua @@ -0,0 +1,297 @@ + +minetest.register_craft({ + type = "shapeless", + output = 'technic:constructor_mk1_off 1', + recipe = {'technic:nodebreaker_off', 'technic:deployer_off'}, + +}) +minetest.register_craft({ + type = "shapeless", + output = 'technic:constructor_mk2_off 1', + recipe = {'technic:constructor_mk1_off', 'technic:constructor_mk1_off'}, + +}) + +minetest.register_craft({ + type = "shapeless", + output = 'technic:constructor_mk3_off 1', + recipe = {'technic:constructor_mk2_off', 'technic:constructor_mk2_off'}, + +}) + +minetest.register_node("technic:constructor_mk1_off", { + description = "Constructor MK1", + tile_images = {"technic_constructor_mk1_top_off.png","technic_constructor_mk1_bottom_off.png","technic_constructor_mk1_side2_off.png","technic_constructor_mk1_side1_off.png", + "technic_constructor_back.png","technic_constructor_front_off.png"}, + is_ground_content = true, + paramtype2 = "facedir", + groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2, mesecon_receptor_off = 1, mesecon_effector_off = 1, mesecon = 2}, + sounds = default.node_sound_stone_defaults(), + on_construct = function(pos) + local meta = minetest.env:get_meta(pos) + meta:set_string("formspec", + "invsize[8,9;]".. + "label[0,0;Constructor MK1]".. + "label[5,0;Slot 1]".. + "list[current_name;slot1;6,0;1,1;]".. + "list[current_player;main;0,5;8,4;]") + meta:set_string("infotext", "Constructor MK1") + local inv = meta:get_inventory() + inv:set_size("slot1", 1) + end, + + can_dig = function(pos,player) + local meta = minetest.env:get_meta(pos) + local inv = meta:get_inventory() + return inv:is_empty("slot1") + end, +}) + +minetest.register_node("technic:constructor_mk1_on", { + description = "Constructor MK1", + tile_images = {"technic_constructor_mk1_top_on.png","technic_constructor_mk1_bottom_on.png","technic_constructor_mk1_side2_on.png","technic_constructor_mk1_side1_on.png", + "technic_constructor_back.png","technic_constructor_front_on.png"}, + is_ground_content = true, + paramtype2 = "facedir", + groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2, mesecon_receptor_off = 1, mesecon_effector_off = 1, mesecon = 2,not_in_creative_inventory=1}, + sounds = default.node_sound_stone_defaults(), +}) + +mesecon:register_on_signal_on(function(pos, node) + local meta = minetest.env:get_meta(pos) + local inv = meta:get_inventory() + local pos1={} + pos1.x=pos.x + pos1.y=pos.y + pos1.z=pos.z + if node.param2==3 then pos1.x=pos1.x+1 end + if node.param2==2 then pos1.z=pos1.z+1 end + if node.param2==1 then pos1.x=pos1.x-1 end + if node.param2==0 then pos1.z=pos1.z-1 end + + if node.name == "technic:constructor_mk1_off" then + hacky_swap_node(pos,"technic:constructor_mk1_on") + nodeupdate(pos) + local node1=minetest.env:get_node(pos1) + deploy_node (inv,"slot1",pos1,node1,node) + end + +end) + +mesecon:register_on_signal_off(function(pos, node) + if node.name == "technic:constructor_mk1_on" then + hacky_swap_node(pos,"technic:constructor_mk1_off") + nodeupdate(pos) + end +end) + +mesecon:register_effector("technic:constructor_mk1_on", "technic:constructor_mk1_off") + +minetest.register_node("technic:constructor_mk2_off", { + description = "Constructor MK2", + tile_images = {"technic_constructor_mk2_top_off.png","technic_constructor_mk2_bottom_off.png","technic_constructor_mk2_side2_off.png","technic_constructor_mk2_side1_off.png", + "technic_constructor_back.png","technic_constructor_front_off.png"}, + is_ground_content = true, + paramtype2 = "facedir", + groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2, mesecon_receptor_off = 1, mesecon_effector_off = 1, mesecon = 2}, + sounds = default.node_sound_stone_defaults(), + on_construct = function(pos) + local meta = minetest.env:get_meta(pos) + meta:set_string("formspec", + "invsize[8,9;]".. + "label[0,0;Constructor MK2]".. + "label[5,0;Slot 1]".. + "list[current_name;slot1;6,0;1,1;]".. + "label[5,1;Slot 2]".. + "list[current_name;slot2;6,1;1,1;]".. + "list[current_player;main;0,5;8,4;]") + meta:set_string("infotext", "Constructor MK2") + local inv = meta:get_inventory() + inv:set_size("slot1", 1) + inv:set_size("slot2", 1) + end, + + can_dig = function(pos,player) + local meta = minetest.env:get_meta(pos) + local inv = meta:get_inventory() + if inv:is_empty("slot1")==false or inv:is_empty("slot2")==false then return false end + return true + end, +}) + +minetest.register_node("technic:constructor_mk2_on", { + description = "Constructor MK2", + tile_images = {"technic_constructor_mk2_top_on.png","technic_constructor_mk2_bottom_on.png","technic_constructor_mk2_side2_on.png","technic_constructor_mk2_side1_on.png", + "technic_constructor_back.png","technic_constructor_front_on.png"}, + is_ground_content = true, + paramtype2 = "facedir", + groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2, mesecon_receptor_off = 1, mesecon_effector_off = 1, mesecon = 2,not_in_creative_inventory=1}, + sounds = default.node_sound_stone_defaults(), +}) + +mesecon:register_on_signal_on(function(pos, node) + local meta = minetest.env:get_meta(pos) + local inv = meta:get_inventory() + local pos1={} + local pos2={} + pos1.x=pos.x + pos1.y=pos.y + pos1.z=pos.z + pos2.x=pos.x + pos2.y=pos.y + pos2.z=pos.z + if node.param2==3 then pos1.x=pos1.x+1 pos2.x=pos2.x+2 end + if node.param2==2 then pos1.z=pos1.z+1 pos2.z=pos2.z+2 end + if node.param2==1 then pos1.x=pos1.x-1 pos2.x=pos2.x-2 end + if node.param2==0 then pos1.z=pos1.z-1 pos2.z=pos2.z-2 end + + if node.name == "technic:constructor_mk2_off" then + hacky_swap_node(pos,"technic:constructor_mk2_on") + nodeupdate(pos) + local node1=minetest.env:get_node(pos1) + deploy_node (inv,"slot1",pos1,node1,node) + local node1=minetest.env:get_node(pos2) + deploy_node (inv,"slot2",pos2,node1,node) + end + +end) + + +mesecon:register_on_signal_off(function(pos, node) + if node.name == "technic:constructor_mk2_on" then + hacky_swap_node(pos,"technic:constructor_mk2_off") + nodeupdate(pos) + end +end) + +mesecon:register_effector("technic:constructor_mk2_on", "technic:constructor_mk2_off") + +minetest.register_node("technic:constructor_mk3_off", { + description = "Constructor MK3", + tile_images = {"technic_constructor_mk3_top_off.png","technic_constructor_mk3_bottom_off.png","technic_constructor_mk3_side2_off.png","technic_constructor_mk3_side1_off.png", + "technic_constructor_back.png","technic_constructor_front_off.png"}, + is_ground_content = true, + paramtype2 = "facedir", + groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2, mesecon_receptor_off = 1, mesecon_effector_off = 1, mesecon = 2}, + sounds = default.node_sound_stone_defaults(), + on_construct = function(pos) + local meta = minetest.env:get_meta(pos) + meta:set_string("formspec", + "invsize[8,9;]".. + "label[0,0;Constructor MK2]".. + "label[5,0;Slot 1]".. + "list[current_name;slot1;6,0;1,1;]".. + "label[5,1;Slot 2]".. + "list[current_name;slot2;6,1;1,1;]".. + "label[5,2;Slot 3]".. + "list[current_name;slot3;6,2;1,1;]".. + "label[5,3;Slot 4]".. + "list[current_name;slot4;6,3;1,1;]".. + "list[current_player;main;0,5;8,4;]") + meta:set_string("infotext", "Constructor MK3") + local inv = meta:get_inventory() + inv:set_size("slot1", 1) + inv:set_size("slot2", 1) + inv:set_size("slot3", 1) + inv:set_size("slot4", 1) + + end, + + can_dig = function(pos,player) + local meta = minetest.env:get_meta(pos) + local inv = meta:get_inventory() + if inv:is_empty("slot1")==false or inv:is_empty("slot2")==false or inv:is_empty("slot3")==false or inv:is_empty("slot4")==false then return false end + return true + end, +}) + +minetest.register_node("technic:constructor_mk3_on", { + description = "Constructor MK3", + tile_images = {"technic_constructor_mk3_top_on.png","technic_constructor_mk3_bottom_on.png","technic_constructor_mk3_side2_on.png","technic_constructor_mk3_side1_on.png", + "technic_constructor_back.png","technic_constructor_front_on.png"}, + is_ground_content = true, + paramtype2 = "facedir", + groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2, mesecon_receptor_off = 1, mesecon_effector_off = 1, mesecon = 2,not_in_creative_inventory=1}, + sounds = default.node_sound_stone_defaults(), +}) + +mesecon:register_on_signal_on(function(pos, node) + local meta = minetest.env:get_meta(pos) + local inv = meta:get_inventory() + + local pos1={} + local pos2={} + local pos3={} + local pos4={} + + pos1.x=pos.x + pos1.y=pos.y + pos1.z=pos.z + + pos2.x=pos.x + pos2.y=pos.y + pos2.z=pos.z + + pos3.x=pos.x + pos3.y=pos.y + pos3.z=pos.z + + pos4.x=pos.x + pos4.y=pos.y + pos4.z=pos.z + + if node.param2==3 then pos1.x=pos1.x+1 pos2.x=pos2.x+2 pos3.x=pos3.x+3 pos4.x=pos4.x+4 end + if node.param2==2 then pos1.z=pos1.z+1 pos2.z=pos2.z+2 pos3.z=pos3.z+3 pos4.z=pos4.z+4 end + if node.param2==1 then pos1.x=pos1.x-1 pos2.x=pos2.x-2 pos3.x=pos3.x-3 pos4.x=pos4.x-4 end + if node.param2==0 then pos1.z=pos1.z-1 pos2.z=pos2.z-2 pos3.z=pos3.z-3 pos4.z=pos4.z-4 end + + if node.name == "technic:constructor_mk3_off" then + hacky_swap_node(pos,"technic:constructor_mk3_on") + nodeupdate(pos) + local node1=minetest.env:get_node(pos1) + deploy_node (inv,"slot1",pos1,node1,node) + local node1=minetest.env:get_node(pos2) + deploy_node (inv,"slot2",pos2,node1,node) + local node1=minetest.env:get_node(pos3) + deploy_node (inv,"slot3",pos3,node1,node) + local node1=minetest.env:get_node(pos4) + deploy_node (inv,"slot4",pos4,node1,node) + end + +end) + + +mesecon:register_on_signal_off(function(pos, node) + if node.name == "technic:constructor_mk3_on" then + hacky_swap_node(pos,"technic:constructor_mk3_off") + nodeupdate(pos) + end +end) + +mesecon:register_effector("technic:constructor_mk3_on", "technic:constructor_mk3_off") + + +deploy_node =function (inv, slot_name, pos1, node1, node) +if node1.name == "air" then + if not inv:is_empty(slot_name) then + stack1=inv:get_list(slot_name) + node_to_be_placed={name=stack1[1]:get_name(), param1=0, param2=node.param2} + minetest.env:set_node(pos1,node_to_be_placed) + stack1[1]:take_item() + inv:set_stack(slot_name, 1, stack1[1]) + return + end + return + end + if node1.name == "ignore" or + node1.name == "default:lava_source" or + node1.name == "default:lava_flowing" or + node1.name == "default:water_source" or + node1.name == "default:water_flowing" + then return end + if inv:room_for_item(slot_name,node1) then + inv:add_item(slot_name,node1) + minetest.env:remove_node(pos1) + end + +end \ No newline at end of file diff --git a/grinder.lua b/grinder.lua index a27dece..d60dbbb 100644 --- a/grinder.lua +++ b/grinder.lua @@ -289,6 +289,7 @@ minetest.register_abm({ grind_time=4 meta:set_float("grind_time",grind_time) meta:set_float("src_time", 0) + return end end diff --git a/init.lua b/init.lua index c72509e..19b1843 100644 --- a/init.lua +++ b/init.lua @@ -42,6 +42,7 @@ dofile(minetest.get_modpath("technic").."/screwdriver.lua") dofile(minetest.get_modpath("technic").."/sonic_screwdriver.lua") dofile(minetest.get_modpath("technic").."/node_breaker.lua") dofile(minetest.get_modpath("technic").."/deployer.lua") +dofile(minetest.get_modpath("technic").."/constructor.lua") dofile(minetest.get_modpath("technic").."/tree_tap.lua") dofile(minetest.get_modpath("technic").."/flashlight.lua") dofile(minetest.get_modpath("technic").."/cans.lua") diff --git a/node_breaker.lua b/node_breaker.lua index 3a7f53b..a160737 100644 --- a/node_breaker.lua +++ b/node_breaker.lua @@ -1,7 +1,7 @@ minetest.register_craft({ output = 'technic:nodebreaker_off 1', recipe = { - {'default:wood', 'default:pick_mese','default:wood'}, + {'default:wood', 'default:mese_pick','default:wood'}, {'default:stone', 'mesecons:piston','default:stone'}, {'default:stone', 'mesecons:mesecon','default:stone'}, diff --git a/textures/technic_constructor_back.png b/textures/technic_constructor_back.png new file mode 100644 index 0000000000000000000000000000000000000000..6baf788a8c0bd864d7a7148cb0401cc9fac18763 GIT binary patch literal 2094 zcmV+}2+{Y6P)Px#32;bRa{vGis{jBFs{xMe#QXpN00(qQO+^RX3KbAB8`MFh)&Kwpz)3_wR9M4B zmsz&lx^9L)G^C{3+rG`pol>$^=0A?>9NW7}5(yv=tT=k62!O!fK>q8$|Fg!p0l~}w zh&d<(HN(t^47T3MOaQ7NDQX5HLRC^#m>VEO1S(43I`@4uM&ND;MHPQOcf-dVs2VCl z378p~iHe}6AkfShW1=c#CZ+~i@1Tz1L?w}dH%CNJF(M0p7p3ZCO-zhACho?Jz*jDU zs6Yaym^Z8$jESft&EOuSKnWCJ?x-l5z;5J7_Ky$780`DOJqD6Rim>U%mkc}&5k*Rv z5mY7)MOA`znhDpO*rTHf;vGT|S5!KfFwYy@&@2XtNkdWSLdOw>5a@d+t{`jT-uRxz zodXqx))6amPJG{XB8$kRx6ZM3Ocf}!APr(9SxJ*dHfP^=uKT8|LQ~v3Z6<0;nUFIv zbI`(U$K5%fFQge(O5~t2>Dz{m`RgA%%#AYW=7y# zLsi+fosO}!PSZussfM-y?3gTjZQ|W{Uw(SVQ)^|h%_l9}n```bLh;ZLG5=l}>72|a> z#=uP#6(uU^WekEn8f|O1I|*baZQD^15KvWG>p-oRWHIiW{df==s46ppecPGi=JRiV z7`G%9i>}5Pi)_r<_XA4U_Z?WQckDZ& z!soYds2bb0aqK(2chrpk`SFA6x@g`Q_h97Y{CW`zy*0MSfr|*L#ub6rK$?+N%o%@% zOS~bvf?wD5eu?0^F4T5GoeBdhdKazZN}@&1}^ zW-5xSpe7WcW<*Rx1l}+d)rAQ6KfM0=`N{cwa$hg*`=%mMG0yYE)Tk^{!JG5=$2UY2 zGedI*y>~_>HH&!-W)_)+6vUi}C}Rw+>jK_-5levD`*p7K+W z;u=II*Uv9Xp&uPBS?U&^h{FEQ57Zaj=A2X}tou-8X@Dxn;{XIis4TX<)0z_*;>KFsx zSI-N0c;j_GS;$rHd2@sl3Z6xd$*jVwiXxGOX+pb#&|;z-9}i58>$>>YfBcJIKYtRj zIA4Gnv7S1Dt#4!&t+myHT5=r`+;gls0(3LxyxFZ|1uDq<{DPjC(Y#SWWg#ML+s4<| z7v37jv2$P7`xPb#WEIcn6IJCrFJer7ef?g%pS2WFm22Ky&l5usTNLireGLJ^rVVjj zff2Hjm_f-x$DETAVc$AGe*Bx`ILHWkcjgd&{r*KnAi&l-ulb_&&OL6tgzSw}qq!0! zo`N@buJZ;dVyvHi-)OD9FB57M=M0qpSHol9m*BL{b=`;xRYgTo0u;D6W-Jdd3rrS& zL=EDecr*MwPx{u$k@!bPdG~irObs)~R2P<|-WMdjH3azi`iXm6ZmJ4Zp%9W-8sd%T z*B2E*sh|c!S#}RWn>X%jz}xTL=fyp4D&B@OlR1Od8(BqUEL2pXZ@+h47uR_)$KZH8 zP+I~gDr5!-SaaMQMB$oDf;lG|b7G>X+M-_<g~*^N?y=;0fqNyAnar3(t_dGw z^6S?xs&a|Xd(c+3aK4_5aWB(a0$I3kos0l2_O>na@J7PE?U*~y^F_pDjz!5=oMa`_ z2Xib7Upd}GyR?5lj^ztlLkhlLCx|Qk;{f<1n0Pr z!|6C<+;~xB3|^J=Y+Rf$7kh~*_jNHVuwz*;p}5AyjKFecpq4!q+}1m-A#m8~1(Vn?nk2ro>Ew zLUOK!GK0Qvs45u+tc6u;`TDqmnaRwxJIt8u{T)=~4}%skYM{+9^|cS&7YM`%9>>A| Y0yx=F^NI|8%m4rY07*qoM6N<$f--CEf&c&j literal 0 HcmV?d00001 diff --git a/textures/technic_constructor_front_off.png b/textures/technic_constructor_front_off.png new file mode 100644 index 0000000000000000000000000000000000000000..f878e5542a2e72907bde48411287c0efed0d5c78 GIT binary patch literal 2677 zcmV-*3X1iKP)Px#32;bRa{vGis{jBFs{xMe#QXpN00(qQO+^RX3KbABFZK0MV*mgO2T4RhR9M4p zmdWd;*;U6scYMZo`b{;ZtEy8OENP7*4jU0Q3;zS75E8Oc$j*(R5VLWWl?xHUfS?OO z2t;=-bYUZcI3T#_q*L8?SJiJG-uIcGJGpqP6`{}aayjSlz2|#ASA6$Relxv%bqPqU z)c}m+NJ3(*A+ws<1YmHFw_{jm<3LZRMkrg0SLMX{{upSgjX0Y^s# z+uOk8M^=lR(iwKmfYF+|E{P$cq(rY*HErvdoTn;FmaCG?YP^q-Ko^3s^Y{=kI;W}v z_fD4F-1ca#DJscwQ8N#oEZ1l&82X6O7Hd1|#frMhc>Vg0qBJNp{WRcQ;PBo8IShft z!jcz?5F;rlvRqLWB}J7}l^SgmRbeqkvRD)}&CKVYKB6o#7I{r>4903sj#gyavRPGB zc}`v`7Ij95k*AMO&`L8*j%f#L@v4z4-iAjw-dwRq$c;qxW zLiF5TO*j|0xNLFB({&S|`24f`Jb19dT7?i2qChFlqemN_|JZ%1%0iNy9Ip^Ua&)jp zDZ!#HsjHGN{p1srlHA;O_}LRvB&EpZ#g4We(Z(o@vbf-}$>7377D`qJ1$CVf6U?*c z@NkV*5~&i_DmJSHiNJDM;9cbQw&T&mBgSdMT1`JV?wzdJ?i${C=P~cU|B8!iL2f4I zD~}Heghz)M*lY^&LSZsRt_wB?IaV7MbLnPETL)&ENTJuCF_g0s;K$FMWY;|NgIGw4rTVVv79BzrH|g z$-@ULPS3Ushm>Jr@>Dd--1R(^h z^+;_b=NDUy$T3==l_tvsS-wx6=azmLD613BFV6PG6Cn15Nr@OEQV6Em^Y!2Qb1tuT zOk+T+jMK9%xwUwgkO~$H%kv*UMkz&>Y1A+O;%c!(4Ntt8+7+yCNj z+aUnw_5`h~43jHJu#sDcHxyfXPP}#sp-0jKm690SuRRmpWQIe z9)Ttyc>l#Y%T-2MSiE;^cN1Bm7{|!z*$w^ZkV+B*1Rv3hWzM!~P&%+#E~x8_EH^Cc zlKUqc>N@A+*EjUTz-~98ltd7aGJy!xl_8ZmT1kBHwC&9GP0OQ)2Ph?3ElW}qT%4aG zl-w_~keL0=YFV;tM!a*(v**#nH9!2(IZxg?;q3f| zwjBu}G0!7al`#x601xi3xZ5@;CAq#H`S|5Ev-2nkpL=%1-L7G`mDt>%->eXb8Ko_8 zF0nS6rtA5){}@>PKGLDh98!$#Odry(s{d36uY$QBdC%*8x z6SljSkRom0^4}kB(OR%rlxQ~xkdizzU>x_3)=Z;Apr|Xs)m6*=2Me@KbX|{en)N#8 z?rtC?N8dXDl++Byv0hi4pWpH5(E)8ca(Q)&n-eJp#>sJY+p<11Se4Tc13D3zrh)6* zKt1PZxn&x8gJs3lb<6B#4o?bVf{-G&+lH=pq@ajVU~@scn=n~ov#Pk>?uZeB?jb7X z)H02d-~{V>!IVaD3L!N*vj)&;B?#Vg@8pDk|Id%9vV!B213rEk8K=PQ_1>2K;0S)d z2No+qyG>kgZ&}tAP2+emU0{r+urp^Lwail@ric`hZW>tDIetzMJ;uJ70VTovJ)ft^ zTw%Z9f38T;vD|g()~Y-?3R&+-?WfYeS3*y;|k$b^|dbOa|6i z@=SAbQe&;5>pUq&Hk+CdJt;-ptO?!&5@RIJM>eaHt{*81$zo9wLjS-2#k|mDHm7Mv jeDExnIReSkCx`qG**jiip)RKa00000NkvXXu0mjf6lmwu literal 0 HcmV?d00001 diff --git a/textures/technic_constructor_front_on.png b/textures/technic_constructor_front_on.png new file mode 100644 index 0000000000000000000000000000000000000000..89189d6075d5ad06c2acb290dff660e0e599cdc5 GIT binary patch literal 2627 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 literal 0 HcmV?d00001 diff --git a/textures/technic_constructor_mk1_side1_on.png b/textures/technic_constructor_mk1_side1_on.png new file mode 100644 index 0000000000000000000000000000000000000000..c897942734ff37cd4f66d0325caf54ff0198f3e7 GIT binary patch literal 2342 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 literal 0 HcmV?d00001 diff --git a/textures/technic_constructor_mk1_side2_on.png b/textures/technic_constructor_mk1_side2_on.png new file mode 100644 index 0000000000000000000000000000000000000000..da8ed3490bb52fae015715b5dcab9f30e81071bc GIT binary patch literal 2338 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®fF~42@eFt+`)pH3d4-v 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 literal 0 HcmV?d00001 diff --git a/textures/technic_constructor_mk2_bottom_off.png b/textures/technic_constructor_mk2_bottom_off.png new file mode 100644 index 0000000000000000000000000000000000000000..83c5b077ae2f84dbdcc64110c5c37d6973071de1 GIT binary patch literal 2281 zcmVPx#32;bRa{vGis{jBFs{xMe#QXpN00(qQO+^RX3KbAEF8_s;umAuEdr3q=R9M4Z zmtC)HSyhIg@iEt0RkiooXK(1ku^YOjqk^_vh_ogIX|zcQ;l>;Pg^??Nh>6A<6D8pu z60Yn!h&BOZVxs;42qX|1&q?o(ssjpP6F~@qw`@U2D`s;s^w|7TC znP&&!cs!9P^ITZw!n$o-Ki*So2cUO|4AxUaRfy>H2zEOMlyz;G8aFpPo1=E?<8f&dw zUKC6fw~1}zTojZt)B1_oChqPx4m;;~s_3XiaThX`G8y~bj+>7hFj1Ci=IZeU%Th3R zd@@8}zn?kmc4Qa!7mgUb{>BYH3BU2`74r_%5;5iK(FHP9rfFiDjb#yzYhzmj`K>pv z6H%sOhzPBB=Gh=YM2HZ)2+W#xM8Xgi6#WlBlzi0eo86M^ZQ?5si-<3otlCKNGfYUs~ewq z{dI0$`6y8FU5OvdM;f_uTd@aXYlM1*bIkRAkyWKxeO zYOT1bqN4N+rZg&@r5DOvaCZWT2;2(OG$A6G8-kFTpo0^lV``WwrcPwC%nPkQKJ#}m9C7@EM*j+YOKBES&?EyCarZc6IDgL(4$ex z9y5g$qID23b5sOTAwwV&MaUj_ai(eF{^6e9J6eN>;}KNYGUySgsd73V*@Yu2s3@+2 z+PTeU^xlXFdM1KW+%Pwa85zSLGIBhVqjNn_F;1rwrbb2%9VpKJ`Vx^bF&eEiO%pYP zY)M-yEs}^t5_)ThD4EH&uB1TiolMwTABw5QJTHTOD?>CGh9x4@TIsFP*Gi9I{qUYt zn06DIqib{zL}9r(pe{&4YmJNmfkY8Kw^)a9nGN}#e2k-+(W4W+v(*iO@q57CX+@EQ zW3On!cC07}5rKASwQ;_e5i;7s>1#- zlL4m2d*3?_z0jc(y?3@&$D{!|8?9|DHem@WjFn^#h{TNIg*<~LBFytl?+tU~wI>(s zX87!9KF&9u{R6K)x#aJD{I^_RP5kyJZ-&71;P(D*=zipoYgN{^u|AwI1hK)D+T@rS zF2^7!h&)y08l&+oW-KPhG6=KW+UPD+v)Lsh+y31ylPQ(Od} z3O-Hjd;wG3953#yrwt_OwIhHpGo=)I??ZBHQd^^Lm5d!WIZvNn^2^V|;V|*b&%={f zuIPOf9K8>f^Fr$t6{RJZ7`=CTR{GZPV(95~qRfto;)jVc6@&q#q+sUwS!}#GR*b8w znd_@dWDy=c+98YZ?Abk+7Y9TH5K@wepm?FxO7>2Ys6jVSQ$Wz-g>9{%V;Z*8%2qeB zcSMAYptX*waQ%@Rmfgb5^%aQn?Z5bYF7^k$`PIMS`uY-p-+c3vs11XYb6`cl%2)`Z zur?Z<)*9Yh!$eUvTI+}lf}l2RwMR$Q2!z*OeU*>D`DHF2KW4xy9QH%953dNvvK;o&?9%e-Lj9M=;PL62lv zmSH3rxcQLj1QVr4XI(dr#|I9Vmt@8m#jSFGcS}8guaUIu!?;ez6K+muC+f;OUwnrz zzVjtq6f*~s`-gkp|Ni&+&;R}}KD_;q{r-^C5%$E{> zK4e%==6F3GBjnpKAI|zBz+1on7Q4e9U!41Aw}=X5n(*vFy5nkW9%Kgp^YahTd5=Zl zJ@DR`TVv{tsWnP(l-}_kkU^-@%xG$CW^C>>Gpae&oNmgGe)MDBc;gc|GqQ6goLV&oZrjFpzxQ3f^__3i zIAAU5FQos=UwJoWI0Dnfo`3(>AF`fKq>RWNF+3d^JEa#~WG3+<{p9cr)sg#C!BUBg zm#v5#p6~}>cpFEM3axGUNHYLIKd!v}g+Jo{`5moQcKbaM0cXl15)qj83&x1r5lQrZ zCUgXud6{35KUpD1-8?)zFo&^iD?U4fpd;grmh@<7LT0e+cc_m12a0()@1Tsnb=K2H zZH*p5?G4k>trwlji1Yrjk&+`7i%_=}1bXf4cRT(UI~%3etxG_M00000NkvXXu0mjf DmQOx2 literal 0 HcmV?d00001 diff --git a/textures/technic_constructor_mk2_bottom_on.png b/textures/technic_constructor_mk2_bottom_on.png new file mode 100644 index 0000000000000000000000000000000000000000..9ad76f4056cfe6d307e52306c299aa6aac602863 GIT binary patch literal 2316 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 JPDHLkV1f%YS!VzM literal 0 HcmV?d00001 diff --git a/textures/technic_constructor_mk2_side1_on.png b/textures/technic_constructor_mk2_side1_on.png new file mode 100644 index 0000000000000000000000000000000000000000..fe0204290de19c3610610008ccbbbc618b611bc2 GIT binary patch literal 2355 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 literal 0 HcmV?d00001 diff --git a/textures/technic_constructor_mk3_bottom_on.png b/textures/technic_constructor_mk3_bottom_on.png new file mode 100644 index 0000000000000000000000000000000000000000..f76f29b0854da032926ceffed791f3ba88af4ed8 GIT binary patch literal 2318 zcmV+p3Gw!cP)Px#32;bRa{vGis{jBFs{xMe#QXpN00(qQO+^RX3KbCnCQ_}m0{{RBph-kQR9M4B zmtCuDS5}6f@iEt0Rkioo`|R{dj!BzfqbAab_z}e>c3RWWXwzW-620-C2!dX;ikFJs znoBVWDuQ4OUU=0clJ6XI_TE)%%{j;LV%A9)1+zX@)f#K8=Y7XJ7Iz58j&H-gz8>Yt1&5kEej@;fhc6&z% zB7|p;{oe80`xB)U%mfiwmO^bEQ)QYJ(PY0XJbk)Rico83nhL$<`J@Y`Gp#k&TDiO^ zm?~})+s3&lC}pPg6SGa+-fbLq&hb>yQH$a(WGZDc_PZT7&mAyPmTBhd`hsOCm^(fh zBCy}j9Ckah3;PR43|@Za2A_nVdGU&Q2Wp9!a`oT>nJUvXG0n!Z2*05I~RMgZDq66z9p^Cs-<~PDrPwAOVuf8qn&-&%XRJ zH;=wX)C#5)cTV?5LcvqnqCyKwDQImSFOImX%F`B+$%1r^0inZ$7v z$1o9GmB%kUW-1etj{lt8$xIH13mm2QPV^uX)@{QD*w&5dVnJH6>;_Qc#;y#2d~=q0 zrc4uI;N1X71r_~@YD_UR%2ZHSW|@ed6n8{~UKH!es_@|Af^A*V);pO&94isQdRo~e z=&b?5<>7*Pw_}c+*@75BGK z$xT2SZ4DxmjKCv30ooEV zBQsD{yo}rQeW{@pu zYo$dJkw`*s4G|?X+18a5sJ)X3TkFFy)tKjH&~Ig!24i4}2(?yvYxK3!BUrz@BNe9I zgy!fP-2+irZVspmlF(WsBS0WgM9(eOF}TczeNR5*XlC^2MDJ{MLty+KaCcf!B;nXA zny?)!3PMDn9a?Q1pWd^r+fT2+Y@8@MD#|>~L?p<$h%+-i0zokmtT>mK4=^7}ntVc3 z+2Oc4juExdYQ-~?B#?k+LRmXqlZLW8>@hXgb!A=_iaW3W`oiN!HyrOPB7v%~Kg?u+ zsqywd9fx1&@QL0#TdPB9fX+s18;ea?f(qkGG6zIrM)5+P!4eVXd8YS;L(4t{=?&=(E4TCHb?T{3*Zib2r0adhqn_cKCkeuxnM;wz1xyFa)u|mD=Q(87{`6 z1#|tXn8={FPCG+aYvuatz}3Zp$L}SF-JY9w$NJoV3n@uv3|I9+CX{JHOmPu>D)=<9 z^94+CbF{bnyF&ig-vUwZ8^pM7hr%Ln5Y^fn;O zNZbqk%uXbj7}=9nEA4J2vZJTdi84DTiXSG*R1gM`l7g9!N=5MESTU}yX5=TrJUgGbr2ZWD5 z`jD@`@-lCI%XsC*OO|D#6yff+k|a-W@7eEW{_5{<`TVobxW2xo^$r=FPA4D%VO>|& z?L^4P9^PBSL{T+b>xc`2pf<*8kB+Jl2rs?(B47W;ce%X2X22^P_QSFdkA&m#$Z!1G zfAEiQzdZ&RNvj<-C3@#{yr=b!h@c5XBH#bR?`QOmx-pk|gom>dmU+S4Ij$!pf*#4T zEMt&l;O4`o6HJsIops$f9`89^UXmF@id*IG_9^xJy++cqkHK|1o^W$QJ5g8O{PvrC z`_1p*qL?|5+}+>t?tAa?pa1n^zI^&6`~88_@g5N&BZvsho!&cU#%r&=%I|*X_qcg@ zGgQ$!k-5`|?#w>%$)}%k^|fpM?VtbU?DNCdGoM-f zPd65jXUWR5=Lq>WhR^WgA?a6NdzH(p2l(RLeeo1gp-dB=JxF(4jm?A1;Pa0@<>4>C z!NW+d*E=4cjyyWu^V0F2N2fcUJKpnXJ8`+KXmq~xi6_&{|4j=YFMB>(_Ixrge7@}Y zc-isgvgd>Mf6OaxI5V1-Fnukj5zNf o8!0(bu?TfrL7>;pez)WQ0nop^nb@s+e*gdg07*qoM6N<$f=GjQ@c;k- literal 0 HcmV?d00001 diff --git a/textures/technic_constructor_mk3_side1_off.png b/textures/technic_constructor_mk3_side1_off.png new file mode 100644 index 0000000000000000000000000000000000000000..0ea1fc0a10755a614a23ee0a35071197df8fb034 GIT binary patch literal 2378 zcmV-Q3AOf#P)Px#32;bRa{vGi!~g&e!~vBn4jTXf00(qQO+^RX3KbCoG>SQvhyVZx+(|@1R9M4B zmrbiK*;U7X>t$Ef^PF?f$xUmATm+q{bR0Q}ZwT#6(imDNg3=#A2il+rfq)ai=v?q4 zIC0=4gYLwcG)bByNJJ4^AsSj*P2cpr=iGCir)s~f<)98p4R_VvYuA7OU)Gk-e(p2b z*M?4piZaa;>v=^~IUbLkPiK0gJoXmy>nX66fe~6jC&z7QBz8p$OuG*(Fa}% zr4(*&Zh7yYzsYaC{tDMuM=p+zjy@>ML`LFXP!t5Bch=LHAW>1ol!$>Km9eLr?xR^VG|f_APU6= zKNQZ}hKnj8$-CeD22Y-RlI5_U`*N6h{g;1}Z~xP`*|wEbr81bju*#sgLx&P)UK0^c_d;A!yjTnO_U}{`mUQz4De3%)d(`sj$XGS0N z+S&Tbyv)qY%<1l)F$Ncxm#pi`JkOBHdS2<#Arjz$oX+j-33Yce169S%urVlOplX;Y zWiA|!$6e#_jLEc1e^(Ikk3)BT29^62V-#~Abx z4~v1dibQ}H?(gprQOMX$C<6CFStb@WA_ldBq(FjO!Njm4EXNDh^^Cbww~G73EP}go zxF|e+bjj)cr+AsB9~38H9>ExcoSe76@)hXG`~US_tT@|RcUN@B)DRPT@3h)56{cyX zkB*2SVr<(=nVfB1iA=WE5D_kxiU0fF4Q7tt-``WBalqS2x1I=_0?bD?!zzf8?XKt>sq;azA;AQ_C@7y{_X?D7zj#?vBQWk za*!iHp!Eg`DKJK0D%_toE{+qfZuHi6%gsc4$1@=l5f~AC?E0Fx3$|^eZHZ};3G=cm z1(Z^p)+&Os)eRFRY~PM~q4&0vH(^9_^=P5D#M@Sxr-{rYMX(Gs0)WUQGZ9hT3V-nB zKjSCfNuEE3r`Pa>*Z-IiiMj5@Md`Hy>^vfggwB9Wx+ZQ)0CgK|b;Che&l>=eU=a|p z7Zu}pJRl;}*7>W?eUT4-_8Fxpr&Hs+HZliwYY<=s%#7><%;>%E3IZbb^&=B<=bM@0 zBEse65fLE>GUvMhAXA1JY#k+DyRNY-^_L^8(UuYc`}eDJ9sBJlji_c?uF zW~a#p zy>L3+^X%!y=l}B0>7&tqrg1tAK77`R?8H#U7(3-7@oA#>O0t{UkVI4v3^KWYo=j$( z?mJEf>bAoqLZ2o^@4G58X}$3e@4UnJo)-S~U*01|uq-np0x{wG`Y{nfWZ>@PNJMtI z_2`V+=p*Q(bANY76ytCxj4JeAaTVR!`tVdQ^aMnB^5m0f*C_6|8@9~28buV5 zq^U8LLTep0#Y~Bj)NRAV2rF!LgLQCqeZ_kBzg%4vo;~d>v*WFG#N>fEolTW+2N7QT z%xir0>tE%imtLaP#^K_KmkBo|1D0i`)y8sIxVgDudhio9V_R2R+hy2#BU+<5{LlOU z#{F%A3?cB$6d`J3v`)l8Wmmzrt(ZG)1omLz zwN?aJmW9k+zQvtZclnt+rozpOTWl_DTjRs0_kfYv@w!z;3^Ib-+goIs_iRvMS|-+Q zrM0>Ti|XFIJOuc*ZIDSDoybIWm-Fd#Vwxr*gKb^O1VtDzP%-8s^v$@rJ)z~{)*=XR zz5N!izWR&&=#O0UiBG)D=mP;xeWSHbYn4$O=kq;nbhd2;a(B@fs0yR)ozb>#)NNzL z*gIu2qz9s4In(=KTfrj(RYO#G_Z#oB%m*G_U1G)g)<1rWoAn-TFxbC~3~ZS=uV)I% z)*9x!|nbTA6132A%Ip4JU_M|$GYf>S^30V2W}eQ&X3j{`LY0yAOsj+%i8lNf`(hs+qH0Hc$+ ww_q8;vMij>Cq$HyiKNo{ptV8Wf_X0dKi99dkHyTe#sB~S07*qoM6N<$f)?nF{r~^~ literal 0 HcmV?d00001 diff --git a/textures/technic_constructor_mk3_side1_on.png b/textures/technic_constructor_mk3_side1_on.png new file mode 100644 index 0000000000000000000000000000000000000000..ba86332c9699d446a31d82c14e9a320ecaa993cd GIT binary patch literal 2402 zcmV-o37z(dP)Px#32;bRa{vGi!~g&e!~vBn4jTXf00(qQO+^RX3KbCq2V=8P7ytkW^hrcPR9M4B zm(Qy$*;U6s>&LFDbIyJDzSnKPP9B1SVCV>flcl)onW!nH3}ghNLT?=} zg;EMP*EhWLZ{Of|UVDYB%RPs^qrG*?G?0B4ELo{^4#P-Y7Tk@Vuxp77hMTcxtK4I{2J3A{KI!%JZrN323`!AM~c#x7gcmC&&wtK?6-~BF;$vBQo(}b8}WdH$L10Mfu3%mV(ycUq78V(`LpB6~mv$Kw$Zg^W#vB5*I1X<$+#qO-0bDUje+FfptM)BeCbpD}mV zWyO796v18D9SV;gTyT2tDPD%*$BUEj(& ztx?yCsW1#9tv5sj5o1|q%HS;XOk}duiimKS27dU#HD-<0f#g5_ z^Bwm41E2ckU*dRo$GiXaF6&ZJGgK8*!A05c_CS!LXx*Mg2G~TlU^nfkt#LY^$xKe? zhKMpRCwv@6A`(%>)cDxEflv&352AN|{nNk3-G^V~w?6%o%=60i^M&3kH@7Q)|Bvs} zdq+^B_pOZxJ^MCFf!Zo0q--@!h2v@Aupe-Bqt&`eZYEdrnE+%zAObythgVm`U9c<* zbxBNZi|c3))j!>J4q4=jSiVKP27|K)}^zo z3l743UI37U!@6wb5^yp0`yC>}S{r}+xi9ekFFd0Z<#ei?=SpU0T`B}v0W%|82Qyl0 z8-sv|t$t)eZg?|OTtv9I*drnYfr}uS7|?p9)`keY@MzEP|HJ2b@Fv{+6!3}U51;%2 zZjKJdJf8ujXUE;{ol*eBh4WNJhXMe%}{$6tUV)Ejw{O+IpF(9}pttXkm+A095LTh=yi4Flo-{eL+?!s$VPOf_r5_s5+4Ry zTS-*DT+styq zlP4cXMEUC1zDjY&-LPrI)hMEfBvp-}6l!g#DP~IaWL*|KjIhG8E--g4uP&MIe!%5r z;n~y1G&){uLrm_0)A+%(+h%?vy!x3}`O4S6!iz7yNL?$t!yYdKZb}AB(@0$_({AGW z`kLWhPt=TMo~d=CVQrPDmFn>Q_rAmNCP6xpf+r9)$N*F2!`;P(hlIzEAM^bAHS4-= zx}ckNN8c8S+*<$aqaP8mnN)3+T%i=l-RZqCi~}ifcYVV!7+05jo?g!kIpU=ltpzBE zD$n)@A~wGE+KA|=Y%Exo8FQ!h!0sh{T~`E{risjrzQvuoZuB#EOoi*)8*D5rOXb6- zN5IHz_`0n0=wt*pH#Z!2d)C?zRfcI`US?`tH)B!V!ppsZFUta%)ZU0pR5v=GPA7(8 zATn6yd5d2NJvu7JxQDhF*Ec7$+@D$m;f*)n;OAc+;D_Jl<(FTgw~hd(woq%M)|I|i z&gUbwH{WP$w4R4Z+!^pfYD4;I1R;j&WUg&j`* zCfh-z!z>kRNxE&Vj=)bwi=a{&heBH_rb^936VkR=ewr8D9chV64NmQ}8HfnIw=H7H zmafzk2+V}u8fpe23}STJW-`5#0`x}a7Qr%tX_`2nPl)Ii^HQm;Q)_2kf^jVTAO9w( U%CH3jBme*a07*qoM6N<$f~u;TrvLx| literal 0 HcmV?d00001 diff --git a/textures/technic_constructor_mk3_side2_off.png b/textures/technic_constructor_mk3_side2_off.png new file mode 100644 index 0000000000000000000000000000000000000000..8e8dce4ebaebc5ae900b144e24a1d6c70b0ae096 GIT binary patch literal 2313 zcmV+k3HJ7hP)Px#32;bRa{vGi!~g&e!~vBn4jTXf00(qQO+^RX3KbCt6H-LirT_p4n@L1LR9M4J zm&@;L$5F>WRn^_+%*=iMV&f~DIFLm!G7I7m@lb#yAOs5}BJp2jVF`&pARG3HWL_JP zNVb5)1`I@U1hD``ARdARlEJb`P<-*t?=^GI>8fJUb1#fEiW2!_3B7%sF&)rD@5Hb@%uvVz0a5|l+rQ*F)rpDUc^^saDpdgAz(x%3`tf&eq$~4cocT|nj@kncpOo#}Q00A;tPV2dL!$b*p ziWMNqQV8DwK?E|udr&|z6H0+r4JV0o+MSs=Zg>V#6ft9QXFu=RGVmIxD-w{IfPf^i z1*H^J4KxXLG>xLhF#{7JBZ0t4$}|;3p!d<@U2Qmt^h8W)X<*8pO34i=LhCweveQif zn6%=XQx1)Ypm%4k6R|B!QdvvTqCy0EXTpyQ5*-DY=gPhNjqVP`s9HJf546(As!SAC zNu(ND3MtSY9*|w7Vl-<=wecJ!R!3B*rSOYC_X~XYgAaJ}?GJeT_%R<|UGlBJ{#)vP zVt+WG$K#3bU7onT38u*~RctbP?|2nvt(2*UhznDhXsv+?VtNL%P_@u%qn1h$RZ+9S@nVRz^M-NOqCvqs&QOS+}z#(P<$X>RS^-00F?6Z!JezDm8;7W;mP~&y^jdY)0l6uN(xME z#-k7M$s|!E{Fz8)!qz(~f~pV*FTMDPZ@&FDnK1PZFg6#kQm|4f+ve0dzEl%xEzI*w zZKJ)dHLMgQgy0K>^sdq3!G9Jh}NU^E?v ztr6V`K-CZdE5h-1<9Gh?cX{-7^4=Ff-WC4v*M1X0hzw50+o26U9QLV$8bXhtET@h~ zP^{4132}-GsZUKVQ8B`O-~?FRF*AfjBzXN(U*zzaJwN=)Bc`cPYePgRRtD%uipTi? zNo2CFD?K_zRoLxj(!sQ_r4X5@C>}ms+MN!V6_#~{1dqU~p(=d&Ki}Zuo5|y!0-1%c z{nA%B?0vA~%o;Mr_L(RHgdmg%$8=(Uub?VOfSk`-%?QBL(VnQBn`lNWg~()on0Wop z7dgE0e;ruYu~D2e0|=pdUiJLUo$j6D5%k`JncOoVh~T|)es$C-fDfePzHSE z-8cBizX|jE@LxX(Z+zi5I6Nsd22&9J z=ka6y?9DfsTH}>heu%IC#n)L&K>#%+6{dMQGewPJjmyg;rf~86b2KezQA(*qj+v|3 zNVXp5F|6FZdk<0J>gJkODj7-2V33&+nSAcEpXayU`0ZyHP}Q^8IT=B@xY)6-(0j6N zNo*TSaVBZFDDyPaTI0!wA5v-=nvi3Tr{y>(7QwPCz-j!}sS7Y{E$V6*Z}S0aNr z(^8*2Ig+`JKoJh6R4arhyWJl5&hc~v6(0&f6_LTKKk_QmVdj%R@k!qL##_YGXs3lD1l>$r|>(a|jk1@E0jf}M}KF6)VC6%!*>02wAE!he6~JM0d7KK8MX za`U}w{^(Escy#La789XF2$MBRu`!d>5iUIm5~R}(d*Wu}_IRY!f@h#h;0ij~a7i`X z9ktQ+?v8u#dtd#1%3LT+9BiUsRYu&g6tM{>KKST1joUEyes^`s!I>+;N9IqVASnq&e! zkbrypJIq=!VB1zo3`F04cty`(5<_}t4x>rI34HD78iXX7Nlz!1J^~1ZsSA=I8%$deT(R3!iG-dB39&i4C8ds=l7@gMsw2MD*4Va{ j&HMS@xYF0oZl3vH(p={OL4Wwx00000NkvXXu0mjf^zUAB literal 0 HcmV?d00001 diff --git a/textures/technic_constructor_mk3_side2_on.png b/textures/technic_constructor_mk3_side2_on.png new file mode 100644 index 0000000000000000000000000000000000000000..12dff69e4d76b865f5c7bae33c50191176ee70e9 GIT binary patch literal 2338 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 literal 0 HcmV?d00001 diff --git a/textures/technic_constructor_mk3_top_off.png b/textures/technic_constructor_mk3_top_off.png new file mode 100644 index 0000000000000000000000000000000000000000..705f255527a052efff31d2caa6f54d55fe28168b GIT binary patch literal 2313 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 literal 0 HcmV?d00001 diff --git a/textures/technic_constructor_mk3_top_on.png b/textures/technic_constructor_mk3_top_on.png new file mode 100644 index 0000000000000000000000000000000000000000..cef077e72b12a78005dcaed613da39467bffe7d0 GIT binary patch literal 2338 zcmV+-3ElRIP)Px#32;bRa{vGis{jBFs{xMe#QXpN00(qQO+^RX3KbC$4BF3L#Q*>Zv`IukR9M4R zmrc(k*Hy=V=iHa7?w)5n<6#mzwqgqwK|%@(7LmmgGXWMXSi~&&07wY7@Coug_yULo z0t+Gn#5*Sv5s^_g2ss{@%-HkznWwv}>b{)A;`R(mOVwSvDpj9*UjF~zl}Eq-zPGKR zIiRBCDYGssqRM{1XE`r8P7DE2#oU;unbsQTbs@z>*%o3DvAWftRo0P1&zXfHzPQ^d5;nhQQRCs z>1NQK91^W}YH1)sm@+X&5LnME5d;2`|7)V@WCJR#v5+}j`fae zKvl2?5f5Refn-Hc^f_`C1@Js*DfAw(r#?di*gSR(?25FjW^D+Ck` zk#GO?cbIOE++B`5T+TdPPrSXH`SNz=!Rg4ovU0y{1nZn)<~mIr=N(VxJx`_`Pj`E+ z_jh+ZpM#4`iR#b+~@iAHK{>&$E*__K}85DpawyeD1p!a{Re#R z&VMo1a7W!yK&F7?1IPgpp>~5;C0O9R!lIaWxRmSl2M-7u*h^xKmA*FeJP|bnG$_=D z#LRo|y~hXN`T#*Nb41{HI`MBm{8v8y&yT64k*7>+9aW*XhK4Z4_q?DQ`0Bgw@O!`e zO&&gc2r!-z<>Q}y%-{aQcd_Fcn@3N{qd$1$2t;JCf!-Rp6Jn&c$~4cUlrGJx^wwCHGuyI``&wAq#uO5`5W96!2uKP@R7$OE zHu}QMF*8(@Up#rj*MIZtJbM2TUwZiPm&WVm=X_rH=tm#%gMayF-hAtAPUjPt(cMXN zrk*M>1a_7&>wprcoT;@zsiV%ls))fVs8P+|GecD{0fLZXf}m)Ohz3-Im?Et< zK7IU{vK_Hr_>=Gd1t|yq>QDcioZ!#?=`RVv`RPypgVrjoH)?H6^Ngs{TZc9@B!`5V z<8CMy#WFYATBzPIg^(g41`z1o(4f>(>86jK6(5R`r?`TS#e_Ux9!cb#X?Zh7$z zJbiXc2$7sKIb{Uc?+@URasqKMC+rjXFrz5ZxGctqnzNO{{rz3GTA1gFl=3j3pr{6x zb>nz@P5Uk3+2=PrSe0j=-@wS}Lt~9LGv0hd?t!-v8$BxchKI z50FzPhDZvDJ9n=Ls)z>u_wi#6`#XH?SHIw`H})J)6-CIClBProPP540eD4dcu3qE* z>-SmLh1MFqbxJRIH7vsEd}h)>ZH*`*m)%2<1WCyf5mmNz9bO(_+Y0lp^Zg&*;&#I* zol;xH4e~V6TjRCY?ozgmWjWJZ!`*4E(tAf7*qr16vmxl}ZUh9GBN~((Ga3VkW3AJ+ zGJqr{tQ);GUK(@C(+DI4ym!2JMC6rzIC61H9j+aPwXZa9Snsq}QFo`iQER1%AyJ_N`(9$(mig!x(0RIbatu7~i!vVu~ZP z^UUtBCkADqqN=nkO!LG%&qNhPB~WT5&zTV7t2quApv);z%0>u-a?S11oWp7XIt>Yd z{!(H!FzulRbt%VrlmJ5UDLd3eW+wC#$gPP4K z+lKeiWZSm=k`?2Q+oj$iP)lJsp9h#WF3_lm01XtO_RbU& zK_gLc%p1`H#VV2lr}ack5t?(eo`{uUETvFdK|~2L&<54gLV%9qGon;;=FELU1gSKV}F=vMR@Vz zOr9ae$g*sREBEf*;e0L}UN_n~GS6vbY^#(qP`>t#iV}mc)y}e1R2e6u!!ELH!(?() z&gYf$y0G8vI38D2m8ZWrGfm_0(TcEcE3G*5PPsjuX|>Tm%e1y}bF*>(-ozKz8#xEs zrEg+x#F$u?jl+JTluq35BhRlF0Adi<%~`faP;e8bDc}^QNm-Uco(3yUs>1`CP_{}4 zP|8N{a5}Hl*7(w|T=C@T7pMl@oYn)kw+rr_>+6L#-@M}g07mYkwjD%t`v3p{07*qo IM6N<$f){6NsQ>@~ literal 0 HcmV?d00001