summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRealBadAngel <mk@realbadangel.pl>2012-12-13 01:49:02 +0100
committerRealBadAngel <mk@realbadangel.pl>2012-12-13 01:49:02 +0100
commitb8d77627a4d28c624e63423eef317dd09c68e533 (patch)
treea2fe8c05ce8e431f1194879c33fca760fa86abf0
parent306b407a38b087b59c92d23c0c1f7c3e8fb7ce4e (diff)
update the mod
-rw-r--r--coal_furnace.lua171
-rw-r--r--config.lua3
-rw-r--r--technic/modpack.txt1
-rw-r--r--technic/pipeworks/.gitignore1
-rw-r--r--technic/pipeworks/README34
-rw-r--r--technic/pipeworks/autoplace.lua176
-rw-r--r--technic/pipeworks/changelog.txt46
-rw-r--r--technic/pipeworks/crafts.lua94
-rw-r--r--technic/pipeworks/depends.txt2
-rw-r--r--technic/pipeworks/devices.lua471
-rw-r--r--technic/pipeworks/init.lua322
-rw-r--r--technic/pipeworks/oldpipes.lua360
-rw-r--r--technic/pipeworks/textures/pipeworks_intake_sides.pngbin0 -> 6739 bytes
-rw-r--r--technic/pipeworks/textures/pipeworks_intake_top.pngbin0 -> 7121 bytes
-rw-r--r--technic/pipeworks/textures/pipeworks_outlet_sides.pngbin0 -> 5152 bytes
-rw-r--r--technic/pipeworks/textures/pipeworks_outlet_top.pngbin0 -> 5707 bytes
-rw-r--r--technic/pipeworks/textures/pipeworks_pipe_end.pngbin0 -> 2149 bytes
-rw-r--r--technic/pipeworks/textures/pipeworks_pipe_end_empty.pngbin0 -> 2144 bytes
-rw-r--r--technic/pipeworks/textures/pipeworks_pipe_end_loaded.pngbin0 -> 2185 bytes
-rw-r--r--technic/pipeworks/textures/pipeworks_plain.pngbin0 -> 1872 bytes
-rw-r--r--technic/pipeworks/textures/pipeworks_plastic_sheeting.pngbin0 -> 198 bytes
-rw-r--r--technic/pipeworks/textures/pipeworks_pump_ends.pngbin0 -> 6410 bytes
-rw-r--r--technic/pipeworks/textures/pipeworks_pump_off.pngbin0 -> 5185 bytes
-rw-r--r--technic/pipeworks/textures/pipeworks_pump_on.pngbin0 -> 6488 bytes
-rw-r--r--technic/pipeworks/textures/pipeworks_pump_sides.pngbin0 -> 5389 bytes
-rw-r--r--technic/pipeworks/textures/pipeworks_pump_top_x.pngbin0 -> 5389 bytes
-rw-r--r--technic/pipeworks/textures/pipeworks_pump_top_z.pngbin0 -> 5207 bytes
-rw-r--r--technic/pipeworks/textures/pipeworks_storage_tank_back.pngbin0 -> 4593 bytes
-rw-r--r--technic/pipeworks/textures/pipeworks_storage_tank_fittings.pngbin0 -> 5359 bytes
-rw-r--r--technic/pipeworks/textures/pipeworks_storage_tank_front_0.pngbin0 -> 5126 bytes
-rw-r--r--technic/pipeworks/textures/pipeworks_storage_tank_front_1.pngbin0 -> 5139 bytes
-rw-r--r--technic/pipeworks/textures/pipeworks_storage_tank_front_10.pngbin0 -> 5131 bytes
-rw-r--r--technic/pipeworks/textures/pipeworks_storage_tank_front_2.pngbin0 -> 5135 bytes
-rw-r--r--technic/pipeworks/textures/pipeworks_storage_tank_front_3.pngbin0 -> 5148 bytes
-rw-r--r--technic/pipeworks/textures/pipeworks_storage_tank_front_4.pngbin0 -> 5146 bytes
-rw-r--r--technic/pipeworks/textures/pipeworks_storage_tank_front_5.pngbin0 -> 5136 bytes
-rw-r--r--technic/pipeworks/textures/pipeworks_storage_tank_front_6.pngbin0 -> 5145 bytes
-rw-r--r--technic/pipeworks/textures/pipeworks_storage_tank_front_7.pngbin0 -> 5130 bytes
-rw-r--r--technic/pipeworks/textures/pipeworks_storage_tank_front_8.pngbin0 -> 5128 bytes
-rw-r--r--technic/pipeworks/textures/pipeworks_storage_tank_front_9.pngbin0 -> 5155 bytes
-rw-r--r--technic/pipeworks/textures/pipeworks_testobject.pngbin0 -> 4781 bytes
-rw-r--r--technic/pipeworks/textures/pipeworks_tube_end.pngbin0 -> 2577 bytes
-rw-r--r--technic/pipeworks/textures/pipeworks_tube_inv.pngbin0 -> 1217 bytes
-rw-r--r--technic/pipeworks/textures/pipeworks_tube_noctr.pngbin0 -> 1979 bytes
-rw-r--r--technic/pipeworks/textures/pipeworks_tube_plain.pngbin0 -> 2444 bytes
-rw-r--r--technic/pipeworks/textures/pipeworks_tube_short.pngbin0 -> 1248 bytes
-rw-r--r--technic/pipeworks/textures/pipeworks_tube_transparent.pngbin0 -> 109 bytes
-rw-r--r--technic/pipeworks/textures/pipeworks_valvebody_bottom.pngbin0 -> 5321 bytes
-rw-r--r--technic/pipeworks/textures/pipeworks_valvebody_ends.pngbin0 -> 6138 bytes
-rw-r--r--technic/pipeworks/textures/pipeworks_valvebody_sides.pngbin0 -> 4592 bytes
-rw-r--r--technic/pipeworks/textures/pipeworks_valvebody_top_off.pngbin0 -> 4557 bytes
-rw-r--r--technic/pipeworks/textures/pipeworks_valvebody_top_off_x.pngbin0 -> 4557 bytes
-rw-r--r--technic/pipeworks/textures/pipeworks_valvebody_top_off_z.pngbin0 -> 4768 bytes
-rw-r--r--technic/pipeworks/textures/pipeworks_valvebody_top_on.pngbin0 -> 4559 bytes
-rw-r--r--technic/pipeworks/textures/pipeworks_valvebody_top_on_x.pngbin0 -> 4559 bytes
-rw-r--r--technic/pipeworks/textures/pipeworks_valvebody_top_on_z.pngbin0 -> 4726 bytes
-rw-r--r--technic/pipeworks/textures/pipeworks_windowed_empty.pngbin0 -> 1945 bytes
-rw-r--r--technic/pipeworks/textures/pipeworks_windowed_loaded.pngbin0 -> 1950 bytes
-rw-r--r--technic/pipeworks/tubes.lua217
-rw-r--r--technic/technic/alloy_furnace.lua (renamed from alloy_furnace.lua)14
-rw-r--r--technic/technic/battery_box.lua (renamed from battery_box.lua)0
-rw-r--r--technic/technic/battery_box_mv.lua (renamed from battery_box_mv.lua)4
-rw-r--r--technic/technic/cans.lua (renamed from cans.lua)67
-rw-r--r--technic/technic/chainsaw.lua (renamed from chainsaw.lua)2
-rw-r--r--technic/technic/concrete.lua (renamed from concrete.lua)11
-rw-r--r--technic/technic/config.lua10
-rw-r--r--technic/technic/constructor.lua (renamed from constructor.lua)0
-rw-r--r--technic/technic/copper_chest.lua (renamed from copper_chest.lua)0
-rw-r--r--technic/technic/creative.lua21
-rw-r--r--technic/technic/depends.txt (renamed from depends.txt)2
-rw-r--r--technic/technic/deployer.lua (renamed from deployer.lua)0
-rw-r--r--technic/technic/electric.lua (renamed from electric.lua)0
-rw-r--r--technic/technic/electric_furnace.lua (renamed from electric_furnace.lua)3
-rw-r--r--technic/technic/flashlight.lua (renamed from flashlight.lua)2
-rw-r--r--technic/technic/flashlight_old.lua176
-rw-r--r--technic/technic/generator.lua (renamed from generator.lua)0
-rw-r--r--technic/technic/geothermal.lua (renamed from geothermal.lua)0
-rw-r--r--technic/technic/gold_chest.lua (renamed from gold_chest.lua)0
-rw-r--r--technic/technic/grinder.lua (renamed from grinder.lua)10
-rw-r--r--technic/technic/grinder_gloopores.lua55
-rw-r--r--technic/technic/init.lua (renamed from init.lua)57
-rw-r--r--technic/technic/injector.lua (renamed from injector.lua)0
-rw-r--r--technic/technic/injector1.lua248
-rw-r--r--technic/technic/iron_chest.lua (renamed from iron_chest.lua)13
-rw-r--r--technic/technic/item_drop.lua (renamed from item_drop.lua)0
-rw-r--r--technic/technic/item_pickup.lua (renamed from item_pickup.lua)0
-rw-r--r--technic/technic/items.lua (renamed from items.lua)12
-rw-r--r--technic/technic/mining_drill.lua (renamed from mining_drill.lua)4
-rw-r--r--technic/technic/mining_laser_mk1.lua (renamed from mining_laser_mk1.lua)0
-rw-r--r--technic/technic/mithril_chest.lua (renamed from mithril_chest.lua)0
-rw-r--r--technic/technic/mithril_subspace_chest.lua145
-rw-r--r--technic/technic/music_player.lua (renamed from music_player.lua)0
-rw-r--r--technic/technic/node_breaker.lua (renamed from node_breaker.lua)0
-rw-r--r--technic/technic/ores.lua (renamed from ores.lua)142
-rw-r--r--technic/technic/project_table.lua (renamed from project_table.lua)0
-rw-r--r--technic/technic/rubber.lua (renamed from rubber.lua)0
-rw-r--r--technic/technic/screwdriver.lua (renamed from screwdriver.lua)0
-rw-r--r--technic/technic/silver_chest.lua (renamed from silver_chest.lua)0
-rw-r--r--technic/technic/solar_panel.lua (renamed from solar_panel.lua)2
-rw-r--r--technic/technic/solar_panel_mv.lua (renamed from solar_panel_mv.lua)0
-rw-r--r--technic/technic/sonic_screwdriver.lua (renamed from sonic_screwdriver.lua)0
-rw-r--r--technic/technic/sounds/chainsaw.ogg (renamed from sounds/chainsaw.ogg)bin38174 -> 38174 bytes
-rw-r--r--technic/technic/sounds/item_drop_pickup.1.ogg (renamed from sounds/item_drop_pickup.1.ogg)bin9981 -> 9981 bytes
-rw-r--r--technic/technic/sounds/item_drop_pickup.2.ogg (renamed from sounds/item_drop_pickup.2.ogg)bin10477 -> 10477 bytes
-rw-r--r--technic/technic/sounds/item_drop_pickup.3.ogg (renamed from sounds/item_drop_pickup.3.ogg)bin9586 -> 9586 bytes
-rw-r--r--technic/technic/sounds/item_drop_pickup.4.ogg (renamed from sounds/item_drop_pickup.4.ogg)bin9696 -> 9696 bytes
-rw-r--r--technic/technic/sounds/mining_drill.ogg (renamed from sounds/mining_drill.ogg)bin14499 -> 14499 bytes
-rw-r--r--technic/technic/sounds/technic_laser.ogg (renamed from sounds/technic_laser.ogg)bin13465 -> 13465 bytes
-rw-r--r--technic/technic/sounds/technic_sonic_screwdriver.ogg (renamed from sounds/technic_sonic_screwdriver.ogg)bin29827 -> 29827 bytes
-rw-r--r--technic/technic/tetris.lua17
-rw-r--r--technic/technic/textures/technic_alloy_furnace_front.png (renamed from textures/technic_alloy_furnace_front.png)bin2756 -> 2756 bytes
-rw-r--r--technic/technic/textures/technic_alloy_furnace_front_active.png (renamed from textures/technic_alloy_furnace_front_active.png)bin2757 -> 2757 bytes
-rw-r--r--technic/technic/textures/technic_alloy_furnace_side.png (renamed from textures/technic_alloy_furnace_side.png)bin2667 -> 2667 bytes
-rw-r--r--technic/technic/textures/technic_alloy_furnace_top.png (renamed from textures/technic_alloy_furnace_top.png)bin2431 -> 2431 bytes
-rw-r--r--technic/technic/textures/technic_battery.png (renamed from textures/technic_battery.png)bin247 -> 247 bytes
-rw-r--r--technic/technic/textures/technic_battery_box_bottom.png (renamed from textures/technic_battery_box_bottom.png)bin2046 -> 2046 bytes
-rw-r--r--technic/technic/textures/technic_battery_box_side0.png (renamed from textures/technic_battery_box_side0.png)bin2313 -> 2313 bytes
-rw-r--r--technic/technic/textures/technic_battery_box_top.png (renamed from textures/technic_battery_box_top.png)bin2390 -> 2390 bytes
-rw-r--r--technic/technic/textures/technic_battery_reload.png (renamed from textures/technic_battery_reload.png)bin8201 -> 8201 bytes
-rw-r--r--technic/technic/textures/technic_brass_dust.png (renamed from textures/technic_brass_dust.png)bin1297 -> 1297 bytes
-rw-r--r--technic/technic/textures/technic_brass_ingot.png (renamed from textures/technic_brass_ingot.png)bin456 -> 456 bytes
-rw-r--r--technic/technic/textures/technic_bronze_dust.png (renamed from textures/technic_bronze_dust.png)bin1304 -> 1304 bytes
-rw-r--r--technic/technic/textures/technic_chainsaw.png (renamed from textures/technic_chainsaw.png)bin17656 -> 17656 bytes
-rw-r--r--technic/technic/textures/technic_chromium_dust.png (renamed from textures/technic_chromium_dust.png)bin1162 -> 1162 bytes
-rw-r--r--technic/technic/textures/technic_chromium_ingot.png (renamed from textures/technic_chromium_ingot.png)bin242 -> 242 bytes
-rw-r--r--technic/technic/textures/technic_chromium_lump.png (renamed from textures/technic_chromium_lump.png)bin213 -> 213 bytes
-rw-r--r--technic/technic/textures/technic_coal_alloy_furnace_bottom.png (renamed from textures/technic_coal_alloy_furnace_bottom.png)bin2957 -> 2957 bytes
-rw-r--r--technic/technic/textures/technic_coal_alloy_furnace_front.png (renamed from textures/technic_coal_alloy_furnace_front.png)bin2802 -> 2802 bytes
-rw-r--r--technic/technic/textures/technic_coal_alloy_furnace_front_active.png (renamed from textures/technic_coal_alloy_furnace_front_active.png)bin2953 -> 2953 bytes
-rw-r--r--technic/technic/textures/technic_coal_alloy_furnace_side.png (renamed from textures/technic_coal_alloy_furnace_side.png)bin2667 -> 2667 bytes
-rw-r--r--technic/technic/textures/technic_coal_alloy_furnace_top.png (renamed from textures/technic_coal_alloy_furnace_top.png)bin2431 -> 2431 bytes
-rw-r--r--technic/technic/textures/technic_coal_dust.png (renamed from textures/technic_coal_dust.png)bin144 -> 144 bytes
-rw-r--r--technic/technic/textures/technic_concrete_block.png (renamed from textures/technic_concrete_block.png)bin2319 -> 2319 bytes
-rw-r--r--technic/technic/textures/technic_constructor_back.png (renamed from textures/technic_constructor_back.png)bin2094 -> 2094 bytes
-rw-r--r--technic/technic/textures/technic_constructor_front_off.png (renamed from textures/technic_constructor_front_off.png)bin2677 -> 2677 bytes
-rw-r--r--technic/technic/textures/technic_constructor_front_on.png (renamed from textures/technic_constructor_front_on.png)bin2627 -> 2627 bytes
-rw-r--r--technic/technic/textures/technic_constructor_mk1_bottom_off.png (renamed from textures/technic_constructor_mk1_bottom_off.png)bin2272 -> 2272 bytes
-rw-r--r--technic/technic/textures/technic_constructor_mk1_bottom_on.png (renamed from textures/technic_constructor_mk1_bottom_on.png)bin2308 -> 2308 bytes
-rw-r--r--technic/technic/textures/technic_constructor_mk1_side1_off.png (renamed from textures/technic_constructor_mk1_side1_off.png)bin2327 -> 2327 bytes
-rw-r--r--technic/technic/textures/technic_constructor_mk1_side1_on.png (renamed from textures/technic_constructor_mk1_side1_on.png)bin2342 -> 2342 bytes
-rw-r--r--technic/technic/textures/technic_constructor_mk1_side2_off.png (renamed from textures/technic_constructor_mk1_side2_off.png)bin2326 -> 2326 bytes
-rw-r--r--technic/technic/textures/technic_constructor_mk1_side2_on.png (renamed from textures/technic_constructor_mk1_side2_on.png)bin2338 -> 2338 bytes
-rw-r--r--technic/technic/textures/technic_constructor_mk1_top_off.png (renamed from textures/technic_constructor_mk1_top_off.png)bin2292 -> 2292 bytes
-rw-r--r--technic/technic/textures/technic_constructor_mk1_top_on.png (renamed from textures/technic_constructor_mk1_top_on.png)bin2319 -> 2319 bytes
-rw-r--r--technic/technic/textures/technic_constructor_mk2_bottom_off.png (renamed from textures/technic_constructor_mk2_bottom_off.png)bin2281 -> 2281 bytes
-rw-r--r--technic/technic/textures/technic_constructor_mk2_bottom_on.png (renamed from textures/technic_constructor_mk2_bottom_on.png)bin2316 -> 2316 bytes
-rw-r--r--technic/technic/textures/technic_constructor_mk2_side1_off.png (renamed from textures/technic_constructor_mk2_side1_off.png)bin2339 -> 2339 bytes
-rw-r--r--technic/technic/textures/technic_constructor_mk2_side1_on.png (renamed from textures/technic_constructor_mk2_side1_on.png)bin2355 -> 2355 bytes
-rw-r--r--technic/technic/textures/technic_constructor_mk2_side2_off.png (renamed from textures/technic_constructor_mk2_side2_off.png)bin2338 -> 2338 bytes
-rw-r--r--technic/technic/textures/technic_constructor_mk2_side2_on.png (renamed from textures/technic_constructor_mk2_side2_on.png)bin2354 -> 2354 bytes
-rw-r--r--technic/technic/textures/technic_constructor_mk2_top_off.png (renamed from textures/technic_constructor_mk2_top_off.png)bin2307 -> 2307 bytes
-rw-r--r--technic/technic/textures/technic_constructor_mk2_top_on.png (renamed from textures/technic_constructor_mk2_top_on.png)bin2329 -> 2329 bytes
-rw-r--r--technic/technic/textures/technic_constructor_mk3_bottom_off.png (renamed from textures/technic_constructor_mk3_bottom_off.png)bin2286 -> 2286 bytes
-rw-r--r--technic/technic/textures/technic_constructor_mk3_bottom_on.png (renamed from textures/technic_constructor_mk3_bottom_on.png)bin2318 -> 2318 bytes
-rw-r--r--technic/technic/textures/technic_constructor_mk3_side1_off.png (renamed from textures/technic_constructor_mk3_side1_off.png)bin2378 -> 2378 bytes
-rw-r--r--technic/technic/textures/technic_constructor_mk3_side1_on.png (renamed from textures/technic_constructor_mk3_side1_on.png)bin2402 -> 2402 bytes
-rw-r--r--technic/technic/textures/technic_constructor_mk3_side2_off.png (renamed from textures/technic_constructor_mk3_side2_off.png)bin2313 -> 2313 bytes
-rw-r--r--technic/technic/textures/technic_constructor_mk3_side2_on.png (renamed from textures/technic_constructor_mk3_side2_on.png)bin2338 -> 2338 bytes
-rw-r--r--technic/technic/textures/technic_constructor_mk3_top_off.png (renamed from textures/technic_constructor_mk3_top_off.png)bin2313 -> 2313 bytes
-rw-r--r--technic/technic/textures/technic_constructor_mk3_top_on.png (renamed from textures/technic_constructor_mk3_top_on.png)bin2338 -> 2338 bytes
-rw-r--r--technic/technic/textures/technic_copper_chest_front.png (renamed from textures/technic_copper_chest_front.png)bin2614 -> 2614 bytes
-rw-r--r--technic/technic/textures/technic_copper_chest_locked.png (renamed from textures/technic_copper_chest_locked.png)bin2682 -> 2682 bytes
-rw-r--r--technic/technic/textures/technic_copper_chest_side.png (renamed from textures/technic_copper_chest_side.png)bin2568 -> 2568 bytes
-rw-r--r--technic/technic/textures/technic_copper_chest_top.png (renamed from textures/technic_copper_chest_top.png)bin2521 -> 2521 bytes
-rw-r--r--technic/technic/textures/technic_copper_coil.png (renamed from textures/technic_copper_coil.png)bin2447 -> 2447 bytes
-rw-r--r--technic/technic/textures/technic_copper_dust.png (renamed from textures/technic_copper_dust.png)bin1252 -> 1252 bytes
-rw-r--r--technic/technic/textures/technic_deployer_back.png (renamed from textures/technic_deployer_back.png)bin37128 -> 37128 bytes
-rw-r--r--technic/technic/textures/technic_deployer_bottom.png (renamed from textures/technic_deployer_bottom.png)bin38757 -> 38757 bytes
-rw-r--r--technic/technic/textures/technic_deployer_front_off.png (renamed from textures/technic_deployer_front_off.png)bin29441 -> 29441 bytes
-rw-r--r--technic/technic/textures/technic_deployer_front_on.png (renamed from textures/technic_deployer_front_on.png)bin23351 -> 23351 bytes
-rw-r--r--technic/technic/textures/technic_deployer_side.png (renamed from textures/technic_deployer_side.png)bin38136 -> 38136 bytes
-rw-r--r--technic/technic/textures/technic_deployer_side1.png (renamed from textures/technic_deployer_side1.png)bin38291 -> 38291 bytes
-rw-r--r--technic/technic/textures/technic_deployer_side2.png (renamed from textures/technic_deployer_side2.png)bin38195 -> 38195 bytes
-rw-r--r--technic/technic/textures/technic_deployer_top.png (renamed from textures/technic_deployer_top.png)bin38904 -> 38904 bytes
-rw-r--r--technic/technic/textures/technic_diamond.png (renamed from textures/technic_diamond.png)bin693 -> 693 bytes
-rw-r--r--technic/technic/textures/technic_diamond_block.png (renamed from textures/technic_diamond_block.png)bin2865 -> 2865 bytes
-rw-r--r--technic/technic/textures/technic_diamond_block_blue.png (renamed from textures/technic_diamond_block_blue.png)bin3011 -> 3011 bytes
-rw-r--r--technic/technic/textures/technic_diamond_block_green.png (renamed from textures/technic_diamond_block_green.png)bin3033 -> 3033 bytes
-rw-r--r--technic/technic/textures/technic_diamond_block_red.png (renamed from textures/technic_diamond_block_red.png)bin2927 -> 2927 bytes
-rw-r--r--technic/technic/textures/technic_diamond_drill_head.png (renamed from textures/technic_diamond_drill_head.png)bin978 -> 978 bytes
-rw-r--r--technic/technic/textures/technic_doped_silicon_wafer.png (renamed from textures/technic_doped_silicon_wafer.png)bin867 -> 867 bytes
-rw-r--r--technic/technic/textures/technic_electric_furnace_GUI.pngbin0 -> 68120 bytes
-rw-r--r--technic/technic/textures/technic_electric_furnace_GUI.xcfbin0 -> 610035 bytes
-rw-r--r--technic/technic/textures/technic_electric_furnace_bottom.png (renamed from textures/technic_electric_furnace_bottom.png)bin2876 -> 2876 bytes
-rw-r--r--technic/technic/textures/technic_electric_furnace_front.png (renamed from textures/technic_electric_furnace_front.png)bin2912 -> 2912 bytes
-rw-r--r--technic/technic/textures/technic_electric_furnace_front_active.png (renamed from textures/technic_electric_furnace_front_active.png)bin2912 -> 2912 bytes
-rw-r--r--technic/technic/textures/technic_electric_furnace_side.png (renamed from textures/technic_electric_furnace_side.png)bin2917 -> 2917 bytes
-rw-r--r--technic/technic/textures/technic_electric_furnace_top.png (renamed from textures/technic_electric_furnace_top.png)bin2957 -> 2957 bytes
-rw-r--r--technic/technic/textures/technic_fine_copper_wire.png (renamed from textures/technic_fine_copper_wire.png)bin1814 -> 1814 bytes
-rw-r--r--technic/technic/textures/technic_flashlight.png (renamed from textures/technic_flashlight.png)bin1901 -> 1901 bytes
-rw-r--r--technic/technic/textures/technic_generator_front.png (renamed from textures/technic_generator_front.png)bin430 -> 430 bytes
-rw-r--r--technic/technic/textures/technic_generator_front_active.png (renamed from textures/technic_generator_front_active.png)bin454 -> 454 bytes
-rw-r--r--technic/technic/textures/technic_generator_side.png (renamed from textures/technic_generator_side.png)bin341 -> 341 bytes
-rw-r--r--technic/technic/textures/technic_generator_top.png (renamed from textures/technic_generator_top.png)bin388 -> 388 bytes
-rw-r--r--technic/technic/textures/technic_geothermal_side.png (renamed from textures/technic_geothermal_side.png)bin809 -> 809 bytes
-rw-r--r--technic/technic/textures/technic_geothermal_top.png (renamed from textures/technic_geothermal_top.png)bin828 -> 828 bytes
-rw-r--r--technic/technic/textures/technic_geothermal_top_active.png (renamed from textures/technic_geothermal_top_active.png)bin819 -> 819 bytes
-rw-r--r--technic/technic/textures/technic_gold_chest_front.png (renamed from textures/technic_gold_chest_front.png)bin2653 -> 2653 bytes
-rw-r--r--technic/technic/textures/technic_gold_chest_front_black.png (renamed from textures/technic_gold_chest_front_black.png)bin2659 -> 2659 bytes
-rw-r--r--technic/technic/textures/technic_gold_chest_front_blue.png (renamed from textures/technic_gold_chest_front_blue.png)bin2666 -> 2666 bytes
-rw-r--r--technic/technic/textures/technic_gold_chest_front_brown.png (renamed from textures/technic_gold_chest_front_brown.png)bin2674 -> 2674 bytes
-rw-r--r--technic/technic/textures/technic_gold_chest_front_cyan.png (renamed from textures/technic_gold_chest_front_cyan.png)bin2675 -> 2675 bytes
-rw-r--r--technic/technic/textures/technic_gold_chest_front_dark_green.png (renamed from textures/technic_gold_chest_front_dark_green.png)bin2672 -> 2672 bytes
-rw-r--r--technic/technic/textures/technic_gold_chest_front_dark_grey.png (renamed from textures/technic_gold_chest_front_dark_grey.png)bin2659 -> 2659 bytes
-rw-r--r--technic/technic/textures/technic_gold_chest_front_green.png (renamed from textures/technic_gold_chest_front_green.png)bin2665 -> 2665 bytes
-rw-r--r--technic/technic/textures/technic_gold_chest_front_grey.png (renamed from textures/technic_gold_chest_front_grey.png)bin2678 -> 2678 bytes
-rw-r--r--technic/technic/textures/technic_gold_chest_front_magenta.png (renamed from textures/technic_gold_chest_front_magenta.png)bin2673 -> 2673 bytes
-rw-r--r--technic/technic/textures/technic_gold_chest_front_orange.png (renamed from textures/technic_gold_chest_front_orange.png)bin2667 -> 2667 bytes
-rw-r--r--technic/technic/textures/technic_gold_chest_front_pink.png (renamed from textures/technic_gold_chest_front_pink.png)bin2672 -> 2672 bytes
-rw-r--r--technic/technic/textures/technic_gold_chest_front_red.png (renamed from textures/technic_gold_chest_front_red.png)bin2661 -> 2661 bytes
-rw-r--r--technic/technic/textures/technic_gold_chest_front_violet.png (renamed from textures/technic_gold_chest_front_violet.png)bin2668 -> 2668 bytes
-rw-r--r--technic/technic/textures/technic_gold_chest_front_white.png (renamed from textures/technic_gold_chest_front_white.png)bin2660 -> 2660 bytes
-rw-r--r--technic/technic/textures/technic_gold_chest_front_yellow.png (renamed from textures/technic_gold_chest_front_yellow.png)bin2669 -> 2669 bytes
-rw-r--r--technic/technic/textures/technic_gold_chest_locked.png (renamed from textures/technic_gold_chest_locked.png)bin2717 -> 2717 bytes
-rw-r--r--technic/technic/textures/technic_gold_chest_locked_black.png (renamed from textures/technic_gold_chest_locked_black.png)bin2720 -> 2720 bytes
-rw-r--r--technic/technic/textures/technic_gold_chest_locked_blue.png (renamed from textures/technic_gold_chest_locked_blue.png)bin2728 -> 2728 bytes
-rw-r--r--technic/technic/textures/technic_gold_chest_locked_brown.png (renamed from textures/technic_gold_chest_locked_brown.png)bin2736 -> 2736 bytes
-rw-r--r--technic/technic/textures/technic_gold_chest_locked_cyan.png (renamed from textures/technic_gold_chest_locked_cyan.png)bin2735 -> 2735 bytes
-rw-r--r--technic/technic/textures/technic_gold_chest_locked_dark_green.png (renamed from textures/technic_gold_chest_locked_dark_green.png)bin2734 -> 2734 bytes
-rw-r--r--technic/technic/textures/technic_gold_chest_locked_dark_grey.png (renamed from textures/technic_gold_chest_locked_dark_grey.png)bin2722 -> 2722 bytes
-rw-r--r--technic/technic/textures/technic_gold_chest_locked_green.png (renamed from textures/technic_gold_chest_locked_green.png)bin2724 -> 2724 bytes
-rw-r--r--technic/technic/textures/technic_gold_chest_locked_grey.png (renamed from textures/technic_gold_chest_locked_grey.png)bin2732 -> 2732 bytes
-rw-r--r--technic/technic/textures/technic_gold_chest_locked_magenta.png (renamed from textures/technic_gold_chest_locked_magenta.png)bin2732 -> 2732 bytes
-rw-r--r--technic/technic/textures/technic_gold_chest_locked_orange.png (renamed from textures/technic_gold_chest_locked_orange.png)bin2728 -> 2728 bytes
-rw-r--r--technic/technic/textures/technic_gold_chest_locked_pink.png (renamed from textures/technic_gold_chest_locked_pink.png)bin2730 -> 2730 bytes
-rw-r--r--technic/technic/textures/technic_gold_chest_locked_red.png (renamed from textures/technic_gold_chest_locked_red.png)bin2721 -> 2721 bytes
-rw-r--r--technic/technic/textures/technic_gold_chest_locked_violet.png (renamed from textures/technic_gold_chest_locked_violet.png)bin2728 -> 2728 bytes
-rw-r--r--technic/technic/textures/technic_gold_chest_locked_white.png (renamed from textures/technic_gold_chest_locked_white.png)bin2723 -> 2723 bytes
-rw-r--r--technic/technic/textures/technic_gold_chest_locked_yellow.png (renamed from textures/technic_gold_chest_locked_yellow.png)bin2728 -> 2728 bytes
-rw-r--r--technic/technic/textures/technic_gold_chest_side.png (renamed from textures/technic_gold_chest_side.png)bin2617 -> 2617 bytes
-rw-r--r--technic/technic/textures/technic_gold_chest_top.png (renamed from textures/technic_gold_chest_top.png)bin2558 -> 2558 bytes
-rw-r--r--technic/technic/textures/technic_gold_dust.png (renamed from textures/technic_gold_dust.png)bin1285 -> 1285 bytes
-rw-r--r--technic/technic/textures/technic_granite.png (renamed from textures/technic_granite.png)bin947 -> 947 bytes
-rw-r--r--technic/technic/textures/technic_grinder_front.png (renamed from textures/technic_grinder_front.png)bin777 -> 777 bytes
-rw-r--r--technic/technic/textures/technic_grinder_side.png (renamed from textures/technic_grinder_side.png)bin692 -> 692 bytes
-rw-r--r--technic/technic/textures/technic_grinder_top.png (renamed from textures/technic_grinder_top.png)bin465 -> 465 bytes
-rw-r--r--technic/technic/textures/technic_iron_chest_front.png (renamed from textures/technic_iron_chest_front.png)bin2515 -> 2515 bytes
-rw-r--r--technic/technic/textures/technic_iron_chest_locked.png (renamed from textures/technic_iron_chest_locked.png)bin2603 -> 2603 bytes
-rw-r--r--technic/technic/textures/technic_iron_chest_side.png (renamed from textures/technic_iron_chest_side.png)bin2478 -> 2478 bytes
-rw-r--r--technic/technic/textures/technic_iron_chest_top.png (renamed from textures/technic_iron_chest_top.png)bin2432 -> 2432 bytes
-rw-r--r--technic/technic/textures/technic_iron_dust.png (renamed from textures/technic_iron_dust.png)bin1199 -> 1199 bytes
-rw-r--r--technic/technic/textures/technic_laser_beam.png (renamed from textures/technic_laser_beam.png)bin119 -> 119 bytes
-rw-r--r--technic/technic/textures/technic_lava_can.png (renamed from textures/technic_lava_can.png)bin1045 -> 1045 bytes
-rw-r--r--technic/technic/textures/technic_light.png (renamed from textures/technic_light.png)bin246 -> 246 bytes
-rw-r--r--technic/technic/textures/technic_lv_cable.png (renamed from textures/technic_lv_cable.png)bin381 -> 381 bytes
-rw-r--r--technic/technic/textures/technic_lv_cable_wield.png (renamed from textures/technic_lv_cable_wield.png)bin286 -> 286 bytes
-rw-r--r--technic/technic/textures/technic_machine_bottom.png (renamed from textures/technic_machine_bottom.png)bin572 -> 572 bytes
-rw-r--r--technic/technic/textures/technic_marble.png (renamed from textures/technic_marble.png)bin807 -> 807 bytes
-rw-r--r--technic/technic/textures/technic_marble_bricks.png (renamed from textures/technic_marble_bricks.png)bin959 -> 959 bytes
-rw-r--r--technic/technic/textures/technic_menu_bg.png (renamed from textures/technic_menu_bg.png)bin11018 -> 11018 bytes
-rw-r--r--technic/technic/textures/technic_mineral_chromium.png (renamed from textures/technic_mineral_chromium.png)bin887 -> 887 bytes
-rw-r--r--technic/technic/textures/technic_mineral_diamond.png (renamed from textures/technic_mineral_diamond.png)bin904 -> 904 bytes
-rw-r--r--technic/technic/textures/technic_mineral_uranium.png (renamed from textures/technic_mineral_uranium.png)bin912 -> 912 bytes
-rw-r--r--technic/technic/textures/technic_mineral_zinc.png (renamed from textures/technic_mineral_zinc.png)bin891 -> 891 bytes
-rw-r--r--technic/technic/textures/technic_mining_drill.png (renamed from textures/technic_mining_drill.png)bin2099 -> 2099 bytes
-rw-r--r--technic/technic/textures/technic_mining_laser_mk1.png (renamed from textures/technic_mining_laser_mk1.png)bin358 -> 358 bytes
-rw-r--r--technic/technic/textures/technic_mithril_chest_front.png (renamed from textures/technic_mithril_chest_front.png)bin2656 -> 2656 bytes
-rw-r--r--technic/technic/textures/technic_mithril_chest_locked.png (renamed from textures/technic_mithril_chest_locked.png)bin2716 -> 2716 bytes
-rw-r--r--technic/technic/textures/technic_mithril_chest_side.png (renamed from textures/technic_mithril_chest_side.png)bin2616 -> 2616 bytes
-rw-r--r--technic/technic/textures/technic_mithril_chest_top.png (renamed from textures/technic_mithril_chest_top.png)bin2558 -> 2558 bytes
-rw-r--r--technic/technic/textures/technic_mithril_dust.png (renamed from textures/technic_mithril_dust.png)bin1289 -> 1289 bytes
-rw-r--r--technic/technic/textures/technic_motor.png (renamed from textures/technic_motor.png)bin2517 -> 2517 bytes
-rw-r--r--technic/technic/textures/technic_music_player_bottom.png (renamed from textures/technic_music_player_bottom.png)bin744 -> 744 bytes
-rw-r--r--technic/technic/textures/technic_music_player_side.png (renamed from textures/technic_music_player_side.png)bin788 -> 788 bytes
-rw-r--r--technic/technic/textures/technic_music_player_top.png (renamed from textures/technic_music_player_top.png)bin916 -> 916 bytes
-rw-r--r--technic/technic/textures/technic_mv_battery_box_bottom.png (renamed from textures/technic_mv_battery_box_bottom.png)bin2019 -> 2019 bytes
-rw-r--r--technic/technic/textures/technic_mv_battery_box_side0.png (renamed from textures/technic_mv_battery_box_side0.png)bin2309 -> 2309 bytes
-rw-r--r--technic/technic/textures/technic_mv_battery_box_top.png (renamed from textures/technic_mv_battery_box_top.png)bin2390 -> 2390 bytes
-rw-r--r--technic/technic/textures/technic_mv_cable.png (renamed from textures/technic_mv_cable.png)bin416 -> 416 bytes
-rw-r--r--technic/technic/textures/technic_mv_cable_wield.png (renamed from textures/technic_mv_cable_wield.png)bin2996 -> 2996 bytes
-rw-r--r--technic/technic/textures/technic_mv_solar_panel_bottom.png (renamed from textures/technic_mv_solar_panel_bottom.png)bin2019 -> 2019 bytes
-rw-r--r--technic/technic/textures/technic_mv_solar_panel_side.png (renamed from textures/technic_mv_solar_panel_side.png)bin1772 -> 1772 bytes
-rw-r--r--technic/technic/textures/technic_mv_solar_panel_top.png (renamed from textures/technic_mv_solar_panel_top.png)bin2728 -> 2728 bytes
-rw-r--r--technic/technic/textures/technic_mv_transformer.png (renamed from textures/technic_mv_transformer.png)bin1748 -> 1748 bytes
-rw-r--r--technic/technic/textures/technic_nodebreaker_back.png (renamed from textures/technic_nodebreaker_back.png)bin37128 -> 37128 bytes
-rw-r--r--technic/technic/textures/technic_nodebreaker_bottom.png (renamed from textures/technic_nodebreaker_bottom.png)bin38757 -> 38757 bytes
-rw-r--r--technic/technic/textures/technic_nodebreaker_bottom_off.png (renamed from textures/technic_nodebreaker_bottom_off.png)bin41584 -> 41584 bytes
-rw-r--r--technic/technic/textures/technic_nodebreaker_bottom_on.png (renamed from textures/technic_nodebreaker_bottom_on.png)bin41522 -> 41522 bytes
-rw-r--r--technic/technic/textures/technic_nodebreaker_front_off.png (renamed from textures/technic_nodebreaker_front_off.png)bin37094 -> 37094 bytes
-rw-r--r--technic/technic/textures/technic_nodebreaker_front_on.png (renamed from textures/technic_nodebreaker_front_on.png)bin36983 -> 36983 bytes
-rw-r--r--technic/technic/textures/technic_nodebreaker_side.png (renamed from textures/technic_nodebreaker_side.png)bin38136 -> 38136 bytes
-rw-r--r--technic/technic/textures/technic_nodebreaker_side1.png (renamed from textures/technic_nodebreaker_side1.png)bin38291 -> 38291 bytes
-rw-r--r--technic/technic/textures/technic_nodebreaker_side1_off.png (renamed from textures/technic_nodebreaker_side1_off.png)bin42142 -> 42142 bytes
-rw-r--r--technic/technic/textures/technic_nodebreaker_side1_on.png (renamed from textures/technic_nodebreaker_side1_on.png)bin42270 -> 42270 bytes
-rw-r--r--technic/technic/textures/technic_nodebreaker_side2.png (renamed from textures/technic_nodebreaker_side2.png)bin38195 -> 38195 bytes
-rw-r--r--technic/technic/textures/technic_nodebreaker_side2_off.png (renamed from textures/technic_nodebreaker_side2_off.png)bin42183 -> 42183 bytes
-rw-r--r--technic/technic/textures/technic_nodebreaker_side2_on.png (renamed from textures/technic_nodebreaker_side2_on.png)bin42283 -> 42283 bytes
-rw-r--r--technic/technic/textures/technic_nodebreaker_top.png (renamed from textures/technic_nodebreaker_top.png)bin38904 -> 38904 bytes
-rw-r--r--technic/technic/textures/technic_nodebreaker_top_off.png (renamed from textures/technic_nodebreaker_top_off.png)bin42025 -> 42025 bytes
-rw-r--r--technic/technic/textures/technic_nodebreaker_top_on.png (renamed from textures/technic_nodebreaker_top_on.png)bin42103 -> 42103 bytes
-rw-r--r--technic/technic/textures/technic_power_meter.png (renamed from textures/technic_power_meter.png)bin209 -> 209 bytes
-rw-r--r--technic/technic/textures/technic_power_meter1.png (renamed from textures/technic_power_meter1.png)bin271 -> 271 bytes
-rw-r--r--technic/technic/textures/technic_power_meter2.png (renamed from textures/technic_power_meter2.png)bin349 -> 349 bytes
-rw-r--r--technic/technic/textures/technic_power_meter3.png (renamed from textures/technic_power_meter3.png)bin395 -> 395 bytes
-rw-r--r--technic/technic/textures/technic_power_meter4.png (renamed from textures/technic_power_meter4.png)bin434 -> 434 bytes
-rw-r--r--technic/technic/textures/technic_power_meter5.png (renamed from textures/technic_power_meter5.png)bin452 -> 452 bytes
-rw-r--r--technic/technic/textures/technic_power_meter6.png (renamed from textures/technic_power_meter6.png)bin509 -> 509 bytes
-rw-r--r--technic/technic/textures/technic_power_meter7.png (renamed from textures/technic_power_meter7.png)bin576 -> 576 bytes
-rw-r--r--technic/technic/textures/technic_power_meter8.png (renamed from textures/technic_power_meter8.png)bin655 -> 655 bytes
-rw-r--r--technic/technic/textures/technic_power_meter_bg.png (renamed from textures/technic_power_meter_bg.png)bin278 -> 278 bytes
-rw-r--r--technic/technic/textures/technic_power_meter_fg.png (renamed from textures/technic_power_meter_fg.png)bin465 -> 465 bytes
-rw-r--r--technic/technic/textures/technic_raw_latex.png (renamed from textures/technic_raw_latex.png)bin1625 -> 1625 bytes
-rw-r--r--technic/technic/textures/technic_rebar.png (renamed from textures/technic_rebar.png)bin813 -> 813 bytes
-rw-r--r--technic/technic/textures/technic_rubber.png (renamed from textures/technic_rubber.png)bin587 -> 587 bytes
-rw-r--r--technic/technic/textures/technic_rubber_sapling.png (renamed from textures/technic_rubber_sapling.png)bin333 -> 333 bytes
-rw-r--r--technic/technic/textures/technic_rubber_tree_empty.png (renamed from textures/technic_rubber_tree_empty.png)bin835 -> 835 bytes
-rw-r--r--technic/technic/textures/technic_rubber_tree_full.png (renamed from textures/technic_rubber_tree_full.png)bin808 -> 808 bytes
-rw-r--r--technic/technic/textures/technic_screwdriver.png (renamed from textures/technic_screwdriver.png)bin1001 -> 1001 bytes
-rw-r--r--technic/technic/textures/technic_silicon_wafer.png (renamed from textures/technic_silicon_wafer.png)bin913 -> 913 bytes
-rw-r--r--technic/technic/textures/technic_silver_chest_front.png (renamed from textures/technic_silver_chest_front.png)bin2241 -> 2241 bytes
-rw-r--r--technic/technic/textures/technic_silver_chest_locked.png (renamed from textures/technic_silver_chest_locked.png)bin2368 -> 2368 bytes
-rw-r--r--technic/technic/textures/technic_silver_chest_side.png (renamed from textures/technic_silver_chest_side.png)bin2146 -> 2146 bytes
-rw-r--r--technic/technic/textures/technic_silver_chest_top.png (renamed from textures/technic_silver_chest_top.png)bin2226 -> 2226 bytes
-rw-r--r--technic/technic/textures/technic_silver_dust.png (renamed from textures/technic_silver_dust.png)bin1295 -> 1295 bytes
-rw-r--r--technic/technic/textures/technic_solar_panel_bottom.png (renamed from textures/technic_solar_panel_bottom.png)bin2046 -> 2046 bytes
-rw-r--r--technic/technic/textures/technic_solar_panel_side.png (renamed from textures/technic_solar_panel_side.png)bin465 -> 465 bytes
-rw-r--r--technic/technic/textures/technic_solar_panel_top.png (renamed from textures/technic_solar_panel_top.png)bin569 -> 569 bytes
-rw-r--r--technic/technic/textures/technic_sonic_screwdriver.png (renamed from textures/technic_sonic_screwdriver.png)bin2064 -> 2064 bytes
-rw-r--r--technic/technic/textures/technic_stainless_steel_dust.png (renamed from textures/technic_stainless_steel_dust.png)bin1145 -> 1145 bytes
-rw-r--r--technic/technic/textures/technic_stainless_steel_ingot.png (renamed from textures/technic_stainless_steel_ingot.png)bin230 -> 230 bytes
-rw-r--r--technic/technic/textures/technic_tin_dust.png (renamed from textures/technic_tin_dust.png)bin1261 -> 1261 bytes
-rw-r--r--technic/technic/textures/technic_tree_tap.png (renamed from textures/technic_tree_tap.png)bin1045 -> 1045 bytes
-rw-r--r--technic/technic/textures/technic_uranium.png (renamed from textures/technic_uranium.png)bin213 -> 213 bytes
-rw-r--r--technic/technic/textures/technic_water_can.png (renamed from textures/technic_water_can.png)bin1041 -> 1041 bytes
-rw-r--r--technic/technic/textures/technic_water_mill_side.png (renamed from textures/technic_water_mill_side.png)bin907 -> 907 bytes
-rw-r--r--technic/technic/textures/technic_water_mill_top.png (renamed from textures/technic_water_mill_top.png)bin828 -> 828 bytes
-rw-r--r--technic/technic/textures/technic_water_mill_top_active.png (renamed from textures/technic_water_mill_top_active.png)bin819 -> 819 bytes
-rw-r--r--technic/technic/textures/technic_workshop_bottom.png (renamed from textures/technic_workshop_bottom.png)bin744 -> 744 bytes
-rw-r--r--technic/technic/textures/technic_workshop_side.png (renamed from textures/technic_workshop_side.png)bin589 -> 589 bytes
-rw-r--r--technic/technic/textures/technic_workshop_top.png (renamed from textures/technic_workshop_top.png)bin555 -> 555 bytes
-rw-r--r--technic/technic/textures/technic_zinc_dust.png (renamed from textures/technic_zinc_dust.png)bin1150 -> 1150 bytes
-rw-r--r--technic/technic/textures/technic_zinc_ingot.png (renamed from textures/technic_zinc_ingot.png)bin242 -> 242 bytes
-rw-r--r--technic/technic/textures/technic_zinc_lump.png (renamed from textures/technic_zinc_lump.png)bin214 -> 214 bytes
-rw-r--r--technic/technic/textures/tetris_machine_front1.pngbin0 -> 20501 bytes
-rw-r--r--technic/technic/textures/tetris_machine_front2.pngbin0 -> 24305 bytes
-rw-r--r--technic/technic/textures/tetris_machine_side1B.pngbin0 -> 2805 bytes
-rw-r--r--technic/technic/textures/tetris_machine_side1L.pngbin0 -> 15928 bytes
-rw-r--r--technic/technic/textures/tetris_machine_side1P.pngbin0 -> 15928 bytes
-rw-r--r--technic/technic/textures/tetris_machine_side2B.pngbin0 -> 17424 bytes
-rw-r--r--technic/technic/textures/tetris_machine_side2L.pngbin0 -> 16242 bytes
-rw-r--r--technic/technic/textures/tetris_machine_side2P.pngbin0 -> 16192 bytes
-rw-r--r--technic/technic/textures/tetris_machine_top.pngbin0 -> 2805 bytes
-rw-r--r--technic/technic/tool_workshop.lua (renamed from tool_workshop.lua)0
-rw-r--r--technic/technic/tree_tap.lua (renamed from tree_tap.lua)2
-rw-r--r--technic/technic/water.lua588
-rw-r--r--technic/technic/water_mill.lua (renamed from water_mill.lua)0
-rw-r--r--technic/technic/wires.lua (renamed from wires.lua)0
-rw-r--r--technic/technic/wires_mv.lua (renamed from wires_mv.lua)0
348 files changed, 3257 insertions, 248 deletions
diff --git a/coal_furnace.lua b/coal_furnace.lua
deleted file mode 100644
index 9727795..0000000
--- a/coal_furnace.lua
+++ /dev/null
@@ -1,171 +0,0 @@
-minetest.register_alias("coal_furnace", "technic:coal_furnace")
-
-minetest.register_craft({
- output = 'technic:coal_furnace',
- recipe = {
- {'default:stone', 'default:stone', 'default:stone'},
- {'default:stone', '', 'default:stone'},
- {'default:stone', 'default:stone', 'default:stone'},
- }
-})
-
-
-coal_furnace_formspec =
- "invsize[8,9;]"..
- "image[1,1;1,2;technic_power_meter_bg.png]"..
- "list[current_name;src;3,1;1,1;]"..
- "list[current_name;dst;5,1;2,2;]"..
- "list[current_player;main;0,5;8,4;]"..
- "label[0,0;Coal Furnace]")
-
-minetest.register_node("technic:coal_furnace", {
- description = "Coal furnace",
- tiles = {"technic_electric_furnace_top.png", "technic_electric_furnace_bottom.png", "technic_electric_furnace_side.png",
- "technic_electric_furnace_side.png", "technic_electric_furnace_side.png", "technic_electric_furnace_front.png"},
- paramtype2 = "facedir",
- groups = {cracky=2},
- legacy_facedir_simple = true,
- sounds = default.node_sound_stone_defaults(),
- technic_power_machine=1,
- internal_EU_buffer=0;
- interal_EU_buffer_size=2000;
- on_construct = function(pos)
- local meta = minetest.env:get_meta(pos)
- meta:set_string("formspec", coal_furnace_formspec)
- meta:set_string("infotext", "Coal furnace")
- local inv = meta:get_inventory()
- inv:set_size("src", 1)
- inv:set_size("dst", 4)
- local EU_used = 0
- local furnace_is_cookin = 0
- local cooked = nil
- meta:set_float("internal_EU_buffer",0)
- meta:set_float("internal_EU_buffer_size",2000)
-
- end,
- can_dig = function(pos,player)
- local meta = minetest.env:get_meta(pos);
- local inv = meta:get_inventory()
- if not inv:is_empty("dst") then
- return false
- elseif not inv:is_empty("src") then
- return false
- end
- return true
- end,
-})
-
-minetest.register_node("technic:coal_furnace_active", {
- description = "Coal Furnace",
- tiles = {"technic_electric_furnace_top.png", "technic_electric_furnace_bottom.png", "technic_electric_furnace_side.png",
- "technic_electric_furnace_side.png", "technic_electric_furnace_side.png", "technic_electric_furnace_front_active.png"},
- paramtype2 = "facedir",
- light_source = 8,
- drop = "technic:coal_furnace",
- groups = {cracky=2, not_in_creative_inventory=1},
- legacy_facedir_simple = true,
- sounds = default.node_sound_stone_defaults(),
- internal_EU_buffer=0;
- interal_EU_buffer_size=2000;
- technic_power_machine=1,
- on_construct = function(pos)
- local meta = minetest.env:get_meta(pos)
- meta:set_string("formspec", electric_furnace_formspec)
- meta:set_string("infotext", "Coal furnace");
- local inv = meta:get_inventory()
- inv:set_size("src", 1)
- inv:set_size("dst", 4)
- local EU_used = 0
- local furnace_is_cookin = 0
- local cooked = nil
- end,
- can_dig = function(pos,player)
- local meta = minetest.env:get_meta(pos);
- local inv = meta:get_inventory()
- if not inv:is_empty("dst") then
- return false
- elseif not inv:is_empty("src") then
- return false
- end
- return true
- end,
-})
-
-minetest.register_abm({
- nodenames = {"technic:coal_furnace","technic:coal_furnace_active"},
- interval = 1,
- chance = 1,
-
- action = function(pos, node, active_object_count, active_object_count_wider)
-
- local meta = minetest.env:get_meta(pos)
- internal_EU_buffer=meta:get_float("internal_EU_buffer")
- internal_EU_buffer_size=meta:get_float("internal_EU_buffer")
- local load = math.floor(internal_EU_buffer/2000 * 100)
- meta:set_string("formspec",
- "invsize[8,9;]"..
- "image[1,1;1,2;technic_power_meter_bg.png^[lowpart:"..
- (load)..":technic_power_meter_fg.png]"..
- "list[current_name;src;3,1;1,1;]"..
- "list[current_name;dst;5,1;2,2;]"..
- "list[current_player;main;0,5;8,4;]"..
- "label[0,0;Electric Furnace]")
-
- local inv = meta:get_inventory()
-
- local furnace_is_cookin = meta:get_float("furnace_is_cookin")
-
-
- local srclist = inv:get_list("src")
- local cooked=nil
-
- if srclist then
- cooked = minetest.get_craft_result({method = "cooking", width = 1, items = srclist})
- end
-
-
- if (furnace_is_cookin == 1) then
- if internal_EU_buffer>=150 then
- internal_EU_buffer=internal_EU_buffer-150;
- meta:set_float("internal_EU_buffer",internal_EU_buffer)
- meta:set_float("src_time", meta:get_float("src_time") + 3)
- if cooked and cooked.item and meta:get_float("src_time") >= cooked.time then
- -- check if there's room for output in "dst" list
- if inv:room_for_item("dst",cooked.item) then
- -- Put result in "dst" list
- inv:add_item("dst", cooked.item)
- -- take stuff from "src" list
- srcstack = inv:get_stack("src", 1)
- srcstack:take_item()
- inv:set_stack("src", 1, srcstack)
- else
- print("Furnace inventory full!")
- end
- meta:set_string("src_time", 0)
- end
- end
- end
-
-
-
-
- if srclist then
- cooked = minetest.get_craft_result({method = "cooking", width = 1, items = srclist})
- if cooked.time>0 then
- hacky_swap_node(pos,"technic:coal_furnace_active")
- meta:set_string("infotext","Furnace active")
- meta:set_string("furnace_is_cookin",1)
- meta:set_string("src_time", 0)
- return
- end
-
- end
-
- hacky_swap_node(pos,"technic:coal_furnace")
- meta:set_string("infotext","Furnace inactive")
- meta:set_string("furnace_is_cookin",0)
- meta:set_string("src_time", 0)
-
-
-end,
-}) \ No newline at end of file
diff --git a/config.lua b/config.lua
deleted file mode 100644
index 88662d3..0000000
--- a/config.lua
+++ /dev/null
@@ -1,3 +0,0 @@
--- Please note that item_drop module already contains item_pickup
-enable_item_drop=false
-enable_item_pickup=true
diff --git a/technic/modpack.txt b/technic/modpack.txt
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/technic/modpack.txt
@@ -0,0 +1 @@
+
diff --git a/technic/pipeworks/.gitignore b/technic/pipeworks/.gitignore
new file mode 100644
index 0000000..b25c15b
--- /dev/null
+++ b/technic/pipeworks/.gitignore
@@ -0,0 +1 @@
+*~
diff --git a/technic/pipeworks/README b/technic/pipeworks/README
new file mode 100644
index 0000000..fb18d4f
--- /dev/null
+++ b/technic/pipeworks/README
@@ -0,0 +1,34 @@
+This simple mod uses nodeboxes to supply a complete set of 3D flanged pipes,
+along with "valve" and "pump" devices.
+
+Unlike the previous version of this mod, these pipes are rounded, and when
+placed, they'll automatically join together as needed. Pipes can go vertically
+or horizontally, and there are enough nodes defined to allow for all possible
+connections. Valves and pumps can only be placed horizontally, and will
+automatically rotate and join with neighboring pipes as objects are added, as
+well as joining with each other under certain circumstances.
+
+Pipes come in two variants: one type bears one or more dark windows on each
+pipe, suggesting they're empty, while the other type bears green-tinted
+windows, as if full (the two colors should also be easy to select if you want
+to change them in a paint program). These windows only appear on straight
+lengths and on certain junctions.
+
+There are no crafting recipes, yet, but you can use /giveme as usual, namely
+"/giveme pipeworks:pipe 999" or so, and then place them as needed. See
+init.lua for more details.
+
+This mod is intended to be used as a basis or at least as sort of a model for
+something else to build on (perhaps a nicer-looking oil mod?), and does not
+provide any of the code necessary to cause anything to flow through them. Like
+the pipes, the valve and pump don't do anything useful yet, but you can punch
+them to turn them "on" and "off". Note that the valve and pump textures and
+shapes are not yet complete (hence their boxy appearance).
+
+This mod is a work in progress.
+
+Please note that owing to the nature of this mod, I have opted to use 64px
+textures. Anything less just looks terrible.
+
+If you don't need the old node names from the previous version of this mod,
+edit init.lua and comment-out the 'dofile' line at the top.
diff --git a/technic/pipeworks/autoplace.lua b/technic/pipeworks/autoplace.lua
new file mode 100644
index 0000000..390c66a
--- /dev/null
+++ b/technic/pipeworks/autoplace.lua
@@ -0,0 +1,176 @@
+-- autorouting for pipes
+
+function pipe_scanforobjects(pos)
+ pipe_autoroute({ x=pos.x-1, y=pos.y , z=pos.z }, "_loaded")
+ pipe_autoroute({ x=pos.x+1, y=pos.y , z=pos.z }, "_loaded")
+ pipe_autoroute({ x=pos.x , y=pos.y-1, z=pos.z }, "_loaded")
+ pipe_autoroute({ x=pos.x , y=pos.y+1, z=pos.z }, "_loaded")
+ pipe_autoroute({ x=pos.x , y=pos.y , z=pos.z-1 }, "_loaded")
+ pipe_autoroute({ x=pos.x , y=pos.y , z=pos.z+1 }, "_loaded")
+ pipe_autoroute(pos, "_loaded")
+
+ pipe_autoroute({ x=pos.x-1, y=pos.y , z=pos.z }, "_empty")
+ pipe_autoroute({ x=pos.x+1, y=pos.y , z=pos.z }, "_empty")
+ pipe_autoroute({ x=pos.x , y=pos.y-1, z=pos.z }, "_empty")
+ pipe_autoroute({ x=pos.x , y=pos.y+1, z=pos.z }, "_empty")
+ pipe_autoroute({ x=pos.x , y=pos.y , z=pos.z-1 }, "_empty")
+ pipe_autoroute({ x=pos.x , y=pos.y , z=pos.z+1 }, "_empty")
+ pipe_autoroute(pos, "_empty")
+end
+
+function pipe_autoroute(pos, state)
+ nctr = minetest.env:get_node(pos)
+ if (string.find(nctr.name, "pipeworks:pipe_") == nil) then return end
+
+ pipes_scansurroundings(pos)
+
+ nsurround = pxm..pxp..pym..pyp..pzm..pzp
+ if nsurround == "000000" then nsurround = "110000" end
+ minetest.env:add_node(pos, { name = "pipeworks:pipe_"..nsurround..state })
+end
+
+-- autorouting for pneumatic tubes
+
+function tube_scanforobjects(pos)
+ tube_autoroute({ x=pos.x-1, y=pos.y , z=pos.z })
+ tube_autoroute({ x=pos.x+1, y=pos.y , z=pos.z })
+ tube_autoroute({ x=pos.x , y=pos.y-1, z=pos.z })
+ tube_autoroute({ x=pos.x , y=pos.y+1, z=pos.z })
+ tube_autoroute({ x=pos.x , y=pos.y , z=pos.z-1 })
+ tube_autoroute({ x=pos.x , y=pos.y , z=pos.z+1 })
+ tube_autoroute(pos)
+end
+
+function tube_autoroute(pos)
+ nctr = minetest.env:get_node(pos)
+ print ("minetest.get_item_group("..nctr.name..',"tubedevice") == '..minetest.get_item_group(nctr.name, "tubedevice"))
+ if (string.find(nctr.name, "pipeworks:tube_") == nil)
+ and minetest.get_item_group(nctr.name, "tubedevice") ~= 1 then return end
+
+ pxm=0
+ pxp=0
+ pym=0
+ pyp=0
+ pzm=0
+ pzp=0
+
+ nxm = minetest.env:get_node({ x=pos.x-1, y=pos.y , z=pos.z })
+ nxp = minetest.env:get_node({ x=pos.x+1, y=pos.y , z=pos.z })
+ nym = minetest.env:get_node({ x=pos.x , y=pos.y-1, z=pos.z })
+ nyp = minetest.env:get_node({ x=pos.x , y=pos.y+1, z=pos.z })
+ nzm = minetest.env:get_node({ x=pos.x , y=pos.y , z=pos.z-1 })
+ nzp = minetest.env:get_node({ x=pos.x , y=pos.y , z=pos.z+1 })
+
+ if (string.find(nxm.name, "pipeworks:tube_") ~= nil)
+ or minetest.get_item_group(nxm.name, "tubedevice") == 1 then pxm=1 end
+ if (string.find(nxp.name, "pipeworks:tube_") ~= nil)
+ or minetest.get_item_group(nxp.name, "tubedevice") == 1 then pxp=1 end
+ if (string.find(nym.name, "pipeworks:tube_") ~= nil)
+ or minetest.get_item_group(nym.name, "tubedevice") == 1 then pym=1 end
+ if (string.find(nyp.name, "pipeworks:tube_") ~= nil)
+ or minetest.get_item_group(nyp.name, "tubedevice") == 1 then pyp=1 end
+ if (string.find(nzm.name, "pipeworks:tube_") ~= nil)
+ or minetest.get_item_group(nzm.name, "tubedevice") == 1 then pzm=1 end
+ if (string.find(nzp.name, "pipeworks:tube_") ~= nil)
+ or minetest.get_item_group(nzp.name, "tubedevice") == 1 then pzp=1 end
+
+ nsurround = pxm..pxp..pym..pyp..pzm..pzp
+ if minetest.get_item_group(nctr.name, "tubedevice") ~= 1 then
+ minetest.env:add_node(pos, { name = "pipeworks:tube_"..nsurround })
+ end
+
+end
+
+-- auto-rotation code for various devices the tubes attach to
+
+function pipe_device_autorotate(pos, state, bname)
+
+ if state == nil then
+ nname = bname
+ else
+ nname = bname.."_"..state
+ end
+
+ local nctr = minetest.env:get_node(pos)
+
+ pipes_scansurroundings(pos)
+
+ if (pxm+pxp) ~= 0 then
+ minetest.env:add_node(pos, { name = nname.."_x" })
+ return
+ end
+
+ if (pzm+pzp) ~= 0 then
+ minetest.env:add_node(pos, { name = nname.."_z" })
+ end
+
+end
+
+function pipes_scansurroundings(pos)
+ pxm=0
+ pxp=0
+ pym=0
+ pyp=0
+ pzm=0
+ pzp=0
+
+ nxm = minetest.env:get_node({ x=pos.x-1, y=pos.y , z=pos.z })
+ nxp = minetest.env:get_node({ x=pos.x+1, y=pos.y , z=pos.z })
+ nym = minetest.env:get_node({ x=pos.x , y=pos.y-1, z=pos.z })
+ nyp = minetest.env:get_node({ x=pos.x , y=pos.y+1, z=pos.z })
+ nzm = minetest.env:get_node({ x=pos.x , y=pos.y , z=pos.z-1 })
+ nzp = minetest.env:get_node({ x=pos.x , y=pos.y , z=pos.z+1 })
+
+ if (string.find(nxm.name, "pipeworks:pipe_") ~= nil) then pxm=1 end
+ if (string.find(nxp.name, "pipeworks:pipe_") ~= nil) then pxp=1 end
+ if (string.find(nym.name, "pipeworks:pipe_") ~= nil) then pym=1 end
+ if (string.find(nyp.name, "pipeworks:pipe_") ~= nil) then pyp=1 end
+ if (string.find(nzm.name, "pipeworks:pipe_") ~= nil) then pzm=1 end
+ if (string.find(nzp.name, "pipeworks:pipe_") ~= nil) then pzp=1 end
+
+ for p in ipairs(pipes_devicelist) do
+ pdev = pipes_devicelist[p]
+ if (string.find(nxm.name, "pipeworks:"..pdev.."_off_x") ~= nil) or
+ (string.find(nxm.name, "pipeworks:"..pdev.."_on_x") ~= nil) or
+ (string.find(nxm.name, "pipeworks:"..pdev.."_x") ~= nil) then
+ pxm=1
+ end
+
+ if (string.find(nxp.name, "pipeworks:"..pdev.."_off_x") ~= nil) or
+ (string.find(nxp.name, "pipeworks:"..pdev.."_on_x") ~= nil) or
+ (string.find(nxp.name, "pipeworks:"..pdev.."_x") ~= nil) then
+ pxp=1
+ end
+
+ if (string.find(nzm.name, "pipeworks:"..pdev.."_off_z") ~= nil) or
+ (string.find(nzm.name, "pipeworks:"..pdev.."_on_z") ~= nil) or
+ (string.find(nzm.name, "pipeworks:"..pdev.."_z") ~= nil) then
+ pzm=1
+ end
+
+ if (string.find(nzp.name, "pipeworks:"..pdev.."_off_z") ~= nil) or
+ (string.find(nzp.name, "pipeworks:"..pdev.."_on_z") ~= nil) or
+ (string.find(nzp.name, "pipeworks:"..pdev.."_z") ~= nil) then
+ pzp=1
+ end
+ end
+
+ -- storage tanks and intake grates have vertical connections
+ -- also, so they require a special case
+
+ if (string.find(nym.name, "pipeworks:storage_tank_") ~= nil) or
+ (string.find(nym.name, "pipeworks:intake") ~= nil) or
+ (string.find(nym.name, "pipeworks:outlet") ~= nil) then
+ pym=1
+ end
+end
+
+function pipe_look_for_stackable_tanks(pos)
+ tym = minetest.env:get_node({ x=pos.x , y=pos.y-1, z=pos.z })
+
+ if string.find(tym.name, "pipeworks:storage_tank_") ~= nil or
+ string.find(tym.name, "pipeworks:expansion_tank_") ~= nil then
+ minetest.env:add_node(pos, { name = "pipeworks:expansion_tank_0"})
+ end
+end
+
diff --git a/technic/pipeworks/changelog.txt b/technic/pipeworks/changelog.txt
new file mode 100644
index 0000000..9e51430
--- /dev/null
+++ b/technic/pipeworks/changelog.txt
@@ -0,0 +1,46 @@
+Changelog
+---------
+
+2012-08-24: Added square-ish pneumatic tubes, with their own autoplace code
+(they do not connect to the steel pipes or their related devices).
+
+2012-08-22: Added outlet grate, made it participate in autoplace algorithm.
+Extended storage tank to show fill level in 10% steps (0% to 100%). Added
+"expansion tank" that appears if the user stacks tanks upwards. (Downwards is
+not checked).
+
+2012-08-21: Made storage tank participate in autoplace algorithm. Tuned API a
+little to allow for more flexible placement. Re-organized code a bit to allow
+for some upcoming rules changes. Made storage tanks' upper/lower fittins and
+intake grate participate in autoplace algorithm.
+
+2012-08-20: Added temporary nodes for storage tank and intake grating, but
+without autoplace.
+
+2012-08-19: Pumps and valves now fully participate in the
+auto-rotate/auto-place algorithm.
+
+2012-08-18: Total rewrite again. All pipes are now nice and round-looking, and
+they auto-connect! Also added temporary nodes for pump and valve (each with an
+on/off setting - punch to change). No crafting recipes yet and the pipes still
+don't do anything useful yet. Soon.
+
+2012-08-06: Moved this changelog off the forum post and into a separate file.
+
+2012-08-05 (multiple updates): Rewrote pipeworks to use loops and tables to
+create the nodes. Requires far less code now. Added -X, +X, -Y, +Y, -Z, +Z
+capped stubs and a short centered horizontal segment. Changed node definitions
+so that the aforementioned "short centered" segment is given on dig/drop.
+Renamed it to just "pipeworks:pipe" (and pipe_loaded). Added empty/loaded
+indicator images to the capped ends, removed some redundant comments. Made the
+empty/loaded indication at the capped end more prominent.
+
+2012-07-21: Added screenshot showing pipes as they look now that nodebox
+texture rotation is fixed.
+
+2012-07-18: Changed the mod name and all internals to 'pipeworks' instead of
+'pipes'... after a couple of mistakes :-)
+
+2012-07-12: moved project to github.
+
+2012-06-23: Initial release, followed by reworking the textures a bit.
diff --git a/technic/pipeworks/crafts.lua b/technic/pipeworks/crafts.lua
new file mode 100644
index 0000000..493fdcf
--- /dev/null
+++ b/technic/pipeworks/crafts.lua
@@ -0,0 +1,94 @@
+-- Crafting recipes for pipeworks
+
+-- If the technic mod is present, then don't bother registering these recipes
+-- as that mod supplies its own.
+
+if io.open(minetest.get_modpath("pipeworks").."/../technic/init.lua", "r") == nil then
+
+ -- If homedecor is not installed, we need to register a few of its crafts
+ -- manually so we can use them.
+
+ if minetest.get_modpath("homedecor") == nil then
+
+ minetest.register_craftitem(":homedecor:plastic_sheeting", {
+ description = "Plastic sheet",
+ inventory_image = "pipeworks_plastic_sheeting.png",
+ })
+
+ minetest.register_craft({
+ type = "cooking",
+ output = "homedecor:plastic_sheeting",
+ recipe = "default:junglegrass",
+ })
+
+ minetest.register_craft({
+ type = 'fuel',
+ recipe = 'homedecor:plastic_sheeting',
+ burntime = 30,
+ })
+ end
+
+ minetest.register_craft( {
+ output = "pipeworks:pipe_110000_empty 12",
+ recipe = {
+ { "default:steel_ingot", "default:steel_ingot", "default:steel_ingot" },
+ { "", "", "" },
+ { "default:steel_ingot", "default:steel_ingot", "default:steel_ingot" }
+ },
+ })
+
+ minetest.register_craft( {
+ output = "pipeworks:pump 2",
+ recipe = {
+ { "default:stone", "default:stone", "default:stone" },
+ { "default:steel_ingot", "default:stick", "default:steel_ingot" },
+ { "default:stone", "default:stone", "default:stone" }
+ },
+ })
+
+ minetest.register_craft( {
+ output = "pipeworks:valve 2",
+ recipe = {
+ { "", "default:stick", "" },
+ { "default:steel_ingot", "default:steel_ingot", "default:steel_ingot" },
+ { "", "default:steel_ingot", "" }
+ },
+ })
+
+ minetest.register_craft( {
+ output = "pipeworks:storage_tank 2",
+ recipe = {
+ { "", "default:steel_ingot", "default:steel_ingot" },
+ { "default:steel_ingot", "default:glass", "default:steel_ingot" },
+ { "default:steel_ingot", "default:steel_ingot", "" }
+ },
+ })
+
+ minetest.register_craft( {
+ output = "pipeworks:intake 2",
+ recipe = {
+ { "", "default:steel_ingot", "" },
+ { "default:steel_ingot", "", "default:steel_ingot" },
+ { "", "default:steel_ingot", "" }
+ },
+ })
+
+ minetest.register_craft( {
+ output = "pipeworks:outlet 2",
+ recipe = {
+ { "default:steel_ingot", "", "default:steel_ingot" },
+ { "", "default:steel_ingot", "" },
+ { "default:steel_ingot", "", "default:steel_ingot" }
+ },
+ })
+
+ minetest.register_craft( {
+ output = "pipeworks:tube 12",
+ recipe = {
+ { "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" },
+ { "", "", "" },
+ { "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" }
+ },
+ })
+
+end
diff --git a/technic/pipeworks/depends.txt b/technic/pipeworks/depends.txt
new file mode 100644
index 0000000..3a7daa1
--- /dev/null
+++ b/technic/pipeworks/depends.txt
@@ -0,0 +1,2 @@
+default
+
diff --git a/technic/pipeworks/devices.lua b/technic/pipeworks/devices.lua
new file mode 100644
index 0000000..5f1ce0d
--- /dev/null
+++ b/technic/pipeworks/devices.lua
@@ -0,0 +1,471 @@
+-- List of devices that should participate in the autoplace algorithm
+
+pipes_devicelist = {
+ "pump",
+ "valve",
+ "storage_tank_0",
+ "storage_tank_1",
+ "storage_tank_2",
+ "storage_tank_3",
+ "storage_tank_4",
+ "storage_tank_5",
+ "storage_tank_6",
+ "storage_tank_7",
+ "storage_tank_8",
+ "storage_tank_9",
+ "storage_tank_10"
+}
+
+-- tables
+
+minetest.register_alias("pipeworks:pump", "pipeworks:pump_off_x")
+minetest.register_alias("pipeworks:valve", "pipeworks:valve_off_x")
+minetest.register_alias("pipeworks:storage_tank", "pipeworks:storage_tank_0_x")
+
+pipe_pumpbody_x = {
+ { -6/16, -8/16, -6/16, 6/16, 8/16, 6/16 }
+}
+
+pipe_pumpbody_z = {
+ { -6/16, -8/16, -6/16, 6/16, 8/16, 6/16 }
+}
+
+pipe_valvebody_x = {
+ { -4/16, -4/16, -4/16, 4/16, 4/16, 4/16 }
+}
+
+pipe_valvebody_z = {
+ { -4/16, -4/16, -4/16, 4/16, 4/16, 4/16 }
+}
+
+pipe_valvehandle_on_x = {
+ { -5/16, 4/16, -1/16, 0, 5/16, 1/16 }
+}
+
+pipe_valvehandle_on_z = {
+ { -1/16, 4/16, -5/16, 1/16, 5/16, 0 }
+}
+
+pipe_valvehandle_off_x = {
+ { -1/16, 4/16, -5/16, 1/16, 5/16, 0 }
+}
+
+pipe_valvehandle_off_z = {
+ { -5/16, 4/16, -1/16, 0, 5/16, 1/16 }
+}
+
+-- Now define the nodes.
+
+local states = { "on", "off" }
+local dgroups = ""
+
+for s in ipairs(states) do
+
+ if states[s] == "off" then
+ dgroups = {snappy=3, pipe=1}
+ else
+ dgroups = {snappy=3, pipe=1, not_in_creative_inventory=1}
+ end
+
+ local pumpboxes = {}
+ pipe_addbox(pumpboxes, pipe_leftstub)
+ pipe_addbox(pumpboxes, pipe_pumpbody_x)
+ pipe_addbox(pumpboxes, pipe_rightstub)
+ local tilex = "pipeworks_pump_ends.png"
+ local tilez = "pipeworks_pump_"..states[s]..".png"
+
+ minetest.register_node("pipeworks:pump_"..states[s].."_x", {
+ description = "Pump Module ("..states[s]..")",
+ drawtype = "nodebox",
+ tiles = {
+ "pipeworks_pump_top_x.png",
+ "pipeworks_pump_sides.png",
+ tilex,
+ tilex,
+ "pipeworks_pump_sides.png",
+ tilez
+ },
+ paramtype = "light",
+ selection_box = {
+ type = "fixed",
+ fixed = { -0.5, -0.5, -0.5, 0.5, 0.5, 0.5 }
+ },
+ node_box = {
+ type = "fixed",
+ fixed = pumpboxes
+ },
+ groups = dgroups,
+ sounds = default.node_sound_wood_defaults(),
+ walkable = true,
+ stack_max = 99,
+ after_place_node = function(pos)
+ pipe_device_autorotate(pos, states[s], "pipeworks:pump")
+ pipe_scanforobjects(pos)
+ end,
+ after_dig_node = function(pos)
+ pipe_scanforobjects(pos)
+ end,
+ drop = "pipeworks:pump_off_x"
+ })
+
+ local pumpboxes = {}
+ pipe_addbox(pumpboxes, pipe_frontstub)
+ pipe_addbox(pumpboxes, pipe_pumpbody_z)
+ pipe_addbox(pumpboxes, pipe_backstub)
+
+ minetest.register_node("pipeworks:pump_"..states[s].."_z", {
+ description = "Pump Module ("..states[s]..", Z-axis)",
+ drawtype = "nodebox",
+ tiles = {
+ "pipeworks_pump_top_z.png",
+ "pipeworks_pump_sides.png",
+ tilez,
+ tilez,
+ "pipeworks_pump_sides.png",
+ tilex
+ },
+ paramtype = "light",
+ selection_box = {
+ type = "fixed",
+ fixed = { -0.5, -0.5, -0.5, 0.5, 0.5, 0.5 }
+ },
+ node_box = {
+ type = "fixed",
+ fixed = pumpboxes
+ },
+ groups = {snappy=3, pipe=1, not_in_creative_inventory=1},
+ sounds = default.node_sound_wood_defaults(),
+ walkable = true,
+ stack_max = 99,
+ after_place_node = function(pos)
+ pipe_device_autorotate(pos, states[s], "pipeworks:pump")
+ pipe_scanforobjects(pos)
+ end,
+ after_dig_node = function(pos)
+ pipe_scanforobjects(pos)
+ end,
+ drop = "pipeworks:pump_off_x"
+ })
+
+ local valveboxes = {}
+ pipe_addbox(valveboxes, pipe_leftstub)
+ pipe_addbox(valveboxes, pipe_valvebody_x)
+ if states[s] == "off" then
+ pipe_addbox(valveboxes, pipe_valvehandle_off_x)
+ else
+ pipe_addbox(valveboxes, pipe_valvehandle_on_x)
+ end
+ pipe_addbox(valveboxes, pipe_rightstub)
+ local tilex = "pipeworks_valvebody_ends.png"
+ local tilez = "pipeworks_valvebody_sides.png"
+
+ minetest.register_node("pipeworks:valve_"..states[s].."_x", {
+ description = "Valve ("..states[s]..")",
+ drawtype = "nodebox",
+ tiles = {
+ "pipeworks_valvebody_top_"..states[s].."_x.png",
+ "pipeworks_valvebody_bottom.png",
+ tilex,
+ tilex,
+ tilez,
+ tilez,
+ },
+ paramtype = "light",
+ selection_box = {
+ type = "fixed",
+ fixed = { -8/16, -4/16, -5/16, 8/16, 5/16, 5/16 }
+ },
+ node_box = {
+ type = "fixed",
+ fixed = valveboxes
+ },
+ groups = dgroups,
+ sounds = default.node_sound_wood_defaults(),
+ walkable = true,
+ stack_max = 99,
+ after_place_node = function(pos)
+ pipe_device_autorotate(pos, states[s], "pipeworks:valve")
+ pipe_scanforobjects(pos)
+ end,
+ after_dig_node = function(pos)
+ pipe_scanforobjects(pos)
+ end,
+ drop = "pipeworks:valve_off_x",
+ pipelike=1,
+ on_construct = function(pos)
+ local meta = minetest.env:get_meta(pos)
+ meta:set_int("pipelike",1)
+ end,
+ })
+
+ local valveboxes = {}
+ pipe_addbox(valveboxes, pipe_frontstub)
+ pipe_addbox(valveboxes, pipe_valvebody_z)
+ if states[s] == "off" then
+ pipe_addbox(valveboxes, pipe_valvehandle_off_z)
+ else
+ pipe_addbox(valveboxes, pipe_valvehandle_on_z)
+ end
+ pipe_addbox(valveboxes, pipe_backstub)
+
+ minetest.register_node("pipeworks:valve_"..states[s].."_z", {
+ description = "Valve ("..states[s]..", Z-axis)",
+ drawtype = "nodebox",
+ tiles = {
+ "pipeworks_valvebody_top_"..states[s].."_z.png",
+ "pipeworks_valvebody_bottom.png",
+ tilez,
+ tilez,
+ tilex,
+ tilex,
+ },
+ paramtype = "light",
+ selection_box = {
+ type = "fixed",
+ fixed = { -5/16, -4/16, -8/16, 5/16, 5/16, 8/16 }
+ },
+ node_box = {
+ type = "fixed",
+ fixed = valveboxes
+ },
+ groups = {snappy=3, pipe=1, not_in_creative_inventory=1},
+ sounds = default.node_sound_wood_defaults(),
+ walkable = true,
+ stack_max = 99,
+ after_place_node = function(pos)
+ pipe_device_autorotate(pos, states[s], "pipeworks:valve")
+ pipe_scanforobjects(pos)
+
+ end,
+ after_dig_node = function(pos)
+ pipe_scanforobjects(pos)
+ end,
+ drop = "pipeworks:valve_off_x",
+ pipelike=1,
+ on_construct = function(pos)
+ local meta = minetest.env:get_meta(pos)
+ meta:set_int("pipelike",1)
+ end,
+ })
+end
+
+-- intake grate
+
+minetest.register_node("pipeworks:intake", {
+ description = "Intake grate",
+ drawtype = "nodebox",
+ tiles = {
+ "pipeworks_intake_top.png",
+ "pipeworks_intake_sides.png",
+ "pipeworks_intake_sides.png",
+ "pipeworks_intake_sides.png",
+ "pipeworks_intake_sides.png",
+ "pipeworks_intake_sides.png"
+ },
+ selection_box = {
+ type = "fixed",
+ fixed = { -0.5, -0.5, -0.5, 0.5, 0.5, 0.5 }
+ },
+ node_box = {
+ type = "fixed",
+ fixed = { -0.5, -0.5, -0.5, 0.5, 0.5, 0.5 }
+ },
+ paramtype = "light",
+ groups = {snappy=3, pipe=1},
+ sounds = default.node_sound_wood_defaults(),
+ walkable = true,
+ stack_max = 99,
+ after_place_node = function(pos)
+ pipe_scanforobjects(pos)
+ end,
+ after_dig_node = function(pos)
+ pipe_scanforobjects(pos)
+ end,
+ pipelike=1,
+ on_construct = function(pos)
+ local meta = minetest.env:get_meta(pos)
+ meta:set_int("pipelike",1)
+ end,
+})
+
+-- outlet grate
+
+minetest.register_node("pipeworks:outlet", {
+ description = "Outlet grate",
+ drawtype = "nodebox",
+ tiles = {
+ "pipeworks_outlet_top.png",
+ "pipeworks_outlet_sides.png",
+ "pipeworks_outlet_sides.png",
+ "pipeworks_outlet_sides.png",
+ "pipeworks_outlet_sides.png",
+ "pipeworks_outlet_sides.png"
+ },
+ selection_box = {
+ type = "fixed",
+ fixed = { -0.5, -0.5, -0.5, 0.5, 0.5, 0.5 }
+ },
+ node_box = {
+ type = "fixed",
+ fixed = { -0.5, -0.5, -0.5, 0.5, 0.5, 0.5 }
+ },
+ paramtype = "light",
+ groups = {snappy=3, pipe=1},
+ sounds = default.node_sound_wood_defaults(),
+ walkable = true,
+ stack_max = 99,
+ after_place_node = function(pos)
+ pipe_scanforobjects(pos)
+ end,
+ after_dig_node = function(pos)
+ pipe_scanforobjects(pos)
+ end,
+ pipelike=1,
+ on_construct = function(pos)
+ local meta = minetest.env:get_meta(pos)
+ meta:set_int("pipelike",1)
+ end,
+})
+
+-- tanks
+
+for fill = 0, 10 do
+ if fill == 0 then
+ filldesc="empty"
+ sgroups = {snappy=3, pipe=1, tankfill=fill+1}
+ else
+ filldesc=fill.."0% full"
+ sgroups = {snappy=3, pipe=1, tankfill=fill+1, not_in_creative_inventory=1}
+ end
+
+ minetest.register_node("pipeworks:expansion_tank_"..fill, {
+ description = "Expansion Tank ("..filldesc..")... You hacker, you.",
+ tiles = {
+ "pipeworks_storage_tank_fittings.png",
+ "pipeworks_storage_tank_fittings.png",
+ "pipeworks_storage_tank_back.png",
+ "pipeworks_storage_tank_back.png",
+ "pipeworks_storage_tank_back.png",
+ "pipeworks_storage_tank_front_"..fill..".png"
+ },
+ paramtype = "light",
+ paramtype2 = "facedir",
+ groups = {snappy=3, pipe=1, tankfill=fill+1, not_in_creative_inventory=1},
+ sounds = default.node_sound_wood_defaults(),
+ walkable = true,
+ stack_max = 99,
+ drop = "pipeworks:storage_tank_"..fill.."_x",
+ after_place_node = function(pos)
+ pipe_look_for_stackable_tanks(pos)
+ pipe_scanforobjects(pos)
+ end,
+ after_dig_node = function(pos)
+ pipe_scanforobjects(pos)
+ end,
+ pipelike=0,
+ on_construct = function(pos)
+ local meta = minetest.env:get_meta(pos)
+ meta:set_int("pipelike",0)
+ end,
+ })
+
+ minetest.register_node("pipeworks:storage_tank_"..fill.."_x", {
+ description = "Fluid Storage Tank ("..filldesc..")",
+ tiles = {
+ "pipeworks_storage_tank_fittings.png",
+ "pipeworks_storage_tank_back.png",
+ "pipeworks_storage_tank_fittings.png",
+ "pipeworks_storage_tank_fittings.png",
+ "pipeworks_storage_tank_back.png",
+ "pipeworks_storage_tank_front_"..fill..".png"
+ },
+ paramtype = "light",
+ groups = sgroups,
+ sounds = default.node_sound_wood_defaults(),
+ walkable = true,
+ stack_max = 99,
+ after_place_node = function(pos)
+ pipe_look_for_stackable_tanks(pos)
+ if string.find(minetest.env:get_node(pos).name, "pipeworks:storage_tank_") ~= nil then
+ pipe_device_autorotate(pos, nil, "pipeworks:storage_tank_"..fill)
+ end
+ pipe_scanforobjects(pos)
+ end,
+ after_dig_node = function(pos)
+ pipe_scanforobjects(pos)
+ end,
+ pipelike=1,
+ on_construct = function(pos)
+ local meta = minetest.env:get_meta(pos)
+ meta:set_int("pipelike",1)
+ end,
+ })
+
+ minetest.register_node("pipeworks:storage_tank_"..fill.."_z", {
+ description = "Fluid Storage Tank (Z axis, "..filldesc..")... You hacker, you.",
+ tiles = {
+ "pipeworks_storage_tank_fittings.png",
+ "pipeworks_storage_tank_back.png",
+ "pipeworks_storage_tank_front_"..fill..".png",
+ "pipeworks_storage_tank_back.png",
+ "pipeworks_storage_tank_fittings.png",
+ "pipeworks_storage_tank_fittings.png"
+ },
+ paramtype = "light",
+ groups = {snappy=3, pipe=1, tankfill=fill+1, not_in_creative_inventory=1},
+ sounds = default.node_sound_wood_defaults(),
+ walkable = true,
+ stack_max = 99,
+ drop = "pipeworks:storage_tank_"..fill.."_x",
+ after_place_node = function(pos)
+ pipe_look_for_stackable_tanks(pos)
+ if string.find(minetest.env:get_node(pos).name, "pipeworks:storage_tank_") ~= nil then
+ pipe_device_autorotate(pos, nil, "pipeworks:storage_tank_"..fill)
+ end
+ pipe_scanforobjects(pos)
+ end,
+ after_dig_node = function(pos)
+ pipe_scanforobjects(pos)
+ end,
+ pipelike=1,
+ on_construct = function(pos)
+ local meta = minetest.env:get_meta(pos)
+ meta:set_int("pipelike",1)
+ end,
+ })
+end
+
+-- various actions
+
+local axes = { "x", "z" }
+
+for a in ipairs(axes) do
+ minetest.register_on_punchnode(function (pos, node)
+ if node.name=="pipeworks:valve_on_"..axes[a] then
+ minetest.env:add_node(pos, { name = "pipeworks:valve_off_"..axes[a] })
+ local meta = minetest.env:get_meta(pos)
+ meta:set_int("pipelike",0)
+ end
+ end)
+
+ minetest.register_on_punchnode(function (pos, node)
+ if node.name=="pipeworks:valve_off_"..axes[a] then
+ minetest.env:add_node(pos, { name = "pipeworks:valve_on_"..axes[a] })
+ local meta = minetest.env:get_meta(pos)
+ meta:set_int("pipelike",1)
+ end
+ end)
+
+ minetest.register_on_punchnode(function (pos, node)
+ if node.name=="pipeworks:pump_on_"..axes[a] then
+ minetest.env:add_node(pos, { name = "pipeworks:pump_off_"..axes[a] })
+ end
+ end)
+
+ minetest.register_on_punchnode(function (pos, node)
+ if node.name=="pipeworks:pump_off_"..axes[a] then
+ minetest.env:add_node(pos, { name = "pipeworks:pump_on_"..axes[a] })
+ end
+ end)
+end
+
diff --git a/technic/pipeworks/init.lua b/technic/pipeworks/init.lua
new file mode 100644
index 0000000..0c6a501
--- /dev/null
+++ b/technic/pipeworks/init.lua
@@ -0,0 +1,322 @@
+-- Pipeworks mod by Vanessa Ezekowitz - 2012-08-05
+--
+-- Entirely my own code. This mod supplies various shapes of pipes
+-- and devices that they can connect to such as pumps, valves, etc.
+-- All pipes autoconnect as you lay them out, and devices will auto-
+-- connect to them.
+--
+-- License: WTFPL
+--
+
+-- Un-comment the following dofile line to re-enable the old pipe nodes.
+-- dofile(minetest.get_modpath("pipeworks").."/oldpipes.lua")
+
+minetest.register_alias("pipeworks:pipe", "pipeworks:pipe_110000_empty")
+
+pipe_leftstub = {
+ { -32/64, -2/64, -6/64, 1/64, 2/64, 6/64 }, -- pipe segment against -X face
+ { -32/64, -4/64, -5/64, 1/64, 4/64, 5/64 },
+ { -32/64, -5/64, -4/64, 1/64, 5/64, 4/64 },
+ { -32/64, -6/64, -2/64, 1/64, 6/64, 2/64 },
+
+ { -32/64, -3/64, -8/64, -30/64, 3/64, 8/64 }, -- (the flange for it)
+ { -32/64, -5/64, -7/64, -30/64, 5/64, 7/64 },
+ { -32/64, -6/64, -6/64, -30/64, 6/64, 6/64 },
+ { -32/64, -7/64, -5/64, -30/64, 7/64, 5/64 },
+ { -32/64, -8/64, -3/64, -30/64, 8/64, 3/64 }
+}
+
+pipe_rightstub = {
+ { -1/64, -2/64, -6/64, 32/64, 2/64, 6/64 }, -- pipe segment against +X face
+ { -1/64, -4/64, -5/64, 32/64, 4/64, 5/64 },
+ { -1/64, -5/64, -4/64, 32/64, 5/64, 4/64 },
+ { -1/64, -6/64, -2/64, 32/64, 6/64, 2/64 },
+
+ { 30/64, -3/64, -8/64, 32/64, 3/64, 8/64 }, -- (the flange for it)
+ { 30/64, -5/64, -7/64, 32/64, 5/64, 7/64 },
+ { 30/64, -6/64, -6/64, 32/64, 6/64, 6/64 },
+ { 30/64, -7/64, -5/64, 32/64, 7/64, 5/64 },
+ { 30/64, -8/64, -3/64, 32/64, 8/64, 3/64 }
+}
+
+pipe_bottomstub = {
+ { -2/64, -32/64, -6/64, 2/64, 1/64, 6/64 }, -- pipe segment against -Y face
+ { -4/64, -32/64, -5/64, 4/64, 1/64, 5/64 },
+ { -5/64, -32/64, -4/64, 5/64, 1/64, 4/64 },
+ { -6/64, -32/64, -2/64, 6/64, 1/64, 2/64 },
+
+ { -3/64, -32/64, -8/64, 3/64, -30/64, 8/64 }, -- (the flange for it)
+ { -5/64, -32/64, -7/64, 5/64, -30/64, 7/64 },
+ { -6/64, -32/64, -6/64, 6/64, -30/64, 6/64 },
+ { -7/64, -32/64, -5/64, 7/64, -30/64, 5/64 },
+ { -8/64, -32/64, -3/64, 8/64, -30/64, 3/64 }
+}
+
+
+pipe_topstub = {
+ { -2/64, -1/64, -6/64, 2/64, 32/64, 6/64 }, -- pipe segment against +Y face
+ { -4/64, -1/64, -5/64, 4/64, 32/64, 5/64 },
+ { -5/64, -1/64, -4/64, 5/64, 32/64, 4/64 },
+ { -6/64, -1/64, -2/64, 6/64, 32/64, 2/64 },
+
+ { -3/64, 30/64, -8/64, 3/64, 32/64, 8/64 }, -- (the flange for it)
+ { -5/64, 30/64, -7/64, 5/64, 32/64, 7/64 },
+ { -6/64, 30/64, -6/64, 6/64, 32/64, 6/64 },
+ { -7/64, 30/64, -5/64, 7/64, 32/64, 5/64 },
+ { -8/64, 30/64, -3/64, 8/64, 32/64, 3/64 }
+}
+
+pipe_frontstub = {
+ { -6/64, -2/64, -32/64, 6/64, 2/64, 1/64 }, -- pipe segment against -Z face
+ { -5/64, -4/64, -32/64, 5/64, 4/64, 1/64 },
+ { -4/64, -5/64, -32/64, 4/64, 5/64, 1/64 },
+ { -2/64, -6/64, -32/64, 2/64, 6/64, 1/64 },
+
+ { -8/64, -3/64, -32/64, 8/64, 3/64, -30/64 }, -- (the flange for it)
+ { -7/64, -5/64, -32/64, 7/64, 5/64, -30/64 },
+ { -6/64, -6/64, -32/64, 6/64, 6/64, -30/64 },
+ { -5/64, -7/64, -32/64, 5/64, 7/64, -30/64 },
+ { -3/64, -8/64, -32/64, 3/64, 8/64, -30/64 }
+}
+
+pipe_backstub = {
+ { -6/64, -2/64, -1/64, 6/64, 2/64, 32/64 }, -- pipe segment against -Z face
+ { -5/64, -4/64, -1/64, 5/64, 4/64, 32/64 },
+ { -4/64, -5/64, -1/64, 4/64, 5/64, 32/64 },
+ { -2/64, -6/64, -1/64, 2/64, 6/64, 32/64 },
+
+ { -8/64, -3/64, 30/64, 8/64, 3/64, 32/64 }, -- (the flange for it)
+ { -7/64, -5/64, 30/64, 7/64, 5/64, 32/64 },
+ { -6/64, -6/64, 30/64, 6/64, 6/64, 32/64 },
+ { -5/64, -7/64, 30/64, 5/64, 7/64, 32/64 },
+ { -3/64, -8/64, 30/64, 3/64, 8/64, 32/64 }
+}
+
+pipe_selectboxes = {
+ { -32/64, -8/64, -8/64, 8/64, 8/64, 8/64 },
+ { -8/64 , -8/64, -8/64, 32/64, 8/64, 8/64 },
+ { -8/64 , -32/64, -8/64, 8/64, 8/64, 8/64 },
+ { -8/64 , -8/64, -8/64, 8/64, 32/64, 8/64 },
+ { -8/64 , -8/64, -32/64, 8/64, 8/64, 8/64 },
+ { -8/64 , -8/64, -8/64, 8/64, 8/64, 32/64 }
+}
+
+pipe_bendsphere = {
+ { -4/64, -4/64, -4/64, 4/64, 4/64, 4/64 },
+ { -5/64, -3/64, -3/64, 5/64, 3/64, 3/64 },
+ { -3/64, -5/64, -3/64, 3/64, 5/64, 3/64 },
+ { -3/64, -3/64, -5/64, 3/64, 3/64, 5/64 }
+}
+
+-- Functions
+
+dbg = function(s)
+ if DEBUG == 1 then
+ print('[PIPEWORKS] ' .. s)
+ end
+end
+
+function pipes_fix_image_names(table, replacement)
+ outtable={}
+ for i in ipairs(table) do
+ outtable[i]=string.gsub(table[i], "_XXXXX", replacement)
+ end
+
+ return outtable
+end
+
+function pipe_addbox(t, b)
+ for i in ipairs(b)
+ do table.insert(t, b[i])
+ end
+end
+
+-- now define the nodes!
+
+for xm = 0, 1 do
+for xp = 0, 1 do
+for ym = 0, 1 do
+for yp = 0, 1 do
+for zm = 0, 1 do
+for zp = 0, 1 do
+ local outboxes = {}
+ local outsel = {}
+ local outimgs = {}
+
+ if yp==1 then
+ pipe_addbox(outboxes, pipe_topstub)
+ table.insert(outsel, pipe_selectboxes[4])
+ table.insert(outimgs, "pipeworks_pipe_end.png")
+ else
+ table.insert(outimgs, "pipeworks_plain.png")
+ end
+ if ym==1 then
+ pipe_addbox(outboxes, pipe_bottomstub)
+ table.insert(outsel, pipe_selectboxes[3])
+ table.insert(outimgs, "pipeworks_pipe_end.png")
+ else
+ table.insert(outimgs, "pipeworks_plain.png")
+ end
+ if xp==1 then
+ pipe_addbox(outboxes, pipe_rightstub)
+ table.insert(outsel, pipe_selectboxes[2])
+ table.insert(outimgs, "pipeworks_pipe_end.png")
+ else
+ table.insert(outimgs, "pipeworks_plain.png")
+ end
+ if xm==1 then
+ pipe_addbox(outboxes, pipe_leftstub)
+ table.insert(outsel, pipe_selectboxes[1])
+ table.insert(outimgs, "pipeworks_pipe_end.png")
+ else
+ table.insert(outimgs, "pipeworks_plain.png")
+ end
+ if zp==1 then
+ pipe_addbox(outboxes, pipe_backstub)
+ table.insert(outsel, pipe_selectboxes[6])
+ table.insert(outimgs, "pipeworks_pipe_end.png")
+ else
+ table.insert(outimgs, "pipeworks_plain.png")
+ end
+ if zm==1 then
+ pipe_addbox(outboxes, pipe_frontstub)
+ table.insert(outsel, pipe_selectboxes[5])
+ table.insert(outimgs, "pipeworks_pipe_end.png")
+ else
+ table.insert(outimgs, "pipeworks_plain.png")
+ end
+
+ local jx = xp+xm
+ local jy = yp+ym
+ local jz = zp+zm
+
+ if (jx+jy+jz) == 1 then
+ if xm == 1 then
+ table.remove(outimgs, 3)
+ table.insert(outimgs, 3, "pipeworks_pipe_end_XXXXX.png")
+ end
+ if xp == 1 then
+ table.remove(outimgs, 4)
+ table.insert(outimgs, 4, "pipeworks_pipe_end_XXXXX.png")
+ end
+ if ym == 1 then
+ table.remove(outimgs, 1)
+ table.insert(outimgs, 1, "pipeworks_pipe_end_XXXXX.png")
+ end
+ if xp == 1 then
+ table.remove(outimgs, 2)
+ table.insert(outimgs, 2, "pipeworks_pipe_end_XXXXX.png")
+ end
+ if zm == 1 then
+ table.remove(outimgs, 5)
+ table.insert(outimgs, 5, "pipeworks_pipe_end_XXXXX.png")
+ end
+ if zp == 1 then
+ table.remove(outimgs, 6)
+ table.insert(outimgs, 6, "pipeworks_pipe_end_XXXXX.png")
+ end
+ end
+
+ if (jx==1 and jy==1 and jz~=1) or (jx==1 and jy~=1 and jz==1) or (jx~= 1 and jy==1 and jz==1) then
+ pipe_addbox(outboxes, pipe_bendsphere)
+ end
+
+ if (jx==2 and jy~=2 and jz~=2) then
+ table.remove(outimgs, 5)
+ table.remove(outimgs, 5)
+ table.insert(outimgs, 5, "pipeworks_windowed_XXXXX.png")
+ table.insert(outimgs, 5, "pipeworks_windowed_XXXXX.png")
+ end
+
+ if (jx~=2 and jy~=2 and jz==2) or (jx~=2 and jy==2 and jz~=2) then
+ table.remove(outimgs, 3)
+ table.remove(outimgs, 3)
+ table.insert(outimgs, 3, "pipeworks_windowed_XXXXX.png")
+ table.insert(outimgs, 3, "pipeworks_windowed_XXXXX.png")
+ end
+
+ local pname = xm..xp..ym..yp..zm..zp
+ local pgroups = ""
+
+ if pname ~= "110000" then
+ pgroups = {snappy=3, pipe=1, not_in_creative_inventory=1}
+ pipedesc = "Pipe segment (empty, "..pname..")... You hacker, you."
+ else
+ pgroups = {snappy=3, pipe=1}
+ pipedesc = "Pipe segment"
+ end
+
+ minetest.register_node("pipeworks:pipe_"..pname.."_empty", {
+ description = pipedesc,
+ drawtype = "nodebox",
+ tiles = pipes_fix_image_names(outimgs, "_empty"),
+ paramtype = "light",
+ selection_box = {
+ type = "fixed",
+ fixed = outsel
+ },
+ node_box = {
+ type = "fixed",
+ fixed = outboxes
+ },
+ groups = pgroups,
+ sounds = default.node_sound_wood_defaults(),
+ walkable = true,
+ stack_max = 99,
+ drop = "pipeworks:pipe_110000_empty",
+ pipelike=1,
+ on_construct = function(pos)
+ local meta = minetest.env:get_meta(pos)
+ meta:set_int("pipelike",1)
+ end,
+ after_place_node = function(pos)
+ pipe_scanforobjects(pos)
+ end,
+ after_dig_node = function(pos)
+ pipe_scanforobjects(pos)
+ end,
+ })
+
+ minetest.register_node("pipeworks:pipe_"..pname.."_loaded", {
+ description = "Pipe segment (loaded, "..pname..")... You hacker, you.",
+ drawtype = "nodebox",
+ tiles = pipes_fix_image_names(outimgs, "_loaded"),
+ paramtype = "light",
+ selection_box = {
+ type = "fixed",
+ fixed = outsel
+ },
+ node_box = {
+ type = "fixed",
+ fixed = outboxes
+ },
+ groups = {snappy=3, pipe=1, not_in_creative_inventory=1},
+ sounds = default.node_sound_wood_defaults(),
+ walkable = true,
+ stack_max = 99,
+ drop = "pipeworks:pipe_110000_loaded",
+ pipelike=1,
+ on_construct = function(pos)
+ local meta = minetest.env:get_meta(pos)
+ meta:set_int("pipelike",1)
+ end,
+ after_place_node = function(pos)
+ pipe_scanforobjects(pos)
+ end,
+ after_dig_node = function(pos)
+ pipe_scanforobjects(pos)
+ end
+ })
+end
+end
+end
+end
+end
+end
+
+dofile(minetest.get_modpath("pipeworks").."/tubes.lua")
+dofile(minetest.get_modpath("pipeworks").."/devices.lua")
+dofile(minetest.get_modpath("pipeworks").."/autoplace.lua")
+dofile(minetest.get_modpath("pipeworks").."/crafts.lua")
+
+print("Pipeworks loaded!")
diff --git a/technic/pipeworks/oldpipes.lua b/technic/pipeworks/oldpipes.lua
new file mode 100644
index 0000000..90c8a27
--- /dev/null
+++ b/technic/pipeworks/oldpipes.lua
@@ -0,0 +1,360 @@
+-- This file is basically most of the old init.lua and only supplies the
+-- old nodes created by the previous verison of Pipeworks.
+--
+-- License: WTFPL
+--
+
+local nodenames = {
+ "vertical",
+ "horizontal",
+ "junction_xy",
+ "junction_xz",
+ "bend_xy_down",
+ "bend_xy_up",
+ "bend_xz",
+ "crossing_xz",
+ "crossing_xy",
+ "crossing_xyz",
+ "pipe_segment",
+ "cap_neg_x",
+ "cap_pos_x",
+ "cap_neg_y",
+ "cap_pos_y",
+ "cap_neg_z",
+ "cap_pos_z"
+}
+
+local descriptions = {
+ "vertical",
+ "horizontal",
+ "junction between X and Y axes",
+ "junction between X and Z axes",
+ "downward bend between X and Y axes",
+ "upward bend between X and Y axes",
+ "bend between X/Z axes",
+ "4-way crossing between X and Z axes",
+ "4-way crossing between X/Z and Y axes",
+ "6-way crossing",
+ "basic segment",
+ "capped, negative X half only",
+ "capped, positive X half only",
+ "capped, negative Y half only",
+ "capped, positive Y half only",
+ "capped, negative Z half only",
+ "capped, positive Z half only"
+}
+
+local nodeimages = {
+ {"pipeworks_pipe_end.png",
+ "pipeworks_pipe_end.png",
+ "pipeworks_plain.png",
+ "pipeworks_plain.png",
+ "pipeworks_windowed_XXXXX.png",
+ "pipeworks_windowed_XXXXX.png"},
+
+ {"pipeworks_windowed_XXXXX.png",
+ "pipeworks_windowed_XXXXX.png",
+ "pipeworks_pipe_end.png",
+ "pipeworks_pipe_end.png",
+ "pipeworks_plain.png",
+ "pipeworks_plain.png"},
+
+ {"pipeworks_pipe_end.png",
+ "pipeworks_pipe_end.png",
+ "pipeworks_pipe_end.png",
+ "pipeworks_plain.png",
+ "pipeworks_windowed_XXXXX.png",
+ "pipeworks_windowed_XXXXX.png"},
+
+ {"pipeworks_windowed_XXXXX.png",
+ "pipeworks_windowed_XXXXX.png",
+ "pipeworks_pipe_end.png",
+ "pipeworks_pipe_end.png",
+ "pipeworks_pipe_end.png",
+ "pipeworks_plain.png"},
+
+ {"pipeworks_plain.png",
+ "pipeworks_pipe_end.png",
+ "pipeworks_pipe_end.png",
+ "pipeworks_plain.png",
+ "pipeworks_windowed_XXXXX.png",
+ "pipeworks_windowed_XXXXX.png"},
+
+ {"pipeworks_pipe_end.png",
+ "pipeworks_plain.png",
+ "pipeworks_pipe_end.png",
+ "pipeworks_plain.png",
+ "pipeworks_windowed_XXXXX.png",
+ "pipeworks_windowed_XXXXX.png"},
+
+ {"pipeworks_windowed_XXXXX.png",
+ "pipeworks_windowed_XXXXX.png",
+ "pipeworks_pipe_end.png",
+ "pipeworks_plain.png",
+ "pipeworks_pipe_end.png",
+ "pipeworks_plain.png"},
+
+ {"pipeworks_windowed_XXXXX.png",
+ "pipeworks_windowed_XXXXX.png",
+ "pipeworks_pipe_end.png",
+ "pipeworks_pipe_end.png",
+ "pipeworks_pipe_end.png",
+ "pipeworks_pipe_end.png"},
+
+ {"pipeworks_pipe_end.png",
+ "pipeworks_pipe_end.png",
+ "pipeworks_pipe_end.png",
+ "pipeworks_pipe_end.png",
+ "pipeworks_windowed_XXXXX.png",
+ "pipeworks_windowed_XXXXX.png"},
+
+ {"pipeworks_pipe_end.png",
+ "pipeworks_pipe_end.png",
+ "pipeworks_pipe_end.png",
+ "pipeworks_pipe_end.png",
+ "pipeworks_pipe_end.png",
+ "pipeworks_pipe_end.png"},
+
+-- horizontal short segment
+
+ {"pipeworks_windowed_XXXXX.png",
+ "pipeworks_windowed_XXXXX.png",
+ "pipeworks_pipe_end.png",
+ "pipeworks_pipe_end.png",
+ "pipeworks_plain.png",
+ "pipeworks_plain.png"},
+
+-- capped
+
+ {"pipeworks_windowed_XXXXX.png",
+ "pipeworks_windowed_XXXXX.png",
+ "pipeworks_windowed_XXXXX.png",
+ "pipeworks_pipe_end.png",
+ "pipeworks_windowed_XXXXX.png",
+ "pipeworks_windowed_XXXXX.png"},
+
+ {"pipeworks_windowed_XXXXX.png",
+ "pipeworks_windowed_XXXXX.png",
+ "pipeworks_pipe_end.png",
+ "pipeworks_windowed_XXXXX.png",
+ "pipeworks_windowed_XXXXX.png",
+ "pipeworks_windowed_XXXXX.png"},
+
+ {"pipeworks_windowed_XXXXX.png",
+ "pipeworks_pipe_end.png",
+ "pipeworks_windowed_XXXXX.png",
+ "pipeworks_windowed_XXXXX.png",
+ "pipeworks_windowed_XXXXX.png",
+ "pipeworks_windowed_XXXXX.png"},
+
+ {"pipeworks_pipe_end.png",
+ "pipeworks_windowed_XXXXX.png",
+ "pipeworks_windowed_XXXXX.png",
+ "pipeworks_windowed_XXXXX.png",
+ "pipeworks_windowed_XXXXX.png",
+ "pipeworks_windowed_XXXXX.png"},
+
+ {"pipeworks_windowed_XXXXX.png",
+ "pipeworks_windowed_XXXXX.png",
+ "pipeworks_windowed_XXXXX.png",
+ "pipeworks_windowed_XXXXX.png",
+ "pipeworks_windowed_XXXXX.png",
+ "pipeworks_pipe_end.png"},
+
+ {"pipeworks_windowed_XXXXX.png",
+ "pipeworks_windowed_XXXXX.png",
+ "pipeworks_windowed_XXXXX.png",
+ "pipeworks_windowed_XXXXX.png",
+ "pipeworks_pipe_end.png",
+ "pipeworks_windowed_XXXXX.png"},
+}
+
+local selectionboxes = {
+ { -0.15, -0.5, -0.15, 0.15, 0.5, 0.15 },
+ { -0.5, -0.15, -0.15, 0.5, 0.15, 0.15 },
+ { -0.15, -0.5, -0.15, 0.5, 0.5, 0.15 },
+ { -0.5, -0.15, -0.15, 0.5, 0.15, 0.5 },
+ { -0.15, -0.5, -0.15, 0.5, 0.15, 0.15 },
+ { -0.15, -0.15, -0.15, 0.5, 0.5, 0.15 },
+ { -0.15, -0.15, -0.15, 0.5, 0.15, 0.5 },
+ { -0.5, -0.15, -0.5, 0.5, 0.15, 0.5 },
+ { -0.5, -0.5, -0.15, 0.5, 0.5, 0.15 },
+ { -0.5, -0.5, -0.5, 0.5, 0.5, 0.5 },
+ { -0.3, -0.15, -0.15, 0.3, 0.15, 0.15 },
+ { -0.5, -0.15, -0.15, 0, 0.15, 0.15 },
+ { 0, -0.15, -0.15, 0.5, 0.15, 0.15 },
+ { -0.15, -0.5, -0.15, 0.15, 0, 0.15 },
+ { -0.15, 0, -0.15, 0.15, 0.5, 0.15 },
+ { -0.15, -0.15, -0.5, 0.15, 0.15, 0 },
+ { -0.15, -0.15, 0, 0.15, 0.15, 0.5 },
+}
+
+local nodeboxes = {
+ {{ -0.15, -0.5 , -0.15, 0.15, -0.45, 0.15 }, -- vertical
+ { -0.1 , -0.45, -0.1 , 0.1 , 0.45, 0.1 },
+ { -0.15, 0.45, -0.15, 0.15, 0.5 , 0.15 }},
+
+ {{ -0.5 , -0.15, -0.15, -0.45, 0.15, 0.15 }, -- horizontal
+ { -0.45, -0.1 , -0.1 , 0.45, 0.1 , 0.1 },
+ { 0.45, -0.15, -0.15, 0.5 , 0.15, 0.15 }},
+
+ {{ -0.15, -0.5 , -0.15, 0.15, -0.45, 0.15 }, -- vertical with X/Z junction
+ { -0.1 , -0.45, -0.1 , 0.1 , 0.45, 0.1 },
+ { -0.15, 0.45, -0.15, 0.15, 0.5 , 0.15 },
+ { 0.1 , -0.1 , -0.1 , 0.45, 0.1 , 0.1 },
+ { 0.45, -0.15, -0.15, 0.5 , 0.15, 0.15 }},
+
+ {{ -0.15, -0.15, 0.45, 0.15, 0.15, 0.5 }, -- horizontal with X/Z junction
+ { -0.1 , -0.1 , 0.1 , 0.1 , 0.1 , 0.45 },
+ { -0.5 , -0.15, -0.15, -0.45, 0.15, 0.15 },
+ { -0.45, -0.1 , -0.1 , 0.45, 0.1 , 0.1 },
+ { 0.45, -0.15, -0.15, 0.5 , 0.15, 0.15 }},
+
+ {{ -0.15, -0.5 , -0.15, 0.15, -0.45, 0.15 }, -- bend down from X/Z to Y axis
+ { -0.1 , -0.45, -0.1 , 0.1 , 0.1 , 0.1 },
+ { -0.1 , -0.1 , -0.1 , 0.45, 0.1 , 0.1 },
+ { 0.45, -0.15, -0.15, 0.5 , 0.15, 0.15 }},
+
+ {{ -0.15, 0.45 , -0.15, 0.15, 0.5, 0.15 }, -- bend up from X/Z to Y axis
+ { -0.1 , -0.1 , -0.1 , 0.1 , 0.45, 0.1 },
+ { -0.1 , -0.1 , -0.1 , 0.45, 0.1 , 0.1 },
+ { 0.45, -0.15, -0.15, 0.5 , 0.15, 0.15 }},
+
+ {{ -0.15, -0.15, 0.45, 0.15, 0.15, 0.5 }, -- bend between X and Z axes
+ { -0.1 , -0.1 , 0.1 , 0.1 , 0.1 , 0.45 },
+ { -0.1 , -0.1 , -0.1 , 0.45, 0.1 , 0.1 },
+ { 0.45, -0.15, -0.15, 0.5 , 0.15, 0.15 }},
+
+ {{ -0.5 , -0.15, -0.15, -0.45, 0.15, 0.15 }, -- 4-way crossing between X and Z axes
+ { -0.45, -0.1 , -0.1 , 0.45, 0.1 , 0.1 },
+ { 0.45, -0.15, -0.15, 0.5 , 0.15, 0.15 },
+ { -0.15, -0.15, -0.5 , 0.15, 0.15, -0.45 },
+ { -0.1 , -0.1 , -0.45, 0.1 , 0.1 , 0.45 },
+ { -0.15, -0.15, 0.45, 0.15, 0.15, 0.5 }},
+
+ {{ -0.15, -0.5 , -0.15, 0.15, -0.45, 0.15 }, -- 4-way crossing between X/Z and Y axes
+ { -0.1 , -0.45, -0.1 , 0.1 , 0.45, 0.1 },
+ { -0.15, 0.45, -0.15, 0.15, 0.5 , 0.15 },
+ { -0.5 , -0.15, -0.15, -0.45, 0.15, 0.15 },
+ { -0.45, -0.1 , -0.1 , 0.45, 0.1 , 0.1 },
+ { 0.45, -0.15, -0.15, 0.5 , 0.15, 0.15 }},
+
+ {{ -0.5 , -0.15, -0.15, -0.45, 0.15, 0.15 }, -- 6-way crossing (all 3 axes)
+ { -0.45, -0.1 , -0.1 , 0.45, 0.1 , 0.1 },
+ { 0.45, -0.15, -0.15, 0.5 , 0.15, 0.15 },
+ { -0.15, -0.15, -0.5 , 0.15, 0.15, -0.45 },
+ { -0.1 , -0.1 , -0.45, 0.1 , 0.1 , 0.45 },
+ { -0.15, -0.15, 0.45, 0.15, 0.15, 0.5 },
+ { -0.15, -0.5 , -0.15, 0.15, -0.45, 0.15 },
+ { -0.1 , -0.45, -0.1 , 0.1 , 0.45, 0.1 },
+ { -0.15, 0.45, -0.15, 0.15, 0.5 , 0.15 }},
+
+ {{ -0.3 , -0.15, -0.15, -0.25, 0.15, 0.15 }, -- main center segment
+ { -0.25, -0.1 , -0.1 , 0.25, 0.1 , 0.1 },
+ { 0.25, -0.15, -0.15, 0.3 , 0.15, 0.15 }},
+
+ {{ -0.5, -0.15, -0.15, -0.45, 0.15, 0.15 }, -- anchored at -X
+ { -0.45, -0.1, -0.1, -0.2, 0.1, 0.1 },
+ { -0.2, -0.15, -0.15, -0.15, 0.15, 0.15 },
+ { -0.15, -0.12, -0.12, -0.1, 0.12, 0.12 },
+ { -0.1, -0.08, -0.08, -0.05, 0.08, 0.08 },
+ { -0.05, -0.04, -0.04, 0, 0.04, 0.04 }},
+
+ {{ 0.45, -0.15, -0.15, 0.5, 0.15, 0.15 }, -- anchored at +X
+ { 0.2, -0.1, -0.1, 0.45, 0.1, 0.1 },
+ { 0.15, -0.15, -0.15, 0.2, 0.15, 0.15 },
+ { 0.1, -0.12, -0.12, 0.15, 0.12, 0.12 },
+ { 0.05, -0.08, -0.08, 0.1, 0.08, 0.08 },
+ { 0, -0.04, -0.04, 0.05, 0.04, 0.04 }},
+
+ {{ -0.15, -0.5, -0.15, 0.15, -0.45, 0.15 }, -- anchored at -Y
+ { -0.1, -0.45, -0.1, 0.1, -0.2, 0.1 },
+ { -0.15, -0.2, -0.15, 0.15, -0.15, 0.15 },
+ { -0.12, -0.15, -0.12, 0.12, -0.1, 0.12 },
+ { -0.08, -0.1, -0.08, 0.08, -0.05, 0.08 },
+ { -0.04, -0.05, -0.04, 0.04, 0, 0.04 }},
+
+ {{ -0.15, 0.45, -0.15, 0.15, 0.5, 0.15 }, -- anchored at +Y
+ { -0.1, 0.2, -0.1, 0.1, 0.45, 0.1 },
+ { -0.15, 0.15, -0.15, 0.15, 0.2, 0.15 },
+ { -0.12, 0.1, -0.12, 0.12, 0.15, 0.12 },
+ { -0.08, 0.05, -0.08, 0.08, 0.1, 0.08 } ,
+ { -0.04, 0, -0.04, 0.04, 0.05, 0.04 }},
+
+ {{ -0.15, -0.15, -0.5, 0.15, 0.15, -0.45 }, -- anchored at -Z
+ { -0.1, -0.1, -0.45, 0.1, 0.1, -0.2 },
+ { -0.15, -0.15, -0.2, 0.15, 0.15, -0.15 },
+ { -0.12, -0.12, -0.15, 0.12, 0.12, -0.1 },
+ { -0.08, -0.08, -0.1, 0.08, 0.08, -0.05 },
+ { -0.04, -0.04, -0.05, 0.04, 0.04, 0 }},
+
+ {{ -0.15, -0.15, 0.45, 0.15, 0.15, 0.5 }, -- anchored at +Z
+ { -0.1, -0.1, 0.2, 0.1, 0.1, 0.45 },
+ { -0.15, -0.15, 0.15, 0.15, 0.15, 0.2 },
+ { -0.12, -0.12, 0.1, 0.12, 0.12, 0.15 },
+ { -0.08, -0.08, 0.05, 0.08, 0.08, 0.1 },
+ { -0.04, -0.04, 0, 0.04, 0.04, 0.05 }},
+}
+
+function fix_image_names(node, replacement)
+ outtable={}
+ for i in ipairs(nodeimages[node]) do
+ outtable[i]=string.gsub(nodeimages[node][i], "_XXXXX", replacement)
+ end
+
+ return outtable
+end
+
+-- Now define the actual nodes
+
+for node in ipairs(nodenames) do
+
+ if node ~= 2 then
+ pgroups = {snappy=3, pipe=1, not_in_creative_inventory=1}
+ else
+ pgroups = {snappy=3, pipe=1}
+ end
+
+ minetest.register_node("pipeworks:"..nodenames[node], {
+ description = "Empty Pipe ("..descriptions[node]..")",
+ drawtype = "nodebox",
+ tiles = fix_image_names(node, "_empty"),
+ paramtype = "light",
+ paramtype2 = "facedir",
+ selection_box = {
+ type = "fixed",
+ fixed = selectionboxes[node],
+ },
+ node_box = {
+ type = "fixed",
+ fixed = nodeboxes[node]
+ },
+ groups = pgroups,
+ sounds = default.node_sound_wood_defaults(),
+ walkable = true,
+ stack_max = 99,
+ drop = "pipeworks:pipe"
+ })
+
+ minetest.register_node("pipeworks:"..nodenames[node].."_loaded", {
+ description = "Loaded Pipe ("..descriptions[node]..")",
+ drawtype = "nodebox",
+ tiles = fix_image_names(node, "_loaded"),
+ paramtype = "light",
+ paramtype2 = "facedir",
+ selection_box = {
+ type = "fixed",
+ fixed = selectionboxes[node],
+ },
+ node_box = {
+ type = "fixed",
+ fixed = nodeboxes[node]
+ },
+ groups = {snappy=3, pipe=1, not_in_creative_inventory=1},
+ sounds = default.node_sound_wood_defaults(),
+ walkable = true,
+ stack_max = 99,
+ drop = "pipeworks:pipe"
+ })
+end
+
diff --git a/technic/pipeworks/textures/pipeworks_intake_sides.png b/technic/pipeworks/textures/pipeworks_intake_sides.png
new file mode 100644
index 0000000..5237f0e
--- /dev/null
+++ b/technic/pipeworks/textures/pipeworks_intake_sides.png
Binary files differ
diff --git a/technic/pipeworks/textures/pipeworks_intake_top.png b/technic/pipeworks/textures/pipeworks_intake_top.png
new file mode 100644
index 0000000..3ca91a8
--- /dev/null
+++ b/technic/pipeworks/textures/pipeworks_intake_top.png
Binary files differ
diff --git a/technic/pipeworks/textures/pipeworks_outlet_sides.png b/technic/pipeworks/textures/pipeworks_outlet_sides.png
new file mode 100644
index 0000000..fa85d0c
--- /dev/null
+++ b/technic/pipeworks/textures/pipeworks_outlet_sides.png
Binary files differ
diff --git a/technic/pipeworks/textures/pipeworks_outlet_top.png b/technic/pipeworks/textures/pipeworks_outlet_top.png
new file mode 100644
index 0000000..7de76de
--- /dev/null
+++ b/technic/pipeworks/textures/pipeworks_outlet_top.png
Binary files differ
diff --git a/technic/pipeworks/textures/pipeworks_pipe_end.png b/technic/pipeworks/textures/pipeworks_pipe_end.png
new file mode 100644
index 0000000..cb0e4b9
--- /dev/null
+++ b/technic/pipeworks/textures/pipeworks_pipe_end.png
Binary files differ
diff --git a/technic/pipeworks/textures/pipeworks_pipe_end_empty.png b/technic/pipeworks/textures/pipeworks_pipe_end_empty.png
new file mode 100644
index 0000000..400a85b
--- /dev/null
+++ b/technic/pipeworks/textures/pipeworks_pipe_end_empty.png
Binary files differ
diff --git a/technic/pipeworks/textures/pipeworks_pipe_end_loaded.png b/technic/pipeworks/textures/pipeworks_pipe_end_loaded.png
new file mode 100644
index 0000000..5624b83
--- /dev/null
+++ b/technic/pipeworks/textures/pipeworks_pipe_end_loaded.png
Binary files differ
diff --git a/technic/pipeworks/textures/pipeworks_plain.png b/technic/pipeworks/textures/pipeworks_plain.png
new file mode 100644
index 0000000..3bd1b6a
--- /dev/null
+++ b/technic/pipeworks/textures/pipeworks_plain.png
Binary files differ
diff --git a/technic/pipeworks/textures/pipeworks_plastic_sheeting.png b/technic/pipeworks/textures/pipeworks_plastic_sheeting.png
new file mode 100644
index 0000000..810ea2a
--- /dev/null
+++ b/technic/pipeworks/textures/pipeworks_plastic_sheeting.png
Binary files differ
diff --git a/technic/pipeworks/textures/pipeworks_pump_ends.png b/technic/pipeworks/textures/pipeworks_pump_ends.png
new file mode 100644
index 0000000..a76aea1
--- /dev/null
+++ b/technic/pipeworks/textures/pipeworks_pump_ends.png
Binary files differ
diff --git a/technic/pipeworks/textures/pipeworks_pump_off.png b/technic/pipeworks/textures/pipeworks_pump_off.png
new file mode 100644
index 0000000..4705a9a
--- /dev/null
+++ b/technic/pipeworks/textures/pipeworks_pump_off.png
Binary files differ
diff --git a/technic/pipeworks/textures/pipeworks_pump_on.png b/technic/pipeworks/textures/pipeworks_pump_on.png
new file mode 100644
index 0000000..4f35b08
--- /dev/null
+++ b/technic/pipeworks/textures/pipeworks_pump_on.png
Binary files differ
diff --git a/technic/pipeworks/textures/pipeworks_pump_sides.png b/technic/pipeworks/textures/pipeworks_pump_sides.png
new file mode 100644
index 0000000..14129f7
--- /dev/null
+++ b/technic/pipeworks/textures/pipeworks_pump_sides.png
Binary files differ
diff --git a/technic/pipeworks/textures/pipeworks_pump_top_x.png b/technic/pipeworks/textures/pipeworks_pump_top_x.png
new file mode 100644
index 0000000..9228bdd
--- /dev/null
+++ b/technic/pipeworks/textures/pipeworks_pump_top_x.png
Binary files differ
diff --git a/technic/pipeworks/textures/pipeworks_pump_top_z.png b/technic/pipeworks/textures/pipeworks_pump_top_z.png
new file mode 100644
index 0000000..45837e7
--- /dev/null
+++ b/technic/pipeworks/textures/pipeworks_pump_top_z.png
Binary files differ
diff --git a/technic/pipeworks/textures/pipeworks_storage_tank_back.png b/technic/pipeworks/textures/pipeworks_storage_tank_back.png
new file mode 100644
index 0000000..aeecdf9
--- /dev/null
+++ b/technic/pipeworks/textures/pipeworks_storage_tank_back.png
Binary files differ
diff --git a/technic/pipeworks/textures/pipeworks_storage_tank_fittings.png b/technic/pipeworks/textures/pipeworks_storage_tank_fittings.png
new file mode 100644
index 0000000..2460b86
--- /dev/null
+++ b/technic/pipeworks/textures/pipeworks_storage_tank_fittings.png
Binary files differ
diff --git a/technic/pipeworks/textures/pipeworks_storage_tank_front_0.png b/technic/pipeworks/textures/pipeworks_storage_tank_front_0.png
new file mode 100644
index 0000000..9118285
--- /dev/null
+++ b/technic/pipeworks/textures/pipeworks_storage_tank_front_0.png
Binary files differ
diff --git a/technic/pipeworks/textures/pipeworks_storage_tank_front_1.png b/technic/pipeworks/textures/pipeworks_storage_tank_front_1.png
new file mode 100644
index 0000000..cebd8ef
--- /dev/null
+++ b/technic/pipeworks/textures/pipeworks_storage_tank_front_1.png
Binary files differ
diff --git a/technic/pipeworks/textures/pipeworks_storage_tank_front_10.png b/technic/pipeworks/textures/pipeworks_storage_tank_front_10.png
new file mode 100644
index 0000000..7d1e54e
--- /dev/null
+++ b/technic/pipeworks/textures/pipeworks_storage_tank_front_10.png
Binary files differ
diff --git a/technic/pipeworks/textures/pipeworks_storage_tank_front_2.png b/technic/pipeworks/textures/pipeworks_storage_tank_front_2.png
new file mode 100644
index 0000000..14babe7
--- /dev/null
+++ b/technic/pipeworks/textures/pipeworks_storage_tank_front_2.png
Binary files differ
diff --git a/technic/pipeworks/textures/pipeworks_storage_tank_front_3.png b/technic/pipeworks/textures/pipeworks_storage_tank_front_3.png
new file mode 100644
index 0000000..f479797
--- /dev/null
+++ b/technic/pipeworks/textures/pipeworks_storage_tank_front_3.png
Binary files differ
diff --git a/technic/pipeworks/textures/pipeworks_storage_tank_front_4.png b/technic/pipeworks/textures/pipeworks_storage_tank_front_4.png
new file mode 100644
index 0000000..08e1092
--- /dev/null
+++ b/technic/pipeworks/textures/pipeworks_storage_tank_front_4.png
Binary files differ
diff --git a/technic/pipeworks/textures/pipeworks_storage_tank_front_5.png b/technic/pipeworks/textures/pipeworks_storage_tank_front_5.png
new file mode 100644
index 0000000..8ba4374
--- /dev/null
+++ b/technic/pipeworks/textures/pipeworks_storage_tank_front_5.png
Binary files differ
diff --git a/technic/pipeworks/textures/pipeworks_storage_tank_front_6.png b/technic/pipeworks/textures/pipeworks_storage_tank_front_6.png
new file mode 100644
index 0000000..1647011
--- /dev/null
+++ b/technic/pipeworks/textures/pipeworks_storage_tank_front_6.png
Binary files differ
diff --git a/technic/pipeworks/textures/pipeworks_storage_tank_front_7.png b/technic/pipeworks/textures/pipeworks_storage_tank_front_7.png
new file mode 100644
index 0000000..3ec4f4a
--- /dev/null
+++ b/technic/pipeworks/textures/pipeworks_storage_tank_front_7.png
Binary files differ
diff --git a/technic/pipeworks/textures/pipeworks_storage_tank_front_8.png b/technic/pipeworks/textures/pipeworks_storage_tank_front_8.png
new file mode 100644
index 0000000..0bd0f3f
--- /dev/null
+++ b/technic/pipeworks/textures/pipeworks_storage_tank_front_8.png
Binary files differ
diff --git a/technic/pipeworks/textures/pipeworks_storage_tank_front_9.png b/technic/pipeworks/textures/pipeworks_storage_tank_front_9.png
new file mode 100644
index 0000000..d24c425
--- /dev/null
+++ b/technic/pipeworks/textures/pipeworks_storage_tank_front_9.png
Binary files differ
diff --git a/technic/pipeworks/textures/pipeworks_testobject.png b/technic/pipeworks/textures/pipeworks_testobject.png
new file mode 100644
index 0000000..38f85b7
--- /dev/null
+++ b/technic/pipeworks/textures/pipeworks_testobject.png
Binary files differ
diff --git a/technic/pipeworks/textures/pipeworks_tube_end.png b/technic/pipeworks/textures/pipeworks_tube_end.png
new file mode 100644
index 0000000..e5d7be6
--- /dev/null
+++ b/technic/pipeworks/textures/pipeworks_tube_end.png
Binary files differ
diff --git a/technic/pipeworks/textures/pipeworks_tube_inv.png b/technic/pipeworks/textures/pipeworks_tube_inv.png
new file mode 100644
index 0000000..6646ca1
--- /dev/null
+++ b/technic/pipeworks/textures/pipeworks_tube_inv.png
Binary files differ
diff --git a/technic/pipeworks/textures/pipeworks_tube_noctr.png b/technic/pipeworks/textures/pipeworks_tube_noctr.png
new file mode 100644
index 0000000..a654bba
--- /dev/null
+++ b/technic/pipeworks/textures/pipeworks_tube_noctr.png
Binary files differ
diff --git a/technic/pipeworks/textures/pipeworks_tube_plain.png b/technic/pipeworks/textures/pipeworks_tube_plain.png
new file mode 100644
index 0000000..b2caab0
--- /dev/null
+++ b/technic/pipeworks/textures/pipeworks_tube_plain.png
Binary files differ
diff --git a/technic/pipeworks/textures/pipeworks_tube_short.png b/technic/pipeworks/textures/pipeworks_tube_short.png
new file mode 100644
index 0000000..8576b87
--- /dev/null
+++ b/technic/pipeworks/textures/pipeworks_tube_short.png
Binary files differ
diff --git a/technic/pipeworks/textures/pipeworks_tube_transparent.png b/technic/pipeworks/textures/pipeworks_tube_transparent.png
new file mode 100644
index 0000000..4b4ee1f
--- /dev/null
+++ b/technic/pipeworks/textures/pipeworks_tube_transparent.png
Binary files differ
diff --git a/technic/pipeworks/textures/pipeworks_valvebody_bottom.png b/technic/pipeworks/textures/pipeworks_valvebody_bottom.png
new file mode 100644
index 0000000..05f20e3
--- /dev/null
+++ b/technic/pipeworks/textures/pipeworks_valvebody_bottom.png
Binary files differ
diff --git a/technic/pipeworks/textures/pipeworks_valvebody_ends.png b/technic/pipeworks/textures/pipeworks_valvebody_ends.png
new file mode 100644
index 0000000..2bc3ecb
--- /dev/null
+++ b/technic/pipeworks/textures/pipeworks_valvebody_ends.png
Binary files differ
diff --git a/technic/pipeworks/textures/pipeworks_valvebody_sides.png b/technic/pipeworks/textures/pipeworks_valvebody_sides.png
new file mode 100644
index 0000000..989cbbc
--- /dev/null
+++ b/technic/pipeworks/textures/pipeworks_valvebody_sides.png
Binary files differ
diff --git a/technic/pipeworks/textures/pipeworks_valvebody_top_off.png b/technic/pipeworks/textures/pipeworks_valvebody_top_off.png
new file mode 100644
index 0000000..4ecd7fc
--- /dev/null
+++ b/technic/pipeworks/textures/pipeworks_valvebody_top_off.png
Binary files differ
diff --git a/technic/pipeworks/textures/pipeworks_valvebody_top_off_x.png b/technic/pipeworks/textures/pipeworks_valvebody_top_off_x.png
new file mode 100644
index 0000000..0ab4938
--- /dev/null
+++ b/technic/pipeworks/textures/pipeworks_valvebody_top_off_x.png
Binary files differ
diff --git a/technic/pipeworks/textures/pipeworks_valvebody_top_off_z.png b/technic/pipeworks/textures/pipeworks_valvebody_top_off_z.png
new file mode 100644
index 0000000..d645b2d
--- /dev/null
+++ b/technic/pipeworks/textures/pipeworks_valvebody_top_off_z.png
Binary files differ
diff --git a/technic/pipeworks/textures/pipeworks_valvebody_top_on.png b/technic/pipeworks/textures/pipeworks_valvebody_top_on.png
new file mode 100644
index 0000000..e36eb94
--- /dev/null
+++ b/technic/pipeworks/textures/pipeworks_valvebody_top_on.png
Binary files differ
diff --git a/technic/pipeworks/textures/pipeworks_valvebody_top_on_x.png b/technic/pipeworks/textures/pipeworks_valvebody_top_on_x.png
new file mode 100644
index 0000000..e2d33a0
--- /dev/null
+++ b/technic/pipeworks/textures/pipeworks_valvebody_top_on_x.png
Binary files differ
diff --git a/technic/pipeworks/textures/pipeworks_valvebody_top_on_z.png b/technic/pipeworks/textures/pipeworks_valvebody_top_on_z.png
new file mode 100644
index 0000000..7199797
--- /dev/null
+++ b/technic/pipeworks/textures/pipeworks_valvebody_top_on_z.png
Binary files differ
diff --git a/technic/pipeworks/textures/pipeworks_windowed_empty.png b/technic/pipeworks/textures/pipeworks_windowed_empty.png
new file mode 100644
index 0000000..ebd4486
--- /dev/null
+++ b/technic/pipeworks/textures/pipeworks_windowed_empty.png
Binary files differ
diff --git a/technic/pipeworks/textures/pipeworks_windowed_loaded.png b/technic/pipeworks/textures/pipeworks_windowed_loaded.png
new file mode 100644
index 0000000..91c4829
--- /dev/null
+++ b/technic/pipeworks/textures/pipeworks_windowed_loaded.png
Binary files differ
diff --git a/technic/pipeworks/tubes.lua b/technic/pipeworks/tubes.lua
new file mode 100644
index 0000000..7a05d92
--- /dev/null
+++ b/technic/pipeworks/tubes.lua
@@ -0,0 +1,217 @@
+-- This file supplies pneumatic tubes and a 'test' device
+
+minetest.register_node("pipeworks:testobject", {
+ description = "Pneumatic tube test ojbect",
+ tiles = {
+ "pipeworks_testobject.png",
+ },
+ paramtype = "light",
+ groups = {snappy=3, tubedevice=1},
+ sounds = default.node_sound_wood_defaults(),
+ walkable = true,
+ after_place_node = function(pos)
+ tube_scanforobjects(pos)
+ end,
+ after_dig_node = function(pos)
+ tube_scanforobjects(pos)
+ end,
+})
+
+-- tables
+
+minetest.register_alias("pipeworks:tube", "pipeworks:tube_000000")
+
+tube_leftstub = {
+ { -32/64, -9/64, -9/64, 9/64, 9/64, 9/64 }, -- tube segment against -X face
+}
+
+tube_rightstub = {
+ { -9/64, -9/64, -9/64, 32/64, 9/64, 9/64 }, -- tube segment against +X face
+}
+
+tube_bottomstub = {
+ { -9/64, -32/64, -9/64, 9/64, 9/64, 9/64 }, -- tube segment against -Y face
+}
+
+
+tube_topstub = {
+ { -9/64, -9/64, -9/64, 9/64, 32/64, 9/64 }, -- tube segment against +Y face
+}
+
+tube_frontstub = {
+ { -9/64, -9/64, -32/64, 9/64, 9/64, 9/64 }, -- tube segment against -Z face
+}
+
+tube_backstub = {
+ { -9/64, -9/64, -9/64, 9/64, 9/64, 32/64 }, -- tube segment against -Z face
+}
+
+tube_selectboxes = {
+ { -32/64, -10/64, -10/64, 10/64, 10/64, 10/64 },
+ { -10/64 , -10/64, -10/64, 32/64, 10/64, 10/64 },
+ { -10/64 , -32/64, -10/64, 10/64, 10/64, 10/64 },
+ { -10/64 , -10/64, -10/64, 10/64, 32/64, 10/64 },
+ { -10/64 , -10/64, -32/64, 10/64, 10/64, 10/64 },
+ { -10/64 , -10/64, -10/64, 10/64, 10/64, 32/64 }
+}
+
+-- Functions
+
+function tube_addbox(t, b)
+ for i in ipairs(b)
+ do table.insert(t, b[i])
+ end
+end
+
+-- now define the nodes!
+
+for xm = 0, 1 do
+for xp = 0, 1 do
+for ym = 0, 1 do
+for yp = 0, 1 do
+for zm = 0, 1 do
+for zp = 0, 1 do
+ local outboxes = {}
+ local outsel = {}
+ local outimgs = {}
+
+ if yp==1 then
+ tube_addbox(outboxes, tube_topstub)
+ table.insert(outsel, tube_selectboxes[4])
+ table.insert(outimgs, "pipeworks_tube_noctr.png")
+ else
+ table.insert(outimgs, "pipeworks_tube_plain.png")
+ end
+ if ym==1 then
+ tube_addbox(outboxes, tube_bottomstub)
+ table.insert(outsel, tube_selectboxes[3])
+ table.insert(outimgs, "pipeworks_tube_noctr.png")
+ else
+ table.insert(outimgs, "pipeworks_tube_plain.png")
+ end
+ if xp==1 then
+ tube_addbox(outboxes, tube_rightstub)
+ table.insert(outsel, tube_selectboxes[2])
+ table.insert(outimgs, "pipeworks_tube_noctr.png")
+ else
+ table.insert(outimgs, "pipeworks_tube_plain.png")
+ end
+ if xm==1 then
+ tube_addbox(outboxes, tube_leftstub)
+ table.insert(outsel, tube_selectboxes[1])
+ table.insert(outimgs, "pipeworks_tube_noctr.png")
+ else
+ table.insert(outimgs, "pipeworks_tube_plain.png")
+ end
+ if zp==1 then
+ tube_addbox(outboxes, tube_backstub)
+ table.insert(outsel, tube_selectboxes[6])
+ table.insert(outimgs, "pipeworks_tube_noctr.png")
+ else
+ table.insert(outimgs, "pipeworks_tube_plain.png")
+ end
+ if zm==1 then
+ tube_addbox(outboxes, tube_frontstub)
+ table.insert(outsel, tube_selectboxes[5])
+ table.insert(outimgs, "pipeworks_tube_noctr.png")
+ else
+ table.insert(outimgs, "pipeworks_tube_plain.png")
+ end
+
+ local jx = xp+xm
+ local jy = yp+ym
+ local jz = zp+zm
+
+ if (jx+jy+jz) == 1 then
+ if xm == 1 then
+ table.remove(outimgs, 3)
+ table.insert(outimgs, 3, "pipeworks_tube_end.png")
+ end
+ if xp == 1 then
+ table.remove(outimgs, 4)
+ table.insert(outimgs, 4, "pipeworks_tube_end.png")
+ end
+ if ym == 1 then
+ table.remove(outimgs, 1)
+ table.insert(outimgs, 1, "pipeworks_tube_end.png")
+ end
+ if xp == 1 then
+ table.remove(outimgs, 2)
+ table.insert(outimgs, 2, "pipeworks_tube_end.png")
+ end
+ if zm == 1 then
+ table.remove(outimgs, 5)
+ table.insert(outimgs, 5, "pipeworks_tube_end.png")
+ end
+ if zp == 1 then
+ table.remove(outimgs, 6)
+ table.insert(outimgs, 6, "pipeworks_tube_end.png")
+ end
+ end
+
+ local tname = xm..xp..ym..yp..zm..zp
+ local tgroups = ""
+
+ if tname ~= "000000" then
+ tgroups = {snappy=3, tube=1, not_in_creative_inventory=1}
+ tubedesc = "Pneumatic tube segment ("..tname..")... You hacker, you."
+ iimg=nil
+ wscale = {x=1,y=1,z=1}
+ else
+ tgroups = {snappy=3, tube=1}
+ tubedesc = "Pneumatic tube segment"
+ iimg="pipeworks_tube_inv.png"
+ outimgs = {
+ "pipeworks_tube_short.png",
+ "pipeworks_tube_short.png",
+ "pipeworks_tube_end.png",
+ "pipeworks_tube_end.png",
+ "pipeworks_tube_short.png",
+ "pipeworks_tube_short.png"
+ }
+ outboxes = { -24/64, -9/64, -9/64, 24/64, 9/64, 9/64 }
+ outsel = { -24/64, -10/64, -10/64, 24/64, 10/64, 10/64 }
+ wscale = {x=1,y=1,z=0.01}
+ end
+
+ minetest.register_node("pipeworks:tube_"..tname, {
+ description = tubedesc,
+ drawtype = "nodebox",
+ tiles = outimgs,
+ inventory_image=iimg,
+ wield_image=iimg,
+ wield_scale=wscale,
+ paramtype = "light",
+ selection_box = {
+ type = "fixed",
+ fixed = outsel
+ },
+ node_box = {
+ type = "fixed",
+ fixed = outboxes
+ },
+ groups = tgroups,
+ sounds = default.node_sound_wood_defaults(),
+ walkable = true,
+ stack_max = 99,
+ drop = "pipeworks:tube_000000",
+ tubelike=1,
+ on_construct = function(pos)
+ local meta = minetest.env:get_meta(pos)
+ meta:set_int("tubelike",1)
+ end,
+ after_place_node = function(pos)
+ tube_scanforobjects(pos)
+ end,
+ after_dig_node = function(pos)
+ tube_scanforobjects(pos)
+ end
+ })
+
+end
+end
+end
+end
+end
+end
+
diff --git a/alloy_furnace.lua b/technic/technic/alloy_furnace.lua
index fd0bc70..83496e1 100644
--- a/alloy_furnace.lua
+++ b/technic/technic/alloy_furnace.lua
@@ -19,6 +19,16 @@ alloy_recipes[registered_recipes_count].src2_count=count1
alloy_recipes[registered_recipes_count].dst_name=string3
alloy_recipes[registered_recipes_count].dst_count=count3
registered_recipes_count=registered_recipes_count+1
+if UI_recipes_hook then
+ minetest.register_craft({
+ type = "alloy",
+ output = string3.." "..count3,
+ recipe = {
+ {string1.." "..count1},
+ {string2.." "..count2},
+ }
+ })
+ end
end
register_alloy_recipe ("technic:copper_dust",3, "technic:tin_dust",1, "technic:bronze_dust",4)
@@ -26,7 +36,7 @@ register_alloy_recipe ("moreores:copper_ingot",3, "moreores:tin_ingot",1, "moreo
register_alloy_recipe ("technic:iron_dust",3, "technic:chromium_dust",1, "technic:stainless_steel_dust",4)
register_alloy_recipe ("default:steel_ingot",3, "technic:chromium_ingot",1, "technic:stainless_steel_ingot",4)
register_alloy_recipe ("technic:copper_dust",2, "technic:zinc_dust",1, "technic:brass_dust",3)
-register_alloy_recipe ("technic:copper_ingot",2, "technic:zinc_ingot",1, "technic:brass_ingot",3)
+register_alloy_recipe ("moreores:copper_ingot",2, "technic:zinc_ingot",1, "technic:brass_ingot",3)
register_alloy_recipe ("default:sand",2, "technic:coal_dust",2, "technic:silicon_wafer",1)
register_alloy_recipe ("technic:silicon_wafer",1, "technic:mithril_dust",1, "technic:doped_silicon_wafer",1)
@@ -421,4 +431,4 @@ minetest.register_abm({
inv:set_stack("fuel", 1, stack)
end,
-}) \ No newline at end of file
+})
diff --git a/battery_box.lua b/technic/technic/battery_box.lua
index f5827a4..f5827a4 100644
--- a/battery_box.lua
+++ b/technic/technic/battery_box.lua
diff --git a/battery_box_mv.lua b/technic/technic/battery_box_mv.lua
index 6288589..ae448e0 100644
--- a/battery_box_mv.lua
+++ b/technic/technic/battery_box_mv.lua
@@ -206,7 +206,7 @@ minetest.register_abm({
MV_nodes[1].y=pos1.y
MV_nodes[1].z=pos1.z
MV_nodes[1].visited=false
-
+
table_index=1
repeat
check_MV_node (PR_nodes,RE_nodes,MV_nodes,table_index)
@@ -318,4 +318,4 @@ meta = minetest.env:get_meta(pos1)
if meta:get_float("mv_cablelike")==1 then new_node_added=add_new_MVcable_node(MV_nodes,pos1) end
if minetest.env:get_node(pos1).name == "technic:solar_panel_mv" then new_node_added=add_new_MVcable_node(PR_nodes,pos1) end
end
- \ No newline at end of file
+
diff --git a/cans.lua b/technic/technic/cans.lua
index 2809498..d50a621 100644
--- a/cans.lua
+++ b/technic/technic/cans.lua
@@ -29,33 +29,32 @@ minetest.register_tool("technic:water_can", {
if pointed_thing.type ~= "node" then
return end
-
n = minetest.env:get_node(pointed_thing.under)
+
+ item=itemstack:to_table()
+ local load=nil
+ if item["metadata"]=="" then load=0
+ else load=tonumber(item["metadata"])
+ end
+
if n.name == "default:water_source" then
- item=itemstack:to_table()
- local load=tonumber((item["wear"]))
- if load==0 then load =65535 end
- load=get_RE_item_load(load,water_can_max_load)
if load+1<17 then
minetest.env:add_node(pointed_thing.under, {name="air"})
load=load+1;
- load=set_RE_item_load(load,water_can_max_load)
- item["wear"]=tostring(load)
+ item["metadata"]=tostring(load)
+ set_RE_wear(item,load,water_can_max_load)
itemstack:replace(item)
end
return itemstack
end
item=itemstack:to_table()
- load=tonumber((item["wear"]))
- if load==0 then load =65535 end
- load=get_RE_item_load(load,water_can_max_load)
- if load==0 then return end
+ if load==0 then return end
if n.name == "default:water_flowing" then
minetest.env:add_node(pointed_thing.under, {name="default:water_source"})
load=load-1;
- load=set_RE_item_load(load,water_can_max_load)
- item["wear"]=tostring(load)
+ item["metadata"]=tostring(load)
+ set_RE_wear(item,load,water_can_max_load)
itemstack:replace(item)
return itemstack
end
@@ -64,8 +63,8 @@ minetest.register_tool("technic:water_can", {
if n.name == "air" then
minetest.env:add_node(pointed_thing.above, {name="default:water_source"})
load=load-1;
- load=set_RE_item_load(load,water_can_max_load)
- item["wear"]=tostring(load)
+ item["metadata"]=tostring(load)
+ set_RE_wear(item,load,water_can_max_load)
itemstack:replace(item)
return itemstack
end
@@ -78,7 +77,45 @@ minetest.register_tool("technic:lava_can", {
stack_max = 1,
liquids_pointable = true,
on_use = function(itemstack, user, pointed_thing)
+
+ item=itemstack:to_table()
+ local load=nil
+ if item["metadata"]=="" then load=0
+ else load=tonumber(item["metadata"])
+ end
+ if n.name == "default:water_source" then
+ if load+1<17 then
+ minetest.env:add_node(pointed_thing.under, {name="air"})
+ load=load+1;
+ item["metadata"]=tostring(load)
+ set_RE_wear(item,load,water_can_max_load)
+ itemstack:replace(item)
+ end
+ return itemstack
+ end
+ item=itemstack:to_table()
+ if load==0 then return end
+
+ if n.name == "default:lava_flowing" then
+ minetest.env:add_node(pointed_thing.under, {name="default:lava_source"})
+ load=load-1;
+ item["metadata"]=tostring(load)
+ set_RE_wear(item,load,water_can_max_load)
+ itemstack:replace(item)
+ return itemstack
+ end
+
+ n = minetest.env:get_node(pointed_thing.above)
+ if n.name == "air" then
+ minetest.env:add_node(pointed_thing.above, {name="default:lava_source"})
+ load=load-1;
+ item["metadata"]=tostring(load)
+ set_RE_wear(item,load,water_can_max_load)
+ itemstack:replace(item)
+ return itemstack
+ end
+
if pointed_thing.type ~= "node" then
return end
diff --git a/chainsaw.lua b/technic/technic/chainsaw.lua
index 9f69fd9..9970935 100644
--- a/chainsaw.lua
+++ b/technic/technic/chainsaw.lua
@@ -26,7 +26,7 @@ minetest.register_craft({
output = 'technic:chainsaw',
recipe = {
{'technic:stainless_steel_ingot', 'technic:stainless_steel_ingot', 'technic:battery'},
- {'technic:stainless_steel_ingot', 'technic:stainless_steel_ingot', 'technic:battery'},
+ {'technic:stainless_steel_ingot', 'technic:motor', 'technic:battery'},
{'','','moreores:copper_ingot'},
}
})
diff --git a/concrete.lua b/technic/technic/concrete.lua
index 0a480a0..6d031d9 100644
--- a/concrete.lua
+++ b/technic/technic/concrete.lua
@@ -71,4 +71,13 @@ minetest.register_node("technic:concrete_post", {
groups = {cracky=1},
sounds = default.node_sound_stone_defaults(),
-}) \ No newline at end of file
+})
+
+stairsplus.register_stair_and_slab_and_panel_and_micro("concrete", "technic:concrete",
+ {cracky=3},
+ {"technic_concrete_block.png"},
+ "Concrete Stairs",
+ "Concrete Slab",
+ "Concrete Panel",
+ "Concrete Microblock",
+ "concrete")
diff --git a/technic/technic/config.lua b/technic/technic/config.lua
new file mode 100644
index 0000000..3fa1282
--- /dev/null
+++ b/technic/technic/config.lua
@@ -0,0 +1,10 @@
+enable_item_drop=false
+enable_item_pickup=true
+enable_technic_inventory=true
+enable_mining_drill=true
+enable_mining_laser=true
+enable_flashlight=true
+enable_rubber_tree_generation=true
+enable_marble_generation=true
+enable_granite_generation=true
+enable_obsidian_generation=true
diff --git a/constructor.lua b/technic/technic/constructor.lua
index 1e58408..1e58408 100644
--- a/constructor.lua
+++ b/technic/technic/constructor.lua
diff --git a/copper_chest.lua b/technic/technic/copper_chest.lua
index cf1ae06..cf1ae06 100644
--- a/copper_chest.lua
+++ b/technic/technic/copper_chest.lua
diff --git a/technic/technic/creative.lua b/technic/technic/creative.lua
new file mode 100644
index 0000000..7b4c493
--- /dev/null
+++ b/technic/technic/creative.lua
@@ -0,0 +1,21 @@
+technic.creative_inventory_size = 0
+technic.creative_list = {}
+
+-- Create detached creative inventory after loading all mods
+minetest.after(0, function()
+ local inv = minetest.create_detached_inventory("technic_creative", {})
+ technic.creative_list = {}
+ for name,def in pairs(minetest.registered_items) do
+ if (not def.groups.not_in_creative_inventory or def.groups.not_in_creative_inventory == 0)
+ and def.description and def.description ~= "" then
+ table.insert(technic.creative_list, name)
+ end
+ end
+ table.sort(technic.creative_list)
+ --inv:set_size("main", #technic.creative_list)
+ --for _,itemstring in ipairs(technic.creative_list) do
+ -- local stack = ItemStack(itemstring)
+ -- inv:add_item("main", stack)
+ --end
+ --technic.creative_inventory_size = #technic.creative_list
+end)
diff --git a/depends.txt b/technic/technic/depends.txt
index bfbfdf1..8f4edab 100644
--- a/depends.txt
+++ b/technic/technic/depends.txt
@@ -2,4 +2,4 @@ moreores
flowers
pipeworks
mesecons
-farming
+stairsplus
diff --git a/deployer.lua b/technic/technic/deployer.lua
index ce3b735..ce3b735 100644
--- a/deployer.lua
+++ b/technic/technic/deployer.lua
diff --git a/electric.lua b/technic/technic/electric.lua
index 2eb2bf3..2eb2bf3 100644
--- a/electric.lua
+++ b/technic/technic/electric.lua
diff --git a/electric_furnace.lua b/technic/technic/electric_furnace.lua
index 6563efb..ab56bdb 100644
--- a/electric_furnace.lua
+++ b/technic/technic/electric_furnace.lua
@@ -107,8 +107,9 @@ minetest.register_abm({
local load = math.floor(internal_EU_buffer/2000 * 100)
meta:set_string("formspec",
"invsize[8,9;]"..
+ "background[-1,-1;10,11;technic_electric_furnace_GUI.png]"..
"image[1,1;1,2;technic_power_meter_bg.png^[lowpart:"..
- (load)..":technic_power_meter_fg.png]"..
+ (load)..":technic_power_meter_fg.png]"..
"list[current_name;src;3,1;1,1;]"..
"list[current_name;dst;5,1;2,2;]"..
"list[current_player;main;0,5;8,4;]"..
diff --git a/flashlight.lua b/technic/technic/flashlight.lua
index c9901d1..460cc21 100644
--- a/flashlight.lua
+++ b/technic/technic/flashlight.lua
@@ -13,7 +13,7 @@ flashlight_max_charge=30000
minetest.register_craft({
output = "technic:flashlight",
recipe = {
- {"glass","glass","glass"},
+ {"technic:rubber","glass","technic:rubber"},
{"technic:stainless_steel_ingot","technic:battery","technic:stainless_steel_ingot"},
{"","technic:battery",""}
}
diff --git a/technic/technic/flashlight_old.lua b/technic/technic/flashlight_old.lua
new file mode 100644
index 0000000..8a2c338
--- /dev/null
+++ b/technic/technic/flashlight_old.lua
@@ -0,0 +1,176 @@
+-- original code comes from walkin_light mod by Echo http://minetest.net/forum/viewtopic.php?id=2621
+
+flashlight_max_charge=30000
+
+ minetest.register_tool("technic:flashlight", {
+ description = "Flashlight",
+ inventory_image = "technic_flashlight.png",
+ stack_max = 1,
+ on_use = function(itemstack, user, pointed_thing)
+ end,
+ })
+
+ minetest.register_craft({
+ output = "technic:flashlight",
+ recipe = {
+ {"glass","glass","glass"},
+ {"technic:stainless_steel_ingot","technic:battery","technic:stainless_steel_ingot"},
+ {"","technic:battery",""}
+ }
+ })
+local players = {}
+local player_positions = {}
+local last_wielded = {}
+
+function round(num)
+ return math.floor(num + 0.5)
+end
+
+minetest.register_on_joinplayer(function(player)
+ local player_name = player:get_player_name()
+ table.insert(players, player_name)
+ last_wielded[player_name] = flashlight_weared(player)
+ local pos = player:getpos()
+ local rounded_pos = {x=round(pos.x),y=round(pos.y)+1,z=round(pos.z)}
+ local wielded_item = player:get_wielded_item():get_name()
+ if flashlight_weared(player)==true then
+ -- Neuberechnung des Lichts erzwingen
+ minetest.env:add_node(rounded_pos,{type="node",name="technic:light_off"})
+ minetest.env:add_node(rounded_pos,{type="node",name="air"})
+ end
+ player_positions[player_name] = {}
+ player_positions[player_name]["x"] = rounded_pos.x;
+ player_positions[player_name]["y"] = rounded_pos.y;
+ player_positions[player_name]["z"] = rounded_pos.z;
+end)
+
+minetest.register_on_leaveplayer(function(player)
+ local player_name = player:get_player_name()
+ for i,v in ipairs(players) do
+ if v == player_name then
+ table.remove(players, i)
+ last_wielded[player_name] = nil
+ -- Neuberechnung des Lichts erzwingen
+ local pos = player:getpos()
+ local rounded_pos = {x=round(pos.x),y=round(pos.y)+1,z=round(pos.z)}
+ minetest.env:add_node(rounded_pos,{type="node",name="technic:light_off"})
+ minetest.env:add_node(rounded_pos,{type="node",name="air"})
+ player_positions[player_name]["x"] = nil
+ player_positions[player_name]["y"] = nil
+ player_positions[player_name]["z"] = nil
+ player_positions[player_name]["m"] = nil
+ player_positions[player_name] = nil
+ end
+ end
+end)
+
+minetest.register_globalstep(function(dtime)
+ for i,player_name in ipairs(players) do
+ local player = minetest.env:get_player_by_name(player_name)
+ if flashlight_weared(player)==true then
+ -- Fackel ist in der Hand
+ local pos = player:getpos()
+ local rounded_pos = {x=round(pos.x),y=round(pos.y)+1,z=round(pos.z)}
+ if (last_wielded[player_name] ~= true) or (player_positions[player_name]["x"] ~= rounded_pos.x or player_positions[player_name]["y"] ~= rounded_pos.y or player_positions[player_name]["z"] ~= rounded_pos.z) then
+ -- Fackel gerade in die Hand genommen oder zu neuem Node bewegt
+ local is_air = minetest.env:get_node_or_nil(rounded_pos)
+ if is_air == nil or (is_air ~= nil and (is_air.name == "air" or is_air.name == "technic:light")) then
+ -- wenn an aktueller Position "air" ist, Fackellicht setzen
+ minetest.env:add_node(rounded_pos,{type="node",name="technic:light"})
+ end
+ if (player_positions[player_name]["x"] ~= rounded_pos.x or player_positions[player_name]["y"] ~= rounded_pos.y or player_positions[player_name]["z"] ~= rounded_pos.z) then
+ -- wenn Position geänder, dann altes Licht löschen
+ local old_pos = {x=player_positions[player_name]["x"], y=player_positions[player_name]["y"], z=player_positions[player_name]["z"]}
+ -- Neuberechnung des Lichts erzwingen
+ local is_light = minetest.env:get_node_or_nil(old_pos)
+ if is_light ~= nil and is_light.name == "technic:light" then
+ minetest.env:add_node(old_pos,{type="node",name="technic:light_off"})
+ minetest.env:add_node(old_pos,{type="node",name="air"})
+ end
+ end
+ -- gemerkte Position ist nun die gerundete neue Position
+ player_positions[player_name]["x"] = rounded_pos.x
+ player_positions[player_name]["y"] = rounded_pos.y
+ player_positions[player_name]["z"] = rounded_pos.z
+ end
+
+ last_wielded[player_name] = true;
+ elseif last_wielded[player_name] == true then
+ -- Fackel nicht in der Hand, aber beim letzten Durchgang war die Fackel noch in der Hand
+ local pos = player:getpos()
+ local rounded_pos = {x=round(pos.x),y=round(pos.y)+1,z=round(pos.z)}
+ repeat
+ local is_light = minetest.env:get_node_or_nil(rounded_pos)
+ if is_light ~= nil and is_light.name == "technic:light" then
+ -- minetest.env:remove_node(rounded_pos)
+ -- Erzwinge Neuberechnung des Lichts
+ minetest.env:add_node(rounded_pos,{type="node",name="technic:light_off"})
+ minetest.env:add_node(rounded_pos,{type="node",name="air"})
+ end
+ until minetest.env:get_node_or_nil(rounded_pos) ~= "technic:light"
+ local old_pos = {x=player_positions[player_name]["x"], y=player_positions[player_name]["y"], z=player_positions[player_name]["z"]}
+ repeat
+ is_light = minetest.env:get_node_or_nil(old_pos)
+ if is_light ~= nil and is_light.name == "technic:light" then
+ -- minetest.env:remove_node(old_pos)
+ -- Erzwinge Neuberechnung des Lichts
+ minetest.env:add_node(old_pos,{type="node",name="technic:light_off"})
+ minetest.env:add_node(old_pos,{type="node",name="air"})
+ end
+ until minetest.env:get_node_or_nil(old_pos) ~= "technic:light"
+ last_wielded[player_name] = true
+ end
+ end
+end)
+
+minetest.register_node("technic:light", {
+ drawtype = "glasslike",
+ tile_images = {"technic_light.png"},
+ paramtype = "light",
+ walkable = false,
+ is_ground_content = true,
+ light_propagates = true,
+ sunlight_propagates = true,
+ light_source = 15,
+ selection_box = {
+ type = "fixed",
+ fixed = {0, 0, 0, 0, 0, 0},
+ },
+})
+minetest.register_node("technic:light_off", {
+ drawtype = "glasslike",
+ tile_images = {"technic_light.png"},
+ paramtype = "light",
+ walkable = false,
+ is_ground_content = true,
+ light_propagates = true,
+ sunlight_propagates = true,
+ selection_box = {
+ type = "fixed",
+ fixed = {0, 0, 0, 0, 0, 0},
+ },
+})
+
+function flashlight_weared (player)
+flashlight_on=false
+local inv = player:get_inventory()
+local hotbar=inv:get_list("main")
+ for i=1,8,1 do
+
+ if hotbar[i]:get_name() == "technic:flashlight" then
+ item=hotbar[i]:to_table()
+ if item["metadata"]=="" or item["metadata"]=="0" then return flashlight_on end --flashlight not charghed
+ charge=tonumber(item["metadata"])
+ if charge-2>0 then
+ flashlight_on=true
+ charge =charge-2;
+ set_RE_wear(item,charge,flashlight_max_charge)
+ item["metadata"]=tostring(charge)
+ hotbar[i]:replace(item)
+ inv:set_stack("main",i,hotbar[i])
+ return true
+ end
+ end
+ end
+return flashlight_on
+end \ No newline at end of file
diff --git a/generator.lua b/technic/technic/generator.lua
index c8ac802..c8ac802 100644
--- a/generator.lua
+++ b/technic/technic/generator.lua
diff --git a/geothermal.lua b/technic/technic/geothermal.lua
index 8f3a7d7..8f3a7d7 100644
--- a/geothermal.lua
+++ b/technic/technic/geothermal.lua
diff --git a/gold_chest.lua b/technic/technic/gold_chest.lua
index 29f1666..29f1666 100644
--- a/gold_chest.lua
+++ b/technic/technic/gold_chest.lua
diff --git a/grinder.lua b/technic/technic/grinder.lua
index 40c068a..686ffd3 100644
--- a/grinder.lua
+++ b/technic/technic/grinder.lua
@@ -7,6 +7,13 @@ grinder_recipes[registered_grinder_recipes_count]={}
grinder_recipes[registered_grinder_recipes_count].src_name=string1
grinder_recipes[registered_grinder_recipes_count].dst_name=string2
registered_grinder_recipes_count=registered_grinder_recipes_count+1
+if UI_recipes_hook then
+ minetest.register_craft({
+ type = "grinding",
+ output = string2,
+ recipe = string1,
+ })
+ end
end
register_grinder_recipe("default:stone","default:sand")
@@ -32,7 +39,6 @@ register_grinder_recipe("flowers:flower_tulip","dye:orange 2")
register_grinder_recipe("flowers:flower_rose","dye:red 2")
register_grinder_recipe("flowers:flower_viola","dye:violet 2")
-
minetest.register_craftitem( "technic:coal_dust", {
description = "Coal Dust",
inventory_image = "technic_coal_dust.png",
@@ -317,4 +323,4 @@ if grinder_recipes[i].src_name==item_name then return ItemStack(grinder_recipes[
end
return nil
-end \ No newline at end of file
+end
diff --git a/technic/technic/grinder_gloopores.lua b/technic/technic/grinder_gloopores.lua
new file mode 100644
index 0000000..0c58c98
--- /dev/null
+++ b/technic/technic/grinder_gloopores.lua
@@ -0,0 +1,55 @@
+register_grinder_recipe("gloopores:alatro_lump","technic:alatro_dust 2")
+register_grinder_recipe("gloopores:kalite_lump","technic:kalite_dust 2")
+register_grinder_recipe("gloopores:arol_lump","technic:arol_dust 2")
+register_grinder_recipe("gloopores:talinite_lump","technic:talinite_dust 2")
+register_grinder_recipe("gloopores:akalin_lump","technic:akalin_dust 2")
+ 
+minetest.register_craftitem("technic:alatro_dust", {
+        description = "Alatro Dust",
+        inventory_image = "technic_alatro_dust.png",
+})
+ 
+minetest.register_craft({
+    type = "cooking",
+    output = "gloopores:alatro_ingot",
+    recipe = "technic:alatro_dust",
+})
+ 
+minetest.register_craftitem("technicplus:arol_dust", {
+        description = "Arol Dust",
+        inventory_image = "technic_arol_dust.png",
+})
+ 
+minetest.register_craft({
+    type = "cooking",
+    output = "gloopores:arol_ingot",
+    recipe = "technic:arol_dust",
+})
+ 
+minetest.register_craftitem("technic:talinite_dust", {
+        description = "Talinite Dust",
+        inventory_image = "technic_talinite_dust.png",
+})
+ 
+minetest.register_craft({
+    type = "cooking",
+    output = "gloopores:talinite_ingot",
+    recipe = "technic:talinite_dust",
+})
+ 
+minetest.register_craftitem("technic:akalin_dust", {
+        description = "Akalin Dust",
+        inventory_image = "technic_akalin_dust.png",
+})
+ 
+minetest.register_craft({
+    type = "cooking",
+    output = "gloopores:akalin_ingot",
+    recipe = "technic:akalin_dust",
+})
+ 
+minetest.register_craftitem("technic:kalite_dust", {
+        description = "Kalite Dust",
+        inventory_image = "technic_kalite_dust.png",
+        on_use = minetest.item_eat(2)
+})
diff --git a/init.lua b/technic/technic/init.lua
index 8933a11..355e25e 100644
--- a/init.lua
+++ b/technic/technic/init.lua
@@ -1,4 +1,4 @@
--- Minetest 0.4.3 : technic
+-- Minetest 0.4.4 : technic
minetest.register_alias("rebar", "technic:rebar")
minetest.register_alias("concrete", "technic:concrete")
@@ -20,47 +20,58 @@ modpath=minetest.get_modpath("technic")
--Read technic config file
dofile(modpath.."/config.lua")
-dofile(modpath.."/concrete.lua")
+-- world gen
+dofile(modpath.."/ores.lua")
+if enable_rubber_tree_generation==true then dofile(modpath.."/rubber.lua") end
+
+-- chests
dofile(modpath.."/iron_chest.lua")
dofile(modpath.."/copper_chest.lua")
dofile(modpath.."/silver_chest.lua")
dofile(modpath.."/gold_chest.lua")
dofile(modpath.."/mithril_chest.lua")
+
+--items
+dofile(modpath.."/concrete.lua")
+dofile(modpath.."/items.lua")
+
+--LV machines
+dofile(modpath.."/alloy_furnace.lua")
+dofile(modpath.."/solar_panel.lua")
+dofile(modpath.."/geothermal.lua")
+dofile(modpath.."/water_mill.lua")
dofile(modpath.."/electric_furnace.lua")
dofile(modpath.."/battery_box.lua")
dofile(modpath.."/wires.lua")
-dofile(modpath.."/wires_mv.lua")
-dofile(modpath.."/ores.lua")
dofile(modpath.."/tool_workshop.lua")
dofile(modpath.."/music_player.lua")
-dofile(modpath.."/grinder.lua")
-dofile(modpath.."/mining_laser_mk1.lua")
-dofile(modpath.."/injector.lua")
dofile(modpath.."/generator.lua")
-dofile(modpath.."/solar_panel.lua")
-dofile(modpath.."/geothermal.lua")
-dofile(modpath.."/water_mill.lua")
-dofile(modpath.."/alloy_furnace.lua")
-dofile(modpath.."/items.lua")
-dofile(modpath.."/mining_drill.lua")
+dofile(modpath.."/grinder.lua")
+
+--MV machines
+dofile(modpath.."/wires_mv.lua")
+dofile(modpath.."/solar_panel_mv.lua")
+dofile(modpath.."/battery_box_mv.lua")
+
+--Tools
+if enable_mining_dril==true then dofile(modpath.."/mining_drill.lua") end
+if enable_mining_laser==true then dofile(modpath.."/mining_laser_mk1.lua") end
+if enable_flashlight==true then dofile(modpath.."/flashlight.lua") end
+dofile(modpath.."/cans.lua")
+dofile(modpath.."/chainsaw.lua")
+dofile(modpath.."/tree_tap.lua")
dofile(modpath.."/screwdriver.lua")
dofile(modpath.."/sonic_screwdriver.lua")
+
+-- mesecons and tubes related
+dofile(modpath.."/injector.lua")
dofile(modpath.."/node_breaker.lua")
dofile(modpath.."/deployer.lua")
dofile(modpath.."/constructor.lua")
-dofile(modpath.."/tree_tap.lua")
-dofile(modpath.."/flashlight.lua")
-dofile(modpath.."/cans.lua")
-dofile(modpath.."/chainsaw.lua")
if enable_item_drop then dofile(modpath.."/item_drop.lua") end
if enable_item_pickup then dofile(modpath.."/item_pickup.lua") end
---MV machines
-dofile(modpath.."/solar_panel_mv.lua")
-dofile(modpath.."/battery_box_mv.lua")
-
-
function has_locked_chest_privilege(meta, player)
if player:get_player_name() ~= meta:get_string("owner") then
return false
@@ -82,4 +93,4 @@ function hacky_swap_node(pos,name)
meta = minetest.env:get_meta(pos)
meta:from_table(meta0)
return 1
-end \ No newline at end of file
+end
diff --git a/injector.lua b/technic/technic/injector.lua
index 0a6a19c..0a6a19c 100644
--- a/injector.lua
+++ b/technic/technic/injector.lua
diff --git a/technic/technic/injector1.lua b/technic/technic/injector1.lua
new file mode 100644
index 0000000..537e478
--- /dev/null
+++ b/technic/technic/injector1.lua
@@ -0,0 +1,248 @@
+minetest.register_craftitem("technic:injector", {
+ description = "Injector",
+ stack_max = 99,
+})
+
+minetest.register_node("technic:injector", {
+ description = "Injector",
+ tiles = {"technic_iron_chest_top.png", "technic_iron_chest_top.png", "technic_iron_chest_side.png",
+ "technic_iron_chest_side.png", "technic_iron_chest_side.png", "technic_iron_chest_front.png"},
+ paramtype2 = "facedir",
+ groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2},
+ legacy_facedir_simple = true,
+ sounds = default.node_sound_wood_defaults(),
+ on_construct = function(pos)
+ local meta = minetest.env:get_meta(pos)
+ meta:set_string("formspec",
+ "invsize[9,9;]"..
+ "list[current_name;main;0,2;8,2;]"..
+ "list[current_player;main;0,5;8,4;]")
+ meta:set_string("infotext", "Injector")
+ local inv = meta:get_inventory()
+ inv:set_size("main", 8*4)
+ end,
+ can_dig = function(pos,player)
+ local meta = minetest.env:get_meta(pos);
+ local inv = meta:get_inventory()
+ return inv:is_empty("main")
+ end,
+ on_punch = function (pos, node, puncher)
+ local meta = minetest.env:get_meta(pos);
+ local inv = meta:get_inventory()
+ for _,stack in ipairs(inv:get_list("main")) do
+ if stack:get_name() ~="" then
+ inv:remove_item("main",stack)
+ item1=tube_item({x=pos.x+.5,y=pos.y,z=pos.z},stack)
+ return
+ end
+ end
+end,
+})
+
+
+function tube_item(pos, item)
+ -- Take item in any format
+ local stack = ItemStack(item)
+ local obj = minetest.env:add_entity(pos, "technic:tubed_item")
+ obj:get_luaentity():set_item(stack:to_string())
+ obj:get_luaentity().start_pos = {x=pos.x,y=pos.y,z=pos.z}
+ obj:setacceleration({x=0, y=0, z=0})
+ pos.x=pos.x+1
+ local meta = minetest.env:get_meta(pos)
+ if meta:get_int("tubelike")==1 then obj:setvelocity({x=1, y=0, z=0}) return obj end
+ pos.x=pos.x-2
+ meta = minetest.env:get_meta(pos)
+ if meta:get_int("tubelike")==1 then obj:setvelocity({x=-1, y=0, z=0}) return obj end
+ pos.x=pos.x+1
+ pos.z=pos.z+1
+ meta = minetest.env:get_meta(pos)
+ if meta:get_int("tubelike")==1 then obj:setvelocity({x=0, y=0, z=1}) return obj end
+ pos.z=pos.z-2
+ meta = minetest.env:get_meta(pos)
+ if meta:get_int("tubelike")==1 then obj:setvelocity({x=0, y=0, z=-1}) return obj end
+ pos.z=pos.z+1
+ pos.y=pos.y+1
+ meta = minetest.env:get_meta(pos)
+ if meta:get_int("tubelike")==1 then obj:setvelocity({x=0, y=1, z=0}) return obj end
+ pos.y=pos.y-2
+ meta = minetest.env:get_meta(pos)
+ if meta:get_int("tubelike")==1 then obj:setvelocity({x=0, y=-2, z=0}) return obj end
+ pos.y=pos.y+1
+ return obj
+end
+
+minetest.register_entity("technic:tubed_item", {
+ initial_properties = {
+ hp_max = 1,
+ physical = false,
+ collisionbox = {0,0,0,0,0,0},
+ visual = "sprite",
+ visual_size = {x=0.5, y=0.5},
+ textures = {""},
+ spritediv = {x=1, y=1},
+ initial_sprite_basepos = {x=0, y=0},
+ is_visible = false,
+ start_pos={}
+ },
+
+ itemstring = '',
+ physical_state = false,
+
+ set_item = function(self, itemstring)
+ self.itemstring = itemstring
+ local stack = ItemStack(itemstring)
+ local itemtable = stack:to_table()
+ local itemname = nil
+ if itemtable then
+ itemname = stack:to_table().name
+ end
+ local item_texture = nil
+ local item_type = ""
+ if minetest.registered_items[itemname] then
+ item_texture = minetest.registered_items[itemname].inventory_image
+ item_type = minetest.registered_items[itemname].type
+ end
+ prop = {
+ is_visible = true,
+ visual = "sprite",
+ textures = {"unknown_item.png"}
+ }
+ if item_texture and item_texture ~= "" then
+ prop.visual = "sprite"
+ prop.textures = {item_texture}
+ prop.visual_size = {x=0.3, y=0.3}
+ else
+ prop.visual = "wielditem"
+ prop.textures = {itemname}
+ prop.visual_size = {x=0.15, y=0.15}
+ end
+ self.object:set_properties(prop)
+ end,
+
+ get_staticdata = function(self)
+
+ return minetest.serialize({
+ itemstring=self.itemstring,
+ velocity=self.object:getvelocity(),
+ start_pos=self.start_pos
+ })
+ end,
+
+ on_activate = function(self, staticdata)
+ if staticdata=="" or staticdata==nil then return end
+ local item = minetest.deserialize(staticdata)
+ local stack = ItemStack(item.itemstring)
+ local itemtable = stack:to_table()
+ local itemname = nil
+ if itemtable then
+ itemname = stack:to_table().name
+ end
+
+ if itemname then
+ self.start_pos=item.start_pos
+ self.object:setvelocity(item.velocity)
+ self.object:setacceleration({x=0, y=0, z=0})
+ self.object:setpos(item.start_pos)
+ end
+ self:set_item(item.itemstring)
+ end,
+
+ on_step = function(self, dtime)
+ if self.start_pos then
+ local pos = self.object:getpos()
+ local node = minetest.env:get_node(pos)
+ local meta = minetest.env:get_meta(pos)
+ tubelike=meta:get_int("tubelike")
+ local velocity=self.object:getvelocity()
+
+ if not velocity then return end
+
+ if math.abs(velocity.x)==1 then
+ local next_node=math.abs(pos.x-self.start_pos.x)
+ if next_node >= 1 then
+ self.start_pos.x=self.start_pos.x+velocity.x
+ if check_pos_vector (self.start_pos, velocity)==0 then
+ check_next_step (self.start_pos, velocity)
+ self.object:setpos(self.start_pos)
+ self.object:setvelocity(velocity)
+ return
+ end
+ end
+ end
+
+ if math.abs(velocity.y)==1 then
+ local next_node=math.abs(pos.y-self.start_pos.y)
+ if next_node >= 1 then
+ self.start_pos.y=self.start_pos.y+velocity.y
+ if check_pos_vector (self.start_pos, velocity)==0 then
+ check_next_step (self.start_pos, velocity)
+ self.object:setpos(self.start_pos)
+ self.object:setvelocity(velocity)
+ return
+ end
+ end
+ end
+
+ if math.abs(velocity.z)==1 then
+ local next_node=math.abs(pos.z-self.start_pos.z)
+ if next_node >= 1 then
+ self.start_pos.z=self.start_pos.z+velocity.z
+ if check_pos_vector (self.start_pos, velocity)==0 then
+ check_next_step (self.start_pos, velocity)
+ self.object:setpos(self.start_pos)
+ self.object:setvelocity(velocity)
+ return
+ end
+ end
+ end
+ end
+end
+})
+
+
+function check_next_step (pos,velocity)
+local meta
+local tubelike
+
+if velocity.x==0 then
+meta = minetest.env:get_meta({x=pos.x-1,y=pos.y,z=pos.z})
+tubelike=meta:get_int("tubelike")
+if tubelike==1 then velocity.x=-1 velocity.y=0 velocity.z=0 return end
+meta = minetest.env:get_meta({x=pos.x+1,y=pos.y,z=pos.z})
+tubelike=meta:get_int("tubelike")
+if tubelike==1 then velocity.x=1 velocity.y=0 velocity.z=0 return end
+end
+
+if velocity.z==0 then
+meta = minetest.env:get_meta({x=pos.x,y=pos.y,z=pos.z+1})
+tubelike=meta:get_int("tubelike")
+if tubelike==1 then velocity.x=0 velocity.y=0 velocity.z=1 return end
+meta = minetest.env:get_meta({x=pos.x,y=pos.y,z=pos.z-1})
+tubelike=meta:get_int("tubelike")
+if tubelike==1 then velocity.x=0 velocity.y=0 velocity.z=-1 return end
+end
+
+if velocity.y==0 then
+meta = minetest.env:get_meta({x=pos.x,y=pos.y+1,z=pos.z})
+tubelike=meta:get_int("tubelike")
+if tubelike==1 then velocity.x=0 velocity.y=1 velocity.z=0 return end
+meta = minetest.env:get_meta({x=pos.x,y=pos.y-1,z=pos.z})
+tubelike=meta:get_int("tubelike")
+if tubelike==1 then velocity.x=0 velocity.y=-1 velocity.z=0 return end
+end
+
+--velocity.x=0
+--velocity.y=0
+--velocity.z=0
+end
+
+function check_pos_vector (pos,velocity)
+added={}
+added.x=pos.x+velocity.x
+added.y=pos.y+velocity.y
+added.z=pos.z+velocity.z
+local meta=minetest.env:get_meta(added)
+--print(dump(added).." : "..tubelike)
+if meta:get_int("tubelike")==1 then return 1 end
+return 0
+end
diff --git a/iron_chest.lua b/technic/technic/iron_chest.lua
index f0e0fcb..27b1aba 100644
--- a/iron_chest.lua
+++ b/technic/technic/iron_chest.lua
@@ -54,15 +54,6 @@ minetest.register_node("technic:iron_chest", {
local inv = meta:get_inventory()
inv:set_size("main", 9*4)
end,
-
- after_place_node = function(pos, placer)
- ntop1 = minetest.env:get_node({x=pos.x, y=pos.y, z=pos.z})
- ntop = minetest.env:get_node({x=pos.x, y=pos.y+1, z=pos.z})
- if ntop.name ~= "air" then
- minetest.node_dig(pos, ntop1, placer)
- end
- end,
-
can_dig = function(pos,player)
local meta = minetest.env:get_meta(pos);
local inv = meta:get_inventory()
@@ -170,7 +161,3 @@ on_construct = function(pos)
" takes stuff from locked chest at "..minetest.pos_to_string(pos))
end,
})
-
-function add_item (player)
-player:get_inventory():add_item("main", "blabla 1")
-end \ No newline at end of file
diff --git a/item_drop.lua b/technic/technic/item_drop.lua
index 3165e6a..3165e6a 100644
--- a/item_drop.lua
+++ b/technic/technic/item_drop.lua
diff --git a/item_pickup.lua b/technic/technic/item_pickup.lua
index 04ed0f8..04ed0f8 100644
--- a/item_pickup.lua
+++ b/technic/technic/item_pickup.lua
diff --git a/items.lua b/technic/technic/items.lua
index 527fc6f..c2b596e 100644
--- a/items.lua
+++ b/technic/technic/items.lua
@@ -55,27 +55,27 @@ minetest.register_node( "technic:diamond_block", {
minetest.register_craft({
output = 'technic:green_energy_crystal',
recipe = {
- {'moreores:gold_ingot', 'technic:battery', 'group:dye,basecolor_green'},
+ {'moreores:gold_ingot', 'technic:battery', 'dye:green'},
{'technic:battery', 'technic:red_energy_crystal', 'technic:battery'},
- {'group:dye,basecolor_green', 'technic:battery', 'moreores:gold_ingot'},
+ {'dye:green', 'technic:battery', 'moreores:gold_ingot'},
}
})
minetest.register_craft({
output = 'technic:blue_energy_crystal',
recipe = {
- {'moreores:gold_ingot', 'technic:battery', 'group:dye,basecolor_blue'},
+ {'moreores:gold_ingot', 'technic:battery', 'dye:blue'},
{'technic:battery', 'technic:green_energy_crystal', 'technic:battery'},
- {'group:dye,basecolor_green', 'technic:battery', 'moreores:gold_ingot'},
+ {'dye:blue', 'technic:battery', 'moreores:gold_ingot'},
}
})
minetest.register_craft({
output = 'technic:red_energy_crystal',
recipe = {
- {'moreores:gold_ingot', 'technic:battery', 'group:dye,basecolor_red'},
+ {'moreores:gold_ingot', 'technic:battery', 'dye:red'},
{'technic:battery', 'technic:diamond_block', 'technic:battery'},
- {'group:dye,basecolor_red', 'technic:battery', 'moreores:gold_ingot'},
+ {'dye:red', 'technic:battery', 'moreores:gold_ingot'},
}
})
diff --git a/mining_drill.lua b/technic/technic/mining_drill.lua
index 5fc5377..4ccfc95 100644
--- a/mining_drill.lua
+++ b/technic/technic/mining_drill.lua
@@ -25,8 +25,8 @@ minetest.register_craft({
output = 'technic:mining_drill',
recipe = {
{'technic:stainless_steel_ingot', 'technic:diamond_drill_head', 'technic:stainless_steel_ingot'},
- {'technic:stainless_steel_ingot', 'technic:red_energy_crystal', 'technic:stainless_steel_ingot'},
- {'', 'moreores:copper_ingot', ''},
+ {'technic:stainless_steel_ingot', 'technic:motor', 'technic:stainless_steel_ingot'},
+ {'', 'technic:red_energy_crystal', 'moreores:copper_ingot'},
}
})
diff --git a/mining_laser_mk1.lua b/technic/technic/mining_laser_mk1.lua
index a206bb4..a206bb4 100644
--- a/mining_laser_mk1.lua
+++ b/technic/technic/mining_laser_mk1.lua
diff --git a/mithril_chest.lua b/technic/technic/mithril_chest.lua
index 89683f8..89683f8 100644
--- a/mithril_chest.lua
+++ b/technic/technic/mithril_chest.lua
diff --git a/technic/technic/mithril_subspace_chest.lua b/technic/technic/mithril_subspace_chest.lua
new file mode 100644
index 0000000..89683f8
--- /dev/null
+++ b/technic/technic/mithril_subspace_chest.lua
@@ -0,0 +1,145 @@
+minetest.register_craft({
+ output = 'technic:mithril_chest 1',
+ recipe = {
+ {'moreores:mithril_ingot','moreores:mithril_ingot','moreores:mithril_ingot'},
+ {'moreores:mithril_ingot','technic:gold_chest','moreores:mithril_ingot'},
+ {'moreores:mithril_ingot','moreores:mithril_ingot','moreores:mithril_ingot'},
+ }
+})
+
+minetest.register_craft({
+ output = 'technic:mithril_locked_chest 1',
+ recipe = {
+ {'moreores:mithril_ingot','moreores:mithril_ingot','moreores:mithril_ingot'},
+ {'moreores:mithril_ingot','technic:gold_locked_chest','moreores:mithril_ingot'},
+ {'moreores:mithril_ingot','moreores:mithril_ingot','moreores:mithril_ingot'},
+ }
+})
+
+minetest.register_craft({
+ output = 'technic:mithril_locked_chest 1',
+ recipe = {
+ {'default:steel_ingot'},
+ {'technic:mithril_chest'},
+ }
+})
+
+minetest.register_node("technic:mithril_chest", {
+ description = "Mithril Chest",
+ tiles = {"technic_mithril_chest_top.png", "technic_mithril_chest_top.png", "technic_mithril_chest_side.png",
+ "technic_mithril_chest_side.png", "technic_mithril_chest_side.png", "technic_mithril_chest_front.png"},
+ paramtype2 = "facedir",
+ groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2},
+ legacy_facedir_simple = true,
+ sounds = default.node_sound_wood_defaults(),
+ on_construct = function(pos)
+ local meta = minetest.env:get_meta(pos)
+ meta:set_string("formspec",
+ "invsize[13,9;]"..
+ "list[current_name;main;0,0;13,4;]"..
+ "list[current_player;main;0,5;8,4;]")
+ meta:set_string("infotext", "Mithril Chest")
+ local inv = meta:get_inventory()
+ inv:set_size("main", 13*4)
+ end,
+ can_dig = function(pos,player)
+ local meta = minetest.env:get_meta(pos);
+ local inv = meta:get_inventory()
+ return inv:is_empty("main")
+ end,
+
+ on_metadata_inventory_move = function(pos, from_list, from_index,
+ to_list, to_index, count, player)
+ minetest.log("action", player:get_player_name()..
+ " moves stuff in chest at "..minetest.pos_to_string(pos))
+ return minetest.node_metadata_inventory_move_allow_all(
+ pos, from_list, from_index, to_list, to_index, count, player)
+ end,
+ on_metadata_inventory_offer = function(pos, listname, index, stack, player)
+ minetest.log("action", player:get_player_name()..
+ " moves stuff to chest at "..minetest.pos_to_string(pos))
+ return minetest.node_metadata_inventory_offer_allow_all(
+ pos, listname, index, stack, player)
+ end,
+ on_metadata_inventory_take = function(pos, listname, index, stack, player)
+ minetest.log("action", player:get_player_name()..
+ " takes stuff from chest at "..minetest.pos_to_string(pos))
+ end,
+})
+
+minetest.register_node("technic:mithril_locked_chest", {
+ description = "Mithril Locked Chest",
+ tiles = {"technic_mithril_chest_top.png", "technic_mithril_chest_top.png", "technic_mithril_chest_side.png",
+ "technic_mithril_chest_side.png", "technic_mithril_chest_side.png", "technic_mithril_chest_locked.png"},
+ paramtype2 = "facedir",
+ groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2},
+ legacy_facedir_simple = true,
+ sounds = default.node_sound_wood_defaults(),
+ after_place_node = function(pos, placer)
+ local meta = minetest.env:get_meta(pos)
+ meta:set_string("owner", placer:get_player_name() or "")
+ meta:set_string("infotext", "Mithril Locked Chest (owned by "..
+ meta:get_string("owner")..")")
+ end,
+on_construct = function(pos)
+ local meta = minetest.env:get_meta(pos)
+ meta:set_string("formspec",
+ "invsize[13,9;]"..
+ "list[current_name;main;0,0;13,4;]"..
+ "list[current_player;main;0,5;8,4;]")
+ meta:set_string("infotext", "Mithril Locked Chest")
+ meta:set_string("owner", "")
+ local inv = meta:get_inventory()
+ inv:set_size("main", 13*4)
+ end,
+ can_dig = function(pos,player)
+ local meta = minetest.env:get_meta(pos);
+ local inv = meta:get_inventory()
+ return inv:is_empty("main")
+ end,
+ allow_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player)
+ local meta = minetest.env:get_meta(pos)
+ if not has_locked_chest_privilege(meta, player) then
+ minetest.log("action", player:get_player_name()..
+ " tried to access a locked chest belonging to "..
+ meta:get_string("owner").." at "..
+ minetest.pos_to_string(pos))
+ return 0
+ end
+ return count
+ end,
+ allow_metadata_inventory_put = function(pos, listname, index, stack, player)
+ local meta = minetest.env:get_meta(pos)
+ if not has_locked_chest_privilege(meta, player) then
+ minetest.log("action", player:get_player_name()..
+ " tried to access a locked chest belonging to "..
+ meta:get_string("owner").." at "..
+ minetest.pos_to_string(pos))
+ return 0
+ end
+ return stack:get_count()
+ end,
+ allow_metadata_inventory_take = function(pos, listname, index, stack, player)
+ local meta = minetest.env:get_meta(pos)
+ if not has_locked_chest_privilege(meta, player) then
+ minetest.log("action", player:get_player_name()..
+ " tried to access a locked chest belonging to "..
+ meta:get_string("owner").." at "..
+ minetest.pos_to_string(pos))
+ return 0
+ end
+ return stack:get_count()
+ end,
+ on_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player)
+ minetest.log("action", player:get_player_name()..
+ " moves stuff in locked chest at "..minetest.pos_to_string(pos))
+ end,
+ on_metadata_inventory_put = function(pos, listname, index, stack, player)
+ minetest.log("action", player:get_player_name()..
+ " moves stuff to locked chest at "..minetest.pos_to_string(pos))
+ end,
+ on_metadata_inventory_take = function(pos, listname, index, stack, player)
+ minetest.log("action", player:get_player_name()..
+ " takes stuff from locked chest at "..minetest.pos_to_string(pos))
+ end,
+})
diff --git a/music_player.lua b/technic/technic/music_player.lua
index 0a6474a..0a6474a 100644
--- a/music_player.lua
+++ b/technic/technic/music_player.lua
diff --git a/node_breaker.lua b/technic/technic/node_breaker.lua
index 3a7f53b..3a7f53b 100644
--- a/node_breaker.lua
+++ b/technic/technic/node_breaker.lua
diff --git a/ores.lua b/technic/technic/ores.lua
index 90013fc..2642c9e 100644
--- a/ores.lua
+++ b/technic/technic/ores.lua
@@ -30,6 +30,14 @@ minetest.register_node( "technic:granite", {
sounds = default.node_sound_stone_defaults(),
})
+minetest.register_node( "technic:obsidian", {
+ description = "Obsidian",
+ tiles = { "technic_obsidian.png" },
+ is_ground_content = true,
+ groups = {cracky=3},
+ sounds = default.node_sound_stone_defaults(),
+})
+
stairsplus.register_stair_and_slab_and_panel_and_micro("marble", "technic:marble",
{cracky=3},
{"technic_marble.png"},
@@ -54,6 +62,14 @@ stairsplus.register_stair_and_slab_and_panel_and_micro("granite", "technic:grani
"Granite Panel",
"Granite Microblock",
"granite")
+stairsplus.register_stair_and_slab_and_panel_and_micro("obsidian", "technic:obsidian",
+ {cracky=3},
+ {"technic_obsidian.png"},
+ "Obsidian Stairs",
+ "Obsidian Slab",
+ "Obsidian Panel",
+ "Obsidian Microblock",
+ "obsidian")
minetest.register_node( "technic:mineral_diamond", {
description = "Diamond Ore",
@@ -192,10 +208,132 @@ local function generate_ore(name, wherein, minp, maxp, seed, chunks_per_volume,
end
minetest.register_on_generated(function(minp, maxp, seed)
-generate_ore("technic:mineral_diamond", "default:stone", minp, maxp, seed+21, 1/11/11/11, 4, -31000, -300)
+generate_ore("technic:mineral_diamond", "default:stone", minp, maxp, seed+21, 1/11/11/11, 4, -31000, -450)
generate_ore("technic:mineral_uranium", "default:stone", minp, maxp, seed+22, 1/10/10/10, 3, -300, -80)
generate_ore("technic:mineral_chromium", "default:stone", minp, maxp, seed+23, 1/10/10/10, 2, -31000, -100)
generate_ore("technic:mineral_zinc", "default:stone", minp, maxp, seed+24, 1/9/9/9, 4, -31000, 2)
generate_ore("technic:marble", "default:stone", minp, maxp, seed+25, 1/128, 20, -100, -32)
generate_ore("technic:granite", "default:stone", minp, maxp, seed+25, 1/128, 15, -190, -90)
-end) \ No newline at end of file
+generate_stratus("technic:obsidian",
+ {"default:stone"},
+ {"default:lava_source"},{"default:air"},
+ minp, maxp, seed+4, 10, 25, 7, -450, -31000, -450)
+end)
+
+function generate_stratus(name, wherein, ceilin, ceil, minp, maxp, seed, stratus_chance, radius, radius_y, deep, height_min, height_max)
+ if maxp.y < height_min or minp.y > height_max then
+ return
+ end
+ -- it will be only generate a stratus for every 100 m of area
+ local stratus_per_volume=1
+ local area=45
+ local y_min = math.max(minp.y, height_min)
+ local y_max = math.min(maxp.y, height_max)
+ local volume = ((maxp.x-minp.x+1)/area)*((y_max-y_min+1)/area)*((maxp.z-minp.z+1)/area)
+ local pr = PseudoRandom(seed)
+ local blocks = math.floor(stratus_per_volume*volume)
+ print(" <<"..dump(name)..">>");
+ if blocks == 0 then
+ blocks = 1
+ end
+ print(" blocks: "..dump(blocks).." in vol: "..dump(volume).." ("..dump(maxp.x-minp.x+1)..","..dump(y_max-y_min+1)..","..dump(maxp.z-minp.z+1)..")")
+ for i=1,blocks do
+ local x = pr:next(1,stratus_chance)
+ if x == 1 then
+ -- TODO deep
+ local y0=y_max-radius_y+1
+ if y0 < y_min then
+ y0=y_min
+ else
+ y0=pr:next(y_min, y0)
+ end
+ local x0 = maxp.x-radius+1
+ if x0 < minp.x then
+ x0 = minp.x
+ else
+ x0 = pr:next(minp.x, x0)
+ end
+ local z0 = maxp.z-radius+1
+ if z0 < minp.z then
+ x0 = minp.z
+ else
+ z0 = pr:next(minp.z, z0)
+ end
+ local p0 = {x=x0, y=y0, z=z0}
+ local n = minetest.env:get_node(p0).name
+ local i = 0
+ --print(" upper node "..n)
+ x = 0
+ for k, v in ipairs(ceilin) do
+ if n == v then
+ x = 1
+ break
+ end
+ end
+ if x == 1 then
+ -- search for the node to replace
+ --print(" Searching nodes to replace from "..dump(y0-1).." to "..dump(y_min))
+ for y1=y0-1,y_min,-1 do
+ p0.y=y1
+ n = minetest.env:get_node(p0).name
+ x = 0
+ for k, v in ipairs(wherein) do
+ if n == v then
+ x = 1
+ break
+ end
+ end
+ if x == 1 then
+ y0=y1-deep
+ if y0 < y_min then
+ y0 = y_min
+ end
+ break
+ end
+ end
+ local rx=pr:next(radius/2,radius)+1
+ local rz=pr:next(radius/2,radius)+1
+ local ry=pr:next(radius_y/2,radius_y)+1
+ --print(" area of generation ("..dump(rx)..","..dump(rz)..","..dump(ry)..")")
+ for x1=0,rx do
+ rz = rz + 3 - pr:next(1,6)
+ if rz < 1 then
+ rz = 1
+ end
+ for z1=pr:next(1,3),rz do
+ local ry0=ry+ pr:next(1,3)
+ for y1=pr:next(1,3),ry0 do
+ local x2 = x0+x1
+ local y2 = y0+y1
+ local z2 = z0+z1
+ local p2 = {x=x2, y=y2, z=z2}
+ n = minetest.env:get_node(p2).name
+ x = 0
+ for k, v in ipairs(wherein) do
+ if n == v then
+ x = 1
+ break
+ end
+ end
+ if x == 1 then
+ if ceil == nil then
+ minetest.env:set_node(p2, {name=name})
+ i = i +1
+ else
+ local p3 = {p2.x,p2.y+1,p2}
+ if minetest.env:get_node(p3).name == ceil then
+ minetest.env:set_node(p2, {name=name})
+ i = i +1
+ end
+ end
+ end
+ end
+ end
+ end
+ print(" generated "..dump(i).." blocks in ("..dump(x0)..","..dump(y0)..","..dump(z0)..")")
+ end
+
+ end
+ end
+ --print("generate_ore done")
+end \ No newline at end of file
diff --git a/project_table.lua b/technic/technic/project_table.lua
index 355295c..355295c 100644
--- a/project_table.lua
+++ b/technic/technic/project_table.lua
diff --git a/rubber.lua b/technic/technic/rubber.lua
index 311f3af..311f3af 100644
--- a/rubber.lua
+++ b/technic/technic/rubber.lua
diff --git a/screwdriver.lua b/technic/technic/screwdriver.lua
index 0b81217..0b81217 100644
--- a/screwdriver.lua
+++ b/technic/technic/screwdriver.lua
diff --git a/silver_chest.lua b/technic/technic/silver_chest.lua
index 66a915a..66a915a 100644
--- a/silver_chest.lua
+++ b/technic/technic/silver_chest.lua
diff --git a/solar_panel.lua b/technic/technic/solar_panel.lua
index f2d08f6..02a8f69 100644
--- a/solar_panel.lua
+++ b/technic/technic/solar_panel.lua
@@ -54,7 +54,7 @@ minetest.register_abm(
local light = minetest.env:get_node_light(pos1, nil)
local meta = minetest.env:get_meta(pos)
if light == nil then light = 0 end
- if light >= 14 then
+ if light >= 12 then
meta:set_string("infotext", "Solar Panel is active ")
meta:set_float("active",1)
local internal_EU_buffer=meta:get_float("internal_EU_buffer")
diff --git a/solar_panel_mv.lua b/technic/technic/solar_panel_mv.lua
index 93e21e7..93e21e7 100644
--- a/solar_panel_mv.lua
+++ b/technic/technic/solar_panel_mv.lua
diff --git a/sonic_screwdriver.lua b/technic/technic/sonic_screwdriver.lua
index d089778..d089778 100644
--- a/sonic_screwdriver.lua
+++ b/technic/technic/sonic_screwdriver.lua
diff --git a/sounds/chainsaw.ogg b/technic/technic/sounds/chainsaw.ogg
index 5fe7552..5fe7552 100644
--- a/sounds/chainsaw.ogg
+++ b/technic/technic/sounds/chainsaw.ogg
Binary files differ
diff --git a/sounds/item_drop_pickup.1.ogg b/technic/technic/sounds/item_drop_pickup.1.ogg
index 2ae432d..2ae432d 100644
--- a/sounds/item_drop_pickup.1.ogg
+++ b/technic/technic/sounds/item_drop_pickup.1.ogg
Binary files differ
diff --git a/sounds/item_drop_pickup.2.ogg b/technic/technic/sounds/item_drop_pickup.2.ogg
index f58bf08..f58bf08 100644
--- a/sounds/item_drop_pickup.2.ogg
+++ b/technic/technic/sounds/item_drop_pickup.2.ogg
Binary files differ
diff --git a/sounds/item_drop_pickup.3.ogg b/technic/technic/sounds/item_drop_pickup.3.ogg
index cf57c94..cf57c94 100644
--- a/sounds/item_drop_pickup.3.ogg
+++ b/technic/technic/sounds/item_drop_pickup.3.ogg
Binary files differ
diff --git a/sounds/item_drop_pickup.4.ogg b/technic/technic/sounds/item_drop_pickup.4.ogg
index bfe99d9..bfe99d9 100644
--- a/sounds/item_drop_pickup.4.ogg
+++ b/technic/technic/sounds/item_drop_pickup.4.ogg
Binary files differ
diff --git a/sounds/mining_drill.ogg b/technic/technic/sounds/mining_drill.ogg
index 1493544..1493544 100644
--- a/sounds/mining_drill.ogg
+++ b/technic/technic/sounds/mining_drill.ogg
Binary files differ
diff --git a/sounds/technic_laser.ogg b/technic/technic/sounds/technic_laser.ogg
index 19be080..19be080 100644
--- a/sounds/technic_laser.ogg
+++ b/technic/technic/sounds/technic_laser.ogg
Binary files differ
diff --git a/sounds/technic_sonic_screwdriver.ogg b/technic/technic/sounds/technic_sonic_screwdriver.ogg
index 471bb72..471bb72 100644
--- a/sounds/technic_sonic_screwdriver.ogg
+++ b/technic/technic/sounds/technic_sonic_screwdriver.ogg
Binary files differ
diff --git a/technic/technic/tetris.lua b/technic/technic/tetris.lua
new file mode 100644
index 0000000..3b14c47
--- /dev/null
+++ b/technic/technic/tetris.lua
@@ -0,0 +1,17 @@
+minetest.register_node("technic:tetris_machine_node1", {
+ tiles = {"tetris_machine_top.png", "technic_mv_battery_box_bottom.png", "tetris_machine_front1.png",
+ "tetris_machine_side1B.png", "tetris_machine_side1P.png", "tetris_machine_side1L.png"},
+ tile_images = {"technic_tetris_machine.png",},
+ is_ground_content = true,
+ groups = {cracky=1},
+ sounds = default.node_sound_stone_defaults(),
+})
+
+minetest.register_node("technic:tetris_machine_node2", {
+ tiles = {"tetris_machine_top.png", "technic_mv_battery_box_bottom.png", "tetris_machine_front2.png",
+ "tetris_machine_side2B.png", "tetris_machine_side2P.png", "tetris_machine_side2L.png"},
+ tile_images = {"technic_tetris_machine.png",},
+ is_ground_content = true,
+ groups = {cracky=1},
+ sounds = default.node_sound_stone_defaults(),
+})
diff --git a/textures/technic_alloy_furnace_front.png b/technic/technic/textures/technic_alloy_furnace_front.png
index 9123fb6..9123fb6 100644
--- a/textures/technic_alloy_furnace_front.png
+++ b/technic/technic/textures/technic_alloy_furnace_front.png
Binary files differ
diff --git a/textures/technic_alloy_furnace_front_active.png b/technic/technic/textures/technic_alloy_furnace_front_active.png
index 4dda2e6..4dda2e6 100644
--- a/textures/technic_alloy_furnace_front_active.png
+++ b/technic/technic/textures/technic_alloy_furnace_front_active.png
Binary files differ
diff --git a/textures/technic_alloy_furnace_side.png b/technic/technic/textures/technic_alloy_furnace_side.png
index b5bd428..b5bd428 100644
--- a/textures/technic_alloy_furnace_side.png
+++ b/technic/technic/textures/technic_alloy_furnace_side.png
Binary files differ
diff --git a/textures/technic_alloy_furnace_top.png b/technic/technic/textures/technic_alloy_furnace_top.png
index 67ef4b7..67ef4b7 100644
--- a/textures/technic_alloy_furnace_top.png
+++ b/technic/technic/textures/technic_alloy_furnace_top.png
Binary files differ
diff --git a/textures/technic_battery.png b/technic/technic/textures/technic_battery.png
index ee83b74..ee83b74 100644
--- a/textures/technic_battery.png
+++ b/technic/technic/textures/technic_battery.png
Binary files differ
diff --git a/textures/technic_battery_box_bottom.png b/technic/technic/textures/technic_battery_box_bottom.png
index 03c7ccc..03c7ccc 100644
--- a/textures/technic_battery_box_bottom.png
+++ b/technic/technic/textures/technic_battery_box_bottom.png
Binary files differ
diff --git a/textures/technic_battery_box_side0.png b/technic/technic/textures/technic_battery_box_side0.png
index 2662ac0..2662ac0 100644
--- a/textures/technic_battery_box_side0.png
+++ b/technic/technic/textures/technic_battery_box_side0.png
Binary files differ
diff --git a/textures/technic_battery_box_top.png b/technic/technic/textures/technic_battery_box_top.png
index 4953a32..4953a32 100644
--- a/textures/technic_battery_box_top.png
+++ b/technic/technic/textures/technic_battery_box_top.png
Binary files differ
diff --git a/textures/technic_battery_reload.png b/technic/technic/textures/technic_battery_reload.png
index 164b4ac..164b4ac 100644
--- a/textures/technic_battery_reload.png
+++ b/technic/technic/textures/technic_battery_reload.png
Binary files differ
diff --git a/textures/technic_brass_dust.png b/technic/technic/textures/technic_brass_dust.png
index f86167a..f86167a 100644
--- a/textures/technic_brass_dust.png
+++ b/technic/technic/textures/technic_brass_dust.png
Binary files differ
diff --git a/textures/technic_brass_ingot.png b/technic/technic/textures/technic_brass_ingot.png
index 2d8b153..2d8b153 100644
--- a/textures/technic_brass_ingot.png
+++ b/technic/technic/textures/technic_brass_ingot.png
Binary files differ
diff --git a/textures/technic_bronze_dust.png b/technic/technic/textures/technic_bronze_dust.png
index 0a2401e..0a2401e 100644
--- a/textures/technic_bronze_dust.png
+++ b/technic/technic/textures/technic_bronze_dust.png
Binary files differ
diff --git a/textures/technic_chainsaw.png b/technic/technic/textures/technic_chainsaw.png
index b7ceee6..b7ceee6 100644
--- a/textures/technic_chainsaw.png
+++ b/technic/technic/textures/technic_chainsaw.png
Binary files differ
diff --git a/textures/technic_chromium_dust.png b/technic/technic/textures/technic_chromium_dust.png
index a33358b..a33358b 100644
--- a/textures/technic_chromium_dust.png
+++ b/technic/technic/textures/technic_chromium_dust.png
Binary files differ
diff --git a/textures/technic_chromium_ingot.png b/technic/technic/textures/technic_chromium_ingot.png
index 91d5b20..91d5b20 100644
--- a/textures/technic_chromium_ingot.png
+++ b/technic/technic/textures/technic_chromium_ingot.png
Binary files differ
diff --git a/textures/technic_chromium_lump.png b/technic/technic/textures/technic_chromium_lump.png
index 1588f92..1588f92 100644
--- a/textures/technic_chromium_lump.png
+++ b/technic/technic/textures/technic_chromium_lump.png
Binary files differ
diff --git a/textures/technic_coal_alloy_furnace_bottom.png b/technic/technic/textures/technic_coal_alloy_furnace_bottom.png
index 7a5eed7..7a5eed7 100644
--- a/textures/technic_coal_alloy_furnace_bottom.png
+++ b/technic/technic/textures/technic_coal_alloy_furnace_bottom.png
Binary files differ
diff --git a/textures/technic_coal_alloy_furnace_front.png b/technic/technic/textures/technic_coal_alloy_furnace_front.png
index b00bef3..b00bef3 100644
--- a/textures/technic_coal_alloy_furnace_front.png
+++ b/technic/technic/textures/technic_coal_alloy_furnace_front.png
Binary files differ
diff --git a/textures/technic_coal_alloy_furnace_front_active.png b/technic/technic/textures/technic_coal_alloy_furnace_front_active.png
index b41f619..b41f619 100644
--- a/textures/technic_coal_alloy_furnace_front_active.png
+++ b/technic/technic/textures/technic_coal_alloy_furnace_front_active.png
Binary files differ
diff --git a/textures/technic_coal_alloy_furnace_side.png b/technic/technic/textures/technic_coal_alloy_furnace_side.png
index 3db8daa..3db8daa 100644
--- a/textures/technic_coal_alloy_furnace_side.png
+++ b/technic/technic/textures/technic_coal_alloy_furnace_side.png
Binary files differ
diff --git a/textures/technic_coal_alloy_furnace_top.png b/technic/technic/textures/technic_coal_alloy_furnace_top.png
index c648fe8..c648fe8 100644
--- a/textures/technic_coal_alloy_furnace_top.png
+++ b/technic/technic/textures/technic_coal_alloy_furnace_top.png
Binary files differ
diff --git a/textures/technic_coal_dust.png b/technic/technic/textures/technic_coal_dust.png
index 4a1da0c..4a1da0c 100644
--- a/textures/technic_coal_dust.png
+++ b/technic/technic/textures/technic_coal_dust.png
Binary files differ
diff --git a/textures/technic_concrete_block.png b/technic/technic/textures/technic_concrete_block.png
index 91364f3..91364f3 100644
--- a/textures/technic_concrete_block.png
+++ b/technic/technic/textures/technic_concrete_block.png
Binary files differ
diff --git a/textures/technic_constructor_back.png b/technic/technic/textures/technic_constructor_back.png
index 6baf788..6baf788 100644
--- a/textures/technic_constructor_back.png
+++ b/technic/technic/textures/technic_constructor_back.png
Binary files differ
diff --git a/textures/technic_constructor_front_off.png b/technic/technic/textures/technic_constructor_front_off.png
index f878e55..f878e55 100644
--- a/textures/technic_constructor_front_off.png
+++ b/technic/technic/textures/technic_constructor_front_off.png
Binary files differ
diff --git a/textures/technic_constructor_front_on.png b/technic/technic/textures/technic_constructor_front_on.png
index 89189d6..89189d6 100644
--- a/textures/technic_constructor_front_on.png
+++ b/technic/technic/textures/technic_constructor_front_on.png
Binary files differ
diff --git a/textures/technic_constructor_mk1_bottom_off.png b/technic/technic/textures/technic_constructor_mk1_bottom_off.png
index 205dcc4..205dcc4 100644
--- a/textures/technic_constructor_mk1_bottom_off.png
+++ b/technic/technic/textures/technic_constructor_mk1_bottom_off.png
Binary files differ
diff --git a/textures/technic_constructor_mk1_bottom_on.png b/technic/technic/textures/technic_constructor_mk1_bottom_on.png
index 9896c52..9896c52 100644
--- a/textures/technic_constructor_mk1_bottom_on.png
+++ b/technic/technic/textures/technic_constructor_mk1_bottom_on.png
Binary files differ
diff --git a/textures/technic_constructor_mk1_side1_off.png b/technic/technic/textures/technic_constructor_mk1_side1_off.png
index e8a01ff..e8a01ff 100644
--- a/textures/technic_constructor_mk1_side1_off.png
+++ b/technic/technic/textures/technic_constructor_mk1_side1_off.png
Binary files differ
diff --git a/textures/technic_constructor_mk1_side1_on.png b/technic/technic/textures/technic_constructor_mk1_side1_on.png
index c897942..c897942 100644
--- a/textures/technic_constructor_mk1_side1_on.png
+++ b/technic/technic/textures/technic_constructor_mk1_side1_on.png
Binary files differ
diff --git a/textures/technic_constructor_mk1_side2_off.png b/technic/technic/textures/technic_constructor_mk1_side2_off.png
index 8da65f6..8da65f6 100644
--- a/textures/technic_constructor_mk1_side2_off.png
+++ b/technic/technic/textures/technic_constructor_mk1_side2_off.png
Binary files differ
diff --git a/textures/technic_constructor_mk1_side2_on.png b/technic/technic/textures/technic_constructor_mk1_side2_on.png
index da8ed34..da8ed34 100644
--- a/textures/technic_constructor_mk1_side2_on.png
+++ b/technic/technic/textures/technic_constructor_mk1_side2_on.png
Binary files differ
diff --git a/textures/technic_constructor_mk1_top_off.png b/technic/technic/textures/technic_constructor_mk1_top_off.png
index 7d8c7e0..7d8c7e0 100644
--- a/textures/technic_constructor_mk1_top_off.png
+++ b/technic/technic/textures/technic_constructor_mk1_top_off.png
Binary files differ
diff --git a/textures/technic_constructor_mk1_top_on.png b/technic/technic/textures/technic_constructor_mk1_top_on.png
index 439caf5..439caf5 100644
--- a/textures/technic_constructor_mk1_top_on.png
+++ b/technic/technic/textures/technic_constructor_mk1_top_on.png
Binary files differ
diff --git a/textures/technic_constructor_mk2_bottom_off.png b/technic/technic/textures/technic_constructor_mk2_bottom_off.png
index 83c5b07..83c5b07 100644
--- a/textures/technic_constructor_mk2_bottom_off.png
+++ b/technic/technic/textures/technic_constructor_mk2_bottom_off.png
Binary files differ
diff --git a/textures/technic_constructor_mk2_bottom_on.png b/technic/technic/textures/technic_constructor_mk2_bottom_on.png
index 9ad76f4..9ad76f4 100644
--- a/textures/technic_constructor_mk2_bottom_on.png
+++ b/technic/technic/textures/technic_constructor_mk2_bottom_on.png
Binary files differ
diff --git a/textures/technic_constructor_mk2_side1_off.png b/technic/technic/textures/technic_constructor_mk2_side1_off.png
index 584dfe3..584dfe3 100644
--- a/textures/technic_constructor_mk2_side1_off.png
+++ b/technic/technic/textures/technic_constructor_mk2_side1_off.png
Binary files differ
diff --git a/textures/technic_constructor_mk2_side1_on.png b/technic/technic/textures/technic_constructor_mk2_side1_on.png
index fe02042..fe02042 100644
--- a/textures/technic_constructor_mk2_side1_on.png
+++ b/technic/technic/textures/technic_constructor_mk2_side1_on.png
Binary files differ
diff --git a/textures/technic_constructor_mk2_side2_off.png b/technic/technic/textures/technic_constructor_mk2_side2_off.png
index fd9ad74..fd9ad74 100644
--- a/textures/technic_constructor_mk2_side2_off.png
+++ b/technic/technic/textures/technic_constructor_mk2_side2_off.png
Binary files differ
diff --git a/textures/technic_constructor_mk2_side2_on.png b/technic/technic/textures/technic_constructor_mk2_side2_on.png
index f51411a..f51411a 100644
--- a/textures/technic_constructor_mk2_side2_on.png
+++ b/technic/technic/textures/technic_constructor_mk2_side2_on.png
Binary files differ
diff --git a/textures/technic_constructor_mk2_top_off.png b/technic/technic/textures/technic_constructor_mk2_top_off.png
index e3e3292..e3e3292 100644
--- a/textures/technic_constructor_mk2_top_off.png
+++ b/technic/technic/textures/technic_constructor_mk2_top_off.png
Binary files differ
diff --git a/textures/technic_constructor_mk2_top_on.png b/technic/technic/textures/technic_constructor_mk2_top_on.png
index 83043d4..83043d4 100644
--- a/textures/technic_constructor_mk2_top_on.png
+++ b/technic/technic/textures/technic_constructor_mk2_top_on.png
Binary files differ
diff --git a/textures/technic_constructor_mk3_bottom_off.png b/technic/technic/textures/technic_constructor_mk3_bottom_off.png
index 5f46154..5f46154 100644
--- a/textures/technic_constructor_mk3_bottom_off.png
+++ b/technic/technic/textures/technic_constructor_mk3_bottom_off.png
Binary files differ
diff --git a/textures/technic_constructor_mk3_bottom_on.png b/technic/technic/textures/technic_constructor_mk3_bottom_on.png
index f76f29b..f76f29b 100644
--- a/textures/technic_constructor_mk3_bottom_on.png
+++ b/technic/technic/textures/technic_constructor_mk3_bottom_on.png
Binary files differ
diff --git a/textures/technic_constructor_mk3_side1_off.png b/technic/technic/textures/technic_constructor_mk3_side1_off.png
index 0ea1fc0..0ea1fc0 100644
--- a/textures/technic_constructor_mk3_side1_off.png
+++ b/technic/technic/textures/technic_constructor_mk3_side1_off.png
Binary files differ
diff --git a/textures/technic_constructor_mk3_side1_on.png b/technic/technic/textures/technic_constructor_mk3_side1_on.png
index ba86332..ba86332 100644
--- a/textures/technic_constructor_mk3_side1_on.png
+++ b/technic/technic/textures/technic_constructor_mk3_side1_on.png
Binary files differ
diff --git a/textures/technic_constructor_mk3_side2_off.png b/technic/technic/textures/technic_constructor_mk3_side2_off.png
index 8e8dce4..8e8dce4 100644
--- a/textures/technic_constructor_mk3_side2_off.png
+++ b/technic/technic/textures/technic_constructor_mk3_side2_off.png
Binary files differ
diff --git a/textures/technic_constructor_mk3_side2_on.png b/technic/technic/textures/technic_constructor_mk3_side2_on.png
index 12dff69..12dff69 100644
--- a/textures/technic_constructor_mk3_side2_on.png
+++ b/technic/technic/textures/technic_constructor_mk3_side2_on.png
Binary files differ
diff --git a/textures/technic_constructor_mk3_top_off.png b/technic/technic/textures/technic_constructor_mk3_top_off.png
index 705f255..705f255 100644
--- a/textures/technic_constructor_mk3_top_off.png
+++ b/technic/technic/textures/technic_constructor_mk3_top_off.png
Binary files differ
diff --git a/textures/technic_constructor_mk3_top_on.png b/technic/technic/textures/technic_constructor_mk3_top_on.png
index cef077e..cef077e 100644
--- a/textures/technic_constructor_mk3_top_on.png
+++ b/technic/technic/textures/technic_constructor_mk3_top_on.png
Binary files differ
diff --git a/textures/technic_copper_chest_front.png b/technic/technic/textures/technic_copper_chest_front.png
index 1769435..1769435 100644
--- a/textures/technic_copper_chest_front.png
+++ b/technic/technic/textures/technic_copper_chest_front.png
Binary files differ
diff --git a/textures/technic_copper_chest_locked.png b/technic/technic/textures/technic_copper_chest_locked.png
index 6d059e9..6d059e9 100644
--- a/textures/technic_copper_chest_locked.png
+++ b/technic/technic/textures/technic_copper_chest_locked.png
Binary files differ
diff --git a/textures/technic_copper_chest_side.png b/technic/technic/textures/technic_copper_chest_side.png
index 2c7943f..2c7943f 100644
--- a/textures/technic_copper_chest_side.png
+++ b/technic/technic/textures/technic_copper_chest_side.png
Binary files differ
diff --git a/textures/technic_copper_chest_top.png b/technic/technic/textures/technic_copper_chest_top.png
index 2ab8104..2ab8104 100644
--- a/textures/technic_copper_chest_top.png
+++ b/technic/technic/textures/technic_copper_chest_top.png
Binary files differ
diff --git a/textures/technic_copper_coil.png b/technic/technic/textures/technic_copper_coil.png
index db6db1a..db6db1a 100644
--- a/textures/technic_copper_coil.png
+++ b/technic/technic/textures/technic_copper_coil.png
Binary files differ
diff --git a/textures/technic_copper_dust.png b/technic/technic/textures/technic_copper_dust.png
index 68678ed..68678ed 100644
--- a/textures/technic_copper_dust.png
+++ b/technic/technic/textures/technic_copper_dust.png
Binary files differ
diff --git a/textures/technic_deployer_back.png b/technic/technic/textures/technic_deployer_back.png
index 0bc8df9..0bc8df9 100644
--- a/textures/technic_deployer_back.png
+++ b/technic/technic/textures/technic_deployer_back.png
Binary files differ
diff --git a/textures/technic_deployer_bottom.png b/technic/technic/textures/technic_deployer_bottom.png
index ff1a2c6..ff1a2c6 100644
--- a/textures/technic_deployer_bottom.png
+++ b/technic/technic/textures/technic_deployer_bottom.png
Binary files differ
diff --git a/textures/technic_deployer_front_off.png b/technic/technic/textures/technic_deployer_front_off.png
index d0f6f55..d0f6f55 100644
--- a/textures/technic_deployer_front_off.png
+++ b/technic/technic/textures/technic_deployer_front_off.png
Binary files differ
diff --git a/textures/technic_deployer_front_on.png b/technic/technic/textures/technic_deployer_front_on.png
index 368ce32..368ce32 100644
--- a/textures/technic_deployer_front_on.png
+++ b/technic/technic/textures/technic_deployer_front_on.png
Binary files differ
diff --git a/textures/technic_deployer_side.png b/technic/technic/textures/technic_deployer_side.png
index aefd7c8..aefd7c8 100644
--- a/textures/technic_deployer_side.png
+++ b/technic/technic/textures/technic_deployer_side.png
Binary files differ
diff --git a/textures/technic_deployer_side1.png b/technic/technic/textures/technic_deployer_side1.png
index 8cb8634..8cb8634 100644
--- a/textures/technic_deployer_side1.png
+++ b/technic/technic/textures/technic_deployer_side1.png
Binary files differ
diff --git a/textures/technic_deployer_side2.png b/technic/technic/textures/technic_deployer_side2.png
index c2855d0..c2855d0 100644
--- a/textures/technic_deployer_side2.png
+++ b/technic/technic/textures/technic_deployer_side2.png
Binary files differ
diff --git a/textures/technic_deployer_top.png b/technic/technic/textures/technic_deployer_top.png
index 941d333..941d333 100644
--- a/textures/technic_deployer_top.png
+++ b/technic/technic/textures/technic_deployer_top.png
Binary files differ
diff --git a/textures/technic_diamond.png b/technic/technic/textures/technic_diamond.png
index 23e6126..23e6126 100644
--- a/textures/technic_diamond.png
+++ b/technic/technic/textures/technic_diamond.png
Binary files differ
diff --git a/textures/technic_diamond_block.png b/technic/technic/textures/technic_diamond_block.png
index 347ed78..347ed78 100644
--- a/textures/technic_diamond_block.png
+++ b/technic/technic/textures/technic_diamond_block.png
Binary files differ
diff --git a/textures/technic_diamond_block_blue.png b/technic/technic/textures/technic_diamond_block_blue.png
index d89bd6e..d89bd6e 100644
--- a/textures/technic_diamond_block_blue.png
+++ b/technic/technic/textures/technic_diamond_block_blue.png
Binary files differ
diff --git a/textures/technic_diamond_block_green.png b/technic/technic/textures/technic_diamond_block_green.png
index 996b254..996b254 100644
--- a/textures/technic_diamond_block_green.png
+++ b/technic/technic/textures/technic_diamond_block_green.png
Binary files differ
diff --git a/textures/technic_diamond_block_red.png b/technic/technic/textures/technic_diamond_block_red.png
index 52fd893..52fd893 100644
--- a/textures/technic_diamond_block_red.png
+++ b/technic/technic/textures/technic_diamond_block_red.png
Binary files differ
diff --git a/textures/technic_diamond_drill_head.png b/technic/technic/textures/technic_diamond_drill_head.png
index e3d31e8..e3d31e8 100644
--- a/textures/technic_diamond_drill_head.png
+++ b/technic/technic/textures/technic_diamond_drill_head.png
Binary files differ
diff --git a/textures/technic_doped_silicon_wafer.png b/technic/technic/textures/technic_doped_silicon_wafer.png
index 6ff06a6..6ff06a6 100644
--- a/textures/technic_doped_silicon_wafer.png
+++ b/technic/technic/textures/technic_doped_silicon_wafer.png
Binary files differ
diff --git a/technic/technic/textures/technic_electric_furnace_GUI.png b/technic/technic/textures/technic_electric_furnace_GUI.png
new file mode 100644
index 0000000..320794f
--- /dev/null
+++ b/technic/technic/textures/technic_electric_furnace_GUI.png
Binary files differ
diff --git a/technic/technic/textures/technic_electric_furnace_GUI.xcf b/technic/technic/textures/technic_electric_furnace_GUI.xcf
new file mode 100644
index 0000000..482eeb4
--- /dev/null
+++ b/technic/technic/textures/technic_electric_furnace_GUI.xcf
Binary files differ
diff --git a/textures/technic_electric_furnace_bottom.png b/technic/technic/textures/technic_electric_furnace_bottom.png
index d16ac47..d16ac47 100644
--- a/textures/technic_electric_furnace_bottom.png
+++ b/technic/technic/textures/technic_electric_furnace_bottom.png
Binary files differ
diff --git a/textures/technic_electric_furnace_front.png b/technic/technic/textures/technic_electric_furnace_front.png
index dfee663..dfee663 100644
--- a/textures/technic_electric_furnace_front.png
+++ b/technic/technic/textures/technic_electric_furnace_front.png
Binary files differ
diff --git a/textures/technic_electric_furnace_front_active.png b/technic/technic/textures/technic_electric_furnace_front_active.png
index 038eec4..038eec4 100644
--- a/textures/technic_electric_furnace_front_active.png
+++ b/technic/technic/textures/technic_electric_furnace_front_active.png
Binary files differ
diff --git a/textures/technic_electric_furnace_side.png b/technic/technic/textures/technic_electric_furnace_side.png
index cf345e7..cf345e7 100644
--- a/textures/technic_electric_furnace_side.png
+++ b/technic/technic/textures/technic_electric_furnace_side.png
Binary files differ
diff --git a/textures/technic_electric_furnace_top.png b/technic/technic/textures/technic_electric_furnace_top.png
index d3309ec..d3309ec 100644
--- a/textures/technic_electric_furnace_top.png
+++ b/technic/technic/textures/technic_electric_furnace_top.png
Binary files differ
diff --git a/textures/technic_fine_copper_wire.png b/technic/technic/textures/technic_fine_copper_wire.png
index 36e2ed6..36e2ed6 100644
--- a/textures/technic_fine_copper_wire.png
+++ b/technic/technic/textures/technic_fine_copper_wire.png
Binary files differ
diff --git a/textures/technic_flashlight.png b/technic/technic/textures/technic_flashlight.png
index 01afdbb..01afdbb 100644
--- a/textures/technic_flashlight.png
+++ b/technic/technic/textures/technic_flashlight.png
Binary files differ
diff --git a/textures/technic_generator_front.png b/technic/technic/textures/technic_generator_front.png
index 2d64844..2d64844 100644
--- a/textures/technic_generator_front.png
+++ b/technic/technic/textures/technic_generator_front.png
Binary files differ
diff --git a/textures/technic_generator_front_active.png b/technic/technic/textures/technic_generator_front_active.png
index 4e57ca0..4e57ca0 100644
--- a/textures/technic_generator_front_active.png
+++ b/technic/technic/textures/technic_generator_front_active.png
Binary files differ
diff --git a/textures/technic_generator_side.png b/technic/technic/textures/technic_generator_side.png
index 5cbcbef..5cbcbef 100644
--- a/textures/technic_generator_side.png
+++ b/technic/technic/textures/technic_generator_side.png
Binary files differ
diff --git a/textures/technic_generator_top.png b/technic/technic/textures/technic_generator_top.png
index e2f3db3..e2f3db3 100644
--- a/textures/technic_generator_top.png
+++ b/technic/technic/textures/technic_generator_top.png
Binary files differ
diff --git a/textures/technic_geothermal_side.png b/technic/technic/textures/technic_geothermal_side.png
index 90fb430..90fb430 100644
--- a/textures/technic_geothermal_side.png
+++ b/technic/technic/textures/technic_geothermal_side.png
Binary files differ
diff --git a/textures/technic_geothermal_top.png b/technic/technic/textures/technic_geothermal_top.png
index 601ff15..601ff15 100644
--- a/textures/technic_geothermal_top.png
+++ b/technic/technic/textures/technic_geothermal_top.png
Binary files differ
diff --git a/textures/technic_geothermal_top_active.png b/technic/technic/textures/technic_geothermal_top_active.png
index f02bec6..f02bec6 100644
--- a/textures/technic_geothermal_top_active.png
+++ b/technic/technic/textures/technic_geothermal_top_active.png
Binary files differ
diff --git a/textures/technic_gold_chest_front.png b/technic/technic/textures/technic_gold_chest_front.png
index 9bc9615..9bc9615 100644
--- a/textures/technic_gold_chest_front.png
+++ b/technic/technic/textures/technic_gold_chest_front.png
Binary files differ
diff --git a/textures/technic_gold_chest_front_black.png b/technic/technic/textures/technic_gold_chest_front_black.png
index 6d0fe5e..6d0fe5e 100644
--- a/textures/technic_gold_chest_front_black.png
+++ b/technic/technic/textures/technic_gold_chest_front_black.png
Binary files differ
diff --git a/textures/technic_gold_chest_front_blue.png b/technic/technic/textures/technic_gold_chest_front_blue.png
index 7efe651..7efe651 100644
--- a/textures/technic_gold_chest_front_blue.png
+++ b/technic/technic/textures/technic_gold_chest_front_blue.png
Binary files differ
diff --git a/textures/technic_gold_chest_front_brown.png b/technic/technic/textures/technic_gold_chest_front_brown.png
index 4f4f34e..4f4f34e 100644
--- a/textures/technic_gold_chest_front_brown.png
+++ b/technic/technic/textures/technic_gold_chest_front_brown.png
Binary files differ
diff --git a/textures/technic_gold_chest_front_cyan.png b/technic/technic/textures/technic_gold_chest_front_cyan.png
index e33d76d..e33d76d 100644
--- a/textures/technic_gold_chest_front_cyan.png
+++ b/technic/technic/textures/technic_gold_chest_front_cyan.png
Binary files differ
diff --git a/textures/technic_gold_chest_front_dark_green.png b/technic/technic/textures/technic_gold_chest_front_dark_green.png
index 3088bbf..3088bbf 100644
--- a/textures/technic_gold_chest_front_dark_green.png
+++ b/technic/technic/textures/technic_gold_chest_front_dark_green.png
Binary files differ
diff --git a/textures/technic_gold_chest_front_dark_grey.png b/technic/technic/textures/technic_gold_chest_front_dark_grey.png
index 0aa03b4..0aa03b4 100644
--- a/textures/technic_gold_chest_front_dark_grey.png
+++ b/technic/technic/textures/technic_gold_chest_front_dark_grey.png
Binary files differ
diff --git a/textures/technic_gold_chest_front_green.png b/technic/technic/textures/technic_gold_chest_front_green.png
index 30da993..30da993 100644
--- a/textures/technic_gold_chest_front_green.png
+++ b/technic/technic/textures/technic_gold_chest_front_green.png
Binary files differ
diff --git a/textures/technic_gold_chest_front_grey.png b/technic/technic/textures/technic_gold_chest_front_grey.png
index eae7e69..eae7e69 100644
--- a/textures/technic_gold_chest_front_grey.png
+++ b/technic/technic/textures/technic_gold_chest_front_grey.png
Binary files differ
diff --git a/textures/technic_gold_chest_front_magenta.png b/technic/technic/textures/technic_gold_chest_front_magenta.png
index 6daed3b..6daed3b 100644
--- a/textures/technic_gold_chest_front_magenta.png
+++ b/technic/technic/textures/technic_gold_chest_front_magenta.png
Binary files differ
diff --git a/textures/technic_gold_chest_front_orange.png b/technic/technic/textures/technic_gold_chest_front_orange.png
index 085c102..085c102 100644
--- a/textures/technic_gold_chest_front_orange.png
+++ b/technic/technic/textures/technic_gold_chest_front_orange.png
Binary files differ
diff --git a/textures/technic_gold_chest_front_pink.png b/technic/technic/textures/technic_gold_chest_front_pink.png
index eada4da..eada4da 100644
--- a/textures/technic_gold_chest_front_pink.png
+++ b/technic/technic/textures/technic_gold_chest_front_pink.png
Binary files differ
diff --git a/textures/technic_gold_chest_front_red.png b/technic/technic/textures/technic_gold_chest_front_red.png
index b67da7b..b67da7b 100644
--- a/textures/technic_gold_chest_front_red.png
+++ b/technic/technic/textures/technic_gold_chest_front_red.png
Binary files differ
diff --git a/textures/technic_gold_chest_front_violet.png b/technic/technic/textures/technic_gold_chest_front_violet.png
index b62011c..b62011c 100644
--- a/textures/technic_gold_chest_front_violet.png
+++ b/technic/technic/textures/technic_gold_chest_front_violet.png
Binary files differ
diff --git a/textures/technic_gold_chest_front_white.png b/technic/technic/textures/technic_gold_chest_front_white.png
index 76b5ebf..76b5ebf 100644
--- a/textures/technic_gold_chest_front_white.png
+++ b/technic/technic/textures/technic_gold_chest_front_white.png
Binary files differ
diff --git a/textures/technic_gold_chest_front_yellow.png b/technic/technic/textures/technic_gold_chest_front_yellow.png
index b0ab9f4..b0ab9f4 100644
--- a/textures/technic_gold_chest_front_yellow.png
+++ b/technic/technic/textures/technic_gold_chest_front_yellow.png
Binary files differ
diff --git a/textures/technic_gold_chest_locked.png b/technic/technic/textures/technic_gold_chest_locked.png
index 91a8b73..91a8b73 100644
--- a/textures/technic_gold_chest_locked.png
+++ b/technic/technic/textures/technic_gold_chest_locked.png
Binary files differ
diff --git a/textures/technic_gold_chest_locked_black.png b/technic/technic/textures/technic_gold_chest_locked_black.png
index 5a5a568..5a5a568 100644
--- a/textures/technic_gold_chest_locked_black.png
+++ b/technic/technic/textures/technic_gold_chest_locked_black.png
Binary files differ
diff --git a/textures/technic_gold_chest_locked_blue.png b/technic/technic/textures/technic_gold_chest_locked_blue.png
index f369ebd..f369ebd 100644
--- a/textures/technic_gold_chest_locked_blue.png
+++ b/technic/technic/textures/technic_gold_chest_locked_blue.png
Binary files differ
diff --git a/textures/technic_gold_chest_locked_brown.png b/technic/technic/textures/technic_gold_chest_locked_brown.png
index a44a273..a44a273 100644
--- a/textures/technic_gold_chest_locked_brown.png
+++ b/technic/technic/textures/technic_gold_chest_locked_brown.png
Binary files differ
diff --git a/textures/technic_gold_chest_locked_cyan.png b/technic/technic/textures/technic_gold_chest_locked_cyan.png
index f3ce7b6..f3ce7b6 100644
--- a/textures/technic_gold_chest_locked_cyan.png
+++ b/technic/technic/textures/technic_gold_chest_locked_cyan.png
Binary files differ
diff --git a/textures/technic_gold_chest_locked_dark_green.png b/technic/technic/textures/technic_gold_chest_locked_dark_green.png
index 084dae5..084dae5 100644
--- a/textures/technic_gold_chest_locked_dark_green.png
+++ b/technic/technic/textures/technic_gold_chest_locked_dark_green.png
Binary files differ
diff --git a/textures/technic_gold_chest_locked_dark_grey.png b/technic/technic/textures/technic_gold_chest_locked_dark_grey.png
index 629e33c..629e33c 100644
--- a/textures/technic_gold_chest_locked_dark_grey.png
+++ b/technic/technic/textures/technic_gold_chest_locked_dark_grey.png
Binary files differ
diff --git a/textures/technic_gold_chest_locked_green.png b/technic/technic/textures/technic_gold_chest_locked_green.png
index 9ea1818..9ea1818 100644
--- a/textures/technic_gold_chest_locked_green.png
+++ b/technic/technic/textures/technic_gold_chest_locked_green.png
Binary files differ
diff --git a/textures/technic_gold_chest_locked_grey.png b/technic/technic/textures/technic_gold_chest_locked_grey.png
index c936d7c..c936d7c 100644
--- a/textures/technic_gold_chest_locked_grey.png
+++ b/technic/technic/textures/technic_gold_chest_locked_grey.png
Binary files differ
diff --git a/textures/technic_gold_chest_locked_magenta.png b/technic/technic/textures/technic_gold_chest_locked_magenta.png
index 4c97fa8..4c97fa8 100644
--- a/textures/technic_gold_chest_locked_magenta.png
+++ b/technic/technic/textures/technic_gold_chest_locked_magenta.png
Binary files differ
diff --git a/textures/technic_gold_chest_locked_orange.png b/technic/technic/textures/technic_gold_chest_locked_orange.png
index f6d5e90..f6d5e90 100644
--- a/textures/technic_gold_chest_locked_orange.png
+++ b/technic/technic/textures/technic_gold_chest_locked_orange.png
Binary files differ
diff --git a/textures/technic_gold_chest_locked_pink.png b/technic/technic/textures/technic_gold_chest_locked_pink.png
index 4248c21..4248c21 100644
--- a/textures/technic_gold_chest_locked_pink.png
+++ b/technic/technic/textures/technic_gold_chest_locked_pink.png
Binary files differ
diff --git a/textures/technic_gold_chest_locked_red.png b/technic/technic/textures/technic_gold_chest_locked_red.png
index 4bfe5d4..4bfe5d4 100644
--- a/textures/technic_gold_chest_locked_red.png
+++ b/technic/technic/textures/technic_gold_chest_locked_red.png
Binary files differ
diff --git a/textures/technic_gold_chest_locked_violet.png b/technic/technic/textures/technic_gold_chest_locked_violet.png
index c9abe73..c9abe73 100644
--- a/textures/technic_gold_chest_locked_violet.png
+++ b/technic/technic/textures/technic_gold_chest_locked_violet.png
Binary files differ
diff --git a/textures/technic_gold_chest_locked_white.png b/technic/technic/textures/technic_gold_chest_locked_white.png
index 810abb9..810abb9 100644
--- a/textures/technic_gold_chest_locked_white.png
+++ b/technic/technic/textures/technic_gold_chest_locked_white.png
Binary files differ
diff --git a/textures/technic_gold_chest_locked_yellow.png b/technic/technic/textures/technic_gold_chest_locked_yellow.png
index 2856165..2856165 100644
--- a/textures/technic_gold_chest_locked_yellow.png
+++ b/technic/technic/textures/technic_gold_chest_locked_yellow.png
Binary files differ
diff --git a/textures/technic_gold_chest_side.png b/technic/technic/textures/technic_gold_chest_side.png
index 5d5ad0f..5d5ad0f 100644
--- a/textures/technic_gold_chest_side.png
+++ b/technic/technic/textures/technic_gold_chest_side.png
Binary files differ
diff --git a/textures/technic_gold_chest_top.png b/technic/technic/textures/technic_gold_chest_top.png
index f9c8fec..f9c8fec 100644
--- a/textures/technic_gold_chest_top.png
+++ b/technic/technic/textures/technic_gold_chest_top.png
Binary files differ
diff --git a/textures/technic_gold_dust.png b/technic/technic/textures/technic_gold_dust.png
index e545bb6..e545bb6 100644
--- a/textures/technic_gold_dust.png
+++ b/technic/technic/textures/technic_gold_dust.png
Binary files differ
diff --git a/textures/technic_granite.png b/technic/technic/textures/technic_granite.png
index abb1385..abb1385 100644
--- a/textures/technic_granite.png
+++ b/technic/technic/textures/technic_granite.png
Binary files differ
diff --git a/textures/technic_grinder_front.png b/technic/technic/textures/technic_grinder_front.png
index a28dbc1..a28dbc1 100644
--- a/textures/technic_grinder_front.png
+++ b/technic/technic/textures/technic_grinder_front.png
Binary files differ
diff --git a/textures/technic_grinder_side.png b/technic/technic/textures/technic_grinder_side.png
index af562f2..af562f2 100644
--- a/textures/technic_grinder_side.png
+++ b/technic/technic/textures/technic_grinder_side.png
Binary files differ
diff --git a/textures/technic_grinder_top.png b/technic/technic/textures/technic_grinder_top.png
index b074e13..b074e13 100644
--- a/textures/technic_grinder_top.png
+++ b/technic/technic/textures/technic_grinder_top.png
Binary files differ
diff --git a/textures/technic_iron_chest_front.png b/technic/technic/textures/technic_iron_chest_front.png
index 79d5b49..79d5b49 100644
--- a/textures/technic_iron_chest_front.png
+++ b/technic/technic/textures/technic_iron_chest_front.png
Binary files differ
diff --git a/textures/technic_iron_chest_locked.png b/technic/technic/textures/technic_iron_chest_locked.png
index 6229487..6229487 100644
--- a/textures/technic_iron_chest_locked.png
+++ b/technic/technic/textures/technic_iron_chest_locked.png
Binary files differ
diff --git a/textures/technic_iron_chest_side.png b/technic/technic/textures/technic_iron_chest_side.png
index e12daa5..e12daa5 100644
--- a/textures/technic_iron_chest_side.png
+++ b/technic/technic/textures/technic_iron_chest_side.png
Binary files differ
diff --git a/textures/technic_iron_chest_top.png b/technic/technic/textures/technic_iron_chest_top.png
index da1ab7b..da1ab7b 100644
--- a/textures/technic_iron_chest_top.png
+++ b/technic/technic/textures/technic_iron_chest_top.png
Binary files differ
diff --git a/textures/technic_iron_dust.png b/technic/technic/textures/technic_iron_dust.png
index aaecd2b..aaecd2b 100644
--- a/textures/technic_iron_dust.png
+++ b/technic/technic/textures/technic_iron_dust.png
Binary files differ
diff --git a/textures/technic_laser_beam.png b/technic/technic/textures/technic_laser_beam.png
index 4814a9b..4814a9b 100644
--- a/textures/technic_laser_beam.png
+++ b/technic/technic/textures/technic_laser_beam.png
Binary files differ
diff --git a/textures/technic_lava_can.png b/technic/technic/textures/technic_lava_can.png
index 80d15a6..80d15a6 100644
--- a/textures/technic_lava_can.png
+++ b/technic/technic/textures/technic_lava_can.png
Binary files differ
diff --git a/textures/technic_light.png b/technic/technic/textures/technic_light.png
index 334cb07..334cb07 100644
--- a/textures/technic_light.png
+++ b/technic/technic/textures/technic_light.png
Binary files differ
diff --git a/textures/technic_lv_cable.png b/technic/technic/textures/technic_lv_cable.png
index 87076c9..87076c9 100644
--- a/textures/technic_lv_cable.png
+++ b/technic/technic/textures/technic_lv_cable.png
Binary files differ
diff --git a/textures/technic_lv_cable_wield.png b/technic/technic/textures/technic_lv_cable_wield.png
index c4ada04..c4ada04 100644
--- a/textures/technic_lv_cable_wield.png
+++ b/technic/technic/textures/technic_lv_cable_wield.png
Binary files differ
diff --git a/textures/technic_machine_bottom.png b/technic/technic/textures/technic_machine_bottom.png
index 48a47b0..48a47b0 100644
--- a/textures/technic_machine_bottom.png
+++ b/technic/technic/textures/technic_machine_bottom.png
Binary files differ
diff --git a/textures/technic_marble.png b/technic/technic/textures/technic_marble.png
index 846a170..846a170 100644
--- a/textures/technic_marble.png
+++ b/technic/technic/textures/technic_marble.png
Binary files differ
diff --git a/textures/technic_marble_bricks.png b/technic/technic/textures/technic_marble_bricks.png
index 2ea1e42..2ea1e42 100644
--- a/textures/technic_marble_bricks.png
+++ b/technic/technic/textures/technic_marble_bricks.png
Binary files differ
diff --git a/textures/technic_menu_bg.png b/technic/technic/textures/technic_menu_bg.png
index 18e6a56..18e6a56 100644
--- a/textures/technic_menu_bg.png
+++ b/technic/technic/textures/technic_menu_bg.png
Binary files differ
diff --git a/textures/technic_mineral_chromium.png b/technic/technic/textures/technic_mineral_chromium.png
index c66f1c5..c66f1c5 100644
--- a/textures/technic_mineral_chromium.png
+++ b/technic/technic/textures/technic_mineral_chromium.png
Binary files differ
diff --git a/textures/technic_mineral_diamond.png b/technic/technic/textures/technic_mineral_diamond.png
index 2d91505..2d91505 100644
--- a/textures/technic_mineral_diamond.png
+++ b/technic/technic/textures/technic_mineral_diamond.png
Binary files differ
diff --git a/textures/technic_mineral_uranium.png b/technic/technic/textures/technic_mineral_uranium.png
index aad9c07..aad9c07 100644
--- a/textures/technic_mineral_uranium.png
+++ b/technic/technic/textures/technic_mineral_uranium.png
Binary files differ
diff --git a/textures/technic_mineral_zinc.png b/technic/technic/textures/technic_mineral_zinc.png
index 598efeb..598efeb 100644
--- a/textures/technic_mineral_zinc.png
+++ b/technic/technic/textures/technic_mineral_zinc.png
Binary files differ
diff --git a/textures/technic_mining_drill.png b/technic/technic/textures/technic_mining_drill.png
index 171888d..171888d 100644
--- a/textures/technic_mining_drill.png
+++ b/technic/technic/textures/technic_mining_drill.png
Binary files differ
diff --git a/textures/technic_mining_laser_mk1.png b/technic/technic/textures/technic_mining_laser_mk1.png
index acde392..acde392 100644
--- a/textures/technic_mining_laser_mk1.png
+++ b/technic/technic/textures/technic_mining_laser_mk1.png
Binary files differ
diff --git a/textures/technic_mithril_chest_front.png b/technic/technic/textures/technic_mithril_chest_front.png
index 9f7ca7e..9f7ca7e 100644
--- a/textures/technic_mithril_chest_front.png
+++ b/technic/technic/textures/technic_mithril_chest_front.png
Binary files differ
diff --git a/textures/technic_mithril_chest_locked.png b/technic/technic/textures/technic_mithril_chest_locked.png
index abff384..abff384 100644
--- a/textures/technic_mithril_chest_locked.png
+++ b/technic/technic/textures/technic_mithril_chest_locked.png
Binary files differ
diff --git a/textures/technic_mithril_chest_side.png b/technic/technic/textures/technic_mithril_chest_side.png
index 0763511..0763511 100644
--- a/textures/technic_mithril_chest_side.png
+++ b/technic/technic/textures/technic_mithril_chest_side.png
Binary files differ
diff --git a/textures/technic_mithril_chest_top.png b/technic/technic/textures/technic_mithril_chest_top.png
index 2429576..2429576 100644
--- a/textures/technic_mithril_chest_top.png
+++ b/technic/technic/textures/technic_mithril_chest_top.png
Binary files differ
diff --git a/textures/technic_mithril_dust.png b/technic/technic/textures/technic_mithril_dust.png
index 988e449..988e449 100644
--- a/textures/technic_mithril_dust.png
+++ b/technic/technic/textures/technic_mithril_dust.png
Binary files differ
diff --git a/textures/technic_motor.png b/technic/technic/textures/technic_motor.png
index 77d4b91..77d4b91 100644
--- a/textures/technic_motor.png
+++ b/technic/technic/textures/technic_motor.png
Binary files differ
diff --git a/textures/technic_music_player_bottom.png b/technic/technic/textures/technic_music_player_bottom.png
index bd8fd55..bd8fd55 100644
--- a/textures/technic_music_player_bottom.png
+++ b/technic/technic/textures/technic_music_player_bottom.png
Binary files differ
diff --git a/textures/technic_music_player_side.png b/technic/technic/textures/technic_music_player_side.png
index 6c34fea..6c34fea 100644
--- a/textures/technic_music_player_side.png
+++ b/technic/technic/textures/technic_music_player_side.png
Binary files differ
diff --git a/textures/technic_music_player_top.png b/technic/technic/textures/technic_music_player_top.png
index 0d34563..0d34563 100644
--- a/textures/technic_music_player_top.png
+++ b/technic/technic/textures/technic_music_player_top.png
Binary files differ
diff --git a/textures/technic_mv_battery_box_bottom.png b/technic/technic/textures/technic_mv_battery_box_bottom.png
index 2a9b292..2a9b292 100644
--- a/textures/technic_mv_battery_box_bottom.png
+++ b/technic/technic/textures/technic_mv_battery_box_bottom.png
Binary files differ
diff --git a/textures/technic_mv_battery_box_side0.png b/technic/technic/textures/technic_mv_battery_box_side0.png
index 39d8986..39d8986 100644
--- a/textures/technic_mv_battery_box_side0.png
+++ b/technic/technic/textures/technic_mv_battery_box_side0.png
Binary files differ
diff --git a/textures/technic_mv_battery_box_top.png b/technic/technic/textures/technic_mv_battery_box_top.png
index f7f1ea9..f7f1ea9 100644
--- a/textures/technic_mv_battery_box_top.png
+++ b/technic/technic/textures/technic_mv_battery_box_top.png
Binary files differ
diff --git a/textures/technic_mv_cable.png b/technic/technic/textures/technic_mv_cable.png
index 2819d2b..2819d2b 100644
--- a/textures/technic_mv_cable.png
+++ b/technic/technic/textures/technic_mv_cable.png
Binary files differ
diff --git a/textures/technic_mv_cable_wield.png b/technic/technic/textures/technic_mv_cable_wield.png
index aca9fd4..aca9fd4 100644
--- a/textures/technic_mv_cable_wield.png
+++ b/technic/technic/textures/technic_mv_cable_wield.png
Binary files differ
diff --git a/textures/technic_mv_solar_panel_bottom.png b/technic/technic/textures/technic_mv_solar_panel_bottom.png
index 94c8222..94c8222 100644
--- a/textures/technic_mv_solar_panel_bottom.png
+++ b/technic/technic/textures/technic_mv_solar_panel_bottom.png
Binary files differ
diff --git a/textures/technic_mv_solar_panel_side.png b/technic/technic/textures/technic_mv_solar_panel_side.png
index d39d3d8..d39d3d8 100644
--- a/textures/technic_mv_solar_panel_side.png
+++ b/technic/technic/textures/technic_mv_solar_panel_side.png
Binary files differ
diff --git a/textures/technic_mv_solar_panel_top.png b/technic/technic/textures/technic_mv_solar_panel_top.png
index 3d8c7ab..3d8c7ab 100644
--- a/textures/technic_mv_solar_panel_top.png
+++ b/technic/technic/textures/technic_mv_solar_panel_top.png
Binary files differ
diff --git a/textures/technic_mv_transformer.png b/technic/technic/textures/technic_mv_transformer.png
index 7c4688e..7c4688e 100644
--- a/textures/technic_mv_transformer.png
+++ b/technic/technic/textures/technic_mv_transformer.png
Binary files differ
diff --git a/textures/technic_nodebreaker_back.png b/technic/technic/textures/technic_nodebreaker_back.png
index b669ef6..b669ef6 100644
--- a/textures/technic_nodebreaker_back.png
+++ b/technic/technic/textures/technic_nodebreaker_back.png
Binary files differ
diff --git a/textures/technic_nodebreaker_bottom.png b/technic/technic/textures/technic_nodebreaker_bottom.png
index ff1a2c6..ff1a2c6 100644
--- a/textures/technic_nodebreaker_bottom.png
+++ b/technic/technic/textures/technic_nodebreaker_bottom.png
Binary files differ
diff --git a/textures/technic_nodebreaker_bottom_off.png b/technic/technic/textures/technic_nodebreaker_bottom_off.png
index 410617a..410617a 100644
--- a/textures/technic_nodebreaker_bottom_off.png
+++ b/technic/technic/textures/technic_nodebreaker_bottom_off.png
Binary files differ
diff --git a/textures/technic_nodebreaker_bottom_on.png b/technic/technic/textures/technic_nodebreaker_bottom_on.png
index d6da4d8..d6da4d8 100644
--- a/textures/technic_nodebreaker_bottom_on.png
+++ b/technic/technic/textures/technic_nodebreaker_bottom_on.png
Binary files differ
diff --git a/textures/technic_nodebreaker_front_off.png b/technic/technic/textures/technic_nodebreaker_front_off.png
index 5a25b4c..5a25b4c 100644
--- a/textures/technic_nodebreaker_front_off.png
+++ b/technic/technic/textures/technic_nodebreaker_front_off.png
Binary files differ
diff --git a/textures/technic_nodebreaker_front_on.png b/technic/technic/textures/technic_nodebreaker_front_on.png
index 97d22c3..97d22c3 100644
--- a/textures/technic_nodebreaker_front_on.png
+++ b/technic/technic/textures/technic_nodebreaker_front_on.png
Binary files differ
diff --git a/textures/technic_nodebreaker_side.png b/technic/technic/textures/technic_nodebreaker_side.png
index aefd7c8..aefd7c8 100644
--- a/textures/technic_nodebreaker_side.png
+++ b/technic/technic/textures/technic_nodebreaker_side.png
Binary files differ
diff --git a/textures/technic_nodebreaker_side1.png b/technic/technic/textures/technic_nodebreaker_side1.png
index 8cb8634..8cb8634 100644
--- a/textures/technic_nodebreaker_side1.png
+++ b/technic/technic/textures/technic_nodebreaker_side1.png
Binary files differ
diff --git a/textures/technic_nodebreaker_side1_off.png b/technic/technic/textures/technic_nodebreaker_side1_off.png
index 5e36d3a..5e36d3a 100644
--- a/textures/technic_nodebreaker_side1_off.png
+++ b/technic/technic/textures/technic_nodebreaker_side1_off.png
Binary files differ
diff --git a/textures/technic_nodebreaker_side1_on.png b/technic/technic/textures/technic_nodebreaker_side1_on.png
index c76ccff..c76ccff 100644
--- a/textures/technic_nodebreaker_side1_on.png
+++ b/technic/technic/textures/technic_nodebreaker_side1_on.png
Binary files differ
diff --git a/textures/technic_nodebreaker_side2.png b/technic/technic/textures/technic_nodebreaker_side2.png
index c2855d0..c2855d0 100644
--- a/textures/technic_nodebreaker_side2.png
+++ b/technic/technic/textures/technic_nodebreaker_side2.png
Binary files differ
diff --git a/textures/technic_nodebreaker_side2_off.png b/technic/technic/textures/technic_nodebreaker_side2_off.png
index 622ff7c..622ff7c 100644
--- a/textures/technic_nodebreaker_side2_off.png
+++ b/technic/technic/textures/technic_nodebreaker_side2_off.png
Binary files differ
diff --git a/textures/technic_nodebreaker_side2_on.png b/technic/technic/textures/technic_nodebreaker_side2_on.png
index c54e467..c54e467 100644
--- a/textures/technic_nodebreaker_side2_on.png
+++ b/technic/technic/textures/technic_nodebreaker_side2_on.png
Binary files differ
diff --git a/textures/technic_nodebreaker_top.png b/technic/technic/textures/technic_nodebreaker_top.png
index 941d333..941d333 100644
--- a/textures/technic_nodebreaker_top.png
+++ b/technic/technic/textures/technic_nodebreaker_top.png
Binary files differ
diff --git a/textures/technic_nodebreaker_top_off.png b/technic/technic/textures/technic_nodebreaker_top_off.png
index 1f9b361..1f9b361 100644
--- a/textures/technic_nodebreaker_top_off.png
+++ b/technic/technic/textures/technic_nodebreaker_top_off.png
Binary files differ
diff --git a/textures/technic_nodebreaker_top_on.png b/technic/technic/textures/technic_nodebreaker_top_on.png
index d02ed10..d02ed10 100644
--- a/textures/technic_nodebreaker_top_on.png
+++ b/technic/technic/textures/technic_nodebreaker_top_on.png
Binary files differ
diff --git a/textures/technic_power_meter.png b/technic/technic/textures/technic_power_meter.png
index f1e5120..f1e5120 100644
--- a/textures/technic_power_meter.png
+++ b/technic/technic/textures/technic_power_meter.png
Binary files differ
diff --git a/textures/technic_power_meter1.png b/technic/technic/textures/technic_power_meter1.png
index 0542c7b..0542c7b 100644
--- a/textures/technic_power_meter1.png
+++ b/technic/technic/textures/technic_power_meter1.png
Binary files differ
diff --git a/textures/technic_power_meter2.png b/technic/technic/textures/technic_power_meter2.png
index bf5703c..bf5703c 100644
--- a/textures/technic_power_meter2.png
+++ b/technic/technic/textures/technic_power_meter2.png
Binary files differ
diff --git a/textures/technic_power_meter3.png b/technic/technic/textures/technic_power_meter3.png
index 4204815..4204815 100644
--- a/textures/technic_power_meter3.png
+++ b/technic/technic/textures/technic_power_meter3.png
Binary files differ
diff --git a/textures/technic_power_meter4.png b/technic/technic/textures/technic_power_meter4.png
index 82a0148..82a0148 100644
--- a/textures/technic_power_meter4.png
+++ b/technic/technic/textures/technic_power_meter4.png
Binary files differ
diff --git a/textures/technic_power_meter5.png b/technic/technic/textures/technic_power_meter5.png
index af783ca..af783ca 100644
--- a/textures/technic_power_meter5.png
+++ b/technic/technic/textures/technic_power_meter5.png
Binary files differ
diff --git a/textures/technic_power_meter6.png b/technic/technic/textures/technic_power_meter6.png
index 44feff4..44feff4 100644
--- a/textures/technic_power_meter6.png
+++ b/technic/technic/textures/technic_power_meter6.png
Binary files differ
diff --git a/textures/technic_power_meter7.png b/technic/technic/textures/technic_power_meter7.png
index 554baa2..554baa2 100644
--- a/textures/technic_power_meter7.png
+++ b/technic/technic/textures/technic_power_meter7.png
Binary files differ
diff --git a/textures/technic_power_meter8.png b/technic/technic/textures/technic_power_meter8.png
index 8c4f4a8..8c4f4a8 100644
--- a/textures/technic_power_meter8.png
+++ b/technic/technic/textures/technic_power_meter8.png
Binary files differ
diff --git a/textures/technic_power_meter_bg.png b/technic/technic/textures/technic_power_meter_bg.png
index 9667cda..9667cda 100644
--- a/textures/technic_power_meter_bg.png
+++ b/technic/technic/textures/technic_power_meter_bg.png
Binary files differ
diff --git a/textures/technic_power_meter_fg.png b/technic/technic/textures/technic_power_meter_fg.png
index 7f2dde8..7f2dde8 100644
--- a/textures/technic_power_meter_fg.png
+++ b/technic/technic/textures/technic_power_meter_fg.png
Binary files differ
diff --git a/textures/technic_raw_latex.png b/technic/technic/textures/technic_raw_latex.png
index 7fbbe64..7fbbe64 100644
--- a/textures/technic_raw_latex.png
+++ b/technic/technic/textures/technic_raw_latex.png
Binary files differ
diff --git a/textures/technic_rebar.png b/technic/technic/textures/technic_rebar.png
index 16d1fc5..16d1fc5 100644
--- a/textures/technic_rebar.png
+++ b/technic/technic/textures/technic_rebar.png
Binary files differ
diff --git a/textures/technic_rubber.png b/technic/technic/textures/technic_rubber.png
index 9ed4a9d..9ed4a9d 100644
--- a/textures/technic_rubber.png
+++ b/technic/technic/textures/technic_rubber.png
Binary files differ
diff --git a/textures/technic_rubber_sapling.png b/technic/technic/textures/technic_rubber_sapling.png
index e5c9f5d..e5c9f5d 100644
--- a/textures/technic_rubber_sapling.png
+++ b/technic/technic/textures/technic_rubber_sapling.png
Binary files differ
diff --git a/textures/technic_rubber_tree_empty.png b/technic/technic/textures/technic_rubber_tree_empty.png
index 1792951..1792951 100644
--- a/textures/technic_rubber_tree_empty.png
+++ b/technic/technic/textures/technic_rubber_tree_empty.png
Binary files differ
diff --git a/textures/technic_rubber_tree_full.png b/technic/technic/textures/technic_rubber_tree_full.png
index 08067ef..08067ef 100644
--- a/textures/technic_rubber_tree_full.png
+++ b/technic/technic/textures/technic_rubber_tree_full.png
Binary files differ
diff --git a/textures/technic_screwdriver.png b/technic/technic/textures/technic_screwdriver.png
index bd2da22..bd2da22 100644
--- a/textures/technic_screwdriver.png
+++ b/technic/technic/textures/technic_screwdriver.png
Binary files differ
diff --git a/textures/technic_silicon_wafer.png b/technic/technic/textures/technic_silicon_wafer.png
index 78aef20..78aef20 100644
--- a/textures/technic_silicon_wafer.png
+++ b/technic/technic/textures/technic_silicon_wafer.png
Binary files differ
diff --git a/textures/technic_silver_chest_front.png b/technic/technic/textures/technic_silver_chest_front.png
index fe5ce2c..fe5ce2c 100644
--- a/textures/technic_silver_chest_front.png
+++ b/technic/technic/textures/technic_silver_chest_front.png
Binary files differ
diff --git a/textures/technic_silver_chest_locked.png b/technic/technic/textures/technic_silver_chest_locked.png
index 0f8b1f0..0f8b1f0 100644
--- a/textures/technic_silver_chest_locked.png
+++ b/technic/technic/textures/technic_silver_chest_locked.png
Binary files differ
diff --git a/textures/technic_silver_chest_side.png b/technic/technic/textures/technic_silver_chest_side.png
index 3a2ed4a..3a2ed4a 100644
--- a/textures/technic_silver_chest_side.png
+++ b/technic/technic/textures/technic_silver_chest_side.png
Binary files differ
diff --git a/textures/technic_silver_chest_top.png b/technic/technic/textures/technic_silver_chest_top.png
index 353a11c..353a11c 100644
--- a/textures/technic_silver_chest_top.png
+++ b/technic/technic/textures/technic_silver_chest_top.png
Binary files differ
diff --git a/textures/technic_silver_dust.png b/technic/technic/textures/technic_silver_dust.png
index 9092c90..9092c90 100644
--- a/textures/technic_silver_dust.png
+++ b/technic/technic/textures/technic_silver_dust.png
Binary files differ
diff --git a/textures/technic_solar_panel_bottom.png b/technic/technic/textures/technic_solar_panel_bottom.png
index b0ad82f..b0ad82f 100644
--- a/textures/technic_solar_panel_bottom.png
+++ b/technic/technic/textures/technic_solar_panel_bottom.png
Binary files differ
diff --git a/textures/technic_solar_panel_side.png b/technic/technic/textures/technic_solar_panel_side.png
index b22447e..b22447e 100644
--- a/textures/technic_solar_panel_side.png
+++ b/technic/technic/textures/technic_solar_panel_side.png
Binary files differ
diff --git a/textures/technic_solar_panel_top.png b/technic/technic/textures/technic_solar_panel_top.png
index 492764b..492764b 100644
--- a/textures/technic_solar_panel_top.png
+++ b/technic/technic/textures/technic_solar_panel_top.png
Binary files differ
diff --git a/textures/technic_sonic_screwdriver.png b/technic/technic/textures/technic_sonic_screwdriver.png
index fb61d96..fb61d96 100644
--- a/textures/technic_sonic_screwdriver.png
+++ b/technic/technic/textures/technic_sonic_screwdriver.png
Binary files differ
diff --git a/textures/technic_stainless_steel_dust.png b/technic/technic/textures/technic_stainless_steel_dust.png
index 450e2bb..450e2bb 100644
--- a/textures/technic_stainless_steel_dust.png
+++ b/technic/technic/textures/technic_stainless_steel_dust.png
Binary files differ
diff --git a/textures/technic_stainless_steel_ingot.png b/technic/technic/textures/technic_stainless_steel_ingot.png
index 46fa296..46fa296 100644
--- a/textures/technic_stainless_steel_ingot.png
+++ b/technic/technic/textures/technic_stainless_steel_ingot.png
Binary files differ
diff --git a/textures/technic_tin_dust.png b/technic/technic/textures/technic_tin_dust.png
index 4e94e00..4e94e00 100644
--- a/textures/technic_tin_dust.png
+++ b/technic/technic/textures/technic_tin_dust.png
Binary files differ
diff --git a/textures/technic_tree_tap.png b/technic/technic/textures/technic_tree_tap.png
index 542f30f..542f30f 100644
--- a/textures/technic_tree_tap.png
+++ b/technic/technic/textures/technic_tree_tap.png
Binary files differ
diff --git a/textures/technic_uranium.png b/technic/technic/textures/technic_uranium.png
index 54225f8..54225f8 100644
--- a/textures/technic_uranium.png
+++ b/technic/technic/textures/technic_uranium.png
Binary files differ
diff --git a/textures/technic_water_can.png b/technic/technic/textures/technic_water_can.png
index 18e0225..18e0225 100644
--- a/textures/technic_water_can.png
+++ b/technic/technic/textures/technic_water_can.png
Binary files differ
diff --git a/textures/technic_water_mill_side.png b/technic/technic/textures/technic_water_mill_side.png
index f4bdb16..f4bdb16 100644
--- a/textures/technic_water_mill_side.png
+++ b/technic/technic/textures/technic_water_mill_side.png
Binary files differ
diff --git a/textures/technic_water_mill_top.png b/technic/technic/textures/technic_water_mill_top.png
index 601ff15..601ff15 100644
--- a/textures/technic_water_mill_top.png
+++ b/technic/technic/textures/technic_water_mill_top.png
Binary files differ
diff --git a/textures/technic_water_mill_top_active.png b/technic/technic/textures/technic_water_mill_top_active.png
index f02bec6..f02bec6 100644
--- a/textures/technic_water_mill_top_active.png
+++ b/technic/technic/textures/technic_water_mill_top_active.png
Binary files differ
diff --git a/textures/technic_workshop_bottom.png b/technic/technic/textures/technic_workshop_bottom.png
index bd8fd55..bd8fd55 100644
--- a/textures/technic_workshop_bottom.png
+++ b/technic/technic/textures/technic_workshop_bottom.png
Binary files differ
diff --git a/textures/technic_workshop_side.png b/technic/technic/textures/technic_workshop_side.png
index 9e3e7a7..9e3e7a7 100644
--- a/textures/technic_workshop_side.png
+++ b/technic/technic/textures/technic_workshop_side.png
Binary files differ
diff --git a/textures/technic_workshop_top.png b/technic/technic/textures/technic_workshop_top.png
index feae141..feae141 100644
--- a/textures/technic_workshop_top.png
+++ b/technic/technic/textures/technic_workshop_top.png
Binary files differ
diff --git a/textures/technic_zinc_dust.png b/technic/technic/textures/technic_zinc_dust.png
index 0d2f75a..0d2f75a 100644
--- a/textures/technic_zinc_dust.png
+++ b/technic/technic/textures/technic_zinc_dust.png
Binary files differ
diff --git a/textures/technic_zinc_ingot.png b/technic/technic/textures/technic_zinc_ingot.png
index 096ff9c..096ff9c 100644
--- a/textures/technic_zinc_ingot.png
+++ b/technic/technic/textures/technic_zinc_ingot.png
Binary files differ
diff --git a/textures/technic_zinc_lump.png b/technic/technic/textures/technic_zinc_lump.png
index d28a6dc..d28a6dc 100644
--- a/textures/technic_zinc_lump.png
+++ b/technic/technic/textures/technic_zinc_lump.png
Binary files differ
diff --git a/technic/technic/textures/tetris_machine_front1.png b/technic/technic/textures/tetris_machine_front1.png
new file mode 100644
index 0000000..747bdd2
--- /dev/null
+++ b/technic/technic/textures/tetris_machine_front1.png
Binary files differ
diff --git a/technic/technic/textures/tetris_machine_front2.png b/technic/technic/textures/tetris_machine_front2.png
new file mode 100644
index 0000000..3ad0908
--- /dev/null
+++ b/technic/technic/textures/tetris_machine_front2.png
Binary files differ
diff --git a/technic/technic/textures/tetris_machine_side1B.png b/technic/technic/textures/tetris_machine_side1B.png
new file mode 100644
index 0000000..de1e034
--- /dev/null
+++ b/technic/technic/textures/tetris_machine_side1B.png
Binary files differ
diff --git a/technic/technic/textures/tetris_machine_side1L.png b/technic/technic/textures/tetris_machine_side1L.png
new file mode 100644
index 0000000..73942cf
--- /dev/null
+++ b/technic/technic/textures/tetris_machine_side1L.png
Binary files differ
diff --git a/technic/technic/textures/tetris_machine_side1P.png b/technic/technic/textures/tetris_machine_side1P.png
new file mode 100644
index 0000000..73942cf
--- /dev/null
+++ b/technic/technic/textures/tetris_machine_side1P.png
Binary files differ
diff --git a/technic/technic/textures/tetris_machine_side2B.png b/technic/technic/textures/tetris_machine_side2B.png
new file mode 100644
index 0000000..e8e42fe
--- /dev/null
+++ b/technic/technic/textures/tetris_machine_side2B.png
Binary files differ
diff --git a/technic/technic/textures/tetris_machine_side2L.png b/technic/technic/textures/tetris_machine_side2L.png
new file mode 100644
index 0000000..a619eb3
--- /dev/null
+++ b/technic/technic/textures/tetris_machine_side2L.png
Binary files differ
diff --git a/technic/technic/textures/tetris_machine_side2P.png b/technic/technic/textures/tetris_machine_side2P.png
new file mode 100644
index 0000000..650fc3b
--- /dev/null
+++ b/technic/technic/textures/tetris_machine_side2P.png
Binary files differ
diff --git a/technic/technic/textures/tetris_machine_top.png b/technic/technic/textures/tetris_machine_top.png
new file mode 100644
index 0000000..f1c3ac2
--- /dev/null
+++ b/technic/technic/textures/tetris_machine_top.png
Binary files differ
diff --git a/tool_workshop.lua b/technic/technic/tool_workshop.lua
index 86130ff..86130ff 100644
--- a/tool_workshop.lua
+++ b/technic/technic/tool_workshop.lua
diff --git a/tree_tap.lua b/technic/technic/tree_tap.lua
index 76f50ef..107faed 100644
--- a/tree_tap.lua
+++ b/technic/technic/tree_tap.lua
@@ -7,7 +7,7 @@
local pos=minetest.get_pointed_thing_position(pointed_thing,above)
local node=minetest.env:get_node(pos)
local node_name=node.name
- if node_name == "farming_plus:rubber_tree_full" then
+ if node_name == "farming_plus:rubber_tree_full" or node_name == "farming:rubber_tree_full" or node_name == "technic:rubber_tree_full" then
user:get_inventory():add_item("main",ItemStack("technic:raw_latex"))
minetest.env:set_node(pos,node)
local item=itemstack:to_table()
diff --git a/technic/technic/water.lua b/technic/technic/water.lua
new file mode 100644
index 0000000..6ddaa46
--- /dev/null
+++ b/technic/technic/water.lua
@@ -0,0 +1,588 @@
+minetest.register_alias("battery", "technic:battery")
+minetest.register_alias("battery_box", "technic:battery_box")
+minetest.register_alias("electric_furnace", "technic:electric_furnace")
+
+
+minetest.register_craft({
+ output = 'technic:battery 1',
+ recipe = {
+ {'default:wood', 'moreores:copper_ingot', 'default:wood'},
+ {'default:wood', 'moreores:tin_ingot', 'default:wood'},
+ {'default:wood', 'moreores:copper_ingot', 'default:wood'},
+ }
+})
+
+minetest.register_craft({
+ output = 'technic:battery_box 1',
+ recipe = {
+ {'technic:battery', 'default:wood', 'technic:battery'},
+ {'technic:battery', 'moreores:copper_ingot', 'technic:battery'},
+ {'default:steel_ingot', 'default:steel_ingot', 'default:steel_ingot'},
+ }
+})
+
+minetest.register_craft({
+ output = 'technic:electric_furnace',
+ recipe = {
+ {'default:brick', 'default:brick', 'default:brick'},
+ {'default:brick', '', 'default:brick'},
+ {'default:steel_ingot', 'moreores:copper_ingot', 'default:steel_ingot'},
+ }
+})
+
+
+--minetest.register_craftitem("technic:battery", {
+-- description = "Recharcheable battery",
+-- inventory_image = "technic_battery.png",
+-- stack_max = 1,
+--})
+
+minetest.register_tool("technic:battery",
+{description = "RE Battery",
+inventory_image = "technic_battery.png",
+energy_charge = 0,
+tool_capabilities = {max_drop_level=0, groupcaps={fleshy={times={}, uses=10000, maxlevel=0}}}})
+
+minetest.register_craftitem("technic:battery_box", {
+ description = "Battery box",
+ stack_max = 99,
+})
+
+
+
+battery_box_formspec =
+ "invsize[8,9;]"..
+ "image[1,1;1,2;technic_power_meter_bg.png]"..
+ "list[current_name;src;3,1;1,1;]"..
+ "image[4,1;1,1;technic_battery_reload.png]"..
+ "list[current_name;dst;5,1;1,1;]"..
+ "label[0,0;Battery box]"..
+ "label[3,0;Charge]"..
+ "label[5,0;Discharge]"..
+ "label[1,3;Power level]"..
+ "list[current_player;main;0,5;8,4;]"
+
+minetest.register_node("technic:battery_box", {
+ description = "Battery box",
+ tiles = {"technic_battery_box_top.png", "technic_battery_box_bottom.png", "technic_battery_box_side.png",
+ "technic_battery_box_side.png", "technic_battery_box_side.png", "technic_battery_box_side.png"},
+ groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2},
+ sounds = default.node_sound_wood_defaults(),
+ technic_power_machine=1,
+ on_construct = function(pos)
+ local meta = minetest.env:get_meta(pos)
+ meta:set_string("infotext", "Battery box")
+ meta:set_float("technic_power_machine", 1)
+ meta:set_string("formspec", battery_box_formspec)
+ local inv = meta:get_inventory()
+ inv:set_size("src", 1)
+ inv:set_size("dst", 1)
+ battery_charge = 0
+ max_charge = 60000
+ end,
+ can_dig = function(pos,player)
+ local meta = minetest.env:get_meta(pos);
+ local inv = meta:get_inventory()
+ if not inv:is_empty("dst") then
+ return false
+ elseif not inv:is_empty("src") then
+ return false
+ end
+ return true
+ end,
+})
+
+electric_furnace_formspec =
+ "invsize[8,9;]"..
+ "image[1,1;1,2;technic_power_meter_bg.png]"..
+ "list[current_name;src;3,1;1,1;]"..
+ "list[current_name;dst;5,1;2,2;]"..
+ "list[current_player;main;0,5;8,4;]"..
+ "label[0,0;Electric Furnace]"..
+ "label[1,3;Power level]"
+
+minetest.register_node("technic:electric_furnace", {
+ description = "Electric furnace",
+ tiles = {"technic_electric_furnace_top.png", "technic_electric_furnace_bottom.png", "technic_electric_furnace_side.png",
+ "technic_electric_furnace_side.png", "technic_electric_furnace_side.png", "technic_electric_furnace_front.png"},
+ paramtype2 = "facedir",
+ groups = {cracky=2},
+ legacy_facedir_simple = true,
+ sounds = default.node_sound_stone_defaults(),
+ technic_power_machine=1,
+ internal_EU_buffer=0;
+ interal_EU_buffer_size=2000;
+ on_construct = function(pos)
+ local meta = minetest.env:get_meta(pos)
+ meta:set_float("technic_power_machine", 1)
+ meta:set_string("formspec", electric_furnace_formspec)
+ meta:set_string("infotext", "Electric furnace")
+ local inv = meta:get_inventory()
+ inv:set_size("src", 1)
+ inv:set_size("dst", 4)
+ local EU_used = 0
+ local furnace_is_cookin = 0
+ local cooked = nil
+ meta:set_float("internal_EU_buffer",0)
+ meta:set_float("internal_EU_buffer_size",2000)
+
+ end,
+ can_dig = function(pos,player)
+ local meta = minetest.env:get_meta(pos);
+ local inv = meta:get_inventory()
+ if not inv:is_empty("dst") then
+ return false
+ elseif not inv:is_empty("src") then
+ return false
+ end
+ return true
+ end,
+})
+
+minetest.register_node("technic:electric_furnace_active", {
+ description = "Electric Furnace",
+ tiles = {"technic_electric_furnace_top.png", "technic_electric_furnace_bottom.png", "technic_electric_furnace_side.png",
+ "technic_electric_furnace_side.png", "technic_electric_furnace_side.png", "technic_electric_furnace_front_active.png"},
+ paramtype2 = "facedir",
+ light_source = 8,
+ drop = "technic:electric_furnace",
+ groups = {cracky=2, not_in_creative_inventory=1},
+ legacy_facedir_simple = true,
+ sounds = default.node_sound_stone_defaults(),
+ internal_EU_buffer=0;
+ interal_EU_buffer_size=2000;
+ technic_power_machine=1,
+ on_construct = function(pos)
+ local meta = minetest.env:get_meta(pos)
+ meta:set_float("technic_power_machine", 1)
+ meta:set_string("formspec", electric_furnace_formspec)
+ meta:set_string("infotext", "Electric furnace");
+ local inv = meta:get_inventory()
+ inv:set_size("src", 1)
+ inv:set_size("dst", 4)
+ local EU_used = 0
+ local furnace_is_cookin = 0
+ local cooked = nil
+ end,
+ can_dig = function(pos,player)
+ local meta = minetest.env:get_meta(pos);
+ local inv = meta:get_inventory()
+ if not inv:is_empty("dst") then
+ return false
+ elseif not inv:is_empty("src") then
+ return false
+ end
+ return true
+ end,
+})
+
+minetest.register_abm({
+ nodenames = {"technic:electric_furnace","technic:electric_furnace_active"},
+ interval = 1,
+ chance = 1,
+
+ action = function(pos, node, active_object_count, active_object_count_wider)
+
+ local meta = minetest.env:get_meta(pos)
+ internal_EU_buffer=meta:get_float("internal_EU_buffer")
+ internal_EU_buffer_size=meta:get_float("internal_EU_buffer")
+ local load = math.floor(internal_EU_buffer/2000 * 100)
+ meta:set_string("formspec",
+ "invsize[8,9;]"..
+ "image[1,1;1,2;technic_power_meter_bg.png^[lowpart:"..
+ (load)..":technic_power_meter_fg.png]"..
+ "list[current_name;src;3,1;1,1;]"..
+ "list[current_name;dst;5,1;2,2;]"..
+ "list[current_player;main;0,5;8,4;]"..
+ "label[0,0;Electric Furnace]"..
+ "label[1,3;Power level]")
+
+ local inv = meta:get_inventory()
+
+ local furnace_is_cookin = meta:get_float("furnace_is_cookin")
+
+
+ local srclist = inv:get_list("src")
+ local cooked=nil
+
+ if srclist then
+ cooked = minetest.get_craft_result({method = "cooking", width = 1, items = srclist})
+ end
+
+
+ if (furnace_is_cookin == 1) then
+ if internal_EU_buffer>=150 then
+ internal_EU_buffer=internal_EU_buffer-150;
+ meta:set_float("internal_EU_buffer",internal_EU_buffer)
+ meta:set_float("src_time", meta:get_float("src_time") + 3)
+ if cooked and cooked.item and meta:get_float("src_time") >= cooked.time then
+ -- check if there's room for output in "dst" list
+ if inv:room_for_item("dst",cooked.item) then
+ -- Put result in "dst" list
+ inv:add_item("dst", cooked.item)
+ -- take stuff from "src" list
+ srcstack = inv:get_stack("src", 1)
+ srcstack:take_item()
+ inv:set_stack("src", 1, srcstack)
+ else
+ print("Furnace inventory full!")
+ end
+ meta:set_string("src_time", 0)
+ end
+ end
+ end
+
+
+
+
+ if srclist then
+ cooked = minetest.get_craft_result({method = "cooking", width = 1, items = srclist})
+ if cooked.time>0 then
+ hacky_swap_node(pos,"technic:electric_furnace_active")
+ meta:set_string("infotext","Furnace active")
+ meta:set_string("furnace_is_cookin",1)
+ -- meta:set_string("formspec", electric_furnace_formspec)
+ meta:set_string("src_time", 0)
+ return
+ end
+
+ end
+
+ hacky_swap_node(pos,"technic:electric_furnace")
+ meta:set_string("infotext","Furnace inactive")
+ meta:set_string("furnace_is_cookin",0)
+ -- meta:set_string("formspec", electric_furnace_formspec)
+ meta:set_string("src_time", 0)
+
+
+end,
+})
+
+
+
+
+function take_EU_from_net(pos, EU_to_take)
+ local meta = minetest.env:get_meta(pos)
+ local pos1=pos
+ pos1.z=pos1.z +1
+ local meta1 = minetest.env:get_meta(pos1)
+ charge=meta1:get_float("battery_charge")
+ charge=charge - EU_to_take
+ meta1:set_float("battery_charge",charge)
+end
+
+ LV_nodes_visited = {}
+
+function get_RE_item_load (load1,max_load)
+if load1==0 then load1=65535 end
+local temp = 65536-load1
+temp= temp/65535*max_load
+return math.floor(temp + 0.5)
+end
+
+function set_RE_item_load (load1,max_load)
+if load1 == 0 then return 65535 end
+local temp=load1/max_load*65535
+temp=65536-temp
+return math.floor(temp)
+end
+
+minetest.register_abm({
+ nodenames = {"technic:battery_box"},
+ interval = 1,
+ chance = 1,
+ action = function(pos, node, active_object_count, active_object_count_wider)
+ local meta = minetest.env:get_meta(pos)
+ charge= meta:get_float("battery_charge")
+ max_charge= 60000
+
+ local inv = meta:get_inventory()
+ if inv:is_empty("src")==false then
+ srcstack = inv:get_stack("src", 1)
+ src_item=srcstack:to_table()
+ if src_item["name"]== "technic:battery" then
+ local load1=tonumber((src_item["wear"]))
+ load1=get_RE_item_load(load1,10000)
+ load_step=1000
+ if load1<10000 and charge>0 then
+ if charge-load_step<0 then load_step=charge end
+ if load1+load_step>10000 then load_step=10000-load1 end
+ load1=load1+load_step
+ charge=charge-load_step
+
+ load1=set_RE_item_load(load1,10000)
+ src_item["wear"]=tostring(load1)
+ inv:set_stack("src", 1, src_item)
+ end
+ end
+ end
+ meta:set_float("battery_charge",charge)
+
+
+ if inv:is_empty("src")==false then
+ srcstack = inv:get_stack("src", 1)
+ src_item=srcstack:to_table()
+ if src_item["name"]== "technic:laser_mk1" then
+ local load1=tonumber((src_item["wear"]))
+ load1=get_RE_item_load(load1,40000)
+ load_step=1000
+ if load1<40000 and charge>0 then
+ if charge-load_step<0 then load_step=charge end
+ if load1+load_step>40000 then load_step=40000-load1 end
+ load1=load1+load_step
+ charge=charge-load_step
+ load1=set_RE_item_load(load1,40000)
+ src_item["wear"]=tostring(load1)
+ inv:set_stack("src", 1, src_item)
+ end
+ end
+ end
+ meta:set_float("battery_charge",charge)
+
+
+ if inv:is_empty("dst") == false then
+ srcstack = inv:get_stack("dst", 1)
+ src_item=srcstack:to_table()
+ if src_item["name"]== "technic:battery" then
+ local load1=tonumber((src_item["wear"]))
+ load1=get_RE_item_load(load1,10000)
+ load_step=1000
+ if load1>0 and charge<max_charge then
+ if charge+load_step>max_charge then load_step=max_charge-charge end
+ if load1-load_step<0 then load_step=load1 end
+ load1=load1-load_step
+ charge=charge+load_step
+
+ load1=set_RE_item_load(load1,10000)
+ src_item["wear"]=tostring(load1)
+ inv:set_stack("dst", 1, src_item)
+ end
+ end
+ end
+
+
+ meta:set_float("battery_charge",charge)
+ meta:set_string("infotext", "Battery box: "..charge.."/"..max_charge);
+
+ local load = math.floor(charge/60000 * 100)
+ meta:set_string("formspec",
+ "invsize[8,9;]"..
+ "image[1,1;1,2;technic_power_meter_bg.png^[lowpart:"..
+ (load)..":technic_power_meter_fg.png]"..
+ "list[current_name;src;3,1;1,1;]"..
+ "image[4,1;1,1;technic_battery_reload.png]"..
+ "list[current_name;dst;5,1;1,1;]"..
+ "label[0,0;Battery box]"..
+ "label[3,0;Charge]"..
+ "label[5,0;Discharge]"..
+ "label[1,3;Power level]"..
+ "list[current_player;main;0,5;8,4;]")
+
+ local pos1={}
+
+ pos1.y=pos.y-1
+ pos1.x=pos.x
+ pos1.z=pos.z
+
+
+ meta1 = minetest.env:get_meta(pos1)
+ if meta1:get_float("cablelike")~=1 then return end
+
+ local LV_nodes = {}
+ local PR_nodes = {}
+ local RE_nodes = {}
+
+ LV_nodes[1]={}
+ LV_nodes[1].x=pos1.x
+ LV_nodes[1].y=pos1.y
+ LV_nodes[1].z=pos1.z
+ LV_nodes[1].visited=false
+
+
+table_index=1
+ repeat
+ check_LV_node (PR_nodes,RE_nodes,LV_nodes,table_index)
+ table_index=table_index+1
+ if LV_nodes[table_index]==nil then break end
+ until false
+
+
+local pos1={}
+i=1
+ repeat
+ if PR_nodes[i]==nil then break end
+ pos1.x=PR_nodes[i].x
+ pos1.y=PR_nodes[i].y
+ pos1.z=PR_nodes[i].z
+ local meta1 = minetest.env:get_meta(pos1)
+ local active=meta1:get_float("active")
+ if active==1 then charge=charge+80 end
+ i=i+1
+ until false
+
+if charge>max_charge then charge=max_charge end
+
+i=1
+ repeat
+ if RE_nodes[i]==nil then break end
+ pos1.x=RE_nodes[i].x -- loading all conected machines buffers
+ pos1.y=RE_nodes[i].y
+ pos1.z=RE_nodes[i].z
+ local meta1 = minetest.env:get_meta(pos1)
+ local internal_EU_buffer=meta1:get_float("internal_EU_buffer")
+ local internal_EU_buffer_size=meta1:get_float("internal_EU_buffer_size")
+
+ local charge_to_give=200
+ if internal_EU_buffer+charge_to_give>internal_EU_buffer_size then
+ charge_to_give=internal_EU_buffer_size-internal_EU_buffer
+ end
+ if charge-charge_to_give<0 then charge_to_give=charge end
+
+ internal_EU_buffer=internal_EU_buffer+charge_to_give
+ meta1:set_float("internal_EU_buffer",internal_EU_buffer)
+ charge=charge-charge_to_give;
+
+ i=i+1
+ until false
+
+ meta:set_float("battery_charge",charge)
+ meta:set_string("infotext", "Battery box: "..charge.."/"..max_charge);
+
+
+end
+})
+
+function add_new_cable_node (LV_nodes,pos1)
+local i=1
+ repeat
+ if LV_nodes[i]==nil then break end
+ if pos1.x==LV_nodes[i].x and pos1.y==LV_nodes[i].y and pos1.z==LV_nodes[i].z then return false end
+ i=i+1
+ until false
+LV_nodes[i]={}
+LV_nodes[i].x=pos1.x
+LV_nodes[i].y=pos1.y
+LV_nodes[i].z=pos1.z
+LV_nodes[i].visited=false
+return true
+end
+
+function check_LV_node (PR_nodes,RE_nodes,LV_nodes,i)
+ local pos1={}
+ pos1.x=LV_nodes[i].x
+ pos1.y=LV_nodes[i].y
+ pos1.z=LV_nodes[i].z
+ LV_nodes[i].visited=true
+ new_node_added=false
+
+ pos1.x=pos1.x+1
+ check_LV_node_subp (PR_nodes,RE_nodes,LV_nodes,pos1)
+ pos1.x=pos1.x-2
+ check_LV_node_subp (PR_nodes,RE_nodes,LV_nodes,pos1)
+ pos1.x=pos1.x+1
+
+ pos1.y=pos1.y+1
+ check_LV_node_subp (PR_nodes,RE_nodes,LV_nodes,pos1)
+ pos1.y=pos1.y-2
+ check_LV_node_subp (PR_nodes,RE_nodes,LV_nodes,pos1)
+ pos1.y=pos1.y+1
+
+ pos1.z=pos1.z+1
+ check_LV_node_subp (PR_nodes,RE_nodes,LV_nodes,pos1)
+ pos1.z=pos1.z-2
+ check_LV_node_subp (PR_nodes,RE_nodes,LV_nodes,pos1)
+ pos1.z=pos1.z+1
+return new_node_added
+end
+
+function check_LV_node_subp (PR_nodes,RE_nodes,LV_nodes,pos1)
+meta = minetest.env:get_meta(pos1)
+if meta:get_float("cablelike")==1 then new_node_added=add_new_cable_node(LV_nodes,pos1) end
+if minetest.env:get_node(pos1).name == "technic:solar_panel" then new_node_added=add_new_cable_node(PR_nodes,pos1) end
+if minetest.env:get_node(pos1).name == "technic:electric_furnace" then new_node_added=add_new_cable_node(RE_nodes,pos1) end
+if minetest.env:get_node(pos1).name == "technic:electric_furnace_active" then new_node_added=add_new_cable_node(RE_nodes,pos1) end
+if minetest.env:get_node(pos1).name == "technic:tool_workshop" then new_node_added=add_new_cable_node(RE_nodes,pos1) end
+if minetest.env:get_node(pos1).name == "technic:music_player" then new_node_added=add_new_cable_node(RE_nodes,pos1) end
+if minetest.env:get_node(pos1).name == "technic:grinder" then new_node_added=add_new_cable_node(RE_nodes,pos1) end
+end
+
+
+function get_connected_charge (charge,pos1)
+ local charge1=0
+ local meta={}
+ if minetest.env:get_node(pos1).name == "technic:battery_box" then
+ print ("found batbox")
+ meta = minetest.env:get_meta(pos1)
+ return meta:get_float("cable_OUT")
+ end
+
+ if minetest.env:get_node(pos1).name == "technic:lv_cable" then
+ meta = minetest.env:get_meta(pos1)
+ charge1=meta:get_float("cable_OUT")
+ if charge1>charge then
+ charge=charge1
+ end
+ end
+return charge
+end
+
+minetest.register_node("technic:solar_panel", {
+ tiles = {"technic_solar_panel_top.png", "technic_solar_panel_side.png", "technic_solar_panel_side.png",
+ "technic_solar_panel_side.png", "technic_solar_panel_side.png", "technic_solar_panel_side.png"},
+ groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2},
+ sounds = default.node_sound_wood_defaults(),
+ description="Solar Panel",
+ active = false,
+ technic_power_machine=1,
+ drawtype = "nodebox",
+ paramtype = "light",
+ is_ground_content = true,
+ node_box = {
+ type = "fixed",
+ fixed = {-0.5, -0.5, -0.5, 0.5, 0, 0.5},
+ },
+ selection_box = {
+ type = "fixed",
+ fixed = {-0.5, -0.5, -0.5, 0.5, 0, 0.5},
+ },
+ on_construct = function(pos)
+ local meta = minetest.env:get_meta(pos)
+ meta:set_float("technic_power_machine", 1)
+ meta:set_string("infotext", "Solar Panel")
+ meta:set_float("active", false)
+ end,
+})
+
+minetest.register_craft({
+ output = 'technic:solar_panel 1',
+ recipe = {
+ {'default:sand', 'default:sand','default:sand'},
+ {'default:sand', 'moreores:copper_ingot','default:sand'},
+ {'default:sand', 'default:sand','default:sand'},
+
+ }
+})
+
+minetest.register_abm(
+ {nodenames = {"technic:solar_panel"},
+ interval = 1,
+ chance = 1,
+ action = function(pos, node, active_object_count, active_object_count_wider)
+
+ local pos1={}
+ pos1.y=pos.y+1
+ pos1.x=pos.x
+ pos1.z=pos.z
+
+ local light = minetest.env:get_node_light(pos1, nil)
+ local meta = minetest.env:get_meta(pos)
+ if light == nil then light = 0 end
+ if light >= 12 then
+ meta:set_string("infotext", "Solar Panel is active ")
+ meta:set_float("active",1)
+ else
+ meta:set_string("infotext", "Solar Panel is inactive");
+ meta:set_float("active",0)
+ end
+ end,
+}) \ No newline at end of file
diff --git a/water_mill.lua b/technic/technic/water_mill.lua
index 6e0120d..6e0120d 100644
--- a/water_mill.lua
+++ b/technic/technic/water_mill.lua
diff --git a/wires.lua b/technic/technic/wires.lua
index e09fc2a..e09fc2a 100644
--- a/wires.lua
+++ b/technic/technic/wires.lua
diff --git a/wires_mv.lua b/technic/technic/wires_mv.lua
index 7924956..7924956 100644
--- a/wires_mv.lua
+++ b/technic/technic/wires_mv.lua