summaryrefslogtreecommitdiff
path: root/technic/technic
diff options
context:
space:
mode:
Diffstat (limited to 'technic/technic')
-rw-r--r--technic/technic/README.md27
-rw-r--r--technic/technic/config.lua18
-rw-r--r--technic/technic/crafts.lua193
-rw-r--r--technic/technic/depends.txt8
-rw-r--r--technic/technic/helpers.lua67
-rw-r--r--technic/technic/init.lua54
-rw-r--r--technic/technic/items.lua221
-rw-r--r--technic/technic/legacy.lua38
-rw-r--r--technic/technic/locale/de.txt204
-rw-r--r--technic/technic/locale/es.txt197
-rw-r--r--technic/technic/locale/it.txt201
-rw-r--r--technic/technic/locale/template.txt211
-rw-r--r--technic/technic/machines/HV/battery_box.lua21
-rw-r--r--technic/technic/machines/HV/cables.lua12
-rw-r--r--technic/technic/machines/HV/forcefield.lua261
-rw-r--r--technic/technic/machines/HV/generator.lua13
-rw-r--r--technic/technic/machines/HV/init.lua18
-rw-r--r--technic/technic/machines/HV/nuclear_reactor.lua723
-rw-r--r--technic/technic/machines/HV/quarry.lua251
-rw-r--r--technic/technic/machines/HV/solar_array.lua14
-rw-r--r--technic/technic/machines/LV/alloy_furnace.lua14
-rw-r--r--technic/technic/machines/LV/battery_box.lua19
-rw-r--r--technic/technic/machines/LV/cables.lua14
-rw-r--r--technic/technic/machines/LV/cnc.lua237
-rw-r--r--technic/technic/machines/LV/cnc_api.lua369
-rw-r--r--technic/technic/machines/LV/cnc_nodes.lua91
-rw-r--r--technic/technic/machines/LV/compressor.lua13
-rw-r--r--technic/technic/machines/LV/electric_furnace.lua16
-rw-r--r--technic/technic/machines/LV/extractor.lua13
-rw-r--r--technic/technic/machines/LV/generator.lua18
-rw-r--r--technic/technic/machines/LV/geothermal.lua111
-rw-r--r--technic/technic/machines/LV/grinder.lua13
-rw-r--r--technic/technic/machines/LV/init.lua29
-rw-r--r--technic/technic/machines/LV/music_player.lua130
-rw-r--r--technic/technic/machines/LV/solar_array.lua18
-rw-r--r--technic/technic/machines/LV/solar_panel.lua67
-rw-r--r--technic/technic/machines/LV/water_mill.lua102
-rw-r--r--technic/technic/machines/MV/alloy_furnace.lua14
-rw-r--r--technic/technic/machines/MV/battery_box.lua22
-rw-r--r--technic/technic/machines/MV/cables.lua14
-rw-r--r--technic/technic/machines/MV/centrifuge.lua16
-rw-r--r--technic/technic/machines/MV/compressor.lua12
-rw-r--r--technic/technic/machines/MV/electric_furnace.lua18
-rw-r--r--technic/technic/machines/MV/extractor.lua12
-rw-r--r--technic/technic/machines/MV/generator.lua13
-rw-r--r--technic/technic/machines/MV/grinder.lua13
-rw-r--r--technic/technic/machines/MV/init.lua32
-rw-r--r--technic/technic/machines/MV/lighting.lua590
-rw-r--r--technic/technic/machines/MV/power_radiator.lua220
-rw-r--r--technic/technic/machines/MV/solar_array.lua14
-rw-r--r--technic/technic/machines/MV/tool_workshop.lua117
-rw-r--r--technic/technic/machines/MV/wind_mill.lua87
-rw-r--r--technic/technic/machines/init.lua14
-rw-r--r--technic/technic/machines/other/anchor.lua109
-rw-r--r--technic/technic/machines/other/coal_alloy_furnace.lua177
-rw-r--r--technic/technic/machines/other/coal_furnace.lua5
-rw-r--r--technic/technic/machines/other/constructor.lua189
-rw-r--r--technic/technic/machines/other/frames.lua928
-rw-r--r--technic/technic/machines/other/init.lua15
-rw-r--r--technic/technic/machines/other/injector.lua118
-rw-r--r--technic/technic/machines/register/alloy_furnace.lua10
-rw-r--r--technic/technic/machines/register/alloy_recipes.lua35
-rw-r--r--technic/technic/machines/register/battery_box.lua291
-rw-r--r--technic/technic/machines/register/cables.lua177
-rw-r--r--technic/technic/machines/register/centrifuge.lua8
-rw-r--r--technic/technic/machines/register/centrifuge_recipes.lua38
-rw-r--r--technic/technic/machines/register/common.lua214
-rw-r--r--technic/technic/machines/register/compressor.lua9
-rw-r--r--technic/technic/machines/register/compressor_recipes.lua34
-rw-r--r--technic/technic/machines/register/electric_furnace.lua9
-rw-r--r--technic/technic/machines/register/extractor.lua9
-rw-r--r--technic/technic/machines/register/extractor_recipes.lua59
-rw-r--r--technic/technic/machines/register/generator.lua173
-rw-r--r--technic/technic/machines/register/grinder.lua9
-rw-r--r--technic/technic/machines/register/grinder_recipes.lua161
-rw-r--r--technic/technic/machines/register/grindings.lua62
-rw-r--r--technic/technic/machines/register/init.lua33
-rw-r--r--technic/technic/machines/register/machine_base.lua197
-rw-r--r--technic/technic/machines/register/recipes.lua107
-rw-r--r--technic/technic/machines/register/solar_array.lua65
-rw-r--r--technic/technic/machines/supply_converter.lua80
-rw-r--r--technic/technic/machines/switching_station.lua404
-rw-r--r--technic/technic/models/technic_cylinder.obj238
-rw-r--r--technic/technic/models/technic_cylinder_horizontal.obj238
-rw-r--r--technic/technic/models/technic_innercorner.obj33
-rw-r--r--technic/technic/models/technic_innercorner_upsdown.obj33
-rw-r--r--technic/technic/models/technic_oblate_spheroid.obj300
-rw-r--r--technic/technic/models/technic_one_curved_edge.obj132
-rw-r--r--technic/technic/models/technic_outercorner.obj23
-rw-r--r--technic/technic/models/technic_outercorner_upsdown.obj23
-rw-r--r--technic/technic/models/technic_pyramid.obj24
-rw-r--r--technic/technic/models/technic_pyramid_spike.obj24
-rw-r--r--technic/technic/models/technic_slope.obj24
-rw-r--r--technic/technic/models/technic_slope_horizontal.obj24
-rw-r--r--technic/technic/models/technic_slope_upsdown.obj24
-rw-r--r--technic/technic/models/technic_sphere.obj1927
-rw-r--r--technic/technic/models/technic_two_curved_edge.obj207
-rw-r--r--technic/technic/register.lua58
-rw-r--r--technic/technic/sounds/chainsaw.oggbin38174 -> 0 bytes
-rw-r--r--technic/technic/sounds/item_drop_pickup.1.oggbin9981 -> 0 bytes
-rw-r--r--technic/technic/sounds/item_drop_pickup.2.oggbin10477 -> 0 bytes
-rw-r--r--technic/technic/sounds/item_drop_pickup.3.oggbin9586 -> 0 bytes
-rw-r--r--technic/technic/sounds/item_drop_pickup.4.oggbin9696 -> 0 bytes
-rw-r--r--technic/technic/sounds/mining_drill.oggbin14499 -> 0 bytes
-rw-r--r--technic/technic/sounds/technic_hv_nuclear_reactor_siren_clear.oggbin31184 -> 0 bytes
-rw-r--r--technic/technic/sounds/technic_hv_nuclear_reactor_siren_danger_loop.oggbin13059 -> 0 bytes
-rw-r--r--technic/technic/sounds/technic_laser_mk1.0.oggbin13465 -> 0 bytes
-rw-r--r--technic/technic/sounds/technic_laser_mk1.1.oggbin10281 -> 0 bytes
-rw-r--r--technic/technic/sounds/technic_laser_mk2.0.oggbin16766 -> 0 bytes
-rw-r--r--technic/technic/sounds/technic_laser_mk2.1.oggbin17725 -> 0 bytes
-rw-r--r--technic/technic/sounds/technic_laser_mk2.2.oggbin14627 -> 0 bytes
-rw-r--r--technic/technic/sounds/technic_laser_mk3.1.oggbin12162 -> 0 bytes
-rw-r--r--technic/technic/sounds/technic_laser_mk3.2.oggbin12040 -> 0 bytes
-rw-r--r--technic/technic/sounds/technic_prospector_hit.oggbin4698 -> 0 bytes
-rw-r--r--technic/technic/sounds/technic_prospector_miss.oggbin4481 -> 0 bytes
-rw-r--r--technic/technic/sounds/technic_sonic_screwdriver.oggbin29827 -> 0 bytes
-rw-r--r--technic/technic/sounds/vacuumcleaner.oggbin62768 -> 0 bytes
-rw-r--r--technic/technic/textures/hires/technic_hv_nuclear_reactor_core_128.pngbin26143 -> 0 bytes
-rw-r--r--technic/technic/textures/hires/technic_hv_nuclear_reactor_core_16.pngbin896 -> 0 bytes
-rw-r--r--technic/technic/textures/hires/technic_hv_nuclear_reactor_core_256.pngbin84243 -> 0 bytes
-rw-r--r--technic/technic/textures/hires/technic_hv_nuclear_reactor_core_32.pngbin2545 -> 0 bytes
-rw-r--r--technic/technic/textures/hires/technic_hv_nuclear_reactor_core_512.pngbin254444 -> 0 bytes
-rw-r--r--technic/technic/textures/hires/technic_hv_nuclear_reactor_core_64.pngbin8114 -> 0 bytes
-rw-r--r--technic/technic/textures/power_meter.pngbin463 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_acacia_grindings.pngbin207 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_admin_anchor.pngbin873 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_akalin_dust.pngbin240 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_alatro_dust.pngbin241 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_arol_dust.pngbin227 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_battery.pngbin247 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_battery_box_side.pngbin576 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_battery_box_side8.pngbin639 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_battery_box_side_mv.pngbin587 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_battery_meter_fg.pngbin260 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_battery_reload.pngbin287 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_bronze_dust.pngbin461 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_bucket_corium.pngbin256 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_carbon_cloth.pngbin169 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_carbon_plate.pngbin162 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_carbon_steel_dust.pngbin416 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_cast_iron_dust.pngbin420 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_chainsaw.pngbin529 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_chernobylite_block.pngbin666 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_chromium_dust.pngbin443 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_cnc_bottom.pngbin2006 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_cnc_cylinder.pngbin6047 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_cnc_cylinder_horizontal.pngbin7130 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_cnc_element_cross.pngbin4592 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_cnc_element_edge.pngbin3898 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_cnc_element_end.pngbin3563 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_cnc_element_straight.pngbin4027 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_cnc_element_t.pngbin4369 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_cnc_front.pngbin2000 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_cnc_front_active.pngbin2216 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_cnc_full.pngbin997 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_cnc_half.pngbin1564 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_cnc_milling_background.pngbin78748 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_cnc_oblate_spheroid.pngbin8915 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_cnc_onecurvededge.pngbin8170 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_cnc_pyramid.pngbin4790 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_cnc_side.pngbin1922 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_cnc_slope.pngbin6081 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_cnc_slope_edge.pngbin5900 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_cnc_slope_edge_upsdwn.pngbin4831 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_cnc_slope_inner_edge.pngbin7412 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_cnc_slope_inner_edge_upsdwn.pngbin7404 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_cnc_slope_lying.pngbin6815 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_cnc_slope_upsdwn.pngbin5814 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_cnc_sphere.pngbin5777 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_cnc_spike.pngbin6392 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_cnc_stick.pngbin2305 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_cnc_top.pngbin2137 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_cnc_top_active.pngbin2214 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_cnc_twocurvededge.pngbin7119 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_coal_alloy_furnace_bottom.pngbin677 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_coal_alloy_furnace_front.pngbin681 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_coal_alloy_furnace_front_active.pngbin697 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_coal_alloy_furnace_side.pngbin596 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_coal_alloy_furnace_top.pngbin596 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_coal_dust.pngbin433 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_common_tree_grindings.pngbin226 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_composite_plate.pngbin165 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_constructor_back.pngbin638 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_constructor_front_off.pngbin635 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_constructor_front_on.pngbin690 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_constructor_mk1_bottom_off.pngbin638 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_constructor_mk1_bottom_on.pngbin664 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_constructor_mk1_side1_off.pngbin671 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_constructor_mk1_side1_on.pngbin687 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_constructor_mk1_side2_off.pngbin654 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_constructor_mk1_side2_on.pngbin671 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_constructor_mk1_top_off.pngbin626 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_constructor_mk1_top_on.pngbin644 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_constructor_mk2_bottom_off.pngbin665 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_constructor_mk2_bottom_on.pngbin694 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_constructor_mk2_side1_off.pngbin701 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_constructor_mk2_side1_on.pngbin719 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_constructor_mk2_side2_off.pngbin683 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_constructor_mk2_side2_on.pngbin708 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_constructor_mk2_top_off.pngbin654 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_constructor_mk2_top_on.pngbin685 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_constructor_mk3_bottom_off.pngbin700 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_constructor_mk3_bottom_on.pngbin721 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_constructor_mk3_side1_off.pngbin727 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_constructor_mk3_side1_on.pngbin762 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_constructor_mk3_side2_off.pngbin715 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_constructor_mk3_side2_on.pngbin753 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_constructor_mk3_top_off.pngbin687 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_constructor_mk3_top_on.pngbin725 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_control_logic_unit.pngbin652 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_copper_coil.pngbin2447 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_copper_dust.pngbin466 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_copper_plate.pngbin174 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_corium_flowing_animated.pngbin3278 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_corium_source_animated.pngbin2954 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_deployer_back.pngbin757 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_deployer_bottom.pngbin835 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_deployer_front_off.pngbin800 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_deployer_front_on.pngbin719 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_deployer_side.pngbin908 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_deployer_side1.pngbin908 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_deployer_side2.pngbin910 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_deployer_top.pngbin842 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_diamond_block_blue.pngbin651 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_diamond_block_green.pngbin636 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_diamond_block_red.pngbin651 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_diamond_drill_head.pngbin978 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_doped_silicon_wafer.pngbin331 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_fine_copper_wire.pngbin501 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_fine_gold_wire.pngbin474 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_fine_silver_wire.pngbin546 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_flashlight.pngbin679 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_forcefield_animated.pngbin3274 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_forcefield_emitter_off.pngbin204 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_forcefield_emitter_on.pngbin204 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_frame.pngbin32199 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_geothermal_side.pngbin809 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_geothermal_top.pngbin828 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_geothermal_top_active.pngbin819 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_gold_dust.pngbin468 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_graphite.pngbin140 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_grinder_front.pngbin777 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_grinder_side.pngbin692 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_grinder_top.pngbin465 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_homedecor_glowlight_cube_white_sides.pngbin255 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_homedecor_glowlight_cube_white_sides_ceiling.pngbin258 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_homedecor_glowlight_cube_white_tb.pngbin261 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_homedecor_glowlight_cube_yellow_sides.pngbin350 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_homedecor_glowlight_cube_yellow_sides_ceiling.pngbin353 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_homedecor_glowlight_cube_yellow_tb.pngbin352 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_homedecor_glowlight_thick_white_sides.pngbin264 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_homedecor_glowlight_thick_white_wall_sides.pngbin265 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_homedecor_glowlight_thick_yellow_sides.pngbin475 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_homedecor_glowlight_thick_yellow_wall_sides.pngbin478 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_homedecor_glowlight_thin_white_sides.pngbin225 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_homedecor_glowlight_thin_white_wall_sides.pngbin232 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_homedecor_glowlight_thin_yellow_sides.pngbin335 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_homedecor_glowlight_thin_yellow_wall_sides.pngbin355 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_homedecor_glowlight_white_tb.pngbin330 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_homedecor_glowlight_yellow_tb.pngbin633 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_hv_battery_box_bottom.pngbin653 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_hv_battery_box_side.pngbin777 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_hv_battery_box_top.pngbin792 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_hv_cable.pngbin1705 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_hv_cable_wield.pngbin601 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_hv_down_converter_bottom.pngbin653 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_hv_down_converter_side.pngbin609 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_hv_down_converter_top.pngbin653 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_hv_generator_front.pngbin450 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_hv_generator_front_active.pngbin469 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_hv_generator_side.pngbin357 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_hv_generator_top.pngbin384 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_hv_grinder_bottom.pngbin862 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_hv_grinder_front.pngbin716 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_hv_grinder_front_active.pngbin733 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_hv_grinder_side.pngbin753 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_hv_grinder_side_tube.pngbin791 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_hv_grinder_top.pngbin616 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_hv_nuclear_reactor_core.pngbin896 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_hv_solar_array_bottom.pngbin574 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_hv_solar_array_side.pngbin709 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_hv_solar_array_top.pngbin777 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_hv_transformer.pngbin1801 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_injector_bottom.pngbin2667 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_injector_side.pngbin2541 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_injector_top.pngbin2633 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_kalite_dust.pngbin191 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_laser_beam_mk1.pngbin279 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_laser_beam_mk2.pngbin638 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_laser_beam_mk3.pngbin547 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_lava_can.pngbin445 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_light.pngbin246 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_lv_alloy_furnace_bottom.pngbin738 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_lv_alloy_furnace_front.pngbin508 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_lv_alloy_furnace_front_active.pngbin543 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_lv_alloy_furnace_side.pngbin313 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_lv_alloy_furnace_top.pngbin397 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_lv_battery_box_bottom.pngbin738 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_lv_battery_box_side.pngbin594 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_lv_battery_box_top.pngbin337 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_lv_cable.pngbin504 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_lv_cable_wield.pngbin655 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_lv_compressor_back.pngbin2893 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_lv_compressor_bottom.pngbin2865 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_lv_compressor_front.pngbin2714 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_lv_compressor_front_active.pngbin2743 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_lv_compressor_side.pngbin2893 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_lv_compressor_top.pngbin2940 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_lv_electric_furnace_bottom.pngbin423 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_lv_electric_furnace_front.pngbin443 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_lv_electric_furnace_front_active.pngbin448 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_lv_electric_furnace_side.pngbin399 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_lv_electric_furnace_top.pngbin393 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_lv_extractor_bottom.pngbin738 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_lv_extractor_front.pngbin745 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_lv_extractor_front_active.pngbin770 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_lv_extractor_side.pngbin683 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_lv_extractor_top.pngbin544 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_lv_generator_front.pngbin430 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_lv_generator_front_active.pngbin454 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_lv_generator_side.pngbin341 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_lv_generator_top.pngbin388 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_lv_grinder_bottom.pngbin738 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_lv_grinder_front.pngbin745 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_lv_grinder_front_active.pngbin770 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_lv_grinder_side.pngbin683 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_lv_grinder_top.pngbin544 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_lv_solar_array_bottom.pngbin579 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_lv_solar_array_side.pngbin465 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_lv_solar_array_top.pngbin743 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_lv_transformer.pngbin1821 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_machine_bottom.pngbin572 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_machine_casing.pngbin673 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_mining_drill.pngbin2099 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_mining_drill_mk2.pngbin1901 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_mining_drill_mk3.pngbin1900 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_mining_laser_mk1.pngbin216 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_mining_laser_mk2.pngbin244 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_mining_laser_mk3.pngbin312 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_mithril_dust.pngbin467 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_mixed_metal_ingot.pngbin426 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_motor.pngbin2517 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_music_player_bottom.pngbin744 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_music_player_side.pngbin788 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_music_player_top.pngbin916 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_mv_alloy_furnace_bottom.pngbin738 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_mv_alloy_furnace_front.pngbin2670 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_mv_alloy_furnace_front_active.pngbin2673 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_mv_alloy_furnace_side.pngbin2503 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_mv_alloy_furnace_side_tube.pngbin403 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_mv_alloy_furnace_top.pngbin1929 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_mv_battery_box_bottom.pngbin738 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_mv_battery_box_side.pngbin587 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_mv_battery_box_top.pngbin337 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_mv_cable.pngbin416 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_mv_cable_wield.pngbin531 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_mv_centrifuge_bottom.pngbin674 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_mv_centrifuge_front.pngbin686 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_mv_centrifuge_front_active.pngbin686 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_mv_centrifuge_side.pngbin636 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_mv_centrifuge_top.pngbin814 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_mv_compressor_back.pngbin2893 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_mv_compressor_bottom.pngbin2865 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_mv_compressor_front.pngbin2714 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_mv_compressor_front_active.pngbin2743 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_mv_compressor_side.pngbin2893 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_mv_compressor_top.pngbin2940 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_mv_down_converter_bottom.pngbin738 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_mv_down_converter_side.pngbin670 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_mv_down_converter_top.pngbin738 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_mv_electric_furnace_bottom.pngbin427 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_mv_electric_furnace_front.pngbin535 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_mv_electric_furnace_front_active.pngbin541 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_mv_electric_furnace_side.pngbin421 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_mv_electric_furnace_side_tube.pngbin2449 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_mv_electric_furnace_top.pngbin1772 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_mv_extractor_bottom.pngbin738 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_mv_extractor_front.pngbin749 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_mv_extractor_front_active.pngbin778 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_mv_extractor_side.pngbin726 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_mv_extractor_top.pngbin542 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_mv_generator_front.pngbin425 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_mv_generator_front_active.pngbin440 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_mv_generator_side.pngbin317 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_mv_generator_top.pngbin322 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_mv_grinder_bottom.pngbin738 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_mv_grinder_front.pngbin749 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_mv_grinder_front_active.pngbin778 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_mv_grinder_side.pngbin726 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_mv_grinder_side_tube.pngbin739 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_mv_grinder_top.pngbin542 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_mv_solar_array_bottom.pngbin574 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_mv_solar_array_side.pngbin628 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_mv_solar_array_top.pngbin728 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_mv_transformer.pngbin1748 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_nodebreaker_back.pngbin632 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_nodebreaker_bottom.pngbin38757 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_nodebreaker_bottom_off.pngbin556 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_nodebreaker_bottom_on.pngbin549 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_nodebreaker_front_off.pngbin653 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_nodebreaker_front_on.pngbin659 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_nodebreaker_side.pngbin38136 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_nodebreaker_side1.pngbin38291 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_nodebreaker_side1_off.pngbin616 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_nodebreaker_side1_on.pngbin610 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_nodebreaker_side2.pngbin38195 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_nodebreaker_side2_off.pngbin606 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_nodebreaker_side2_on.pngbin598 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_nodebreaker_top.pngbin38904 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_nodebreaker_top_off.pngbin556 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_nodebreaker_top_on.pngbin558 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_power_meter.pngbin209 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_power_meter0.pngbin103 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_power_meter1.pngbin193 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_power_meter2.pngbin232 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_power_meter3.pngbin255 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_power_meter4.pngbin268 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_power_meter5.pngbin275 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_power_meter6.pngbin281 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_power_meter7.pngbin298 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_power_meter8.pngbin314 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_power_meter_bg.pngbin278 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_power_meter_fg.pngbin465 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_prospector.pngbin367 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_raw_latex.pngbin484 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_rubber.pngbin587 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_rubber_leaves.pngbin444 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_rubber_sapling.pngbin333 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_rubber_tree_empty.pngbin835 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_rubber_tree_full.pngbin808 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_rubber_tree_grindings.pngbin252 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_sawdust.pngbin229 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_screwdriver.pngbin1001 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_silicon_wafer.pngbin913 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_silver_dust.pngbin420 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_solar_panel_bottom.pngbin579 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_solar_panel_side.pngbin465 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_solar_panel_top.pngbin569 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_sonic_screwdriver.pngbin240 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_stainless_steel_dust.pngbin445 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_stainless_steel_ingot.pngbin310 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_supply_converter_bottom.pngbin738 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_supply_converter_side.pngbin670 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_supply_converter_top.pngbin738 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_talinite_dust.pngbin226 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_tin_dust.pngbin241 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_tool_mode1.pngbin361 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_tool_mode2.pngbin571 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_tool_mode3.pngbin622 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_tool_mode4.pngbin455 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_tool_mode5.pngbin535 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_tool_mode6.pngbin633 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_tool_mode7.pngbin481 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_tool_mode8.pngbin692 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_tool_mode9.pngbin623 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_tree_tap.pngbin1045 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_uranium_dust.pngbin229 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_uranium_fuel.pngbin158 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_vacuum.pngbin705 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_water_can.pngbin443 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_water_mill_side.pngbin907 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_water_mill_top.pngbin828 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_water_mill_top_active.pngbin819 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_workshop_bottom.pngbin744 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_workshop_side.pngbin589 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_workshop_top.pngbin555 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_wrought_iron_dust.pngbin448 -> 0 bytes
-rw-r--r--technic/technic/textures/technic_zinc_dust.pngbin246 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_akalin_dust.pngbin1156 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_alatro_dust.pngbin1134 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_alloy_furnace_front.pngbin2756 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_alloy_furnace_front_active.pngbin2757 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_alloy_furnace_side.pngbin2667 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_alloy_furnace_top.pngbin2431 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_arol_dust.pngbin1101 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_battery.pngbin247 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_battery_box_bottom.pngbin2046 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_battery_box_side0.pngbin2313 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_battery_box_top.pngbin2390 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_battery_reload.pngbin8201 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_brass_dust.pngbin1297 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_bronze_dust.pngbin1304 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_carbon_steel_dust.pngbin1228 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_cast_iron_dust.pngbin1225 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_chainsaw.pngbin17656 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_chromium_dust.pngbin1162 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_coal_alloy_furnace_bottom.pngbin2957 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_coal_alloy_furnace_front.pngbin2802 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_coal_alloy_furnace_front_active.pngbin2953 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_coal_alloy_furnace_side.pngbin2667 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_coal_alloy_furnace_top.pngbin2431 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_coal_dust.pngbin1077 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_constructor_back.pngbin2094 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_constructor_front_off.pngbin2677 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_constructor_front_on.pngbin2627 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_constructor_mk1_bottom_off.pngbin2272 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_constructor_mk1_bottom_on.pngbin2308 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_constructor_mk1_side1_off.pngbin2327 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_constructor_mk1_side1_on.pngbin2342 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_constructor_mk1_side2_off.pngbin2326 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_constructor_mk1_side2_on.pngbin2338 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_constructor_mk1_top_off.pngbin2292 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_constructor_mk1_top_on.pngbin2319 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_constructor_mk2_bottom_off.pngbin2281 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_constructor_mk2_bottom_on.pngbin2316 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_constructor_mk2_side1_off.pngbin2339 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_constructor_mk2_side1_on.pngbin2355 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_constructor_mk2_side2_off.pngbin2338 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_constructor_mk2_side2_on.pngbin2354 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_constructor_mk2_top_off.pngbin2307 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_constructor_mk2_top_on.pngbin2329 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_constructor_mk3_bottom_off.pngbin2286 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_constructor_mk3_bottom_on.pngbin2318 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_constructor_mk3_side1_off.pngbin2378 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_constructor_mk3_side1_on.pngbin2402 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_constructor_mk3_side2_off.pngbin2313 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_constructor_mk3_side2_on.pngbin2338 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_constructor_mk3_top_off.pngbin2313 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_constructor_mk3_top_on.pngbin2338 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_control_logic_unit.pngbin1494 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_copper_coil.pngbin2447 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_copper_dust.pngbin1252 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_deployer_back.pngbin37128 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_deployer_bottom.pngbin38757 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_deployer_front_off.pngbin29441 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_deployer_front_on.pngbin23351 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_deployer_side.pngbin38136 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_deployer_side1.pngbin38291 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_deployer_side2.pngbin38195 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_deployer_top.pngbin38904 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_diamond_block_blue.pngbin3011 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_diamond_block_green.pngbin3033 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_diamond_block_red.pngbin2927 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_diamond_drill_head.pngbin978 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_doped_silicon_wafer.pngbin867 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_electric_furnace_bottom.pngbin2876 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_electric_furnace_front.pngbin2912 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_electric_furnace_front_active.pngbin2912 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_electric_furnace_side.pngbin2917 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_electric_furnace_top.pngbin2957 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_fine_copper_wire.pngbin1814 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_fine_gold_wire.pngbin1864 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_fine_silver_wire.pngbin2187 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_flashlight.pngbin1901 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_generator_front.pngbin430 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_generator_front_active.pngbin454 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_generator_side.pngbin341 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_generator_top.pngbin388 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_geothermal_side.pngbin809 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_geothermal_top.pngbin828 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_geothermal_top_active.pngbin819 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_gold_dust.pngbin1285 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_grinder_front.pngbin777 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_grinder_side.pngbin692 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_grinder_top.pngbin465 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_hv_grinder_bottom.pngbin2957 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_hv_grinder_front.pngbin2295 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_hv_grinder_front_active.pngbin2337 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_hv_grinder_side.pngbin2497 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_hv_grinder_side_tube.pngbin2580 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_hv_grinder_top.pngbin1933 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_hv_nuclear_reactor_core.pngbin2545 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_hv_solar_array_bottom.pngbin2019 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_hv_solar_array_side.pngbin1772 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_hv_solar_array_top.pngbin2855 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_hv_transformer.pngbin1789 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_injector_bottom.pngbin2667 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_injector_side.pngbin2541 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_injector_top.pngbin2633 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_kalite_dust.pngbin809 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_laser_beam.pngbin119 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_lava_can.pngbin1045 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_light.pngbin246 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_lv_grinder_bottom.pngbin2957 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_lv_grinder_front.pngbin2389 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_lv_grinder_front_active.pngbin2416 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_lv_grinder_side.pngbin2687 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_lv_grinder_top.pngbin2439 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_lv_solar_array_bottom.pngbin2019 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_lv_solar_array_side.pngbin1772 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_lv_solar_array_top.pngbin2728 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_lv_transformer.pngbin1809 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_machine_bottom.pngbin2876 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_mining_drill.pngbin2099 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_mining_laser_mk1.pngbin358 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_mithril_dust.pngbin1289 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_motor.pngbin2517 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_music_player_bottom.pngbin744 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_music_player_side.pngbin788 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_music_player_top.pngbin916 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_mv_alloy_furnace_bottom.pngbin2957 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_mv_alloy_furnace_front.pngbin2670 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_mv_alloy_furnace_front_active.pngbin2673 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_mv_alloy_furnace_side.pngbin2503 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_mv_alloy_furnace_side_tube.pngbin2559 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_mv_alloy_furnace_top.pngbin1929 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_mv_battery_box_bottom.pngbin2019 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_mv_battery_box_side0.pngbin2309 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_mv_battery_box_top.pngbin2390 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_mv_cable_wield.pngbin2996 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_mv_electric_furnace_bottom.pngbin2876 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_mv_electric_furnace_front.pngbin2599 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_mv_electric_furnace_front_active.pngbin2601 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_mv_electric_furnace_side.pngbin2414 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_mv_electric_furnace_side_tube.pngbin2449 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_mv_electric_furnace_top.pngbin1772 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_mv_grinder_bottom.pngbin2957 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_mv_grinder_front.pngbin2328 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_mv_grinder_front_active.pngbin2361 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_mv_grinder_side.pngbin2515 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_mv_grinder_side_tube.pngbin2613 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_mv_grinder_top.pngbin1981 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_mv_solar_array_bottom.pngbin2019 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_mv_solar_array_side.pngbin1772 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_mv_solar_array_top.pngbin2784 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_mv_transformer.pngbin1748 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_nodebreaker_back.pngbin2803 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_nodebreaker_bottom.pngbin2900 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_nodebreaker_bottom_off.pngbin3066 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_nodebreaker_bottom_on.pngbin3070 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_nodebreaker_front_off.pngbin2788 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_nodebreaker_front_on.pngbin2856 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_nodebreaker_side.pngbin2900 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_nodebreaker_side1.pngbin2894 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_nodebreaker_side1_off.pngbin3071 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_nodebreaker_side1_on.pngbin3073 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_nodebreaker_side2.pngbin2886 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_nodebreaker_side2_off.pngbin3062 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_nodebreaker_side2_on.pngbin3069 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_nodebreaker_top.pngbin2908 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_nodebreaker_top_off.pngbin3053 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_nodebreaker_top_on.pngbin3055 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_power_meter.pngbin209 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_power_meter1.pngbin271 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_power_meter2.pngbin349 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_power_meter3.pngbin395 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_power_meter4.pngbin434 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_power_meter5.pngbin452 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_power_meter6.pngbin509 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_power_meter7.pngbin576 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_power_meter8.pngbin655 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_power_meter_bg.pngbin278 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_power_meter_fg.pngbin465 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_raw_latex.pngbin1625 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_rubber.pngbin587 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_rubber_sapling.pngbin333 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_rubber_tree_empty.pngbin835 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_rubber_tree_full.pngbin808 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_screwdriver.pngbin1001 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_silicon_wafer.pngbin913 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_silver_dust.pngbin1295 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_solar_panel_bottom.pngbin2046 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_solar_panel_side.pngbin465 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_solar_panel_top.pngbin569 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_sonic_screwdriver.pngbin2064 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_stainless_steel_dust.pngbin1145 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_talinite_dust.pngbin1088 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_tin_dust.pngbin1261 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_tree_tap.pngbin1045 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_uranium_dust.pngbin1112 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_water_can.pngbin1041 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_water_mill_side.pngbin907 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_water_mill_top.pngbin828 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_water_mill_top_active.pngbin819 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_workshop_bottom.pngbin744 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_workshop_side.pngbin589 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_workshop_top.pngbin555 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_wrought_iron_dust.pngbin1202 -> 0 bytes
-rw-r--r--technic/technic/textures/technicx32/technic_zinc_dust.pngbin1150 -> 0 bytes
-rw-r--r--technic/technic/tools/cans.lua114
-rw-r--r--technic/technic/tools/chainsaw.lua366
-rw-r--r--technic/technic/tools/flashlight.lua123
-rw-r--r--technic/technic/tools/init.lua23
-rw-r--r--technic/technic/tools/mining_drill.lua419
-rw-r--r--technic/technic/tools/mining_lasers.lua178
-rw-r--r--technic/technic/tools/prospector.lua128
-rw-r--r--technic/technic/tools/sonic_screwdriver.lua98
-rw-r--r--technic/technic/tools/tree_tap.lua75
-rw-r--r--technic/technic/tools/vacuum.lua61
679 files changed, 0 insertions, 13876 deletions
diff --git a/technic/technic/README.md b/technic/technic/README.md
deleted file mode 100644
index b6aa05f..0000000
--- a/technic/technic/README.md
+++ /dev/null
@@ -1,27 +0,0 @@
-Technic
-=======
-
-License
--------
-
-Copyright (C) 2012-2014 Maciej Kasatkin (RealBadAngel)
-
-Technic chests code is licensed under the GNU LGPLv2+.
-
-Texture licenses:
-
-BlockMen modified by Zefram (CC BY-SA 3.0):
- * technic_chernobylite_block.png
- * technic_corium_flowing_animated.png
- * technic_corium_source_animated.png
-
-celeron55 (Perttu Ahola) modified by Zefram (CC BY-SA 3.0):
- * technic_bucket_corium.png
-
-sdzen (Elise Staudter) (CC BY-SA 3.0):
- * most of the older 16x16 textures
-
-RealBadAngel: (WTFPL)
- * Everything else.
-
-CC BY-SA 3.0: <http://creativecommons.org/licenses/by-sa/3.0/>
diff --git a/technic/technic/config.lua b/technic/technic/config.lua
deleted file mode 100644
index 81a2224..0000000
--- a/technic/technic/config.lua
+++ /dev/null
@@ -1,18 +0,0 @@
-technic.config = technic.config or Settings(minetest.get_worldpath().."/technic.conf")
-
-local conf_table = technic.config:to_table()
-
-local defaults = {
- enable_mining_drill = "true",
- enable_mining_laser = "true",
- enable_flashlight = "false",
- enable_wind_mill = "false",
- enable_frames = "false",
- enable_corium_griefing = "true",
-}
-
-for k, v in pairs(defaults) do
- if conf_table[k] == nil then
- technic.config:set(k, v)
- end
-end
diff --git a/technic/technic/crafts.lua b/technic/technic/crafts.lua
deleted file mode 100644
index 8a8cd37..0000000
--- a/technic/technic/crafts.lua
+++ /dev/null
@@ -1,193 +0,0 @@
--- check if we have the necessary dependencies to allow actually using these materials in the crafts
-local mesecons_materials = minetest.get_modpath("mesecons_materials")
-
--- tubes crafting recipes
-
-minetest.register_craft({
- output = 'pipeworks:accelerator_tube_1',
- recipe = {
- {'technic:copper_coil', 'pipeworks:tube_1', 'technic:copper_coil'},
- }
-})
-
-minetest.register_craft({
- output = 'pipeworks:teleport_tube_1',
- recipe = {
- {'default:mese_crystal', 'technic:copper_coil', 'default:mese_crystal'},
- {'pipeworks:tube_1', 'technic:control_logic_unit', 'pipeworks:tube_1'},
- {'default:mese_crystal', 'technic:copper_coil', 'default:mese_crystal'},
- }
-})
-
-minetest.register_craft({
- output = 'technic:diamond_drill_head',
- recipe = {
- {'technic:stainless_steel_ingot', 'default:diamond', 'technic:stainless_steel_ingot'},
- {'default:diamond', '', 'default:diamond'},
- {'technic:stainless_steel_ingot', 'default:diamond', 'technic:stainless_steel_ingot'},
- }
-})
-
-minetest.register_craft({
- output = 'technic:green_energy_crystal',
- recipe = {
- {'default:gold_ingot', 'technic:battery', 'dye:green'},
- {'technic:battery', 'technic:red_energy_crystal', 'technic:battery'},
- {'dye:green', 'technic:battery', 'default:gold_ingot'},
- }
-})
-
-minetest.register_craft({
- output = 'technic:blue_energy_crystal',
- recipe = {
- {'moreores:mithril_ingot', 'technic:battery', 'dye:blue'},
- {'technic:battery', 'technic:green_energy_crystal', 'technic:battery'},
- {'dye:blue', 'technic:battery', 'moreores:mithril_ingot'},
- }
-})
-
-minetest.register_craft({
- output = 'technic:red_energy_crystal',
- recipe = {
- {'moreores:silver_ingot', 'technic:battery', 'dye:red'},
- {'technic:battery', 'default:diamondblock', 'technic:battery'},
- {'dye:red', 'technic:battery', 'moreores:silver_ingot'},
- }
-})
-
-minetest.register_craft({
- output = 'technic:fine_copper_wire 2',
- recipe = {
- {'', 'default:copper_ingot', ''},
- {'', 'default:copper_ingot', ''},
- {'', 'default:copper_ingot', ''},
- }
-})
-
-minetest.register_craft({
- output = 'technic:fine_gold_wire 2',
- recipe = {
- {'', 'default:gold_ingot', ''},
- {'', 'default:gold_ingot', ''},
- {'', 'default:gold_ingot', ''},
- }
-})
-
-minetest.register_craft({
- output = 'technic:fine_silver_wire 2',
- recipe = {
- {'', 'moreores:silver_ingot', ''},
- {'', 'moreores:silver_ingot', ''},
- {'', 'moreores:silver_ingot', ''},
- }
-})
-
-minetest.register_craft({
- output = 'technic:copper_coil 1',
- recipe = {
- {'technic:fine_copper_wire', 'technic:wrought_iron_ingot', 'technic:fine_copper_wire'},
- {'technic:wrought_iron_ingot', '', 'technic:wrought_iron_ingot'},
- {'technic:fine_copper_wire', 'technic:wrought_iron_ingot', 'technic:fine_copper_wire'},
- }
-})
-
-minetest.register_craft({
- output = 'technic:motor',
- recipe = {
- {'technic:carbon_steel_ingot', 'technic:copper_coil', 'technic:carbon_steel_ingot'},
- {'technic:carbon_steel_ingot', 'technic:copper_coil', 'technic:carbon_steel_ingot'},
- {'technic:carbon_steel_ingot', 'default:copper_ingot', 'technic:carbon_steel_ingot'},
- }
-})
-
-local isolation = mesecons_materials and "mesecons_materials:fiber" or "technic:rubber"
-
-minetest.register_craft({
- output = 'technic:lv_transformer',
- recipe = {
- {isolation, 'technic:wrought_iron_ingot', isolation},
- {'technic:copper_coil', 'technic:wrought_iron_ingot', 'technic:copper_coil'},
- {'technic:wrought_iron_ingot', 'technic:wrought_iron_ingot', 'technic:wrought_iron_ingot'},
- }
-})
-
-minetest.register_craft({
- output = 'technic:mv_transformer',
- recipe = {
- {isolation, 'technic:carbon_steel_ingot', isolation},
- {'technic:copper_coil', 'technic:carbon_steel_ingot', 'technic:copper_coil'},
- {'technic:carbon_steel_ingot', 'technic:carbon_steel_ingot', 'technic:carbon_steel_ingot'},
- }
-})
-
-minetest.register_craft({
- output = 'technic:hv_transformer',
- recipe = {
- {isolation, 'technic:stainless_steel_ingot', isolation},
- {'technic:copper_coil', 'technic:stainless_steel_ingot', 'technic:copper_coil'},
- {'technic:stainless_steel_ingot', 'technic:stainless_steel_ingot', 'technic:stainless_steel_ingot'},
- }
-})
-
-minetest.register_craft({
- output = 'technic:control_logic_unit',
- recipe = {
- {'', 'technic:fine_gold_wire', ''},
- {'default:copper_ingot', 'technic:silicon_wafer', 'default:copper_ingot'},
- {'', 'technic:chromium_ingot', ''},
- }
-})
-
-minetest.register_craft({
- output = 'technic:mixed_metal_ingot 9',
- recipe = {
- {'technic:stainless_steel_ingot', 'technic:stainless_steel_ingot', 'technic:stainless_steel_ingot'},
- {'default:bronze_ingot', 'default:bronze_ingot', 'default:bronze_ingot'},
- {'moreores:tin_ingot', 'moreores:tin_ingot', 'moreores:tin_ingot'},
- }
-})
-
-minetest.register_craft({
- output = 'technic:carbon_cloth',
- recipe = {
- {'technic:graphite', 'technic:graphite', 'technic:graphite'}
- }
-})
-
-minetest.register_craft({
- output = "technic:machine_casing",
- recipe = {
- { "technic:cast_iron_ingot", "technic:cast_iron_ingot", "technic:cast_iron_ingot" },
- { "technic:cast_iron_ingot", "technic:brass_ingot", "technic:cast_iron_ingot" },
- { "technic:cast_iron_ingot", "technic:cast_iron_ingot", "technic:cast_iron_ingot" },
- },
-})
-
--- Remove some recipes
--- Bronze
-minetest.register_craft({
- type = "shapeless",
- output = "default:bronze_ingot 0",
- recipe = {"default:copper_ingot", "default:steel_ingot"}
-})
-
--- Accelerator tube
-minetest.register_craft({
- output = "pipeworks:accelerator_tube_1 0",
- recipe = {
- { "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" },
- { "default:mese_crystal_fragment", "default:steel_ingot", "default:mese_crystal_fragment" },
- { "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" }
- },
-})
-
--- Teleport tube
-minetest.register_craft({
- output = "pipeworks:teleport_tube_1 0",
- recipe = {
- { "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" },
- { "default:desert_stone", "default:mese", "default:desert_stone" },
- { "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" }
- },
-})
-
diff --git a/technic/technic/depends.txt b/technic/technic/depends.txt
deleted file mode 100644
index 746fe34..0000000
--- a/technic/technic/depends.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-default
-pipeworks
-technic_worldgen
-bucket?
-mesecons_mvps?
-intllib?
-unified_inventory?
-vector_extras?
diff --git a/technic/technic/helpers.lua b/technic/technic/helpers.lua
deleted file mode 100644
index e8efcf3..0000000
--- a/technic/technic/helpers.lua
+++ /dev/null
@@ -1,67 +0,0 @@
---load config
-local sepchar = nil
-do
- local sepcode = technic.config:get("thousand_separator")
- --default is SI style
- sepchar = sepcode and string.char(sepcode) or " "
- baresepchar = sepchar
- --handling if sepchar is magic...
- for magic in string.gmatch("().%+-*?[^$", ".") do
- if sepchar == magic then sepchar = "%"..sepchar end
- end
-end
-
--- Only changes name, keeps other params
-function technic.swap_node(pos, name)
- local node = minetest.get_node(pos)
- if node.name ~= name then
- node.name = name
- minetest.swap_node(pos, node)
- end
- return node.name
-end
-
--- Fully charge RE chargeable item.
--- Must be defined early to reference in item definitions.
-function technic.refill_RE_charge(stack)
- local max_charge = technic.power_tools[stack:get_name()]
- if not max_charge then return stack end
- technic.set_RE_wear(stack, max_charge, max_charge)
- local meta = minetest.deserialize(stack:get_metadata()) or {}
- meta.charge = max_charge
- stack:set_metadata(minetest.serialize(meta))
- return stack
-end
-
-local function resolve_name(function_name)
- local a = _G
- for key in string.gmatch(function_name, "([^%.]+)(%.?)") do
- if a[key] then
- a = a[key]
- else
- return nil
- end
- end
- return a
-end
-
-function technic.function_exists(function_name)
- return type(resolve_name(function_name)) == 'function'
-end
-
--- if the node is loaded, returns it. If it isn't loaded, load it and return nil.
-function technic.get_or_load_node(pos)
- local node_or_nil = minetest.get_node_or_nil(pos)
- if node_or_nil then return node_or_nil end
- local vm = VoxelManip()
- local MinEdge, MaxEdge = vm:read_from_map(pos, pos)
- return nil
-end
-
-function technic.prettynum(num)
- local str, k = tostring(num), nil
- repeat
- str, k = str:gsub("^(-?%d+)(%d%d%d)", "%1"..sepchar.."%2")
- until k == 0
- return str
-end \ No newline at end of file
diff --git a/technic/technic/init.lua b/technic/technic/init.lua
deleted file mode 100644
index 25361af..0000000
--- a/technic/technic/init.lua
+++ /dev/null
@@ -1,54 +0,0 @@
--- Minetest 0.4.7 mod: technic
--- namespace: technic
--- (c) 2012-2013 by RealBadAngel <mk@realbadangel.pl>
-
-technic = rawget(_G, "technic") or {}
-technic.creative_mode = minetest.setting_getbool("creative_mode")
-
-technic.tube_inject_item = pipeworks.tube_inject_item or function (pos, start_pos, velocity, item)
- local tubed = pipeworks.tube_item(vector.new(pos), item)
- tubed:get_luaentity().start_pos = vector.new(start_pos)
- tubed:setvelocity(velocity)
- tubed:setacceleration(vector.new(0, 0, 0))
-end
-
-local load_start = os.clock()
-local modpath = minetest.get_modpath("technic")
-technic.modpath = modpath
-
--- Boilerplate to support intllib
-if minetest.get_modpath("intllib") then
- technic.getter = intllib.Getter()
-else
- technic.getter = function(s,a,...)if a==nil then return s end a={a,...}return s:gsub("(@?)@(%(?)(%d+)(%)?)",function(e,o,n,c)if e==""then return a[tonumber(n)]..(o==""and c or"")else return"@"..o..n..c end end) end
-end
-local S = technic.getter
-
--- Read configuration file
-dofile(modpath.."/config.lua")
-
--- Helper functions
-dofile(modpath.."/helpers.lua")
-
--- Items
-dofile(modpath.."/items.lua")
-
--- Craft recipes for items
-dofile(modpath.."/crafts.lua")
-
--- Register functions
-dofile(modpath.."/register.lua")
-
--- Machines
-dofile(modpath.."/machines/init.lua")
-
--- Tools
-dofile(modpath.."/tools/init.lua")
-
--- Aliases for legacy node/item names
-dofile(modpath.."/legacy.lua")
-
-if minetest.setting_getbool("log_mods") then
- print(S("[Technic] Loaded in %f seconds"):format(os.clock() - load_start))
-end
-
diff --git a/technic/technic/items.lua b/technic/technic/items.lua
deleted file mode 100644
index 27e05e4..0000000
--- a/technic/technic/items.lua
+++ /dev/null
@@ -1,221 +0,0 @@
-
-local S = technic.getter
-
-minetest.register_craftitem("technic:silicon_wafer", {
- description = S("Silicon Wafer"),
- inventory_image = "technic_silicon_wafer.png",
-})
-
-minetest.register_craftitem( "technic:doped_silicon_wafer", {
- description = S("Doped Silicon Wafer"),
- inventory_image = "technic_doped_silicon_wafer.png",
-})
-
-minetest.register_craftitem("technic:uranium_fuel", {
- description = S("Uranium Fuel"),
- inventory_image = "technic_uranium_fuel.png",
-})
-
-minetest.register_craftitem( "technic:diamond_drill_head", {
- description = S("Diamond Drill Head"),
- inventory_image = "technic_diamond_drill_head.png",
-})
-
-minetest.register_tool("technic:blue_energy_crystal", {
- description = S("Blue Energy Crystal"),
- inventory_image = minetest.inventorycube(
- "technic_diamond_block_blue.png",
- "technic_diamond_block_blue.png",
- "technic_diamond_block_blue.png"),
- wear_represents = "technic_RE_charge",
- on_refill = technic.refill_RE_charge,
- tool_capabilities = {
- max_drop_level = 0,
- groupcaps = {
- fleshy = {times={}, uses=10000, maxlevel=0}
- }
- }
-})
-
-minetest.register_tool("technic:green_energy_crystal", {
- description = S("Green Energy Crystal"),
- inventory_image = minetest.inventorycube(
- "technic_diamond_block_green.png",
- "technic_diamond_block_green.png",
- "technic_diamond_block_green.png"),
- wear_represents = "technic_RE_charge",
- on_refill = technic.refill_RE_charge,
- tool_capabilities = {
- max_drop_level = 0,
- groupcaps = {
- fleshy = {times={}, uses=10000, maxlevel=0}
- }
- }
-})
-
-minetest.register_tool("technic:red_energy_crystal", {
- description = S("Red Energy Crystal"),
- inventory_image = minetest.inventorycube(
- "technic_diamond_block_red.png",
- "technic_diamond_block_red.png",
- "technic_diamond_block_red.png"),
- wear_represents = "technic_RE_charge",
- on_refill = technic.refill_RE_charge,
- tool_capabilities = {
- max_drop_level = 0,
- groupcaps = {
- fleshy = {times={}, uses=10000, maxlevel=0}
- }
- }
-})
-
-
-minetest.register_craftitem("technic:fine_copper_wire", {
- description = S("Fine Copper Wire"),
- inventory_image = "technic_fine_copper_wire.png",
-})
-
-minetest.register_craftitem("technic:fine_gold_wire", {
- description = S("Fine Gold Wire"),
- inventory_image = "technic_fine_gold_wire.png",
-})
-
-minetest.register_craftitem("technic:fine_silver_wire", {
- description = S("Fine Silver Wire"),
- inventory_image = "technic_fine_silver_wire.png",
-})
-
-minetest.register_craftitem("technic:copper_coil", {
- description = S("Copper Coil"),
- inventory_image = "technic_copper_coil.png",
-})
-
-minetest.register_craftitem("technic:motor", {
- description = S("Electric Motor"),
- inventory_image = "technic_motor.png",
-})
-
-minetest.register_craftitem("technic:lv_transformer", {
- description = S("Low Voltage Transformer"),
- inventory_image = "technic_lv_transformer.png",
-})
-
-minetest.register_craftitem("technic:mv_transformer", {
- description = S("Medium Voltage Transformer"),
- inventory_image = "technic_mv_transformer.png",
-})
-
-minetest.register_craftitem( "technic:hv_transformer", {
- description = S("High Voltage Transformer"),
- inventory_image = "technic_hv_transformer.png",
-})
-
-minetest.register_craftitem( "technic:control_logic_unit", {
- description = S("Control Logic Unit"),
- inventory_image = "technic_control_logic_unit.png",
-})
-
-minetest.register_craftitem("technic:mixed_metal_ingot", {
- description = S("Mixed Metal Ingot"),
- inventory_image = "technic_mixed_metal_ingot.png",
-})
-
-minetest.register_craftitem("technic:composite_plate", {
- description = S("Composite Plate"),
- inventory_image = "technic_composite_plate.png",
-})
-
-minetest.register_craftitem("technic:copper_plate", {
- description = S("Copper Plate"),
- inventory_image = "technic_copper_plate.png",
-})
-
-minetest.register_craftitem("technic:carbon_plate", {
- description = S("Carbon Plate"),
- inventory_image = "technic_carbon_plate.png",
-})
-
-minetest.register_craftitem("technic:graphite", {
- description = S("Graphite"),
- inventory_image = "technic_graphite.png",
-})
-
-minetest.register_craftitem("technic:carbon_cloth", {
- description = S("Carbon Cloth"),
- inventory_image = "technic_carbon_cloth.png",
-})
-
-minetest.register_node("technic:machine_casing", {
- description = S("Machine Casing"),
- groups = {cracky=2},
- sunlight_propagates = true,
- paramtype = "light",
- drawtype = "allfaces",
- tiles = {"technic_machine_casing.png"},
- sounds = default.node_sound_stone_defaults(),
-})
-
-for p = 0, 35 do
- local nici = (p ~= 0 and p ~= 7 and p ~= 35) and 1 or nil
- local psuffix = p == 7 and "" or p
- local ingot = "technic:uranium"..psuffix.."_ingot"
- local block = "technic:uranium"..psuffix.."_block"
- local ov = p == 7 and minetest.override_item or nil;
- (ov or minetest.register_craftitem)(ingot, {
- description = string.format(S("%.1f%%-Fissile Uranium Ingot"), p/10),
- inventory_image = "technic_uranium_ingot.png",
- groups = {uranium_ingot=1, not_in_creative_inventory=nici},
- });
- -- Note on radioactivity of blocks:
- -- Source: <http://www.wise-uranium.org/rup.html>
- -- The baseline radioactivity of an isotope is not especially
- -- correlated with whether it's fissile (i.e., suitable as
- -- reactor fuel). Natural uranium consists mainly of fissile
- -- U-235 and non-fissile U-238, and both U-235 and U-238 are
- -- significantly radioactive. U-235's massic activity is
- -- about 80.0 MBq/kg, and U-238's is about 12.4 MBq/kg, which
- -- superficially suggests that 3.5%-fissile uranium should have
- -- only 1.19 times the activity of fully-depleted uranium.
- -- But a third isotope affects the result hugely: U-234 has
- -- massic activity of 231 GBq/kg. Natural uranium has massic
- -- composition of 99.2837% U-238, 0.711% U-235, and 0.0053% U-234,
- -- so its activity comes roughly 49% each from U-234 and U-238
- -- and only 2% from U-235. During enrichment via centrifuge,
- -- the U-234 fraction is concentrated along with the U-235, with
- -- the U-234:U-235 ratio remaining close to its original value.
- -- (Actually the U-234 gets separated from U-238 slightly more
- -- than the U-235 is, so the U-234:U-235 ratio is slightly
- -- higher in enriched uranium.) A typical massic composition
- -- for 3.5%-fissile uranium is 96.47116% U-238, 3.5% U-235, and
- -- 0.02884% U-234. This gives 3.5%-fissile uranium about 6.55
- -- times the activity of fully-depleted uranium. The values we
- -- compute here for the "radioactive" group value are based on
- -- linear interpolation of activity along that scale, rooted at
- -- a natural (0.7%-fissile) uranium block having the activity of
- -- 9 uranium ore blocks (due to 9 ingots per block). The group
- -- value is proportional to the square root of the activity, and
- -- uranium ore has radioactive=1000. This yields radioactive=2065
- -- for a fully-depleted uranium block and radioactive=5286 for
- -- a 3.5%-fissile uranium block.
- (ov or minetest.register_node)(block, {
- description = string.format(S("%.1f%%-Fissile Uranium Block"), p/10),
- tiles = {"technic_uranium_block.png"},
- is_ground_content = true,
- groups = {uranium_block=1, not_in_creative_inventory=nici, cracky=1, level=2, radioactive=math.floor(1000*math.sqrt((1+5.55*p/35) * 9 / (1+5.55*7/35)) + 0.5)},
- sounds = default.node_sound_stone_defaults(),
- });
- if not ov then
- minetest.register_craft({
- output = block,
- recipe = {
- {ingot, ingot, ingot},
- {ingot, ingot, ingot},
- {ingot, ingot, ingot},
- },
- })
- minetest.register_craft({
- output = ingot.." 9",
- recipe = {{block}},
- })
- end
-end
diff --git a/technic/technic/legacy.lua b/technic/technic/legacy.lua
deleted file mode 100644
index 8360a71..0000000
--- a/technic/technic/legacy.lua
+++ /dev/null
@@ -1,38 +0,0 @@
-
--- Aliases to convert from legacy node/item names
-
-technic.legacy_nodenames = {
- ["technic:alloy_furnace"] = "technic:lv_alloy_furnace",
- ["technic:alloy_furnace_active"] = "technic:lv_alloy_furnace_active",
- ["technic:battery_box"] = "technic:lv_battery_box0",
- ["technic:battery_box1"] = "technic:lv_battery_box1",
- ["technic:battery_box2"] = "technic:lv_battery_box2",
- ["technic:battery_box3"] = "technic:lv_battery_box3",
- ["technic:battery_box4"] = "technic:lv_battery_box4",
- ["technic:battery_box5"] = "technic:lv_battery_box5",
- ["technic:battery_box6"] = "technic:lv_battery_box6",
- ["technic:battery_box7"] = "technic:lv_battery_box7",
- ["technic:battery_box8"] = "technic:lv_battery_box8",
- ["technic:electric_furnace"] = "technic:lv_electric_furnace",
- ["technic:electric_furnace_active"] = "technic:lv_electric_furnace_active",
- ["technic:grinder"] = "technic:lv_grinder",
- ["technic:grinder_active"] = "technic:lv_grinder_active",
- ["technic:extractor"] = "technic:lv_extractor",
- ["technic:extractor_active"] = "technic:lv_extractor_active",
- ["technic:compressor"] = "technic:lv_compressor",
- ["technic:compressor_active"] = "technic:lv_compressor_active",
- ["technic:hv_battery_box"] = "technic:hv_battery_box0",
- ["technic:hv_cable"] = "technic:hv_cable0",
- ["technic:lv_cable"] = "technic:lv_cable0",
- ["technic:mv_cable"] = "technic:mv_cable0",
- ["technic:mv_battery_box"] = "technic:mv_battery_box0",
- ["technic:generator"] = "technic:lv_generator",
- ["technic:generator_active"] = "technic:lv_generator_active",
- ["technic:iron_dust"] = "technic:wrought_iron_dust",
- ["technic:enriched_uranium"] = "technic:uranium35_ingot",
-}
-
-for old, new in pairs(technic.legacy_nodenames) do
- minetest.register_alias(old, new)
-end
-
diff --git a/technic/technic/locale/de.txt b/technic/technic/locale/de.txt
deleted file mode 100644
index 855ec5a..0000000
--- a/technic/technic/locale/de.txt
+++ /dev/null
@@ -1,204 +0,0 @@
-# German Translation for Technic Mod
-# Deutsche Uebersetzung des Technic Mods
-# by Xanthin
-
-## Misc
-[Technic] Loaded in %f seconds = [Technic] ist in %f Sekunden geladen
-
-## Items
-Silicon Wafer = Siliziumscheibe
-Doped Silicon Wafer = Dotierte Siliziumscheibe
-Enriched Uranium = Angereichertes Uran
-Uranium Fuel = Uranbrennstoff
-Diamond Drill Head = Diamantbohrkopf
-Blue Energy Crystal = Blauer Energiekristall
-Green Energy Crystal = Gruener Energiekristall
-Red Energy Crystal = Roter Energiekristall
-Fine Copper Wire = Feinkupferdraht
-Copper Coil = Kupferspule
-Electric Motor = Elektromotor
-Low Voltage Transformer = Niederspannungstransformator
-Medium Voltage Transformer = Mittelspannungstransformator
-High Voltage Transformer = Hochspannungstransformator
-Control Logic Unit = Steuer- und Regelungseinheit
-Mixed Metal Ingot = Mischmetallbarren
-Composite Plate = Verbundplatte
-Copper Plate = Kupferplatte
-Carbon Plate = Kohlefaserplatte
-Graphite = Graphit
-Carbon Cloth = Kohlefasergewebe
-Raw Latex = Rohlatex
-Rubber Fiber = Gummifaser
-%.1f%%-Fissile Uranium Ingot =
-%.1f%%-Fissile Uranium Block =
-
-## Machine misc
-Machine cannot be removed because it is not empty = Die Maschine kann nicht entfernt werden, weil sie noch nicht leer ist.
-Inventory move disallowed due to protection = Das Inventar ist geschuetzt, Zugriff verweigert.
-# $1: Machine name (Includes tier)
-@1 Active (@2 EU) = @1 ist eingeschaltet (@2 EU)
-%s Active = %s ist eingeschaltet
-%s Disabled = %s ist ausgeschaltet
-%s Enabled =
-%s Idle = %s ist bereit
-%s Improperly Placed = %s ist falsch plaziert
-%s Unpowered = %s hat keine Stromversorgung
-%s Out Of Fuel = %s hat keinen Brennstoff
-%s Has Bad Cabling = %s ist falsch verkabelt
-%s Has No Network = %s hat kein Netzwerk
-%s Finished = %s ist fertig
-Enable/Disable = Einschalten/Ausschalten
-Range = Reichweite
-Upgrade Slots = Verbesserungsfaecher
-In: = Rein:
-Out: = Raus:
-Slot %d = Fach %d
-Itemwise = Einzelstuecke
-Stackwise = Ganzer Stapel
-Owner: =
-Unlocked =
-Locked =
-Radius: =
-Enabled =
-Disabled =
-
-## Machine names
-# $1: Tier
-%s Alloy Furnace = %s Legierungsofen
-%s Battery Box = %s Batteriebox
-%s Cable = %s Kabel
-%s CNC Machine = %s CNC-Maschine
-%s Compressor = %s Kompressor
-%s Extractor = %s Extraktor
-%s Forcefield Emitter = %s Kraftfeld-Emitter
-%s Furnace = %s Ofen
-%s Grinder = %s Schleifmaschine
-%s Music Player = %s Musikspieler
-%s Quarry = %s Steinbruch
-%s Tool Workshop = %s Werkzeugwerkstatt
-Arrayed Solar %s Generator = %s Solaranlage
-Fuel-Fired %s Generator = %s Kohle-Generator
-Geothermal %s Generator = %s Geothermie-Generator
-Hydro %s Generator = %s Wassermuehle
-Nuclear %s Generator Core = %s Reaktorkern
-Small Solar %s Generator = %s Solarmodul
-Wind %s Generator = %s Windmuehle
-Self-Contained Injector = Selbstversorger-Injektor
-Constructor Mk%d = Konstruktor Modell %d
-Frame = Rahmen
-Frame Motor = Rahmenmotor
-Template = Schablone
-Template (replacing) = Schablone (ersetzend)
-Template motor = Schablonenmotor
-Template tool = Schablonenwerkzeug
-Battery Box = Batteriebox
-Supply Converter = Stromumwandler
-Switching Station = Schaltanlage
-Fuel-Fired Alloy Furnace = Kohle-Legierungsofen
-Fuel-Fired Furnace = Kohle-Ofen
-Wind Mill Frame = Windmuehlengeruest
-Forcefield = Kraftfeld
-Nuclear Reactor Rod Compartment = Brennstabfaecher
-Administrative World Anchor =
-
-## Machine-specific
-# $1: Pruduced EU
-Charge = Aufladen
-Discharge = Entladen
-Power level = Energiestufe
-# $1: Tier $2: current_charge $3: max_charge
-@1 Battery Box: @2/@3 = @1 Batteriebox: @2/@3
-# $1: Machine name $2: Supply $3: Demand
-@1. Supply: @2 Demand: @3 = @1. Versorgung: @2 Bedarf: @3
-Production at %d%% = Produktion bei %d%%
-Choose Milling Program: = Waehle ein Fraesprogramm:
-Slim Elements half / normal height: = Schmale Elemente von halber / normaler Hoehe:
-Current track %s = Aktueller Titel %s
-Stopped =
-Keeping %d/%d map blocks loaded =
-Digging not started =
-Digging finished =
-Digging %d m above machine =
-Digging %d m below machine =
-
-## CNC
-Cylinder = Zylinder
-Element Cross = Halbes Kreuzelement
-Element Cross Double = Kreuzelement
-Element Edge = Halbes Eckelement
-Element Edge Double = Eckelement
-Element End = Halbes Endelement
-Element End Double = Endelement
-Element Straight = Halbes aufrechtes Element
-Element Straight Double = Aufrechtes Element
-Element T = Halbes T-Element
-Element T Double = T-Element
-Horizontal Cylinder = Liegender Zylinder
-One Curved Edge Block = Block mit einer abgerundeten Kante
-Pyramid = Pyramide
-Slope = Schraege
-Slope Edge = Schraege mit Ecke
-Slope Inner Edge = Schraege mit Innenecke
-Slope Lying = Liegende Schraege
-Slope Upside Down = Umgedrehte Schraege
-Slope Upside Down Edge = Umgedrehte Schraege mit Ecke
-Slope Upside Down Inner Edge = Umgedrehte Schraege mit Innenecke
-Sphere = Kugel
-Spike = Spitze
-Stick = Stange
-Two Curved Edge Block = Block mit zwei abgerundeten Kanten
-Brick = Ziegel:
-Cobble = Pflasterstein:
-Dirt = Erde:
-Leaves = Laub:
-Sandstone = Sandstein:
-Stone = Stein:
-Tree = Baumstamm:
-Wooden = Holz:
-
-## Grinder Recipes
-# $1: Name
-%s Dust = %sstaub
-Akalin = Akalin
-Alatro = Alatro
-Arol = Arol
-Brass = Messing
-Bronze = Bronze
-Carbon Steel = Kohlenstoffstahl
-Cast Iron = Gusseisen
-Chromium = Chrom
-Coal = Kohle
-Copper = Kupfer
-Gold = Gold
-Mithril = Mithril
-Silver = Silber
-Stainless Steel = Edelstahl
-Talinite = Talinite
-Tin = Zinn
-Wrought Iron = Schmiedeeisen
-Zinc = Zink
-%.1f%%-Fissile Uranium =
-
-## Tools
-RE Battery = Akkubatterie
-Water Can = Wasserkanister
-Lava Can = Lavakanister
-Chainsaw = Kettensaege
-Flashlight = Taschenlampe
-3 nodes deep. = 3 Bloecke tief.
-3 nodes tall. = 3 Bloecke hoch.
-3 nodes wide. = 3 Bloecke breit.
-3x3 nodes. = 3x3 Bloecke.
-Use while sneaking to change Mining Drill Mk%d modes. = Halte die Shift-Taste beim Benutzen gedrueckt, um die Funktion des Bergbaubohrers Modell %d zu aendern.
-Mining Drill Mk%d Mode %d = Bergbaubohrer Modell %d Funktion %d
-Mining Drill Mk%d = Bergbaubohrer Modell %d
-Mining Laser Mk%d = Bergbaulaser Modell %d
-Single node. = Einzelblock
-Sonic Screwdriver = Schallschraubendreher
-Tree Tap = Baumzapfhahn
-
-## Craft descriptions
-Alloy cooking =
-Grinding =
-Compressing =
-Extracting =
diff --git a/technic/technic/locale/es.txt b/technic/technic/locale/es.txt
deleted file mode 100644
index 7945d65..0000000
--- a/technic/technic/locale/es.txt
+++ /dev/null
@@ -1,197 +0,0 @@
-# Spanish Translation for Technic Mod
-# Traduccion al Español del Mod Technic
-# Autor: Diego Martínez <kaeza>
-
-## Misc
-[Technic] Loaded in %f seconds = [Technic] Cargado en %f segundos
-
-## Items
-Silicon Wafer = Oblea de Silicio
-Doped Silicon Wafer = Oblea de Silicio Dopada
-Enriched Uranium = Uranio Enriquecido
-Uranium Fuel = Combustible de Uranio
-Diamond Drill Head = Mecha de Taladro de Diamante
-Blue Energy Crystal = Cristal de Energia Azul
-Green Energy Crystal = Cristal de Energia Verde
-Red Energy Crystal = Cristal de Energia Rojo
-Fine Copper Wire = Cable Fino de Cobre
-Copper Coil = Resorte de Cobre
-Electric Motor = Motor Electrico
-Low Voltage Transformer = Transformador de Bajo Voltaje
-Medium Voltage Transformer = Transformador de Voltaje Medio
-High Voltage Transformer = Transformador de Alto Voltaje
-Control Logic Unit = Unidad Logica de Control
-Mixed Metal Ingot = Lingote de Metal Mezclado
-Composite Plate = Placa de Compuestos
-Copper Plate = Placa de Cobre
-Carbon Plate = Placa de Carbon
-Graphite = Grafito
-Carbon Cloth = Tela de Carbon
-Raw Latex = Latex Crudo
-Rubber Fiber = Fibra de Hule
-%.1f%%-Fissile Uranium Ingot =
-%.1f%%-Fissile Uranium Block =
-
-## Machine misc
-Machine cannot be removed because it is not empty = La maquina no puede removerse porque no esta vacia
-Inventory move disallowed due to protection =
-# $1: Machine name (Includes tier)
-@1 Active (@2 EU) = @1 Activo (@2 EU)
-%s Active = %s Activo
-%s Enabled =
-%s Idle = %s Quieto
-%s Unpowered = %s Sin Energia
-%s Out Of Fuel = %s Sin Combustible
-%s Has Bad Cabling = %s Tiene Mal Cableado
-%s Has No Network = %s No Tiene Una Red
-%s Finished = %s Terminado
-%s Disabled = %s Deshabilitado
-%s Improperly Placed = %s No Colocado Apropiadamente
-Range = Alcance
-Enable/Disable = Habilitar/Deshabilitar
-Itemwise =
-Stackwise =
-Owner: =
-Unlocked =
-Locked =
-Radius: =
-Enabled =
-Disabled =
-
-## Machine names
-# $1: Tier
-%s Alloy Furnace = Horno de Aleacion %s
-%s Battery Box = Caja de Bateria %s
-%s Cable = Cable %s
-%s CNC Machine = Maquina CNC %s
-%s Compressor = Compresor %s
-%s Extractor = Extractor %s
-%s Forcefield Emitter = Emisor de Campo de Fuerza %s
-%s Furnace = Horno %s
-%s Grinder = Amoladora %s
-%s Music Player = Reproductor de Musica %s
-%s Quarry = Cantera %s
-%s Tool Workshop = Taller de Herramientas %s
-Arrayed Solar %s Generator = Panel Solar %s
-Fuel-Fired %s Generator = Generador a Carbon %s
-Geothermal %s Generator = Generador Geotermico %s
-Hydro %s Generator = Molino de Agua %s
-Nuclear %s Generator Core = Nucleo de Reactor Nuclear %s
-Small Solar %s Generator = Panel Solar %s
-Wind %s Generator = Molino de Viento %s
-Self-Contained Injector =
-Constructor Mk%d =
-Frame =
-Frame Motor =
-Template =
-Template (replacing) =
-Template Motor =
-Template Tool =
-Supply Converter = Convertidor de Alimentacion
-Switching Station = Estacion de Conmutacion
-Battery Box = Caja de Baterias
-Fuel-Fired Alloy Furnace = Horno de Aleacion a Carbon
-Fuel-Fired Furnace = Horno a Carbon
-Forcefield = Campo de Fuerza
-Nuclear Reactor Rod Compartment = Compartimiento para Vara de Reactor Nuclear
-Wind Mill Frame = Armazon de Molino de Viento
-Administrative World Anchor =
-
-## Machine-specific
-# $1: Pruduced EU
-Charge = Cargar
-Discharge = Descargar
-Power level = Nivel de Poder
-# $1: Tier $2: current_charge $3: max_charge
-@1 Battery Box: @2/@3 = Caja de Bateria @1: @2/@3
-# $1: Machine name $2: Supply $3: Demand
-@1. Supply: @2 Demand: @3 = @1. Alimentacion: @2 Demanda: @3
-# $1: Production percent
-Production at %d%% = Produccion en %d%%
-Stopped =
-Keeping %d/%d map blocks loaded =
-Digging not started =
-Digging finished =
-Digging %d m above machine =
-Digging %d m below machine =
-
-## CNC Machine
-Element Edge = Elemento Borde
-Tree = Arbol
-Element Cross Double = Elemento Cruz Doble
-Spike = Pica
-Element Edge Double = Elemento Borde Doble
-Two Curved Edge Block = Dos Bloques de Borde Curvados
-Pyramid = Piramide
-Slope Upside Down Inner Edge = Borde Interno de Rampa Al Reves
-Slope Upside Down Edge = Borde de Rampa Al Reves
-Element Straight Double = Elemento Doble Recto
-Sphere = Esfera
-Element End Double = Doble Fin de Elemento
-Element Straight = Recta de Elemento
-Horizontal Cylinder = Cilindro Horizontal
-Slope Inner Edge = Borde Interno de Rampa
-One Curved Edge Block = Un Bloque de Borde Curvado
-Element Cross = Cruce de Elementos
-Stick = Varita
-Element End = Fin de Elemento
-Slope Lying = Rampa en Reposo
-Slope Upside Down = Rampa Al Reves
-Slope Edge = Borde de Rampa
-Slope = Rampa
-Element T = Elemento T
-Cylinder = Cilindro
-Cobble = Adoquines
-Stone = Piedra
-Brick = Ladrillo
-Dirt = Tierra
-Sandstone = Arenisca
-Wooden = Madera
-Leaves = Hojas
-
-## Grinder Recipes
-# $1: Name
-%s Dust = Polvo de %s
-Akalin = Akalina
-Alatro = Alatro
-Arol = Arol
-Brass = Laton
-Bronze = Bronce
-Carbon Steel = Acero al Carbono
-Cast Iron = Hierro Fundido
-Chromium = Cromo
-Coal = Carbon
-Copper = Cobre
-Gold = Oro
-Mithril = Mitrilo
-Silver = Plata
-Stainless Steel = Acero Inoxidable
-Talinite = Talinita
-Tin = Estanio
-Wrought Iron = Hierro Forjado
-Zinc = Zinc
-%.1f%%-Fissile Uranium =
-
-## Tools
-RE Battery =
-Water Can = Bidon de Agua
-Lava Can = Bidon de Lava
-Chainsaw = Motosierra
-Flashlight = Linterna
-3 nodes deep. = 3 nodos de profundo.
-3 nodes tall. = 3 nodos de alto.
-3 nodes wide. = 3 nodos de ancho.
-3x3 nodes. = 3x3 nodos.
-Use while sneaking to change Mining Drill Mk%d modes. = Manten pulsado Mayus y Usar para cambiar el modo del Taladro de Mineria Mk%d.
-Mining Drill Mk%d Mode %d = Taladro de Mineria Mk%d Modo %d
-Mining Drill Mk%d = Taladro de Mineria Mk%d
-Mining Laser Mk%d = Laser de Mineria Mk%d
-Single node. = Nodo simple.
-Sonic Screwdriver = Destonillador Sonico
-Tree Tap = Grifo de Arbol
-
-## Craft descriptions
-Alloy cooking =
-Grinding =
-Compressing =
-Extracting =
diff --git a/technic/technic/locale/it.txt b/technic/technic/locale/it.txt
deleted file mode 100644
index 59ba7f6..0000000
--- a/technic/technic/locale/it.txt
+++ /dev/null
@@ -1,201 +0,0 @@
-
-## Misc
-[Technic] Loaded in %f seconds = [Technic] caricato in %f secondi
-
-## Items
-Silicon Wafer = Wafer di silicone
-Doped Silicon Wafer = Wafer di silicone dopato
-Enriched Uranium = Uranio arricchito
-Uranium Fuel = Uranio Combustibile
-Diamond Drill Head = Trivella diamantata
-Blue Energy Crystal = Cristallo energetico blu
-Green Energy Crystal = Cristallo energetico verde
-Red Energy Crystal = Cristallo energetico rosso
-Fine Copper Wire = Filo di rame fine
-Copper Coil = Bobina di rame
-Electric Motor = Motore elettrico
-Low Voltage Transformer = Trasformatore in bassa tensione
-Medium Voltage Transformer = Trasformatore in media tensione
-High Voltage Transformer = Trasformatore in alta tensione
-Control Logic Unit = Unità di controllo logica
-Mixed Metal Ingot = Lingotto in lega ibrida
-Composite Plate = Lastra composita
-Copper Plate = Lastra di rame
-Carbon Plate = Lastra in carbonio
-Graphite = Lastra in graffite
-Carbon Cloth = Fibra di carbonio
-Raw Latex = Latex grezzo
-Rubber Fiber = Fibra di gomma
-%.1f%%-Fissile Uranium Ingot =
-%.1f%%-Fissile Uranium Block =
-
-## Machine misc
-Machine cannot be removed because it is not empty = La macchina non può essere rimossa perchè non è vuota
-Inventory move disallowed due to protection = Impossibile muovere l'inventario a causa della protezione
-# $1: Machine name (Includes tier)
-@1 Active (@2 EU) = @1 Attivo (@2 EU)
-%s Active = %s Attivo
-%s Disabled = %s Disabilitato
-%s Enabled =
-%s Idle = %s Inattivo
-%s Improperly Placed = %s Piazzato impropiamente
-%s Unpowered = %s Non alimentato
-%s Out Of Fuel = %s senza carburante
-%s Has Bad Cabling = %s ha un cablaggio scorretto
-%s Has No Network = %s non è collegata
-%s Finished = %s Finito
-Enable/Disable = Abilita/Disabilita
-Range = Raggio
-Upgrade Slots =
-In: = Ingresso:
-Out: = Uscita:
-Slot %d =
-Itemwise = Singolo elemento
-Stackwise = pila completa
-Owner: =
-Unlocked =
-Locked =
-Radius: =
-Enabled =
-Disabled =
-
-## Machine names
-# $1: Tier
-%s Alloy Furnace = %s Fornace per leghe
-%s Battery Box = %s Box batterie
-%s Cable = Cavo %s
-%s CNC Machine = Tornio CNC %s
-%s Compressor = Compressore %s
-%s Extractor = Estrattore %s
-%s Forcefield Emitter = Emettitore di campo di forza %s
-%s Furnace = %s Fornace
-%s Grinder = %s Tritatutto
-%s Music Player = Music Player %s
-%s Quarry = Cava %s
-%s Tool Workshop = Officina per attrezzi %s
-Arrayed Solar %s Generator = %s Pannello Solare
-Fuel-Fired %s Generator = %s Generatore a carbone
-Geothermal %s Generator = %s Generatore Geotermico
-Hydro %s Generator = Turbina Elettrica %s
-Nuclear %s Generator Core = Reattore nucleare %s
-Small Solar %s Generator = %s Pannello solare
-Wind %s Generator = %s Generatore eolico
-Self-Contained Injector = Ignettore
-Constructor Mk%d = Costruttore Mk%d
-Frame = Cornice
-Frame Motor = Cornice del motore
-Template =
-Template (replacing) = Template (rimpiazzato)
-Template Motor =
-Template Tool =
-Battery Box = Box batterie
-Supply Converter = Trasformatore
-Switching Station = Stazione di controllo
-Fuel-Fired Alloy Furnace = Fornace per leghe a carbone
-Fuel-Fired Furnace = Fornace a carbone
-Wind Mill Frame = Pala eolica
-Forcefield = Campo di forza
-Nuclear Reactor Rod Compartment = Compartimento combustibile nucleare
-Administrative World Anchor =
-
-## Machine-specific
-# $1: Pruduced EU
-Charge = Carica
-Discharge = Scarica
-Power level = Livello di potenza
-# $1: Tier $2: current_charge $3: max_charge
-@1 Battery Box: @2/@3 = @1 Box Batterie: @2/@3
-# $1: Machine name $2: Supply $3: Demand
-@1. Supply: @2 Demand: @3 = @1. Prodotto: @2 Consumato: @3
-Production at %d%% = Produzione a %d%%
-Choose Milling Program: = Scegliere un programma di Fresatura
-Slim Elements half / normal height: = Metà elementi sottili / altezza normale:
-Current track %s = Traccia corrente %s
-Stopped =
-Keeping %d/%d map blocks loaded =
-Digging not started =
-Digging finished =
-Digging %d m above machine =
-Digging %d m below machine =
-
-## CNC
-Cylinder = Cilindro
-Element Cross = Elemento a croce
-Element Cross Double = Elemento a croce doppio
-Element Edge = Elemento bordo
-Element Edge Double = Elemento bordo doppio
-Element End = Elemento finale
-Element End Double = Elemento finale doppio
-Element Straight = Elemento dritto
-Element Straight Double = Elemento dritto doppio
-Element T = Elemento a T
-Element T Double = Elemento a T doppio
-Horizontal Cylinder = Cilindro orizzontale
-One Curved Edge Block = Blocco con bordo curvo
-Pyramid = Piramide
-Slope = Inclinato
-Slope Edge = Bordo inclinato
-Slope Inner Edge = Bordo interno inclinato
-Slope Lying = Pendenza bugiarda
-Slope Upside Down = Pendenza capovolta
-Slope Upside Down Edge = Bordo inclinato capovolto
-Slope Upside Down Inner Edge = Bordo interno inclinato capovolto
-Sphere = Sfera
-Spike = Spuntone
-Stick = Bastone
-Two Curved Edge Block = Blocco con bordo a doppia curva
-Brick = Mattone
-Cobble = Ciottolato
-Dirt = Terra
-Leaves = Foglie
-Sandstone = Arenaria
-Stone = Pietra
-Tree = Albero
-Wooden = Legno
-
-## Grinder Recipes
-# $1: Name
-%s Dust = Polvere di %s
-Akalin = Alcalino
-Alatro = Alatro
-Arol = Arol
-Brass = Ottone
-Bronze = Bronzo
-Carbon Steel = Acciaio al Carbonio
-Cast Iron = Ghisa
-Chromium = Cromo
-Coal = Carbone
-Copper = Rame
-Gold = Oro
-Mithril = Mithril
-Silver = Argento
-Stainless Steel = Acciaio Inossidabile
-Talinite = Talinite
-Tin = Stagno
-Wrought Iron = Ferro Battuto
-Zinc = Zinco
-%.1f%%-Fissile Uranium =
-
-## Tools
-RE Battery =
-Water Can = Serbatoio d'acqua
-Lava Can = Serbatoio di lava
-Chainsaw = Motosega
-Flashlight = Torcia
-3 nodes deep. = 3 nodi in profondità.
-3 nodes tall. = 3 nodi in altezza.
-3 nodes wide. = 3 nodi in larghezza.
-3x3 nodes. = 3x3 nodi.
-Use while sneaking to change Mining Drill Mk%d modes. = Premi shift (freccia grossa) e usa per cambiare modalità nella trivella da miniera Mk%d.
-Mining Drill Mk%d Mode %d = Trivella mk%d in modalità %d
-Mining Drill Mk%d = Trivella da miniera mk%d
-Mining Laser Mk%d = Laser da miniera mk%d
-Single node. = Nodo singolo.
-Sonic Screwdriver = Cacciavite sonico
-Tree Tap = Batti albero
-
-## Craft descriptions
-Alloy cooking = Cottura lege
-Grinding = Macinazione
-Compressing = Compressione
-Extracting = Estrazione
diff --git a/technic/technic/locale/template.txt b/technic/technic/locale/template.txt
deleted file mode 100644
index 0464241..0000000
--- a/technic/technic/locale/template.txt
+++ /dev/null
@@ -1,211 +0,0 @@
-# template.txt
-# Template for translations of Technic
-
-
-## Misc
-[Technic] Loaded in %f seconds =
-
-## Items
-Silicon Wafer =
-Doped Silicon Wafer =
-Enriched Uranium =
-Uranium Fuel =
-Diamond Drill Head =
-Blue Energy Crystal =
-Green Energy Crystal =
-Red Energy Crystal =
-Fine Copper Wire =
-Copper Coil =
-Electric Motor =
-Low Voltage Transformer =
-Medium Voltage Transformer =
-High Voltage Transformer =
-Control Logic Unit =
-Mixed Metal Ingot =
-Composite Plate =
-Copper Plate =
-Carbon Plate =
-Graphite =
-Carbon Cloth =
-Raw Latex =
-Rubber Fiber =
-%.1f%%-Fissile Uranium Ingot =
-%.1f%%-Fissile Uranium Block =
-
-## Machine misc
-Machine cannot be removed because it is not empty =
-Inventory move disallowed due to protection =
-# $1: Machine name (Includes tier)
-@1 Active (@2 EU) =
-%s Active =
-%s Disabled =
-%s Enabled =
-%s Idle =
-%s Improperly Placed =
-%s is empty =
-%s Unpowered =
-%s Out Of Fuel =
-%s Has Bad Cabling =
-%s (Slave) =
-%s Has No Network =
-%s Finished =
-Enable/Disable =
-Range =
-Upgrade Slots =
-In: =
-Out: =
-Slot %d =
-Itemwise =
-Stackwise =
-Ignoring Mesecon Signal =
-Controlled by Mesecon Signal =
-Owner: =
-Unlocked =
-Locked =
-Radius: =
-Enabled =
-Disabled =
-
-## Machine names
-# $1: Tier
-%s Alloy Furnace =
-%s Battery Box =
-%s Cable =
-%s CNC Machine =
-%s Centrifuge =
-%s Compressor =
-%s Extractor =
-%s Forcefield Emitter =
-%s Furnace =
-%s Grinder =
-%s Music Player =
-%s Quarry =
-%s Tool Workshop =
-Arrayed Solar %s Generator =
-Fuel-Fired %s Generator =
-Geothermal %s Generator =
-Hydro %s Generator =
-Nuclear %s Generator Core =
-Small Solar %s Generator =
-Wind %s Generator =
-Self-Contained Injector =
-Constructor Mk%d =
-Frame =
-Frame Motor =
-Template =
-Template (replacing) =
-Template Motor =
-Template Tool =
-Battery Box =
-Supply Converter =
-Switching Station =
-Fuel-Fired Alloy Furnace =
-Fuel-Fired Furnace =
-Wind Mill Frame =
-Forcefield =
-Nuclear Reactor Rod Compartment =
-Administrative World Anchor =
-
-## Machine-specific
-# $1: Pruduced EU
-Charge =
-Discharge =
-Power level =
-# $1: Tier $2: current_charge $3: max_charge
-@1 Battery Box: @2/@3 =
-# $1: Machine name $2: Supply $3: Demand
-@1. Supply: @2 Demand: @3 =
-Production at %d%% =
-Choose Milling Program: =
-Slim Elements half / normal height: =
-Current track %s =
-Stopped =
-Keeping %d/%d map blocks loaded =
-Digging not started =
-Digging finished =
-Digging %d m above machine =
-Digging %d m below machine =
-@1 (@2 @3 -> @4 @5) =
-
-## CNC
-Cylinder =
-Element Cross =
-Element Cross Double =
-Element Edge =
-Element Edge Double =
-Element End =
-Element End Double =
-Element Straight =
-Element Straight Double =
-Element T =
-Element T Double =
-Horizontal Cylinder =
-One Curved Edge Block =
-Pyramid =
-Slope =
-Slope Edge =
-Slope Inner Edge =
-Slope Lying =
-Slope Upside Down =
-Slope Upside Down Edge =
-Slope Upside Down Inner Edge =
-Sphere =
-Spike =
-Stick =
-Two Curved Edge Block =
-Brick =
-Cobble =
-Dirt =
-Leaves =
-Sandstone =
-Stone =
-Tree =
-Wooden =
-
-## Grinder Recipes
-# $1: Name
-%s Dust =
-Akalin =
-Alatro =
-Arol =
-Brass =
-Bronze =
-Carbon Steel =
-Cast Iron =
-Chromium =
-Coal =
-Copper =
-Gold =
-Mithril =
-Silver =
-Stainless Steel =
-Talinite =
-Tin =
-Wrought Iron =
-Zinc =
-%.1f%%-Fissile Uranium =
-
-## Tools
-RE Battery =
-Water Can =
-Lava Can =
-Chainsaw =
-Flashlight =
-3 nodes deep. =
-3 nodes tall. =
-3 nodes wide. =
-3x3 nodes. =
-Use while sneaking to change Mining Drill Mk%d modes. =
-Mining Drill Mk%d Mode %d =
-Mining Drill Mk%d =
-Mining Laser Mk%d =
-Single node. =
-Sonic Screwdriver =
-Tree Tap =
-
-## Craft descriptions
-Alloy cooking =
-Grinding =
-Compressing =
-Extracting =
-Separating =
diff --git a/technic/technic/machines/HV/battery_box.lua b/technic/technic/machines/HV/battery_box.lua
deleted file mode 100644
index 1e054ec..0000000
--- a/technic/technic/machines/HV/battery_box.lua
+++ /dev/null
@@ -1,21 +0,0 @@
--- HV battery box
-minetest.register_craft({
- output = 'technic:hv_battery_box0',
- recipe = {
- {'technic:mv_battery_box0', 'technic:mv_battery_box0', 'technic:mv_battery_box0'},
- {'technic:mv_battery_box0', 'technic:hv_transformer', 'technic:mv_battery_box0'},
- {'', 'technic:hv_cable0', ''},
- }
-})
-
-technic.register_battery_box({
- tier = "HV",
- max_charge = 1000000,
- charge_rate = 100000,
- discharge_rate = 400000,
- charge_step = 10000,
- discharge_step = 40000,
- upgrade = 1,
- tube = 1,
-})
-
diff --git a/technic/technic/machines/HV/cables.lua b/technic/technic/machines/HV/cables.lua
deleted file mode 100644
index 25297c8..0000000
--- a/technic/technic/machines/HV/cables.lua
+++ /dev/null
@@ -1,12 +0,0 @@
-
-minetest.register_craft({
- output = 'technic:hv_cable0 3',
- recipe = {
- {'homedecor:plastic_sheeting', 'homedecor:plastic_sheeting', 'homedecor:plastic_sheeting'},
- {'technic:mv_cable0', 'technic:mv_cable0', 'technic:mv_cable0'},
- {'homedecor:plastic_sheeting', 'homedecor:plastic_sheeting', 'homedecor:plastic_sheeting'},
- }
-})
-
-technic.register_cable("HV", 3/16)
-
diff --git a/technic/technic/machines/HV/forcefield.lua b/technic/technic/machines/HV/forcefield.lua
deleted file mode 100644
index 0f0836d..0000000
--- a/technic/technic/machines/HV/forcefield.lua
+++ /dev/null
@@ -1,261 +0,0 @@
---- Forcefield generator.
--- @author ShadowNinja
---
--- Forcefields are powerful barriers but they consume huge amounts of power.
--- The forcefield Generator is an HV machine.
-
--- How expensive is the generator?
--- Leaves room for upgrades lowering the power drain?
-local forcefield_power_drain = 10
-
-local S = technic.getter
-
-minetest.register_craft({
- output = "technic:forcefield_emitter_off",
- recipe = {
- {"default:mese", "technic:motor", "default:mese" },
- {"technic:deployer_off", "technic:machine_casing", "technic:deployer_off"},
- {"default:mese", "technic:hv_cable0", "default:mese" },
- }
-})
-
-
-local replaceable_cids = {}
-
-minetest.after(0, function()
- for name, ndef in pairs(minetest.registered_nodes) do
- if ndef.buildable_to == true and name ~= "ignore" then
- replaceable_cids[minetest.get_content_id(name)] = true
- end
- end
-end)
-
-
--- Idea: Let forcefields have different colors by upgrade slot.
--- Idea: Let forcefields add up by detecting if one hits another.
--- ___ __
--- / \/ \
--- | |
--- \___/\___/
-
-local function update_forcefield(pos, meta, active, first)
- local shape = meta:get_int("shape")
- local range = meta:get_int("range")
- local vm = VoxelManip()
- local MinEdge, MaxEdge = vm:read_from_map(vector.subtract(pos, range),
- vector.add(pos, range))
- local area = VoxelArea:new({MinEdge = MinEdge, MaxEdge = MaxEdge})
- local data = vm:get_data()
-
- local c_air = minetest.get_content_id("air")
- local c_field = minetest.get_content_id("technic:forcefield")
-
- for z = -range, range do
- for y = -range, range do
- local vi = area:index(pos.x + (-range), pos.y + y, pos.z + z)
- for x = -range, range do
- local relevant
- if shape == 0 then
- local squared = x * x + y * y + z * z
- relevant =
- squared <= range * range + range and
- squared >= (range - 1) * (range - 1) + (range - 1)
- else
- relevant =
- x == -range or x == range or
- y == -range or y == range or
- z == -range or z == range
- end
- if relevant then
- local cid = data[vi]
- if active and replaceable_cids[cid] then
- data[vi] = c_field
- elseif not active and cid == c_field then
- data[vi] = c_air
- end
- end
- vi = vi + 1
- end
- end
- end
-
- vm:set_data(data)
- vm:update_liquids()
- vm:write_to_map()
- -- update_map is very slow, but if we don't call it we'll
- -- get phantom blocks on the client.
- if not active or first then
- vm:update_map()
- end
-end
-
-local function set_forcefield_formspec(meta)
- local formspec = "size[5,2.25]"..
- "field[0.3,0.5;2,1;range;"..S("Range")..";"..meta:get_int("range").."]"
- -- The names for these toggle buttons are explicit about which
- -- state they'll switch to, so that multiple presses (arising
- -- from the ambiguity between lag and a missed press) only make
- -- the single change that the user expects.
- if meta:get_int("shape") == 0 then
- formspec = formspec.."button[3,0.2;2,1;shape1;"..S("Sphere").."]"
- else
- formspec = formspec.."button[3,0.2;2,1;shape0;"..S("Cube").."]"
- end
- if meta:get_int("mesecon_mode") == 0 then
- formspec = formspec.."button[0,1;5,1;mesecon_mode_1;"..S("Ignoring Mesecon Signal").."]"
- else
- formspec = formspec.."button[0,1;5,1;mesecon_mode_0;"..S("Controlled by Mesecon Signal").."]"
- end
- if meta:get_int("enabled") == 0 then
- formspec = formspec.."button[0,1.75;5,1;enable;"..S("%s Disabled"):format(S("%s Forcefield Emitter"):format("HV")).."]"
- else
- formspec = formspec.."button[0,1.75;5,1;disable;"..S("%s Enabled"):format(S("%s Forcefield Emitter"):format("HV")).."]"
- end
- meta:set_string("formspec", formspec)
-end
-
-local forcefield_receive_fields = function(pos, formname, fields, sender)
- local meta = minetest.get_meta(pos)
- local range = nil
- if fields.range then
- range = tonumber(fields.range) or 0
- -- Smallest field is 5. Anything less is asking for trouble.
- -- Largest is 20. It is a matter of pratical node handling.
- -- At the maximim range updating the forcefield takes about 0.2s
- range = math.max(range, 5)
- range = math.min(range, 20)
- if range == meta:get_int("range") then range = nil end
- end
- if fields.shape0 or fields.shape1 or range then
- update_forcefield(pos, meta, false)
- end
- if range then meta:set_int("range", range) end
- if fields.shape0 then meta:set_int("shape", 0) end
- if fields.shape1 then meta:set_int("shape", 1) end
- if fields.enable then meta:set_int("enabled", 1) end
- if fields.disable then meta:set_int("enabled", 0) end
- if fields.mesecon_mode_0 then meta:set_int("mesecon_mode", 0) end
- if fields.mesecon_mode_1 then meta:set_int("mesecon_mode", 1) end
- set_forcefield_formspec(meta)
-end
-
-local mesecons = {
- effector = {
- action_on = function(pos, node)
- minetest.get_meta(pos):set_int("mesecon_effect", 1)
- end,
- action_off = function(pos, node)
- minetest.get_meta(pos):set_int("mesecon_effect", 0)
- end
- }
-}
-
-local function run(pos, node)
- local meta = minetest.get_meta(pos)
- local eu_input = meta:get_int("HV_EU_input")
- local enabled = meta:get_int("enabled") ~= 0 and (meta:get_int("mesecon_mode") == 0 or meta:get_int("mesecon_effect") ~= 0)
- local machine_name = S("%s Forcefield Emitter"):format("HV")
-
- local range = meta:get_int("range")
- local power_requirement
- if meta:get_int("shape") == 0 then
- power_requirement = math.floor(4 * math.pi * range * range)
- else
- power_requirement = 24 * range * range
- end
- power_requirement = power_requirement * forcefield_power_drain
-
- if not enabled then
- if node.name == "technic:forcefield_emitter_on" then
- update_forcefield(pos, meta, false)
- technic.swap_node(pos, "technic:forcefield_emitter_off")
- meta:set_string("infotext", S("%s Disabled"):format(machine_name))
- end
- meta:set_int("HV_EU_demand", 0)
- return
- end
- meta:set_int("HV_EU_demand", power_requirement)
- if eu_input < power_requirement then
- meta:set_string("infotext", S("%s Unpowered"):format(machine_name))
- if node.name == "technic:forcefield_emitter_on" then
- update_forcefield(pos, meta, false)
- technic.swap_node(pos, "technic:forcefield_emitter_off")
- end
- elseif eu_input >= power_requirement then
- local first = false
- if node.name == "technic:forcefield_emitter_off" then
- first = true
- technic.swap_node(pos, "technic:forcefield_emitter_on")
- meta:set_string("infotext", S("%s Active"):format(machine_name))
- end
- update_forcefield(pos, meta, true, first)
- end
-end
-
-minetest.register_node("technic:forcefield_emitter_off", {
- description = S("%s Forcefield Emitter"):format("HV"),
- tiles = {"technic_forcefield_emitter_off.png"},
- groups = {cracky = 1, technic_machine = 1},
- on_receive_fields = forcefield_receive_fields,
- on_construct = function(pos)
- local meta = minetest.get_meta(pos)
- meta:set_int("HV_EU_input", 0)
- meta:set_int("HV_EU_demand", 0)
- meta:set_int("range", 10)
- meta:set_int("enabled", 0)
- meta:set_int("mesecon_mode", 0)
- meta:set_int("mesecon_effect", 0)
- meta:set_string("infotext", S("%s Forcefield Emitter"):format("HV"))
- set_forcefield_formspec(meta)
- end,
- mesecons = mesecons,
- technic_run = run,
-})
-
-minetest.register_node("technic:forcefield_emitter_on", {
- description = S("%s Forcefield Emitter"):format("HV"),
- tiles = {"technic_forcefield_emitter_on.png"},
- groups = {cracky = 1, technic_machine = 1, not_in_creative_inventory=1},
- drop = "technic:forcefield_emitter_off",
- on_receive_fields = forcefield_receive_fields,
- on_destruct = function(pos)
- local meta = minetest.get_meta(pos)
- update_forcefield(pos, meta, false)
- end,
- mesecons = mesecons,
- technic_run = run,
- technic_on_disable = function (pos, node)
- local meta = minetest.get_meta(pos)
- update_forcefield(pos, meta, false)
- technic.swap_node(pos, "technic:forcefield_emitter_off")
- end,
-})
-
-minetest.register_node("technic:forcefield", {
- description = S("%s Forcefield"):format("HV"),
- sunlight_propagates = true,
- drawtype = "glasslike",
- groups = {not_in_creative_inventory=1},
- paramtype = "light",
- light_source = 15,
- diggable = false,
- drop = '',
- tiles = {{
- name = "technic_forcefield_animated.png",
- animation = {
- type = "vertical_frames",
- aspect_w = 16,
- aspect_h = 16,
- length = 1.0,
- },
- }},
-})
-
-
-if minetest.get_modpath("mesecons_mvps") then
- mesecon.register_mvps_stopper("technic:forcefield")
-end
-
-technic.register_machine("HV", "technic:forcefield_emitter_on", technic.receiver)
-technic.register_machine("HV", "technic:forcefield_emitter_off", technic.receiver)
-
diff --git a/technic/technic/machines/HV/generator.lua b/technic/technic/machines/HV/generator.lua
deleted file mode 100644
index aa83590..0000000
--- a/technic/technic/machines/HV/generator.lua
+++ /dev/null
@@ -1,13 +0,0 @@
-minetest.register_alias("hv_generator", "technic:hv_generator")
-
-minetest.register_craft({
- output = 'technic:hv_generator',
- recipe = {
- {'technic:carbon_plate', 'technic:mv_generator', 'technic:composite_plate'},
- {'pipeworks:tube_1', 'technic:hv_transformer', 'pipeworks:tube_1'},
- {'technic:stainless_steel_ingot', 'technic:hv_cable0', 'technic:stainless_steel_ingot'},
- }
-})
-
-technic.register_generator({tier="HV", tube=1, supply=1200})
-
diff --git a/technic/technic/machines/HV/init.lua b/technic/technic/machines/HV/init.lua
deleted file mode 100644
index d7136b4..0000000
--- a/technic/technic/machines/HV/init.lua
+++ /dev/null
@@ -1,18 +0,0 @@
-
-technic.register_tier("HV", "High Voltage")
-
-local path = technic.modpath.."/machines/HV"
-
--- Wiring stuff
-dofile(path.."/cables.lua")
-dofile(path.."/battery_box.lua")
-
--- Generators
-dofile(path.."/solar_array.lua")
-dofile(path.."/nuclear_reactor.lua")
-dofile(path.."/generator.lua")
-
--- Machines
-dofile(path.."/quarry.lua")
-dofile(path.."/forcefield.lua")
-
diff --git a/technic/technic/machines/HV/nuclear_reactor.lua b/technic/technic/machines/HV/nuclear_reactor.lua
deleted file mode 100644
index 3aa1ba8..0000000
--- a/technic/technic/machines/HV/nuclear_reactor.lua
+++ /dev/null
@@ -1,723 +0,0 @@
--- The enriched uranium rod driven EU generator.
--- A very large and advanced machine providing vast amounts of power.
--- Very efficient but also expensive to run as it needs uranium. (10000EU 86400 ticks (one week))
--- Provides HV EUs that can be down converted as needed.
---
--- The nuclear reactor core needs water and a protective shield to work.
--- This is checked now and then and if the machine is tampered with... BOOM!
-
-local burn_ticks = 7 * 24 * 60 * 60 -- (seconds).
-local power_supply = 100000 -- EUs
-local fuel_type = "technic:uranium_fuel" -- The reactor burns this stuff
-
-local S = technic.getter
-
-if not vector.length_square then
- vector.length_square = function (v)
- return v.x*v.x + v.y*v.y + v.z*v.z
- end
-end
-
--- FIXME: recipe must make more sense like a rod recepticle, steam chamber, HV generator?
-minetest.register_craft({
- output = 'technic:hv_nuclear_reactor_core',
- recipe = {
- {'technic:carbon_plate', 'default:obsidian_glass', 'technic:carbon_plate'},
- {'technic:composite_plate', 'technic:machine_casing', 'technic:composite_plate'},
- {'technic:stainless_steel_ingot', 'technic:hv_cable0', 'technic:stainless_steel_ingot'},
- }
-})
-
-local generator_formspec =
- "invsize[8,9;]"..
- "label[0,0;"..S("Nuclear Reactor Rod Compartment").."]"..
- "list[current_name;src;2,1;3,2;]"..
- "list[current_player;main;0,5;8,4;]"..
- "listring[]"
-
--- "Boxy sphere"
-local nodebox = {
- { -0.353, -0.353, -0.353, 0.353, 0.353, 0.353 }, -- Box
- { -0.495, -0.064, -0.064, 0.495, 0.064, 0.064 }, -- Circle +-x
- { -0.483, -0.128, -0.128, 0.483, 0.128, 0.128 },
- { -0.462, -0.191, -0.191, 0.462, 0.191, 0.191 },
- { -0.433, -0.249, -0.249, 0.433, 0.249, 0.249 },
- { -0.397, -0.303, -0.303, 0.397, 0.303, 0.303 },
- { -0.305, -0.396, -0.305, 0.305, 0.396, 0.305 }, -- Circle +-y
- { -0.250, -0.432, -0.250, 0.250, 0.432, 0.250 },
- { -0.191, -0.461, -0.191, 0.191, 0.461, 0.191 },
- { -0.130, -0.482, -0.130, 0.130, 0.482, 0.130 },
- { -0.066, -0.495, -0.066, 0.066, 0.495, 0.066 },
- { -0.064, -0.064, -0.495, 0.064, 0.064, 0.495 }, -- Circle +-z
- { -0.128, -0.128, -0.483, 0.128, 0.128, 0.483 },
- { -0.191, -0.191, -0.462, 0.191, 0.191, 0.462 },
- { -0.249, -0.249, -0.433, 0.249, 0.249, 0.433 },
- { -0.303, -0.303, -0.397, 0.303, 0.303, 0.397 },
-}
-
-local reactor_siren = {}
-local function siren_set_state(pos, newstate)
- local hpos = minetest.hash_node_position(pos)
- local siren = reactor_siren[hpos]
- if not siren then
- if newstate == "off" then return end
- siren = {state="off"}
- reactor_siren[hpos] = siren
- end
- if newstate == "danger" and siren.state ~= "danger" then
- if siren.handle then minetest.sound_stop(siren.handle) end
- siren.handle = minetest.sound_play("technic_hv_nuclear_reactor_siren_danger_loop", {pos=pos, gain=1.5, loop=true, max_hear_distance=48})
- siren.state = "danger"
- elseif newstate == "clear" then
- if siren.handle then minetest.sound_stop(siren.handle) end
- local clear_handle = minetest.sound_play("technic_hv_nuclear_reactor_siren_clear", {pos=pos, gain=1.5, loop=false, max_hear_distance=48})
- siren.handle = clear_handle
- siren.state = "clear"
- minetest.after(10, function ()
- if siren.handle == clear_handle then
- minetest.sound_stop(clear_handle)
- if reactor_siren[hpos] == siren then
- reactor_siren[hpos] = nil
- end
- end
- end)
- elseif newstate == "off" and siren.state ~= "off" then
- if siren.handle then minetest.sound_stop(siren.handle) end
- siren.handle = nil
- reactor_siren[hpos] = nil
- end
-end
-local function siren_danger(pos, meta)
- meta:set_int("siren", 1)
- siren_set_state(pos, "danger")
-end
-local function siren_clear(pos, meta)
- if meta:get_int("siren") ~= 0 then
- siren_set_state(pos, "clear")
- meta:set_int("siren", 0)
- end
-end
-
--- The standard reactor structure consists of a 9x9x9 cube. A cross
--- section through the middle:
---
--- CCCC CCCC
--- CBBB BBBC
--- CBSS SSBC
--- CBSWWWSBC
--- CBSW#WSBC
--- CBSW|WSBC
--- CBSS|SSBC
--- CBBB|BBBC
--- CCCC|CCCC
--- C = Concrete, B = Blast-resistant concrete, S = Stainless Steel,
--- W = water node, # = reactor core, | = HV cable
---
--- The man-hole and the HV cable are only in the middle, and the man-hole
--- is optional.
---
--- For the reactor to operate and not melt down, it insists on the inner
--- 7x7x7 portion (from the core out to the blast-resistant concrete)
--- being intact. Intactness only depends on the number of nodes of the
--- right type in each layer. The water layer must have water in all but
--- at most one node; the steel and blast-resistant concrete layers must
--- have the right material in all but at most two nodes. The permitted
--- gaps are meant for the cable and man-hole, but can actually be anywhere
--- and contain anything. For the reactor to be useful, a cable must
--- connect to the core, but it can go in any direction.
---
--- The outer concrete layer of the standard structure is not required
--- for the reactor to operate. It is noted here because it used to
--- be mandatory, and for historical reasons (that it predates the
--- implementation of radiation) it needs to continue being adequate
--- shielding of legacy reactors. If it ever ceases to be adequate
--- shielding for new reactors, legacy ones should be grandfathered.
-local reactor_structure_badness = function(pos)
- local vm = VoxelManip()
- local pos1 = vector.subtract(pos, 3)
- local pos2 = vector.add(pos, 3)
- local MinEdge, MaxEdge = vm:read_from_map(pos1, pos2)
- local data = vm:get_data()
- local area = VoxelArea:new({MinEdge=MinEdge, MaxEdge=MaxEdge})
-
- local c_blast_concrete = minetest.get_content_id("technic:blast_resistant_concrete")
- local c_stainless_steel = minetest.get_content_id("technic:stainless_steel_block")
- local c_water_source = minetest.get_content_id("default:water_source")
- local c_water_flowing = minetest.get_content_id("default:water_flowing")
-
- local blastlayer, steellayer, waterlayer = 0, 0, 0
-
- for z = pos1.z, pos2.z do
- for y = pos1.y, pos2.y do
- for x = pos1.x, pos2.x do
- local cid = data[area:index(x, y, z)]
- if x == pos1.x or x == pos2.x or
- y == pos1.y or y == pos2.y or
- z == pos1.z or z == pos2.z then
- if cid == c_blast_concrete then
- blastlayer = blastlayer + 1
- end
- elseif x == pos1.x+1 or x == pos2.x-1 or
- y == pos1.y+1 or y == pos2.y-1 or
- z == pos1.z+1 or z == pos2.z-1 then
- if cid == c_stainless_steel then
- steellayer = steellayer + 1
- end
- elseif x == pos1.x+2 or x == pos2.x-2 or
- y == pos1.y+2 or y == pos2.y-2 or
- z == pos1.z+2 or z == pos2.z-2 then
- if cid == c_water_source or cid == c_water_flowing then
- waterlayer = waterlayer + 1
- end
- end
- end
- end
- end
- if waterlayer > 25 then waterlayer = 25 end
- if steellayer > 96 then steellayer = 96 end
- if blastlayer > 216 then blastlayer = 216 end
- return (25 - waterlayer) + (96 - steellayer) + (216 - blastlayer)
-end
-
-local function meltdown_reactor(pos)
- print("A reactor melted down at "..minetest.pos_to_string(pos))
- minetest.set_node(pos, {name="technic:corium_source"})
-end
-
-minetest.register_abm({
- nodenames = {"technic:hv_nuclear_reactor_core_active"},
- interval = 1,
- chance = 1,
- action = function (pos, node)
- local meta = minetest.get_meta(pos)
- local badness = reactor_structure_badness(pos)
- local accum_badness = meta:get_int("structure_accumulated_badness")
- if badness == 0 then
- if accum_badness ~= 0 then
- meta:set_int("structure_accumulated_badness", accum_badness - 1)
- siren_clear(pos, meta)
- end
- else
- siren_danger(pos, meta)
- accum_badness = accum_badness + badness
- if accum_badness >= 100 then
- meltdown_reactor(pos)
- else
- meta:set_int("structure_accumulated_badness", accum_badness)
- end
- end
- end,
-})
-
-local run = function(pos, node)
- local meta = minetest.get_meta(pos)
- local machine_name = S("Nuclear %s Generator Core"):format("HV")
- local burn_time = meta:get_int("burn_time") or 0
-
- if burn_time >= burn_ticks or burn_time == 0 then
- local inv = meta:get_inventory()
- if not inv:is_empty("src") then
- local srclist = inv:get_list("src")
- local correct_fuel_count = 0
- for _, srcstack in pairs(srclist) do
- if srcstack then
- if srcstack:get_name() == fuel_type then
- correct_fuel_count = correct_fuel_count + 1
- end
- end
- end
- -- Check that the reactor is complete as well
- -- as the correct number of correct fuel
- if correct_fuel_count == 6 and
- reactor_structure_badness(pos) == 0 then
- meta:set_int("burn_time", 1)
- technic.swap_node(pos, "technic:hv_nuclear_reactor_core_active")
- meta:set_int("HV_EU_supply", power_supply)
- for idx, srcstack in pairs(srclist) do
- srcstack:take_item()
- inv:set_stack("src", idx, srcstack)
- end
- return
- end
- end
- meta:set_int("HV_EU_supply", 0)
- meta:set_int("burn_time", 0)
- meta:set_string("infotext", S("%s Idle"):format(machine_name))
- technic.swap_node(pos, "technic:hv_nuclear_reactor_core")
- meta:set_int("structure_accumulated_badness", 0)
- siren_clear(pos, meta)
- elseif burn_time > 0 then
- burn_time = burn_time + 1
- meta:set_int("burn_time", burn_time)
- local percent = math.floor(burn_time / burn_ticks * 100)
- meta:set_string("infotext", machine_name.." ("..percent.."%)")
- meta:set_int("HV_EU_supply", power_supply)
- end
-end
-
-minetest.register_node("technic:hv_nuclear_reactor_core", {
- description = S("Nuclear %s Generator Core"):format("HV"),
- tiles = {"technic_hv_nuclear_reactor_core.png", "technic_hv_nuclear_reactor_core.png",
- "technic_hv_nuclear_reactor_core.png", "technic_hv_nuclear_reactor_core.png",
- "technic_hv_nuclear_reactor_core.png", "technic_hv_nuclear_reactor_core.png"},
- groups = {cracky=1, technic_machine=1},
- legacy_facedir_simple = true,
- sounds = default.node_sound_wood_defaults(),
- drawtype="nodebox",
- paramtype = "light",
- stack_max = 1,
- node_box = {
- type = "fixed",
- fixed = nodebox
- },
- on_construct = function(pos)
- local meta = minetest.get_meta(pos)
- meta:set_string("infotext", S("Nuclear %s Generator Core"):format("HV"))
- meta:set_int("HV_EU_supply", 0)
- -- Signal to the switching station that this device burns some
- -- sort of fuel and needs special handling
- meta:set_int("HV_EU_from_fuel", 1)
- meta:set_int("burn_time", 0)
- meta:set_string("formspec", generator_formspec)
- local inv = meta:get_inventory()
- inv:set_size("src", 6)
- end,
- can_dig = technic.machine_can_dig,
- on_destruct = function(pos) siren_set_state(pos, "off") end,
- allow_metadata_inventory_put = technic.machine_inventory_put,
- allow_metadata_inventory_take = technic.machine_inventory_take,
- allow_metadata_inventory_move = technic.machine_inventory_move,
- technic_run = run,
-})
-
-minetest.register_node("technic:hv_nuclear_reactor_core_active", {
- tiles = {"technic_hv_nuclear_reactor_core.png", "technic_hv_nuclear_reactor_core.png",
- "technic_hv_nuclear_reactor_core.png", "technic_hv_nuclear_reactor_core.png",
- "technic_hv_nuclear_reactor_core.png", "technic_hv_nuclear_reactor_core.png"},
- groups = {cracky=1, technic_machine=1, radioactive=11000, not_in_creative_inventory=1},
- legacy_facedir_simple = true,
- sounds = default.node_sound_wood_defaults(),
- drop="technic:hv_nuclear_reactor_core",
- drawtype="nodebox",
- light_source = 15,
- paramtype = "light",
- node_box = {
- type = "fixed",
- fixed = nodebox
- },
- can_dig = technic.machine_can_dig,
- after_dig_node = meltdown_reactor,
- on_destruct = function(pos) siren_set_state(pos, "off") end,
- allow_metadata_inventory_put = technic.machine_inventory_put,
- allow_metadata_inventory_take = technic.machine_inventory_take,
- allow_metadata_inventory_move = technic.machine_inventory_move,
- technic_run = run,
- technic_on_disable = function(pos, node)
- local timer = minetest.get_node_timer(pos)
- timer:start(1)
- end,
- on_timer = function(pos, node)
- local meta = minetest.get_meta(pos)
-
- -- Connected back?
- if meta:get_int("HV_EU_timeout") > 0 then return false end
-
- local burn_time = meta:get_int("burn_time") or 0
-
- if burn_time >= burn_ticks or burn_time == 0 then
- meta:set_int("HV_EU_supply", 0)
- meta:set_int("burn_time", 0)
- technic.swap_node(pos, "technic:hv_nuclear_reactor_core")
- meta:set_int("structure_accumulated_badness", 0)
- siren_clear(pos, meta)
- return false
- end
-
- meta:set_int("burn_time", burn_time + 1)
- return true
- end,
-})
-
-technic.register_machine("HV", "technic:hv_nuclear_reactor_core", technic.producer)
-technic.register_machine("HV", "technic:hv_nuclear_reactor_core_active", technic.producer)
-
--- radioactivity
-
--- Radiation resistance represents the extent to which a material
--- attenuates radiation passing through it; i.e., how good a radiation
--- shield it is. This is identified per node type. For materials that
--- exist in real life, the radiation resistance value that this system
--- uses for a node type consisting of a solid cube of that material is the
--- (approximate) number of halvings of ionising radiation that is achieved
--- by a metre of the material in real life. This is approximately
--- proportional to density, which provides a good way to estimate it.
--- Homogeneous mixtures of materials have radiation resistance computed
--- by a simple weighted mean. Note that the amount of attenuation that
--- a material achieves in-game is not required to be (and is not) the
--- same as the attenuation achieved in real life.
---
--- Radiation resistance for a node type may be specified in the node
--- definition, under the key "radiation_resistance". As an interim
--- measure, until node definitions widely include this, this code
--- knows a bunch of values for particular node types in several mods,
--- and values for groups of node types. The node definition takes
--- precedence if it specifies a value. Nodes for which no value at
--- all is known are taken to provide no radiation resistance at all;
--- this is appropriate for the majority of node types. Only node types
--- consisting of a fairly homogeneous mass of material should report
--- non-zero radiation resistance; anything with non-uniform geometry
--- or complex internal structure should show no radiation resistance.
--- Fractional resistance values are permitted; two significant figures
--- is the recommended precision.
-local default_radiation_resistance_per_node = {
- ["default:brick"] = 13,
- ["default:bronzeblock"] = 45,
- ["default:clay"] = 15,
- ["default:coalblock"] = 9.6,
- ["default:cobble"] = 15,
- ["default:copperblock"] = 46,
- ["default:desert_cobble"] = 15,
- ["default:desert_sand"] = 10,
- ["default:desert_stone"] = 17,
- ["default:desert_stonebrick"] = 17,
- ["default:diamondblock"] = 24,
- ["default:dirt"] = 8.2,
- ["default:dirt_with_grass"] = 8.2,
- ["default:dirt_with_grass_footsteps"] = 8.2,
- ["default:dirt_with_snow"] = 8.2,
- ["default:glass"] = 17,
- ["default:goldblock"] = 170,
- ["default:gravel"] = 10,
- ["default:ice"] = 5.6,
- ["default:lava_flowing"] = 8.5,
- ["default:lava_source"] = 17,
- ["default:mese"] = 21,
- ["default:mossycobble"] = 15,
- ["default:nyancat"] = 1000,
- ["default:nyancat_rainbow"] = 1000,
- ["default:obsidian"] = 18,
- ["default:obsidian_glass"] = 18,
- ["default:sand"] = 10,
- ["default:sandstone"] = 15,
- ["default:sandstonebrick"] = 15,
- ["default:snowblock"] = 1.7,
- ["default:steelblock"] = 40,
- ["default:stone"] = 17,
- ["default:stone_with_coal"] = 16,
- ["default:stone_with_copper"] = 20,
- ["default:stone_with_diamond"] = 18,
- ["default:stone_with_gold"] = 34,
- ["default:stone_with_iron"] = 20,
- ["default:stone_with_mese"] = 17,
- ["default:stonebrick"] = 17,
- ["default:water_flowing"] = 2.8,
- ["default:water_source"] = 5.6,
- ["farming:desert_sand_soil"] = 10,
- ["farming:desert_sand_soil_wet"] = 10,
- ["farming:soil"] = 8.2,
- ["farming:soil_wet"] = 8.2,
- ["glooptest:akalin_crystal_glass"] = 21,
- ["glooptest:akalinblock"] = 40,
- ["glooptest:alatro_crystal_glass"] = 21,
- ["glooptest:alatroblock"] = 40,
- ["glooptest:amethystblock"] = 18,
- ["glooptest:arol_crystal_glass"] = 21,
- ["glooptest:crystal_glass"] = 21,
- ["glooptest:emeraldblock"] = 19,
- ["glooptest:heavy_crystal_glass"] = 21,
- ["glooptest:mineral_akalin"] = 20,
- ["glooptest:mineral_alatro"] = 20,
- ["glooptest:mineral_amethyst"] = 17,
- ["glooptest:mineral_arol"] = 20,
- ["glooptest:mineral_desert_coal"] = 16,
- ["glooptest:mineral_desert_iron"] = 20,
- ["glooptest:mineral_emerald"] = 17,
- ["glooptest:mineral_kalite"] = 20,
- ["glooptest:mineral_ruby"] = 18,
- ["glooptest:mineral_sapphire"] = 18,
- ["glooptest:mineral_talinite"] = 20,
- ["glooptest:mineral_topaz"] = 18,
- ["glooptest:reinforced_crystal_glass"] = 21,
- ["glooptest:rubyblock"] = 27,
- ["glooptest:sapphireblock"] = 27,
- ["glooptest:talinite_crystal_glass"] = 21,
- ["glooptest:taliniteblock"] = 40,
- ["glooptest:topazblock"] = 24,
- ["mesecons_extrawires:mese_powered"] = 21,
- ["moreblocks:cactus_brick"] = 13,
- ["moreblocks:cactus_checker"] = 8.5,
- ["moreblocks:circle_stone_bricks"] = 17,
- ["moreblocks:clean_glass"] = 17,
- ["moreblocks:coal_checker"] = 9.0,
- ["moreblocks:coal_glass"] = 17,
- ["moreblocks:coal_stone"] = 17,
- ["moreblocks:coal_stone_bricks"] = 17,
- ["moreblocks:glow_glass"] = 17,
- ["moreblocks:grey_bricks"] = 15,
- ["moreblocks:iron_checker"] = 11,
- ["moreblocks:iron_glass"] = 17,
- ["moreblocks:iron_stone"] = 17,
- ["moreblocks:iron_stone_bricks"] = 17,
- ["moreblocks:plankstone"] = 9.3,
- ["moreblocks:split_stone_tile"] = 15,
- ["moreblocks:split_stone_tile_alt"] = 15,
- ["moreblocks:stone_tile"] = 15,
- ["moreblocks:super_glow_glass"] = 17,
- ["moreblocks:tar"] = 7.0,
- ["moreblocks:wood_tile"] = 1.7,
- ["moreblocks:wood_tile_center"] = 1.7,
- ["moreblocks:wood_tile_down"] = 1.7,
- ["moreblocks:wood_tile_flipped"] = 1.7,
- ["moreblocks:wood_tile_full"] = 1.7,
- ["moreblocks:wood_tile_left"] = 1.7,
- ["moreblocks:wood_tile_right"] = 1.7,
- ["moreblocks:wood_tile_up"] = 1.7,
- ["moreores:mineral_mithril"] = 18,
- ["moreores:mineral_silver"] = 21,
- ["moreores:mineral_tin"] = 19,
- ["moreores:mithril_block"] = 26,
- ["moreores:silver_block"] = 53,
- ["moreores:tin_block"] = 37,
- ["snow:snow_brick"] = 2.8,
- ["technic:brass_block"] = 43,
- ["technic:carbon_steel_block"] = 40,
- ["technic:cast_iron_block"] = 40,
- ["technic:chernobylite_block"] = 40,
- ["technic:chromium_block"] = 37,
- ["technic:corium_flowing"] = 40,
- ["technic:corium_source"] = 80,
- ["technic:granite"] = 18,
- ["technic:lead_block"] = 80,
- ["technic:marble"] = 18,
- ["technic:marble_bricks"] = 18,
- ["technic:mineral_chromium"] = 19,
- ["technic:mineral_uranium"] = 71,
- ["technic:mineral_zinc"] = 19,
- ["technic:stainless_steel_block"] = 40,
- ["technic:zinc_block"] = 36,
- ["tnt:tnt"] = 11,
- ["tnt:tnt_burning"] = 11,
-}
-local default_radiation_resistance_per_group = {
- concrete = 16,
- tree = 3.4,
- uranium_block = 500,
- wood = 1.7,
-}
-local cache_radiation_resistance = {}
-local function node_radiation_resistance(nodename)
- local eff = cache_radiation_resistance[nodename]
- if eff then return eff end
- local def = minetest.registered_nodes[nodename] or {groups={}}
- eff = def.radiation_resistance or default_radiation_resistance_per_node[nodename]
- if not eff then
- for g, v in pairs(def.groups) do
- if v > 0 and default_radiation_resistance_per_group[g] then
- eff = default_radiation_resistance_per_group[g]
- break
- end
- end
- end
- if not eff then eff = 0 end
- cache_radiation_resistance[nodename] = eff
- return eff
-end
-
--- Radioactive nodes cause damage to nearby players. The damage
--- effect depends on the intrinsic strength of the radiation source,
--- the distance between the source and the player, and the shielding
--- effect of the intervening material. These determine a rate of damage;
--- total damage caused is the integral of this over time.
---
--- In the absence of effective shielding, for a specific source the
--- damage rate varies realistically in inverse proportion to the square
--- of the distance. (Distance is measured to the player's abdomen,
--- not to the nominal player position which corresponds to the foot.)
--- However, if the player is inside a non-walkable (liquid or gaseous)
--- radioactive node, the nominal distance could go to zero, yielding
--- infinite damage. In that case, the player's body is displacing the
--- radioactive material, so the effective distance should remain non-zero.
--- We therefore apply a lower distance bound of sqrt(0.75) m, which is
--- the maximum distance one can get from the node centre within the node.
---
--- A radioactive node is identified by being in the "radioactive" group,
--- and the group value signifies the strength of the radiation source.
--- The group value is the distance in millimetres from a node at which
--- an unshielded player will be damaged by 0.25 HP/s. Or, equivalently,
--- it is 2000 times the square root of the damage rate in HP/s that an
--- unshielded player 1 m away will take.
---
--- Shielding is assessed by sampling every 0.25 m along the path
--- from the source to the player, ignoring the source node itself.
--- The summed shielding values from the sampled nodes yield a measure
--- of the total amount of shielding on the path. As in reality,
--- shielding causes exponential attenuation of radiation. However, the
--- effect is scaled down relative to real life. A metre of a node with
--- radiation resistance value R yields attenuation of sqrt(R)*0.1 nepers.
--- (In real life it would be about R*0.69 nepers, by the definition
--- of the radiation resistance values.) The sqrt part of this formula
--- scales down the differences between shielding types, reflecting the
--- game's simplification of making expensive materials such as gold
--- readily available in cubic metres. The multiplicative factor in the
--- formula scales down the difference between shielded and unshielded
--- safe distances, avoiding the latter becoming impractically large.
---
--- Damage is processed at rates down to 0.25 HP/s, which in the absence of
--- shielding is attained at the distance specified by the "radioactive"
--- group value. Computed damage rates below 0.25 HP/s result in no
--- damage at all to the player. This gives the player an opportunity
--- to be safe, and limits the range at which source/player interactions
--- need to be considered.
-local assumed_abdomen_offset = vector.new(0, 1, 0)
-local assumed_abdomen_offset_length = vector.length(assumed_abdomen_offset)
-local cache_scaled_shielding = {}
-
-local damage_enabled = minetest.setting_getbool("enable_damage")
-
-if damage_enabled then
- minetest.register_abm({
- nodenames = {"group:radioactive"},
- interval = 1,
- chance = 1,
- action = function (pos, node)
- local strength = minetest.registered_nodes[node.name].groups.radioactive
- for _, o in ipairs(minetest.get_objects_inside_radius(pos, strength*0.001 + assumed_abdomen_offset_length)) do
- if o:is_player() then
- local rel = vector.subtract(vector.add(o:getpos(), assumed_abdomen_offset), pos)
- local dist_sq = vector.length_square(rel)
- local dist = math.sqrt(dist_sq)
- local dirstep = dist == 0 and vector.new(0,0,0) or vector.divide(rel, dist*4)
- local intpos = pos
- local shielding = 0
- for intdist = 0.25, dist, 0.25 do
- intpos = vector.add(intpos, dirstep)
- local intnodepos = vector.round(intpos)
- if not vector.equals(intnodepos, pos) then
- local sname = minetest.get_node(intnodepos).name
- local sval = cache_scaled_shielding[sname]
- if not sval then
- sval = math.sqrt(node_radiation_resistance(sname)) * -0.025
- cache_scaled_shielding[sname] = sval
- end
- shielding = shielding + sval
- end
- end
- local dmg_rate = 0.25e-6 * strength*strength * math.exp(shielding) / math.max(0.75, dist_sq)
- if dmg_rate >= 0.25 then
- local dmg_int = math.floor(dmg_rate)
- if math.random() < dmg_rate-dmg_int then
- dmg_int = dmg_int + 1
- end
- if dmg_int > 0 then
- o:set_hp(math.max(o:get_hp() - dmg_int, 0))
- end
- end
- end
- end
- end,
- })
-end
-
--- radioactive materials that can result from destroying a reactor
-local corium_griefing = 1
-if (not technic.config:get_bool("enable_corium_griefing")) then
- corium_griefing = 0
-end
-
-for _, state in ipairs({ "flowing", "source" }) do
- minetest.register_node("technic:corium_"..state, {
- description = S(state == "source" and "Corium Source" or "Flowing Corium"),
- drawtype = (state == "source" and "liquid" or "flowingliquid"),
- [state == "source" and "tiles" or "special_tiles"] = {{
- name = "technic_corium_"..state.."_animated.png",
- animation = {
- type = "vertical_frames",
- aspect_w = 16,
- aspect_h = 16,
- length = 3.0,
- },
- }},
- paramtype = "light",
- paramtype2 = (state == "flowing" and "flowingliquid" or nil),
- light_source = (state == "source" and 8 or 5),
- walkable = false,
- pointable = false,
- diggable = false,
- buildable_to = true,
- drop = "",
- drowning = 1,
- liquidtype = state,
- liquid_alternative_flowing = "technic:corium_flowing",
- liquid_alternative_source = "technic:corium_source",
- liquid_viscosity = LAVA_VISC,
- liquid_renewable = false,
- damage_per_second = 6,
- post_effect_color = { a=192, r=80, g=160, b=80 },
- groups = {
- liquid = 2,
- hot = 3,
- igniter = corium_griefing,
- radioactive = (state == "source" and 32000 or 16000),
- not_in_creative_inventory = (state == "flowing" and 1 or nil),
- },
- })
-end
-
-if bucket and bucket.register_liquid then
- bucket.register_liquid(
- "technic:corium_source",
- "technic:corium_flowing",
- "technic:bucket_corium",
- "technic_bucket_corium.png",
- "Corium Bucket"
- )
-end
-
-minetest.register_node("technic:chernobylite_block", {
- description = S("Chernobylite Block"),
- tiles = { "technic_chernobylite_block.png" },
- is_ground_content = true,
- groups = { cracky=1, radioactive=5000, level=2 },
- sounds = default.node_sound_stone_defaults(),
- light_source = 2,
-
-})
-
-minetest.register_abm({
- nodenames = {"group:water"},
- neighbors = {"technic:corium_source"},
- interval = 1,
- chance = 1,
- action = function (pos, node)
- minetest.remove_node(pos)
- end,
-})
-
-if (corium_griefing == 1) then
- minetest.register_abm({
- nodenames = {"technic:corium_flowing"},
- interval = 5,
- chance = 10,
- action = function (pos, node)
- minetest.set_node(pos, {name="technic:chernobylite_block"})
- end,
- })
- minetest.register_abm({
- nodenames = { "technic:corium_source", "technic:corium_flowing" },
- interval = 4,
- chance = 4,
- action = function (pos, node)
- for _, offset in ipairs({
- vector.new(1,0,0),
- vector.new(-1,0,0),
- vector.new(0,0,1),
- vector.new(0,0,-1),
- vector.new(0,-1,0),
- }) do
- if math.random(8) == 1 then
- minetest.dig_node(vector.add(pos, offset))
- end
- end
- end,
- })
-end
diff --git a/technic/technic/machines/HV/quarry.lua b/technic/technic/machines/HV/quarry.lua
deleted file mode 100644
index 60805cc..0000000
--- a/technic/technic/machines/HV/quarry.lua
+++ /dev/null
@@ -1,251 +0,0 @@
-
-local S = technic.getter
-
-minetest.register_craft({
- recipe = {
- {"technic:carbon_plate", "pipeworks:filter", "technic:composite_plate"},
- {"technic:motor", "technic:machine_casing", "technic:diamond_drill_head"},
- {"technic:carbon_steel_block", "technic:hv_cable0", "technic:carbon_steel_block"}},
- output = "technic:quarry",
-})
-
-local quarry_dig_above_nodes = 3 -- How far above the quarry we will dig nodes
-local quarry_max_depth = 100
-local quarry_demand = 10000
-
-local function set_quarry_formspec(meta)
- local radius = meta:get_int("size")
- local formspec = "size[6,4.3]"..
- "list[context;cache;0,1;4,3;]"..
- "item_image[4.8,0;1,1;technic:quarry]"..
- "label[0,0.2;"..S("%s Quarry"):format("HV").."]"..
- "field[4.3,3.5;2,1;size;"..S("Radius:")..";"..radius.."]"
- if meta:get_int("enabled") == 0 then
- formspec = formspec.."button[4,1;2,1;enable;"..S("Disabled").."]"
- else
- formspec = formspec.."button[4,1;2,1;disable;"..S("Enabled").."]"
- end
- local diameter = radius*2 + 1
- local nd = meta:get_int("dug")
- local rel_y = quarry_dig_above_nodes - math.floor(nd / (diameter*diameter))
- formspec = formspec.."label[0,4;"..minetest.formspec_escape(
- nd == 0 and S("Digging not started") or
- (rel_y < -quarry_max_depth and S("Digging finished") or
- (meta:get_int("purge_on") == 1 and S("Purging cache") or
- S("Digging %d m "..(rel_y > 0 and "above" or "below").." machine")
- :format(math.abs(rel_y))))
- ).."]"
- formspec = formspec.."button[4,2;2,1;restart;"..S("Restart").."]"
- meta:set_string("formspec", formspec)
-end
-
-local function set_quarry_demand(meta)
- local radius = meta:get_int("size")
- local diameter = radius*2 + 1
- local machine_name = S("%s Quarry"):format("HV")
- if meta:get_int("enabled") == 0 or meta:get_int("purge_on") == 1 then
- meta:set_string("infotext", S(meta:get_int("purge_on") == 1 and "%s purging cache" or "%s Disabled"):format(machine_name))
- meta:set_int("HV_EU_demand", 0)
- elseif meta:get_int("dug") == diameter*diameter * (quarry_dig_above_nodes+1+quarry_max_depth) then
- meta:set_string("infotext", S("%s Finished"):format(machine_name))
- meta:set_int("HV_EU_demand", 0)
- else
- meta:set_string("infotext", S(meta:get_int("HV_EU_input") >= quarry_demand and "%s Active" or "%s Unpowered"):format(machine_name))
- meta:set_int("HV_EU_demand", quarry_demand)
- end
-end
-
-local function quarry_receive_fields(pos, formname, fields, sender)
- local meta = minetest.get_meta(pos)
- if fields.size and string.find(fields.size, "^[0-9]+$") then
- local size = tonumber(fields.size)
- if size >= 2 and size <= 8 and size ~= meta:get_int("size") then
- meta:set_int("size", size)
- meta:set_int("dug", 0)
- end
- end
- if fields.enable then meta:set_int("enabled", 1) end
- if fields.disable then meta:set_int("enabled", 0) end
- if fields.restart then
- meta:set_int("dug", 0)
- meta:set_int("purge_on", 1)
- end
- set_quarry_formspec(meta)
- set_quarry_demand(meta)
-end
-
-local function quarry_handle_purge(pos)
- local meta = minetest.get_meta(pos)
- local inv = meta:get_inventory()
- local i = 0
- for _,stack in ipairs(inv:get_list("cache")) do
- i = i + 1
- if stack then
- local item = stack:to_table()
- if item then
- technic.tube_inject_item(pos, pos, vector.new(0, 1, 0), item)
- stack:clear()
- inv:set_stack("cache", i, stack)
- break
- end
- end
- end
- if inv:is_empty("cache") then
- meta:set_int("purge_on", 0)
- end
-end
-
-local function quarry_run(pos, node)
- local meta = minetest.get_meta(pos)
- local inv = meta:get_inventory()
- -- initialize cache for the case we load an older world
- inv:set_size("cache", 12)
- -- toss a coin whether we do an automatic purge. Chance 1:200
- local purge_rand = math.random()
- if purge_rand <= 0.005 then
- meta:set_int("purge_on", 1)
- end
-
- if meta:get_int("enabled") and meta:get_int("HV_EU_input") >= quarry_demand and meta:get_int("purge_on") == 0 then
- local pdir = minetest.facedir_to_dir(node.param2)
- local qdir = pdir.x == 1 and vector.new(0,0,-1) or
- (pdir.z == -1 and vector.new(-1,0,0) or
- (pdir.x == -1 and vector.new(0,0,1) or
- vector.new(1,0,0)))
- local radius = meta:get_int("size")
- local diameter = radius*2 + 1
- local startpos = vector.add(vector.add(vector.add(pos,
- vector.new(0, quarry_dig_above_nodes, 0)),
- pdir),
- vector.multiply(qdir, -radius))
- local endpos = vector.add(vector.add(vector.add(startpos,
- vector.new(0, -quarry_dig_above_nodes-quarry_max_depth, 0)),
- vector.multiply(pdir, diameter-1)),
- vector.multiply(qdir, diameter-1))
- local vm = VoxelManip()
- local minpos, maxpos = vm:read_from_map(startpos, endpos)
- local area = VoxelArea:new({MinEdge=minpos, MaxEdge=maxpos})
- local data = vm:get_data()
- local c_air = minetest.get_content_id("air")
- local owner = meta:get_string("owner")
- local nd = meta:get_int("dug")
- while nd ~= diameter*diameter * (quarry_dig_above_nodes+1+quarry_max_depth) do
- local ry = math.floor(nd / (diameter*diameter))
- local ndl = nd % (diameter*diameter)
- if ry % 2 == 1 then
- ndl = diameter*diameter - 1 - ndl
- end
- local rq = math.floor(ndl / diameter)
- local rp = ndl % diameter
- if rq % 2 == 1 then rp = diameter - 1 - rp end
- local digpos = vector.add(vector.add(vector.add(startpos,
- vector.new(0, -ry, 0)),
- vector.multiply(pdir, rp)),
- vector.multiply(qdir, rq))
- local can_dig = true
- if can_dig and minetest.is_protected and minetest.is_protected(digpos, owner) then
- can_dig = false
- end
- local dignode
- if can_dig then
- dignode = technic.get_or_load_node(digpos) or minetest.get_node(digpos)
- local dignodedef = minetest.registered_nodes[dignode.name] or {diggable=false}
- if not dignodedef.diggable or (dignodedef.can_dig and not dignodedef.can_dig(digpos, nil)) then
- can_dig = false
- end
- end
-
- if can_dig then
- for ay = startpos.y, digpos.y+1, -1 do
- local checkpos = {x=digpos.x, y=ay, z=digpos.z}
- local checknode = technic.get_or_load_node(checkpos) or minetest.get_node(checkpos)
- if checknode.name ~= "air" then
- can_dig = false
- break
- end
- end
- end
- nd = nd + 1
- if can_dig then
- minetest.remove_node(digpos)
- local drops = minetest.get_node_drops(dignode.name, "")
- for _, dropped_item in ipairs(drops) do
- local left = inv:add_item("cache", dropped_item)
- while not left:is_empty() do
- meta:set_int("purge_on", 1)
- quarry_handle_purge(pos)
- left = inv:add_item("cache", left)
- end
- end
- break
- end
- end
- if nd == diameter*diameter * (quarry_dig_above_nodes+1+quarry_max_depth) then
- -- if a quarry is finished, we enable purge mode
- meta:set_int("purge_on", 1)
- end
- meta:set_int("dug", nd)
- else
- -- if a quarry is disabled or has no power, we enable purge mode
- meta:set_int("purge_on", 1)
- end
- -- if something triggered a purge, we handle it
- if meta:get_int("purge_on") == 1 then
- quarry_handle_purge(pos)
- end
- set_quarry_formspec(meta)
- set_quarry_demand(meta)
-end
-
-local function send_move_error(player)
- minetest.chat_send_player(player:get_player_name(),
- S("Manually taking/removing from cache by hand is not possible. "..
- "If you can't wait, restart or disable the quarry to start automatic purge."))
- return 0
-end
-
-minetest.register_node("technic:quarry", {
- description = S("%s Quarry"):format("HV"),
- tiles = {"technic_carbon_steel_block.png", "technic_carbon_steel_block.png",
- "technic_carbon_steel_block.png", "technic_carbon_steel_block.png",
- "technic_carbon_steel_block.png^default_tool_mesepick.png", "technic_carbon_steel_block.png"},
- inventory_image = minetest.inventorycube("technic_carbon_steel_block.png",
- "technic_carbon_steel_block.png^default_tool_mesepick.png",
- "technic_carbon_steel_block.png"),
- paramtype2 = "facedir",
- groups = {cracky=2, tubedevice=1, technic_machine = 1},
- tube = {
- connect_sides = {top = 1},
- },
- on_construct = function(pos)
- local meta = minetest.get_meta(pos)
- meta:set_string("infotext", S("%s Quarry"):format("HV"))
- meta:set_int("size", 4)
- set_quarry_formspec(meta)
- set_quarry_demand(meta)
- end,
- after_place_node = function(pos, placer, itemstack)
- local meta = minetest.get_meta(pos)
- meta:set_string("owner", placer:get_player_name())
- pipeworks.scan_for_tube_objects(pos)
- end,
- can_dig = function(pos,player)
- local meta = minetest.get_meta(pos);
- local inv = meta:get_inventory()
- return inv:is_empty("cache")
- end,
- after_dig_node = pipeworks.scan_for_tube_objects,
- on_receive_fields = quarry_receive_fields,
- technic_run = quarry_run,
- allow_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player)
- return send_move_error(player)
- end,
- allow_metadata_inventory_put = function(pos, listname, index, stack, player)
- return send_move_error(player)
- end,
- allow_metadata_inventory_take = function(pos, listname, index, stack, player)
- return send_move_error(player)
- end
-})
-
-technic.register_machine("HV", "technic:quarry", technic.receiver)
diff --git a/technic/technic/machines/HV/solar_array.lua b/technic/technic/machines/HV/solar_array.lua
deleted file mode 100644
index 414291a..0000000
--- a/technic/technic/machines/HV/solar_array.lua
+++ /dev/null
@@ -1,14 +0,0 @@
--- The high voltage solar array is an assembly of medium voltage arrays.
--- Solar arrays are not able to store large amounts of energy.
-
-minetest.register_craft({
- output = 'technic:solar_array_hv 1',
- recipe = {
- {'technic:solar_array_mv', 'technic:solar_array_mv', 'technic:solar_array_mv'},
- {'technic:carbon_plate', 'technic:hv_transformer', 'technic:composite_plate'},
- {'', 'technic:hv_cable0', ''},
- }
-})
-
-technic.register_solar_array({tier="HV", power=100})
-
diff --git a/technic/technic/machines/LV/alloy_furnace.lua b/technic/technic/machines/LV/alloy_furnace.lua
deleted file mode 100644
index bdf2f31..0000000
--- a/technic/technic/machines/LV/alloy_furnace.lua
+++ /dev/null
@@ -1,14 +0,0 @@
--- LV Alloy furnace
-
--- FIXME: kpoppel: I'd like to introduce an induction heating element here...
-minetest.register_craft({
- output = 'technic:lv_alloy_furnace',
- recipe = {
- {'default:brick', 'default:brick', 'default:brick'},
- {'default:brick', 'technic:machine_casing', 'default:brick'},
- {'default:brick', 'technic:lv_cable0', 'default:brick'},
- }
-})
-
-technic.register_alloy_furnace({tier = "LV", speed = 1, demand = {300}})
-
diff --git a/technic/technic/machines/LV/battery_box.lua b/technic/technic/machines/LV/battery_box.lua
deleted file mode 100644
index 429bcd6..0000000
--- a/technic/technic/machines/LV/battery_box.lua
+++ /dev/null
@@ -1,19 +0,0 @@
-
-minetest.register_craft({
- output = 'technic:lv_battery_box0',
- recipe = {
- {'group:wood', 'group:wood', 'group:wood'},
- {'technic:battery', 'technic:machine_casing', 'technic:battery'},
- {'technic:battery', 'technic:lv_cable0', 'technic:battery'},
- }
-})
-
-technic.register_battery_box({
- tier = "LV",
- max_charge = 40000,
- charge_rate = 1000,
- discharge_rate = 4000,
- charge_step = 500,
- discharge_step = 800,
-})
-
diff --git a/technic/technic/machines/LV/cables.lua b/technic/technic/machines/LV/cables.lua
deleted file mode 100644
index e18eae1..0000000
--- a/technic/technic/machines/LV/cables.lua
+++ /dev/null
@@ -1,14 +0,0 @@
-
-minetest.register_alias("lv_cable", "technic:lv_cable0")
-
-minetest.register_craft({
- output = 'technic:lv_cable0 6',
- recipe = {
- {'default:paper', 'default:paper', 'default:paper'},
- {'default:copper_ingot', 'default:copper_ingot', 'default:copper_ingot'},
- {'default:paper', 'default:paper', 'default:paper'},
- }
-})
-
-technic.register_cable("LV", 2/16)
-
diff --git a/technic/technic/machines/LV/cnc.lua b/technic/technic/machines/LV/cnc.lua
deleted file mode 100644
index dd67e9b..0000000
--- a/technic/technic/machines/LV/cnc.lua
+++ /dev/null
@@ -1,237 +0,0 @@
--- Technic CNC v1.0 by kpoppel
--- Based on the NonCubic Blocks MOD v1.4 by yves_de_beck
-
--- Idea:
--- Somehow have a tabbed/paged panel if the number of shapes should expand
--- beyond what is available in the panel today.
--- I could imagine some form of API allowing modders to come with their own node
--- box definitions and easily stuff it in the this machine for production.
-
-local S = technic.getter
-
-local shape = {}
-local onesize_products = {
- slope = 2,
- slope_edge = 1,
- slope_inner_edge = 1,
- pyramid = 2,
- spike = 1,
- cylinder = 2,
- oblate_spheroid = 1,
- sphere = 1,
- stick = 8,
- slope_upsdown = 2,
- slope_edge_upsdown = 1,
- slope_inner_edge_upsdown = 1,
- cylinder_horizontal = 2,
- slope_lying = 2,
- onecurvededge = 1,
- twocurvededge = 1,
-}
-local twosize_products = {
- element_straight = 4,
- element_end = 2,
- element_cross = 1,
- element_t = 1,
- element_edge = 2,
-}
-
-local cnc_formspec =
- "invsize[9,11;]"..
- "label[1,0;"..S("Choose Milling Program:").."]"..
- "image_button[1,0.5;1,1;technic_cnc_slope.png;slope; ]"..
- "image_button[2,0.5;1,1;technic_cnc_slope_edge.png;slope_edge; ]"..
- "image_button[3,0.5;1,1;technic_cnc_slope_inner_edge.png;slope_inner_edge; ]"..
- "image_button[4,0.5;1,1;technic_cnc_pyramid.png;pyramid; ]"..
- "image_button[5,0.5;1,1;technic_cnc_spike.png;spike; ]"..
- "image_button[6,0.5;1,1;technic_cnc_cylinder.png;cylinder; ]"..
- "image_button[7,0.5;1,1;technic_cnc_oblate_spheroid.png;oblate_spheroid; ]"..
- "image_button[8,0.5;1,1;technic_cnc_stick.png;stick; ]"..
-
- "image_button[1,1.5;1,1;technic_cnc_slope_upsdwn.png;slope_upsdown; ]"..
- "image_button[2,1.5;1,1;technic_cnc_slope_edge_upsdwn.png;slope_edge_upsdown; ]"..
- "image_button[3,1.5;1,1;technic_cnc_slope_inner_edge_upsdwn.png;slope_inner_edge_upsdown; ]"..
- "image_button[4,1.5;1,1;technic_cnc_cylinder_horizontal.png;cylinder_horizontal; ]"..
- "image_button[5,1.5;1,1;technic_cnc_sphere.png;sphere; ]"..
-
- "image_button[1,2.5;1,1;technic_cnc_slope_lying.png;slope_lying; ]"..
- "image_button[2,2.5;1,1;technic_cnc_onecurvededge.png;onecurvededge; ]"..
- "image_button[3,2.5;1,1;technic_cnc_twocurvededge.png;twocurvededge; ]"..
-
- "label[1,3.5;"..S("Slim Elements half / normal height:").."]"..
-
- "image_button[1,4;1,0.5;technic_cnc_full.png;full; ]"..
- "image_button[1,4.5;1,0.5;technic_cnc_half.png;half; ]"..
- "image_button[2,4;1,1;technic_cnc_element_straight.png;element_straight; ]"..
- "image_button[3,4;1,1;technic_cnc_element_end.png;element_end; ]"..
- "image_button[4,4;1,1;technic_cnc_element_cross.png;element_cross; ]"..
- "image_button[5,4;1,1;technic_cnc_element_t.png;element_t; ]"..
- "image_button[6,4;1,1;technic_cnc_element_edge.png;element_edge; ]"..
-
- "label[0, 5.5;"..S("In:").."]"..
- "list[current_name;src;0.5,5.5;1,1;]"..
- "label[4, 5.5;"..S("Out:").."]"..
- "list[current_name;dst;5,5.5;4,1;]"..
-
- "list[current_player;main;0,7;8,4;]"..
- "listring[current_name;dst]"..
- "listring[current_player;main]"..
- "listring[current_name;src]"..
- "listring[current_player;main]"
-
-local size = 1;
-
--- The form handler is declared here because we need it in both the inactive and active modes
--- in order to be able to change programs wile it is running.
-local function form_handler(pos, formname, fields, sender)
- -- REGISTER MILLING PROGRAMS AND OUTPUTS:
- ------------------------------------------
- -- Program for half/full size
- if fields["full"] then
- size = 1
- return
- end
-
- if fields["half"] then
- size = 2
- return
- end
-
- -- Resolve the node name and the number of items to make
- local meta = minetest.get_meta(pos)
- local inv = meta:get_inventory()
- local inputstack = inv:get_stack("src", 1)
- local inputname = inputstack:get_name()
- local multiplier = 0
- for k, _ in pairs(fields) do
- -- Set a multipier for the half/full size capable blocks
- if twosize_products[k] ~= nil then
- multiplier = size * twosize_products[k]
- else
- multiplier = onesize_products[k]
- end
-
- if onesize_products[k] ~= nil or twosize_products[k] ~= nil then
- meta:set_float( "cnc_multiplier", multiplier)
- meta:set_string("cnc_user", sender:get_player_name())
- end
-
- if onesize_products[k] ~= nil or (twosize_products[k] ~= nil and size==2) then
- meta:set_string("cnc_product", inputname .. "_technic_cnc_" .. k)
- --print(inputname .. "_technic_cnc_" .. k)
- break
- end
-
- if twosize_products[k] ~= nil and size==1 then
- meta:set_string("cnc_product", inputname .. "_technic_cnc_" .. k .. "_double")
- --print(inputname .. "_technic_cnc_" .. k .. "_double")
- break
- end
- end
- return
-end
-
--- Action code performing the transformation
-local run = function(pos, node)
- local meta = minetest.get_meta(pos)
- local inv = meta:get_inventory()
- local eu_input = meta:get_int("LV_EU_input")
- local machine_name = S("%s CNC Machine"):format("LV")
- local machine_node = "technic:cnc"
- local demand = 450
-
- local result = meta:get_string("cnc_product")
- if inv:is_empty("src") or
- (not minetest.registered_nodes[result]) or
- (not inv:room_for_item("dst", result)) then
- technic.swap_node(pos, machine_node)
- meta:set_string("infotext", S("%s Idle"):format(machine_name))
- meta:set_string("cnc_product", "")
- meta:set_int("LV_EU_demand", 0)
- return
- end
-
- if eu_input < demand then
- technic.swap_node(pos, machine_node)
- meta:set_string("infotext", S("%s Unpowered"):format(machine_name))
- elseif eu_input >= demand then
- technic.swap_node(pos, machine_node.."_active")
- meta:set_string("infotext", S("%s Active"):format(machine_name))
- meta:set_int("src_time", meta:get_int("src_time") + 1)
- if meta:get_int("src_time") >= 3 then -- 3 ticks per output
- meta:set_int("src_time", 0)
- srcstack = inv:get_stack("src", 1)
- srcstack:take_item()
- inv:set_stack("src", 1, srcstack)
- inv:add_item("dst", result.." "..meta:get_int("cnc_multiplier"))
- end
- end
- meta:set_int("LV_EU_demand", demand)
-end
-
--- The actual block inactive state
-minetest.register_node("technic:cnc", {
- description = S("%s CNC Machine"):format("LV"),
- tiles = {"technic_cnc_top.png", "technic_cnc_bottom.png", "technic_cnc_side.png",
- "technic_cnc_side.png", "technic_cnc_side.png", "technic_cnc_front.png"},
- drawtype = "nodebox",
- paramtype = "light",
- paramtype2 = "facedir",
- node_box = {
- type = "fixed",
- fixed = {
- {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5},
- },
- },
- groups = {cracky=2, technic_machine=1},
- legacy_facedir_simple = true,
- on_construct = function(pos)
- local meta = minetest.get_meta(pos)
- meta:set_string("infotext", S("%s CNC Machine"):format("LV"))
- meta:set_float("technic_power_machine", 1)
- meta:set_string("formspec", cnc_formspec)
- local inv = meta:get_inventory()
- inv:set_size("src", 1)
- inv:set_size("dst", 4)
- end,
- can_dig = technic.machine_can_dig,
- allow_metadata_inventory_put = technic.machine_inventory_put,
- allow_metadata_inventory_take = technic.machine_inventory_take,
- allow_metadata_inventory_move = technic.machine_inventory_move,
- on_receive_fields = form_handler,
- technic_run = run,
-})
-
--- Active state block
-minetest.register_node("technic:cnc_active", {
- description = S("%s CNC Machine"):format("LV"),
- tiles = {"technic_cnc_top_active.png", "technic_cnc_bottom.png", "technic_cnc_side.png",
- "technic_cnc_side.png", "technic_cnc_side.png", "technic_cnc_front_active.png"},
- paramtype2 = "facedir",
- drop = "technic:cnc",
- groups = {cracky=2, technic_machine=1, not_in_creative_inventory=1},
- legacy_facedir_simple = true,
- can_dig = technic.machine_can_dig,
- allow_metadata_inventory_put = technic.machine_inventory_put,
- allow_metadata_inventory_take = technic.machine_inventory_take,
- allow_metadata_inventory_move = technic.machine_inventory_move,
- on_receive_fields = form_handler,
- technic_run = run,
- technic_disabled_machine_name = "technic:cnc",
-})
-
-technic.register_machine("LV", "technic:cnc", technic.receiver)
-technic.register_machine("LV", "technic:cnc_active", technic.receiver)
-
--------------------------
--- CNC Machine Recipe
--------------------------
-minetest.register_craft({
- output = 'technic:cnc',
- recipe = {
- {'default:glass', 'technic:diamond_drill_head', 'default:glass'},
- {'technic:control_logic_unit', 'technic:machine_casing', 'technic:motor'},
- {'technic:carbon_steel_ingot', 'technic:lv_cable0', 'technic:carbon_steel_ingot'},
- },
-})
-
diff --git a/technic/technic/machines/LV/cnc_api.lua b/technic/technic/machines/LV/cnc_api.lua
deleted file mode 100644
index f5aae5c..0000000
--- a/technic/technic/machines/LV/cnc_api.lua
+++ /dev/null
@@ -1,369 +0,0 @@
--- API for the technic CNC machine
--- Again code is adapted from the NonCubic Blocks MOD v1.4 by yves_de_beck
-
-local S = technic.getter
-
-technic.cnc = {}
-
--- REGISTER NONCUBIC FORMS, CREATE MODELS AND RECIPES:
-------------------------------------------------------
-
--- Define slope boxes for the various nodes
--------------------------------------------
-technic.cnc.programs = {
- { suffix = "technic_cnc_stick",
- model = {-0.15, -0.5, -0.15, 0.15, 0.5, 0.15},
- desc = S("Stick")
- },
-
- { suffix = "technic_cnc_element_end_double",
- model = {-0.3, -0.5, -0.3, 0.3, 0.5, 0.5},
- desc = S("Element End Double")
- },
-
- { suffix = "technic_cnc_element_cross_double",
- model = {
- {0.3, -0.5, -0.3, 0.5, 0.5, 0.3},
- {-0.3, -0.5, -0.5, 0.3, 0.5, 0.5},
- {-0.5, -0.5, -0.3, -0.3, 0.5, 0.3}},
- desc = S("Element Cross Double")
- },
-
- { suffix = "technic_cnc_element_t_double",
- model = {
- {-0.3, -0.5, -0.5, 0.3, 0.5, 0.3},
- {-0.5, -0.5, -0.3, -0.3, 0.5, 0.3},
- {0.3, -0.5, -0.3, 0.5, 0.5, 0.3}},
- desc = S("Element T Double")
- },
-
- { suffix = "technic_cnc_element_edge_double",
- model = {
- {-0.3, -0.5, -0.5, 0.3, 0.5, 0.3},
- {-0.5, -0.5, -0.3, -0.3, 0.5, 0.3}},
- desc = S("Element Edge Double")
- },
-
- { suffix = "technic_cnc_element_straight_double",
- model = {-0.3, -0.5, -0.5, 0.3, 0.5, 0.5},
- desc = S("Element Straight Double")
- },
-
- { suffix = "technic_cnc_element_end",
- model = {-0.3, -0.5, -0.3, 0.3, 0, 0.5},
- desc = S("Element End")
- },
-
- { suffix = "technic_cnc_element_cross",
- model = {
- {0.3, -0.5, -0.3, 0.5, 0, 0.3},
- {-0.3, -0.5, -0.5, 0.3, 0, 0.5},
- {-0.5, -0.5, -0.3, -0.3, 0, 0.3}},
- desc = S("Element Cross")
- },
-
- { suffix = "technic_cnc_element_t",
- model = {
- {-0.3, -0.5, -0.5, 0.3, 0, 0.3},
- {-0.5, -0.5, -0.3, -0.3, 0, 0.3},
- {0.3, -0.5, -0.3, 0.5, 0, 0.3}},
- desc = S("Element T")
- },
-
- { suffix = "technic_cnc_element_edge",
- model = {
- {-0.3, -0.5, -0.5, 0.3, 0, 0.3},
- {-0.5, -0.5, -0.3, -0.3, 0, 0.3}},
- desc = S("Element Edge")
- },
-
- { suffix = "technic_cnc_element_straight",
- model = {-0.3, -0.5, -0.5, 0.3, 0, 0.5},
- desc = S("Element Straight")
- },
-
- { suffix = "technic_cnc_oblate_spheroid",
- model = "technic_oblate_spheroid.obj",
- desc = S("Oblate spheroid"),
- cbox = {
- type = "fixed",
- fixed = {
- { -6/16, 4/16, -6/16, 6/16, 8/16, 6/16 },
- { -8/16, -4/16, -8/16, 8/16, 4/16, 8/16 },
- { -6/16, -8/16, -6/16, 6/16, -4/16, 6/16 }
- }
- }
- },
-
- { suffix = "technic_cnc_sphere",
- model = "technic_sphere.obj",
- desc = S("Sphere")
- },
-
- { suffix = "technic_cnc_cylinder_horizontal",
- model = "technic_cylinder_horizontal.obj",
- desc = S("Horizontal Cylinder")
- },
-
- { suffix = "technic_cnc_cylinder",
- model = "technic_cylinder.obj",
- desc = S("Cylinder")
- },
-
- { suffix = "technic_cnc_twocurvededge",
- model = "technic_two_curved_edge.obj",
- desc = S("Two Curved Edge/Corner Block")
- },
-
- { suffix = "technic_cnc_onecurvededge",
- model = "technic_one_curved_edge.obj",
- desc = S("One Curved Edge Block")
- },
-
- { suffix = "technic_cnc_spike",
- model = "technic_pyramid_spike.obj",
- desc = S("Spike"),
- cbox = {
- type = "fixed",
- fixed = {
- { -2/16, 4/16, -2/16, 2/16, 8/16, 2/16 },
- { -4/16, 0, -4/16, 4/16, 4/16, 4/16 },
- { -6/16, -4/16, -6/16, 6/16, 0, 6/16 },
- { -8/16, -8/16, -8/16, 8/16, -4/16, 8/16 }
- }
- }
- },
-
- { suffix = "technic_cnc_pyramid",
- model = "technic_pyramid.obj",
- desc = S("Pyramid"),
- cbox = {
- type = "fixed",
- fixed = {
- { -2/16, -2/16, -2/16, 2/16, 0, 2/16 },
- { -4/16, -4/16, -4/16, 4/16, -2/16, 4/16 },
- { -6/16, -6/16, -6/16, 6/16, -4/16, 6/16 },
- { -8/16, -8/16, -8/16, 8/16, -6/16, 8/16 }
- }
- }
- },
-
- { suffix = "technic_cnc_slope_inner_edge_upsdown",
- model = "technic_innercorner_upsdown.obj",
- desc = S("Slope Upside Down Inner Edge/Corner"),
- sbox = {
- type = "fixed",
- fixed = { -0.5, -0.5, -0.5, 0.5, 0.5, 0.5 }
- },
- cbox = {
- type = "fixed",
- fixed = {
- { 0.25, -0.25, -0.5, 0.5, -0.5, 0.5 },
- { -0.5, -0.25, 0.25, 0.5, -0.5, 0.5 },
- { 0, 0, -0.5, 0.5, -0.25, 0.5 },
- { -0.5, 0, 0, 0.5, -0.25, 0.5 },
- { -0.25, 0.25, -0.5, 0.5, 0, -0.25 },
- { -0.5, 0.25, -0.25, 0.5, 0, 0.5 },
- { -0.5, 0.5, -0.5, 0.5, 0.25, 0.5 }
- }
- }
- },
-
- { suffix = "technic_cnc_slope_edge_upsdown",
- model = "technic_outercorner_upsdown.obj",
- desc = S("Slope Upside Down Outer Edge/Corner"),
- cbox = {
- type = "fixed",
- fixed = {
- { -8/16, 8/16, -8/16, 8/16, 4/16, 8/16 },
- { -4/16, 4/16, -4/16, 8/16, 0, 8/16 },
- { 0, 0, 0, 8/16, -4/16, 8/16 },
- { 4/16, -4/16, 4/16, 8/16, -8/16, 8/16 }
- }
- }
- },
-
- { suffix = "technic_cnc_slope_inner_edge",
- model = "technic_innercorner.obj",
- desc = S("Slope Inner Edge/Corner"),
- sbox = {
- type = "fixed",
- fixed = { -0.5, -0.5, -0.5, 0.5, 0.5, 0.5 }
- },
- cbox = {
- type = "fixed",
- fixed = {
- { -0.5, -0.5, -0.5, 0.5, -0.25, 0.5 },
- { -0.5, -0.25, -0.25, 0.5, 0, 0.5 },
- { -0.25, -0.25, -0.5, 0.5, 0, -0.25 },
- { -0.5, 0, 0, 0.5, 0.25, 0.5 },
- { 0, 0, -0.5, 0.5, 0.25, 0.5 },
- { -0.5, 0.25, 0.25, 0.5, 0.5, 0.5 },
- { 0.25, 0.25, -0.5, 0.5, 0.5, 0.5 }
- }
- }
- },
-
- { suffix = "technic_cnc_slope_edge",
- model = "technic_outercorner.obj",
- desc = S("Slope Outer Edge/Corner"),
- cbox = {
- type = "fixed",
- fixed = {
- { 4/16, 4/16, 4/16, 8/16, 8/16, 8/16 },
- { 0, 0, 0, 8/16, 4/16, 8/16 },
- { -4/16, -4/16, -4/16, 8/16, 0, 8/16 },
- { -8/16, -8/16, -8/16, 8/16, -4/16, 8/16 }
- }
- }
- },
-
- { suffix = "technic_cnc_slope_upsdown",
- model = "technic_slope_upsdown.obj",
- desc = S("Slope Upside Down"),
- cbox = {
- type = "fixed",
- fixed = {
- { -8/16, 8/16, -8/16, 8/16, 4/16, 8/16 },
- { -8/16, 4/16, -4/16, 8/16, 0, 8/16 },
- { -8/16, 0, 0, 8/16, -4/16, 8/16 },
- { -8/16, -4/16, 4/16, 8/16, -8/16, 8/16 }
- }
- }
- },
-
- { suffix = "technic_cnc_slope_lying",
- model = "technic_slope_horizontal.obj",
- desc = S("Slope Lying"),
- cbox = {
- type = "fixed",
- fixed = {
- { 4/16, -8/16, 4/16, 8/16, 8/16, 8/16 },
- { 0, -8/16, 0, 4/16, 8/16, 8/16 },
- { -4/16, -8/16, -4/16, 0, 8/16, 8/16 },
- { -8/16, -8/16, -8/16, -4/16, 8/16, 8/16 }
- }
- }
- },
-
- { suffix = "technic_cnc_slope",
- model = "technic_slope.obj",
- desc = S("Slope"),
- cbox = {
- type = "fixed",
- fixed = {
- { -8/16, 4/16, 4/16, 8/16, 8/16, 8/16 },
- { -8/16, 0, 0, 8/16, 4/16, 8/16 },
- { -8/16, -4/16, -4/16, 8/16, 0, 8/16 },
- { -8/16, -8/16, -8/16, 8/16, -4/16, 8/16 }
- }
- }
- },
-
-}
-
--- Allow disabling certain programs for some node. Default is allowing all types for all nodes
-technic.cnc.programs_disable = {
- -- ["default:brick"] = {"technic_cnc_stick"}, -- Example: Disallow the stick for brick
- -- ...
- ["default:dirt"] = {"technic_cnc_oblate_spheroid", "technic_cnc_slope_upsdown", "technic_cnc_edge",
- "technic_cnc_inner_edge", "technic_cnc_slope_edge_upsdown",
- "technic_cnc_slope_inner_edge_upsdown", "technic_cnc_stick",
- "technic_cnc_cylinder_horizontal"}
-}
-
--- Generic function for registering all the different node types
-function technic.cnc.register_program(recipeitem, suffix, model, groups, images, description, cbox, sbox)
-
- local dtype
- local nodeboxdef
- local meshdef
-
- if type(model) ~= "string" then -- assume a nodebox if it's a table or function call
- dtype = "nodebox"
- nodeboxdef = {
- type = "fixed",
- fixed = model
- }
- else
- dtype = "mesh"
- meshdef = model
- end
-
- if cbox and not sbox then sbox = cbox end
-
- minetest.register_node(":"..recipeitem.."_"..suffix, {
- description = description,
- drawtype = dtype,
- node_box = nodeboxdef,
- mesh = meshdef,
- tiles = images,
- paramtype = "light",
- paramtype2 = "facedir",
- walkable = true,
- groups = groups,
- selection_box = sbox,
- collision_box = cbox
- })
-end
-
--- function to iterate over all the programs the CNC machine knows
-function technic.cnc.register_all(recipeitem, groups, images, description)
- for _, data in ipairs(technic.cnc.programs) do
- -- Disable node creation for disabled node types for some material
- local do_register = true
- if technic.cnc.programs_disable[recipeitem] ~= nil then
- for __, disable in ipairs(technic.cnc.programs_disable[recipeitem]) do
- if disable == data.suffix then
- do_register = false
- end
- end
- end
- -- Create the node if it passes the test
- if do_register then
- technic.cnc.register_program(recipeitem, data.suffix, data.model,
- groups, images, description.." "..data.desc, data.cbox, data.sbox)
- end
- end
-end
-
-
--- REGISTER NEW TECHNIC_CNC_API's PART 2: technic.cnc..register_element_end(subname, recipeitem, groups, images, desc_element_xyz)
------------------------------------------------------------------------------------------------------------------------
-function technic.cnc.register_slope_edge_etc(recipeitem, groups, images, desc_slope, desc_slope_lying, desc_slope_upsdown, desc_slope_edge, desc_slope_inner_edge, desc_slope_upsdwn_edge, desc_slope_upsdwn_inner_edge, desc_pyramid, desc_spike, desc_onecurvededge, desc_twocurvededge, desc_cylinder, desc_cylinder_horizontal, desc_spheroid, desc_element_straight, desc_element_edge, desc_element_t, desc_element_cross, desc_element_end)
-
- technic.cnc.register_slope(recipeitem, groups, images, desc_slope)
- technic.cnc.register_slope_lying(recipeitem, groups, images, desc_slope_lying)
- technic.cnc.register_slope_upsdown(recipeitem, groups, images, desc_slope_upsdown)
- technic.cnc.register_slope_edge(recipeitem, groups, images, desc_slope_edge)
- technic.cnc.register_slope_inner_edge(recipeitem, groups, images, desc_slope_inner_edge)
- technic.cnc.register_slope_edge_upsdown(recipeitem, groups, images, desc_slope_upsdwn_edge)
- technic.cnc.register_slope_inner_edge_upsdown(recipeitem, groups, images, desc_slope_upsdwn_inner_edge)
- technic.cnc.register_pyramid(recipeitem, groups, images, desc_pyramid)
- technic.cnc.register_spike(recipeitem, groups, images, desc_spike)
- technic.cnc.register_onecurvededge(recipeitem, groups, images, desc_onecurvededge)
- technic.cnc.register_twocurvededge(recipeitem, groups, images, desc_twocurvededge)
- technic.cnc.register_cylinder(recipeitem, groups, images, desc_cylinder)
- technic.cnc.register_cylinder_horizontal(recipeitem, groups, images, desc_cylinder_horizontal)
- technic.cnc.register_spheroid(recipeitem, groups, images, desc_spheroid)
- technic.cnc.register_element_straight(recipeitem, groups, images, desc_element_straight)
- technic.cnc.register_element_edge(recipeitem, groups, images, desc_element_edge)
- technic.cnc.register_element_t(recipeitem, groups, images, desc_element_t)
- technic.cnc.register_element_cross(recipeitem, groups, images, desc_element_cross)
- technic.cnc.register_element_end(recipeitem, groups, images, desc_element_end)
-end
-
--- REGISTER STICKS: noncubic.register_xyz(recipeitem, groups, images, desc_element_xyz)
-------------------------------------------------------------------------------------------------------------
-function technic.cnc.register_stick_etc(recipeitem, groups, images, desc_stick)
- technic.cnc.register_stick(recipeitem, groups, images, desc_stick)
-end
-
-function technic.cnc.register_elements(recipeitem, groups, images, desc_element_straight_double, desc_element_edge_double, desc_element_t_double, desc_element_cross_double, desc_element_end_double)
- technic.cnc.register_element_straight_double(recipeitem, groups, images, desc_element_straight_double)
- technic.cnc.register_element_edge_double(recipeitem, groups, images, desc_element_edge_double)
- technic.cnc.register_element_t_double(recipeitem, groups, images, desc_element_t_double)
- technic.cnc.register_element_cross_double(recipeitem, groups, images, desc_element_cross_double)
- technic.cnc.register_element_end_double(recipeitem, groups, images, desc_element_end_double)
-end
-
diff --git a/technic/technic/machines/LV/cnc_nodes.lua b/technic/technic/machines/LV/cnc_nodes.lua
deleted file mode 100644
index 05be9af..0000000
--- a/technic/technic/machines/LV/cnc_nodes.lua
+++ /dev/null
@@ -1,91 +0,0 @@
--- REGISTER MATERIALS AND PROPERTIES FOR NONCUBIC ELEMENTS:
------------------------------------------------------------
-
-local S = technic.getter
-
--- DIRT
--------
-technic.cnc.register_all("default:dirt",
- {snappy=2,choppy=2,oddly_breakable_by_hand=3,not_in_creative_inventory=1},
- {"default_grass.png", "default_dirt.png", "default_grass.png"},
- S("Dirt"))
--- WOOD
--------
-technic.cnc.register_all("default:wood",
- {snappy=2, choppy=2, oddly_breakable_by_hand=2, not_in_creative_inventory=1},
- {"default_wood.png"},
- S("Wooden"))
--- STONE
---------
-technic.cnc.register_all("default:stone",
- {cracky=3, not_in_creative_inventory=1},
- {"default_stone.png"},
- S("Stone"))
--- COBBLE
----------
-technic.cnc.register_all("default:cobble",
- {cracky=3, not_in_creative_inventory=1},
- {"default_cobble.png"},
- S("Cobble"))
--- BRICK
---------
-technic.cnc.register_all("default:brick",
- {cracky=3, not_in_creative_inventory=1},
- {"default_brick.png"},
- S("Brick"))
-
--- SANDSTONE
-------------
-technic.cnc.register_all("default:sandstone",
- {crumbly=2, cracky=3, not_in_creative_inventory=1},
- {"default_sandstone.png"},
- S("Sandstone"))
-
--- LEAVES
----------
-technic.cnc.register_all("default:leaves",
- {snappy=2, choppy=2, oddly_breakable_by_hand=3, not_in_creative_inventory=1},
- {"default_leaves.png"},
- S("Leaves"))
--- TREE
--------
-technic.cnc.register_all("default:tree",
- {snappy=1, choppy=2, oddly_breakable_by_hand=2, flammable=3, wood=1, not_in_creative_inventory=1},
- {"default_tree.png"},
- S("Tree"))
-
--- WROUGHT IRON
----------------
-technic.cnc.register_all("default:steelblock",
- {cracky=1, level=2, not_in_creative_inventory=1},
- {"technic_wrought_iron_block.png"},
- S("Wrought Iron"))
-
--- Bronze
---------
-technic.cnc.register_all("default:bronzeblock",
- {cracky=1, level=2, not_in_creative_inventory=1},
- {"default_bronze_block.png"},
- S("Bronze"))
-
--- Stainless Steel
---------
-technic.cnc.register_all("technic:stainless_steel_block",
- {cracky=1, level=2, not_in_creative_inventory=1},
- {"technic_stainless_steel_block.png"},
- S("Stainless Steel"))
-
--- Marble
-------------
-technic.cnc.register_all("technic:marble",
- {cracky=3, not_in_creative_inventory=1},
- {"technic_marble.png"},
- S("Marble"))
-
--- Granite
-------------
-technic.cnc.register_all("technic:granite",
- {cracky=1, not_in_creative_inventory=1},
- {"technic_granite.png"},
- S("Granite"))
-
diff --git a/technic/technic/machines/LV/compressor.lua b/technic/technic/machines/LV/compressor.lua
deleted file mode 100644
index e2bde40..0000000
--- a/technic/technic/machines/LV/compressor.lua
+++ /dev/null
@@ -1,13 +0,0 @@
-
-minetest.register_alias("compressor", "technic:lv_compressor")
-
-minetest.register_craft({
- output = 'technic:lv_compressor',
- recipe = {
- {'default:stone', 'technic:motor', 'default:stone'},
- {'mesecons:piston', 'technic:machine_casing', 'mesecons:piston'},
- {'technic:fine_silver_wire', 'technic:lv_cable0', 'technic:fine_silver_wire'},
- }
-})
-
-technic.register_compressor({tier = "LV", demand = {300}, speed = 1})
diff --git a/technic/technic/machines/LV/electric_furnace.lua b/technic/technic/machines/LV/electric_furnace.lua
deleted file mode 100644
index cc4daff..0000000
--- a/technic/technic/machines/LV/electric_furnace.lua
+++ /dev/null
@@ -1,16 +0,0 @@
--- LV Electric Furnace
--- This is a faster version of the stone furnace which runs on EUs
-
--- FIXME: kpoppel I'd like to introduce an induction heating element here also
-minetest.register_craft({
- output = 'technic:electric_furnace',
- recipe = {
- {'default:cobble', 'default:cobble', 'default:cobble'},
- {'default:cobble', 'technic:machine_casing', 'default:cobble'},
- {'default:cobble', 'technic:lv_cable0', 'default:cobble'},
- }
-})
-
-technic.register_electric_furnace({tier="LV", demand={300}, speed = 2})
-
-
diff --git a/technic/technic/machines/LV/extractor.lua b/technic/technic/machines/LV/extractor.lua
deleted file mode 100644
index 363d2e3..0000000
--- a/technic/technic/machines/LV/extractor.lua
+++ /dev/null
@@ -1,13 +0,0 @@
-
-minetest.register_alias("extractor", "technic:lv_extractor")
-
-minetest.register_craft({
- output = 'technic:lv_extractor',
- recipe = {
- {'technic:treetap', 'technic:motor', 'technic:treetap'},
- {'technic:treetap', 'technic:machine_casing', 'technic:treetap'},
- {'', 'technic:lv_cable0', ''},
- }
-})
-
-technic.register_extractor({tier = "LV", demand = {300}, speed = 1})
diff --git a/technic/technic/machines/LV/generator.lua b/technic/technic/machines/LV/generator.lua
deleted file mode 100644
index 999dbc5..0000000
--- a/technic/technic/machines/LV/generator.lua
+++ /dev/null
@@ -1,18 +0,0 @@
--- The electric generator.
--- A simple device to get started on the electric machines.
--- Inefficient and expensive in fuel (200EU per tick)
--- Also only allows for LV machinery to run.
-
-minetest.register_alias("lv_generator", "technic:lv_generator")
-
-minetest.register_craft({
- output = 'technic:lv_generator',
- recipe = {
- {'default:stone', 'default:furnace', 'default:stone'},
- {'default:stone', 'technic:machine_casing', 'default:stone'},
- {'default:stone', 'technic:lv_cable0', 'default:stone'},
- }
-})
-
-technic.register_generator({tier="LV", supply=200})
-
diff --git a/technic/technic/machines/LV/geothermal.lua b/technic/technic/machines/LV/geothermal.lua
deleted file mode 100644
index e88d3c9..0000000
--- a/technic/technic/machines/LV/geothermal.lua
+++ /dev/null
@@ -1,111 +0,0 @@
--- A geothermal EU generator
--- Using hot lava and water this device can create energy from steam
--- The machine is only producing LV EUs and can thus not drive more advanced equipment
--- The output is a little more than the coal burning generator (max 300EUs)
-
-minetest.register_alias("geothermal", "technic:geothermal")
-
-local S = technic.getter
-
-minetest.register_craft({
- output = 'technic:geothermal',
- recipe = {
- {'technic:granite', 'default:diamond', 'technic:granite'},
- {'technic:fine_copper_wire', 'technic:machine_casing', 'technic:fine_copper_wire'},
- {'technic:granite', 'technic:lv_cable0', 'technic:granite'},
- }
-})
-
-minetest.register_craftitem("technic:geothermal", {
- description = S("Geothermal %s Generator"):format("LV"),
-})
-
-local check_node_around = function(pos)
- local node = minetest.get_node(pos)
- if node.name == "default:water_source" or node.name == "default:water_flowing" then return 1 end
- if node.name == "default:lava_source" or node.name == "default:lava_flowing" then return 2 end
- return 0
-end
-
-local run = function(pos, node)
- local meta = minetest.get_meta(pos)
- local water_nodes = 0
- local lava_nodes = 0
- local production_level = 0
- local eu_supply = 0
-
- -- Correct positioning is water on one side and lava on the other.
- -- The two cannot be adjacent because the lava the turns into obsidian or rock.
- -- To get to 100% production stack the water and lava one extra block down as well:
- -- WGL (W=Water, L=Lava, G=the generator, |=an LV cable)
- -- W|L
-
- local positions = {
- {x=pos.x+1, y=pos.y, z=pos.z},
- {x=pos.x+1, y=pos.y-1, z=pos.z},
- {x=pos.x-1, y=pos.y, z=pos.z},
- {x=pos.x-1, y=pos.y-1, z=pos.z},
- {x=pos.x, y=pos.y, z=pos.z+1},
- {x=pos.x, y=pos.y-1, z=pos.z+1},
- {x=pos.x, y=pos.y, z=pos.z-1},
- {x=pos.x, y=pos.y-1, z=pos.z-1},
- }
- for _, p in pairs(positions) do
- local check = check_node_around(p)
- if check == 1 then water_nodes = water_nodes + 1 end
- if check == 2 then lava_nodes = lava_nodes + 1 end
- end
-
- if water_nodes == 1 and lava_nodes == 1 then production_level = 25; eu_supply = 50 end
- if water_nodes == 2 and lava_nodes == 1 then production_level = 50; eu_supply = 100 end
- if water_nodes == 1 and lava_nodes == 2 then production_level = 75; eu_supply = 200 end
- if water_nodes == 2 and lava_nodes == 2 then production_level = 100; eu_supply = 300 end
-
- if production_level > 0 then
- meta:set_int("LV_EU_supply", eu_supply)
- end
-
- meta:set_string("infotext",
- S("Geothermal %s Generator"):format("LV").." ("..production_level.."%)")
-
- if production_level > 0 and minetest.get_node(pos).name == "technic:geothermal" then
- technic.swap_node (pos, "technic:geothermal_active")
- return
- end
- if production_level == 0 then
- technic.swap_node(pos, "technic:geothermal")
- meta:set_int("LV_EU_supply", 0)
- end
-end
-
-minetest.register_node("technic:geothermal", {
- description = S("Geothermal %s Generator"):format("LV"),
- tiles = {"technic_geothermal_top.png", "technic_machine_bottom.png", "technic_geothermal_side.png",
- "technic_geothermal_side.png", "technic_geothermal_side.png", "technic_geothermal_side.png"},
- paramtype2 = "facedir",
- groups = {snappy=2, choppy=2, oddly_breakable_by_hand=2, technic_machine=1},
- legacy_facedir_simple = true,
- sounds = default.node_sound_wood_defaults(),
- on_construct = function(pos)
- local meta = minetest.get_meta(pos)
- meta:set_string("infotext", S("Geothermal %s Generator"):format("LV"))
- meta:set_int("LV_EU_supply", 0)
- end,
- technic_run = run,
-})
-
-minetest.register_node("technic:geothermal_active", {
- description = S("Geothermal %s Generator"):format("LV"),
- tiles = {"technic_geothermal_top_active.png", "technic_machine_bottom.png", "technic_geothermal_side.png",
- "technic_geothermal_side.png", "technic_geothermal_side.png", "technic_geothermal_side.png"},
- paramtype2 = "facedir",
- groups = {snappy=2, choppy=2, oddly_breakable_by_hand=2, not_in_creative_inventory=1},
- legacy_facedir_simple = true,
- sounds = default.node_sound_wood_defaults(),
- drop = "technic:geothermal",
- technic_run = run,
-})
-
-technic.register_machine("LV", "technic:geothermal", technic.producer)
-technic.register_machine("LV", "technic:geothermal_active", technic.producer)
-
diff --git a/technic/technic/machines/LV/grinder.lua b/technic/technic/machines/LV/grinder.lua
deleted file mode 100644
index da9ea29..0000000
--- a/technic/technic/machines/LV/grinder.lua
+++ /dev/null
@@ -1,13 +0,0 @@
-
-minetest.register_alias("grinder", "technic:lv_grinder")
-minetest.register_craft({
- output = 'technic:lv_grinder',
- recipe = {
- {'default:desert_stone', 'default:diamond', 'default:desert_stone'},
- {'default:desert_stone', 'technic:machine_casing', 'default:desert_stone'},
- {'technic:granite', 'technic:lv_cable0', 'technic:granite'},
- }
-})
-
-technic.register_grinder({tier="LV", demand={200}, speed=1})
-
diff --git a/technic/technic/machines/LV/init.lua b/technic/technic/machines/LV/init.lua
deleted file mode 100644
index 30523c9..0000000
--- a/technic/technic/machines/LV/init.lua
+++ /dev/null
@@ -1,29 +0,0 @@
-
-technic.register_tier("LV", "Low Voltage")
-
-local path = technic.modpath.."/machines/LV"
-
--- Wiring stuff
-dofile(path.."/cables.lua")
-dofile(path.."/battery_box.lua")
-
--- Generators
-dofile(path.."/solar_panel.lua")
-dofile(path.."/solar_array.lua")
-dofile(path.."/geothermal.lua")
-dofile(path.."/water_mill.lua")
-dofile(path.."/generator.lua")
-
--- Machines
-dofile(path.."/alloy_furnace.lua")
-dofile(path.."/electric_furnace.lua")
-dofile(path.."/grinder.lua")
-dofile(path.."/extractor.lua")
-dofile(path.."/compressor.lua")
-
-dofile(path.."/music_player.lua")
-
-dofile(path.."/cnc.lua")
-dofile(path.."/cnc_api.lua")
-dofile(path.."/cnc_nodes.lua")
-
diff --git a/technic/technic/machines/LV/music_player.lua b/technic/technic/machines/LV/music_player.lua
deleted file mode 100644
index dc7e2d0..0000000
--- a/technic/technic/machines/LV/music_player.lua
+++ /dev/null
@@ -1,130 +0,0 @@
--- LV Music player.
--- The player can play music. But it is high ampage!
-
-local S = technic.getter
-
-minetest.register_alias("music_player", "technic:music_player")
-minetest.register_craft({
- output = 'technic:music_player',
- recipe = {
- {'technic:chromium_ingot', 'default:diamond', 'technic:chromium_ingot'},
- {'default:diamond', 'technic:machine_casing', 'default:diamond'},
- {'default:mossycobble', 'technic:lv_cable0', 'default:mossycobble'},
- }
-})
-
-local music_handles = {}
-
-local function play_track(pos, track)
- return minetest.sound_play("technic_track"..tostring(track),
- {pos = pos, gain = 1.0, loop = true, max_hear_distance = 72,})
-end
-
-local run = function(pos, node)
- local meta = minetest.get_meta(pos)
- local eu_input = meta:get_int("LV_EU_input")
- local machine_name = S("%s Music Player"):format("LV")
- local machine_node = "technic:music_player"
- local demand = 150
-
- local current_track = meta:get_int("current_track")
- local pos_hash = minetest.hash_node_position(pos)
- local music_handle = music_handles[pos_hash]
-
- -- Setup meta data if it does not exist.
- if not eu_input then
- meta:set_int("LV_EU_demand", demand)
- meta:set_int("LV_EU_input", 0)
- return
- end
-
- if meta:get_int("active") == 0 then
- meta:set_string("infotext", S("%s Idle"):format(machine_name))
- meta:set_int("LV_EU_demand", 0)
- return
- end
-
- if eu_input < demand then
- meta:set_string("infotext", S("%s Unpowered"):format(machine_name))
- if music_handle then
- minetest.sound_stop(music_handle)
- music_handle = nil
- end
- elseif eu_input >= demand then
- meta:set_string("infotext", S("%s Active"):format(machine_name))
- if not music_handle then
- music_handle = play_track(pos, current_track)
- end
- end
- music_handles[pos_hash] = music_handle
- meta:set_int("LV_EU_demand", demand)
-end
-
-local function stop_player(pos, node)
- local pos_hash = minetest.hash_node_position(pos)
- local music_handle = music_handles[pos_hash]
- if music_handle then
- minetest.sound_stop(music_handle)
- music_handles[pos_hash] = nil
- end
-end
-
-local function set_display(meta)
- meta:set_string("formspec",
- "size[4,4.5]"..
- "item_image[0,0;1,1;technic:music_player]"..
- "label[1,0;"..S("%s Music Player"):format("LV").."]"..
- "button[0,1;1,1;track1;1]"..
- "button[1,1;1,1;track2;2]"..
- "button[2,1;1,1;track3;3]"..
- "button[0,2;1,1;track4;4]"..
- "button[1,2;1,1;track5;5]"..
- "button[2,2;1,1;track6;6]"..
- "button[0,3;1,1;track7;7]"..
- "button[1,3;1,1;track8;8]"..
- "button[2,3;1,1;track9;9]"..
- "button[3,1;1,1;stop;Stop]"..
- "label[0,4;"..minetest.formspec_escape(
- meta:get_int("active") == 0 and
- S("Stopped") or
- S("Current track %s"):format(meta:get_int("current_track"))).."]")
-end
-
-minetest.register_node("technic:music_player", {
- description = S("%s Music Player"):format("LV"),
- tiles = {"technic_music_player_top.png", "technic_machine_bottom.png", "technic_music_player_side.png",
- "technic_music_player_side.png", "technic_music_player_side.png", "technic_music_player_side.png"},
- groups = {snappy=2, choppy=2, oddly_breakable_by_hand=2, technic_machine=1},
- sounds = default.node_sound_wood_defaults(),
- on_construct = function(pos)
- local meta = minetest.get_meta(pos)
- meta:set_string("infotext", S("%s Music Player"):format("LV"))
- set_display(meta)
- end,
- on_receive_fields = function(pos, formanme, fields, sender)
- local new_track = nil
- if fields.stop then new_track = 0 end
- if fields.track1 then new_track = 1 end
- if fields.track2 then new_track = 2 end
- if fields.track3 then new_track = 3 end
- if fields.track4 then new_track = 4 end
- if fields.track5 then new_track = 5 end
- if fields.track6 then new_track = 6 end
- if fields.track7 then new_track = 7 end
- if fields.track8 then new_track = 8 end
- if fields.track9 then new_track = 9 end
- if new_track then
- stop_player(pos)
- local meta = minetest.get_meta(pos)
- meta:set_int("active", new_track == 0 and 0 or 1)
- meta:set_int("current_track", new_track)
- set_display(meta)
- end
- end,
- on_destruct = stop_player,
- technic_run = run,
- technic_on_disable = stop_player,
-})
-
-technic.register_machine("LV", "technic:music_player", technic.receiver)
-
diff --git a/technic/technic/machines/LV/solar_array.lua b/technic/technic/machines/LV/solar_array.lua
deleted file mode 100644
index 4d2c3b3..0000000
--- a/technic/technic/machines/LV/solar_array.lua
+++ /dev/null
@@ -1,18 +0,0 @@
--- The solar array is an assembly of panels into a powerful array
--- The assembly can deliver more energy than the individual panel because
--- of the transformer unit which converts the panel output variations into
--- a stable supply.
--- Solar arrays are not able to store large amounts of energy.
--- The LV arrays are used to make medium voltage arrays.
-
-minetest.register_craft({
- output = 'technic:solar_array_lv 1',
- recipe = {
- {'technic:solar_panel', 'technic:solar_panel', 'technic:solar_panel'},
- {'technic:carbon_steel_ingot', 'technic:lv_transformer', 'technic:carbon_steel_ingot'},
- {'', 'technic:lv_cable0', ''},
- }
-})
-
-technic.register_solar_array({tier="LV", power=10})
-
diff --git a/technic/technic/machines/LV/solar_panel.lua b/technic/technic/machines/LV/solar_panel.lua
deleted file mode 100644
index 41dff95..0000000
--- a/technic/technic/machines/LV/solar_panel.lua
+++ /dev/null
@@ -1,67 +0,0 @@
--- Solar panels are the building blocks of LV solar arrays
--- They can however also be used separately but with reduced efficiency due to the missing transformer.
--- Individual panels are less efficient than when the panels are combined into full arrays.
-
-local S = technic.getter
-
-local run = function(pos, node)
- -- The action here is to make the solar panel prodice power
- -- Power is dependent on the light level and the height above ground
- -- There are many ways to cheat by using other light sources like lamps.
- -- As there is no way to determine if light is sunlight that is just a shame.
- -- To take care of some of it solar panels do not work outside daylight hours or if
- -- built below 0m
- local pos1 = {x=pos.x, y=pos.y+1, z=pos.z}
- local machine_name = S("Small Solar %s Generator"):format("LV")
-
- local light = minetest.get_node_light(pos1, nil)
- local time_of_day = minetest.get_timeofday()
- local meta = minetest.get_meta(pos)
- if light == nil then light = 0 end
- -- turn on panel only during day time and if sufficient light
- -- I know this is counter intuitive when cheating by using other light sources underground.
- if light >= 12 and time_of_day >= 0.24 and time_of_day <= 0.76 and pos.y > -10 then
- local charge_to_give = math.floor((light + pos1.y) * 3)
- charge_to_give = math.max(charge_to_give, 0)
- charge_to_give = math.min(charge_to_give, 200)
- meta:set_string("infotext", S("@1 Active (@2 EU)", machine_name, technic.prettynum(charge_to_give)))
- meta:set_int("LV_EU_supply", charge_to_give)
- else
- meta:set_string("infotext", S("%s Idle"):format(machine_name))
- meta:set_int("LV_EU_supply", 0)
- end
-end
-
-minetest.register_node("technic:solar_panel", {
- tiles = {"technic_solar_panel_top.png", "technic_solar_panel_bottom.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, technic_machine=1},
- sounds = default.node_sound_wood_defaults(),
- description = S("Small Solar %s Generator"):format("LV"),
- active = false,
- drawtype = "nodebox",
- paramtype = "light",
- is_ground_content = true,
- node_box = {
- type = "fixed",
- fixed = {-0.5, -0.5, -0.5, 0.5, 0, 0.5},
- },
- on_construct = function(pos)
- local meta = minetest.get_meta(pos)
- meta:set_int("LV_EU_supply", 0)
- meta:set_string("infotext", S("Small Solar %s Generator"):format("LV"))
- end,
- technic_run = run,
-})
-
-minetest.register_craft({
- output = 'technic:solar_panel',
- recipe = {
- {'technic:doped_silicon_wafer', 'technic:doped_silicon_wafer', 'technic:doped_silicon_wafer'},
- {'technic:fine_silver_wire', 'technic:lv_cable0', 'mesecons_materials:glue'},
-
- }
-})
-
-technic.register_machine("LV", "technic:solar_panel", technic.producer)
-
diff --git a/technic/technic/machines/LV/water_mill.lua b/technic/technic/machines/LV/water_mill.lua
deleted file mode 100644
index 9088d1d..0000000
--- a/technic/technic/machines/LV/water_mill.lua
+++ /dev/null
@@ -1,102 +0,0 @@
--- A water mill produces LV EUs by exploiting flowing water across it
--- It is a LV EU supplyer and fairly low yield (max 120EUs)
--- It is a little under half as good as the thermal generator.
-
-local S = technic.getter
-
-minetest.register_alias("water_mill", "technic:water_mill")
-
-minetest.register_craft({
- output = 'technic:water_mill',
- recipe = {
- {'technic:marble', 'default:diamond', 'technic:marble'},
- {'group:wood', 'technic:machine_casing', 'group:wood'},
- {'technic:marble', 'technic:lv_cable0', 'technic:marble'},
- }
-})
-
-local function check_node_around_mill(pos)
- local node = minetest.get_node(pos)
- if node.name == "default:water_flowing" or
- node.name == "default:water_source" then
- return true
- end
- return false
-end
-
-local run = function(pos, node)
- local meta = minetest.get_meta(pos)
- local water_nodes = 0
- local lava_nodes = 0
- local production_level = 0
- local eu_supply = 0
-
- local positions = {
- {x=pos.x+1, y=pos.y, z=pos.z},
- {x=pos.x-1, y=pos.y, z=pos.z},
- {x=pos.x, y=pos.y, z=pos.z+1},
- {x=pos.x, y=pos.y, z=pos.z-1},
- }
-
- for _, p in pairs(positions) do
- local check = check_node_around_mill(p)
- if check then
- water_nodes = water_nodes + 1
- end
- end
-
- production_level = 25 * water_nodes
- eu_supply = 30 * water_nodes
-
- if production_level > 0 then
- meta:set_int("LV_EU_supply", eu_supply)
- end
-
- meta:set_string("infotext",
- S("Hydro %s Generator"):format("LV").." ("..production_level.."%)")
-
- if production_level > 0 and
- minetest.get_node(pos).name == "technic:water_mill" then
- technic.swap_node (pos, "technic:water_mill_active")
- meta:set_int("LV_EU_supply", 0)
- return
- end
- if production_level == 0 then
- technic.swap_node(pos, "technic:water_mill")
- end
-end
-
-minetest.register_node("technic:water_mill", {
- description = S("Hydro %s Generator"):format("LV"),
- tiles = {"technic_water_mill_top.png", "technic_machine_bottom.png",
- "technic_water_mill_side.png", "technic_water_mill_side.png",
- "technic_water_mill_side.png", "technic_water_mill_side.png"},
- paramtype2 = "facedir",
- groups = {snappy=2, choppy=2, oddly_breakable_by_hand=2, technic_machine=1},
- legacy_facedir_simple = true,
- sounds = default.node_sound_wood_defaults(),
- on_construct = function(pos)
- local meta = minetest.get_meta(pos)
- meta:set_string("infotext", S("Hydro %s Generator"):format("LV"))
- meta:set_int("LV_EU_supply", 0)
- end,
- technic_run = run,
-})
-
-minetest.register_node("technic:water_mill_active", {
- description = S("Hydro %s Generator"):format("LV"),
- tiles = {"technic_water_mill_top_active.png", "technic_machine_bottom.png",
- "technic_water_mill_side.png", "technic_water_mill_side.png",
- "technic_water_mill_side.png", "technic_water_mill_side.png"},
- paramtype2 = "facedir",
- groups = {snappy=2, choppy=2, oddly_breakable_by_hand=2, technic_machine=1, not_in_creative_inventory=1},
- legacy_facedir_simple = true,
- sounds = default.node_sound_wood_defaults(),
- drop = "technic:water_mill",
- technic_run = run,
- technic_disabled_machine_name = "technic:water_mill",
-})
-
-technic.register_machine("LV", "technic:water_mill", technic.producer)
-technic.register_machine("LV", "technic:water_mill_active", technic.producer)
-
diff --git a/technic/technic/machines/MV/alloy_furnace.lua b/technic/technic/machines/MV/alloy_furnace.lua
deleted file mode 100644
index a1918fd..0000000
--- a/technic/technic/machines/MV/alloy_furnace.lua
+++ /dev/null
@@ -1,14 +0,0 @@
--- MV alloy furnace
-
-minetest.register_craft({
- output = 'technic:mv_alloy_furnace',
- recipe = {
- {'technic:stainless_steel_ingot', 'technic:lv_alloy_furnace', 'technic:stainless_steel_ingot'},
- {'pipeworks:tube_1', 'technic:mv_transformer', 'pipeworks:tube_1'},
- {'technic:stainless_steel_ingot', 'technic:mv_cable0', 'technic:stainless_steel_ingot'},
- }
-})
-
-
-technic.register_alloy_furnace({tier = "MV", speed = 1.5, upgrade = 1, tube = 1, demand = {3000, 2000, 1000}})
-
diff --git a/technic/technic/machines/MV/battery_box.lua b/technic/technic/machines/MV/battery_box.lua
deleted file mode 100644
index 45437c1..0000000
--- a/technic/technic/machines/MV/battery_box.lua
+++ /dev/null
@@ -1,22 +0,0 @@
--- MV Battery box
-
-minetest.register_craft({
- output = 'technic:mv_battery_box0',
- recipe = {
- {'technic:lv_battery_box0', 'technic:lv_battery_box0', 'technic:lv_battery_box0'},
- {'technic:lv_battery_box0', 'technic:mv_transformer', 'technic:lv_battery_box0'},
- {'', 'technic:mv_cable0', ''},
- }
-})
-
-technic.register_battery_box({
- tier = "MV",
- max_charge = 200000,
- charge_rate = 20000,
- discharge_rate = 80000,
- charge_step = 2000,
- discharge_step = 8000,
- upgrade = 1,
- tube = 1,
-})
-
diff --git a/technic/technic/machines/MV/cables.lua b/technic/technic/machines/MV/cables.lua
deleted file mode 100644
index b1a34c8..0000000
--- a/technic/technic/machines/MV/cables.lua
+++ /dev/null
@@ -1,14 +0,0 @@
-
-minetest.register_alias("mv_cable", "technic:mv_cable0")
-
-minetest.register_craft({
- output = 'technic:mv_cable0 3',
- recipe ={
- {'technic:rubber', 'technic:rubber', 'technic:rubber'},
- {'technic:lv_cable0', 'technic:lv_cable0', 'technic:lv_cable0'},
- {'technic:rubber', 'technic:rubber', 'technic:rubber'},
- }
-})
-
-technic.register_cable("MV", 2.5/16)
-
diff --git a/technic/technic/machines/MV/centrifuge.lua b/technic/technic/machines/MV/centrifuge.lua
deleted file mode 100644
index 5bf24bf..0000000
--- a/technic/technic/machines/MV/centrifuge.lua
+++ /dev/null
@@ -1,16 +0,0 @@
-minetest.register_craft({
- output = "technic:mv_centrifuge",
- recipe = {
- { "technic:motor", "technic:copper_plate", "technic:diamond_drill_head" },
- { "technic:copper_plate", "technic:machine_casing", "technic:copper_plate" },
- { "pipeworks:one_way_tube", "technic:mv_cable0", "pipeworks:mese_filter" },
- }
-})
-
-technic.register_centrifuge({
- tier = "MV",
- demand = { 8000, 7000, 6000 },
- speed = 2,
- upgrade = 1,
- tube = 1,
-})
diff --git a/technic/technic/machines/MV/compressor.lua b/technic/technic/machines/MV/compressor.lua
deleted file mode 100644
index 5b36cc5..0000000
--- a/technic/technic/machines/MV/compressor.lua
+++ /dev/null
@@ -1,12 +0,0 @@
--- MV compressor
-
-minetest.register_craft({
- output = 'technic:mv_compressor',
- recipe = {
- {'technic:stainless_steel_ingot', 'technic:lv_compressor', 'technic:stainless_steel_ingot'},
- {'pipeworks:tube_1', 'technic:mv_transformer', 'pipeworks:tube_1'},
- {'technic:stainless_steel_ingot', 'technic:mv_cable0', 'technic:stainless_steel_ingot'},
- }
-})
-
-technic.register_compressor({tier = "MV", demand = {800, 600, 400}, speed = 2, upgrade = 1, tube = 1})
diff --git a/technic/technic/machines/MV/electric_furnace.lua b/technic/technic/machines/MV/electric_furnace.lua
deleted file mode 100644
index 1f6b1c2..0000000
--- a/technic/technic/machines/MV/electric_furnace.lua
+++ /dev/null
@@ -1,18 +0,0 @@
--- MV Electric Furnace
--- This is a faster version of the stone furnace which runs on EUs
--- In addition to this it can be upgraded with microcontrollers and batteries
--- This new version uses the batteries to lower the power consumption of the machine
--- Also in addition this furnace can be attached to the pipe system from the pipeworks mod.
-
--- FIXME: kpoppel I'd like to introduce an induction heating element here also
-minetest.register_craft({
- output = 'technic:mv_electric_furnace',
- recipe = {
- {'technic:stainless_steel_ingot', 'technic:lv_electric_furnace', 'technic:stainless_steel_ingot'},
- {'pipeworks:tube_1', 'technic:mv_transformer', 'pipeworks:tube_1'},
- {'technic:stainless_steel_ingot', 'technic:mv_cable0', 'technic:stainless_steel_ingot'},
- }
-})
-
-technic.register_electric_furnace({tier="MV", upgrade=1, tube=1, demand={2000, 1000, 500}, speed=4})
-
diff --git a/technic/technic/machines/MV/extractor.lua b/technic/technic/machines/MV/extractor.lua
deleted file mode 100644
index fdef5b2..0000000
--- a/technic/technic/machines/MV/extractor.lua
+++ /dev/null
@@ -1,12 +0,0 @@
--- MV extractor
-
-minetest.register_craft({
- output = 'technic:mv_extractor',
- recipe = {
- {'technic:stainless_steel_ingot', 'technic:lv_extractor', 'technic:stainless_steel_ingot'},
- {'pipeworks:tube_1', 'technic:mv_transformer', 'pipeworks:tube_1'},
- {'technic:stainless_steel_ingot', 'technic:mv_cable0', 'technic:stainless_steel_ingot'},
- }
-})
-
-technic.register_extractor({tier = "MV", demand = {800, 600, 400}, speed = 2, upgrade = 1, tube = 1})
diff --git a/technic/technic/machines/MV/generator.lua b/technic/technic/machines/MV/generator.lua
deleted file mode 100644
index 4ae24b8..0000000
--- a/technic/technic/machines/MV/generator.lua
+++ /dev/null
@@ -1,13 +0,0 @@
-minetest.register_alias("generator_mv", "technic:generator_mv")
-
-minetest.register_craft({
- output = 'technic:mv_generator',
- recipe = {
- {'technic:stainless_steel_ingot', 'technic:lv_generator', 'technic:stainless_steel_ingot'},
- {'pipeworks:tube_1', 'technic:mv_transformer', 'pipeworks:tube_1'},
- {'technic:stainless_steel_ingot', 'technic:mv_cable0', 'technic:stainless_steel_ingot'},
- }
-})
-
-technic.register_generator({tier="MV", tube=1, supply=600})
-
diff --git a/technic/technic/machines/MV/grinder.lua b/technic/technic/machines/MV/grinder.lua
deleted file mode 100644
index dac536c..0000000
--- a/technic/technic/machines/MV/grinder.lua
+++ /dev/null
@@ -1,13 +0,0 @@
--- MV grinder
-
-minetest.register_craft({
- output = 'technic:mv_grinder',
- recipe = {
- {'technic:stainless_steel_ingot', 'technic:lv_grinder', 'technic:stainless_steel_ingot'},
- {'pipeworks:tube_1', 'technic:mv_transformer', 'pipeworks:tube_1'},
- {'technic:stainless_steel_ingot', 'technic:mv_cable0', 'technic:stainless_steel_ingot'},
- }
-})
-
-technic.register_grinder({tier="MV", demand={600, 450, 300}, speed=2, upgrade=1, tube=1})
-
diff --git a/technic/technic/machines/MV/init.lua b/technic/technic/machines/MV/init.lua
deleted file mode 100644
index 72a98b6..0000000
--- a/technic/technic/machines/MV/init.lua
+++ /dev/null
@@ -1,32 +0,0 @@
-
-technic.register_tier("MV", "Medium Voltage")
-
-local path = technic.modpath.."/machines/MV"
-
--- Wiring stuff
-dofile(path.."/cables.lua")
-dofile(path.."/battery_box.lua")
-
--- Generators
-if technic.config:get_bool("enable_wind_mill") then
- dofile(path.."/wind_mill.lua")
-end
-dofile(path.."/generator.lua")
-dofile(path.."/solar_array.lua")
-
--- Machines
-dofile(path.."/alloy_furnace.lua")
-dofile(path.."/electric_furnace.lua")
-dofile(path.."/grinder.lua")
-dofile(path.."/extractor.lua")
-dofile(path.."/compressor.lua")
-dofile(path.."/centrifuge.lua")
-
-dofile(path.."/tool_workshop.lua")
-
--- The power radiator supplies appliances with inductive coupled power:
--- Lighting and associated textures is taken directly from VanessaE's homedecor and made electric.
--- This is currently useless, slow, and mostly copied
---dofile(path.."/power_radiator.lua")
---dofile(path.."/lighting.lua")
-
diff --git a/technic/technic/machines/MV/lighting.lua b/technic/technic/machines/MV/lighting.lua
deleted file mode 100644
index 76fcb20..0000000
--- a/technic/technic/machines/MV/lighting.lua
+++ /dev/null
@@ -1,590 +0,0 @@
--- NOTE: The code is takes directly from VanessaE's homedecor mod.
--- I just made it the lights into indictive appliances for this mod.
-
--- This file supplies electric powered glowlights
-
--- Boilerplate to support localized strings if intllib mod is installed.
-local S
-if (minetest.get_modpath("intllib")) then
- dofile(minetest.get_modpath("intllib").."/intllib.lua")
- S = intllib.Getter(minetest.get_current_modname())
-else
- S = function (s) return s end
-end
-
-function technic_homedecor_node_is_owned(pos, placer)
- local ownername = false
- if type(IsPlayerNodeOwner) == "function" then -- node_ownership mod
- if HasOwner(pos, placer) then
- if not IsPlayerNodeOwner(pos, placer:get_player_name()) then
- if type(getLastOwner) == "function" then -- ...is an old version
- ownername = getLastOwner(pos)
- elseif type(GetNodeOwnerName) == "function" then -- ...is a recent version
- ownername = GetNodeOwnerName(pos)
- else
- ownername = S("someone")
- end
- end
- end
-
- elseif type(isprotect) == "function" then -- glomie's protection mod
- if not isprotect(5, pos, placer) then
- ownername = S("someone")
- end
- elseif type(protector) == "table" and type(protector.can_dig) == "function" then -- Zeg9's protection mod
- if not protector.can_dig(5, pos, placer) then
- ownername = S("someone")
- end
- end
-
- if ownername ~= false then
- minetest.chat_send_player(placer:get_player_name(), S("Sorry, %s owns that spot."):format(ownername) )
- return true
- else
- return false
- end
-end
-
-local dirs1 = {20, 23, 22, 21}
-local dirs2 = {9, 18, 7, 12}
-
-local technic_homedecor_rotate_and_place = function(itemstack, placer, pointed_thing)
- if not technic_homedecor_node_is_owned(pointed_thing.under, placer)
- and not technic_homedecor_node_is_owned(pointed_thing.above, placer) then
- local node = minetest.get_node(pointed_thing.under)
- if not minetest.registered_nodes[node.name] or not minetest.registered_nodes[node.name].on_rightclick then
-
- local above = pointed_thing.above
- local under = pointed_thing.under
- local pitch = placer:get_look_pitch()
- local pname = minetest.get_node(under).name
- local node = minetest.get_node(above)
- local fdir = minetest.dir_to_facedir(placer:get_look_dir())
- local wield_name = itemstack:get_name()
-
- if not minetest.registered_nodes[pname]
- or not minetest.registered_nodes[pname].on_rightclick then
-
- local iswall = (above.x ~= under.x) or (above.z ~= under.z)
- local isceiling = (above.x == under.x) and (above.z == under.z) and (pitch > 0)
- local pos1 = above
-
- if minetest.registered_nodes[pname]["buildable_to"] then
- pos1 = under
- iswall = false
- end
-
- if not minetest.registered_nodes[minetest.get_node(pos1).name]["buildable_to"] then return end
-
- if iswall then
- minetest.add_node(pos1, {name = wield_name, param2 = dirs2[fdir+1] }) -- place wall variant
- elseif isceiling then
- minetest.add_node(pos1, {name = wield_name, param2 = 20 }) -- place upside down variant
- else
- minetest.add_node(pos1, {name = wield_name, param2 = 0 }) -- place right side up
- end
-
- if not homedecor_expect_infinite_stacks then
- itemstack:take_item()
- return itemstack
- end
- end
- else
- minetest.registered_nodes[node.name].on_rightclick(pointed_thing.under, node, placer, itemstack)
- end
- end
-end
-
--- Yellow -- Half node
-minetest.register_node('technic:homedecor_glowlight_half_yellow', {
- description = S("Yellow Glowlight (thick)"),
- drawtype = "nodebox",
- tiles = {
- 'technic_homedecor_glowlight_yellow_tb.png',
- 'technic_homedecor_glowlight_yellow_tb.png',
- 'technic_homedecor_glowlight_thick_yellow_sides.png',
- 'technic_homedecor_glowlight_thick_yellow_sides.png',
- 'technic_homedecor_glowlight_thick_yellow_sides.png',
- 'technic_homedecor_glowlight_thick_yellow_sides.png'
- },
- selection_box = {
- type = "fixed",
- fixed = { -0.5, -0.5, -0.5, 0.5, 0, 0.5 }
- },
- node_box = {
- type = "fixed",
- fixed = { -0.5, -0.5, -0.5, 0.5, 0, 0.5 }
- },
-
- sunlight_propagates = false,
- paramtype = "light",
- paramtype2 = "facedir",
- walkable = true,
- sounds = default.node_sound_wood_defaults(),
-
- groups = { snappy = 3 },
- on_place = function(itemstack, placer, pointed_thing)
- technic_homedecor_rotate_and_place(itemstack, placer, pointed_thing)
- return itemstack
- end,
- on_construct = function(pos)
- technic.inductive_on_construct(pos, 100, "Yellow Glowlight (thick)")
- end,
- on_punch = function(pos, node, puncher)
- technic.inductive_on_punch_off(pos, 100, "technic:homedecor_glowlight_half_yellow_active")
- end
-})
-
-minetest.register_node('technic:homedecor_glowlight_half_yellow_active', {
- description = S("Yellow Glowlight (thick)"),
- drawtype = "nodebox",
- tiles = {
- 'technic_homedecor_glowlight_yellow_tb.png',
- 'technic_homedecor_glowlight_yellow_tb.png',
- 'technic_homedecor_glowlight_thick_yellow_sides.png',
- 'technic_homedecor_glowlight_thick_yellow_sides.png',
- 'technic_homedecor_glowlight_thick_yellow_sides.png',
- 'technic_homedecor_glowlight_thick_yellow_sides.png'
- },
- selection_box = {
- type = "fixed",
- fixed = { -0.5, -0.5, -0.5, 0.5, 0, 0.5 }
- },
- node_box = {
- type = "fixed",
- fixed = { -0.5, -0.5, -0.5, 0.5, 0, 0.5 }
- },
-
- sunlight_propagates = false,
- paramtype = "light",
- paramtype2 = "facedir",
- walkable = true,
- light_source = LIGHT_MAX,
- sounds = default.node_sound_wood_defaults(),
-
- groups = { snappy = 3, not_in_creative_inventory=1},
- drop="technic:homedecor_glowlight_half_yellow",
- on_place = function(itemstack, placer, pointed_thing)
- technic_homedecor_rotate_and_place(itemstack, placer, pointed_thing)
- return itemstack
- end,
- on_construct = function(pos)
- technic.inductive_on_construct(pos, 100, "Yellow Glowlight (thick)")
- end,
- on_punch = function(pos, node, puncher)
- technic.inductive_on_punch_on(pos, 0, "technic:homedecor_glowlight_half_yellow")
- end
-})
-
--- Yellow -- Quarter node
-minetest.register_node('technic:homedecor_glowlight_quarter_yellow', {
- description = S("Yellow Glowlight (thin)"),
- drawtype = "nodebox",
- tiles = {
- 'technic_homedecor_glowlight_yellow_tb.png',
- 'technic_homedecor_glowlight_yellow_tb.png',
- 'technic_homedecor_glowlight_thin_yellow_sides.png',
- 'technic_homedecor_glowlight_thin_yellow_sides.png',
- 'technic_homedecor_glowlight_thin_yellow_sides.png',
- 'technic_homedecor_glowlight_thin_yellow_sides.png'
- },
- selection_box = {
- type = "fixed",
- fixed = { -0.5, -0.5, -0.5, 0.5, -0.25, 0.5 }
- },
- node_box = {
- type = "fixed",
- fixed = { -0.5, -0.5, -0.5, 0.5, -0.25, 0.5 }
- },
-
- sunlight_propagates = false,
- paramtype = "light",
- paramtype2 = "facedir",
- walkable = true,
- sounds = default.node_sound_wood_defaults(),
-
- groups = { snappy = 3 },
- on_place = function(itemstack, placer, pointed_thing)
- technic_homedecor_rotate_and_place(itemstack, placer, pointed_thing)
- return itemstack
- end,
- on_construct = function(pos)
- technic.inductive_on_construct(pos, 100, "Yellow Glowlight (thin)")
- end,
- on_punch = function(pos, node, puncher)
- technic.inductive_on_punch_off(pos, 100, "technic:homedecor_glowlight_quarter_yellow_active")
- end
-})
-
-minetest.register_node('technic:homedecor_glowlight_quarter_yellow_active', {
- description = S("Yellow Glowlight (thin)"),
- drawtype = "nodebox",
- tiles = {
- 'technic_homedecor_glowlight_yellow_tb.png',
- 'technic_homedecor_glowlight_yellow_tb.png',
- 'technic_homedecor_glowlight_thin_yellow_sides.png',
- 'technic_homedecor_glowlight_thin_yellow_sides.png',
- 'technic_homedecor_glowlight_thin_yellow_sides.png',
- 'technic_homedecor_glowlight_thin_yellow_sides.png'
- },
- selection_box = {
- type = "fixed",
- fixed = { -0.5, -0.5, -0.5, 0.5, -0.25, 0.5 }
- },
- node_box = {
- type = "fixed",
- fixed = { -0.5, -0.5, -0.5, 0.5, -0.25, 0.5 }
- },
-
- sunlight_propagates = false,
- paramtype = "light",
- paramtype2 = "facedir",
- walkable = true,
- light_source = LIGHT_MAX-1,
- sounds = default.node_sound_wood_defaults(),
-
- groups = { snappy = 3, not_in_creative_inventory=1},
- drop="technic:homedecor_glowlight_quarter_yellow",
- on_place = function(itemstack, placer, pointed_thing)
- technic_homedecor_rotate_and_place(itemstack, placer, pointed_thing)
- return itemstack
- end,
- on_construct = function(pos)
- technic.inductive_on_construct(pos, 100, "Yellow Glowlight (thin)")
- end,
- on_punch = function(pos, node, puncher)
- technic.inductive_on_punch_on(pos, 0, "technic:homedecor_glowlight_quarter_yellow")
- end
-})
-
-
--- White -- half node
-minetest.register_node('technic:homedecor_glowlight_half_white', {
- description = S("White Glowlight (thick)"),
- drawtype = "nodebox",
- tiles = {
- 'technic_homedecor_glowlight_white_tb.png',
- 'technic_homedecor_glowlight_white_tb.png',
- 'technic_homedecor_glowlight_thick_white_sides.png',
- 'technic_homedecor_glowlight_thick_white_sides.png',
- 'technic_homedecor_glowlight_thick_white_sides.png',
- 'technic_homedecor_glowlight_thick_white_sides.png'
- },
- selection_box = {
- type = "fixed",
- fixed = { -0.5, -0.5, -0.5, 0.5, 0, 0.5 }
- },
- node_box = {
- type = "fixed",
- fixed = { -0.5, -0.5, -0.5, 0.5, 0, 0.5 }
- },
-
- sunlight_propagates = false,
- paramtype = "light",
- paramtype2 = "facedir",
- walkable = true,
- sounds = default.node_sound_wood_defaults(),
-
- groups = { snappy = 3 },
- on_place = function(itemstack, placer, pointed_thing)
- technic_homedecor_rotate_and_place(itemstack, placer, pointed_thing)
- return itemstack
- end,
- on_construct = function(pos)
- technic.inductive_on_construct(pos, 100, "White Glowlight (thick)")
- end,
- on_punch = function(pos, node, puncher)
- technic.inductive_on_punch_off(pos, 100, "technic:homedecor_glowlight_half_white_active")
- end
-})
-
-minetest.register_node('technic:homedecor_glowlight_half_white_active', {
- description = S("White Glowlight (thick)"),
- drawtype = "nodebox",
- tiles = {
- 'technic_homedecor_glowlight_white_tb.png',
- 'technic_homedecor_glowlight_white_tb.png',
- 'technic_homedecor_glowlight_thick_white_sides.png',
- 'technic_homedecor_glowlight_thick_white_sides.png',
- 'technic_homedecor_glowlight_thick_white_sides.png',
- 'technic_homedecor_glowlight_thick_white_sides.png'
- },
- selection_box = {
- type = "fixed",
- fixed = { -0.5, -0.5, -0.5, 0.5, 0, 0.5 }
- },
- node_box = {
- type = "fixed",
- fixed = { -0.5, -0.5, -0.5, 0.5, 0, 0.5 }
- },
-
- sunlight_propagates = false,
- paramtype = "light",
- paramtype2 = "facedir",
- walkable = true,
- light_source = LIGHT_MAX,
- sounds = default.node_sound_wood_defaults(),
-
- groups = { snappy = 3, not_in_creative_inventory=1},
- drop="technic:homedecor_glowlight_half_white",
- on_place = function(itemstack, placer, pointed_thing)
- technic_homedecor_rotate_and_place(itemstack, placer, pointed_thing)
- return itemstack
- end,
- on_construct = function(pos)
- technic.inductive_on_construct(pos, 100, "White Glowlight (thick)")
- end,
- on_punch = function(pos, node, puncher)
- technic.inductive_on_punch_on(pos, 0, "technic:homedecor_glowlight_half_white")
- end
-})
-
--- White -- Quarter node
-minetest.register_node('technic:homedecor_glowlight_quarter_white', {
- description = S("White Glowlight (thin)"),
- drawtype = "nodebox",
- tiles = {
- 'technic_homedecor_glowlight_white_tb.png',
- 'technic_homedecor_glowlight_white_tb.png',
- 'technic_homedecor_glowlight_thin_white_sides.png',
- 'technic_homedecor_glowlight_thin_white_sides.png',
- 'technic_homedecor_glowlight_thin_white_sides.png',
- 'technic_homedecor_glowlight_thin_white_sides.png'
- },
- selection_box = {
- type = "fixed",
- fixed = { -0.5, -0.5, -0.5, 0.5, -0.25, 0.5 }
- },
- node_box = {
- type = "fixed",
- fixed = { -0.5, -0.5, -0.5, 0.5, -0.25, 0.5 }
- },
-
- sunlight_propagates = false,
- paramtype = "light",
- paramtype2 = "facedir",
- walkable = true,
- sounds = default.node_sound_wood_defaults(),
-
- groups = { snappy = 3 },
- on_place = function(itemstack, placer, pointed_thing)
- technic_homedecor_rotate_and_place(itemstack, placer, pointed_thing)
- return itemstack
- end,
- on_construct = function(pos)
- technic.inductive_on_construct(pos, 100, "White Glowlight (thin)")
- end,
- on_punch = function(pos, node, puncher)
- technic.inductive_on_punch_off(pos, 100, "technic:homedecor_glowlight_quarter_white_active")
- end
-})
-
-minetest.register_node('technic:homedecor_glowlight_quarter_white_active', {
- description = S("White Glowlight (thin)"),
- drawtype = "nodebox",
- tiles = {
- 'technic_homedecor_glowlight_white_tb.png',
- 'technic_homedecor_glowlight_white_tb.png',
- 'technic_homedecor_glowlight_thin_white_sides.png',
- 'technic_homedecor_glowlight_thin_white_sides.png',
- 'technic_homedecor_glowlight_thin_white_sides.png',
- 'technic_homedecor_glowlight_thin_white_sides.png'
- },
- selection_box = {
- type = "fixed",
- fixed = { -0.5, -0.5, -0.5, 0.5, -0.25, 0.5 }
- },
- node_box = {
- type = "fixed",
- fixed = { -0.5, -0.5, -0.5, 0.5, -0.25, 0.5 }
- },
-
- sunlight_propagates = false,
- paramtype = "light",
- paramtype2 = "facedir",
- walkable = true,
- light_source = LIGHT_MAX-1,
- sounds = default.node_sound_wood_defaults(),
-
- groups = { snappy = 3, not_in_creative_inventory=1},
- drop="technic:homedecor_glowlight_quarter_white",
- on_place = function(itemstack, placer, pointed_thing)
- technic_homedecor_rotate_and_place(itemstack, placer, pointed_thing)
- return itemstack
- end,
- on_construct = function(pos)
- technic.inductive_on_construct(pos, 100, "White Glowlight (thin)")
- end,
- on_punch = function(pos, node, puncher)
- technic.inductive_on_punch_on(pos, 0, "technic:homedecor_glowlight_quarter_white")
- end
-})
-
--- Glowlight "cubes" - yellow
-minetest.register_node('technic:homedecor_glowlight_small_cube_yellow', {
- description = S("Yellow Glowlight (small cube)"),
- drawtype = "nodebox",
- tiles = {
- 'technic_homedecor_glowlight_cube_yellow_tb.png',
- 'technic_homedecor_glowlight_cube_yellow_tb.png',
- 'technic_homedecor_glowlight_cube_yellow_sides.png',
- 'technic_homedecor_glowlight_cube_yellow_sides.png',
- 'technic_homedecor_glowlight_cube_yellow_sides.png',
- 'technic_homedecor_glowlight_cube_yellow_sides.png'
- },
- selection_box = {
- type = "fixed",
- fixed = { -0.25, -0.5, -0.25, 0.25, 0, 0.25 }
- },
- node_box = {
- type = "fixed",
- fixed = { -0.25, -0.5, -0.25, 0.25, 0, 0.25 }
- },
-
- sunlight_propagates = false,
- paramtype = "light",
- paramtype2 = "facedir",
- walkable = true,
- sounds = default.node_sound_wood_defaults(),
-
- groups = { snappy = 3 },
- on_place = function(itemstack, placer, pointed_thing)
- technic_homedecor_rotate_and_place(itemstack, placer, pointed_thing)
- return itemstack
- end,
- on_construct = function(pos)
- technic.inductive_on_construct(pos, 50, "Yellow Glowlight (small cube)")
- end,
- on_punch = function(pos, node, puncher)
- technic.inductive_on_punch_off(pos, 50, "technic:homedecor_glowlight_small_cube_yellow_active")
- end
-})
-
-minetest.register_node('technic:homedecor_glowlight_small_cube_yellow_active', {
- description = S("Yellow Glowlight (small cube)"),
- drawtype = "nodebox",
- tiles = {
- 'technic_homedecor_glowlight_cube_yellow_tb.png',
- 'technic_homedecor_glowlight_cube_yellow_tb.png',
- 'technic_homedecor_glowlight_cube_yellow_sides.png',
- 'technic_homedecor_glowlight_cube_yellow_sides.png',
- 'technic_homedecor_glowlight_cube_yellow_sides.png',
- 'technic_homedecor_glowlight_cube_yellow_sides.png'
- },
- selection_box = {
- type = "fixed",
- fixed = { -0.25, -0.5, -0.25, 0.25, 0, 0.25 }
- },
- node_box = {
- type = "fixed",
- fixed = { -0.25, -0.5, -0.25, 0.25, 0, 0.25 }
- },
-
- sunlight_propagates = false,
- paramtype = "light",
- paramtype2 = "facedir",
- walkable = true,
- light_source = LIGHT_MAX-1,
- sounds = default.node_sound_wood_defaults(),
-
- groups = { snappy = 3, not_in_creative_inventory=1},
- drop="technic:homedecor_glowlight_small_cube_yellow",
- on_place = function(itemstack, placer, pointed_thing)
- technic_homedecor_rotate_and_place(itemstack, placer, pointed_thing)
- return itemstack
- end,
- on_construct = function(pos)
- technic.inductive_on_construct(pos, 50, "Yellow Glowlight (small cube)")
- end,
- on_punch = function(pos, node, puncher)
- technic.inductive_on_punch_on(pos, 0, "technic:homedecor_glowlight_small_cube_yellow")
- end
-})
-
--- Glowlight "cubes" - white
-minetest.register_node('technic:homedecor_glowlight_small_cube_white', {
- description = S("White Glowlight (small cube)"),
- drawtype = "nodebox",
- tiles = {
- 'technic_homedecor_glowlight_cube_white_tb.png',
- 'technic_homedecor_glowlight_cube_white_tb.png',
- 'technic_homedecor_glowlight_cube_white_sides.png',
- 'technic_homedecor_glowlight_cube_white_sides.png',
- 'technic_homedecor_glowlight_cube_white_sides.png',
- 'technic_homedecor_glowlight_cube_white_sides.png'
- },
- selection_box = {
- type = "fixed",
- fixed = { -0.25, -0.5, -0.25, 0.25, 0, 0.25 }
- },
- node_box = {
- type = "fixed",
- fixed = { -0.25, -0.5, -0.25, 0.25, 0, 0.25 }
- },
-
- sunlight_propagates = false,
- paramtype = "light",
- paramtype2 = "facedir",
- walkable = true,
- sounds = default.node_sound_wood_defaults(),
-
- groups = { snappy = 3 },
- on_place = function(itemstack, placer, pointed_thing)
- technic_homedecor_rotate_and_place(itemstack, placer, pointed_thing)
- return itemstack
- end,
- on_construct = function(pos)
- technic.inductive_on_construct(pos, 50, "White Glowlight (small cube)")
- end,
- on_punch = function(pos, node, puncher)
- technic.inductive_on_punch_off(pos, 50, "technic:homedecor_glowlight_small_cube_white_active")
- end
-})
-
-minetest.register_node('technic:homedecor_glowlight_small_cube_white_active', {
- description = S("White Glowlight (small cube)"),
- drawtype = "nodebox",
- tiles = {
- 'technic_homedecor_glowlight_cube_white_tb.png',
- 'technic_homedecor_glowlight_cube_white_tb.png',
- 'technic_homedecor_glowlight_cube_white_sides.png',
- 'technic_homedecor_glowlight_cube_white_sides.png',
- 'technic_homedecor_glowlight_cube_white_sides.png',
- 'technic_homedecor_glowlight_cube_white_sides.png'
- },
- selection_box = {
- type = "fixed",
- fixed = { -0.25, -0.5, -0.25, 0.25, 0, 0.25 }
- },
- node_box = {
- type = "fixed",
- fixed = { -0.25, -0.5, -0.25, 0.25, 0, 0.25 }
- },
-
- sunlight_propagates = false,
- paramtype = "light",
- paramtype2 = "facedir",
- walkable = true,
- light_source = LIGHT_MAX-1,
- sounds = default.node_sound_wood_defaults(),
-
- groups = { snappy = 3, not_in_creative_inventory=1},
- drop="technic:homedecor_glowlight_small_cube_white",
- on_place = function(itemstack, placer, pointed_thing)
- technic_homedecor_rotate_and_place(itemstack, placer, pointed_thing)
- return itemstack
- end,
- on_construct = function(pos)
- technic.inductive_on_construct(pos, 50, "White Glowlight (small cube)")
- end,
- on_punch = function(pos, node, puncher)
- technic.inductive_on_punch_on(pos, 0, "technic:homedecor_glowlight_small_cube_white")
- end
-})
-
-technic.register_inductive_machine("technic:homedecor_glowlight_half_yellow")
-technic.register_inductive_machine("technic:homedecor_glowlight_half_white")
-technic.register_inductive_machine("technic:homedecor_glowlight_quarter_yellow")
-technic.register_inductive_machine("technic:homedecor_glowlight_quarter_white")
-technic.register_inductive_machine("technic:homedecor_glowlight_small_cube_yellow")
-technic.register_inductive_machine("technic:homedecor_glowlight_small_cube_white")
diff --git a/technic/technic/machines/MV/power_radiator.lua b/technic/technic/machines/MV/power_radiator.lua
deleted file mode 100644
index 560f8a9..0000000
--- a/technic/technic/machines/MV/power_radiator.lua
+++ /dev/null
@@ -1,220 +0,0 @@
--- The power radiator fuctions like an inductive charger
--- only better in the game setting.
--- The purpose is to allow small appliances to receive power
--- without the overhead of the wiring needed for larger machines.
---
--- The power radiator will consume power corresponding to the
--- sum(power rating of the attached appliances)/0.06
--- Using inductive power transfer is very inefficient so this is
--- set to the factor 0.06.
---
--- Punching the radiator will toggle the power state of all attached appliances.
-
-local power_radius = 12
-
-------------------------------------------------------------------
--- API for inductive powered nodes:
--- Use the functions below to set the corresponding callbacks
--- Also two nodes are needed: The inactive and the active one. The active must be called <name>_active .
-------------------------------------------------------------------
--- Register a new appliance using this function
-
-technic.inductive_nodes = {}
-technic.register_inductive_machine = function(name)
- table.insert(technic.inductive_nodes, name)
- table.insert(technic.inductive_nodes, name.."_active")
-end
-
--- Appliances:
--- has_supply: pos of supply node if the appliance has a power radiator near with sufficient power for the demand else ""
--- EU_demand: The power demand of the device.
--- EU_charge: Actual use. set to EU_demand if active==1
--- active: set to 1 if the device is on
-technic.inductive_on_construct = function(pos, eu_demand, infotext)
- local meta = minetest.get_meta(pos)
- meta:set_string("infotext", infotext)
- meta:set_int("technic_inductive_power_machine", 1)
- meta:set_int("EU_demand", eu_demand) -- The power demand of this appliance
- meta:set_int("EU_charge", 0) -- The actual power draw of this appliance
- meta:set_string("has_supply", "") -- Register whether we are powered or not. For use with several radiators.
- meta:set_int("active", 0) -- If the appliance can be turned on and off by using it use this.
-end
-
-technic.inductive_on_punch_off = function(pos, eu_charge, swapnode)
- local meta = minetest.get_meta(pos)
- if meta:get_string("has_supply") ~= "" then
- technic.swap_node(pos, swapnode)
- meta:set_int("active", 1)
- meta:set_int("EU_charge",eu_charge)
- --print("-----------")
- --print("Turn on:")
- --print("EU_charge: "..meta:get_int("EU_charge"))
- --print("has_supply: "..meta:get_string("has_supply"))
- --print("<----------->")
- end
-end
-
-technic.inductive_on_punch_on = function(pos, eu_charge, swapnode)
- local meta = minetest.get_meta(pos)
- technic.swap_node(pos, swapnode)
- meta:set_int("active", 0)
- meta:set_int("EU_charge",eu_charge)
- --print("-----------")
- --print("Turn off:")
- --print("EU_charge: "..meta:get_int("EU_charge"))
- --print("has_supply: "..meta:get_string("has_supply"))
- --print("<---------->")
-end
-
-local shutdown_inductive_appliances = function(pos)
- -- The supply radius
- local rad = power_radius
- -- If the radiator is removed. turn off all appliances in region
- -- If another radiator is near it will turn on the appliances again
- local positions = minetest.find_nodes_in_area(
- {x=pos.x-rad, y=pos.y-rad, z=pos.z-rad},
- {x=pos.x+rad, y=pos.y+rad, z=pos.z+rad},
- technic.inductive_nodes)
- for _, pos1 in pairs(positions) do
- local meta1 = minetest.get_meta(pos1)
- -- If the appliance is belonging to this node
- if meta1:get_string("has_supply") == pos.x..pos.y..pos.z then
- local nodename = minetest.get_node(pos1).name
- -- Swap the node and make sure it is off and unpowered
- if string.sub(nodename, -7) == "_active" then
- technic.swap_node(pos1, string.sub(nodename, 1, -8))
- meta1:set_int("active", 0)
- meta1:set_int("EU_charge", 0)
- end
- meta1:set_string("has_supply", "")
- end
- end
-end
-
-local toggle_on_off_inductive_appliances = function(pos, node, puncher)
- if pos == nil then return end
- -- The supply radius
- local rad = power_radius
- local positions = minetest.find_nodes_in_area(
- {x=pos.x-rad, y=pos.y-rad, z=pos.z-rad},
- {x=pos.x+rad, y=pos.y+rad, z=pos.z+rad},
- technic.inductive_nodes)
- for _, pos1 in pairs(positions) do
- local meta1 = minetest.get_meta(pos1)
- if meta1:get_string("has_supply") == pos.x..pos.y..pos.z then
- minetest.punch_node(pos1)
- end
- end
-end
-
-minetest.register_node("technic:power_radiator", {
- description = "MV Power Radiator",
- tiles = {"technic_lv_cable.png", "technic_lv_cable.png", "technic_lv_cable.png",
- "technic_lv_cable.png", "technic_lv_cable.png", "technic_lv_cable.png"},
- groups = {snappy=2, choppy=2, oddly_breakable_by_hand=2},
- sounds = default.node_sound_wood_defaults(),
- drawtype = "nodebox",
- paramtype = "light",
- is_ground_content = true,
- node_box = {
- type = "fixed",
- fixed = {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5},
- },
- on_construct = function(pos)
- local meta = minetest.get_meta(pos)
- meta:set_int("MV_EU_demand",1) -- Demand on the primary side when idle
- meta:set_int("connected_EU_demand",0) -- Potential demand of connected appliances
- meta:set_string("infotext", "MV Power Radiator")
- end,
- on_dig = function(pos, node, digger)
- shutdown_inductive_appliances(pos)
- return minetest.node_dig(pos, node, digger)
- end,
- on_punch = function(pos, node, puncher)
- toggle_on_off_inductive_appliances(pos, node, puncher)
- end
-})
-
-minetest.register_craft({
- output = 'technic:power_radiator 1',
- recipe = {
- {'technic:stainless_steel_ingot', 'technic:mv_transformer', 'technic:stainless_steel_ingot'},
- {'technic:copper_coil', 'technic:machine_casing', 'technic:copper_coil'},
- {'technic:rubber', 'technic:mv_cable0', 'technic:rubber'},
- }
-})
-
-minetest.register_abm({
- nodenames = {"technic:power_radiator"},
- interval = 1,
- chance = 1,
- action = function(pos, node, active_object_count, active_object_count_wider)
- local meta = minetest.get_meta(pos)
- local eu_input = meta:get_int("MV_EU_input")
- local eu_demand = meta:get_int("MV_EU_demand")
-
- -- Power off automatically if no longer connected to a switching station
- technic.switching_station_timeout_count(pos, "MV")
-
- if eu_input == 0 then
- -- No power
- meta:set_string("infotext", "MV Power Radiator is unpowered");
- -- meta:set_int("active", 1) -- used for setting textures someday maybe
- shutdown_inductive_appliances(pos)
- meta:set_int("connected_EU_demand", 0)
- meta:set_int("MV_EU_demand",1)
- elseif eu_input == eu_demand then
- -- Powered and ready
-
- -- The maximum EU sourcing a single radiator can provide.
- local max_charge = 30000 -- == the max EU demand of the radiator
- local connected_EU_demand = meta:get_int("connected_EU_demand")
-
- -- Efficiency factor
- local eff_factor = 0.06
- -- The supply radius
- local rad = power_radius
-
- local meta1 = nil
- local pos1 = {}
- local used_charge = 0
-
- -- Index all nodes within supply range
- local positions = minetest.find_nodes_in_area(
- {x=pos.x-rad, y=pos.y-rad, z=pos.z-rad},
- {x=pos.x+rad, y=pos.y+rad, z=pos.z+rad},
- technic.inductive_nodes)
- for _, pos1 in pairs(positions) do
- local meta1 = minetest.get_meta(pos1)
- -- If not supplied see if this node can handle it.
- if meta1:get_string("has_supply") == "" then
- -- if demand surpasses the capacity of this node, don't bother adding it.
- local app_eu_demand = math.floor(meta1:get_int("EU_demand") / eff_factor)
- if connected_EU_demand + app_eu_demand <= max_charge then
- -- We can power the appliance. Register, and spend power if it is on.
- connected_EU_demand = connected_EU_demand + app_eu_demand
-
- meta1:set_string("has_supply", pos.x..pos.y..pos.z)
- --Always 0: used_charge = math.floor(used_charge + meta1:get_int("EU_charge") / eff_factor)
- end
- elseif meta1:get_string("has_supply") == pos.x..pos.y..pos.z then
- -- The appliance has power from this node. Spend power if it is on.
- used_charge = used_charge + math.floor(meta1:get_int("EU_charge") / eff_factor)
- end
- meta:set_string("infotext", "MV Power Radiator is powered ("
- ..math.floor(used_charge / max_charge * 100)
- .."% of maximum power)");
- if used_charge == 0 then
- meta:set_int("MV_EU_demand", 1) -- Still idle
- else
- meta:set_int("MV_EU_demand", used_charge)
- end
- end
- -- Save state
- meta:set_int("connected_EU_demand", connected_EU_demand)
- end
- end,
-})
-
-technic.register_machine("MV", "technic:power_radiator", technic.receiver)
-
diff --git a/technic/technic/machines/MV/solar_array.lua b/technic/technic/machines/MV/solar_array.lua
deleted file mode 100644
index 227d8ee..0000000
--- a/technic/technic/machines/MV/solar_array.lua
+++ /dev/null
@@ -1,14 +0,0 @@
-
-minetest.register_craft({
- output = 'technic:solar_array_mv 1',
- recipe = {
- {'technic:solar_array_lv', 'technic:solar_array_lv', 'technic:solar_array_lv'},
- {'technic:carbon_steel_ingot', 'technic:mv_transformer', 'technic:carbon_steel_ingot'},
- {'', 'technic:mv_cable0', ''},
- }
-})
-
-technic.register_solar_array({tier="MV", power=30})
-
--- compatibility alias for upgrading from old versions of technic
-minetest.register_alias("technic:solar_panel_mv", "technic:solar_array_mv")
diff --git a/technic/technic/machines/MV/tool_workshop.lua b/technic/technic/machines/MV/tool_workshop.lua
deleted file mode 100644
index 318b1ec..0000000
--- a/technic/technic/machines/MV/tool_workshop.lua
+++ /dev/null
@@ -1,117 +0,0 @@
--- Tool workshop
--- This machine repairs tools.
-
-minetest.register_alias("tool_workshop", "technic:tool_workshop")
-
-local S = technic.getter
-
-minetest.register_craft({
- output = 'technic:tool_workshop',
- recipe = {
- {'group:wood', 'default:diamond', 'group:wood'},
- {'mesecons_pistons:piston_sticky_off', 'technic:machine_casing', 'technic:carbon_cloth'},
- {'default:obsidian', 'technic:mv_cable0', 'default:obsidian'},
- }
-})
-
-local workshop_demand = {5000, 3500, 2000}
-
-local workshop_formspec =
- "invsize[8,9;]"..
- "list[current_name;src;3,1;1,1;]"..
- "label[0,0;"..S("%s Tool Workshop"):format("MV").."]"..
- "list[current_name;upgrade1;1,3;1,1;]"..
- "list[current_name;upgrade2;2,3;1,1;]"..
- "label[1,4;"..S("Upgrade Slots").."]"..
- "list[current_player;main;0,5;8,4;]"..
- "listring[current_player;main]"..
- "listring[current_name;src]"..
- "listring[current_player;main]"..
- "listring[current_name;upgrade1]"..
- "listring[current_player;main]"..
- "listring[current_name;upgrade2]"..
- "listring[current_player;main]"
-
-local run = function(pos, node)
- local meta = minetest.get_meta(pos)
- local inv = meta:get_inventory()
- local eu_input = meta:get_int("MV_EU_input")
- local machine_name = S("%s Tool Workshop"):format("MV")
- local machine_node = "technic:tool_workshop"
-
- -- Setup meta data if it does not exist.
- if not eu_input then
- meta:set_int("MV_EU_demand", workshop_demand[1])
- meta:set_int("MV_EU_input", 0)
- return
- end
-
- local EU_upgrade, tube_upgrade = technic.handle_machine_upgrades(meta)
-
- local repairable = false
- local srcstack = inv:get_stack("src", 1)
- if not srcstack:is_empty() then
- local itemdef = minetest.registered_items[srcstack:get_name()]
- if itemdef and
- (not itemdef.wear_represents or
- itemdef.wear_represents == "mechanical_wear") and
- srcstack:get_wear() ~= 0 then
- repairable = true
- end
- end
- technic.handle_machine_pipeworks(pos, tube_upgrade, function (pos, x_velocity, z_velocity)
- if not repairable then
- technic.send_items(pos, x_velocity, z_velocity, "src")
- end
- end)
- if not repairable then
- meta:set_string("infotext", S("%s Idle"):format(machine_name))
- meta:set_int("MV_EU_demand", 0)
- return
- end
-
- if eu_input < workshop_demand[EU_upgrade+1] then
- meta:set_string("infotext", S("%s Unpowered"):format(machine_name))
- elseif eu_input >= workshop_demand[EU_upgrade+1] then
- meta:set_string("infotext", S("%s Active"):format(machine_name))
- srcstack:add_wear(-1000)
- inv:set_stack("src", 1, srcstack)
- end
- meta:set_int("MV_EU_demand", workshop_demand[EU_upgrade+1])
-end
-
-minetest.register_node("technic:tool_workshop", {
- description = S("%s Tool Workshop"):format("MV"),
- paramtype2 = "facedir",
- tiles = {"technic_workshop_top.png", "technic_machine_bottom.png", "technic_workshop_side.png",
- "technic_workshop_side.png", "technic_workshop_side.png", "technic_workshop_side.png"},
- groups = {snappy=2, choppy=2, oddly_breakable_by_hand=2, technic_machine=1, tubedevice=1, tubedevice_receiver=1},
- sounds = default.node_sound_wood_defaults(),
- on_construct = function(pos)
- local meta = minetest.get_meta(pos)
- meta:set_string("infotext", S("%s Tool Workshop"):format("MV"))
- meta:set_string("formspec", workshop_formspec)
- local inv = meta:get_inventory()
- inv:set_size("src", 1)
- inv:set_size("upgrade1", 1)
- inv:set_size("upgrade2", 1)
- end,
- can_dig = technic.machine_can_dig,
- allow_metadata_inventory_put = technic.machine_inventory_put,
- allow_metadata_inventory_take = technic.machine_inventory_take,
- tube = {
- can_insert = function (pos, node, stack, direction)
- return minetest.get_meta(pos):get_inventory():room_for_item("src", stack)
- end,
- insert_object = function (pos, node, stack, direction)
- return minetest.get_meta(pos):get_inventory():add_item("src", stack)
- end,
- connect_sides = {left = 1, right = 1, back = 1, top = 1, bottom = 1},
- },
- technic_run = run,
- after_place_node = pipeworks.after_place,
- after_dig_node = technic.machine_after_dig_node
-})
-
-technic.register_machine("MV", "technic:tool_workshop", technic.receiver)
-
diff --git a/technic/technic/machines/MV/wind_mill.lua b/technic/technic/machines/MV/wind_mill.lua
deleted file mode 100644
index c553051..0000000
--- a/technic/technic/machines/MV/wind_mill.lua
+++ /dev/null
@@ -1,87 +0,0 @@
-
-local S = technic.getter
-
-minetest.register_craft({
- output = 'technic:wind_mill_frame 5',
- recipe = {
- {'technic:carbon_steel_ingot', '', 'technic:carbon_steel_ingot'},
- {'', 'technic:carbon_steel_ingot', ''},
- {'technic:carbon_steel_ingot', '', 'technic:carbon_steel_ingot'},
- }
-})
-
-minetest.register_craft({
- output = 'technic:wind_mill',
- recipe = {
- {'', 'technic:motor', ''},
- {'technic:carbon_steel_ingot', 'technic:carbon_steel_block', 'technic:carbon_steel_ingot'},
- {'', 'technic:mv_cable0', ''},
- }
-})
-
-minetest.register_node("technic:wind_mill_frame", {
- description = S("Wind Mill Frame"),
- drawtype = "glasslike_framed",
- tiles = {"technic_carbon_steel_block.png", "default_glass.png"},
- sunlight_propagates = true,
- groups = {cracky=3},
- sounds = default.node_sound_stone_defaults(),
- paramtype = "light",
-})
-
-local function check_wind_mill(pos)
- if pos.y < 30 then
- return false
- end
- for i = 1, 20 do
- local node = minetest.get_node({x=pos.x, y=pos.y-i, z=pos.z})
- if node.name ~= "technic:wind_mill_frame" then
- return false
- end
- end
- return true
-end
-
-local run = function(pos, node)
- local meta = minetest.get_meta(pos)
- local machine_name = S("Wind %s Generator"):format("MV")
- local power = math.min(pos.y * 100, 5000)
-
- if not check_wind_mill(pos) then
- meta:set_int("MV_EU_supply", 0)
- meta:set_string("infotext", S("%s Improperly Placed"):format(machine_name))
- return
- else
- meta:set_int("MV_EU_supply", power)
- end
-
- meta:set_string("infotext", S("@1 (@2 EU)", machine_name, technic.prettynum(power)))
-end
-
-minetest.register_node("technic:wind_mill", {
- description = S("Wind %s Generator"):format("MV"),
- tiles = {"technic_carbon_steel_block.png"},
- paramtype2 = "facedir",
- groups = {cracky=1, technic_machine=1},
- sounds = default.node_sound_stone_defaults(),
- drawtype = "nodebox",
- paramtype = "light",
- node_box = {
- type = "fixed",
- fixed = {
- {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}, -- Main box
- {-0.1, -0.1, -0.5, 0.1, 0.1, -0.6}, -- Shaft
- {-0.1, -1, -0.6, 0.1, 1, -0.7}, -- Vertical blades
- {-1, -0.1, -0.6, 1, 0.1, -0.7}, -- Horizontal blades
- }
- },
- on_construct = function(pos)
- local meta = minetest.get_meta(pos)
- meta:set_string("infotext", S("Wind %s Generator"):format("MV"))
- meta:set_int("MV_EU_supply", 0)
- end,
- technic_run = run,
-})
-
-technic.register_machine("MV", "technic:wind_mill", technic.producer)
-
diff --git a/technic/technic/machines/init.lua b/technic/technic/machines/init.lua
deleted file mode 100644
index ad79eab..0000000
--- a/technic/technic/machines/init.lua
+++ /dev/null
@@ -1,14 +0,0 @@
-local path = technic.modpath.."/machines"
-
-dofile(path.."/register/init.lua")
-
--- Tiers
-dofile(path.."/LV/init.lua")
-dofile(path.."/MV/init.lua")
-dofile(path.."/HV/init.lua")
-
-dofile(path.."/switching_station.lua")
-dofile(path.."/supply_converter.lua")
-
-dofile(path.."/other/init.lua")
-
diff --git a/technic/technic/machines/other/anchor.lua b/technic/technic/machines/other/anchor.lua
deleted file mode 100644
index 1c15bd2..0000000
--- a/technic/technic/machines/other/anchor.lua
+++ /dev/null
@@ -1,109 +0,0 @@
-local S = technic.getter
-
-local desc = S("Administrative World Anchor")
-
-local function compute_forceload_positions(pos, meta)
- local radius = meta:get_int("radius")
- local minpos = vector.subtract(pos, vector.new(radius, radius, radius))
- local maxpos = vector.add(pos, vector.new(radius, radius, radius))
- local minbpos = {}
- local maxbpos = {}
- for _, coord in ipairs({"x","y","z"}) do
- minbpos[coord] = math.floor(minpos[coord] / 16) * 16
- maxbpos[coord] = math.floor(maxpos[coord] / 16) * 16
- end
- local flposes = {}
- for x = minbpos.x, maxbpos.x, 16 do
- for y = minbpos.y, maxbpos.y, 16 do
- for z = minbpos.z, maxbpos.z, 16 do
- table.insert(flposes, vector.new(x, y, z))
- end
- end
- end
- return flposes
-end
-
-local function currently_forceloaded_positions(meta)
- local ser = meta:get_string("forceloaded")
- return ser == "" and {} or minetest.deserialize(ser)
-end
-
-local function forceload_off(meta)
- local flposes = currently_forceloaded_positions(meta)
- meta:set_string("forceloaded", "")
- for _, p in ipairs(flposes) do
- minetest.forceload_free_block(p)
- end
-end
-
-local function forceload_on(pos, meta)
- local want_flposes = compute_forceload_positions(pos, meta)
- local have_flposes = {}
- for _, p in ipairs(want_flposes) do
- if minetest.forceload_block(p) then
- table.insert(have_flposes, p)
- end
- end
- meta:set_string("forceloaded", #have_flposes == 0 and "" or minetest.serialize(have_flposes))
-end
-
-local function set_display(pos, meta)
- meta:set_string("infotext", S(meta:get_int("enabled") ~= 0 and "%s Enabled" or "%s Disabled"):format(desc))
- meta:set_string("formspec",
- "size[5,3.5]"..
- "item_image[0,0;1,1;technic:admin_anchor]"..
- "label[1,0;"..minetest.formspec_escape(desc).."]"..
- "label[0,1;"..minetest.formspec_escape(S("Owner:").." "..meta:get_string("owner")).."]"..
- (meta:get_int("locked") == 0 and
- "button[3,1;2,1;lock;"..minetest.formspec_escape(S("Unlocked")).."]" or
- "button[3,1;2,1;unlock;"..minetest.formspec_escape(S("Locked")).."]")..
- "field[0.25,2.3;1,1;radius;"..minetest.formspec_escape(S("Radius:"))..";"..meta:get_int("radius").."]"..
- (meta:get_int("enabled") == 0 and
- "button[3,2;2,1;enable;"..minetest.formspec_escape(S("Disabled")).."]" or
- "button[3,2;2,1;disable;"..minetest.formspec_escape(S("Enabled")).."]")..
- "label[0,3;"..minetest.formspec_escape(S("Keeping %d/%d map blocks loaded"):format(#currently_forceloaded_positions(meta), #compute_forceload_positions(pos, meta))).."]")
-end
-
-minetest.register_node("technic:admin_anchor", {
- description = desc,
- drawtype = "normal",
- tiles = {"technic_admin_anchor.png"},
- is_ground_content = true,
- groups = {cracky=3, not_in_creative_inventory=1},
- sounds = default.node_sound_stone_defaults(),
- after_place_node = function (pos, placer)
- local meta = minetest.get_meta(pos)
- if placer and placer:is_player() then
- meta:set_string("owner", placer:get_player_name())
- end
- set_display(pos, meta)
- end,
- can_dig = function (pos, player)
- local meta = minetest.get_meta(pos)
- return meta:get_int("locked") == 0 or (player and player:is_player() and player:get_player_name() == meta:get_string("owner"))
- end,
- on_destruct = function (pos)
- local meta = minetest.get_meta(pos)
- forceload_off(meta)
- end,
- on_receive_fields = function (pos, formname, fields, sender)
- local meta = minetest.get_meta(pos)
- if (meta:get_int("locked") ~= 0 or fields.lock) and
- not (sender and sender:is_player() and
- sender:get_player_name() == meta:get_string("owner")) then
- return
- end
- if fields.unlock then meta:set_int("locked", 0) end
- if fields.lock then meta:set_int("locked", 1) end
- if fields.disable or fields.enable or fields.radius then
- forceload_off(meta)
- if fields.disable then meta:set_int("enabled", 0) end
- if fields.enable then meta:set_int("enabled", 1) end
- if fields.radius and string.find(fields.radius, "^[0-9]+$") and tonumber(fields.radius) < 256 then meta:set_int("radius", fields.radius) end
- if meta:get_int("enabled") ~= 0 then
- forceload_on(pos, meta)
- end
- end
- set_display(pos, meta)
- end,
-})
diff --git a/technic/technic/machines/other/coal_alloy_furnace.lua b/technic/technic/machines/other/coal_alloy_furnace.lua
deleted file mode 100644
index 58af679..0000000
--- a/technic/technic/machines/other/coal_alloy_furnace.lua
+++ /dev/null
@@ -1,177 +0,0 @@
-
--- Fuel driven alloy furnace. This uses no EUs:
-
-local S = technic.getter
-
-minetest.register_craft({
- output = 'technic:coal_alloy_furnace',
- recipe = {
- {'default:brick', 'default:brick', 'default:brick'},
- {'default:brick', '', 'default:brick'},
- {'default:brick', 'default:brick', 'default:brick'},
- }
-})
-
-local machine_name = S("Fuel-Fired Alloy Furnace")
-local formspec =
- "size[8,9]"..
- "label[0,0;"..machine_name.."]"..
- "image[2,2;1,1;default_furnace_fire_bg.png]"..
- "list[current_name;fuel;2,3;1,1;]"..
- "list[current_name;src;2,1;2,1;]"..
- "list[current_name;dst;5,1;2,2;]"..
- "list[current_player;main;0,5;8,4;]"..
- "listring[current_name;dst]"..
- "listring[current_player;main]"..
- "listring[current_name;src]"..
- "listring[current_player;main]"..
- "listring[current_name;fuel]"..
- "listring[current_player;main]"
-
-minetest.register_node("technic:coal_alloy_furnace", {
- description = machine_name,
- tiles = {"technic_coal_alloy_furnace_top.png", "technic_coal_alloy_furnace_bottom.png",
- "technic_coal_alloy_furnace_side.png", "technic_coal_alloy_furnace_side.png",
- "technic_coal_alloy_furnace_side.png", "technic_coal_alloy_furnace_front.png"},
- paramtype2 = "facedir",
- groups = {cracky=2},
- legacy_facedir_simple = true,
- sounds = default.node_sound_stone_defaults(),
- on_construct = function(pos)
- local meta = minetest.get_meta(pos)
- meta:set_string("formspec", formspec)
- meta:set_string("infotext", machine_name)
- local inv = meta:get_inventory()
- inv:set_size("fuel", 1)
- inv:set_size("src", 2)
- inv:set_size("dst", 4)
- end,
- can_dig = technic.machine_can_dig,
- allow_metadata_inventory_put = technic.machine_inventory_put,
- allow_metadata_inventory_take = technic.machine_inventory_take,
- allow_metadata_inventory_move = technic.machine_inventory_move,
-})
-
-minetest.register_node("technic:coal_alloy_furnace_active", {
- description = machine_name,
- tiles = {"technic_coal_alloy_furnace_top.png", "technic_coal_alloy_furnace_bottom.png",
- "technic_coal_alloy_furnace_side.png", "technic_coal_alloy_furnace_side.png",
- "technic_coal_alloy_furnace_side.png", "technic_coal_alloy_furnace_front_active.png"},
- paramtype2 = "facedir",
- light_source = 8,
- drop = "technic:coal_alloy_furnace",
- groups = {cracky=2, not_in_creative_inventory=1},
- legacy_facedir_simple = true,
- sounds = default.node_sound_stone_defaults(),
- can_dig = technic.machine_can_dig,
- allow_metadata_inventory_put = technic.machine_inventory_put,
- allow_metadata_inventory_take = technic.machine_inventory_take,
- allow_metadata_inventory_move = technic.machine_inventory_move,
-})
-
-minetest.register_abm({
- nodenames = {"technic:coal_alloy_furnace", "technic:coal_alloy_furnace_active"},
- interval = 1,
- chance = 1,
- action = function(pos, node, active_object_count, active_object_count_wider)
- local meta = minetest.get_meta(pos)
- local inv = meta:get_inventory()
-
- if inv:get_size("src") == 1 then -- Old furnace -> convert it
- inv:set_size("src", 2)
- inv:set_stack("src", 2, inv:get_stack("src2", 1))
- inv:set_size("src2", 0)
- end
-
- local recipe = nil
-
- for i, name in pairs({
- "fuel_totaltime",
- "fuel_time",
- "src_totaltime",
- "src_time"}) do
- if not meta:get_float(name) then
- meta:set_float(name, 0.0)
- end
- end
-
- -- Get what to cook if anything
- local result = technic.get_recipe("alloy", inv:get_list("src"))
-
- local was_active = false
-
- if meta:get_float("fuel_time") < meta:get_float("fuel_totaltime") then
- was_active = true
- meta:set_int("fuel_time", meta:get_int("fuel_time") + 1)
- if result then
- meta:set_int("src_time", meta:get_int("src_time") + 1)
- if meta:get_int("src_time") >= result.time then
- meta:set_int("src_time", 0)
- local result_stack = ItemStack(result.output)
- if inv:room_for_item("dst", result_stack) then
- inv:set_list("src", result.new_input)
- inv:add_item("dst", result_stack)
- end
- end
- else
- meta:set_int("src_time", 0)
- end
- end
-
- if meta:get_float("fuel_time") < meta:get_float("fuel_totaltime") then
- local percent = math.floor(meta:get_float("fuel_time") /
- meta:get_float("fuel_totaltime") * 100)
- meta:set_string("infotext", S("%s Active"):format(machine_name).." ("..percent.."%)")
- technic.swap_node(pos, "technic:coal_alloy_furnace_active")
- meta:set_string("formspec",
- "size[8,9]"..
- "label[0,0;"..machine_name.."]"..
- "image[2,2;1,1;default_furnace_fire_bg.png^[lowpart:"..
- (100 - percent)..":default_furnace_fire_fg.png]"..
- "list[current_name;fuel;2,3;1,1;]"..
- "list[current_name;src;2,1;2,1;]"..
- "list[current_name;dst;5,1;2,2;]"..
- "list[current_player;main;0,5;8,4;]"..
- "listring[current_name;dst]"..
- "listring[current_player;main]"..
- "listring[current_name;src]"..
- "listring[current_player;main]"..
- "listring[current_name;fuel]"..
- "listring[current_player;main]")
- return
- end
-
- local recipe = technic.get_recipe("alloy", inv:get_list("src"))
-
- if not recipe then
- if was_active then
- meta:set_string("infotext", S("%s is empty"):format(machine_name))
- technic.swap_node(pos, "technic:coal_alloy_furnace")
- meta:set_string("formspec", formspec)
- end
- return
- end
-
- -- Next take a hard look at the fuel situation
- local fuel = nil
- local afterfuel
- local fuellist = inv:get_list("fuel")
-
- if fuellist then
- fuel, afterfuel = minetest.get_craft_result({method = "fuel", width = 1, items = fuellist})
- end
-
- if fuel.time <= 0 then
- meta:set_string("infotext", S("%s Out Of Fuel"):format(machine_name))
- technic.swap_node(pos, "technic:coal_alloy_furnace")
- meta:set_string("formspec", formspec)
- return
- end
-
- meta:set_string("fuel_totaltime", fuel.time)
- meta:set_string("fuel_time", 0)
-
- inv:set_stack("fuel", 1, afterfuel.items[1])
- end,
-})
-
diff --git a/technic/technic/machines/other/coal_furnace.lua b/technic/technic/machines/other/coal_furnace.lua
deleted file mode 100644
index 53a0f8b..0000000
--- a/technic/technic/machines/other/coal_furnace.lua
+++ /dev/null
@@ -1,5 +0,0 @@
-local S = technic.getter
-
-if minetest.registered_nodes["default:furnace"].description == "Furnace" then
- minetest.override_item("default:furnace", { description = S("Fuel-Fired Furnace") })
-end
diff --git a/technic/technic/machines/other/constructor.lua b/technic/technic/machines/other/constructor.lua
deleted file mode 100644
index 3396ac7..0000000
--- a/technic/technic/machines/other/constructor.lua
+++ /dev/null
@@ -1,189 +0,0 @@
-
-local S = technic.getter
-
-local function deploy_node(inv, slot_name, pos, node, machine_node)
- if node.name ~= "air" then
- if node.name == "ignore" or
- node.name == "default:lava_source" or
- node.name == "default:lava_flowing" or
- node.name == "default:water_source" or
- node.name == "default:water_flowing" then
- return
- end
- local drops = minetest.get_node_drops(node.name, "")
- local remove_to = false
- for i, item in ipairs(drops) do
- if not inv:room_for_item(slot_name, item) then
- remove_to = i - 1
- break
- end
- inv:add_item(slot_name, item)
- end
- if remove_to then
- for i = 1, remove_to do
- inv:remove_item(drops[i])
- end
- else
- minetest.remove_node(pos)
- end
- return
- end
- if not inv:is_empty(slot_name) then
- local stack = inv:get_list(slot_name)[1]
- local def = stack:get_definition()
- if def.type == "node" then
- minetest.set_node(pos, {
- name = stack:get_name(),
- param2 = machine_node.param2
- })
- stack:take_item()
- inv:set_stack(slot_name, 1, stack)
- elseif def.type == "craft" then
- if def.on_place then
- -- Use pcall to avoid nil placer errors.
- -- TODO: Do without pcall.
- local ok, stk = pcall(def.on_place, stack, nil, {
- -- Fake pointed_thing
- type = "node",
- above = pos,
- under = {x=pos.x, y=pos.y-1, z=pos.z},
- })
- if ok then
- inv:set_stack(slot_name, 1, stk or stack)
- return
- end
- end
- minetest.item_place_object(stack, nil, {
- -- Fake pointed_thing
- type = "node",
- above = pos,
- under = pos,
- })
- inv:set_stack(slot_name, 1, nil)
- end
- end
-end
-
-minetest.register_craft({
- type = "shapeless",
- output = 'technic:constructor_mk1_off 1',
- recipe = {'technic:nodebreaker_off', 'technic:deployer_off'},
-
-})
-minetest.register_craft({
- type = "shapeless",
- output = 'technic:constructor_mk2_off 1',
- recipe = {'technic:constructor_mk1_off', 'technic:constructor_mk1_off'},
-
-})
-
-minetest.register_craft({
- type = "shapeless",
- output = 'technic:constructor_mk3_off 1',
- recipe = {'technic:constructor_mk2_off', 'technic:constructor_mk2_off'},
-
-})
-
-local function make_on(mark, length)
- return function(pos, node)
- local meta = minetest.get_meta(pos)
- local inv = meta:get_inventory()
- local dir = vector.new()
- if node.param2 == 3 then dir.x = 1 end
- if node.param2 == 2 then dir.z = 1 end
- if node.param2 == 1 then dir.x = -1 end
- if node.param2 == 0 then dir.z = -1 end
-
- local place_pos = vector.new(pos)
-
- if node.name == "technic:constructor_mk"..mark.."_off" then
- technic.swap_node(pos, "technic:constructor_mk"..mark.."_on")
- nodeupdate(pos)
- for i = 1, length do
- place_pos = vector.add(place_pos, dir)
- local place_node = minetest.get_node(place_pos)
- deploy_node(inv, "slot"..i, place_pos, place_node, node)
- end
- end
- end
-end
-
-local function make_off(mark)
- return function(pos, node)
- if node.name == "technic:constructor_mk"..mark.."_on" then
- technic.swap_node(pos,"technic:constructor_mk"..mark.."_off")
- nodeupdate(pos)
- end
- end
-end
-
-
-local function make_constructor(mark, length)
- minetest.register_node("technic:constructor_mk"..mark.."_off", {
- description = S("Constructor Mk%d"):format(mark),
- tiles = {"technic_constructor_mk"..mark.."_top_off.png",
- "technic_constructor_mk"..mark.."_bottom_off.png",
- "technic_constructor_mk"..mark.."_side2_off.png",
- "technic_constructor_mk"..mark.."_side1_off.png",
- "technic_constructor_back.png",
- "technic_constructor_front_off.png"},
- paramtype2 = "facedir",
- groups = {snappy=2, choppy=2, oddly_breakable_by_hand=2, mesecon = 2},
- mesecons = {effector = {action_on = make_on(mark, length)}},
- sounds = default.node_sound_stone_defaults(),
- on_construct = function(pos)
- local meta = minetest.get_meta(pos)
- local formspec = "size[8,9;]"..
- "label[0,0;"..S("Constructor Mk%d"):format(mark).."]"..
- "list[current_player;main;0,5;8,4;]"
- for i = 1, length do
- formspec = formspec
- .."label[5,"..(i - 1)..";"..S("Slot %d"):format(i).."]"
- .."list[current_name;slot"..i
- ..";6,"..(i - 1)..";1,1;]"
- end
- meta:set_string("formspec", formspec)
- meta:set_string("infotext", S("Constructor Mk%d"):format(mark))
- local inv = meta:get_inventory()
- for i = 1, length do
- inv:set_size("slot"..i, 1)
- end
- end,
- can_dig = function(pos, player)
- local meta = minetest.get_meta(pos)
- local inv = meta:get_inventory()
- for i = 1, length do
- if not inv:is_empty("slot"..i) then
- return false
- end
- end
- return true
- end,
- allow_metadata_inventory_put = technic.machine_inventory_put,
- allow_metadata_inventory_take = technic.machine_inventory_take,
- allow_metadata_inventory_move = technic.machine_inventory_move,
- })
-
- minetest.register_node("technic:constructor_mk"..mark.."_on", {
- tiles = {"technic_constructor_mk"..mark.."_top_on.png",
- "technic_constructor_mk"..mark.."_bottom_on.png",
- "technic_constructor_mk"..mark.."_side2_on.png",
- "technic_constructor_mk"..mark.."_side1_on.png",
- "technic_constructor_back.png",
- "technic_constructor_front_on.png"},
- paramtype2 = "facedir",
- drop = "technic:constructor_mk"..mark.."_off",
- groups = {snappy=2, choppy=2, oddly_breakable_by_hand=2,
- mesecon=2, not_in_creative_inventory=1},
- mesecons= {effector = {action_off = make_off(mark)}},
- sounds = default.node_sound_stone_defaults(),
- allow_metadata_inventory_put = technic.machine_inventory_put,
- allow_metadata_inventory_take = technic.machine_inventory_take,
- allow_metadata_inventory_move = technic.machine_inventory_move,
- })
-end
-
-make_constructor(1, 1)
-make_constructor(2, 2)
-make_constructor(3, 4)
-
diff --git a/technic/technic/machines/other/frames.lua b/technic/technic/machines/other/frames.lua
deleted file mode 100644
index b3f39b9..0000000
--- a/technic/technic/machines/other/frames.lua
+++ /dev/null
@@ -1,928 +0,0 @@
-
-local S = technic.getter
-
-frames = {}
-
-local infinite_stacks = minetest.setting_getbool("creative_mode") and minetest.get_modpath("unified_inventory") == nil
-
-local frames_pos = {}
-
--- Helpers
-
-local function get_face(pos,ppos,pvect)
- -- Raytracer to get which face has been clicked
- ppos={x=ppos.x-pos.x,y=ppos.y-pos.y+1.5,z=ppos.z-pos.z}
- if pvect.x>0 then
- local t=(-0.5-ppos.x)/pvect.x
- local y_int=ppos.y+t*pvect.y
- local z_int=ppos.z+t*pvect.z
- if y_int>-0.45 and y_int<0.45 and z_int>-0.45 and z_int<0.45 then return 1 end
- elseif pvect.x<0 then
- local t=(0.5-ppos.x)/pvect.x
- local y_int=ppos.y+t*pvect.y
- local z_int=ppos.z+t*pvect.z
- if y_int>-0.45 and y_int<0.45 and z_int>-0.45 and z_int<0.45 then return 2 end
- end
- if pvect.y>0 then
- local t=(-0.5-ppos.y)/pvect.y
- local x_int=ppos.x+t*pvect.x
- local z_int=ppos.z+t*pvect.z
- if x_int>-0.45 and x_int<0.45 and z_int>-0.45 and z_int<0.45 then return 3 end
- elseif pvect.y<0 then
- local t=(0.5-ppos.y)/pvect.y
- local x_int=ppos.x+t*pvect.x
- local z_int=ppos.z+t*pvect.z
- if x_int>-0.45 and x_int<0.45 and z_int>-0.45 and z_int<0.45 then return 4 end
- end
- if pvect.z>0 then
- local t=(-0.5-ppos.z)/pvect.z
- local x_int=ppos.x+t*pvect.x
- local y_int=ppos.y+t*pvect.y
- if x_int>-0.45 and x_int<0.45 and y_int>-0.45 and y_int<0.45 then return 5 end
- elseif pvect.z<0 then
- local t=(0.5-ppos.z)/pvect.z
- local x_int=ppos.x+t*pvect.x
- local y_int=ppos.y+t*pvect.y
- if x_int>-0.45 and x_int<0.45 and y_int>-0.45 and y_int<0.45 then return 6 end
- end
-end
-
-local function lines(str)
- local t = {}
- local function helper(line) table.insert(t, line) return "" end
- helper((str:gsub("(.-)\r?\n", helper)))
- return t
-end
-
-local function pos_to_string(pos)
- if pos.x == 0 then pos.x = 0 end -- Fix for signed 0
- if pos.y == 0 then pos.y = 0 end -- Fix for signed 0
- if pos.z == 0 then pos.z = 0 end -- Fix for signed 0
- return tostring(pos.x).."\n"..tostring(pos.y).."\n"..tostring(pos.z)
-end
-
-local function pos_from_string(str)
- local l = lines(str)
- return {x = tonumber(l[1]), y = tonumber(l[2]), z = tonumber(l[3])}
-end
-
-local function pos_in_list(l,pos)
- for _,p in ipairs(l) do
- if p.x==pos.x and p.y==pos.y and p.z==pos.z then return true end
- end
- return false
-end
-
-local function table_empty(table)
- for _, __ in pairs(table) do
- return false
- end
- return true
-end
-
-local function add_table(table,toadd)
- local i = 1
- while true do
- o = table[i]
- if o == toadd then return end
- if o == nil then break end
- i = i+1
- end
- table[i] = toadd
-end
-
-local function move_nodes_vect(poslist,vect,must_not_move,owner)
- if minetest.is_protected then
- for _,pos in ipairs(poslist) do
- local npos=vector.add(pos,vect)
- if minetest.is_protected(pos, owner) or minetest.is_protected(npos, owner) then
- return
- end
- end
- end
- for _,pos in ipairs(poslist) do
- local npos=vector.add(pos,vect)
- local name = minetest.get_node(npos).name
- if ((name~="air" and minetest.registered_nodes[name].liquidtype=="none") or frames_pos[pos_to_string(npos)]) and not(pos_in_list(poslist,npos)) then
- return
- end
- --[[if pos.x==must_not_move.x and pos.y==must_not_move.y and pos.z==must_not_move.z then
- return
- end]]
- end
- local nodelist = {}
- for _, pos in ipairs(poslist) do
- local node = minetest.get_node(pos)
- local meta = minetest.get_meta(pos):to_table()
- nodelist[#(nodelist)+1] = {oldpos = pos, pos = vector.add(pos, vect), node = node, meta = meta}
- end
- local objects = {}
- for _, pos in ipairs(poslist) do
- for _,object in ipairs(minetest.get_objects_inside_radius(pos, 1)) do
- local entity = object:get_luaentity()
- if not entity or not mesecon.is_mvps_unmov(entity.name) then
- add_table(objects, object)
- end
- end
- end
- for _, obj in ipairs(objects) do
- obj:setpos(vector.add(obj:getpos(), vect))
- end
- for _,n in ipairs(nodelist) do
- local npos = n.pos
- minetest.set_node(npos, n.node)
- local meta = minetest.get_meta(npos)
- meta:from_table(n.meta)
- for __,pos in ipairs(poslist) do
- if npos.x == pos.x and npos.y == pos.y and npos.z == pos.z then
- table.remove(poslist, __)
- break
- end
- end
- end
- for __, pos in ipairs(poslist) do
- minetest.remove_node(pos)
- end
- for _, callback in ipairs(mesecon.on_mvps_move) do
- callback(nodelist)
- end
-end
-
-local function is_supported_node(name)
- return ((string.find(name, "tube") ~= nil) and (string.find(name, "pipeworks") ~= nil))
-end
-
-
--- Frames
-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 a=8/16
-local b=7/16
-local nodeboxes= {
- { -a, -a, -a, -b, a, -b },
- { -a, -a, b, -b, a, a },
- { b, -a, b, a, a, a },
- { b, -a, -a, a, a, -b },
-
- { -b, b, -a, b, a, -b },
- { -b, -a, -a, b, -b, -b },
-
- { -b, b, b, b, a, a },
- { -b, -a, b, b, -b, a },
-
- { b, b, -b, a, a, b },
- { b, -a, -b, a, -b, b },
-
- { -a, b, -b, -b, a, b },
- { -a, -a, -b, -b, -b, b },
- }
-
- if yp==0 then
- table.insert(nodeboxes, {-b,b,-b, b,a,b})
- end
- if ym==0 then
- table.insert(nodeboxes, {-b,-a,-b, b,-b,b})
- end
- if xp==0 then
- table.insert(nodeboxes, {b,b,b,a,-b,-b})
- end
- if xm==0 then
- table.insert(nodeboxes, {-a,-b,-b,-b,b,b})
- end
- if zp==0 then
- table.insert(nodeboxes, {-b,-b,b, b,b,a})
- end
- if zm==0 then
- table.insert(nodeboxes, {-b,-b,-a, b,b,-b})
- end
-
- local nameext=tostring(xm)..tostring(xp)..tostring(ym)..tostring(yp)..tostring(zm)..tostring(zp)
- local groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2}
- if nameext~="111111" then groups.not_in_creative_inventory=1 end
-
-
- minetest.register_node("technic:frame_"..nameext,{
- description = S("Frame"),
- tiles = {"technic_frame.png"},
- groups=groups,
- drawtype = "nodebox",
- node_box = {
- type = "fixed",
- fixed=nodeboxes,
- },
- selection_box = {
- type="fixed",
- fixed={-0.5,-0.5,-0.5,0.5,0.5,0.5}
- },
- paramtype = "light",
- frame=1,
- drop="technic:frame_111111",
- sunlight_propagates = true,
- frame_connect_all=function(nodename)
- l2={}
- l1={{x=-1,y=0,z=0},{x=1,y=0,z=0},{x=0,y=-1,z=0},{x=0,y=1,z=0},{x=0,y=0,z=-1},{x=0,y=0,z=1}}
- for i,dir in ipairs(l1) do
- if string.sub(nodename,-7+i,-7+i)=="1" then
- l2[#(l2)+1]=dir
- end
- end
- return l2
- end,
- on_punch=function(pos,node,puncher)
- local ppos=puncher:getpos()
- local pvect=puncher:get_look_dir()
- local pface=get_face(pos,ppos,pvect)
- if pface==nil then return end
- local nodename=node.name
- local newstate=tostring(1-tonumber(string.sub(nodename,-7+pface,-7+pface)))
- if pface<=5 then
- nodename=string.sub(nodename,1,-7+pface-1)..newstate..string.sub(nodename,-7+pface+1)
- else
- nodename=string.sub(nodename,1,-2)..newstate
- end
- node.name=nodename
- minetest.set_node(pos,node)
- end,
- on_place = function(itemstack, placer, pointed_thing)
- local pos = pointed_thing.above
- if minetest.is_protected(pos, placer:get_player_name()) then
- minetest.log("action", placer:get_player_name()
- .. " tried to place " .. itemstack:get_name()
- .. " at protected position "
- .. minetest.pos_to_string(pos))
- minetest.record_protection_violation(pos, placer:get_player_name())
- return itemstack
- end
- if pos == nil then return end
- local node = minetest.get_node(pos)
- if node.name ~= "air" then
- if is_supported_node(node.name) then
- obj = minetest.add_entity(pos, "technic:frame_entity")
- obj:get_luaentity():set_node({name=itemstack:get_name()})
- end
- else
- minetest.set_node(pos, {name = itemstack:get_name()})
- end
- if not infinite_stacks then
- itemstack:take_item()
- end
- return itemstack
- end,
- on_rightclick = function(pos, node, placer, itemstack, pointed_thing)
- if is_supported_node(itemstack:get_name()) then
- if minetest.is_protected(pos, placer:get_player_name()) then
- minetest.log("action", placer:get_player_name()
- .. " tried to place " .. itemstack:get_name()
- .. " at protected position "
- .. minetest.pos_to_string(pos))
- minetest.record_protection_violation(pos, placer:get_player_name())
- return itemstack
- end
-
- minetest.set_node(pos, {name = itemstack:get_name()})
-
- local take_item = true
- local def = minetest.registered_items[itemstack:get_name()]
- -- Run callback
- if def.after_place_node then
- -- Copy place_to because callback can modify it
- local pos_copy = {x=pos.x, y=pos.y, z=pos.z}
- if def.after_place_node(pos_copy, placer, itemstack) then
- take_item = false
- end
- end
-
- -- Run script hook
- local _, callback
- for _, callback in ipairs(minetest.registered_on_placenodes) do
- -- Copy pos and node because callback can modify them
- local pos_copy = {x=pos.x, y=pos.y, z=pos.z}
- local newnode_copy = {name=def.name, param1=0, param2=0}
- local oldnode_copy = {name="air", param1=0, param2=0}
- if callback(pos_copy, newnode_copy, placer, oldnode_copy, itemstack) then
- take_item = false
- end
- end
-
- if take_item then
- itemstack:take_item()
- end
-
- obj = minetest.add_entity(pos, "technic:frame_entity")
- obj:get_luaentity():set_node({name=node.name})
-
- return itemstack
- else
- --local pointed_thing = {type = "node", under = pos}
- if pointed_thing then
- minetest.item_place_node(itemstack, placer, pointed_thing)
- end
- end
- end,
- })
-
-end
-end
-end
-end
-end
-end
-
-minetest.register_entity("technic:frame_entity", {
- initial_properties = {
- physical = true,
- collisionbox = {-0.5,-0.5,-0.5, 0.5,0.5,0.5},
- visual = "wielditem",
- textures = {},
- visual_size = {x=0.667, y=0.667},
- },
-
- node = {},
-
- set_node = function(self, node)
- self.node = node
- local pos = self.object:getpos()
- pos = {x = math.floor(pos.x+0.5), y = math.floor(pos.y+0.5), z = math.floor(pos.z+0.5)}
- frames_pos[pos_to_string(pos)] = node.name
- local stack = ItemStack(node.name)
- 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,
- textures = {node.name},
- }
- self.object:set_properties(prop)
- end,
-
- get_staticdata = function(self)
- return self.node.name
- end,
-
- on_activate = function(self, staticdata)
- self.object:set_armor_groups({immortal=1})
- self:set_node({name=staticdata})
- end,
-
- dig = function(self)
- minetest.handle_node_drops(self.object:getpos(), {ItemStack("technic:frame_111111")}, self.last_puncher)
- local pos = self.object:getpos()
- pos = {x = math.floor(pos.x+0.5), y = math.floor(pos.y+0.5), z = math.floor(pos.z+0.5)}
- frames_pos[pos_to_string(pos)] = nil
- self.object:remove()
- end,
-
- on_punch = function(self, puncher, time_from_last_punch, tool_capabilities, dir)
- local pos = self.object:getpos()
- if self.damage_object == nil then
- self.damage_object = minetest.add_entity(pos, "technic:damage_entity")
- self.damage_object:get_luaentity().remaining_time = 0.25
- self.damage_object:get_luaentity().frame_object = self
- self.damage_object:get_luaentity().texture_index = 0
- self.damage_object:get_luaentity().texture_change_time = 0.15
- else
- self.damage_object:get_luaentity().remaining_time = 0.25
- end
- self.last_puncher = puncher
- local ppos = puncher:getpos()
- local pvect = puncher:get_look_dir()
- local pface = get_face(pos,ppos,pvect)
- if pface == nil then return end
- local nodename = self.node.name
- local newstate = tostring(1-tonumber(string.sub(nodename, -7+pface, -7+pface)))
- if pface <= 5 then
- nodename = string.sub(nodename, 1, -7+pface-1)..newstate..string.sub(nodename, -7+pface+1)
- else
- nodename = string.sub(nodename, 1, -2)..newstate
- end
- self.node.name = nodename
- self:set_node(self.node)
- end,
-
- on_rightclick = function(self, clicker)
- local pos = self.object:getpos()
- local ppos = clicker:getpos()
- local pvect = clicker:get_look_dir()
- local pface = get_face(pos, ppos, pvect)
- if pface == nil then return end
- local pos_under = {x = math.floor(pos.x+0.5), y = math.floor(pos.y+0.5), z = math.floor(pos.z+0.5)}
- local pos_above = {x = pos_under.x, y = pos_under.y, z = pos_under.z}
- local index = ({"x", "y", "z"})[math.floor((pface+1)/2)]
- pos_above[index] = pos_above[index] + 2*((pface+1)%2) - 1
- local pointed_thing = {type = "node", under = pos_under, above = pos_above}
- local itemstack = clicker:get_wielded_item()
- local itemdef = minetest.registered_items[itemstack:get_name()]
- if itemdef ~= nil then
- itemdef.on_place(itemstack, clicker, pointed_thing)
- end
- end,
-})
-
-local crack = "crack_anylength.png^[verticalframe:5:0"
-minetest.register_entity("technic:damage_entity", {
- initial_properties = {
- visual = "cube",
- visual_size = {x=1.01, y=1.01},
- textures = {crack, crack, crack, crack, crack, crack},
- collisionbox = {0, 0, 0, 0, 0, 0},
- physical = false,
- },
- on_step = function(self, dtime)
- if self.remaining_time == nil then
- self.object:remove()
- self.frame_object.damage_object = nil
- end
- self.remaining_time = self.remaining_time - dtime
- if self.remaining_time < 0 then
- self.object:remove()
- self.frame_object.damage_object = nil
- end
- self.texture_change_time = self.texture_change_time - dtime
- if self.texture_change_time < 0 then
- self.texture_change_time = self.texture_change_time + 0.15
- self.texture_index = self.texture_index + 1
- if self.texture_index == 5 then
- self.object:remove()
- self.frame_object.damage_object = nil
- self.frame_object:dig()
- end
- local ct = "crack_anylength.png^[verticalframe:5:"..self.texture_index
- self.object:set_properties({textures = {ct, ct, ct, ct, ct, ct}})
- end
- end,
-})
-
-mesecon.register_mvps_unmov("technic:frame_entity")
-mesecon.register_mvps_unmov("technic:damage_entity")
-mesecon.register_on_mvps_move(function(moved_nodes)
- local to_move = {}
- for _, n in ipairs(moved_nodes) do
- if frames_pos[pos_to_string(n.oldpos)] ~= nil then
- to_move[#to_move+1] = {pos = n.pos, oldpos = n.oldpos, name = frames_pos[pos_to_string(n.oldpos)]}
- frames_pos[pos_to_string(n.oldpos)] = nil
- end
- end
- if #to_move > 0 then
- for _, t in ipairs(to_move) do
- frames_pos[pos_to_string(t.pos)] = t.name
- local objects = minetest.get_objects_inside_radius(t.oldpos, 0.1)
- for _, obj in ipairs(objects) do
- local entity = obj:get_luaentity()
- if entity and (entity.name == "technic:frame_entity" or entity.name == "technic:damage_entity") then
- obj:setpos(t.pos)
- end
- end
- end
- end
-end)
-
-minetest.register_on_dignode(function(pos, node)
- if frames_pos[pos_to_string(pos)] ~= nil then
- minetest.set_node(pos, {name = frames_pos[pos_to_string(pos)]})
- frames_pos[pos_to_string(pos)] = nil
- local objects = minetest.get_objects_inside_radius(pos, 0.1)
- for _, obj in ipairs(objects) do
- local entity = obj:get_luaentity()
- if entity and (entity.name == "technic:frame_entity" or entity.name == "technic:damage_entity") then
- obj:remove()
- end
- end
- end
-end)
-
--- Frame motor
-local function connected(pos,c,adj)
- for _,vect in ipairs(adj) do
- local pos1=vector.add(pos,vect)
- local nodename=minetest.get_node(pos1).name
- if frames_pos[pos_to_string(pos1)] then
- nodename = frames_pos[pos_to_string(pos1)]
- end
- if not(pos_in_list(c,pos1)) and nodename~="air" and
- (minetest.registered_nodes[nodename].frames_can_connect==nil or
- minetest.registered_nodes[nodename].frames_can_connect(pos1,vect)) then
- c[#(c)+1]=pos1
- if minetest.registered_nodes[nodename].frame==1 then
- local adj=minetest.registered_nodes[nodename].frame_connect_all(nodename)
- connected(pos1,c,adj)
- end
- end
- end
-end
-
-local function get_connected_nodes(pos)
- c={pos}
- local nodename=minetest.get_node(pos).name
- if frames_pos[pos_to_string(pos)] then
- nodename = frames_pos[pos_to_string(pos)]
- end
- connected(pos,c,minetest.registered_nodes[nodename].frame_connect_all(nodename))
- return c
-end
-
-local function frame_motor_on(pos, node)
- local dirs = {{x=0,y=1,z=0},{x=0,y=0,z=1},{x=0,y=0,z=-1},{x=1,y=0,z=0},{x=-1,y=0,z=0},{x=0,y=-1,z=0}}
- local nnodepos = vector.add(pos, dirs[math.floor(node.param2/4)+1])
- local dir = minetest.facedir_to_dir(node.param2)
- local nnode=minetest.get_node(nnodepos)
- if frames_pos[pos_to_string(nnodepos)] then
- nnode.name = frames_pos[pos_to_string(nnodepos)]
- end
- local meta = minetest.get_meta(pos)
- if meta:get_int("last_moved") == minetest.get_gametime() then
- return
- end
- local owner = meta:get_string("owner")
- if minetest.registered_nodes[nnode.name].frame==1 then
- local connected_nodes=get_connected_nodes(nnodepos)
- move_nodes_vect(connected_nodes,dir,pos,owner)
- end
- minetest.get_meta(vector.add(pos, dir)):set_int("last_moved", minetest.get_gametime())
-end
-
-minetest.register_node("technic:frame_motor",{
- description = S("Frame Motor"),
- tiles = {"pipeworks_filter_top.png^[transformR90", "technic_lv_cable.png", "technic_lv_cable.png",
- "technic_lv_cable.png", "technic_lv_cable.png", "technic_lv_cable.png"},
- groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2,mesecon=2},
- paramtype2 = "facedir",
- mesecons={effector={action_on=frame_motor_on}},
- after_place_node = function(pos, placer, itemstack)
- local meta = minetest.get_meta(pos)
- meta:set_string("owner", placer:get_player_name())
- end,
- frames_can_connect=function(pos,dir)
- local node = minetest.get_node(pos)
- local dir2 = ({{x=0,y=1,z=0},{x=0,y=0,z=1},{x=0,y=0,z=-1},{x=1,y=0,z=0},{x=-1,y=0,z=0},{x=0,y=-1,z=0}})[math.floor(node.param2/4)+1]
- return dir2.x~=-dir.x or dir2.y~=-dir.y or dir2.z~=-dir.z
- end
-})
-
-
-
--- Templates
-local function template_connected(pos,c,connectors)
- for _,vect in ipairs({{x=0,y=1,z=0},{x=0,y=0,z=1},{x=0,y=0,z=-1},{x=1,y=0,z=0},{x=-1,y=0,z=0},{x=0,y=-1,z=0}}) do
- local pos1=vector.add(pos,vect)
- local nodename=minetest.get_node(pos1).name
- if not(pos_in_list(c,pos1)) and (nodename=="technic:template" or nodename == "technic:template_connector")then
- local meta = minetest.get_meta(pos1)
- if meta:get_string("connected") == "" then
- c[#(c)+1]=pos1
- template_connected(pos1,c,connectors)
- if nodename == "technic:template_connector" then
- connectors[#connectors+1] = pos1
- end
- end
- end
- end
-end
-
-local function get_templates(pos)
- local c = {pos}
- local connectors
- if minetest.get_node(pos).name == "technic:template_connector" then
- connectors = {pos}
- else
- connectors = {}
- end
- template_connected(pos,c,connectors)
- return c, connectors
-end
-
-local function swap_template(pos, new)
- local meta = minetest.get_meta(pos)
- local saved_node = meta:get_string("saved_node")
- meta:set_string("saved_node", "")
- technic.swap_node(pos, new)
- local meta = minetest.get_meta(pos)
- meta:set_string("saved_node", saved_node)
-end
-
-local function save_node(pos)
- local node = minetest.get_node(pos)
- if node.name == "air" then
- minetest.set_node(pos, {name="technic:template"})
- return
- end
- if node.name == "technic:template" then
- swap_template(pos, "technic:template_connector")
- local meta = minetest.get_meta(pos)
- meta:set_string("connected", "")
- return
- end
- local meta = minetest.get_meta(pos)
- local meta0 = meta:to_table()
- for _, list in pairs(meta0.inventory) do
- for key, stack in pairs(list) do
- list[key] = stack:to_string()
- end
- end
- node.meta = meta0
- minetest.set_node(pos, {name="technic:template"})
- return node
-end
-
-local function restore_node(pos, node)
- minetest.set_node(pos, node)
- local meta = minetest.get_meta(pos)
- for _, list in pairs(node.meta.inventory) do
- for key, stack in pairs(list) do
- list[key] = ItemStack(stack)
- end
- end
- meta:from_table(node.meta)
-end
-
-local function expand_template(pos)
- local meta = minetest.get_meta(pos)
- local c = meta:get_string("connected")
- if c == "" then return end
- c = minetest.deserialize(c)
- for _, vect in ipairs(c) do
- local pos1 = vector.add(pos, vect)
- local saved_node = save_node(pos1)
- local meta1 = minetest.get_meta(pos1)
- if saved_node ~= nil then
- meta1:set_string("saved_node", minetest.serialize(saved_node))
- else
- --meta1:set_string("saved_node", "")
- end
- end
-end
-
-local function compress_templates(pos)
- local templates, connectors = get_templates(pos)
- if #connectors == 0 then
- connectors = {pos}
- end
- for _, cn in ipairs(connectors) do
- local meta = minetest.get_meta(cn)
- local c = {}
- for _,p in ipairs(templates) do
- local np = vector.subtract(p, cn)
- if not pos_in_list(c,np) then
- c[#c+1] = np
- end
- end
- local cc = {}
- for _,p in ipairs(connectors) do
- local np = vector.subtract(p, cn)
- if (np.x ~= 0 or np.y ~= 0 or np.z ~= 0) then
- cc[pos_to_string(np)] = true
- end
- end
- swap_template(cn, "technic:template")
- meta:set_string("connected", minetest.serialize(c))
- meta:set_string("connectors_connected", minetest.serialize(cc))
- end
-
- for _,p in ipairs(templates) do
- if not pos_in_list(connectors, p) then
- minetest.set_node(p, {name = "air"})
- end
- end
-end
-
-local function template_drops(pos, node, oldmeta, digger)
- local c = oldmeta.fields.connected
- local cc = oldmeta.fields.connectors_connected
- local drops
- if c == "" or c == nil then
- drops = {"technic:template 1"}
- else
- if cc == "" or cc == nil then
- drops = {"technic:template 1"}
- else
- local dcc = minetest.deserialize(cc)
- if not table_empty(dcc) then
- drops = {}
- for sp, _ in pairs(dcc) do
- local ssp = pos_from_string(sp)
- local p = vector.add(ssp, pos)
- local meta = minetest.get_meta(p)
- local d = minetest.deserialize(meta:get_string("connectors_connected"))
- if d ~= nil then
- d[pos_to_string({x=-ssp.x, y=-ssp.y, z=-ssp.z})] = nil
- meta:set_string("connectors_connected", minetest.serialize(d))
- end
- end
- else
- local stack_max = 99
- local num = #(minetest.deserialize(c))
- drops = {}
- while num > stack_max do
- drops[#drops+1] = "technic:template "..stack_max
- num = num - stack_max
- end
- drops[#drops+1] = "technic:template "..num
- end
- end
- end
- minetest.handle_node_drops(pos, drops, digger)
-end
-
-local function template_on_destruct(pos, node)
- local meta = minetest.get_meta(pos)
- local saved_node = meta:get_string("saved_node")
- if saved_node ~= "" then
- local nnode = minetest.deserialize(saved_node)
- minetest.after(0, restore_node, pos, nnode)
- end
-end
-
-minetest.register_node("technic:template",{
- description = S("Template"),
- tiles = {"technic_mv_cable.png"},
- drop = "",
- groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2},
- on_destruct = template_on_destruct,
- after_dig_node = template_drops,
- on_punch = function(pos,node,puncher)
- swap_template(pos, "technic:template_disabled")
- end
-})
-
-minetest.register_node("technic:template_disabled",{
- description = S("Template"),
- tiles = {"technic_hv_cable.png"},
- drop = "",
- groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2,not_in_creative_inventory=1},
- on_destruct = template_on_destruct,
- after_dig_node = template_drops,
- on_punch = function(pos,node,puncher)
- local meta = minetest.get_meta(pos)
- swap_template(pos, "technic:template_connector")
- end
-})
-
-minetest.register_node("technic:template_connector",{
- description = S("Template"),
- tiles = {"technic_lv_cable.png"},
- drop = "",
- groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2,not_in_creative_inventory=1},
- on_destruct = template_on_destruct,
- after_dig_node = template_drops,
- on_punch = function(pos,node,puncher)
- swap_template(pos, "technic:template")
- end
-})
-
-minetest.register_craftitem("technic:template_replacer",{
- description = S("Template (replacing)"),
- inventory_image = "technic_template_replacer.png",
- on_place = function(itemstack, placer, pointed_thing)
- local p = pointed_thing.under
- if minetest.is_protected and minetest.is_protected(p, placer:get_player_name()) then
- return nil
- end
- local node = minetest.get_node(p)
- if node.name == "technic:template" then return end
- local saved_node = save_node(p)
- itemstack:take_item()
- if saved_node ~= nil then
- local meta = minetest.get_meta(p)
- meta:set_string("saved_node", minetest.serialize(saved_node))
- end
- return itemstack
- end
-})
-
-minetest.register_tool("technic:template_tool",{
- description = S("Template Tool"),
- inventory_image = "technic_template_tool.png",
- on_use = function(itemstack, puncher, pointed_thing)
- local pos = pointed_thing.under
- if pos == nil or (minetest.is_protected and minetest.is_protected(pos, puncher:get_player_name())) then
- return nil
- end
- local node = minetest.get_node(pos)
- if node.name ~= "technic:template" and node.name ~= "technic:template_connector" then return end
- local meta = minetest.get_meta(pos)
- local c2 = meta:get_string("connected")
- if c2 ~= "" then
- expand_template(pos)
- else
- compress_templates(pos)
- end
-
- end
-})
-
-
-
--- Template motor
-local function get_template_nodes(pos)
- local meta = minetest.get_meta(pos)
- local connected = meta:get_string("connected")
- if connected == "" then return {} end
- local adj = minetest.deserialize(connected)
- local c = {}
- for _,vect in ipairs(adj) do
- local pos1=vector.add(pos,vect)
- local nodename=minetest.get_node(pos1).name
- if not(pos_in_list(c,pos1)) and nodename~="air" then
- c[#(c)+1]=pos1
- end
- end
- return c
-end
-
-local function template_motor_on(pos, node)
- local dirs = {{x=0,y=1,z=0},{x=0,y=0,z=1},{x=0,y=0,z=-1},{x=1,y=0,z=0},{x=-1,y=0,z=0},{x=0,y=-1,z=0}}
- local nnodepos = vector.add(pos, dirs[math.floor(node.param2/4)+1])
- local dir = minetest.facedir_to_dir(node.param2)
- local nnode=minetest.get_node(nnodepos)
- local meta = minetest.get_meta(pos)
- if meta:get_int("last_moved") == minetest.get_gametime() then
- return
- end
- local owner = meta:get_string("owner")
- if nnode.name == "technic:template" then
- local connected_nodes=get_template_nodes(nnodepos)
- move_nodes_vect(connected_nodes,dir,pos,owner)
- end
- minetest.get_meta(vector.add(pos, dir)):set_int("last_moved", minetest.get_gametime())
-end
-
-minetest.register_node("technic:template_motor",{
- description = S("Template Motor"),
- tiles = {"pipeworks_filter_top.png^[transformR90", "technic_lv_cable.png", "technic_lv_cable.png",
- "technic_lv_cable.png", "technic_lv_cable.png", "technic_lv_cable.png"},
- groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2,mesecon=2},
- paramtype2 = "facedir",
- mesecons={effector={action_on=template_motor_on}},
- after_place_node = function(pos, placer, itemstack)
- local meta = minetest.get_meta(pos)
- meta:set_string("owner", placer:get_player_name())
- end,
-})
-
--- Crafts
-minetest.register_craft({
- output = 'technic:frame_111111',
- recipe = {
- {'', 'default:stick', ''},
- {'default:stick', 'technic:brass_ingot', 'default:stick'},
- {'', 'default:stick', ''},
- }
-})
-
-minetest.register_craft({
- output = 'technic:frame_motor',
- recipe = {
- {'', 'technic:frame_111111', ''},
- {'group:mesecon_conductor_craftable', 'technic:motor', 'group:mesecon_conductor_craftable'},
- {'', 'technic:frame_111111', ''},
- }
-})
-
-minetest.register_craft({
- output = 'technic:template 10',
- recipe = {
- {'', 'technic:brass_ingot', ''},
- {'technic:brass_ingot', 'default:mese_crystal', 'technic:brass_ingot'},
- {'', 'technic:brass_ingot', ''},
- }
-})
-
-minetest.register_craft({
- output = 'technic:template_replacer',
- recipe = {{'technic:template'}}
-})
-
-minetest.register_craft({
- output = 'technic:template',
- recipe = {{'technic:template_replacer'}}
-})
-
-minetest.register_craft({
- output = 'technic:template_motor',
- recipe = {
- {'', 'technic:template', ''},
- {'group:mesecon_conductor_craftable', 'technic:motor', 'group:mesecon_conductor_craftable'},
- {'', 'technic:template', ''},
- }
-})
-
-minetest.register_craft({
- output = 'technic:template_tool',
- recipe = {
- {'', 'technic:template', ''},
- {'default:mese_crystal', 'default:stick', 'default:mese_crystal'},
- {'', 'default:stick', ''},
- }
-})
diff --git a/technic/technic/machines/other/init.lua b/technic/technic/machines/other/init.lua
deleted file mode 100644
index f4a82f0..0000000
--- a/technic/technic/machines/other/init.lua
+++ /dev/null
@@ -1,15 +0,0 @@
-local path = technic.modpath.."/machines/other"
-
--- mesecons and tubes related
-dofile(path.."/injector.lua")
-dofile(path.."/constructor.lua")
-
-if technic.config:get_bool("enable_frames") and minetest.get_modpath("mesecons_mvps") ~= nil then
- dofile(path.."/frames.lua")
-end
-
--- Coal-powered machines
-dofile(path.."/coal_alloy_furnace.lua")
-dofile(path.."/coal_furnace.lua")
-
-dofile(path.."/anchor.lua")
diff --git a/technic/technic/machines/other/injector.lua b/technic/technic/machines/other/injector.lua
deleted file mode 100644
index ec8966c..0000000
--- a/technic/technic/machines/other/injector.lua
+++ /dev/null
@@ -1,118 +0,0 @@
-
-local S = technic.getter
-
-local function inject_items (pos)
- local meta=minetest.get_meta(pos)
- local inv = meta:get_inventory()
- local mode=meta:get_string("mode")
- if mode=="single items" then
- local i=0
- for _,stack in ipairs(inv:get_list("main")) do
- i=i+1
- if stack then
- local item0=stack:to_table()
- if item0 then
- item0["count"] = "1"
- technic.tube_inject_item(pos, pos, vector.new(0, -1, 0), item0)
- stack:take_item(1)
- inv:set_stack("main", i, stack)
- return
- end
- end
- end
- end
- if mode=="whole stacks" then
- local i=0
- for _,stack in ipairs(inv:get_list("main")) do
- i=i+1
- if stack then
- local item0=stack:to_table()
- if item0 then
- technic.tube_inject_item(pos, pos, vector.new(0, -1, 0), item0)
- stack:clear()
- inv:set_stack("main", i, stack)
- return
- end
- end
- end
- end
-
-end
-
-minetest.register_craft({
- output = 'technic:injector 1',
- recipe = {
- {'', 'technic:control_logic_unit',''},
- {'', 'default:chest',''},
- {'', 'pipeworks:tube_1',''},
- }
-})
-
-local function set_injector_formspec(meta)
- local is_stack = meta:get_string("mode") == "whole stacks"
- meta:set_string("formspec",
- "invsize[8,9;]"..
- "item_image[0,0;1,1;technic:injector]"..
- "label[1,0;"..S("Self-Contained Injector").."]"..
- (is_stack and
- "button[0,1;2,1;mode_item;"..S("Stackwise").."]" or
- "button[0,1;2,1;mode_stack;"..S("Itemwise").."]")..
- "list[current_name;main;0,2;8,2;]"..
- "list[current_player;main;0,5;8,4;]"..
- "listring[]")
-end
-
-minetest.register_node("technic:injector", {
- description = S("Self-Contained Injector"),
- tiles = {"technic_injector_top.png", "technic_injector_bottom.png", "technic_injector_side.png",
- "technic_injector_side.png", "technic_injector_side.png", "technic_injector_side.png"},
- groups = {snappy=2, choppy=2, oddly_breakable_by_hand=2, tubedevice=1, tubedevice_receiver=1},
- tube = {
- can_insert = function(pos, node, stack, direction)
- return minetest.get_meta(pos):get_inventory():room_for_item("main",stack)
- end,
- insert_object = function(pos, node, stack, direction)
- return minetest.get_meta(pos):get_inventory():add_item("main",stack)
- end,
- connect_sides = {left=1, right=1, front=1, back=1, top=1, bottom=1},
- },
- sounds = default.node_sound_wood_defaults(),
- on_construct = function(pos)
- local meta = minetest.get_meta(pos)
- meta:set_string("infotext", S("Self-Contained Injector"))
- local inv = meta:get_inventory()
- inv:set_size("main", 8*4)
- meta:set_string("mode","single items")
- set_injector_formspec(meta)
- end,
- can_dig = function(pos,player)
- local meta = minetest.get_meta(pos);
- local inv = meta:get_inventory()
- return inv:is_empty("main")
- end,
- on_receive_fields = function(pos, formanme, fields, sender)
- local meta = minetest.get_meta(pos)
- if fields.mode_item then meta:set_string("mode", "single items") end
- if fields.mode_stack then meta:set_string("mode", "whole stacks") end
- set_injector_formspec(meta)
- end,
- allow_metadata_inventory_put = technic.machine_inventory_put,
- allow_metadata_inventory_take = technic.machine_inventory_take,
- allow_metadata_inventory_move = technic.machine_inventory_move,
- after_place_node = pipeworks.after_place,
- after_dig_node = pipeworks.after_dig
-})
-
-minetest.register_abm({
- nodenames = {"technic:injector"},
- interval = 1,
- chance = 1,
- action = function(pos, node, active_object_count, active_object_count_wider)
- local pos1 = vector.add(pos, vector.new(0, -1, 0))
- local node1 = minetest.get_node(pos1)
- if minetest.get_item_group(node1.name, "tubedevice") > 0 then
- inject_items(pos)
- end
- end,
-})
-
diff --git a/technic/technic/machines/register/alloy_furnace.lua b/technic/technic/machines/register/alloy_furnace.lua
deleted file mode 100644
index 879e528..0000000
--- a/technic/technic/machines/register/alloy_furnace.lua
+++ /dev/null
@@ -1,10 +0,0 @@
-
-local S = technic.getter
-
-function technic.register_alloy_furnace(data)
- data.typename = "alloy"
- data.machine_name = "alloy_furnace"
- data.machine_desc = S("%s Alloy Furnace")
- technic.register_base_machine(data)
-end
-
diff --git a/technic/technic/machines/register/alloy_recipes.lua b/technic/technic/machines/register/alloy_recipes.lua
deleted file mode 100644
index bd09bd6..0000000
--- a/technic/technic/machines/register/alloy_recipes.lua
+++ /dev/null
@@ -1,35 +0,0 @@
-
-local S = technic.getter
-
-technic.register_recipe_type("alloy", {
- description = S("Alloying"),
- input_size = 2,
-})
-
-function technic.register_alloy_recipe(data)
- data.time = data.time or 6
- technic.register_recipe("alloy", data)
-end
-
-local recipes = {
- {"technic:copper_dust 3", "technic:tin_dust", "technic:bronze_dust 4"},
- {"default:copper_ingot 3", "moreores:tin_ingot", "default:bronze_ingot 4"},
- {"technic:wrought_iron_dust", "technic:coal_dust", "technic:carbon_steel_dust", 3},
- {"technic:wrought_iron_ingot", "technic:coal_dust", "technic:carbon_steel_ingot", 3},
- {"technic:carbon_steel_dust", "technic:coal_dust", "technic:cast_iron_dust", 3},
- {"technic:carbon_steel_ingot", "technic:coal_dust", "technic:cast_iron_ingot", 3},
- {"technic:carbon_steel_dust 3", "technic:chromium_dust", "technic:stainless_steel_dust 4"},
- {"technic:carbon_steel_ingot 3", "technic:chromium_ingot", "technic:stainless_steel_ingot 4"},
- {"technic:copper_dust 2", "technic:zinc_dust", "technic:brass_dust 3"},
- {"default:copper_ingot 2", "technic:zinc_ingot", "technic:brass_ingot 3"},
- {"default:sand 2", "technic:coal_dust 2", "technic:silicon_wafer"},
- {"technic:silicon_wafer", "technic:gold_dust", "technic:doped_silicon_wafer"},
- -- from https://en.wikipedia.org/wiki/Carbon_black
- -- The highest volume use of carbon black is as a reinforcing filler in rubber products, especially tires.
- -- "[Compounding a] pure gum vulcanizate … with 50% of its weight of carbon black improves its tensile strength and wear resistance …"
- {"technic:raw_latex 4", "technic:coal_dust 2", "technic:rubber 6", 2},
-}
-
-for _, data in pairs(recipes) do
- technic.register_alloy_recipe({input = {data[1], data[2]}, output = data[3], time = data[4]})
-end
diff --git a/technic/technic/machines/register/battery_box.lua b/technic/technic/machines/register/battery_box.lua
deleted file mode 100644
index 82edca0..0000000
--- a/technic/technic/machines/register/battery_box.lua
+++ /dev/null
@@ -1,291 +0,0 @@
-
-local S = technic.getter
-
-technic.register_power_tool("technic:battery", 10000)
-technic.register_power_tool("technic:red_energy_crystal", 50000)
-technic.register_power_tool("technic:green_energy_crystal", 150000)
-technic.register_power_tool("technic:blue_energy_crystal", 450000)
-
-minetest.register_craft({
- output = 'technic:battery',
- recipe = {
- {'group:wood', 'default:copper_ingot', 'group:wood'},
- {'group:wood', 'moreores:tin_ingot', 'group:wood'},
- {'group:wood', 'default:copper_ingot', 'group:wood'},
- }
-})
-
-minetest.register_tool("technic:battery", {
- description = S("RE Battery"),
- inventory_image = "technic_battery.png",
- wear_represents = "technic_RE_charge",
- on_refill = technic.refill_RE_charge,
- tool_capabilities = {
- charge = 0,
- max_drop_level = 0,
- groupcaps = {
- fleshy = {times={}, uses=10000, maxlevel=0}
- }
- }
-})
-
-local tube = {
- insert_object = function(pos, node, stack, direction)
- if direction.y == 0 then
- return stack
- end
- local meta = minetest.get_meta(pos)
- local inv = meta:get_inventory()
- if direction.y > 0 then
- return inv:add_item("src", stack)
- else
- return inv:add_item("dst", stack)
- end
- end,
- can_insert = function(pos, node, stack, direction)
- if direction.y == 0 then
- return false
- end
- local meta = minetest.get_meta(pos)
- local inv = meta:get_inventory()
- if direction.y > 0 then
- return inv:room_for_item("src", stack)
- else
- return inv:room_for_item("dst", stack)
- end
- end,
- connect_sides = {left=1, right=1, back=1, top=1, bottom=1},
-}
-
-function technic.register_battery_box(data)
- local tier = data.tier
- local ltier = string.lower(tier)
-
- local 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;"..S("%s Battery Box"):format(tier).."]"..
- "label[3,0;"..S("Charge").."]"..
- "label[5,0;"..S("Discharge").."]"..
- "label[1,3;"..S("Power level").."]"..
- "list[current_player;main;0,5;8,4;]"..
- "listring[current_name;dst]"..
- "listring[current_player;main]"..
- "listring[current_name;src]"..
- "listring[current_player;main]"
-
- if data.upgrade then
- formspec = formspec..
- "list[current_name;upgrade1;3.5,3;1,1;]"..
- "list[current_name;upgrade2;4.5,3;1,1;]"..
- "label[3.5,4;"..S("Upgrade Slots").."]"..
- "listring[current_name;upgrade1]"..
- "listring[current_player;main]"..
- "listring[current_name;upgrade2]"..
- "listring[current_player;main]"
- end
-
- local run = function(pos, node)
- local meta = minetest.get_meta(pos)
- local eu_input = meta:get_int(tier.."_EU_input")
- local current_charge = meta:get_int("internal_EU_charge")
-
- local EU_upgrade, tube_upgrade = 0, 0
- if data.upgrade then
- EU_upgrade, tube_upgrade = technic.handle_machine_upgrades(meta)
- end
- local max_charge = data.max_charge * (1 + EU_upgrade / 10)
-
- -- Charge/discharge the battery with the input EUs
- if eu_input >= 0 then
- current_charge = math.min(current_charge + eu_input, max_charge)
- else
- current_charge = math.max(current_charge + eu_input, 0)
- end
-
- -- Charging/discharging tools here
- local tool_full, tool_empty
- current_charge, tool_full = technic.charge_tools(meta,
- current_charge, data.charge_step)
- current_charge, tool_empty = technic.discharge_tools(meta,
- current_charge, data.discharge_step,
- max_charge)
-
- if data.tube then
- local inv = meta:get_inventory()
- technic.handle_machine_pipeworks(pos, tube_upgrade,
- function(pos, x_velocity, z_velocity)
- if tool_full and not inv:is_empty("src") then
- technic.send_items(pos, x_velocity, z_velocity, "src")
- elseif tool_empty and not inv:is_empty("dst") then
- technic.send_items(pos, x_velocity, z_velocity, "dst")
- end
- end)
- end
-
- -- We allow batteries to charge on less than the demand
- meta:set_int(tier.."_EU_demand",
- math.min(data.charge_rate, max_charge - current_charge))
- meta:set_int(tier.."_EU_supply",
- math.min(data.discharge_rate, current_charge))
- meta:set_int("internal_EU_charge", current_charge)
-
- -- Select node textures
- local charge_count = math.ceil((current_charge / max_charge) * 8)
- charge_count = math.min(charge_count, 8)
- charge_count = math.max(charge_count, 0)
- local last_count = meta:get_float("last_side_shown")
- if charge_count ~= last_count then
- technic.swap_node(pos,"technic:"..ltier.."_battery_box"..charge_count)
- meta:set_float("last_side_shown", charge_count)
- end
-
- local charge_percent = math.floor(current_charge / max_charge * 100)
- meta:set_string("formspec",
- formspec..
- "image[1,1;1,2;technic_power_meter_bg.png"
- .."^[lowpart:"..charge_percent
- ..":technic_power_meter_fg.png]")
-
- local infotext = S("@1 Battery Box: @2/@3", tier,
- technic.prettynum(current_charge), technic.prettynum(max_charge))
- if eu_input == 0 then
- infotext = S("%s Idle"):format(infotext)
- end
- meta:set_string("infotext", infotext)
- end
-
- for i = 0, 8 do
- local groups = {snappy=2, choppy=2, oddly_breakable_by_hand=2, technic_machine=1}
- if i ~= 0 then
- groups.not_in_creative_inventory = 1
- end
-
- if data.tube then
- groups.tubedevice = 1
- groups.tubedevice_receiver = 1
- end
-
- minetest.register_node("technic:"..ltier.."_battery_box"..i, {
- description = S("%s Battery Box"):format(tier),
- tiles = {"technic_"..ltier.."_battery_box_top.png",
- "technic_"..ltier.."_battery_box_bottom.png",
- "technic_"..ltier.."_battery_box_side.png^technic_power_meter"..i..".png",
- "technic_"..ltier.."_battery_box_side.png^technic_power_meter"..i..".png",
- "technic_"..ltier.."_battery_box_side.png^technic_power_meter"..i..".png",
- "technic_"..ltier.."_battery_box_side.png^technic_power_meter"..i..".png"},
- groups = groups,
- tube = data.tube and tube or nil,
- paramtype2 = "facedir",
- sounds = default.node_sound_wood_defaults(),
- drop = "technic:"..ltier.."_battery_box0",
- on_construct = function(pos)
- local meta = minetest.get_meta(pos)
- local inv = meta:get_inventory()
- local node = minetest.get_node(pos)
-
- meta:set_string("infotext", S("%s Battery Box"):format(tier))
- meta:set_string("formspec", formspec)
- meta:set_int(tier.."_EU_demand", 0)
- meta:set_int(tier.."_EU_supply", 0)
- meta:set_int(tier.."_EU_input", 0)
- meta:set_float("internal_EU_charge", 0)
- inv:set_size("src", 1)
- inv:set_size("dst", 1)
- inv:set_size("upgrade1", 1)
- inv:set_size("upgrade2", 1)
- end,
- can_dig = technic.machine_can_dig,
- allow_metadata_inventory_put = technic.machine_inventory_put,
- allow_metadata_inventory_take = technic.machine_inventory_take,
- allow_metadata_inventory_move = technic.machine_inventory_move,
- technic_run = run,
- after_place_node = data.tube and pipeworks.after_place,
- after_dig_node = technic.machine_after_dig_node
- })
- end
-
- -- Register as a battery type
- -- Battery type machines function as power reservoirs and can both receive and give back power
- for i = 0, 8 do
- technic.register_machine(tier, "technic:"..ltier.."_battery_box"..i, technic.battery)
- end
-
-end -- End registration
-
-
-function technic.charge_tools(meta, batt_charge, charge_step)
- local inv = meta:get_inventory()
- if inv:is_empty("src") then
- return batt_charge, false
- end
- local src_stack = inv:get_stack("src", 1)
-
- local tool_name = src_stack:get_name()
- if not technic.power_tools[tool_name] then
- return batt_charge, false
- end
- -- Set meta data for the tool if it didn't do it itself
- local src_meta = minetest.deserialize(src_stack:get_metadata()) or {}
- if not src_meta.charge then
- src_meta.charge = 0
- end
- -- Do the charging
- local item_max_charge = technic.power_tools[tool_name]
- local tool_charge = src_meta.charge
- if tool_charge >= item_max_charge then
- return batt_charge, true
- elseif batt_charge <= 0 then
- return batt_charge, false
- end
- charge_step = math.min(charge_step, batt_charge)
- charge_step = math.min(charge_step, item_max_charge - tool_charge)
- tool_charge = tool_charge + charge_step
- batt_charge = batt_charge - charge_step
- technic.set_RE_wear(src_stack, tool_charge, item_max_charge)
- src_meta.charge = tool_charge
- src_stack:set_metadata(minetest.serialize(src_meta))
- inv:set_stack("src", 1, src_stack)
- return batt_charge, (tool_charge == item_max_charge)
-end
-
-
-function technic.discharge_tools(meta, batt_charge, charge_step, max_charge)
- local inv = meta:get_inventory()
- if inv:is_empty("dst") then
- return batt_charge, false
- end
- srcstack = inv:get_stack("dst", 1)
- local toolname = srcstack:get_name()
- if technic.power_tools[toolname] == nil then
- return batt_charge, false
- end
- -- Set meta data for the tool if it didn't do it itself :-(
- local src_meta = minetest.deserialize(srcstack:get_metadata())
- src_meta = src_meta or {}
- if not src_meta.charge then
- src_meta.charge = 0
- end
-
- -- Do the discharging
- local item_max_charge = technic.power_tools[toolname]
- local tool_charge = src_meta.charge
- if tool_charge <= 0 then
- return batt_charge, true
- elseif batt_charge >= max_charge then
- return batt_charge, false
- end
- charge_step = math.min(charge_step, max_charge - batt_charge)
- charge_step = math.min(charge_step, tool_charge)
- tool_charge = tool_charge - charge_step
- batt_charge = batt_charge + charge_step
- technic.set_RE_wear(srcstack, tool_charge, item_max_charge)
- src_meta.charge = tool_charge
- srcstack:set_metadata(minetest.serialize(src_meta))
- inv:set_stack("dst", 1, srcstack)
- return batt_charge, (tool_charge == 0)
-end
-
diff --git a/technic/technic/machines/register/cables.lua b/technic/technic/machines/register/cables.lua
deleted file mode 100644
index a1e7bc8..0000000
--- a/technic/technic/machines/register/cables.lua
+++ /dev/null
@@ -1,177 +0,0 @@
-
-local S = technic.getter
-
-local cable_itstr_to_tier = {}
-
-function technic.register_cable(tier, size)
- local ltier = string.lower(tier)
-
- for x1 = 0, 1 do
- for x2 = 0, 1 do
- for y1 = 0, 1 do
- for y2 = 0, 1 do
- for z1 = 0, 1 do
- for z2 = 0, 1 do
- local id = technic.get_cable_id({x1, x2, y1, y2, z1, z2})
-
- cable_itstr_to_tier["technic:"..ltier.."_cable"..id] = tier
-
- local groups = {snappy=2, choppy=2, oddly_breakable_by_hand=2}
- if id ~= 0 then
- groups.not_in_creative_inventory = 1
- end
-
- minetest.register_node("technic:"..ltier.."_cable"..id, {
- description = S("%s Cable"):format(tier),
- tiles = {"technic_"..ltier.."_cable.png"},
- inventory_image = "technic_"..ltier.."_cable_wield.png",
- wield_image = "technic_"..ltier.."_cable_wield.png",
- groups = groups,
- sounds = default.node_sound_wood_defaults(),
- drop = "technic:"..ltier.."_cable0",
- paramtype = "light",
- sunlight_propagates = true,
- drawtype = "nodebox",
- node_box = {
- type = "fixed",
- fixed = technic.gen_cable_nodebox(x1, y1, z1, x2, y2, z2, size)
- },
- on_construct = function()
- technic.networks = {}
- end,
- on_destruct = function()
- technic.networks = {}
- end,
- after_place_node = function(pos)
- local node = minetest.get_node(pos)
- technic.update_cables(pos, technic.get_cable_tier(node.name))
- end,
- after_dig_node = function(pos, oldnode)
- local tier = technic.get_cable_tier(oldnode.name)
- technic.update_cables(pos, tier, true)
- end
- })
- end
- end
- end
- end
- end
- end
-end
-
-minetest.register_on_placenode(function(pos, node)
- for tier, machine_list in pairs(technic.machines) do
- if machine_list[node.name] ~= nil then
- technic.update_cables(pos, tier, true)
- technic.networks = {}
- end
- end
-end)
-
-
-minetest.register_on_dignode(function(pos, node)
- for tier, machine_list in pairs(technic.machines) do
- if machine_list[node.name] ~= nil then
- technic.update_cables(pos, tier, true)
- technic.networks = {}
- end
- end
-end)
-
-function technic.get_cable_id(links)
- return (links[6] * 1) + (links[5] * 2)
- + (links[4] * 4) + (links[3] * 8)
- + (links[2] * 16) + (links[1] * 32)
-end
-
-function technic.update_cables(pos, tier, no_set, secondrun)
- local link_positions = {
- {x=pos.x+1, y=pos.y, z=pos.z},
- {x=pos.x-1, y=pos.y, z=pos.z},
- {x=pos.x, y=pos.y+1, z=pos.z},
- {x=pos.x, y=pos.y-1, z=pos.z},
- {x=pos.x, y=pos.y, z=pos.z+1},
- {x=pos.x, y=pos.y, z=pos.z-1}}
-
- local links = {0, 0, 0, 0, 0, 0}
-
- for i, link_pos in pairs(link_positions) do
- local connect_type = technic.cables_should_connect(pos, link_pos, tier)
- if connect_type then
- links[i] = 1
- -- Have cables next to us update theirselves,
- -- but only once. (We don't want to update the entire
- -- network or start an infinite loop of updates)
- if not secondrun and connect_type == "cable" then
- technic.update_cables(link_pos, tier, false, true)
- end
- end
- end
- -- We don't want to set ourselves if we have been removed or we are
- -- updating a machine
- if not no_set then
- minetest.set_node(pos, {name="technic:"..string.lower(tier)
- .."_cable"..technic.get_cable_id(links)})
-
- end
-end
-
-
-function technic.is_tier_cable(name, tier)
- return cable_itstr_to_tier[name] and cable_itstr_to_tier[name] == tier
-end
-
-
-function technic.get_cable_tier(name)
- return cable_itstr_to_tier[name]
-end
-
-
-function technic.cables_should_connect(pos1, pos2, tier)
- local name = minetest.get_node(pos2).name
-
- if name == "technic:switching_station" then
- return pos2.y == pos1.y + 1 and "machine" or false
- elseif name == "technic:supply_converter" then
- return math.abs(pos2.y - pos1.y) == 1 and "machine" or false
- elseif technic.is_tier_cable(name, tier) then
- return "cable"
- elseif technic.machines[tier][name] then
- return "machine"
- end
- return false
-end
-
-
-function technic.gen_cable_nodebox(x1, y1, z1, x2, y2, z2, size)
- -- Nodeboxes
- local box_center = {-size, -size, -size, size, size, size}
- local box_y1 = {-size, -size, -size, size, 0.5, size} -- y+
- local box_x1 = {-size, -size, -size, 0.5, size, size} -- x+
- local box_z1 = {-size, -size, size, size, size, 0.5} -- z+
- local box_z2 = {-size, -size, -0.5, size, size, size} -- z-
- local box_y2 = {-size, -0.5, -size, size, size, size} -- y-
- local box_x2 = {-0.5, -size, -size, size, size, size} -- x-
-
- local box = {box_center}
- if x1 == 1 then
- table.insert(box, box_x1)
- end
- if y1 == 1 then
- table.insert(box, box_y1)
- end
- if z1 == 1 then
- table.insert(box, box_z1)
- end
- if x2 == 1 then
- table.insert(box, box_x2)
- end
- if y2 == 1 then
- table.insert(box, box_y2)
- end
- if z2 == 1 then
- table.insert(box, box_z2)
- end
- return box
-end
-
diff --git a/technic/technic/machines/register/centrifuge.lua b/technic/technic/machines/register/centrifuge.lua
deleted file mode 100644
index dd05977..0000000
--- a/technic/technic/machines/register/centrifuge.lua
+++ /dev/null
@@ -1,8 +0,0 @@
-local S = technic.getter
-
-function technic.register_centrifuge(data)
- data.typename = "separating"
- data.machine_name = "centrifuge"
- data.machine_desc = S("%s Centrifuge")
- technic.register_base_machine(data)
-end
diff --git a/technic/technic/machines/register/centrifuge_recipes.lua b/technic/technic/machines/register/centrifuge_recipes.lua
deleted file mode 100644
index 05642f5..0000000
--- a/technic/technic/machines/register/centrifuge_recipes.lua
+++ /dev/null
@@ -1,38 +0,0 @@
-local S = technic.getter
-
-technic.register_recipe_type("separating", {
- description = S("Separating"),
- output_size = 2,
-})
-
-function technic.register_separating_recipe(data)
- data.time = data.time or 10
- technic.register_recipe("separating", data)
-end
-
-local recipes = {
- { "technic:bronze_dust 4", "technic:copper_dust 3", "technic:tin_dust" },
- { "technic:stainless_steel_dust 4", "technic:wrought_iron_dust 3", "technic:chromium_dust" },
- { "technic:brass_dust 3", "technic:copper_dust 2", "technic:zinc_dust" },
-}
-
-local function uranium_dust(p)
- return "technic:uranium"..(p == 7 and "" or p).."_dust"
-end
-for p = 1, 34 do
- table.insert(recipes, { uranium_dust(p).." 2", uranium_dust(p-1), uranium_dust(p+1) })
-end
-
-if minetest.get_modpath("bushes_classic") then
- for _, berry in ipairs({ "blackberry", "blueberry", "gooseberry", "raspberry", "strawberry" }) do
- table.insert(recipes, { "bushes:"..berry.."_bush", "default:stick 20", "bushes:"..berry.." 4" })
- end
-end
-
-if minetest.get_modpath("farming") then
- table.insert(recipes, { "farming:wheat 4", "farming:seed_wheat 3", "default:dry_shrub 1" })
-end
-
-for _, data in pairs(recipes) do
- technic.register_separating_recipe({ input = { data[1] }, output = { data[2], data[3] } })
-end
diff --git a/technic/technic/machines/register/common.lua b/technic/technic/machines/register/common.lua
deleted file mode 100644
index ce0eee6..0000000
--- a/technic/technic/machines/register/common.lua
+++ /dev/null
@@ -1,214 +0,0 @@
-
-local S = technic.getter
-
--- handles the machine upgrades every tick
-function technic.handle_machine_upgrades(meta)
- -- Get the names of the upgrades
- local inv = meta:get_inventory()
-
- local srcstack = inv:get_stack("upgrade1", 1)
- local upg_item1 = srcstack and srcstack:get_name()
-
- srcstack = inv:get_stack("upgrade2", 1)
- local upg_item2 = srcstack and srcstack:get_name()
-
- -- Save some power by installing battery upgrades.
- -- Tube loading speed can be upgraded using control logic units.
- local EU_upgrade = 0
- local tube_upgrade = 0
-
- if upg_item1 == "technic:control_logic_unit" then
- tube_upgrade = tube_upgrade + 1
- elseif upg_item1 == "technic:battery" then
- EU_upgrade = EU_upgrade + 1
- end
-
- if upg_item2 == "technic:control_logic_unit" then
- tube_upgrade = tube_upgrade + 1
- elseif upg_item2 == "technic:battery" then
- EU_upgrade = EU_upgrade + 1
- end
-
- return EU_upgrade, tube_upgrade
-end
-
--- handles the machine upgrades when set or removed
-local function on_machine_upgrade(meta, stack)
- local stack_name = stack:get_name()
- if stack_name == "default:chest" then
- meta:set_int("public", 1)
- return 1
- elseif stack_name ~= "technic:control_logic_unit"
- and stack_name ~= "technic:battery" then
- return 0
- end
- return 1
-end
-
--- something is about to be removed
-local function on_machine_downgrade(meta, stack, list)
- if stack:get_name() == "default:chest" then
- local inv = meta:get_inventory()
- local upg1, upg2 = inv:get_stack("upgrade1", 1), inv:get_stack("upgrade2", 1)
-
- -- only set 0 if theres not a nother chest in the other list too
- if (not upg1 or not upg2 or upg1:get_name() ~= upg2:get_name()) then
- meta:set_int("public", 0)
- end
- end
- return 1
-end
-
-
-function technic.send_items(pos, x_velocity, z_velocity, output_name)
- -- Send items on their way in the pipe system.
- if output_name == nil then
- output_name = "dst"
- end
-
- local meta = minetest.get_meta(pos)
- local inv = meta:get_inventory()
- local i = 0
- for _, stack in ipairs(inv:get_list(output_name)) do
- i = i + 1
- if stack then
- local item0 = stack:to_table()
- if item0 then
- item0["count"] = "1"
- technic.tube_inject_item(pos, pos, vector.new(x_velocity, 0, z_velocity), item0)
- stack:take_item(1)
- inv:set_stack(output_name, i, stack)
- return
- end
- end
- end
-end
-
-
-function technic.smelt_item(meta, result, speed)
- local inv = meta:get_inventory()
- meta:set_int("cook_time", meta:get_int("cook_time") + 1)
- if meta:get_int("cook_time") < result.time / speed then
- return
- end
- local result
- local afterfuel
- result, afterfuel = minetest.get_craft_result({method = "cooking", width = 1, items = inv:get_list("src")})
-
- if result and result.item then
- meta:set_int("cook_time", 0)
- -- check if there's room for output in "dst" list
- if inv:room_for_item("dst", result.item) then
- inv:set_stack("src", 1, afterfuel.items[1])
- inv:add_item("dst", result.item)
- end
- end
-end
-
-function technic.handle_machine_pipeworks(pos, tube_upgrade, send_function)
- if send_function == nil then
- send_function = technic.send_items
- end
-
- local node = minetest.get_node(pos)
- local meta = minetest.get_meta(pos)
- local inv = meta:get_inventory()
- local pos1 = vector.new(pos)
- local x_velocity = 0
- local z_velocity = 0
-
- -- Output is on the left side of the furnace
- if node.param2 == 3 then pos1.z = pos1.z - 1 z_velocity = -1 end
- if node.param2 == 2 then pos1.x = pos1.x - 1 x_velocity = -1 end
- if node.param2 == 1 then pos1.z = pos1.z + 1 z_velocity = 1 end
- if node.param2 == 0 then pos1.x = pos1.x + 1 x_velocity = 1 end
-
- local output_tube_connected = false
- local node1 = minetest.get_node(pos1)
- if minetest.get_item_group(node1.name, "tubedevice") > 0 then
- output_tube_connected = true
- end
- local tube_time = meta:get_int("tube_time") + tube_upgrade
- if tube_time >= 2 then
- tube_time = 0
- if output_tube_connected then
- send_function(pos, x_velocity, z_velocity)
- end
- end
- meta:set_int("tube_time", tube_time)
-end
-
-function technic.machine_can_dig(pos, player)
- local meta = minetest.get_meta(pos)
- local inv = meta:get_inventory()
- if not inv:is_empty("src") or not inv:is_empty("dst") then
- if player then
- minetest.chat_send_player(player:get_player_name(),
- S("Machine cannot be removed because it is not empty"))
- end
- return false
- end
-
- return true
-end
-
-function technic.machine_after_dig_node(pos, oldnode, oldmetadata, player)
- if oldmetadata.inventory then
- if oldmetadata.inventory.upgrade1 and oldmetadata.inventory.upgrade1[1] then
- local stack = ItemStack(oldmetadata.inventory.upgrade1[1])
- if not stack:is_empty() then
- minetest.item_drop(stack, "", pos)
- end
- end
- if oldmetadata.inventory.upgrade2 and oldmetadata.inventory.upgrade2[1] then
- local stack = ItemStack(oldmetadata.inventory.upgrade2[1])
- if not stack:is_empty() then
- minetest.item_drop(stack, "", pos)
- end
- end
- end
-
- if minetest.registered_nodes[oldnode.name].tube then
- pipeworks.after_dig(pos, oldnode, oldmetadata, player)
- end
-end
-
-local function inv_change(pos, player, count, from_list, to_list, stack)
- local playername = player:get_player_name()
- local meta = minetest.get_meta(pos);
- local public = (meta:get_int("public") == 1)
- local to_upgrade = to_list == "upgrade1" or to_list == "upgrade2"
- local from_upgrade = from_list == "upgrade1" or from_list == "upgrade2"
-
- if (not public or to_upgrade or from_upgrade) and minetest.is_protected(pos, playername) then
- minetest.chat_send_player(playername, S("Inventory move disallowed due to protection"))
- return 0
- end
- if to_upgrade then
- -- only place a single item into it, if it's empty
- local empty = meta:get_inventory():is_empty(to_list)
- if empty then
- return on_machine_upgrade(meta, stack)
- end
- return 0
- elseif from_upgrade then
- -- only called on take (not move)
- on_machine_downgrade(meta, stack, from_list)
- end
- return count
-end
-
-function technic.machine_inventory_put(pos, listname, index, stack, player)
- return inv_change(pos, player, stack:get_count(), nil, listname, stack)
-end
-
-function technic.machine_inventory_take(pos, listname, index, stack, player)
- return inv_change(pos, player, stack:get_count(), listname, nil, stack)
-end
-
-function technic.machine_inventory_move(pos, from_list, from_index,
- to_list, to_index, count, player)
- local stack = minetest.get_meta(pos):get_inventory():get_stack(from_list, from_index)
- return inv_change(pos, player, count, from_list, to_list, stack)
-end
-
diff --git a/technic/technic/machines/register/compressor.lua b/technic/technic/machines/register/compressor.lua
deleted file mode 100644
index 49830d7..0000000
--- a/technic/technic/machines/register/compressor.lua
+++ /dev/null
@@ -1,9 +0,0 @@
-
-local S = technic.getter
-
-function technic.register_compressor(data)
- data.typename = "compressing"
- data.machine_name = "compressor"
- data.machine_desc = S("%s Compressor")
- technic.register_base_machine(data)
-end
diff --git a/technic/technic/machines/register/compressor_recipes.lua b/technic/technic/machines/register/compressor_recipes.lua
deleted file mode 100644
index 872be04..0000000
--- a/technic/technic/machines/register/compressor_recipes.lua
+++ /dev/null
@@ -1,34 +0,0 @@
-
-local S = technic.getter
-
-technic.register_recipe_type("compressing", { description = S("Compressing") })
-
-function technic.register_compressor_recipe(data)
- data.time = data.time or 4
- technic.register_recipe("compressing", data)
-end
-
-local recipes = {
- {"default:snowblock", "default:ice"},
- {"default:sand 2", "default:sandstone"},
- {"default:desert_sand", "default:desert_stone"},
- {"technic:mixed_metal_ingot", "technic:composite_plate"},
- {"default:copper_ingot 5", "technic:copper_plate"},
- {"technic:coal_dust 4", "technic:graphite"},
- {"technic:carbon_cloth", "technic:carbon_plate"},
- {"technic:uranium35_ingot 5", "technic:uranium_fuel"},
-}
-
--- defuse the default sandstone recipe, since we have the compressor to take over in a more realistic manner
-minetest.register_craft({
- output = "default:sand 0",
- recipe = {
- {'group:sand', 'group:sand'},
- {'group:sand', 'group:sand'}
- },
-})
-
-for _, data in pairs(recipes) do
- technic.register_compressor_recipe({input = {data[1]}, output = data[2]})
-end
-
diff --git a/technic/technic/machines/register/electric_furnace.lua b/technic/technic/machines/register/electric_furnace.lua
deleted file mode 100644
index 44de16c..0000000
--- a/technic/technic/machines/register/electric_furnace.lua
+++ /dev/null
@@ -1,9 +0,0 @@
-
-local S = technic.getter
-
-function technic.register_electric_furnace(data)
- data.typename = "cooking"
- data.machine_name = "electric_furnace"
- data.machine_desc = S("%s Furnace")
- technic.register_base_machine(data)
-end
diff --git a/technic/technic/machines/register/extractor.lua b/technic/technic/machines/register/extractor.lua
deleted file mode 100644
index eeef9ff..0000000
--- a/technic/technic/machines/register/extractor.lua
+++ /dev/null
@@ -1,9 +0,0 @@
-
-local S = technic.getter
-
-function technic.register_extractor(data)
- data.typename = "extracting"
- data.machine_name = "extractor"
- data.machine_desc = S("%s Extractor")
- technic.register_base_machine(data)
-end
diff --git a/technic/technic/machines/register/extractor_recipes.lua b/technic/technic/machines/register/extractor_recipes.lua
deleted file mode 100644
index 1de0ba0..0000000
--- a/technic/technic/machines/register/extractor_recipes.lua
+++ /dev/null
@@ -1,59 +0,0 @@
-
-local S = technic.getter
-
-technic.register_recipe_type("extracting", { description = S("Extracting") })
-
-function technic.register_extractor_recipe(data)
- data.time = data.time or 4
- technic.register_recipe("extracting", data)
-end
-
-if minetest.get_modpath("dye") then
- -- check if we are using dye or unifieddyes
- local unifieddyes = minetest.get_modpath("unifieddyes")
-
- -- register recipes with the same crafting ratios as `dye` provides
- local dye_recipes = {
- {"technic:coal_dust", "dye:black 2"},
- {"default:grass_1", "dye:green 1"},
- {"default:dry_shrub", "dye:brown 1"},
- {"default:junglegrass", "dye:green 2"},
- {"default:cactus", "dye:green 4"},
- {"flowers:geranium", "dye:blue 4"},
- {"flowers:dandelion_white", "dye:white 4"},
- {"flowers:dandelion_yellow", "dye:yellow 4"},
- {"flowers:tulip", "dye:orange 4"},
- {"flowers:rose", "dye:red 4"},
- {"flowers:viola", "dye:violet 4"},
- {"bushes:blackberry", unifieddyes and "unifieddyes:magenta_s50 4" or "dye:violet 4"},
- {"bushes:blueberry", unifieddyes and "unifieddyes:magenta_s50 4" or "dye:magenta 4"},
- }
-
- for _, data in ipairs(dye_recipes) do
- technic.register_extractor_recipe({input = {data[1]}, output = data[2]})
- end
-
- -- overwrite the existing crafting recipes
- local dyes = {"white", "red", "yellow", "blue", "violet", "orange"}
- for _, color in ipairs(dyes) do
- minetest.register_craft({
- type = "shapeless",
- output = "dye:"..color.." 1",
- recipe = {"group:flower,color_"..color},
- })
-
- end
- minetest.register_craft({
- type = "shapeless",
- output = "dye:black 1",
- recipe = {"group:coal"},
- })
-
- if unifieddyes then
- minetest.register_craft({
- type = "shapeless",
- output = "dye:green 1",
- recipe = {"default:cactus"},
- })
- end
-end
diff --git a/technic/technic/machines/register/generator.lua b/technic/technic/machines/register/generator.lua
deleted file mode 100644
index 31c1cef..0000000
--- a/technic/technic/machines/register/generator.lua
+++ /dev/null
@@ -1,173 +0,0 @@
-local S = technic.getter
-
-local tube = {
- insert_object = function(pos, node, stack, direction)
- local meta = minetest.get_meta(pos)
- local inv = meta:get_inventory()
- return inv:add_item("src", stack)
- end,
- can_insert = function(pos, node, stack, direction)
- local meta = minetest.get_meta(pos)
- local inv = meta:get_inventory()
- return inv:room_for_item("src", stack)
- end,
- connect_sides = {left=1, right=1, back=1, top=1, bottom=1},
-}
-
-function technic.register_generator(data)
- local tier = data.tier
- local ltier = string.lower(tier)
-
- local groups = {snappy=2, choppy=2, oddly_breakable_by_hand=2, technic_machine=1}
- local active_groups = {snappy=2, choppy=2, oddly_breakable_by_hand=2, technic_machine=1, not_in_creative_inventory=1}
- if data.tube then
- groups.tubedevice = 1
- groups.tubedevice_receiver = 1
- active_groups.tubedevice = 1
- active_groups.tubedevice_receiver = 1
- end
-
- local generator_formspec =
- "invsize[8,9;]"..
- "label[0,0;"..S("Fuel-Fired %s Generator"):format(tier).."]"..
- "list[current_name;src;3,1;1,1;]"..
- "image[4,1;1,1;default_furnace_fire_bg.png]"..
- "list[current_player;main;0,5;8,4;]"..
- "listring[]"
-
- local desc = S("Fuel-Fired %s Generator"):format(tier)
-
- local run = function(pos, node)
- local meta = minetest.get_meta(pos)
- local burn_time = meta:get_int("burn_time")
- local burn_totaltime = meta:get_int("burn_totaltime")
- -- If more to burn and the energy produced was used: produce some more
- if burn_time > 0 then
- meta:set_int(tier.."_EU_supply", data.supply)
- burn_time = burn_time - 1
- meta:set_int("burn_time", burn_time)
- end
- -- Burn another piece of fuel
- if burn_time == 0 then
- local inv = meta:get_inventory()
- if not inv:is_empty("src") then
- local fuellist = inv:get_list("src")
- local fuel
- local afterfuel
- fuel, afterfuel = minetest.get_craft_result(
- {method = "fuel", width = 1,
- items = fuellist})
- if not fuel or fuel.time == 0 then
- meta:set_string("infotext", S("%s Out Of Fuel"):format(desc))
- technic.swap_node(pos, "technic:"..ltier.."_generator")
- meta:set_int(tier.."_EU_supply", 0)
- return
- end
- meta:set_int("burn_time", fuel.time)
- meta:set_int("burn_totaltime", fuel.time)
- inv:set_stack("src", 1, afterfuel.items[1])
- technic.swap_node(pos, "technic:"..ltier.."_generator_active")
- meta:set_int(tier.."_EU_supply", data.supply)
- else
- technic.swap_node(pos, "technic:"..ltier.."_generator")
- meta:set_int(tier.."_EU_supply", 0)
- end
- end
- if burn_totaltime == 0 then burn_totaltime = 1 end
- local percent = math.floor((burn_time / burn_totaltime) * 100)
- meta:set_string("infotext", desc.." ("..percent.."%)")
- meta:set_string("formspec",
- "size[8, 9]"..
- "label[0, 0;"..minetest.formspec_escape(desc).."]"..
- "list[current_name;src;3, 1;1, 1;]"..
- "image[4, 1;1, 1;default_furnace_fire_bg.png^[lowpart:"..
- (percent)..":default_furnace_fire_fg.png]"..
- "list[current_player;main;0, 5;8, 4;]"..
- "listring[]")
- end
-
- minetest.register_node("technic:"..ltier.."_generator", {
- description = desc,
- tiles = {"technic_"..ltier.."_generator_top.png", "technic_machine_bottom.png",
- "technic_"..ltier.."_generator_side.png", "technic_"..ltier.."_generator_side.png",
- "technic_"..ltier.."_generator_side.png", "technic_"..ltier.."_generator_front.png"},
- paramtype2 = "facedir",
- groups = groups,
- legacy_facedir_simple = true,
- sounds = default.node_sound_wood_defaults(),
- tube = data.tube and tube or nil,
- on_construct = function(pos)
- local meta = minetest.get_meta(pos)
- meta:set_string("infotext", desc)
- meta:set_int(data.tier.."_EU_supply", 0)
- meta:set_int("burn_time", 0)
- meta:set_int("tube_time", 0)
- meta:set_string("formspec", generator_formspec)
- local inv = meta:get_inventory()
- inv:set_size("src", 1)
- end,
- can_dig = technic.machine_can_dig,
- allow_metadata_inventory_put = technic.machine_inventory_put,
- allow_metadata_inventory_take = technic.machine_inventory_take,
- allow_metadata_inventory_move = technic.machine_inventory_move,
- technic_run = run,
- after_place_node = data.tube and pipeworks.after_place,
- after_dig_node = technic.machine_after_dig_node
- })
-
- minetest.register_node("technic:"..ltier.."_generator_active", {
- description = desc,
- tiles = {"technic_"..ltier.."_generator_top.png", "technic_machine_bottom.png",
- "technic_"..ltier.."_generator_side.png", "technic_"..ltier.."_generator_side.png",
- "technic_"..ltier.."_generator_side.png", "technic_"..ltier.."_generator_front_active.png"},
- paramtype2 = "facedir",
- groups = active_groups,
- legacy_facedir_simple = true,
- sounds = default.node_sound_wood_defaults(),
- tube = data.tube and tube or nil,
- drop = "technic:"..ltier.."_generator",
- can_dig = technic.machine_can_dig,
- allow_metadata_inventory_put = technic.machine_inventory_put,
- allow_metadata_inventory_take = technic.machine_inventory_take,
- allow_metadata_inventory_move = technic.machine_inventory_move,
- technic_run = run,
- technic_on_disable = function(pos, node)
- local timer = minetest.get_node_timer(pos)
- timer:start(1)
- end,
- on_timer = function(pos, node)
- local meta = minetest.get_meta(pos)
-
- -- Connected back?
- if meta:get_int(tier.."_EU_timeout") > 0 then return false end
-
- local burn_time = meta:get_int("burn_time") or 0
-
- if burn_time <= 0 then
- meta:set_int(tier.."_EU_supply", 0)
- meta:set_int("burn_time", 0)
- technic.swap_node(pos, "technic:"..ltier.."_generator")
- return false
- end
-
- local burn_totaltime = meta:get_int("burn_totaltime") or 0
- if burn_totaltime == 0 then burn_totaltime = 1 end
- burn_time = burn_time - 1
- meta:set_int("burn_time", burn_time)
- local percent = math.floor(burn_time / burn_totaltime * 100)
- meta:set_string("formspec",
- "size[8, 9]"..
- "label[0, 0;"..minetest.formspec_escape(desc).."]"..
- "list[current_name;src;3, 1;1, 1;]"..
- "image[4, 1;1, 1;default_furnace_fire_bg.png^[lowpart:"..
- (percent)..":default_furnace_fire_fg.png]"..
- "list[current_player;main;0, 5;8, 4;]"..
- "listring[]")
- return true
- end,
- })
-
- technic.register_machine(tier, "technic:"..ltier.."_generator", technic.producer)
- technic.register_machine(tier, "technic:"..ltier.."_generator_active", technic.producer)
-end
-
diff --git a/technic/technic/machines/register/grinder.lua b/technic/technic/machines/register/grinder.lua
deleted file mode 100644
index 19ea094..0000000
--- a/technic/technic/machines/register/grinder.lua
+++ /dev/null
@@ -1,9 +0,0 @@
-
-local S = technic.getter
-
-function technic.register_grinder(data)
- data.typename = "grinding"
- data.machine_name = "grinder"
- data.machine_desc = S("%s Grinder")
- technic.register_base_machine(data)
-end
diff --git a/technic/technic/machines/register/grinder_recipes.lua b/technic/technic/machines/register/grinder_recipes.lua
deleted file mode 100644
index 87c6ade..0000000
--- a/technic/technic/machines/register/grinder_recipes.lua
+++ /dev/null
@@ -1,161 +0,0 @@
-
-local S = technic.getter
-
-technic.register_recipe_type("grinding", { description = S("Grinding") })
-
-function technic.register_grinder_recipe(data)
- data.time = data.time or 3
- technic.register_recipe("grinding", data)
-end
-
-local recipes = {
- -- Dusts
- {"default:coal_lump", "technic:coal_dust 2"},
- {"default:copper_lump", "technic:copper_dust 2"},
- {"default:desert_stone", "default:desert_sand"},
- {"default:gold_lump", "technic:gold_dust 2"},
- {"default:iron_lump", "technic:wrought_iron_dust 2"},
- {"technic:chromium_lump", "technic:chromium_dust 2"},
- {"technic:uranium_lump", "technic:uranium_dust 2"},
- {"technic:zinc_lump", "technic:zinc_dust 2"},
- {"technic:lead_lump", "technic:lead_dust 2"},
- {"technic:sulfur_lump", "technic:sulfur_dust 2"},
-
- -- Other
- {"default:cobble", "default:gravel"},
- {"default:gravel", "default:dirt"},
- {"default:stone", "default:sand"},
- {"default:sandstone", "default:sand 2"}, -- reverse recipe can be found in the compressor
-}
-
--- defuse the sandstone -> 4 sand recipe to avoid infinite sand bugs (also consult the inverse compressor recipe)
-minetest.register_craft({
- output = "default:sandstone 0",
- recipe = {
- {'default:sandstone'}
- },
-})
-
-if minetest.get_modpath("farming") then
- table.insert(recipes, {"farming:seed_wheat", "farming:flour 1"})
-end
-
-if minetest.get_modpath("moreores") then
- table.insert(recipes, {"moreores:mithril_lump", "technic:mithril_dust 2"})
- table.insert(recipes, {"moreores:silver_lump", "technic:silver_dust 2"})
- table.insert(recipes, {"moreores:tin_lump", "technic:tin_dust 2"})
-end
-
-if minetest.get_modpath("gloopores") or minetest.get_modpath("glooptest") then
- table.insert(recipes, {"gloopores:alatro_lump", "technic:alatro_dust 2"})
- table.insert(recipes, {"gloopores:kalite_lump", "technic:kalite_dust 2"})
- table.insert(recipes, {"gloopores:arol_lump", "technic:arol_dust 2"})
- table.insert(recipes, {"gloopores:talinite_lump", "technic:talinite_dust 2"})
- table.insert(recipes, {"gloopores:akalin_lump", "technic:akalin_dust 2"})
-end
-
-if minetest.get_modpath("homedecor") then
- table.insert(recipes, {"home_decor:brass_ingot", "technic:brass_dust 1"})
-end
-
-for _, data in pairs(recipes) do
- technic.register_grinder_recipe({input = {data[1]}, output = data[2]})
-end
-
--- defuse common grinder unfriendly recipes
-if minetest.get_modpath("fake_fire") then -- from homedecor_modpack
- minetest.register_craft({ output='default:cobble 0', recipe={{'default:cobble'}}})
- minetest.register_craft({ output='default:gravel 0', recipe={{'default:gravel'}}})
-end
-
--- dusts
-local function register_dust(name, ingot)
- local lname = string.lower(name)
- lname = string.gsub(lname, ' ', '_')
- minetest.register_craftitem("technic:"..lname.."_dust", {
- description = S("%s Dust"):format(S(name)),
- inventory_image = "technic_"..lname.."_dust.png",
- })
- if ingot then
- minetest.register_craft({
- type = "cooking",
- recipe = "technic:"..lname.."_dust",
- output = ingot,
- })
- technic.register_grinder_recipe({ input = {ingot}, output = "technic:"..lname.."_dust 1" })
- end
-end
-
--- Sorted alphibeticaly
-register_dust("Brass", "technic:brass_ingot")
-register_dust("Bronze", "default:bronze_ingot")
-register_dust("Carbon Steel", "technic:carbon_steel_ingot")
-register_dust("Cast Iron", "technic:cast_iron_ingot")
-register_dust("Chromium", "technic:chromium_ingot")
-register_dust("Coal", nil)
-register_dust("Copper", "default:copper_ingot")
-register_dust("Lead", "technic:lead_ingot")
-register_dust("Gold", "default:gold_ingot")
-register_dust("Mithril", "moreores:mithril_ingot")
-register_dust("Silver", "moreores:silver_ingot")
-register_dust("Stainless Steel", "technic:stainless_steel_ingot")
-register_dust("Sulfur", nil)
-register_dust("Tin", "moreores:tin_ingot")
-register_dust("Wrought Iron", "technic:wrought_iron_ingot")
-register_dust("Zinc", "technic:zinc_ingot")
-if minetest.get_modpath("gloopores") or minetest.get_modpath("glooptest") then
- register_dust("Akalin", "glooptest:akalin_ingot")
- register_dust("Alatro", "glooptest:alatro_ingot")
- register_dust("Arol", "glooptest:arol_ingot")
- register_dust("Kalite", nil)
- register_dust("Talinite", "glooptest:talinite_ingot")
-end
-
-for p = 0, 35 do
- local nici = (p ~= 0 and p ~= 7 and p ~= 35) and 1 or nil
- local psuffix = p == 7 and "" or p
- local ingot = "technic:uranium"..psuffix.."_ingot"
- local dust = "technic:uranium"..psuffix.."_dust"
- minetest.register_craftitem(dust, {
- description = S("%s Dust"):format(string.format(S("%.1f%%-Fissile Uranium"), p/10)),
- inventory_image = "technic_uranium_dust.png",
- on_place_on_ground = minetest.craftitem_place_item,
- groups = {uranium_dust=1, not_in_creative_inventory=nici},
- })
- minetest.register_craft({
- type = "cooking",
- recipe = dust,
- output = ingot,
- })
- technic.register_grinder_recipe({ input = {ingot}, output = dust })
-end
-
-local function uranium_dust(p)
- return "technic:uranium"..(p == 7 and "" or p).."_dust"
-end
-for pa = 0, 34 do
- for pb = pa+1, 35 do
- local pc = (pa+pb)/2
- if pc == math.floor(pc) then
- minetest.register_craft({
- type = "shapeless",
- recipe = { uranium_dust(pa), uranium_dust(pb) },
- output = uranium_dust(pc).." 2",
- })
- end
- end
-end
-
-minetest.register_craft({
- type = "fuel",
- recipe = "technic:coal_dust",
- burntime = 50,
-})
-
-if minetest.get_modpath("gloopores") or minetest.get_modpath("glooptest") then
- minetest.register_craft({
- type = "fuel",
- recipe = "technic:kalite_dust",
- burntime = 37.5,
- })
-end
diff --git a/technic/technic/machines/register/grindings.lua b/technic/technic/machines/register/grindings.lua
deleted file mode 100644
index 9231166..0000000
--- a/technic/technic/machines/register/grindings.lua
+++ /dev/null
@@ -1,62 +0,0 @@
-local S = technic.getter
-local moretrees = minetest.get_modpath("moretrees")
-local mesecons_materials = minetest.get_modpath("mesecons_materials")
-local dye = minetest.get_modpath("dye")
-
--- sawdust, the finest wood/tree grinding
-local sawdust = "technic:sawdust"
-minetest.register_craftitem(sawdust, {
- description = S("Sawdust"),
- inventory_image = "technic_sawdust.png",
-})
-minetest.register_craft({ type = "fuel", recipe = sawdust, burntime = 6 })
-technic.register_compressor_recipe({ input = {sawdust .. " 4"}, output = "default:wood" })
-
--- tree/wood grindings
-local function register_tree_grinding(name, tree, wood, extract, grinding_color)
- local lname = string.lower(name)
- lname = string.gsub(lname, ' ', '_')
- local grindings_name = "technic:"..lname.."_grindings"
- local inventory_image = "technic_"..lname.."_grindings.png"
- if grinding_color then
- inventory_image = inventory_image .. "^[colorize:" .. grinding_color
- end
- minetest.register_craftitem(grindings_name, {
- description = S("%s Grinding"):format(S(name)),
- inventory_image = inventory_image,
- })
- minetest.register_craft({
- type = "fuel",
- recipe = grindings_name,
- burntime = 8,
- })
- technic.register_grinder_recipe({ input = { tree }, output = grindings_name .. " 4" })
- technic.register_grinder_recipe({ input = { grindings_name }, output = sawdust .. " 4" })
- if wood then
- technic.register_grinder_recipe({ input = { wood }, output = grindings_name })
- end
- if extract then
- technic.register_extractor_recipe({ input = { grindings_name .. " 4" }, output = extract})
- technic.register_separating_recipe({
- input = { grindings_name .. " 4" },
- output = { sawdust .. " 4", extract }
- })
- end
-end
-
-local rubber_tree_planks = moretrees and "moretrees:rubber_tree_planks"
-local default_extract = dye and "dye:brown 2"
-
-local grinding_recipes = {
- {"Common Tree", "group:tree", "group:wood", default_extract },
- {"Rubber Tree", "moretrees:rubber_tree_trunk", rubber_tree_planks, "technic:raw_latex"}
-}
-
-for _, data in pairs(grinding_recipes) do
- register_tree_grinding(unpack(data))
-end
-
-if moretrees and dye then
- -- https://en.wikipedia.org/wiki/Catechu ancient brown dye from the wood of acacia trees
- register_tree_grinding("Acacia", "moretrees:acacia_trunk", "moretrees:acacia_planks", "dye:brown 8")
-end
diff --git a/technic/technic/machines/register/init.lua b/technic/technic/machines/register/init.lua
deleted file mode 100644
index 1667d75..0000000
--- a/technic/technic/machines/register/init.lua
+++ /dev/null
@@ -1,33 +0,0 @@
-local path = technic.modpath.."/machines/register"
-
-dofile(path.."/common.lua")
-
--- Wiring stuff
-dofile(path.."/cables.lua")
-dofile(path.."/battery_box.lua")
-
--- Generators
-dofile(path.."/solar_array.lua")
-dofile(path.."/generator.lua")
-
--- API for machines
-dofile(path.."/recipes.lua")
-dofile(path.."/machine_base.lua")
-
--- Recipes
-dofile(path.."/alloy_recipes.lua")
-dofile(path.."/grinder_recipes.lua")
-dofile(path.."/extractor_recipes.lua")
-dofile(path.."/compressor_recipes.lua")
-dofile(path.."/centrifuge_recipes.lua")
-
--- Multi-Machine Recipes
-dofile(path.."/grindings.lua")
-
--- Machines
-dofile(path.."/alloy_furnace.lua")
-dofile(path.."/electric_furnace.lua")
-dofile(path.."/grinder.lua")
-dofile(path.."/extractor.lua")
-dofile(path.."/compressor.lua")
-dofile(path.."/centrifuge.lua")
diff --git a/technic/technic/machines/register/machine_base.lua b/technic/technic/machines/register/machine_base.lua
deleted file mode 100644
index 0c46261..0000000
--- a/technic/technic/machines/register/machine_base.lua
+++ /dev/null
@@ -1,197 +0,0 @@
-
-local S = technic.getter
-
-local tube = {
- insert_object = function(pos, node, stack, direction)
- local meta = minetest.get_meta(pos)
- local inv = meta:get_inventory()
- return inv:add_item("src", stack)
- end,
- can_insert = function(pos, node, stack, direction)
- local meta = minetest.get_meta(pos)
- local inv = meta:get_inventory()
- return inv:room_for_item("src", stack)
- end,
- connect_sides = {left = 1, right = 1, back = 1, top = 1, bottom = 1},
-}
-
-local function round(v)
- return math.floor(v + 0.5)
-end
-
-function technic.register_base_machine(data)
- local typename = data.typename
- local input_size = technic.recipes[typename].input_size
- local machine_name = data.machine_name
- local machine_desc = data.machine_desc
- local tier = data.tier
- local ltier = string.lower(tier)
-
- local groups = {cracky = 2, technic_machine = 1}
- local active_groups = {cracky = 2, technic_machine = 1, not_in_creative_inventory = 1}
- if data.tube then
- groups.tubedevice = 1
- groups.tubedevice_receiver = 1
- active_groups.tubedevice = 1
- active_groups.tubedevice_receiver = 1
- end
-
-
- local formspec =
- "invsize[8,9;]"..
- "list[current_name;src;"..(4-input_size)..",1;"..input_size..",1;]"..
- "list[current_name;dst;5,1;2,2;]"..
- "list[current_player;main;0,5;8,4;]"..
- "label[0,0;"..machine_desc:format(tier).."]"..
- "listring[current_name;dst]"..
- "listring[current_player;main]"..
- "listring[current_name;src]"..
- "listring[current_player;main]"
- if data.upgrade then
- formspec = formspec..
- "list[current_name;upgrade1;1,3;1,1;]"..
- "list[current_name;upgrade2;2,3;1,1;]"..
- "label[1,4;"..S("Upgrade Slots").."]"..
- "listring[current_name;upgrade1]"..
- "listring[current_player;main]"..
- "listring[current_name;upgrade2]"..
- "listring[current_player;main]"
- end
-
- local run = function(pos, node)
- local meta = minetest.get_meta(pos)
- local inv = meta:get_inventory()
- local eu_input = meta:get_int(tier.."_EU_input")
-
- local machine_desc_tier = machine_desc:format(tier)
- local machine_node = "technic:"..ltier.."_"..machine_name
- local machine_demand = data.demand
-
- -- Setup meta data if it does not exist.
- if not eu_input then
- meta:set_int(tier.."_EU_demand", machine_demand[1])
- meta:set_int(tier.."_EU_input", 0)
- return
- end
-
- local EU_upgrade, tube_upgrade = 0, 0
- if data.upgrade then
- EU_upgrade, tube_upgrade = technic.handle_machine_upgrades(meta)
- end
- if data.tube then
- technic.handle_machine_pipeworks(pos, tube_upgrade)
- end
-
- local powered = eu_input >= machine_demand[EU_upgrade+1]
- if powered then
- meta:set_int("src_time", meta:get_int("src_time") + round(data.speed*10))
- end
- while true do
- local result = technic.get_recipe(typename, inv:get_list("src"))
- if not result then
- technic.swap_node(pos, machine_node)
- meta:set_string("infotext", S("%s Idle"):format(machine_desc_tier))
- meta:set_int(tier.."_EU_demand", 0)
- meta:set_int("src_time", 0)
- return
- end
- meta:set_int(tier.."_EU_demand", machine_demand[EU_upgrade+1])
- technic.swap_node(pos, machine_node.."_active")
- meta:set_string("infotext", S("%s Active"):format(machine_desc_tier))
- if meta:get_int("src_time") < round(result.time*10) then
- if not powered then
- technic.swap_node(pos, machine_node)
- meta:set_string("infotext", S("%s Unpowered"):format(machine_desc_tier))
- end
- return
- end
- local output = result.output
- if type(output) ~= "table" then output = { output } end
- local output_stacks = {}
- for _, o in ipairs(output) do
- table.insert(output_stacks, ItemStack(o))
- end
- local room_for_output = true
- inv:set_size("dst_tmp", inv:get_size("dst"))
- inv:set_list("dst_tmp", inv:get_list("dst"))
- for _, o in ipairs(output_stacks) do
- if not inv:room_for_item("dst_tmp", o) then
- room_for_output = false
- break
- end
- inv:add_item("dst_tmp", o)
- end
- if not room_for_output then
- technic.swap_node(pos, machine_node)
- meta:set_string("infotext", S("%s Idle"):format(machine_desc_tier))
- meta:set_int(tier.."_EU_demand", 0)
- meta:set_int("src_time", round(result.time*10))
- return
- end
- meta:set_int("src_time", meta:get_int("src_time") - round(result.time*10))
- inv:set_list("src", result.new_input)
- inv:set_list("dst", inv:get_list("dst_tmp"))
- end
- end
-
- minetest.register_node("technic:"..ltier.."_"..machine_name, {
- description = machine_desc:format(tier),
- tiles = {"technic_"..ltier.."_"..machine_name.."_top.png",
- "technic_"..ltier.."_"..machine_name.."_bottom.png",
- "technic_"..ltier.."_"..machine_name.."_side.png",
- "technic_"..ltier.."_"..machine_name.."_side.png",
- "technic_"..ltier.."_"..machine_name.."_side.png",
- "technic_"..ltier.."_"..machine_name.."_front.png"},
- paramtype2 = "facedir",
- groups = groups,
- tube = data.tube and tube or nil,
- legacy_facedir_simple = true,
- sounds = default.node_sound_wood_defaults(),
- on_construct = function(pos)
- local node = minetest.get_node(pos)
- local meta = minetest.get_meta(pos)
- meta:set_string("infotext", machine_desc:format(tier))
- meta:set_int("tube_time", 0)
- meta:set_string("formspec", formspec)
- local inv = meta:get_inventory()
- inv:set_size("src", input_size)
- inv:set_size("dst", 4)
- inv:set_size("upgrade1", 1)
- inv:set_size("upgrade2", 1)
- end,
- can_dig = technic.machine_can_dig,
- allow_metadata_inventory_put = technic.machine_inventory_put,
- allow_metadata_inventory_take = technic.machine_inventory_take,
- allow_metadata_inventory_move = technic.machine_inventory_move,
- technic_run = run,
- after_place_node = data.tube and pipeworks.after_place,
- after_dig_node = technic.machine_after_dig_node
- })
-
- minetest.register_node("technic:"..ltier.."_"..machine_name.."_active",{
- description = machine_desc:format(tier),
- tiles = {"technic_"..ltier.."_"..machine_name.."_top.png",
- "technic_"..ltier.."_"..machine_name.."_bottom.png",
- "technic_"..ltier.."_"..machine_name.."_side.png",
- "technic_"..ltier.."_"..machine_name.."_side.png",
- "technic_"..ltier.."_"..machine_name.."_side.png",
- "technic_"..ltier.."_"..machine_name.."_front_active.png"},
- paramtype2 = "facedir",
- drop = "technic:"..ltier.."_"..machine_name,
- groups = active_groups,
- legacy_facedir_simple = true,
- sounds = default.node_sound_wood_defaults(),
- tube = data.tube and tube or nil,
- can_dig = technic.machine_can_dig,
- allow_metadata_inventory_put = technic.machine_inventory_put,
- allow_metadata_inventory_take = technic.machine_inventory_take,
- allow_metadata_inventory_move = technic.machine_inventory_move,
- technic_run = run,
- technic_disabled_machine_name = "technic:"..ltier.."_"..machine_name,
- })
-
- technic.register_machine(tier, "technic:"..ltier.."_"..machine_name, technic.receiver)
- technic.register_machine(tier, "technic:"..ltier.."_"..machine_name.."_active", technic.receiver)
-
-end -- End registration
-
diff --git a/technic/technic/machines/register/recipes.lua b/technic/technic/machines/register/recipes.lua
deleted file mode 100644
index d30fd4f..0000000
--- a/technic/technic/machines/register/recipes.lua
+++ /dev/null
@@ -1,107 +0,0 @@
-local have_ui = minetest.get_modpath("unified_inventory")
-
-technic.recipes = { cooking = { input_size = 1, output_size = 1 } }
-function technic.register_recipe_type(typename, origdata)
- local data = {}
- for k, v in pairs(origdata) do data[k] = v end
- data.input_size = data.input_size or 1
- data.output_size = data.output_size or 1
- if have_ui and unified_inventory.register_craft_type and data.output_size == 1 then
- unified_inventory.register_craft_type(typename, {
- description = data.description,
- width = data.input_size,
- height = 1,
- })
- end
- data.recipes = {}
- technic.recipes[typename] = data
-end
-
-local function get_recipe_index(items)
- if not items or type(items) ~= "table" then return false end
- local l = {}
- for i, stack in ipairs(items) do
- l[i] = ItemStack(stack):get_name()
- end
- table.sort(l)
- return table.concat(l, "/")
-end
-
-local function register_recipe(typename, data)
- -- Handle aliases
- for i, stack in ipairs(data.input) do
- data.input[i] = ItemStack(stack):to_string()
- end
- if type(data.output) == "table" then
- for i, v in ipairs(data.output) do
- data.output[i] = ItemStack(data.output[i]):to_string()
- end
- else
- data.output = ItemStack(data.output):to_string()
- end
-
- local recipe = {time = data.time, input = {}, output = data.output}
- local index = get_recipe_index(data.input)
- if not index then
- print("[Technic] ignored registration of garbage recipe!")
- return
- end
- for _, stack in ipairs(data.input) do
- recipe.input[ItemStack(stack):get_name()] = ItemStack(stack):get_count()
- end
-
- technic.recipes[typename].recipes[index] = recipe
- if unified_inventory and technic.recipes[typename].output_size == 1 then
- unified_inventory.register_craft({
- type = typename,
- output = data.output,
- items = data.input,
- width = 0,
- })
- end
-end
-
-function technic.register_recipe(typename, data)
- minetest.after(0.01, register_recipe, typename, data) -- Handle aliases
-end
-
-function technic.get_recipe(typename, items)
- if typename == "cooking" then -- Already builtin in Minetest, so use that
- local result, new_input = minetest.get_craft_result({
- method = "cooking",
- width = 1,
- items = items})
- -- Compatibility layer
- if not result or result.time == 0 then
- return nil
- else
- return {time = result.time,
- new_input = new_input.items,
- output = result.item}
- end
- end
- local index = get_recipe_index(items)
- if not index then
- print("[Technic] ignored registration of garbage recipe!")
- return
- end
- local recipe = technic.recipes[typename].recipes[index]
- if recipe then
- local new_input = {}
- for i, stack in ipairs(items) do
- if stack:get_count() < recipe.input[stack:get_name()] then
- return nil
- else
- new_input[i] = ItemStack(stack)
- new_input[i]:take_item(recipe.input[stack:get_name()])
- end
- end
- return {time = recipe.time,
- new_input = new_input,
- output = recipe.output}
- else
- return nil
- end
-end
-
-
diff --git a/technic/technic/machines/register/solar_array.lua b/technic/technic/machines/register/solar_array.lua
deleted file mode 100644
index 39f50d2..0000000
--- a/technic/technic/machines/register/solar_array.lua
+++ /dev/null
@@ -1,65 +0,0 @@
-
-local S = technic.getter
-
-function technic.register_solar_array(data)
- local tier = data.tier
- local ltier = string.lower(tier)
-
- local run = function(pos, node)
- -- The action here is to make the solar array produce power
- -- Power is dependent on the light level and the height above ground
- -- There are many ways to cheat by using other light sources like lamps.
- -- As there is no way to determine if light is sunlight that is just a shame.
- -- To take care of some of it solar panels do not work outside daylight hours or if
- -- built below 0m
- local pos1 = {}
- local machine_name = S("Arrayed Solar %s Generator"):format(tier)
- pos1.y = pos.y + 1
- pos1.x = pos.x
- pos1.z = pos.z
-
- technic.get_or_load_node(pos1)
- local light = minetest.get_node_light(pos1, nil)
- local time_of_day = minetest.get_timeofday()
- local meta = minetest.get_meta(pos)
- light = light or 0
-
- -- turn on array only during day time and if sufficient light
- -- I know this is counter intuitive when cheating by using other light sources.
- if light >= 12 and time_of_day >= 0.24 and time_of_day <= 0.76 and pos.y > 0 then
- local charge_to_give = math.floor((light + pos.y) * data.power)
- charge_to_give = math.max(charge_to_give, 0)
- charge_to_give = math.min(charge_to_give, data.power * 50)
- meta:set_string("infotext", S("@1 Active (@2 EU)", machine_name, technic.prettynum(charge_to_give)))
- meta:set_int(tier.."_EU_supply", charge_to_give)
- else
- meta:set_string("infotext", S("%s Idle"):format(machine_name))
- meta:set_int(tier.."_EU_supply", 0)
- end
- end
-
- minetest.register_node("technic:solar_array_"..ltier, {
- tiles = {"technic_"..ltier.."_solar_array_top.png", "technic_"..ltier.."_solar_array_bottom.png",
- "technic_"..ltier.."_solar_array_side.png", "technic_"..ltier.."_solar_array_side.png",
- "technic_"..ltier.."_solar_array_side.png", "technic_"..ltier.."_solar_array_side.png"},
- groups = {snappy=2, choppy=2, oddly_breakable_by_hand=2, technic_machine=1},
- sounds = default.node_sound_wood_defaults(),
- description = S("Arrayed Solar %s Generator"):format(tier),
- active = false,
- drawtype = "nodebox",
- paramtype = "light",
- node_box = {
- type = "fixed",
- fixed = {-0.5, -0.5, -0.5, 0.5, 0, 0.5},
- },
- on_construct = function(pos)
- local meta = minetest.get_meta(pos)
- local name = minetest.get_node(pos).name
- meta:set_int(tier.."_EU_supply", 0)
- end,
- technic_run = run,
- })
-
- technic.register_machine(tier, "technic:solar_array_"..ltier, technic.producer)
-end
-
diff --git a/technic/technic/machines/supply_converter.lua b/technic/technic/machines/supply_converter.lua
deleted file mode 100644
index ffcd40d..0000000
--- a/technic/technic/machines/supply_converter.lua
+++ /dev/null
@@ -1,80 +0,0 @@
--- The supply converter is a generic device which can convert from
--- LV to MV and back, and HV to MV and back.
--- The machine is configured by the wiring below and above it.
---
--- It works like this:
--- The top side is setup as the receiver side, the bottom as the producer side.
--- Once the receiver side is powered it will deliver power to the other side.
--- Unused power is wasted just like any other producer!
-
-local S = technic.getter
-
-local run = function(pos, node)
- local demand = 10000
- local remain = 0.9
- -- Machine information
- local machine_name = S("Supply Converter")
- local meta = minetest.get_meta(pos)
-
- local pos_up = {x=pos.x, y=pos.y+1, z=pos.z}
- local pos_down = {x=pos.x, y=pos.y-1, z=pos.z}
- local name_up = minetest.get_node(pos_up).name
- local name_down = minetest.get_node(pos_down).name
-
- local from = technic.get_cable_tier(name_up)
- local to = technic.get_cable_tier(name_down)
-
- if from and to then
- local input = meta:get_int(from.."_EU_input")
- meta:set_int(from.."_EU_demand", demand)
- meta:set_int(from.."_EU_supply", 0)
- meta:set_int(to.."_EU_demand", 0)
- meta:set_int(to.."_EU_supply", input * remain)
- meta:set_string("infotext", S("@1 (@2 @3 -> @4 @5)", machine_name, technic.prettynum(input), from, technic.prettynum(input * remain), to))
- else
- meta:set_string("infotext", S("%s Has Bad Cabling"):format(machine_name))
- if to then
- meta:set_int(to.."_EU_supply", 0)
- end
- if from then
- meta:set_int(from.."_EU_demand", 0)
- end
- return
- end
-
-end
-
-minetest.register_node("technic:supply_converter", {
- description = S("Supply Converter"),
- tiles = {"technic_supply_converter_top.png", "technic_supply_converter_bottom.png",
- "technic_supply_converter_side.png", "technic_supply_converter_side.png",
- "technic_supply_converter_side.png", "technic_supply_converter_side.png"},
- groups = {snappy=2, choppy=2, oddly_breakable_by_hand=2, technic_machine=1},
- sounds = default.node_sound_wood_defaults(),
- drawtype = "nodebox",
- paramtype = "light",
- node_box = {
- type = "fixed",
- fixed = {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5},
- },
- on_construct = function(pos)
- local meta = minetest.get_meta(pos)
- meta:set_string("infotext", S("Supply Converter"))
- meta:set_float("active", false)
- end,
- technic_run = run,
-})
-
-minetest.register_craft({
- output = 'technic:supply_converter 1',
- recipe = {
- {'technic:fine_gold_wire', 'technic:rubber', 'technic:doped_silicon_wafer'},
- {'technic:mv_transformer', 'technic:machine_casing', 'technic:lv_transformer'},
- {'technic:mv_cable0', 'technic:rubber', 'technic:lv_cable0'},
- }
-})
-
-for tier, machines in pairs(technic.machines) do
- technic.register_machine(tier, "technic:supply_converter", technic.producer_receiver)
-end
-
diff --git a/technic/technic/machines/switching_station.lua b/technic/technic/machines/switching_station.lua
deleted file mode 100644
index d6f23a3..0000000
--- a/technic/technic/machines/switching_station.lua
+++ /dev/null
@@ -1,404 +0,0 @@
--- SWITCHING STATION
--- The switching station is the center of all power distribution on an electric network.
---
--- The station collects power from sources (PR), distributes it to sinks (RE),
--- and uses the excess/shortfall to charge and discharge batteries (BA).
---
--- For now, all supply and demand values are expressed in kW.
---
--- It works like this:
--- All PR,BA,RE nodes are indexed and tagged with the switching station.
--- The tagging is to allow more stations to be built without allowing a cheat
--- with duplicating power.
--- All the RE nodes are queried for their current EU demand. Those which are off
--- would require no or a small standby EU demand, while those which are on would
--- require more.
--- If the total demand is less than the available power they are all updated with the
--- demand number.
--- If any surplus exists from the PR nodes the batteries will be charged evenly with this.
--- If the total demand requires draw on the batteries they will be discharged evenly.
---
--- If the total demand is more than the available power all RE nodes will be shut down.
--- We have a brown-out situation.
---
--- Hence all the power distribution logic resides in this single node.
---
--- Nodes connected to the network will have one or more of these parameters as meta data:
--- <LV|MV|HV>_EU_supply : Exists for PR and BA node types. This is the EU value supplied by the node. Output
--- <LV|MV|HV>_EU_demand : Exists for RE and BA node types. This is the EU value the node requires to run. Output
--- <LV|MV|HV>_EU_input : Exists for RE and BA node types. This is the actual EU value the network can give the node. Input
---
--- The reason the LV|MV|HV type is prepended toe meta data is because some machine could require several supplies to work.
--- This way the supplies are separated per network.
-
-technic.networks = {}
-
-local S = technic.getter
-
-minetest.register_craft({
- output = "technic:switching_station",
- recipe = {
- {"", "technic:lv_transformer", ""},
- {"default:copper_ingot", "technic:machine_casing", "default:copper_ingot"},
- {"technic:lv_cable0", "technic:lv_cable0", "technic:lv_cable0"}
- }
-})
-
-minetest.register_node("technic:switching_station",{
- description = S("Switching Station"),
- tiles = {"technic_water_mill_top_active.png", "technic_water_mill_top_active.png",
- "technic_water_mill_top_active.png", "technic_water_mill_top_active.png",
- "technic_water_mill_top_active.png", "technic_water_mill_top_active.png"},
- groups = {snappy=2, choppy=2, oddly_breakable_by_hand=2},
- sounds = default.node_sound_wood_defaults(),
- drawtype = "nodebox",
- paramtype = "light",
- node_box = {
- type = "fixed",
- fixed = {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5},
- },
- on_construct = function(pos)
- local meta = minetest.get_meta(pos)
- meta:set_string("infotext", S("Switching Station"))
- meta:set_string("active", 1)
- end,
-})
-
---------------------------------------------------
--- Functions to traverse the electrical network
---------------------------------------------------
-
--- Add a wire node to the LV/MV/HV network
-local add_new_cable_node = function(nodes, pos)
- -- Ignore if the node has already been added
- for i = 1, #nodes do
- if pos.x == nodes[i].x and
- pos.y == nodes[i].y and
- pos.z == nodes[i].z then
- return false
- end
- end
- table.insert(nodes, {x=pos.x, y=pos.y, z=pos.z, visited=1})
- return true
-end
-
--- Generic function to add found connected nodes to the right classification array
-local check_node_subp = function(PR_nodes, RE_nodes, BA_nodes, SP_nodes, all_nodes, pos, machines, tier, sw_pos, from_below)
- technic.get_or_load_node(pos)
- local meta = minetest.get_meta(pos)
- local name = minetest.get_node(pos).name
-
- if technic.is_tier_cable(name, tier) then
- add_new_cable_node(all_nodes, pos)
- elseif machines[name] then
- --dprint(name.." is a "..machines[name])
- if machines[name] == technic.producer then
- add_new_cable_node(PR_nodes, pos)
- elseif machines[name] == technic.receiver then
- add_new_cable_node(RE_nodes, pos)
- elseif machines[name] == technic.producer_receiver then
- add_new_cable_node(PR_nodes, pos)
- add_new_cable_node(RE_nodes, pos)
- elseif machines[name] == "SPECIAL" and
- (pos.x ~= sw_pos.x or pos.y ~= sw_pos.y or pos.z ~= sw_pos.z) and
- from_below then
- -- Another switching station -> disable it
- add_new_cable_node(SP_nodes, pos)
- meta:set_int("active", 0)
- meta:set_string("active_pos", minetest.serialize(sw_pos))
- elseif machines[name] == technic.battery then
- add_new_cable_node(BA_nodes, pos)
- end
-
- meta:set_int(tier.."_EU_timeout", 2) -- Touch node
- end
-end
-
--- Traverse a network given a list of machines and a cable type name
-local traverse_network = function(PR_nodes, RE_nodes, BA_nodes, SP_nodes, all_nodes, i, machines, tier, sw_pos)
- local pos = all_nodes[i]
- local positions = {
- {x=pos.x+1, y=pos.y, z=pos.z},
- {x=pos.x-1, y=pos.y, z=pos.z},
- {x=pos.x, y=pos.y+1, z=pos.z},
- {x=pos.x, y=pos.y-1, z=pos.z},
- {x=pos.x, y=pos.y, z=pos.z+1},
- {x=pos.x, y=pos.y, z=pos.z-1}}
- --print("ON")
- for i, cur_pos in pairs(positions) do
- check_node_subp(PR_nodes, RE_nodes, BA_nodes, SP_nodes, all_nodes, cur_pos, machines, tier, sw_pos, i == 3)
- end
-end
-
-local touch_nodes = function(list, tier)
- for _, pos in ipairs(list) do
- local meta = minetest.get_meta(pos)
- meta:set_int(tier.."_EU_timeout", 2) -- Touch node
- end
-end
-
-local get_network = function(sw_pos, pos1, tier)
- local cached = technic.networks[minetest.hash_node_position(pos1)]
- if cached and cached.tier == tier then
- touch_nodes(cached.PR_nodes, tier)
- touch_nodes(cached.BA_nodes, tier)
- touch_nodes(cached.RE_nodes, tier)
- for _, pos in ipairs(cached.SP_nodes) do
- local meta = minetest.get_meta(pos)
- meta:set_int("active", 0)
- meta:set_string("active_pos", minetest.serialize(sw_pos))
- end
- return cached.PR_nodes, cached.BA_nodes, cached.RE_nodes
- end
- local i = 1
- local PR_nodes = {}
- local BA_nodes = {}
- local RE_nodes = {}
- local SP_nodes = {}
- local all_nodes = {pos1}
- repeat
- traverse_network(PR_nodes, RE_nodes, BA_nodes, SP_nodes, all_nodes,
- i, technic.machines[tier], tier, sw_pos)
- i = i + 1
- until all_nodes[i] == nil
- technic.networks[minetest.hash_node_position(pos1)] = {tier = tier, PR_nodes = PR_nodes,
- RE_nodes = RE_nodes, BA_nodes = BA_nodes, SP_nodes = SP_nodes}
- return PR_nodes, BA_nodes, RE_nodes
-end
-
------------------------------------------------
--- The action code for the switching station --
------------------------------------------------
-minetest.register_abm({
- nodenames = {"technic:switching_station"},
- label = "Switching Station", -- allows the mtt profiler to profile this abm individually
- interval = 1,
- chance = 1,
- action = function(pos, node, active_object_count, active_object_count_wider)
- local meta = minetest.get_meta(pos)
- local meta1 = nil
- local pos1 = {}
- local PR_EU = 0 -- EUs from PR nodes
- local BA_PR_EU = 0 -- EUs from BA nodes (discharching)
- local BA_RE_EU = 0 -- EUs to BA nodes (charging)
- local RE_EU = 0 -- EUs to RE nodes
-
- local tier = ""
- local PR_nodes
- local BA_nodes
- local RE_nodes
- local machine_name = S("Switching Station")
-
- if meta:get_int("active") ~= 1 then
- meta:set_int("active", 1)
- local active_pos = minetest.deserialize(meta:get_string("active_pos"))
- if active_pos then
- local meta1 = minetest.get_meta(active_pos)
- meta:set_string("infotext", S("%s (Slave)"):format(meta1:get_string("infotext")))
- end
- return
- end
-
- -- Which kind of network are we on:
- pos1 = {x=pos.x, y=pos.y-1, z=pos.z}
-
- local name = minetest.get_node(pos1).name
- local tier = technic.get_cable_tier(name)
- if tier then
- PR_nodes, BA_nodes, RE_nodes = get_network(pos, pos1, tier)
- else
- --dprint("Not connected to a network")
- meta:set_string("infotext", S("%s Has No Network"):format(machine_name))
- return
- end
-
- -- Run all the nodes
- local function run_nodes(list)
- for _, pos2 in ipairs(list) do
- technic.get_or_load_node(pos2)
- local node2 = minetest.get_node(pos2)
- local nodedef
- if node2 and node2.name then
- nodedef = minetest.registered_nodes[node2.name]
- end
- if nodedef and nodedef.technic_run then
- nodedef.technic_run(pos2, node2)
- end
- end
- end
-
- run_nodes(PR_nodes)
- run_nodes(RE_nodes)
- run_nodes(BA_nodes)
-
- -- Strings for the meta data
- local eu_demand_str = tier.."_EU_demand"
- local eu_input_str = tier.."_EU_input"
- local eu_supply_str = tier.."_EU_supply"
-
- -- Distribute charge equally across multiple batteries.
- local charge_total = 0
- local battery_count = 0
-
- for n, pos1 in pairs(BA_nodes) do
- meta1 = minetest.get_meta(pos1)
- local charge = meta1:get_int("internal_EU_charge")
-
- if (meta1:get_int(eu_demand_str) ~= 0) then
- charge_total = charge_total + charge
- battery_count = battery_count + 1
- end
- end
-
- local charge_distributed = math.floor(charge_total / battery_count)
-
- for n, pos1 in pairs(BA_nodes) do
- meta1 = minetest.get_meta(pos1)
-
- if (meta1:get_int(eu_demand_str) ~= 0) then
- meta1:set_int("internal_EU_charge", charge_distributed)
- end
- end
-
- -- Get all the power from the PR nodes
- local PR_eu_supply = 0 -- Total power
- for _, pos1 in pairs(PR_nodes) do
- meta1 = minetest.get_meta(pos1)
- PR_eu_supply = PR_eu_supply + meta1:get_int(eu_supply_str)
- end
- --dprint("Total PR supply:"..PR_eu_supply)
-
- -- Get all the demand from the RE nodes
- local RE_eu_demand = 0
- for _, pos1 in pairs(RE_nodes) do
- meta1 = minetest.get_meta(pos1)
- RE_eu_demand = RE_eu_demand + meta1:get_int(eu_demand_str)
- end
- --dprint("Total RE demand:"..RE_eu_demand)
-
- -- Get all the power from the BA nodes
- local BA_eu_supply = 0
- for _, pos1 in pairs(BA_nodes) do
- meta1 = minetest.get_meta(pos1)
- BA_eu_supply = BA_eu_supply + meta1:get_int(eu_supply_str)
- end
- --dprint("Total BA supply:"..BA_eu_supply)
-
- -- Get all the demand from the BA nodes
- local BA_eu_demand = 0
- for _, pos1 in pairs(BA_nodes) do
- meta1 = minetest.get_meta(pos1)
- BA_eu_demand = BA_eu_demand + meta1:get_int(eu_demand_str)
- end
- --dprint("Total BA demand:"..BA_eu_demand)
-
- meta:set_string("infotext",
- S("@1. Supply: @2 Demand: @3",
- machine_name, technic.prettynum(PR_eu_supply), technic.prettynum(RE_eu_demand)))
-
- -- If the PR supply is enough for the RE demand supply them all
- if PR_eu_supply >= RE_eu_demand then
- --dprint("PR_eu_supply"..PR_eu_supply.." >= RE_eu_demand"..RE_eu_demand)
- for _, pos1 in pairs(RE_nodes) do
- meta1 = minetest.get_meta(pos1)
- local eu_demand = meta1:get_int(eu_demand_str)
- meta1:set_int(eu_input_str, eu_demand)
- end
- -- We have a surplus, so distribute the rest equally to the BA nodes
- -- Let's calculate the factor of the demand
- PR_eu_supply = PR_eu_supply - RE_eu_demand
- local charge_factor = 0 -- Assume all batteries fully charged
- if BA_eu_demand > 0 then
- charge_factor = PR_eu_supply / BA_eu_demand
- end
- for n, pos1 in pairs(BA_nodes) do
- meta1 = minetest.get_meta(pos1)
- local eu_demand = meta1:get_int(eu_demand_str)
- meta1:set_int(eu_input_str, math.floor(eu_demand * charge_factor))
- --dprint("Charging battery:"..math.floor(eu_demand*charge_factor))
- end
- return
- end
-
- -- If the PR supply is not enough for the RE demand we will discharge the batteries too
- if PR_eu_supply + BA_eu_supply >= RE_eu_demand then
- --dprint("PR_eu_supply "..PR_eu_supply.."+BA_eu_supply "..BA_eu_supply.." >= RE_eu_demand"..RE_eu_demand)
- for _, pos1 in pairs(RE_nodes) do
- meta1 = minetest.get_meta(pos1)
- local eu_demand = meta1:get_int(eu_demand_str)
- meta1:set_int(eu_input_str, eu_demand)
- end
- -- We have a deficit, so distribute to the BA nodes
- -- Let's calculate the factor of the supply
- local charge_factor = 0 -- Assume all batteries depleted
- if BA_eu_supply > 0 then
- charge_factor = (PR_eu_supply - RE_eu_demand) / BA_eu_supply
- end
- for n,pos1 in pairs(BA_nodes) do
- meta1 = minetest.get_meta(pos1)
- local eu_supply = meta1:get_int(eu_supply_str)
- meta1:set_int(eu_input_str, math.floor(eu_supply * charge_factor))
- --dprint("Discharging battery:"..math.floor(eu_supply*charge_factor))
- end
- return
- end
-
- -- If the PR+BA supply is not enough for the RE demand: Power only the batteries
- local charge_factor = 0 -- Assume all batteries fully charged
- if BA_eu_demand > 0 then
- charge_factor = PR_eu_supply / BA_eu_demand
- end
- for n, pos1 in pairs(BA_nodes) do
- meta1 = minetest.get_meta(pos1)
- local eu_demand = meta1:get_int(eu_demand_str)
- meta1:set_int(eu_input_str, math.floor(eu_demand * charge_factor))
- end
- for n, pos1 in pairs(RE_nodes) do
- meta1 = minetest.get_meta(pos1)
- meta1:set_int(eu_input_str, 0)
- end
- end,
-})
-
--- Timeout ABM
--- Timeout for a node in case it was disconnected from the network
--- A node must be touched by the station continuously in order to function
-local function switching_station_timeout_count(pos, tier)
- local meta = minetest.get_meta(pos)
- local timeout = meta:get_int(tier.."_EU_timeout")
- if timeout <= 0 then
- meta:set_int(tier.."_EU_input", 0) -- Not needed anymore <-- actually, it is for supply converter
- return true
- else
- meta:set_int(tier.."_EU_timeout", timeout - 1)
- return false
- end
-end
-minetest.register_abm({
- nodenames = {"group:technic_machine"},
- interval = 1,
- chance = 1,
- action = function(pos, node, active_object_count, active_object_count_wider)
- for tier, machines in pairs(technic.machines) do
- if machines[node.name] and switching_station_timeout_count(pos, tier) then
- local nodedef = minetest.registered_nodes[node.name]
- if nodedef and nodedef.technic_disabled_machine_name then
- node.name = nodedef.technic_disabled_machine_name
- minetest.swap_node(pos, node)
- elseif nodedef and nodedef.technic_on_disable then
- nodedef.technic_on_disable(pos, node)
- end
- if nodedef then
- local meta = minetest.get_meta(pos)
- meta:set_string("infotext", S("%s Has No Network"):format(nodedef.description))
- end
- end
- end
- end,
-})
-
-for tier, machines in pairs(technic.machines) do
- -- SPECIAL will not be traversed
- technic.register_machine(tier, "technic:switching_station", "SPECIAL")
-end
-
diff --git a/technic/technic/models/technic_cylinder.obj b/technic/technic/models/technic_cylinder.obj
deleted file mode 100644
index 2622347..0000000
--- a/technic/technic/models/technic_cylinder.obj
+++ /dev/null
@@ -1,238 +0,0 @@
-# Blender v2.73 (sub 0) OBJ File: 'slope_test_cylinder_onetexture.blend'
-# www.blender.org
-o Cylinder_Cylinder.001
-v 0.000000 -0.500000 -0.500000
-v 0.000000 0.500000 -0.500000
-v 0.097545 -0.500000 -0.490393
-v 0.097545 0.500000 -0.490393
-v 0.191342 -0.500000 -0.461940
-v 0.191342 0.500000 -0.461940
-v 0.277785 -0.500000 -0.415735
-v 0.277785 0.500000 -0.415735
-v 0.353553 -0.500000 -0.353554
-v 0.353553 0.500000 -0.353554
-v 0.415735 -0.500000 -0.277785
-v 0.415735 0.500000 -0.277785
-v 0.461940 -0.500000 -0.191342
-v 0.461940 0.500000 -0.191342
-v 0.490393 -0.500000 -0.097545
-v 0.490393 0.500000 -0.097545
-v 0.500000 -0.500000 -0.000000
-v 0.500000 0.500000 -0.000000
-v 0.490393 -0.500000 0.097545
-v 0.490393 0.500000 0.097545
-v 0.461940 -0.500000 0.191341
-v 0.461940 0.500000 0.191341
-v 0.415735 -0.500000 0.277785
-v 0.415735 0.500000 0.277785
-v 0.353553 -0.500000 0.353553
-v 0.353553 0.500000 0.353553
-v 0.277785 -0.500000 0.415735
-v 0.277785 0.500000 0.415735
-v 0.191342 -0.500000 0.461940
-v 0.191342 0.500000 0.461940
-v 0.097545 -0.500000 0.490392
-v 0.097545 0.500000 0.490392
-v -0.000000 -0.500000 0.500000
-v -0.000000 0.500000 0.500000
-v -0.097545 -0.500000 0.490392
-v -0.097545 0.500000 0.490392
-v -0.191342 -0.500000 0.461939
-v -0.191342 0.500000 0.461939
-v -0.277785 -0.500000 0.415734
-v -0.277785 0.500000 0.415734
-v -0.353554 -0.500000 0.353553
-v -0.353554 0.500000 0.353553
-v -0.415735 -0.500000 0.277785
-v -0.415735 0.500000 0.277785
-v -0.461940 -0.500000 0.191341
-v -0.461940 0.500000 0.191341
-v -0.490393 -0.500000 0.097545
-v -0.490393 0.500000 0.097545
-v -0.500000 -0.500000 -0.000001
-v -0.500000 0.500000 -0.000001
-v -0.490393 -0.500000 -0.097546
-v -0.490393 0.500000 -0.097546
-v -0.461940 -0.500000 -0.191342
-v -0.461940 0.500000 -0.191342
-v -0.415734 -0.500000 -0.277786
-v -0.415734 0.500000 -0.277786
-v -0.353553 -0.500000 -0.353554
-v -0.353553 0.500000 -0.353554
-v -0.277785 -0.500000 -0.415735
-v -0.277785 0.500000 -0.415735
-v -0.191341 -0.500000 -0.461940
-v -0.191341 0.500000 -0.461940
-v -0.097544 -0.500000 -0.490393
-v -0.097544 0.500000 -0.490393
-vt 0.499996 0.999997
-vt 0.499995 0.000005
-vt 0.562495 0.000004
-vt 0.562496 0.999997
-vt 0.624995 0.000003
-vt 0.624997 0.999997
-vt 0.687496 0.000002
-vt 0.687497 0.999998
-vt 0.749997 0.000001
-vt 0.749997 0.999998
-vt 0.812497 0.000001
-vt 0.812497 0.999998
-vt 0.874997 -0.000000
-vt 0.874997 0.999998
-vt 0.937498 -0.000000
-vt 0.937498 0.999998
-vt 0.999998 -0.000000
-vt 0.999998 0.999998
-vt 0.000005 0.999997
-vt 0.000001 0.000024
-vt 0.062500 0.000023
-vt 0.062505 0.999996
-vt 0.124999 0.000021
-vt 0.125004 0.999996
-vt 0.187498 0.000020
-vt 0.187503 0.999995
-vt 0.249997 0.000018
-vt 0.250003 0.999994
-vt 0.312497 0.000017
-vt 0.312502 0.999994
-vt 0.374997 0.000015
-vt 0.375002 0.999993
-vt 0.437496 0.000014
-vt 0.437501 0.999993
-vt 0.402487 0.009601
-vt 0.597576 0.009614
-vt 0.691371 0.038072
-vt 0.777811 0.084282
-vt 0.853576 0.146469
-vt 0.915753 0.222242
-vt 0.961953 0.308689
-vt 0.990399 0.402487
-vt 1.000000 0.500033
-vt 0.990386 0.597577
-vt 0.961928 0.691370
-vt 0.915717 0.777811
-vt 0.853531 0.853575
-vt 0.777758 0.915753
-vt 0.691312 0.961952
-vt 0.597514 0.990398
-vt 0.402424 0.990386
-vt 0.308630 0.961928
-vt 0.222188 0.915717
-vt 0.146424 0.853531
-vt 0.084248 0.777759
-vt 0.038049 0.691313
-vt 0.009602 0.597515
-vt 0.000000 0.499970
-vt 0.009614 0.402425
-vt 0.038073 0.308630
-vt 0.084283 0.222189
-vt 0.146470 0.146424
-vt 0.222243 0.084248
-vt 0.308689 0.038048
-vt 0.499927 0.999999
-vt 0.084226 0.777725
-vt 0.000000 0.499927
-vt 0.222277 0.084224
-vt 0.500074 0.000000
-vt 0.915777 0.222279
-vt 1.000000 0.500077
-vt 0.777724 0.915775
-vn 0.000000 -0.685700 -0.727900
-vn 0.000000 0.685700 -0.727900
-vn 0.142000 0.685700 -0.713900
-vn 0.142000 -0.685700 -0.713900
-vn 0.278500 0.685700 -0.672500
-vn 0.278500 -0.685700 -0.672500
-vn 0.404400 0.685700 -0.605200
-vn 0.404400 -0.685700 -0.605200
-vn 0.514700 0.685700 -0.514700
-vn 0.514700 -0.685700 -0.514700
-vn 0.605200 0.685700 -0.404400
-vn 0.605200 -0.685700 -0.404400
-vn 0.672500 0.685700 -0.278500
-vn 0.672500 -0.685700 -0.278500
-vn 0.713900 0.685700 -0.142000
-vn 0.713900 -0.685700 -0.142000
-vn 0.727900 0.685700 0.000000
-vn 0.727900 -0.685700 0.000000
-vn 0.713900 0.685700 0.142000
-vn 0.713900 -0.685700 0.142000
-vn 0.672500 0.685700 0.278500
-vn 0.672500 -0.685700 0.278500
-vn 0.605200 0.685700 0.404400
-vn 0.605200 -0.685700 0.404400
-vn 0.514700 0.685700 0.514700
-vn 0.514700 -0.685700 0.514700
-vn 0.404400 0.685700 0.605200
-vn 0.404400 -0.685700 0.605200
-vn 0.278500 0.685700 0.672500
-vn 0.278500 -0.685700 0.672500
-vn 0.142000 0.685700 0.713900
-vn 0.142000 -0.685700 0.713900
-vn 0.000000 0.685700 0.727900
-vn 0.000000 -0.685700 0.727900
-vn -0.142000 0.685700 0.713900
-vn -0.142000 -0.685700 0.713900
-vn -0.278500 0.685700 0.672500
-vn -0.278500 -0.685700 0.672500
-vn -0.404400 0.685700 0.605200
-vn -0.404400 -0.685700 0.605200
-vn -0.514700 0.685700 0.514700
-vn -0.514700 -0.685700 0.514700
-vn -0.605200 0.685700 0.404400
-vn -0.605200 -0.685700 0.404400
-vn -0.672500 0.685700 0.278500
-vn -0.672500 -0.685700 0.278500
-vn -0.713900 0.685700 0.142000
-vn -0.713900 -0.685700 0.142000
-vn -0.727900 0.685700 0.000000
-vn -0.727900 -0.685700 0.000000
-vn -0.713900 0.685700 -0.142000
-vn -0.713900 -0.685700 -0.142000
-vn -0.672500 0.685700 -0.278500
-vn -0.672500 -0.685700 -0.278500
-vn -0.605200 0.685700 -0.404400
-vn -0.605200 -0.685700 -0.404400
-vn -0.514700 0.685700 -0.514700
-vn -0.514700 -0.685700 -0.514700
-vn -0.404400 0.685700 -0.605200
-vn -0.404400 -0.685700 -0.605200
-vn -0.278500 0.685700 -0.672500
-vn -0.278500 -0.685700 -0.672500
-vn -0.142000 0.685700 -0.713900
-vn -0.142000 -0.685700 -0.713900
-s 1
-f 1/1/1 2/2/2 4/3/3 3/4/4
-f 3/4/4 4/3/3 6/5/5 5/6/6
-f 5/6/6 6/5/5 8/7/7 7/8/8
-f 7/8/8 8/7/7 10/9/9 9/10/10
-f 9/10/10 10/9/9 12/11/11 11/12/12
-f 11/12/12 12/11/11 14/13/13 13/14/14
-f 13/14/14 14/13/13 16/15/15 15/16/16
-f 15/16/16 16/15/15 18/17/17 17/18/18
-f 17/19/18 18/20/17 20/21/19 19/22/20
-f 19/22/20 20/21/19 22/23/21 21/24/22
-f 21/24/22 22/23/21 24/25/23 23/26/24
-f 23/26/24 24/25/23 26/27/25 25/28/26
-f 25/28/26 26/27/25 28/29/27 27/30/28
-f 27/30/28 28/29/27 30/31/29 29/32/30
-f 29/32/30 30/31/29 32/33/31 31/34/32
-f 31/34/32 32/33/31 34/2/33 33/1/34
-f 33/1/34 34/2/33 36/3/35 35/4/36
-f 35/4/36 36/3/35 38/5/37 37/6/38
-f 37/6/38 38/5/37 40/7/39 39/8/40
-f 39/8/40 40/7/39 42/9/41 41/10/42
-f 41/10/42 42/9/41 44/11/43 43/12/44
-f 43/12/44 44/11/43 46/13/45 45/14/46
-f 45/14/46 46/13/45 48/15/47 47/16/48
-f 47/16/48 48/15/47 50/17/49 49/18/50
-f 49/19/50 50/20/49 52/21/51 51/22/52
-f 51/22/52 52/21/51 54/23/53 53/24/54
-f 53/24/54 54/23/53 56/25/55 55/26/56
-f 55/26/56 56/25/55 58/27/57 57/28/58
-f 57/28/58 58/27/57 60/29/59 59/30/60
-f 59/30/60 60/29/59 62/31/61 61/32/62
-f 4/35/3 2/2/2 64/36/63 62/37/61 60/38/59 58/39/57 56/40/55 54/41/53 52/42/51 50/43/49 48/44/47 46/45/45 44/46/43 42/47/41 40/48/39 38/49/37 36/50/35 34/1/33 32/51/31 30/52/29 28/53/27 26/54/25 24/55/23 22/56/21 20/57/19 18/58/17 16/59/15 14/60/13 12/61/11 10/62/9 8/63/7 6/64/5
-f 63/34/64 64/33/63 2/2/2 1/1/1
-f 61/32/62 62/31/61 64/33/63 63/34/64
-f 1/65/1 3/51/4 5/52/6 7/53/8 9/54/10 11/66/12 13/56/14 15/57/16 17/67/18 19/59/20 21/60/22 23/61/24 25/62/26 27/68/28 29/64/30 31/35/32 33/69/34 35/36/36 37/37/38 39/38/40 41/39/42 43/70/44 45/41/46 47/42/48 49/71/50 51/44/52 53/45/54 55/46/56 57/47/58 59/72/60 61/49/62 63/50/64
diff --git a/technic/technic/models/technic_cylinder_horizontal.obj b/technic/technic/models/technic_cylinder_horizontal.obj
deleted file mode 100644
index d00b1d6..0000000
--- a/technic/technic/models/technic_cylinder_horizontal.obj
+++ /dev/null
@@ -1,238 +0,0 @@
-# Blender v2.73 (sub 0) OBJ File: 'technic-cylinder-horizontal.blend'
-# www.blender.org
-o Cylinder_Cylinder.001
-v 0.500000 0.000000 -0.500000
-v -0.500000 0.000000 -0.500000
-v 0.500000 0.097545 -0.490393
-v -0.500000 0.097545 -0.490393
-v 0.500000 0.191342 -0.461940
-v -0.500000 0.191342 -0.461940
-v 0.500000 0.277785 -0.415735
-v -0.500000 0.277785 -0.415735
-v 0.500000 0.353553 -0.353553
-v -0.500000 0.353553 -0.353554
-v 0.500000 0.415735 -0.277785
-v -0.500000 0.415735 -0.277785
-v 0.500000 0.461940 -0.191342
-v -0.500000 0.461940 -0.191342
-v 0.500000 0.490393 -0.097545
-v -0.500000 0.490393 -0.097545
-v 0.500000 0.500000 -0.000000
-v -0.500000 0.500000 -0.000000
-v 0.500000 0.490393 0.097545
-v -0.500000 0.490393 0.097545
-v 0.500000 0.461940 0.191342
-v -0.500000 0.461940 0.191341
-v 0.500000 0.415735 0.277785
-v -0.500000 0.415735 0.277785
-v 0.500000 0.353553 0.353553
-v -0.500000 0.353553 0.353553
-v 0.500000 0.277785 0.415735
-v -0.500000 0.277785 0.415735
-v 0.500000 0.191342 0.461940
-v -0.500000 0.191342 0.461940
-v 0.500000 0.097545 0.490393
-v -0.500000 0.097545 0.490392
-v 0.500000 -0.000000 0.500000
-v -0.500000 -0.000000 0.500000
-v 0.500000 -0.097546 0.490392
-v -0.500000 -0.097545 0.490392
-v 0.500000 -0.191342 0.461940
-v -0.500000 -0.191342 0.461939
-v 0.500000 -0.277785 0.415734
-v -0.500000 -0.277785 0.415734
-v 0.500000 -0.353554 0.353553
-v -0.500000 -0.353554 0.353553
-v 0.500000 -0.415735 0.277785
-v -0.500000 -0.415735 0.277785
-v 0.500000 -0.461940 0.191341
-v -0.500000 -0.461940 0.191341
-v 0.500000 -0.490393 0.097545
-v -0.500000 -0.490393 0.097544
-v 0.500000 -0.500000 -0.000001
-v -0.500000 -0.500000 -0.000001
-v 0.500000 -0.490393 -0.097546
-v -0.500000 -0.490393 -0.097546
-v 0.500000 -0.461940 -0.191342
-v -0.500000 -0.461940 -0.191343
-v 0.500000 -0.415734 -0.277786
-v -0.500000 -0.415734 -0.277786
-v 0.500000 -0.353553 -0.353554
-v -0.500000 -0.353553 -0.353554
-v 0.500000 -0.277785 -0.415735
-v -0.500000 -0.277784 -0.415735
-v 0.500000 -0.191341 -0.461940
-v -0.500000 -0.191341 -0.461940
-v 0.500000 -0.097544 -0.490393
-v -0.500000 -0.097544 -0.490393
-vt 0.000003 0.499996
-vt 0.999995 0.499995
-vt 0.999996 0.562495
-vt 0.000002 0.562496
-vt 0.999997 0.624995
-vt 0.000003 0.624996
-vt 0.999998 0.687496
-vt 0.000002 0.687496
-vt 0.999999 0.749997
-vt 0.000002 0.749996
-vt 0.999999 0.812497
-vt 0.000002 0.812497
-vt 1.000000 0.874997
-vt 0.000001 0.874997
-vt 1.000000 0.937498
-vt 0.000001 0.937497
-vt 1.000000 0.999998
-vt 0.000001 0.999998
-vt 0.000003 0.000005
-vt 0.999976 0.000001
-vt 0.999977 0.062500
-vt 0.000003 0.062505
-vt 0.999978 0.124999
-vt 0.000004 0.125004
-vt 0.999980 0.187498
-vt 0.000005 0.187503
-vt 0.999982 0.249997
-vt 0.000005 0.250003
-vt 0.999983 0.312497
-vt 0.000006 0.312502
-vt 0.999985 0.374997
-vt 0.000007 0.375001
-vt 0.999986 0.437496
-vt 0.000007 0.437501
-vt 0.009601 0.597512
-vt 0.009614 0.402424
-vt 0.038072 0.308628
-vt 0.084283 0.222189
-vt 0.146469 0.146424
-vt 0.222242 0.084247
-vt 0.308689 0.038047
-vt 0.402487 0.009601
-vt 0.500033 -0.000000
-vt 0.597577 0.009613
-vt 0.691371 0.038072
-vt 0.777811 0.084283
-vt 0.853575 0.146469
-vt 0.915753 0.222242
-vt 0.961952 0.308688
-vt 0.990398 0.402486
-vt 0.990386 0.597576
-vt 0.961928 0.691370
-vt 0.915717 0.777812
-vt 0.853531 0.853576
-vt 0.777759 0.915752
-vt 0.691313 0.961951
-vt 0.597515 0.990398
-vt 0.499970 1.000000
-vt 0.402425 0.990386
-vt 0.308630 0.961927
-vt 0.222189 0.915717
-vt 0.146424 0.853530
-vt 0.084248 0.777757
-vt 0.038048 0.691311
-vt 0.999999 0.500073
-vt 0.777724 0.915774
-vt 0.499927 0.999999
-vt 0.084224 0.777723
-vt 0.000000 0.499925
-vt 0.222279 0.084223
-vt 0.500078 -0.000000
-vt 0.915775 0.222276
-vn 0.685700 0.000000 -0.727900
-vn -0.685700 0.000000 -0.727900
-vn -0.685700 0.142000 -0.713900
-vn 0.685700 0.142000 -0.713900
-vn -0.685700 0.278500 -0.672500
-vn 0.685700 0.278500 -0.672500
-vn -0.685700 0.404400 -0.605200
-vn 0.685700 0.404400 -0.605200
-vn -0.685700 0.514700 -0.514700
-vn 0.685700 0.514700 -0.514700
-vn -0.685700 0.605200 -0.404400
-vn 0.685700 0.605200 -0.404400
-vn -0.685700 0.672500 -0.278500
-vn 0.685700 0.672500 -0.278500
-vn -0.685700 0.713900 -0.142000
-vn 0.685700 0.713900 -0.142000
-vn -0.685700 0.727900 0.000000
-vn 0.685700 0.727900 0.000000
-vn -0.685700 0.713900 0.142000
-vn 0.685700 0.713900 0.142000
-vn -0.685700 0.672500 0.278500
-vn 0.685700 0.672500 0.278500
-vn -0.685700 0.605200 0.404400
-vn 0.685700 0.605200 0.404400
-vn -0.685700 0.514700 0.514700
-vn 0.685700 0.514700 0.514700
-vn -0.685700 0.404400 0.605200
-vn 0.685700 0.404400 0.605200
-vn -0.685700 0.278500 0.672500
-vn 0.685700 0.278500 0.672500
-vn -0.685700 0.142000 0.713900
-vn 0.685700 0.142000 0.713900
-vn -0.685700 0.000000 0.727900
-vn 0.685700 0.000000 0.727900
-vn -0.685700 -0.142000 0.713900
-vn 0.685700 -0.142000 0.713900
-vn -0.685700 -0.278500 0.672500
-vn 0.685700 -0.278500 0.672500
-vn -0.685700 -0.404400 0.605200
-vn 0.685700 -0.404400 0.605200
-vn -0.685700 -0.514700 0.514700
-vn 0.685700 -0.514700 0.514700
-vn -0.685700 -0.605200 0.404400
-vn 0.685700 -0.605200 0.404400
-vn -0.685700 -0.672500 0.278500
-vn 0.685700 -0.672500 0.278500
-vn -0.685700 -0.713900 0.142000
-vn 0.685700 -0.713900 0.142000
-vn -0.685700 -0.727900 0.000000
-vn 0.685700 -0.727900 0.000000
-vn -0.685700 -0.713900 -0.142000
-vn 0.685700 -0.713900 -0.142000
-vn -0.685700 -0.672500 -0.278500
-vn 0.685700 -0.672500 -0.278500
-vn -0.685700 -0.605200 -0.404400
-vn 0.685700 -0.605200 -0.404400
-vn -0.685700 -0.514700 -0.514700
-vn 0.685700 -0.514700 -0.514700
-vn -0.685700 -0.404400 -0.605200
-vn 0.685700 -0.404400 -0.605200
-vn -0.685700 -0.278500 -0.672500
-vn 0.685700 -0.278500 -0.672500
-vn -0.685700 -0.142000 -0.713900
-vn 0.685700 -0.142000 -0.713900
-s 1
-f 1/1/1 2/2/2 4/3/3 3/4/4
-f 3/4/4 4/3/3 6/5/5 5/6/6
-f 5/6/6 6/5/5 8/7/7 7/8/8
-f 7/8/8 8/7/7 10/9/9 9/10/10
-f 9/10/10 10/9/9 12/11/11 11/12/12
-f 11/12/12 12/11/11 14/13/13 13/14/14
-f 13/14/14 14/13/13 16/15/15 15/16/16
-f 15/16/16 16/15/15 18/17/17 17/18/18
-f 17/19/18 18/20/17 20/21/19 19/22/20
-f 19/22/20 20/21/19 22/23/21 21/24/22
-f 21/24/22 22/23/21 24/25/23 23/26/24
-f 23/26/24 24/25/23 26/27/25 25/28/26
-f 25/28/26 26/27/25 28/29/27 27/30/28
-f 27/30/28 28/29/27 30/31/29 29/32/30
-f 29/32/30 30/31/29 32/33/31 31/34/32
-f 31/34/32 32/33/31 34/2/33 33/1/34
-f 33/1/34 34/2/33 36/3/35 35/4/36
-f 35/4/36 36/3/35 38/5/37 37/6/38
-f 37/6/38 38/5/37 40/7/39 39/8/40
-f 39/8/40 40/7/39 42/9/41 41/10/42
-f 41/10/42 42/9/41 44/11/43 43/12/44
-f 43/12/44 44/11/43 46/13/45 45/14/46
-f 45/14/46 46/13/45 48/15/47 47/16/48
-f 47/16/48 48/15/47 50/17/49 49/18/50
-f 49/19/50 50/20/49 52/21/51 51/22/52
-f 51/22/52 52/21/51 54/23/53 53/24/54
-f 53/24/54 54/23/53 56/25/55 55/26/56
-f 55/26/56 56/25/55 58/27/57 57/28/58
-f 57/28/58 58/27/57 60/29/59 59/30/60
-f 59/30/60 60/29/59 62/31/61 61/32/62
-f 4/35/3 2/1/2 64/36/63 62/37/61 60/38/59 58/39/57 56/40/55 54/41/53 52/42/51 50/43/49 48/44/47 46/45/45 44/46/43 42/47/41 40/48/39 38/49/37 36/50/35 34/2/33 32/51/31 30/52/29 28/53/27 26/54/25 24/55/23 22/56/21 20/57/19 18/58/17 16/59/15 14/60/13 12/61/11 10/62/9 8/63/7 6/64/5
-f 63/34/64 64/33/63 2/2/2 1/1/1
-f 61/32/62 62/31/61 64/33/63 63/34/64
-f 1/65/1 3/51/4 5/52/6 7/53/8 9/54/10 11/66/12 13/56/14 15/57/16 17/67/18 19/59/20 21/60/22 23/61/24 25/62/26 27/68/28 29/64/30 31/35/32 33/69/34 35/36/36 37/37/38 39/38/40 41/39/42 43/70/44 45/41/46 47/42/48 49/71/50 51/44/52 53/45/54 55/46/56 57/47/58 59/72/60 61/49/62 63/50/64
diff --git a/technic/technic/models/technic_innercorner.obj b/technic/technic/models/technic_innercorner.obj
deleted file mode 100644
index c962aeb..0000000
--- a/technic/technic/models/technic_innercorner.obj
+++ /dev/null
@@ -1,33 +0,0 @@
-# Blender v2.73 (sub 0) OBJ File: 'technic-icorner.blend'
-# www.blender.org
-o Cube_Cube.000
-v -0.500000 0.500000 0.500000
-v -0.500000 0.500000 -0.500000
-v -0.500000 -0.500000 -0.500000
-v -0.500000 -0.500000 0.500000
-v 0.500000 -0.500000 -0.500000
-v 0.500000 0.500000 0.500000
-v -0.500000 -0.500000 0.500000
-v 0.500000 -0.500000 0.500000
-v 0.500000 -0.500000 -0.500000
-vt 1.000000 1.000000
-vt 0.000000 1.000000
-vt 0.000000 0.000000
-vt 1.000000 0.000000
-vn -0.000000 -0.000000 1.000000
-vn -0.000000 -0.000000 -1.000000
-vn 0.707100 0.707100 -0.000000
-vn 1.000000 0.000000 -0.000000
-vn 0.000000 -1.000000 -0.000000
-vn -1.000000 -0.000000 -0.000000
-vn 0.000000 0.707100 -0.707100
-s off
-f 6/1/1 1/2/1 7/3/1 8/4/1
-f 2/1/2 5/3/2 3/4/2
-f 2/1/3 1/2/3 5/4/3
-f 6/2/4 8/3/4 9/4/4
-f 9/1/5 8/2/5 7/3/5 3/4/5
-f 3/3/6 7/4/6 1/1/6 2/2/6
-f 1/1/7 6/2/7 9/3/7
-l 1 4
-l 3 4
diff --git a/technic/technic/models/technic_innercorner_upsdown.obj b/technic/technic/models/technic_innercorner_upsdown.obj
deleted file mode 100644
index 68eb560..0000000
--- a/technic/technic/models/technic_innercorner_upsdown.obj
+++ /dev/null
@@ -1,33 +0,0 @@
-# Blender v2.73 (sub 0) OBJ File: 'technic-icorner-upsdown.blend'
-# www.blender.org
-o Cube_Cube.000
-v -0.500000 -0.500000 0.500000
-v 0.500000 -0.500000 0.500000
-v 0.500000 0.500000 0.500000
-v -0.500000 0.500000 0.500000
-v 0.500000 0.500000 -0.500000
-v -0.500000 -0.500000 -0.500000
-v -0.500000 0.500000 0.500000
-v -0.500000 0.500000 -0.500000
-v 0.500000 0.500000 -0.500000
-vt 0.000000 0.000000
-vt 1.000000 0.000000
-vt 1.000000 1.000000
-vt 0.000000 1.000000
-vn -1.000000 0.000000 0.000000
-vn 1.000000 -0.000000 0.000000
-vn -0.000000 -0.707100 -0.707100
-vn -0.000000 0.000000 -1.000000
-vn 0.000000 1.000000 0.000000
-vn 0.000000 -0.000000 1.000000
-vn 0.707100 -0.707100 -0.000000
-s off
-f 6/1/1 1/2/1 7/3/1 8/4/1
-f 2/1/2 5/3/2 3/4/2
-f 2/1/3 1/2/3 5/4/3
-f 6/2/4 8/3/4 9/4/4
-f 9/1/5 8/2/5 7/3/5 3/4/5
-f 3/3/6 7/4/6 1/1/6 2/2/6
-f 1/1/7 6/2/7 9/3/7
-l 1 4
-l 3 4
diff --git a/technic/technic/models/technic_oblate_spheroid.obj b/technic/technic/models/technic_oblate_spheroid.obj
deleted file mode 100644
index e949f5b..0000000
--- a/technic/technic/models/technic_oblate_spheroid.obj
+++ /dev/null
@@ -1,300 +0,0 @@
-# Blender v2.73 (sub 0) OBJ File: 'slope_test_blob_onetexture.blend'
-# www.blender.org
-o Cube
-v 0.213679 -0.450000 -0.213679
-v -0.213679 -0.450000 0.213680
-v 0.213680 -0.450000 0.213680
-v -0.213679 -0.450000 -0.213679
-v 0.213679 0.450000 -0.213679
-v -0.213679 0.450000 -0.213679
-v 0.213679 0.450000 0.213680
-v 0.500000 -0.000003 0.500000
-v 0.277785 -0.415735 0.277785
-v -0.277785 -0.415735 0.277785
-v 0.353553 -0.353554 0.353553
-v -0.353553 -0.353554 0.353553
-v -0.500000 -0.000002 0.500000
-v 0.415735 -0.277786 0.415735
-v -0.277785 0.415735 0.277785
-v 0.277785 0.415735 0.277785
-v -0.415735 -0.277785 0.415735
-v 0.353554 0.353553 0.353554
-v -0.500000 -0.000002 -0.499983
-v 0.461940 -0.191342 0.461940
-v -0.461940 -0.191342 0.461940
-v -0.353553 0.353553 0.353554
-v 0.490393 -0.097546 0.490393
-v 0.500000 -0.000002 -0.500000
-v 0.490393 0.097545 -0.490392
-v 0.490393 0.097545 0.490393
-v -0.490393 -0.097546 0.490393
-v 0.490393 -0.097545 -0.490393
-v 0.461940 0.191341 0.461940
-v -0.461940 0.191341 0.461940
-v 0.461940 0.191342 -0.461940
-v -0.490393 0.097545 0.490393
-v 0.415735 0.277785 0.415735
-v -0.490393 0.097545 -0.490392
-v -0.415735 0.277785 0.415735
-v 0.461940 -0.191341 -0.461940
-v 0.415735 0.277785 -0.415735
-v -0.461940 0.191341 -0.461940
-v -0.415735 0.277785 -0.415735
-v 0.415735 -0.277785 -0.415735
-v -0.490393 -0.097546 -0.490392
-v 0.353553 0.353553 -0.353553
-v -0.213679 0.450000 0.213680
-v -0.353553 0.353553 -0.353553
-v 0.277785 0.415735 -0.277785
-v -0.461940 -0.191342 -0.461939
-v 0.353554 -0.353553 -0.353554
-v -0.277785 0.415735 -0.277785
-v -0.415735 -0.277785 -0.415734
-v 0.277786 -0.415735 -0.277785
-v -0.353553 -0.353554 -0.353553
-v -0.277785 -0.415735 -0.277784
-vt 0.038487 0.679029
-vt 0.010047 0.589789
-vt 0.990397 0.589790
-vt 0.915772 0.767073
-vt 0.084671 0.767071
-vt 0.961957 0.679029
-vt 0.852473 0.146294
-vt 0.914576 0.232749
-vt 0.084146 0.232744
-vt 0.712776 0.000003
-vt 0.221926 0.061588
-vt 0.285951 0.000000
-vt 0.285945 0.999818
-vt 0.221920 0.938229
-vt 0.712771 0.999818
-vt 0.009578 0.589789
-vt 0.989138 0.589792
-vt 0.960721 0.679031
-vt 0.286638 0.000000
-vt 0.777884 0.061589
-vt 0.222561 0.061589
-vt 0.777608 0.938229
-vt 0.222164 0.938229
-vt 0.146413 0.853527
-vt 0.286255 0.999818
-vt 0.713517 0.999818
-vt 0.776800 0.061592
-vt 0.146251 0.146290
-vt 0.000000 0.499907
-vt 0.989139 0.410032
-vt 0.998734 0.499910
-vt 0.853618 0.146291
-vt 0.915772 0.232746
-vt 0.146826 0.146290
-vt 0.961957 0.320789
-vt 0.084672 0.232745
-vt 0.990397 0.410029
-vt 0.038487 0.320789
-vt 0.776796 0.938230
-vt 0.777790 0.938229
-vt 0.146467 0.853526
-vt 0.853556 0.853527
-vt 0.146825 0.853526
-vt 1.000000 0.499907
-vt 0.010047 0.410028
-vt 0.146246 0.853527
-vt 0.222559 0.938228
-vt 0.777882 0.938230
-vt 0.915737 0.767073
-vt 0.084287 0.767072
-vt 0.038083 0.679029
-vt 0.961941 0.679029
-vt 0.037995 0.679029
-vt 0.960723 0.320792
-vt 0.037998 0.320787
-vt 0.009580 0.410028
-vt 0.990167 0.589790
-vt 0.999772 0.499909
-vt 0.961721 0.679029
-vt 0.084246 0.767072
-vt 0.915526 0.767072
-vt 0.853359 0.853527
-vt 0.914573 0.767074
-vt 0.084142 0.767072
-vt 0.852470 0.853528
-vt 0.777609 0.061590
-vt 0.853360 0.146293
-vt 0.222166 0.061589
-vt 0.146414 0.146291
-vt 0.915527 0.232748
-vt 0.084247 0.232746
-vt 0.961721 0.320791
-vt 0.038052 0.320789
-vt 0.990167 0.410031
-vt 0.713686 0.999818
-vt 0.749950 0.250050
-vt 0.749950 0.749950
-vt 0.250050 0.749950
-vt 0.250050 0.250050
-vt 0.713807 0.000000
-vt 0.286258 0.000000
-vt 0.713519 0.000001
-vt 0.250050 0.250050
-vt 0.749950 0.250050
-vt 0.749950 0.749950
-vt 0.286636 0.999817
-vt 0.777791 0.061589
-vt 0.146467 0.146291
-vt 0.084287 0.232745
-vt 0.915737 0.232746
-vt 0.961941 0.320789
-vt 0.000444 0.499907
-vt 0.713687 0.000000
-vt 0.713805 0.999818
-vn -0.620400 0.479600 0.620400
-vn -0.683900 0.254100 0.683900
-vn 0.683900 0.254100 0.683900
-vn 0.531000 0.660300 0.531000
-vn -0.531000 0.660300 0.531000
-vn 0.620400 0.479600 0.620400
-vn -0.429700 -0.794100 0.429700
-vn -0.531000 -0.660300 0.531000
-vn -0.531000 -0.660300 -0.531000
-vn -0.185700 -0.964900 0.185700
-vn -0.325800 -0.887500 -0.325800
-vn -0.185700 -0.964900 -0.185700
-vn -0.185700 0.964900 -0.185700
-vn -0.325800 0.887500 -0.325800
-vn -0.185700 0.964900 0.185700
-vn -0.683900 0.254000 -0.683900
-vn 0.325800 -0.887500 0.325800
-vn -0.325800 -0.887500 0.325800
-vn 0.325800 0.887500 -0.325800
-vn 0.429700 0.794100 -0.429700
-vn 0.185700 0.964900 -0.185700
-vn -0.429700 -0.794100 -0.429700
-vn -0.707100 0.000000 -0.707100
-vn -0.683900 -0.254100 0.683900
-vn -0.707100 0.000000 0.707100
-vn 0.429700 -0.794100 0.429700
-vn 0.531000 -0.660300 0.531000
-vn 0.620400 -0.479600 0.620400
-vn 0.683900 -0.254100 0.683900
-vn -0.620400 -0.479600 0.620400
-vn -0.325800 0.887500 0.325800
-vn 0.185700 0.964900 0.185700
-vn 0.325800 0.887500 0.325800
-vn 0.429700 0.794100 0.429700
-vn -0.429700 0.794100 0.429700
-vn 0.707100 0.000000 0.707100
-vn -0.429700 0.794100 -0.429700
-vn 0.531000 0.660300 -0.531000
-vn 0.683900 0.254100 -0.683900
-vn 0.707100 0.000000 -0.707100
-vn 0.620400 0.479600 -0.620400
-vn -0.620400 0.479600 -0.620400
-vn -0.620400 -0.479600 -0.620400
-vn -0.683900 -0.254000 -0.683900
-vn 0.683900 -0.254100 -0.683900
-vn -0.531000 0.660300 -0.531000
-vn 0.325800 -0.887500 -0.325800
-vn 0.429700 -0.794100 -0.429700
-vn 0.531000 -0.660300 -0.531000
-vn 0.620400 -0.479600 -0.620400
-vn 0.185700 -0.964900 -0.185700
-vn 0.185700 -0.964900 0.185700
-s 1
-f 30/1/1 32/2/2 26/3/3
-f 33/4/4 35/5/5 29/6/6
-f 12/7/7 17/8/8 49/9/9
-f 2/10/10 52/11/11 4/12/12
-f 6/13/13 48/14/14 43/15/15
-f 34/16/16 32/17/2 30/18/1
-f 2/19/10 9/20/17 10/21/18
-f 48/22/14 45/23/19 42/24/20
-f 5/25/21 45/23/19 6/26/13
-f 10/27/18 12/7/7 51/28/22
-f 19/29/23 27/30/24 13/31/25
-f 9/20/17 11/32/26 10/21/18
-f 11/32/26 14/33/27 12/34/7
-f 14/33/27 20/35/28 17/36/8
-f 20/35/28 23/37/29 21/38/30
-f 43/15/15 48/14/14 15/39/31
-f 7/25/32 16/23/33 45/40/19
-f 18/41/34 42/42/20 45/40/19
-f 29/6/6 30/1/1 26/3/3
-f 22/43/35 33/4/4 18/42/34
-f 26/3/3 32/2/2 8/44/36
-f 8/44/36 27/45/24 23/37/29
-f 11/32/26 12/34/7 10/21/18
-f 14/33/27 17/36/8 12/34/7
-f 20/35/28 21/38/30 17/36/8
-f 23/37/29 27/45/24 21/38/30
-f 10/27/18 52/11/11 2/10/10
-f 15/39/31 48/14/14 44/46/37
-f 22/43/35 35/5/5 33/4/4
-f 15/47/31 22/43/35 16/48/33
-f 37/49/38 42/42/20 18/41/34
-f 33/50/4 29/51/6 37/49/38
-f 8/29/36 25/3/39 26/16/3
-f 24/44/40 25/3/39 8/29/36
-f 29/51/6 26/16/3 31/52/41
-f 26/16/3 25/3/39 31/52/41
-f 29/51/6 31/52/41 37/49/38
-f 38/53/42 34/16/16 30/18/1
-f 19/29/23 32/17/2 34/16/16
-f 13/31/25 32/17/2 19/29/23
-f 17/8/8 21/54/30 46/55/43
-f 21/54/30 27/30/24 41/56/44
-f 8/29/36 28/37/45 24/44/40
-f 34/57/16 25/16/39 19/58/23
-f 38/59/42 31/51/41 34/57/16
-f 31/51/41 25/16/39 34/57/16
-f 37/60/38 38/59/42 39/61/46
-f 37/60/38 31/51/41 38/59/42
-f 44/62/37 42/24/20 37/60/38
-f 38/53/42 30/18/1 35/63/5
-f 39/64/46 35/63/5 22/65/35
-f 52/66/11 51/67/22 50/68/47
-f 51/67/22 47/69/48 50/68/47
-f 51/67/22 49/70/9 47/69/48
-f 49/70/9 40/71/49 47/69/48
-f 49/70/9 46/72/43 40/71/49
-f 46/72/43 36/73/50 40/71/49
-f 19/58/23 28/56/45 41/74/44
-f 46/72/43 41/74/44 36/73/50
-f 41/74/44 28/56/45 36/73/50
-f 22/43/35 18/42/34 16/48/33
-f 5/75/21 7/25/32 45/40/19
-f 2/76/10 4/77/12 1/78/51 3/79/52
-f 44/62/37 48/22/14 42/24/20
-f 35/5/5 30/1/1 29/6/6
-f 3/80/52 9/20/17 2/19/10
-f 45/23/19 48/22/14 6/26/13
-f 1/81/51 52/66/11 50/68/47
-f 39/61/46 44/62/37 37/60/38
-f 52/66/11 1/81/51 4/82/12
-f 24/29/40 28/56/45 19/58/23
-f 7/78/32 5/83/21 6/84/13 43/85/15
-f 24/29/40 19/58/23 25/16/39
-f 15/47/31 16/48/33 43/86/15
-f 22/65/35 44/46/37 39/64/46
-f 39/64/46 38/53/42 35/63/5
-f 41/56/44 27/30/24 19/29/23
-f 46/55/43 21/54/30 41/56/44
-f 49/9/9 17/8/8 46/55/43
-f 51/28/22 12/7/7 49/9/9
-f 52/11/11 10/27/18 51/28/22
-f 9/68/17 50/87/47 11/88/26
-f 50/87/47 47/32/48 11/88/26
-f 11/88/26 47/32/48 14/89/27
-f 47/32/48 40/90/49 14/89/27
-f 14/89/27 40/90/49 20/73/28
-f 40/90/49 36/91/50 20/73/28
-f 23/56/29 28/37/45 8/29/36
-f 20/73/28 36/91/50 23/56/29
-f 36/91/50 28/37/45 23/56/29
-f 13/92/25 8/44/36 32/2/2
-f 50/87/47 9/68/17 1/93/51
-f 13/92/25 27/45/24 8/44/36
-f 16/23/33 18/41/34 45/40/19
-f 22/65/35 15/39/31 44/46/37
-f 9/68/17 3/81/52 1/93/51
-f 33/50/4 37/49/38 18/41/34
-f 43/86/15 16/48/33 7/94/32
diff --git a/technic/technic/models/technic_one_curved_edge.obj b/technic/technic/models/technic_one_curved_edge.obj
deleted file mode 100644
index bb82040..0000000
--- a/technic/technic/models/technic_one_curved_edge.obj
+++ /dev/null
@@ -1,132 +0,0 @@
-# Blender v2.73 (sub 0) OBJ File: 'slope_test_quarter_round_onetexture.blend'
-# www.blender.org
-o Cylinder
-v -0.500000 0.490393 -0.097545
-v 0.500000 0.490393 -0.097545
-v -0.500000 0.461940 -0.191342
-v 0.500000 0.461940 -0.191342
-v -0.500000 0.415735 -0.277785
-v 0.500000 0.415735 -0.277785
-v -0.500000 0.353553 -0.353553
-v 0.500000 0.353553 -0.353553
-v -0.500000 0.277785 -0.415735
-v 0.500000 0.277785 -0.415735
-v -0.500000 0.191342 -0.461940
-v 0.500000 0.191342 -0.461940
-v -0.500000 0.097545 -0.490393
-v 0.500000 0.097545 -0.490393
-v 0.500000 -0.000000 -0.500000
-v 0.500000 0.490393 -0.097545
-v -0.500000 -0.500000 0.500000
-v -0.500000 -0.500000 -0.500000
-v 0.500000 -0.500000 -0.500000
-v -0.500000 0.500000 0.500000
-v 0.500000 0.500000 0.500000
-v -0.500000 0.000000 -0.500000
-v -0.500000 0.500000 -0.000000
-v 0.500000 0.500000 0.000000
-v -0.500000 0.490393 -0.097545
-v -0.500000 0.461940 -0.191342
-v -0.500000 0.415735 -0.277785
-v -0.500000 0.353553 -0.353553
-v -0.500000 0.277785 -0.415735
-v -0.500000 0.191342 -0.461940
-v -0.500000 0.097545 -0.490393
-v -0.500000 0.000000 0.000000
-v -0.500000 -0.500000 0.500000
-v -0.500000 -0.500000 -0.500000
-v -0.500000 0.500000 0.500000
-v -0.500000 0.000000 -0.500000
-v -0.500000 0.500000 -0.000000
-v 0.500000 0.461940 -0.191342
-v 0.500000 0.415735 -0.277785
-v 0.500000 0.353553 -0.353553
-v 0.500000 0.277785 -0.415735
-v 0.500000 0.191342 -0.461940
-v 0.500000 0.097545 -0.490393
-v 0.500000 -0.000000 -0.500000
-v 0.500000 -0.000000 -0.000000
-v 0.500000 -0.500000 -0.500000
-v 0.500000 -0.500000 0.500000
-v 0.500000 0.500000 0.500000
-v 0.500000 0.500000 0.000000
-v -0.500000 -0.500000 -0.500000
-v 0.500000 -0.500000 -0.500000
-v 0.500000 -0.500000 0.500000
-v -0.500000 -0.500000 0.500000
-v 0.500000 -0.500000 0.500000
-v -0.500000 0.500000 0.500000
-v 0.500000 0.500000 0.500000
-vt 1.000000 0.000000
-vt 1.000000 0.500000
-vt 0.500001 0.500000
-vt 0.500001 1.000000
-vt 0.000003 1.000000
-vt 0.000003 0.000000
-vt 0.597546 0.990393
-vt 0.691342 0.961940
-vt 1.000000 1.000000
-vt 0.990393 0.597545
-vt 0.961940 0.691341
-vt 0.777786 0.915735
-vt 0.853554 0.853553
-vt 0.915735 0.777785
-vt 0.146446 0.853552
-vt 0.084265 0.777783
-vt 0.038060 0.691340
-vt 0.308658 0.961938
-vt 0.222214 0.915733
-vt 0.000000 0.499999
-vt 0.402454 0.990391
-vt 0.009607 0.597544
-vt 1.000000 0.375000
-vt 0.000000 0.375000
-vt 0.000000 0.250000
-vt 1.000000 0.250000
-vt 0.000000 0.125000
-vt 1.000000 0.125000
-vt 0.000000 0.875000
-vt 1.000000 0.875000
-vt 0.000000 0.750000
-vt 1.000000 0.750000
-vt 0.000000 0.625000
-vt 1.000000 0.625000
-vn 1.000000 -0.000000 0.000000
-vn -0.000000 0.000000 1.000000
-vn -0.000000 -1.000000 0.000000
-vn -1.000000 0.000000 0.000000
-vn 0.000000 0.980800 -0.195100
-vn 0.000000 0.923900 -0.382700
-vn -0.000000 0.831500 -0.555600
-vn -0.000000 0.707100 -0.707100
-vn -0.000000 0.555600 -0.831500
-vn -0.000000 0.382700 -0.923900
-vn -0.000000 0.195100 -0.980800
-vn 0.000000 1.000000 -0.000000
-vn 0.000000 0.998800 -0.049100
-vn -0.000000 0.049100 -0.998800
-vn -0.000000 0.000000 -1.000000
-s off
-f 46/1/1 44/2/1 45/3/1 49/4/1 48/5/1 47/6/1
-f 16/7/1 49/4/1 45/3/1 38/8/1
-f 55/5/2 53/6/2 54/1/2 56/9/2
-f 43/10/1 42/11/1 45/3/1 44/2/1
-f 39/12/1 38/8/1 45/3/1 40/13/1
-f 41/14/1 40/13/1 45/3/1 42/11/1
-f 50/9/3 51/5/3 52/6/3 17/1/3
-f 28/15/4 29/16/4 30/17/4 32/3/4
-f 26/18/4 27/19/4 28/15/4 32/3/4
-f 35/9/4 37/4/4 32/3/4 36/20/4 34/6/4 33/1/4
-f 37/4/4 25/21/4 26/18/4 32/3/4
-f 30/17/4 31/22/4 36/20/4 32/3/4
-s 1
-f 1/23/5 2/24/5 4/25/6 3/26/6
-f 3/26/6 4/25/6 6/27/7 5/28/7
-f 5/28/7 6/27/7 8/6/8 7/1/8
-f 7/9/8 8/5/8 10/29/9 9/30/9
-f 9/30/9 10/29/9 12/31/10 11/32/10
-f 11/32/10 12/31/10 14/33/11 13/34/11
-f 21/5/12 24/20/13 23/2/13 20/9/12
-f 13/34/11 14/33/11 15/20/14 22/2/14
-f 23/2/13 24/20/13 2/24/5 1/23/5
-f 18/1/15 22/2/14 15/20/14 19/6/15
diff --git a/technic/technic/models/technic_outercorner.obj b/technic/technic/models/technic_outercorner.obj
deleted file mode 100644
index 60ccae6..0000000
--- a/technic/technic/models/technic_outercorner.obj
+++ /dev/null
@@ -1,23 +0,0 @@
-# Blender v2.73 (sub 0) OBJ File: 'technic-ocorner.blend'
-# www.blender.org
-o Cube_Cube.002
-v -0.500000 0.500000 0.500000
-v -0.500000 -0.500000 -0.500000
-v -0.500000 -0.500000 0.500000
-v 0.500000 -0.500000 -0.500000
-v 0.500000 -0.500000 0.500000
-vt 1.000000 1.000000
-vt 0.000000 1.000000
-vt 0.000000 0.000000
-vt 1.000000 0.000000
-vn 0.000000 -1.000000 -0.000000
-vn 0.000000 0.000000 1.000000
-vn -1.000000 -0.000000 0.000000
-vn -0.000000 0.707100 -0.707100
-vn 0.707100 0.707100 -0.000000
-s off
-f 3/1/1 2/2/1 4/3/1 5/4/1
-f 1/2/2 3/3/2 5/4/2
-f 1/1/3 2/3/3 3/4/3
-f 1/1/4 4/3/4 2/4/4
-f 1/2/5 5/3/5 4/4/5
diff --git a/technic/technic/models/technic_outercorner_upsdown.obj b/technic/technic/models/technic_outercorner_upsdown.obj
deleted file mode 100644
index c89de8a..0000000
--- a/technic/technic/models/technic_outercorner_upsdown.obj
+++ /dev/null
@@ -1,23 +0,0 @@
-# Blender v2.73 (sub 0) OBJ File: 'slope_test_ocorner_onetexture.blend'
-# www.blender.org
-o Cube_Cube.002
-v -0.500000 -0.500000 0.500000
-v 0.500000 0.500000 0.500000
-v -0.500000 0.500000 0.500000
-v 0.500000 0.500000 -0.500000
-v -0.500000 0.500000 -0.500000
-vt 0.000000 0.000000
-vt 1.000000 0.000000
-vt 1.000000 1.000000
-vt 0.000000 1.000000
-vn 0.000000 1.000000 -0.000000
-vn -1.000000 0.000000 -0.000000
-vn 0.000000 0.000000 1.000000
-vn 0.707100 -0.707100 0.000000
-vn -0.000000 -0.707100 -0.707100
-s off
-f 3/1/1 2/2/1 4/3/1 5/4/1
-f 1/2/2 3/3/2 5/4/2
-f 1/1/3 2/3/3 3/4/3
-f 1/1/4 4/3/4 2/4/4
-f 1/2/5 5/3/5 4/4/5
diff --git a/technic/technic/models/technic_pyramid.obj b/technic/technic/models/technic_pyramid.obj
deleted file mode 100644
index a618dcf..0000000
--- a/technic/technic/models/technic_pyramid.obj
+++ /dev/null
@@ -1,24 +0,0 @@
-# Blender v2.73 (sub 0) OBJ File: 'slope_test_pyramid_short_onetexture.blend'
-# www.blender.org
-o Cube
-v 0.500000 -0.500000 -0.500000
-v 0.500000 -0.500000 0.500000
-v -0.500000 -0.500000 0.500000
-v -0.500000 -0.500000 -0.500000
-v -0.000000 0.000000 -0.000000
-vt 1.000000 0.500000
-vt 0.000000 0.500000
-vt 0.000000 0.000000
-vt 1.000000 0.000000
-vt 0.500000 0.500000
-vn 0.000000 -1.000000 0.000000
-vn -0.707100 0.707100 -0.000000
-vn 0.000000 0.707100 -0.707100
-vn 0.707100 0.707100 0.000000
-vn -0.000000 0.707100 0.707100
-s off
-f 1/1/1 2/2/1 3/3/1 4/4/1
-f 3/4/2 5/5/2 4/3/2
-f 5/5/3 1/3/3 4/4/3
-f 1/4/4 5/5/4 2/3/4
-f 2/4/5 5/5/5 3/3/5
diff --git a/technic/technic/models/technic_pyramid_spike.obj b/technic/technic/models/technic_pyramid_spike.obj
deleted file mode 100644
index b305af2..0000000
--- a/technic/technic/models/technic_pyramid_spike.obj
+++ /dev/null
@@ -1,24 +0,0 @@
-# Blender v2.73 (sub 0) OBJ File: 'slope_test_pyramid_onetexture.blend'
-# www.blender.org
-o Cube
-v 0.500000 -0.500000 -0.500000
-v 0.500000 -0.500000 0.500000
-v -0.500000 -0.500000 0.500000
-v -0.500000 -0.500000 -0.500000
-v -0.000000 0.500000 -0.000000
-vt 1.000000 1.000000
-vt 0.000000 1.000000
-vt 0.000000 0.000000
-vt 1.000000 0.000000
-vt 0.500000 1.000000
-vn 0.000000 -1.000000 0.000000
-vn -0.894400 0.447200 -0.000000
-vn 0.000000 0.447200 -0.894400
-vn 0.894400 0.447200 0.000000
-vn -0.000000 0.447200 0.894400
-s off
-f 1/1/1 2/2/1 3/3/1 4/4/1
-f 3/4/2 5/5/2 4/3/2
-f 5/5/3 1/3/3 4/4/3
-f 1/4/4 5/5/4 2/3/4
-f 2/4/5 5/5/5 3/3/5
diff --git a/technic/technic/models/technic_slope.obj b/technic/technic/models/technic_slope.obj
deleted file mode 100644
index f6f4860..0000000
--- a/technic/technic/models/technic_slope.obj
+++ /dev/null
@@ -1,24 +0,0 @@
-# Blender v2.73 (sub 0) OBJ File: 'slope_test_slope_onetexture.blend'
-# www.blender.org
-o Cube_Cube.002
-v 0.500000 0.500000 0.500000
-v -0.500000 0.500000 0.500000
-v -0.500000 -0.500000 0.500000
-v 0.500000 -0.500000 0.500000
-v -0.500000 -0.500000 -0.500000
-v 0.500000 -0.500000 -0.500000
-vt 1.000000 1.000000
-vt 0.000000 1.000000
-vt 0.000000 0.000000
-vt 1.000000 0.000000
-vn 0.000000 -0.000000 1.000000
-vn 0.000000 -1.000000 -0.000000
-vn -1.000000 0.000000 0.000000
-vn 1.000000 0.000000 0.000000
-vn 0.000000 0.707100 -0.707100
-s off
-f 1/1/1 2/2/1 3/3/1 4/4/1
-f 4/3/2 3/4/2 5/1/2 6/2/2
-f 2/1/3 5/3/3 3/4/3
-f 1/2/4 4/3/4 6/4/4
-f 2/1/5 1/2/5 6/3/5 5/4/5
diff --git a/technic/technic/models/technic_slope_horizontal.obj b/technic/technic/models/technic_slope_horizontal.obj
deleted file mode 100644
index 4866a92..0000000
--- a/technic/technic/models/technic_slope_horizontal.obj
+++ /dev/null
@@ -1,24 +0,0 @@
-# Blender v2.73 (sub 0) OBJ File: 'technic-slope-horizontal.blend'
-# www.blender.org
-o Cube_Cube.002
-v -0.500000 0.500000 0.500000
-v -0.500000 -0.500000 0.500000
-v 0.500000 -0.500000 0.500000
-v 0.500000 0.500000 0.500000
-v 0.500000 -0.500000 -0.500000
-v 0.500000 0.500000 -0.500000
-vt 0.000000 1.000000
-vt 0.000000 0.000000
-vt 1.000000 0.000000
-vt 1.000000 1.000000
-vn 0.000000 -0.000000 1.000000
-vn 1.000000 -0.000000 -0.000000
-vn -0.000000 -1.000000 0.000000
-vn 0.000000 1.000000 -0.000000
-vn -0.707100 0.000000 -0.707100
-s off
-f 1/1/1 2/2/1 3/3/1 4/4/1
-f 4/1/2 3/2/2 5/3/2 6/4/2
-f 2/3/3 5/1/3 3/2/3
-f 1/4/4 4/1/4 6/2/4
-f 2/3/5 1/4/5 6/1/5 5/2/5
diff --git a/technic/technic/models/technic_slope_upsdown.obj b/technic/technic/models/technic_slope_upsdown.obj
deleted file mode 100644
index 6880595..0000000
--- a/technic/technic/models/technic_slope_upsdown.obj
+++ /dev/null
@@ -1,24 +0,0 @@
-# Blender v2.73 (sub 0) OBJ File: 'slope_test_slope_onetexture.blend'
-# www.blender.org
-o Cube_Cube.002
-v -0.500000 -0.500000 0.500000
-v 0.500000 -0.500000 0.500000
-v 0.500000 0.500000 0.500000
-v -0.500000 0.500000 0.500000
-v 0.500000 0.500000 -0.500000
-v -0.500000 0.500000 -0.500000
-vt 0.000000 0.000000
-vt 1.000000 0.000000
-vt 1.000000 1.000000
-vt 0.000000 1.000000
-vn 0.000000 0.000000 1.000000
-vn 0.000000 1.000000 -0.000000
-vn 1.000000 -0.000000 0.000000
-vn -1.000000 0.000000 -0.000000
-vn -0.000000 -0.707100 -0.707100
-s off
-f 1/1/1 2/2/1 3/3/1 4/4/1
-f 4/3/2 3/4/2 5/1/2 6/2/2
-f 2/1/3 5/3/3 3/4/3
-f 1/2/4 4/3/4 6/4/4
-f 2/1/5 1/2/5 6/3/5 5/4/5
diff --git a/technic/technic/models/technic_sphere.obj b/technic/technic/models/technic_sphere.obj
deleted file mode 100644
index 772b570..0000000
--- a/technic/technic/models/technic_sphere.obj
+++ /dev/null
@@ -1,1927 +0,0 @@
-# Blender v2.73 (sub 0) OBJ File: 'globe.blend'
-# www.blender.org
-o Sphere
-v -0.097545 0.490393 0.000000
-v -0.191342 0.461940 0.000000
-v -0.277785 0.415735 0.000000
-v -0.353553 0.353553 0.000000
-v -0.415735 0.277785 0.000000
-v -0.461940 0.191342 0.000000
-v -0.490393 0.097545 0.000000
-v -0.500000 0.000000 0.000000
-v -0.490393 -0.097545 0.000000
-v -0.461940 -0.191342 0.000000
-v -0.415735 -0.277785 0.000000
-v -0.353553 -0.353553 0.000000
-v -0.277785 -0.415735 0.000000
-v -0.191342 -0.461940 0.000000
-v -0.097545 -0.490393 0.000000
-v -0.095671 0.490393 -0.019030
-v -0.187665 0.461940 -0.037329
-v -0.272448 0.415735 -0.054193
-v -0.346760 0.353553 -0.068975
-v -0.407747 0.277785 -0.081106
-v -0.453064 0.191342 -0.090120
-v -0.480970 0.097545 -0.095671
-v -0.490393 0.000000 -0.097545
-v -0.480970 -0.097545 -0.095671
-v -0.453064 -0.191342 -0.090120
-v -0.407747 -0.277785 -0.081106
-v -0.346760 -0.353553 -0.068975
-v -0.272448 -0.415735 -0.054193
-v -0.187665 -0.461940 -0.037329
-v -0.095671 -0.490393 -0.019030
-v -0.090120 0.490393 -0.037329
-v -0.176777 0.461940 -0.073223
-v -0.256640 0.415735 -0.106304
-v -0.326641 0.353553 -0.135299
-v -0.384089 0.277785 -0.159095
-v -0.426777 0.191342 -0.176777
-v -0.453064 0.097545 -0.187665
-v -0.461940 0.000000 -0.191342
-v -0.453064 -0.097545 -0.187665
-v -0.426777 -0.191342 -0.176777
-v -0.384089 -0.277785 -0.159095
-v -0.326641 -0.353553 -0.135299
-v -0.256640 -0.415735 -0.106304
-v -0.176777 -0.461940 -0.073223
-v -0.090120 -0.490393 -0.037329
-v -0.081106 0.490393 -0.054193
-v -0.159095 0.461940 -0.106304
-v -0.230970 0.415735 -0.154329
-v -0.293969 0.353553 -0.196424
-v -0.345671 0.277785 -0.230970
-v -0.384089 0.191342 -0.256640
-v -0.407746 0.097545 -0.272448
-v -0.415735 0.000000 -0.277785
-v -0.407746 -0.097545 -0.272448
-v -0.384089 -0.191342 -0.256640
-v -0.345671 -0.277785 -0.230970
-v -0.293969 -0.353553 -0.196424
-v -0.230970 -0.415735 -0.154329
-v -0.159095 -0.461940 -0.106304
-v -0.081106 -0.490393 -0.054193
-v -0.068975 0.490393 -0.068975
-v -0.135299 0.461940 -0.135299
-v -0.196424 0.415735 -0.196424
-v -0.250000 0.353553 -0.250000
-v -0.293969 0.277785 -0.293969
-v -0.326641 0.191342 -0.326641
-v -0.346760 0.097545 -0.346760
-v -0.353553 0.000000 -0.353554
-v -0.346760 -0.097545 -0.346760
-v -0.326641 -0.191342 -0.326641
-v -0.293969 -0.277785 -0.293969
-v -0.250000 -0.353553 -0.250000
-v -0.196424 -0.415735 -0.196424
-v -0.135299 -0.461940 -0.135299
-v -0.068975 -0.490393 -0.068975
-v -0.054193 0.490393 -0.081106
-v -0.106304 0.461940 -0.159095
-v -0.154329 0.415735 -0.230970
-v -0.196424 0.353553 -0.293969
-v -0.230970 0.277785 -0.345671
-v -0.256640 0.191342 -0.384089
-v -0.272447 0.097545 -0.407747
-v -0.277785 0.000000 -0.415735
-v -0.272447 -0.097545 -0.407747
-v -0.256640 -0.191342 -0.384089
-v -0.230970 -0.277785 -0.345671
-v -0.196424 -0.353553 -0.293969
-v -0.154329 -0.415735 -0.230970
-v -0.106304 -0.461940 -0.159095
-v -0.054193 -0.490393 -0.081106
-v -0.037329 0.490393 -0.090120
-v -0.073223 0.461940 -0.176777
-v -0.106304 0.415735 -0.256640
-v -0.135299 0.353553 -0.326641
-v -0.159095 0.277785 -0.384089
-v -0.176777 0.191342 -0.426777
-v -0.187665 0.097545 -0.453064
-v -0.191342 0.000000 -0.461940
-v -0.187665 -0.097545 -0.453064
-v -0.176777 -0.191342 -0.426777
-v -0.159095 -0.277785 -0.384089
-v -0.135299 -0.353553 -0.326641
-v -0.106304 -0.415735 -0.256640
-v -0.073223 -0.461940 -0.176777
-v -0.037329 -0.490393 -0.090120
-v -0.019030 0.490393 -0.095671
-v -0.037329 0.461940 -0.187665
-v -0.054193 0.415735 -0.272448
-v -0.068975 0.353553 -0.346760
-v -0.081106 0.277785 -0.407747
-v -0.090120 0.191342 -0.453064
-v -0.095671 0.097545 -0.480970
-v -0.097545 0.000000 -0.490393
-v -0.095671 -0.097545 -0.480970
-v -0.090120 -0.191342 -0.453064
-v -0.081106 -0.277785 -0.407747
-v -0.068975 -0.353553 -0.346760
-v -0.054193 -0.415735 -0.272448
-v -0.037329 -0.461940 -0.187665
-v -0.019030 -0.490393 -0.095671
-v 0.000000 0.490393 -0.097545
-v 0.000000 0.461940 -0.191342
-v 0.000000 0.415735 -0.277785
-v 0.000000 0.353553 -0.353553
-v 0.000000 0.277785 -0.415735
-v 0.000000 0.191342 -0.461940
-v 0.000000 0.097545 -0.490393
-v 0.000000 0.000000 -0.500000
-v 0.000000 -0.097545 -0.490393
-v 0.000000 -0.191342 -0.461940
-v 0.000000 -0.277785 -0.415735
-v 0.000000 -0.353553 -0.353553
-v 0.000000 -0.415735 -0.277785
-v 0.000000 -0.461940 -0.191342
-v 0.000000 -0.490393 -0.097545
-v 0.019030 0.490393 -0.095671
-v 0.037329 0.461940 -0.187665
-v 0.054193 0.415735 -0.272448
-v 0.068975 0.353553 -0.346760
-v 0.081106 0.277785 -0.407747
-v 0.090120 0.191342 -0.453064
-v 0.095671 0.097545 -0.480970
-v 0.097545 0.000000 -0.490393
-v 0.095671 -0.097545 -0.480970
-v 0.090120 -0.191342 -0.453064
-v 0.081106 -0.277785 -0.407747
-v 0.068975 -0.353553 -0.346760
-v 0.054193 -0.415735 -0.272448
-v 0.037329 -0.461940 -0.187665
-v 0.019030 -0.490393 -0.095671
-v 0.037329 0.490393 -0.090120
-v 0.073224 0.461940 -0.176777
-v 0.106304 0.415735 -0.256640
-v 0.135299 0.353553 -0.326641
-v 0.159095 0.277785 -0.384089
-v 0.176777 0.191342 -0.426777
-v 0.187665 0.097545 -0.453064
-v 0.191342 0.000000 -0.461940
-v 0.187665 -0.097545 -0.453064
-v 0.176777 -0.191342 -0.426777
-v 0.159095 -0.277785 -0.384089
-v 0.135299 -0.353553 -0.326641
-v 0.106304 -0.415735 -0.256640
-v 0.073223 -0.461940 -0.176777
-v 0.037329 -0.490393 -0.090120
-v 0.054193 0.490393 -0.081106
-v 0.106304 0.461940 -0.159095
-v 0.154329 0.415735 -0.230970
-v 0.196424 0.353553 -0.293969
-v 0.230970 0.277785 -0.345671
-v 0.256640 0.191342 -0.384089
-v 0.272448 0.097545 -0.407747
-v 0.277785 0.000000 -0.415735
-v 0.272448 -0.097545 -0.407747
-v 0.256640 -0.191342 -0.384089
-v 0.230970 -0.277785 -0.345671
-v 0.196424 -0.353553 -0.293969
-v 0.154329 -0.415735 -0.230970
-v 0.106304 -0.461940 -0.159095
-v 0.054193 -0.490393 -0.081106
-v 0.068975 0.490393 -0.068975
-v 0.135299 0.461940 -0.135299
-v 0.196424 0.415735 -0.196424
-v 0.250000 0.353553 -0.250000
-v 0.293969 0.277785 -0.293969
-v 0.326641 0.191342 -0.326641
-v 0.346760 0.097545 -0.346760
-v 0.353554 0.000000 -0.353553
-v 0.346760 -0.097545 -0.346760
-v 0.326641 -0.191342 -0.326641
-v 0.293969 -0.277785 -0.293969
-v 0.250000 -0.353553 -0.250000
-v 0.196424 -0.415735 -0.196424
-v 0.135299 -0.461940 -0.135299
-v 0.068975 -0.490393 -0.068975
-v 0.081106 0.490393 -0.054193
-v 0.159095 0.461940 -0.106304
-v 0.230970 0.415735 -0.154329
-v 0.293969 0.353553 -0.196424
-v 0.345671 0.277785 -0.230970
-v 0.384089 0.191342 -0.256640
-v 0.407747 0.097545 -0.272447
-v 0.415735 0.000000 -0.277785
-v 0.407747 -0.097545 -0.272447
-v 0.384089 -0.191342 -0.256640
-v 0.345671 -0.277785 -0.230970
-v 0.293969 -0.353553 -0.196424
-v 0.230970 -0.415735 -0.154329
-v 0.159095 -0.461940 -0.106304
-v 0.081106 -0.490393 -0.054193
-v 0.090120 0.490393 -0.037329
-v 0.176777 0.461940 -0.073223
-v 0.256640 0.415735 -0.106304
-v 0.326641 0.353553 -0.135299
-v 0.384089 0.277785 -0.159095
-v 0.426777 0.191342 -0.176777
-v 0.453064 0.097545 -0.187665
-v 0.461940 0.000000 -0.191342
-v 0.453064 -0.097545 -0.187665
-v 0.426777 -0.191342 -0.176777
-v 0.384089 -0.277785 -0.159095
-v 0.326641 -0.353553 -0.135299
-v 0.256640 -0.415735 -0.106304
-v 0.176777 -0.461940 -0.073223
-v 0.090120 -0.490393 -0.037329
-v 0.095671 0.490393 -0.019030
-v 0.187665 0.461940 -0.037329
-v 0.272448 0.415735 -0.054193
-v 0.346760 0.353553 -0.068975
-v 0.407747 0.277785 -0.081106
-v 0.453064 0.191342 -0.090120
-v 0.480970 0.097545 -0.095671
-v 0.490393 0.000000 -0.097545
-v 0.480970 -0.097545 -0.095671
-v 0.453064 -0.191342 -0.090120
-v 0.407747 -0.277785 -0.081106
-v 0.346760 -0.353553 -0.068975
-v 0.272448 -0.415735 -0.054193
-v 0.187665 -0.461940 -0.037329
-v 0.095671 -0.490393 -0.019030
-v 0.097545 0.490393 0.000000
-v 0.191342 0.461940 -0.000000
-v 0.277785 0.415735 -0.000000
-v 0.353554 0.353553 0.000000
-v 0.415735 0.277785 0.000000
-v 0.461940 0.191342 -0.000000
-v 0.490393 0.097545 0.000000
-v 0.500000 0.000000 0.000000
-v 0.490393 -0.097545 0.000000
-v 0.461940 -0.191342 -0.000000
-v 0.415735 -0.277785 0.000000
-v 0.353554 -0.353553 0.000000
-v 0.277785 -0.415735 0.000000
-v 0.191342 -0.461940 -0.000000
-v 0.097545 -0.490393 -0.000000
-v 0.095671 0.490393 0.019030
-v 0.187665 0.461940 0.037329
-v 0.272448 0.415735 0.054193
-v 0.346760 0.353553 0.068975
-v 0.407747 0.277785 0.081106
-v 0.453064 0.191342 0.090120
-v 0.480970 0.097545 0.095671
-v 0.490393 0.000000 0.097545
-v 0.480970 -0.097545 0.095671
-v 0.453064 -0.191342 0.090120
-v 0.407747 -0.277785 0.081106
-v 0.346760 -0.353553 0.068975
-v 0.272448 -0.415735 0.054193
-v 0.187665 -0.461940 0.037329
-v 0.095671 -0.490393 0.019030
-v 0.090120 0.490393 0.037329
-v 0.176777 0.461940 0.073223
-v 0.256640 0.415735 0.106304
-v 0.326641 0.353553 0.135299
-v 0.384089 0.277785 0.159095
-v 0.426777 0.191342 0.176777
-v 0.453064 0.097545 0.187665
-v 0.461940 0.000000 0.191342
-v 0.453064 -0.097545 0.187665
-v 0.426777 -0.191342 0.176777
-v 0.384089 -0.277785 0.159095
-v 0.326641 -0.353553 0.135299
-v 0.256640 -0.415735 0.106304
-v 0.176777 -0.461940 0.073223
-v 0.090120 -0.490393 0.037329
-v 0.081106 0.490393 0.054193
-v 0.159095 0.461940 0.106304
-v 0.230970 0.415735 0.154329
-v 0.293969 0.353553 0.196424
-v 0.345671 0.277785 0.230970
-v 0.384089 0.191342 0.256640
-v 0.407747 0.097545 0.272448
-v 0.415735 0.000000 0.277785
-v 0.407747 -0.097545 0.272448
-v 0.384089 -0.191342 0.256640
-v 0.345671 -0.277785 0.230970
-v 0.293969 -0.353553 0.196424
-v 0.230970 -0.415735 0.154329
-v 0.159095 -0.461940 0.106304
-v 0.081106 -0.490393 0.054193
-v 0.068975 0.490393 0.068975
-v 0.135299 0.461940 0.135299
-v 0.196424 0.415735 0.196424
-v 0.250000 0.353553 0.250000
-v 0.293969 0.277785 0.293969
-v 0.326641 0.191342 0.326641
-v 0.346760 0.097545 0.346760
-v 0.353553 0.000000 0.353553
-v 0.346760 -0.097545 0.346760
-v 0.326641 -0.191342 0.326641
-v 0.293969 -0.277785 0.293969
-v 0.250000 -0.353553 0.250000
-v 0.196424 -0.415735 0.196424
-v 0.135299 -0.461940 0.135299
-v 0.068975 -0.490393 0.068975
-v 0.054193 0.490393 0.081106
-v 0.106304 0.461940 0.159095
-v 0.154329 0.415735 0.230970
-v 0.196424 0.353553 0.293969
-v 0.230970 0.277785 0.345671
-v 0.256640 0.191342 0.384089
-v 0.272448 0.097545 0.407746
-v 0.277785 0.000000 0.415735
-v 0.272448 -0.097545 0.407746
-v 0.256640 -0.191342 0.384089
-v 0.230970 -0.277785 0.345671
-v 0.196424 -0.353553 0.293969
-v 0.154329 -0.415735 0.230970
-v 0.106304 -0.461940 0.159095
-v 0.054193 -0.490393 0.081106
-v 0.037329 0.490393 0.090120
-v 0.073223 0.461940 0.176777
-v 0.106304 0.415735 0.256640
-v 0.135299 0.353553 0.326641
-v 0.159095 0.277785 0.384089
-v 0.176777 0.191342 0.426777
-v 0.187665 0.097545 0.453064
-v 0.191342 0.000000 0.461940
-v 0.187665 -0.097545 0.453064
-v 0.176777 -0.191342 0.426777
-v 0.159095 -0.277785 0.384089
-v 0.135299 -0.353553 0.326641
-v 0.106304 -0.415735 0.256640
-v 0.073223 -0.461940 0.176777
-v 0.037329 -0.490393 0.090120
-v 0.019030 0.490393 0.095671
-v 0.037329 0.461940 0.187665
-v 0.054193 0.415735 0.272448
-v 0.068975 0.353553 0.346760
-v 0.081106 0.277785 0.407746
-v 0.090120 0.191342 0.453064
-v 0.095671 0.097545 0.480970
-v 0.097545 0.000000 0.490393
-v 0.095671 -0.097545 0.480970
-v 0.090120 -0.191342 0.453064
-v 0.081106 -0.277785 0.407746
-v 0.068975 -0.353553 0.346760
-v 0.054193 -0.415735 0.272447
-v 0.037329 -0.461940 0.187665
-v 0.019030 -0.490393 0.095671
-v 0.000000 0.490393 0.097545
-v 0.000000 0.461940 0.191342
-v 0.000000 0.415735 0.277785
-v 0.000000 0.353553 0.353553
-v 0.000000 0.277785 0.415735
-v 0.000000 0.191342 0.461940
-v 0.000000 0.097545 0.490392
-v 0.000000 0.000000 0.500000
-v 0.000000 -0.097545 0.490392
-v 0.000000 -0.191342 0.461940
-v 0.000000 -0.277785 0.415735
-v 0.000000 -0.353553 0.353553
-v 0.000000 -0.415735 0.277785
-v 0.000000 -0.461940 0.191342
-v 0.000000 -0.490393 0.097545
-v -0.019030 0.490393 0.095671
-v -0.037329 0.461940 0.187665
-v -0.054193 0.415735 0.272448
-v -0.068975 0.353553 0.346760
-v -0.081106 0.277785 0.407746
-v -0.090120 0.191342 0.453064
-v -0.095671 0.097545 0.480970
-v -0.097545 0.000000 0.490393
-v -0.095671 -0.097545 0.480970
-v -0.090120 -0.191342 0.453064
-v -0.081106 -0.277785 0.407746
-v -0.068975 -0.353553 0.346760
-v -0.054193 -0.415735 0.272447
-v -0.037329 -0.461940 0.187665
-v -0.019030 -0.490393 0.095671
-v -0.037329 0.490393 0.090120
-v -0.073223 0.461940 0.176777
-v -0.106304 0.415735 0.256640
-v -0.135299 0.353553 0.326641
-v -0.159095 0.277785 0.384089
-v -0.176777 0.191342 0.426777
-v -0.187665 0.097545 0.453063
-v -0.191342 0.000000 0.461940
-v -0.187665 -0.097545 0.453063
-v -0.176777 -0.191342 0.426777
-v -0.159095 -0.277785 0.384089
-v -0.135299 -0.353553 0.326641
-v -0.106304 -0.415735 0.256640
-v -0.073223 -0.461940 0.176777
-v -0.037329 -0.490393 0.090120
-v -0.054193 0.490393 0.081106
-v -0.106304 0.461940 0.159095
-v -0.154329 0.415735 0.230970
-v -0.196424 0.353553 0.293969
-v -0.230970 0.277785 0.345671
-v -0.256640 0.191342 0.384089
-v -0.272447 0.097545 0.407746
-v -0.277785 0.000000 0.415735
-v -0.272447 -0.097545 0.407746
-v -0.256640 -0.191342 0.384089
-v -0.230970 -0.277785 0.345671
-v -0.196424 -0.353553 0.293969
-v -0.154329 -0.415735 0.230970
-v -0.106304 -0.461940 0.159095
-v -0.054193 -0.490393 0.081106
-v -0.068975 0.490393 0.068975
-v -0.135299 0.461940 0.135299
-v -0.196424 0.415735 0.196424
-v -0.250000 0.353553 0.250000
-v -0.293969 0.277785 0.293969
-v -0.326641 0.191342 0.326641
-v -0.346760 0.097545 0.346760
-v -0.353553 0.000000 0.353553
-v -0.346760 -0.097545 0.346760
-v -0.326641 -0.191342 0.326641
-v -0.293969 -0.277785 0.293969
-v -0.250000 -0.353553 0.250000
-v -0.196424 -0.415735 0.196424
-v -0.135299 -0.461940 0.135299
-v -0.068975 -0.490393 0.068975
-v -0.081106 0.490393 0.054193
-v -0.159095 0.461940 0.106304
-v -0.230970 0.415735 0.154329
-v -0.293969 0.353553 0.196424
-v -0.345671 0.277785 0.230970
-v -0.384089 0.191342 0.256640
-v -0.407746 0.097545 0.272447
-v -0.415735 0.000000 0.277785
-v -0.407746 -0.097545 0.272447
-v -0.384089 -0.191342 0.256640
-v -0.345671 -0.277785 0.230970
-v -0.293969 -0.353553 0.196424
-v -0.230970 -0.415735 0.154329
-v -0.159095 -0.461940 0.106304
-v -0.081106 -0.490393 0.054193
-v -0.090120 0.490393 0.037329
-v -0.176776 0.461940 0.073223
-v -0.256640 0.415735 0.106304
-v -0.326641 0.353553 0.135299
-v -0.384089 0.277785 0.159095
-v -0.426776 0.191342 0.176777
-v -0.453063 0.097545 0.187665
-v -0.461939 0.000000 0.191342
-v -0.453063 -0.097545 0.187665
-v -0.426776 -0.191342 0.176777
-v -0.384089 -0.277785 0.159095
-v -0.326641 -0.353553 0.135299
-v -0.256640 -0.415735 0.106304
-v -0.176776 -0.461940 0.073223
-v -0.090120 -0.490393 0.037329
-v -0.095671 0.490393 0.019030
-v -0.187665 0.461940 0.037329
-v -0.272447 0.415735 0.054193
-v -0.346760 0.353553 0.068975
-v -0.407746 0.277785 0.081106
-v -0.453063 0.191342 0.090120
-v -0.480969 0.097545 0.095671
-v -0.490392 0.000000 0.097545
-v -0.480969 -0.097545 0.095671
-v -0.453063 -0.191342 0.090120
-v -0.407746 -0.277785 0.081106
-v -0.346760 -0.353553 0.068975
-v -0.272447 -0.415735 0.054193
-v -0.187665 -0.461940 0.037329
-v -0.095671 -0.490393 0.019030
-v -0.013167 -0.495196 0.000000
-v -0.005039 0.495196 0.012165
-v -0.013167 0.495196 0.000000
-v -0.012914 0.495196 -0.002569
-v -0.012914 -0.495196 -0.002569
-v -0.012165 0.495196 -0.005039
-v -0.012165 -0.495196 -0.005039
-v -0.010948 0.495196 -0.007315
-v -0.010948 -0.495196 -0.007315
-v -0.009311 0.495196 -0.009311
-v -0.009311 -0.495196 -0.009311
-v -0.007315 0.495196 -0.010948
-v -0.007315 -0.495196 -0.010948
-v -0.005039 0.495196 -0.012165
-v -0.005039 -0.495196 -0.012165
-v -0.002569 0.495196 -0.012914
-v -0.002569 -0.495196 -0.012914
-v 0.000000 0.495196 -0.013167
-v 0.000000 -0.495196 -0.013167
-v 0.002569 0.495196 -0.012914
-v 0.002569 -0.495196 -0.012914
-v 0.005039 0.495196 -0.012165
-v 0.005039 -0.495196 -0.012165
-v 0.007316 0.495196 -0.010948
-v 0.007316 -0.495196 -0.010948
-v 0.009311 0.495196 -0.009311
-v 0.009311 -0.495196 -0.009311
-v 0.010948 0.495196 -0.007315
-v 0.010948 -0.495196 -0.007315
-v 0.012165 0.495196 -0.005039
-v 0.012165 -0.495196 -0.005039
-v 0.012915 0.495196 -0.002569
-v 0.012915 -0.495196 -0.002569
-v 0.013168 0.495196 0.000000
-v 0.013168 -0.495196 0.000000
-v 0.012915 0.495196 0.002569
-v 0.012915 -0.495196 0.002569
-v 0.012165 0.495196 0.005039
-v 0.012165 -0.495196 0.005039
-v 0.010948 0.495196 0.007315
-v 0.010948 -0.495196 0.007315
-v 0.009311 0.495196 0.009311
-v 0.009311 -0.495196 0.009311
-v 0.007316 0.495196 0.010948
-v 0.007316 -0.495196 0.010948
-v 0.005039 0.495196 0.012165
-v 0.005039 -0.495196 0.012165
-v 0.002569 0.495196 0.012914
-v 0.002569 -0.495196 0.012914
-v 0.000000 0.495196 0.013167
-v 0.000000 -0.495196 0.013167
-v -0.002569 0.495196 0.012914
-v -0.002569 -0.495196 0.012914
-v -0.005039 -0.495196 0.012165
-v -0.007315 0.495196 0.010948
-v -0.007315 -0.495196 0.010948
-v -0.009311 0.495196 0.009311
-v -0.009311 -0.495196 0.009311
-v -0.010948 0.495196 0.007315
-v -0.010948 -0.495196 0.007315
-v -0.012165 0.495196 0.005039
-v -0.012165 -0.495196 0.005039
-v -0.012914 0.495196 0.002569
-v -0.012914 -0.495196 0.002569
-vt 0.437500 0.750000
-vt 0.437500 0.812500
-vt 0.375000 0.812500
-vt 0.375000 0.750000
-vt 0.437500 0.062500
-vt 0.437500 0.125000
-vt 0.375000 0.125000
-vt 0.375000 0.062500
-vt 0.437500 0.875000
-vt 0.437500 0.937500
-vt 0.375000 0.937500
-vt 0.375000 0.875000
-vt 0.437500 0.187500
-vt 0.437500 0.250000
-vt 0.375000 0.250000
-vt 0.375000 0.187500
-vt 0.437500 0.312500
-vt 0.437500 0.375000
-vt 0.375000 0.375000
-vt 0.375000 0.312500
-vt 0.437500 0.437500
-vt 0.437500 0.500000
-vt 0.375000 0.500000
-vt 0.375000 0.437500
-vt 0.437500 0.562500
-vt 0.437500 0.625000
-vt 0.375000 0.625000
-vt 0.375000 0.562500
-vt 0.437500 0.687500
-vt 0.375000 0.687500
-vt 0.312500 0.437500
-vt 0.312500 0.375000
-vt 0.312500 0.562500
-vt 0.312500 0.500000
-vt 0.312500 0.687500
-vt 0.312500 0.625000
-vt 0.312500 0.812500
-vt 0.312500 0.750000
-vt 0.312500 0.125000
-vt 0.312500 0.062500
-vt 0.312500 0.937500
-vt 0.312500 0.875000
-vt 0.312500 0.250000
-vt 0.312500 0.187500
-vt 0.312500 0.312500
-vt 0.250000 0.437500
-vt 0.250000 0.375000
-vt 0.250000 0.562500
-vt 0.250000 0.500000
-vt 0.250000 0.687500
-vt 0.250000 0.625000
-vt 0.250000 0.812500
-vt 0.250000 0.750000
-vt 0.250000 0.125000
-vt 0.250000 0.062500
-vt 0.250000 0.937500
-vt 0.250000 0.875000
-vt 0.250000 0.250000
-vt 0.250000 0.187500
-vt 0.250000 0.312500
-vt 0.187500 0.437500
-vt 0.187500 0.375000
-vt 0.187500 0.562500
-vt 0.187500 0.500000
-vt 0.187500 0.687500
-vt 0.187500 0.625000
-vt 0.187500 0.812500
-vt 0.187500 0.750000
-vt 0.187500 0.125000
-vt 0.187500 0.062500
-vt 0.187500 0.937500
-vt 0.187500 0.875000
-vt 0.187500 0.250000
-vt 0.187500 0.187500
-vt 0.187500 0.312500
-vt 0.125000 0.437500
-vt 0.125000 0.375000
-vt 0.125000 0.562500
-vt 0.125000 0.500000
-vt 0.125000 0.687500
-vt 0.125000 0.625000
-vt 0.125000 0.812500
-vt 0.125000 0.750000
-vt 0.125000 0.125000
-vt 0.125000 0.062500
-vt 0.125000 0.937500
-vt 0.125000 0.875000
-vt 0.125000 0.250000
-vt 0.125000 0.187500
-vt 0.125000 0.312500
-vt 0.062500 0.437500
-vt 0.062500 0.375000
-vt 0.062500 0.562500
-vt 0.062500 0.500000
-vt 0.062500 0.687500
-vt 0.062500 0.625000
-vt 0.062500 0.812500
-vt 0.062500 0.750000
-vt 0.062500 0.125000
-vt 0.062500 0.062500
-vt 0.062500 0.937500
-vt 0.062500 0.875000
-vt 0.062500 0.250000
-vt 0.062500 0.187500
-vt 0.062500 0.312500
-vt 0.000000 0.437500
-vt 0.000000 0.375000
-vt 0.000000 0.562500
-vt 0.000000 0.500000
-vt 0.000000 0.687500
-vt 0.000000 0.625000
-vt 0.000000 0.812500
-vt 0.000000 0.750000
-vt 0.000000 0.125000
-vt 0.000000 0.062500
-vt 0.000000 0.937500
-vt 0.000000 0.875000
-vt 0.000000 0.250000
-vt 0.000000 0.187500
-vt 0.000000 0.312500
-vt 1.000000 0.375000
-vt 1.000000 0.437500
-vt 0.937500 0.437500
-vt 0.937500 0.375000
-vt 1.000000 0.500000
-vt 1.000000 0.562500
-vt 0.937500 0.562500
-vt 0.937500 0.500000
-vt 1.000000 0.625000
-vt 1.000000 0.687500
-vt 0.937500 0.687500
-vt 0.937500 0.625000
-vt 1.000000 0.750000
-vt 1.000000 0.812500
-vt 0.937500 0.812500
-vt 0.937500 0.750000
-vt 1.000000 0.062500
-vt 1.000000 0.125000
-vt 0.937500 0.125000
-vt 0.937500 0.062500
-vt 1.000000 0.875000
-vt 1.000000 0.937500
-vt 0.937500 0.937500
-vt 0.937500 0.875000
-vt 1.000000 0.187500
-vt 1.000000 0.250000
-vt 0.937500 0.250000
-vt 0.937500 0.187500
-vt 1.000000 0.312500
-vt 0.937500 0.312500
-vt 0.875000 0.437500
-vt 0.875000 0.375000
-vt 0.875000 0.562500
-vt 0.875000 0.500000
-vt 0.875000 0.687500
-vt 0.875000 0.625000
-vt 0.875000 0.812500
-vt 0.875000 0.750000
-vt 0.875000 0.125000
-vt 0.875000 0.062500
-vt 0.875000 0.937500
-vt 0.875000 0.875000
-vt 0.875000 0.250000
-vt 0.875000 0.187500
-vt 0.875000 0.312500
-vt 0.812500 0.437500
-vt 0.812500 0.375000
-vt 0.812500 0.562500
-vt 0.812500 0.500000
-vt 0.812500 0.687500
-vt 0.812500 0.625000
-vt 0.812500 0.812500
-vt 0.812500 0.750000
-vt 0.812500 0.125000
-vt 0.812500 0.062500
-vt 0.812500 0.937500
-vt 0.812500 0.875000
-vt 0.812500 0.250000
-vt 0.812500 0.187500
-vt 0.812500 0.312500
-vt 0.750000 0.437500
-vt 0.750000 0.375000
-vt 0.750000 0.562500
-vt 0.750000 0.500000
-vt 0.750000 0.687500
-vt 0.750000 0.625000
-vt 0.750000 0.812500
-vt 0.750000 0.750000
-vt 0.750000 0.125000
-vt 0.750000 0.062500
-vt 0.750000 0.937500
-vt 0.750000 0.875000
-vt 0.750000 0.250000
-vt 0.750000 0.187500
-vt 0.750000 0.312500
-vt 0.687500 0.437500
-vt 0.687500 0.375000
-vt 0.687500 0.562500
-vt 0.687500 0.500000
-vt 0.687500 0.687500
-vt 0.687500 0.625000
-vt 0.687500 0.812500
-vt 0.687500 0.750000
-vt 0.687500 0.125000
-vt 0.687500 0.062500
-vt 0.687500 0.937500
-vt 0.687500 0.875000
-vt 0.687500 0.250000
-vt 0.687500 0.187500
-vt 0.687500 0.312500
-vt 0.625000 0.437500
-vt 0.625000 0.375000
-vt 0.625000 0.562500
-vt 0.625000 0.500000
-vt 0.625000 0.687500
-vt 0.625000 0.625000
-vt 0.625000 0.812500
-vt 0.625000 0.750000
-vt 0.625000 0.125000
-vt 0.625000 0.062500
-vt 0.625000 0.937500
-vt 0.625000 0.875000
-vt 0.625000 0.250000
-vt 0.625000 0.187500
-vt 0.625000 0.312500
-vt 0.562500 0.437500
-vt 0.562500 0.375000
-vt 0.562500 0.562500
-vt 0.562500 0.500000
-vt 0.562500 0.687500
-vt 0.562500 0.625000
-vt 0.562500 0.812500
-vt 0.562500 0.750000
-vt 0.562500 0.125000
-vt 0.562500 0.062500
-vt 0.562500 0.937500
-vt 0.562500 0.875000
-vt 0.562500 0.250000
-vt 0.562500 0.187500
-vt 0.562500 0.312500
-vt 0.500000 0.437500
-vt 0.500000 0.375000
-vt 0.500000 0.562500
-vt 0.500000 0.500000
-vt 0.500000 0.687500
-vt 0.500000 0.625000
-vt 0.500000 0.812500
-vt 0.500000 0.750000
-vt 0.500000 0.125000
-vt 0.500000 0.062500
-vt 0.500000 0.937500
-vt 0.500000 0.875000
-vt 0.500000 0.250000
-vt 0.500000 0.187500
-vt 0.500000 0.312500
-vt 0.437500 0.000000
-vt 0.375000 0.000000
-vt 0.312500 0.000000
-vt 0.250000 0.000000
-vt 0.187500 0.000000
-vt 0.125000 0.000000
-vt 0.062500 0.000000
-vt 0.000000 0.000000
-vt 1.000000 0.000000
-vt 0.937500 0.000000
-vt 0.875000 0.000000
-vt 0.812500 0.000000
-vt 0.750000 0.000000
-vt 0.687500 0.000000
-vt 0.625000 0.000000
-vt 0.562500 0.000000
-vt 0.500000 0.000000
-vt 0.500000 1.000000
-vt 0.437500 1.000000
-vt 0.562500 1.000000
-vt 0.625000 1.000000
-vt 0.687500 1.000000
-vt 0.750000 1.000000
-vt 0.812500 1.000000
-vt 0.875000 1.000000
-vt 0.937500 1.000000
-vt 1.000000 1.000000
-vt 0.062500 1.000000
-vt -0.000000 1.000000
-vt 0.125000 1.000000
-vt 0.187500 1.000000
-vt 0.250000 1.000000
-vt 0.312500 1.000000
-vt 0.375000 1.000000
-vt 0.031303 0.999906
-vt 0.037377 0.999307
-vt 0.043218 0.997535
-vt 0.048601 0.994658
-vt 0.053319 0.990786
-vt 0.057192 0.986068
-vt 0.060069 0.980685
-vt 0.061841 0.974844
-vt 0.062439 0.968769
-vt 0.061841 0.962695
-vt 0.060069 0.956854
-vt 0.057192 0.951471
-vt 0.053319 0.946753
-vt 0.048601 0.942881
-vt 0.043218 0.940004
-vt 0.037377 0.938232
-vt 0.031303 0.937633
-vt 0.025229 0.938232
-vt 0.019388 0.940004
-vt 0.014005 0.942881
-vt 0.009286 0.946753
-vt 0.005414 0.951471
-vt 0.002537 0.956854
-vt 0.000765 0.962695
-vt 0.000167 0.968770
-vt 0.000765 0.974844
-vt 0.002537 0.980685
-vt 0.005414 0.986068
-vt 0.009286 0.990786
-vt 0.014005 0.994658
-vt 0.019388 0.997535
-vt 0.025229 0.999307
-vn -0.710100 0.704000 0.000000
-vn -0.559800 0.828600 0.000000
-vn -0.549000 0.828600 -0.109200
-vn -0.696500 0.704000 -0.138500
-vn -0.182000 -0.983300 0.000000
-vn -0.387900 -0.921700 0.000000
-vn -0.380400 -0.921700 -0.075700
-vn -0.178400 -0.983300 -0.035500
-vn -0.387900 0.921700 0.000000
-vn -0.182000 0.983300 0.000000
-vn -0.178400 0.983300 -0.035500
-vn -0.380400 0.921700 -0.075700
-vn -0.559800 -0.828600 0.000000
-vn -0.710100 -0.704000 0.000000
-vn -0.696500 -0.704000 -0.138500
-vn -0.549000 -0.828600 -0.109200
-vn -0.833300 -0.552800 0.000000
-vn -0.924700 -0.380500 0.000000
-vn -0.907000 -0.380500 -0.180400
-vn -0.817300 -0.552800 -0.162600
-vn -0.981000 -0.193900 0.000000
-vn -1.000000 0.000000 0.000000
-vn -0.980800 0.000000 -0.195100
-vn -0.962200 -0.193900 -0.191400
-vn -0.981000 0.193900 0.000000
-vn -0.924700 0.380500 0.000000
-vn -0.907000 0.380500 -0.180400
-vn -0.962200 0.193900 -0.191400
-vn -0.833300 0.552800 0.000000
-vn -0.817300 0.552800 -0.162600
-vn -0.906300 -0.193900 -0.375400
-vn -0.854400 -0.380500 -0.353900
-vn -0.906300 0.193900 -0.375400
-vn -0.923900 0.000000 -0.382700
-vn -0.769900 0.552800 -0.318900
-vn -0.854400 0.380500 -0.353900
-vn -0.517100 0.828600 -0.214200
-vn -0.656100 0.704000 -0.271700
-vn -0.358300 -0.921700 -0.148400
-vn -0.168100 -0.983300 -0.069600
-vn -0.168100 0.983300 -0.069600
-vn -0.358300 0.921700 -0.148400
-vn -0.656100 -0.704000 -0.271700
-vn -0.517100 -0.828600 -0.214200
-vn -0.769900 -0.552800 -0.318900
-vn -0.815700 -0.193900 -0.545000
-vn -0.768900 -0.380500 -0.513700
-vn -0.815700 0.193900 -0.545000
-vn -0.831400 0.000000 -0.555600
-vn -0.692900 0.552800 -0.463000
-vn -0.768900 0.380500 -0.513700
-vn -0.465400 0.828600 -0.311000
-vn -0.590400 0.704000 -0.394500
-vn -0.322500 -0.921700 -0.215500
-vn -0.151300 -0.983300 -0.101100
-vn -0.151300 0.983300 -0.101100
-vn -0.322500 0.921700 -0.215500
-vn -0.590400 -0.704000 -0.394500
-vn -0.465400 -0.828600 -0.311000
-vn -0.692900 -0.552800 -0.463000
-vn -0.693700 -0.193900 -0.693700
-vn -0.653900 -0.380500 -0.653900
-vn -0.693700 0.193900 -0.693700
-vn -0.707100 0.000000 -0.707100
-vn -0.589300 0.552800 -0.589300
-vn -0.653900 0.380500 -0.653900
-vn -0.395800 0.828600 -0.395800
-vn -0.502100 0.704000 -0.502100
-vn -0.274300 -0.921700 -0.274300
-vn -0.128600 -0.983300 -0.128600
-vn -0.128600 0.983300 -0.128600
-vn -0.274300 0.921700 -0.274300
-vn -0.502100 -0.704000 -0.502100
-vn -0.395800 -0.828600 -0.395800
-vn -0.589300 -0.552800 -0.589300
-vn -0.545000 -0.193900 -0.815700
-vn -0.513700 -0.380500 -0.768900
-vn -0.545000 0.193900 -0.815700
-vn -0.555600 0.000000 -0.831400
-vn -0.463000 0.552800 -0.692900
-vn -0.513700 0.380500 -0.768900
-vn -0.311000 0.828600 -0.465400
-vn -0.394500 0.704000 -0.590400
-vn -0.215500 -0.921700 -0.322500
-vn -0.101100 -0.983300 -0.151300
-vn -0.101100 0.983300 -0.151300
-vn -0.215500 0.921700 -0.322500
-vn -0.394500 -0.704000 -0.590400
-vn -0.311000 -0.828600 -0.465400
-vn -0.463000 -0.552800 -0.692900
-vn -0.375400 -0.193900 -0.906300
-vn -0.353900 -0.380500 -0.854400
-vn -0.375400 0.193900 -0.906300
-vn -0.382700 0.000000 -0.923900
-vn -0.318900 0.552800 -0.769900
-vn -0.353900 0.380500 -0.854400
-vn -0.214200 0.828600 -0.517100
-vn -0.271700 0.704000 -0.656100
-vn -0.148400 -0.921700 -0.358300
-vn -0.069600 -0.983300 -0.168100
-vn -0.069600 0.983300 -0.168100
-vn -0.148400 0.921700 -0.358300
-vn -0.271700 -0.704000 -0.656100
-vn -0.214200 -0.828600 -0.517100
-vn -0.318900 -0.552800 -0.769900
-vn -0.191400 -0.193900 -0.962200
-vn -0.180400 -0.380500 -0.907000
-vn -0.191400 0.193900 -0.962200
-vn -0.195100 0.000000 -0.980800
-vn -0.162600 0.552800 -0.817300
-vn -0.180400 0.380500 -0.907000
-vn -0.109200 0.828600 -0.549000
-vn -0.138500 0.704000 -0.696500
-vn -0.075700 -0.921700 -0.380400
-vn -0.035500 -0.983300 -0.178400
-vn -0.035500 0.983300 -0.178400
-vn -0.075700 0.921700 -0.380400
-vn -0.138500 -0.704000 -0.696500
-vn -0.109200 -0.828600 -0.549000
-vn -0.162600 -0.552800 -0.817300
-vn 0.000000 -0.193900 -0.981000
-vn 0.000000 -0.380500 -0.924700
-vn 0.000000 0.193900 -0.981000
-vn 0.000000 0.000000 -1.000000
-vn 0.000000 0.552800 -0.833300
-vn 0.000000 0.380500 -0.924700
-vn 0.000000 0.828600 -0.559800
-vn 0.000000 0.704000 -0.710100
-vn 0.000000 -0.921700 -0.387900
-vn 0.000000 -0.983300 -0.182000
-vn 0.000000 0.983300 -0.182000
-vn 0.000000 0.921700 -0.387900
-vn 0.000000 -0.704000 -0.710100
-vn 0.000000 -0.828600 -0.559800
-vn 0.000000 -0.552800 -0.833300
-vn 0.191400 -0.193900 -0.962200
-vn 0.180400 -0.380500 -0.907000
-vn 0.191400 0.193900 -0.962200
-vn 0.195100 0.000000 -0.980800
-vn 0.162600 0.552800 -0.817300
-vn 0.180400 0.380500 -0.907000
-vn 0.109200 0.828600 -0.549000
-vn 0.138500 0.704000 -0.696500
-vn 0.075700 -0.921700 -0.380400
-vn 0.035500 -0.983300 -0.178400
-vn 0.035500 0.983300 -0.178400
-vn 0.075700 0.921700 -0.380400
-vn 0.138500 -0.704000 -0.696500
-vn 0.109200 -0.828600 -0.549000
-vn 0.162600 -0.552800 -0.817300
-vn 0.375400 -0.193900 -0.906300
-vn 0.353900 -0.380500 -0.854400
-vn 0.375400 0.193900 -0.906300
-vn 0.382700 0.000000 -0.923900
-vn 0.318900 0.552800 -0.769900
-vn 0.353900 0.380500 -0.854400
-vn 0.214200 0.828600 -0.517100
-vn 0.271700 0.704000 -0.656100
-vn 0.148400 -0.921700 -0.358300
-vn 0.069600 -0.983300 -0.168100
-vn 0.069600 0.983300 -0.168100
-vn 0.148400 0.921700 -0.358300
-vn 0.271700 -0.704000 -0.656100
-vn 0.214200 -0.828600 -0.517100
-vn 0.318900 -0.552800 -0.769900
-vn 0.545000 -0.193900 -0.815700
-vn 0.513700 -0.380500 -0.768900
-vn 0.545000 0.193900 -0.815700
-vn 0.555600 0.000000 -0.831400
-vn 0.463000 0.552800 -0.692900
-vn 0.513700 0.380500 -0.768900
-vn 0.311000 0.828600 -0.465400
-vn 0.394500 0.704000 -0.590400
-vn 0.215500 -0.921700 -0.322500
-vn 0.101100 -0.983300 -0.151300
-vn 0.101100 0.983300 -0.151300
-vn 0.215500 0.921700 -0.322500
-vn 0.394500 -0.704000 -0.590400
-vn 0.311000 -0.828600 -0.465400
-vn 0.463000 -0.552800 -0.692900
-vn 0.693700 -0.193900 -0.693700
-vn 0.653900 -0.380500 -0.653900
-vn 0.693700 0.193900 -0.693700
-vn 0.707100 0.000000 -0.707100
-vn 0.589300 0.552800 -0.589300
-vn 0.653900 0.380500 -0.653900
-vn 0.395800 0.828600 -0.395800
-vn 0.502100 0.704000 -0.502100
-vn 0.274300 -0.921700 -0.274300
-vn 0.128600 -0.983300 -0.128600
-vn 0.128600 0.983300 -0.128600
-vn 0.274300 0.921700 -0.274300
-vn 0.502100 -0.704000 -0.502100
-vn 0.395800 -0.828600 -0.395800
-vn 0.589300 -0.552800 -0.589300
-vn 0.815700 -0.193900 -0.545000
-vn 0.768900 -0.380500 -0.513700
-vn 0.815700 0.193900 -0.545000
-vn 0.831400 0.000000 -0.555600
-vn 0.692900 0.552800 -0.463000
-vn 0.768900 0.380500 -0.513700
-vn 0.465400 0.828600 -0.311000
-vn 0.590400 0.704000 -0.394500
-vn 0.322500 -0.921700 -0.215500
-vn 0.151300 -0.983300 -0.101100
-vn 0.151300 0.983300 -0.101100
-vn 0.322500 0.921700 -0.215500
-vn 0.590400 -0.704000 -0.394500
-vn 0.465400 -0.828600 -0.311000
-vn 0.692900 -0.552800 -0.463000
-vn 0.906300 -0.193900 -0.375400
-vn 0.854400 -0.380500 -0.353900
-vn 0.906300 0.193900 -0.375400
-vn 0.923900 0.000000 -0.382700
-vn 0.769900 0.552800 -0.318900
-vn 0.854400 0.380500 -0.353900
-vn 0.517100 0.828600 -0.214200
-vn 0.656100 0.704000 -0.271700
-vn 0.358300 -0.921700 -0.148400
-vn 0.168100 -0.983300 -0.069600
-vn 0.168100 0.983300 -0.069600
-vn 0.358300 0.921700 -0.148400
-vn 0.656100 -0.704000 -0.271700
-vn 0.517100 -0.828600 -0.214200
-vn 0.769900 -0.552800 -0.318900
-vn 0.962200 -0.193900 -0.191400
-vn 0.907000 -0.380500 -0.180400
-vn 0.962200 0.193900 -0.191400
-vn 0.980800 0.000000 -0.195100
-vn 0.817300 0.552800 -0.162600
-vn 0.907000 0.380500 -0.180400
-vn 0.549000 0.828600 -0.109200
-vn 0.696500 0.704000 -0.138500
-vn 0.380400 -0.921700 -0.075700
-vn 0.178400 -0.983300 -0.035500
-vn 0.178400 0.983300 -0.035500
-vn 0.380400 0.921700 -0.075700
-vn 0.696500 -0.704000 -0.138500
-vn 0.549000 -0.828600 -0.109200
-vn 0.817300 -0.552800 -0.162600
-vn 0.981000 -0.193900 0.000000
-vn 0.924700 -0.380500 0.000000
-vn 0.981000 0.193900 0.000000
-vn 1.000000 0.000000 0.000000
-vn 0.833300 0.552800 0.000000
-vn 0.924700 0.380500 0.000000
-vn 0.559800 0.828600 0.000000
-vn 0.710100 0.704000 0.000000
-vn 0.387900 -0.921700 0.000000
-vn 0.182000 -0.983300 0.000000
-vn 0.182000 0.983300 0.000000
-vn 0.387900 0.921700 0.000000
-vn 0.710100 -0.704000 0.000000
-vn 0.559800 -0.828600 0.000000
-vn 0.833300 -0.552800 0.000000
-vn 0.962200 -0.193900 0.191400
-vn 0.907000 -0.380500 0.180400
-vn 0.962200 0.193900 0.191400
-vn 0.980800 0.000000 0.195100
-vn 0.817300 0.552800 0.162600
-vn 0.907000 0.380500 0.180400
-vn 0.549000 0.828600 0.109200
-vn 0.696500 0.704000 0.138500
-vn 0.380400 -0.921700 0.075700
-vn 0.178400 -0.983300 0.035500
-vn 0.178400 0.983300 0.035500
-vn 0.380400 0.921700 0.075700
-vn 0.696500 -0.704000 0.138500
-vn 0.549000 -0.828600 0.109200
-vn 0.817300 -0.552800 0.162600
-vn 0.906300 -0.193900 0.375400
-vn 0.854400 -0.380500 0.353900
-vn 0.906300 0.193900 0.375400
-vn 0.923900 0.000000 0.382700
-vn 0.769900 0.552800 0.318900
-vn 0.854400 0.380500 0.353900
-vn 0.517100 0.828600 0.214200
-vn 0.656100 0.704000 0.271700
-vn 0.358300 -0.921700 0.148400
-vn 0.168100 -0.983300 0.069600
-vn 0.168100 0.983300 0.069600
-vn 0.358300 0.921700 0.148400
-vn 0.656100 -0.704000 0.271700
-vn 0.517100 -0.828600 0.214200
-vn 0.769900 -0.552800 0.318900
-vn 0.815700 -0.193900 0.545000
-vn 0.768900 -0.380500 0.513700
-vn 0.815700 0.193900 0.545000
-vn 0.831400 0.000000 0.555600
-vn 0.692900 0.552800 0.463000
-vn 0.768900 0.380500 0.513700
-vn 0.465400 0.828600 0.311000
-vn 0.590400 0.704000 0.394500
-vn 0.322500 -0.921700 0.215500
-vn 0.151300 -0.983300 0.101100
-vn 0.151300 0.983300 0.101100
-vn 0.322500 0.921700 0.215500
-vn 0.590400 -0.704000 0.394500
-vn 0.465400 -0.828600 0.311000
-vn 0.692900 -0.552800 0.463000
-vn 0.693700 -0.193900 0.693700
-vn 0.653900 -0.380500 0.653900
-vn 0.693700 0.193900 0.693700
-vn 0.707100 0.000000 0.707100
-vn 0.589300 0.552800 0.589300
-vn 0.653900 0.380500 0.653900
-vn 0.395800 0.828600 0.395800
-vn 0.502100 0.704000 0.502100
-vn 0.274300 -0.921700 0.274300
-vn 0.128600 -0.983300 0.128600
-vn 0.128600 0.983300 0.128600
-vn 0.274300 0.921700 0.274300
-vn 0.502100 -0.704000 0.502100
-vn 0.395800 -0.828600 0.395800
-vn 0.589300 -0.552800 0.589300
-vn 0.545000 -0.193900 0.815700
-vn 0.513700 -0.380500 0.768900
-vn 0.545000 0.193900 0.815700
-vn 0.555600 0.000000 0.831400
-vn 0.463000 0.552800 0.692900
-vn 0.513700 0.380500 0.768900
-vn 0.311000 0.828600 0.465400
-vn 0.394500 0.704000 0.590400
-vn 0.215500 -0.921700 0.322500
-vn 0.101100 -0.983300 0.151300
-vn 0.101100 0.983300 0.151300
-vn 0.215500 0.921700 0.322500
-vn 0.394500 -0.704000 0.590400
-vn 0.311000 -0.828600 0.465400
-vn 0.463000 -0.552800 0.692900
-vn 0.375400 -0.193900 0.906300
-vn 0.353900 -0.380500 0.854400
-vn 0.375400 0.193900 0.906300
-vn 0.382700 0.000000 0.923900
-vn 0.318900 0.552800 0.769900
-vn 0.353900 0.380500 0.854400
-vn 0.214200 0.828600 0.517100
-vn 0.271700 0.704000 0.656100
-vn 0.148400 -0.921700 0.358300
-vn 0.069600 -0.983300 0.168100
-vn 0.069600 0.983300 0.168100
-vn 0.148400 0.921700 0.358300
-vn 0.271700 -0.704000 0.656100
-vn 0.214200 -0.828600 0.517100
-vn 0.318900 -0.552800 0.769900
-vn 0.191400 -0.193900 0.962200
-vn 0.180400 -0.380500 0.907000
-vn 0.191400 0.193900 0.962200
-vn 0.195100 0.000000 0.980800
-vn 0.162600 0.552800 0.817300
-vn 0.180400 0.380500 0.907000
-vn 0.109200 0.828600 0.549000
-vn 0.138500 0.704000 0.696500
-vn 0.075700 -0.921700 0.380400
-vn 0.035500 -0.983300 0.178400
-vn 0.035500 0.983300 0.178400
-vn 0.075700 0.921700 0.380400
-vn 0.138500 -0.704000 0.696500
-vn 0.109200 -0.828600 0.549000
-vn 0.162600 -0.552800 0.817300
-vn 0.000000 -0.193900 0.981000
-vn 0.000000 -0.380500 0.924700
-vn 0.000000 0.193900 0.981000
-vn 0.000000 0.000000 1.000000
-vn 0.000000 0.552800 0.833300
-vn 0.000000 0.380500 0.924700
-vn 0.000000 0.828600 0.559800
-vn 0.000000 0.704000 0.710100
-vn 0.000000 -0.921700 0.387900
-vn 0.000000 -0.983300 0.182000
-vn 0.000000 0.983300 0.182000
-vn 0.000000 0.921700 0.387900
-vn 0.000000 -0.704000 0.710100
-vn 0.000000 -0.828600 0.559800
-vn 0.000000 -0.552800 0.833300
-vn -0.191400 -0.193900 0.962200
-vn -0.180400 -0.380500 0.907000
-vn -0.191400 0.193900 0.962200
-vn -0.195100 0.000000 0.980800
-vn -0.162600 0.552800 0.817300
-vn -0.180400 0.380500 0.907000
-vn -0.109200 0.828600 0.549000
-vn -0.138500 0.704000 0.696500
-vn -0.075700 -0.921700 0.380400
-vn -0.035500 -0.983300 0.178400
-vn -0.035500 0.983300 0.178400
-vn -0.075700 0.921700 0.380400
-vn -0.138500 -0.704000 0.696500
-vn -0.109200 -0.828600 0.549000
-vn -0.162600 -0.552800 0.817300
-vn -0.375400 -0.193900 0.906300
-vn -0.353900 -0.380500 0.854400
-vn -0.375400 0.193900 0.906300
-vn -0.382700 0.000000 0.923900
-vn -0.318900 0.552800 0.769900
-vn -0.353900 0.380500 0.854400
-vn -0.214200 0.828600 0.517100
-vn -0.271700 0.704000 0.656100
-vn -0.148400 -0.921700 0.358300
-vn -0.069600 -0.983300 0.168100
-vn -0.069600 0.983300 0.168100
-vn -0.148400 0.921700 0.358300
-vn -0.271700 -0.704000 0.656100
-vn -0.214200 -0.828600 0.517100
-vn -0.318900 -0.552800 0.769900
-vn -0.545000 -0.193900 0.815700
-vn -0.513700 -0.380500 0.768900
-vn -0.545000 0.193900 0.815700
-vn -0.555600 0.000000 0.831400
-vn -0.463000 0.552800 0.692900
-vn -0.513700 0.380500 0.768900
-vn -0.311000 0.828600 0.465400
-vn -0.394500 0.704000 0.590400
-vn -0.215500 -0.921700 0.322500
-vn -0.101100 -0.983300 0.151300
-vn -0.101100 0.983300 0.151300
-vn -0.215500 0.921700 0.322500
-vn -0.394500 -0.704000 0.590400
-vn -0.311000 -0.828600 0.465400
-vn -0.463000 -0.552800 0.692900
-vn -0.693700 -0.193900 0.693700
-vn -0.653900 -0.380500 0.653900
-vn -0.693700 0.193900 0.693700
-vn -0.707100 0.000000 0.707100
-vn -0.589300 0.552800 0.589300
-vn -0.653900 0.380500 0.653900
-vn -0.395800 0.828600 0.395800
-vn -0.502100 0.704000 0.502100
-vn -0.274300 -0.921700 0.274300
-vn -0.128600 -0.983300 0.128600
-vn -0.128600 0.983300 0.128600
-vn -0.274300 0.921700 0.274300
-vn -0.502100 -0.704000 0.502100
-vn -0.395800 -0.828600 0.395800
-vn -0.589300 -0.552800 0.589300
-vn -0.815700 -0.193900 0.545000
-vn -0.768900 -0.380500 0.513700
-vn -0.815700 0.193900 0.545000
-vn -0.831400 0.000000 0.555600
-vn -0.692900 0.552800 0.463000
-vn -0.768900 0.380500 0.513700
-vn -0.465400 0.828600 0.311000
-vn -0.590400 0.704000 0.394500
-vn -0.322500 -0.921700 0.215500
-vn -0.151300 -0.983300 0.101100
-vn -0.151300 0.983300 0.101100
-vn -0.322500 0.921700 0.215500
-vn -0.590400 -0.704000 0.394500
-vn -0.465400 -0.828600 0.311000
-vn -0.692900 -0.552800 0.463000
-vn -0.906300 -0.193900 0.375400
-vn -0.854400 -0.380500 0.353900
-vn -0.906300 0.193900 0.375400
-vn -0.923900 0.000000 0.382700
-vn -0.769900 0.552800 0.318900
-vn -0.854400 0.380500 0.353900
-vn -0.517100 0.828600 0.214200
-vn -0.656100 0.704000 0.271700
-vn -0.358300 -0.921700 0.148400
-vn -0.168100 -0.983300 0.069600
-vn -0.168100 0.983300 0.069600
-vn -0.358300 0.921700 0.148400
-vn -0.656100 -0.704000 0.271700
-vn -0.517100 -0.828600 0.214200
-vn -0.769900 -0.552800 0.318900
-vn -0.962200 -0.193900 0.191400
-vn -0.907000 -0.380500 0.180400
-vn -0.962200 0.193900 0.191400
-vn -0.980800 0.000000 0.195100
-vn -0.817300 0.552800 0.162600
-vn -0.907000 0.380500 0.180400
-vn -0.549000 0.828600 0.109200
-vn -0.696500 0.704000 0.138500
-vn -0.380400 -0.921700 0.075700
-vn -0.178400 -0.983300 0.035500
-vn -0.178400 0.983300 0.035500
-vn -0.380400 0.921700 0.075700
-vn -0.696500 -0.704000 0.138500
-vn -0.549000 -0.828600 0.109200
-vn -0.817300 -0.552800 0.162600
-vn -0.030200 -0.999500 0.000000
-vn -0.029600 -0.999500 -0.005900
-vn -0.027900 -0.999500 -0.011500
-vn -0.025100 -0.999500 -0.016800
-vn -0.021300 -0.999500 -0.021300
-vn -0.016800 -0.999500 -0.025100
-vn -0.011500 -0.999500 -0.027900
-vn -0.005900 -0.999500 -0.029600
-vn 0.000000 -0.999500 -0.030200
-vn 0.005900 -0.999500 -0.029600
-vn 0.011500 -0.999500 -0.027900
-vn 0.016800 -0.999500 -0.025100
-vn 0.021300 -0.999500 -0.021300
-vn 0.025100 -0.999500 -0.016800
-vn 0.027900 -0.999500 -0.011500
-vn 0.029600 -0.999500 -0.005900
-vn 0.030200 -0.999500 0.000000
-vn 0.029600 -0.999500 0.005900
-vn 0.027900 -0.999500 0.011500
-vn 0.025100 -0.999500 0.016800
-vn 0.021300 -0.999500 0.021300
-vn 0.016800 -0.999500 0.025100
-vn 0.011500 -0.999500 0.027900
-vn 0.005900 -0.999500 0.029600
-vn 0.000000 -0.999500 0.030200
-vn -0.005900 -0.999500 0.029600
-vn -0.011500 -0.999500 0.027900
-vn -0.016800 -0.999500 0.025100
-vn -0.021300 -0.999500 0.021300
-vn -0.025100 -0.999500 0.016800
-vn -0.027900 -0.999500 0.011500
-vn -0.029600 -0.999500 0.005900
-vn -0.029600 0.999500 0.005900
-vn -0.030200 0.999500 0.000000
-vn -0.027900 0.999500 0.011500
-vn -0.025100 0.999500 0.016800
-vn -0.021300 0.999500 0.021300
-vn -0.016800 0.999500 0.025100
-vn -0.011500 0.999500 0.027900
-vn -0.005900 0.999500 0.029600
-vn 0.000000 0.999500 0.030200
-vn 0.005900 0.999500 0.029600
-vn 0.011500 0.999500 0.027900
-vn 0.016800 0.999500 0.025100
-vn 0.021300 0.999500 0.021300
-vn 0.025100 0.999500 0.016800
-vn 0.027900 0.999500 0.011500
-vn 0.029600 0.999500 0.005900
-vn 0.030200 0.999500 0.000000
-vn 0.029600 0.999500 -0.005900
-vn 0.027900 0.999500 -0.011500
-vn 0.025100 0.999500 -0.016800
-vn 0.021300 0.999500 -0.021300
-vn 0.016800 0.999500 -0.025100
-vn 0.011500 0.999500 -0.027900
-vn 0.005900 0.999500 -0.029600
-vn 0.000000 0.999500 -0.030200
-vn -0.005900 0.999500 -0.029600
-vn -0.011500 0.999500 -0.027900
-vn -0.016800 0.999500 -0.025100
-vn -0.021300 0.999500 -0.021300
-vn -0.025100 0.999500 -0.016800
-vn -0.027900 0.999500 -0.011500
-vn -0.029600 0.999500 -0.005900
-s 1
-f 4/1/1 3/2/2 18/3/3 19/4/4
-f 15/5/5 14/6/6 29/7/7 30/8/8
-f 2/9/9 1/10/10 16/11/11 17/12/12
-f 13/13/13 12/14/14 27/15/15 28/16/16
-f 11/17/17 10/18/18 25/19/19 26/20/20
-f 9/21/21 8/22/22 23/23/23 24/24/24
-f 7/25/25 6/26/26 21/27/27 22/28/28
-f 5/29/29 4/1/1 19/4/4 20/30/30
-f 3/2/2 2/9/9 17/12/12 18/3/3
-f 14/6/6 13/13/13 28/16/16 29/7/7
-f 12/14/14 11/17/17 26/20/20 27/15/15
-f 10/18/18 9/21/21 24/24/24 25/19/19
-f 8/22/22 7/25/25 22/28/28 23/23/23
-f 6/26/26 5/29/29 20/30/30 21/27/27
-f 25/19/19 24/24/24 39/31/31 40/32/32
-f 23/23/23 22/28/28 37/33/33 38/34/34
-f 21/27/27 20/30/30 35/35/35 36/36/36
-f 19/4/4 18/3/3 33/37/37 34/38/38
-f 30/8/8 29/7/7 44/39/39 45/40/40
-f 17/12/12 16/11/11 31/41/41 32/42/42
-f 28/16/16 27/15/15 42/43/43 43/44/44
-f 26/20/20 25/19/19 40/32/32 41/45/45
-f 24/24/24 23/23/23 38/34/34 39/31/31
-f 22/28/28 21/27/27 36/36/36 37/33/33
-f 20/30/30 19/4/4 34/38/38 35/35/35
-f 18/3/3 17/12/12 32/42/42 33/37/37
-f 29/7/7 28/16/16 43/44/44 44/39/39
-f 27/15/15 26/20/20 41/45/45 42/43/43
-f 40/32/32 39/31/31 54/46/46 55/47/47
-f 38/34/34 37/33/33 52/48/48 53/49/49
-f 36/36/36 35/35/35 50/50/50 51/51/51
-f 34/38/38 33/37/37 48/52/52 49/53/53
-f 45/40/40 44/39/39 59/54/54 60/55/55
-f 32/42/42 31/41/41 46/56/56 47/57/57
-f 43/44/44 42/43/43 57/58/58 58/59/59
-f 41/45/45 40/32/32 55/47/47 56/60/60
-f 39/31/31 38/34/34 53/49/49 54/46/46
-f 37/33/33 36/36/36 51/51/51 52/48/48
-f 35/35/35 34/38/38 49/53/53 50/50/50
-f 33/37/37 32/42/42 47/57/57 48/52/52
-f 44/39/39 43/44/44 58/59/59 59/54/54
-f 42/43/43 41/45/45 56/60/60 57/58/58
-f 55/47/47 54/46/46 69/61/61 70/62/62
-f 53/49/49 52/48/48 67/63/63 68/64/64
-f 51/51/51 50/50/50 65/65/65 66/66/66
-f 49/53/53 48/52/52 63/67/67 64/68/68
-f 60/55/55 59/54/54 74/69/69 75/70/70
-f 47/57/57 46/56/56 61/71/71 62/72/72
-f 58/59/59 57/58/58 72/73/73 73/74/74
-f 56/60/60 55/47/47 70/62/62 71/75/75
-f 54/46/46 53/49/49 68/64/64 69/61/61
-f 52/48/48 51/51/51 66/66/66 67/63/63
-f 50/50/50 49/53/53 64/68/68 65/65/65
-f 48/52/52 47/57/57 62/72/72 63/67/67
-f 59/54/54 58/59/59 73/74/74 74/69/69
-f 57/58/58 56/60/60 71/75/75 72/73/73
-f 70/62/62 69/61/61 84/76/76 85/77/77
-f 68/64/64 67/63/63 82/78/78 83/79/79
-f 66/66/66 65/65/65 80/80/80 81/81/81
-f 64/68/68 63/67/67 78/82/82 79/83/83
-f 75/70/70 74/69/69 89/84/84 90/85/85
-f 62/72/72 61/71/71 76/86/86 77/87/87
-f 73/74/74 72/73/73 87/88/88 88/89/89
-f 71/75/75 70/62/62 85/77/77 86/90/90
-f 69/61/61 68/64/64 83/79/79 84/76/76
-f 67/63/63 66/66/66 81/81/81 82/78/78
-f 65/65/65 64/68/68 79/83/83 80/80/80
-f 63/67/67 62/72/72 77/87/87 78/82/82
-f 74/69/69 73/74/74 88/89/89 89/84/84
-f 72/73/73 71/75/75 86/90/90 87/88/88
-f 85/77/77 84/76/76 99/91/91 100/92/92
-f 83/79/79 82/78/78 97/93/93 98/94/94
-f 81/81/81 80/80/80 95/95/95 96/96/96
-f 79/83/83 78/82/82 93/97/97 94/98/98
-f 90/85/85 89/84/84 104/99/99 105/100/100
-f 77/87/87 76/86/86 91/101/101 92/102/102
-f 88/89/89 87/88/88 102/103/103 103/104/104
-f 86/90/90 85/77/77 100/92/92 101/105/105
-f 84/76/76 83/79/79 98/94/94 99/91/91
-f 82/78/78 81/81/81 96/96/96 97/93/93
-f 80/80/80 79/83/83 94/98/98 95/95/95
-f 78/82/82 77/87/87 92/102/102 93/97/97
-f 89/84/84 88/89/89 103/104/104 104/99/99
-f 87/88/88 86/90/90 101/105/105 102/103/103
-f 100/92/92 99/91/91 114/106/106 115/107/107
-f 98/94/94 97/93/93 112/108/108 113/109/109
-f 96/96/96 95/95/95 110/110/110 111/111/111
-f 94/98/98 93/97/97 108/112/112 109/113/113
-f 105/100/100 104/99/99 119/114/114 120/115/115
-f 92/102/102 91/101/101 106/116/116 107/117/117
-f 103/104/104 102/103/103 117/118/118 118/119/119
-f 101/105/105 100/92/92 115/107/107 116/120/120
-f 99/91/91 98/94/94 113/109/109 114/106/106
-f 97/93/93 96/96/96 111/111/111 112/108/108
-f 95/95/95 94/98/98 109/113/113 110/110/110
-f 93/97/97 92/102/102 107/117/117 108/112/112
-f 104/99/99 103/104/104 118/119/119 119/114/114
-f 102/103/103 101/105/105 116/120/120 117/118/118
-f 115/121/107 114/122/106 129/123/121 130/124/122
-f 113/125/109 112/126/108 127/127/123 128/128/124
-f 111/129/111 110/130/110 125/131/125 126/132/126
-f 109/133/113 108/134/112 123/135/127 124/136/128
-f 120/137/115 119/138/114 134/139/129 135/140/130
-f 107/141/117 106/142/116 121/143/131 122/144/132
-f 118/145/119 117/146/118 132/147/133 133/148/134
-f 116/149/120 115/121/107 130/124/122 131/150/135
-f 114/122/106 113/125/109 128/128/124 129/123/121
-f 112/126/108 111/129/111 126/132/126 127/127/123
-f 110/130/110 109/133/113 124/136/128 125/131/125
-f 108/134/112 107/141/117 122/144/132 123/135/127
-f 119/138/114 118/145/119 133/148/134 134/139/129
-f 117/146/118 116/149/120 131/150/135 132/147/133
-f 130/124/122 129/123/121 144/151/136 145/152/137
-f 128/128/124 127/127/123 142/153/138 143/154/139
-f 126/132/126 125/131/125 140/155/140 141/156/141
-f 124/136/128 123/135/127 138/157/142 139/158/143
-f 135/140/130 134/139/129 149/159/144 150/160/145
-f 122/144/132 121/143/131 136/161/146 137/162/147
-f 133/148/134 132/147/133 147/163/148 148/164/149
-f 131/150/135 130/124/122 145/152/137 146/165/150
-f 129/123/121 128/128/124 143/154/139 144/151/136
-f 127/127/123 126/132/126 141/156/141 142/153/138
-f 125/131/125 124/136/128 139/158/143 140/155/140
-f 123/135/127 122/144/132 137/162/147 138/157/142
-f 134/139/129 133/148/134 148/164/149 149/159/144
-f 132/147/133 131/150/135 146/165/150 147/163/148
-f 145/152/137 144/151/136 159/166/151 160/167/152
-f 143/154/139 142/153/138 157/168/153 158/169/154
-f 141/156/141 140/155/140 155/170/155 156/171/156
-f 139/158/143 138/157/142 153/172/157 154/173/158
-f 150/160/145 149/159/144 164/174/159 165/175/160
-f 137/162/147 136/161/146 151/176/161 152/177/162
-f 148/164/149 147/163/148 162/178/163 163/179/164
-f 146/165/150 145/152/137 160/167/152 161/180/165
-f 144/151/136 143/154/139 158/169/154 159/166/151
-f 142/153/138 141/156/141 156/171/156 157/168/153
-f 140/155/140 139/158/143 154/173/158 155/170/155
-f 138/157/142 137/162/147 152/177/162 153/172/157
-f 149/159/144 148/164/149 163/179/164 164/174/159
-f 147/163/148 146/165/150 161/180/165 162/178/163
-f 160/167/152 159/166/151 174/181/166 175/182/167
-f 158/169/154 157/168/153 172/183/168 173/184/169
-f 156/171/156 155/170/155 170/185/170 171/186/171
-f 154/173/158 153/172/157 168/187/172 169/188/173
-f 165/175/160 164/174/159 179/189/174 180/190/175
-f 152/177/162 151/176/161 166/191/176 167/192/177
-f 163/179/164 162/178/163 177/193/178 178/194/179
-f 161/180/165 160/167/152 175/182/167 176/195/180
-f 159/166/151 158/169/154 173/184/169 174/181/166
-f 157/168/153 156/171/156 171/186/171 172/183/168
-f 155/170/155 154/173/158 169/188/173 170/185/170
-f 153/172/157 152/177/162 167/192/177 168/187/172
-f 164/174/159 163/179/164 178/194/179 179/189/174
-f 162/178/163 161/180/165 176/195/180 177/193/178
-f 175/182/167 174/181/166 189/196/181 190/197/182
-f 173/184/169 172/183/168 187/198/183 188/199/184
-f 171/186/171 170/185/170 185/200/185 186/201/186
-f 169/188/173 168/187/172 183/202/187 184/203/188
-f 180/190/175 179/189/174 194/204/189 195/205/190
-f 167/192/177 166/191/176 181/206/191 182/207/192
-f 178/194/179 177/193/178 192/208/193 193/209/194
-f 176/195/180 175/182/167 190/197/182 191/210/195
-f 174/181/166 173/184/169 188/199/184 189/196/181
-f 172/183/168 171/186/171 186/201/186 187/198/183
-f 170/185/170 169/188/173 184/203/188 185/200/185
-f 168/187/172 167/192/177 182/207/192 183/202/187
-f 179/189/174 178/194/179 193/209/194 194/204/189
-f 177/193/178 176/195/180 191/210/195 192/208/193
-f 190/197/182 189/196/181 204/211/196 205/212/197
-f 188/199/184 187/198/183 202/213/198 203/214/199
-f 186/201/186 185/200/185 200/215/200 201/216/201
-f 184/203/188 183/202/187 198/217/202 199/218/203
-f 195/205/190 194/204/189 209/219/204 210/220/205
-f 182/207/192 181/206/191 196/221/206 197/222/207
-f 193/209/194 192/208/193 207/223/208 208/224/209
-f 191/210/195 190/197/182 205/212/197 206/225/210
-f 189/196/181 188/199/184 203/214/199 204/211/196
-f 187/198/183 186/201/186 201/216/201 202/213/198
-f 185/200/185 184/203/188 199/218/203 200/215/200
-f 183/202/187 182/207/192 197/222/207 198/217/202
-f 194/204/189 193/209/194 208/224/209 209/219/204
-f 192/208/193 191/210/195 206/225/210 207/223/208
-f 205/212/197 204/211/196 219/226/211 220/227/212
-f 203/214/199 202/213/198 217/228/213 218/229/214
-f 201/216/201 200/215/200 215/230/215 216/231/216
-f 199/218/203 198/217/202 213/232/217 214/233/218
-f 210/220/205 209/219/204 224/234/219 225/235/220
-f 197/222/207 196/221/206 211/236/221 212/237/222
-f 208/224/209 207/223/208 222/238/223 223/239/224
-f 206/225/210 205/212/197 220/227/212 221/240/225
-f 204/211/196 203/214/199 218/229/214 219/226/211
-f 202/213/198 201/216/201 216/231/216 217/228/213
-f 200/215/200 199/218/203 214/233/218 215/230/215
-f 198/217/202 197/222/207 212/237/222 213/232/217
-f 209/219/204 208/224/209 223/239/224 224/234/219
-f 207/223/208 206/225/210 221/240/225 222/238/223
-f 220/227/212 219/226/211 234/241/226 235/242/227
-f 218/229/214 217/228/213 232/243/228 233/244/229
-f 216/231/216 215/230/215 230/245/230 231/246/231
-f 214/233/218 213/232/217 228/247/232 229/248/233
-f 225/235/220 224/234/219 239/249/234 240/250/235
-f 212/237/222 211/236/221 226/251/236 227/252/237
-f 223/239/224 222/238/223 237/253/238 238/254/239
-f 221/240/225 220/227/212 235/242/227 236/255/240
-f 219/226/211 218/229/214 233/244/229 234/241/226
-f 217/228/213 216/231/216 231/246/231 232/243/228
-f 215/230/215 214/233/218 229/248/233 230/245/230
-f 213/232/217 212/237/222 227/252/237 228/247/232
-f 224/234/219 223/239/224 238/254/239 239/249/234
-f 222/238/223 221/240/225 236/255/240 237/253/238
-f 235/242/227 234/241/226 249/21/241 250/18/242
-f 233/244/229 232/243/228 247/25/243 248/22/244
-f 231/246/231 230/245/230 245/29/245 246/26/246
-f 229/248/233 228/247/232 243/2/247 244/1/248
-f 240/250/235 239/249/234 254/6/249 255/5/250
-f 227/252/237 226/251/236 241/10/251 242/9/252
-f 238/254/239 237/253/238 252/14/253 253/13/254
-f 236/255/240 235/242/227 250/18/242 251/17/255
-f 234/241/226 233/244/229 248/22/244 249/21/241
-f 232/243/228 231/246/231 246/26/246 247/25/243
-f 230/245/230 229/248/233 244/1/248 245/29/245
-f 228/247/232 227/252/237 242/9/252 243/2/247
-f 239/249/234 238/254/239 253/13/254 254/6/249
-f 237/253/238 236/255/240 251/17/255 252/14/253
-f 250/18/242 249/21/241 264/24/256 265/19/257
-f 248/22/244 247/25/243 262/28/258 263/23/259
-f 246/26/246 245/29/245 260/30/260 261/27/261
-f 244/1/248 243/2/247 258/3/262 259/4/263
-f 255/5/250 254/6/249 269/7/264 270/8/265
-f 242/9/252 241/10/251 256/11/266 257/12/267
-f 253/13/254 252/14/253 267/15/268 268/16/269
-f 251/17/255 250/18/242 265/19/257 266/20/270
-f 249/21/241 248/22/244 263/23/259 264/24/256
-f 247/25/243 246/26/246 261/27/261 262/28/258
-f 245/29/245 244/1/248 259/4/263 260/30/260
-f 243/2/247 242/9/252 257/12/267 258/3/262
-f 254/6/249 253/13/254 268/16/269 269/7/264
-f 252/14/253 251/17/255 266/20/270 267/15/268
-f 265/19/257 264/24/256 279/31/271 280/32/272
-f 263/23/259 262/28/258 277/33/273 278/34/274
-f 261/27/261 260/30/260 275/35/275 276/36/276
-f 259/4/263 258/3/262 273/37/277 274/38/278
-f 270/8/265 269/7/264 284/39/279 285/40/280
-f 257/12/267 256/11/266 271/41/281 272/42/282
-f 268/16/269 267/15/268 282/43/283 283/44/284
-f 266/20/270 265/19/257 280/32/272 281/45/285
-f 264/24/256 263/23/259 278/34/274 279/31/271
-f 262/28/258 261/27/261 276/36/276 277/33/273
-f 260/30/260 259/4/263 274/38/278 275/35/275
-f 258/3/262 257/12/267 272/42/282 273/37/277
-f 269/7/264 268/16/269 283/44/284 284/39/279
-f 267/15/268 266/20/270 281/45/285 282/43/283
-f 280/32/272 279/31/271 294/46/286 295/47/287
-f 278/34/274 277/33/273 292/48/288 293/49/289
-f 276/36/276 275/35/275 290/50/290 291/51/291
-f 274/38/278 273/37/277 288/52/292 289/53/293
-f 285/40/280 284/39/279 299/54/294 300/55/295
-f 272/42/282 271/41/281 286/56/296 287/57/297
-f 283/44/284 282/43/283 297/58/298 298/59/299
-f 281/45/285 280/32/272 295/47/287 296/60/300
-f 279/31/271 278/34/274 293/49/289 294/46/286
-f 277/33/273 276/36/276 291/51/291 292/48/288
-f 275/35/275 274/38/278 289/53/293 290/50/290
-f 273/37/277 272/42/282 287/57/297 288/52/292
-f 284/39/279 283/44/284 298/59/299 299/54/294
-f 282/43/283 281/45/285 296/60/300 297/58/298
-f 295/47/287 294/46/286 309/61/301 310/62/302
-f 293/49/289 292/48/288 307/63/303 308/64/304
-f 291/51/291 290/50/290 305/65/305 306/66/306
-f 289/53/293 288/52/292 303/67/307 304/68/308
-f 300/55/295 299/54/294 314/69/309 315/70/310
-f 287/57/297 286/56/296 301/71/311 302/72/312
-f 298/59/299 297/58/298 312/73/313 313/74/314
-f 296/60/300 295/47/287 310/62/302 311/75/315
-f 294/46/286 293/49/289 308/64/304 309/61/301
-f 292/48/288 291/51/291 306/66/306 307/63/303
-f 290/50/290 289/53/293 304/68/308 305/65/305
-f 288/52/292 287/57/297 302/72/312 303/67/307
-f 299/54/294 298/59/299 313/74/314 314/69/309
-f 297/58/298 296/60/300 311/75/315 312/73/313
-f 310/62/302 309/61/301 324/76/316 325/77/317
-f 308/64/304 307/63/303 322/78/318 323/79/319
-f 306/66/306 305/65/305 320/80/320 321/81/321
-f 304/68/308 303/67/307 318/82/322 319/83/323
-f 315/70/310 314/69/309 329/84/324 330/85/325
-f 302/72/312 301/71/311 316/86/326 317/87/327
-f 313/74/314 312/73/313 327/88/328 328/89/329
-f 311/75/315 310/62/302 325/77/317 326/90/330
-f 309/61/301 308/64/304 323/79/319 324/76/316
-f 307/63/303 306/66/306 321/81/321 322/78/318
-f 305/65/305 304/68/308 319/83/323 320/80/320
-f 303/67/307 302/72/312 317/87/327 318/82/322
-f 314/69/309 313/74/314 328/89/329 329/84/324
-f 312/73/313 311/75/315 326/90/330 327/88/328
-f 325/77/317 324/76/316 339/91/331 340/92/332
-f 323/79/319 322/78/318 337/93/333 338/94/334
-f 321/81/321 320/80/320 335/95/335 336/96/336
-f 319/83/323 318/82/322 333/97/337 334/98/338
-f 330/85/325 329/84/324 344/99/339 345/100/340
-f 317/87/327 316/86/326 331/101/341 332/102/342
-f 328/89/329 327/88/328 342/103/343 343/104/344
-f 326/90/330 325/77/317 340/92/332 341/105/345
-f 324/76/316 323/79/319 338/94/334 339/91/331
-f 322/78/318 321/81/321 336/96/336 337/93/333
-f 320/80/320 319/83/323 334/98/338 335/95/335
-f 318/82/322 317/87/327 332/102/342 333/97/337
-f 329/84/324 328/89/329 343/104/344 344/99/339
-f 327/88/328 326/90/330 341/105/345 342/103/343
-f 340/92/332 339/91/331 354/106/346 355/107/347
-f 338/94/334 337/93/333 352/108/348 353/109/349
-f 336/96/336 335/95/335 350/110/350 351/111/351
-f 334/98/338 333/97/337 348/112/352 349/113/353
-f 345/100/340 344/99/339 359/114/354 360/115/355
-f 332/102/342 331/101/341 346/116/356 347/117/357
-f 343/104/344 342/103/343 357/118/358 358/119/359
-f 341/105/345 340/92/332 355/107/347 356/120/360
-f 339/91/331 338/94/334 353/109/349 354/106/346
-f 337/93/333 336/96/336 351/111/351 352/108/348
-f 335/95/335 334/98/338 349/113/353 350/110/350
-f 333/97/337 332/102/342 347/117/357 348/112/352
-f 344/99/339 343/104/344 358/119/359 359/114/354
-f 342/103/343 341/105/345 356/120/360 357/118/358
-f 355/121/347 354/122/346 369/123/361 370/124/362
-f 353/125/349 352/126/348 367/127/363 368/128/364
-f 351/129/351 350/130/350 365/131/365 366/132/366
-f 349/133/353 348/134/352 363/135/367 364/136/368
-f 360/137/355 359/138/354 374/139/369 375/140/370
-f 347/141/357 346/142/356 361/143/371 362/144/372
-f 358/145/359 357/146/358 372/147/373 373/148/374
-f 356/149/360 355/121/347 370/124/362 371/150/375
-f 354/122/346 353/125/349 368/128/364 369/123/361
-f 352/126/348 351/129/351 366/132/366 367/127/363
-f 350/130/350 349/133/353 364/136/368 365/131/365
-f 348/134/352 347/141/357 362/144/372 363/135/367
-f 359/138/354 358/145/359 373/148/374 374/139/369
-f 357/146/358 356/149/360 371/150/375 372/147/373
-f 370/124/362 369/123/361 384/151/376 385/152/377
-f 368/128/364 367/127/363 382/153/378 383/154/379
-f 366/132/366 365/131/365 380/155/380 381/156/381
-f 364/136/368 363/135/367 378/157/382 379/158/383
-f 375/140/370 374/139/369 389/159/384 390/160/385
-f 362/144/372 361/143/371 376/161/386 377/162/387
-f 373/148/374 372/147/373 387/163/388 388/164/389
-f 371/150/375 370/124/362 385/152/377 386/165/390
-f 369/123/361 368/128/364 383/154/379 384/151/376
-f 367/127/363 366/132/366 381/156/381 382/153/378
-f 365/131/365 364/136/368 379/158/383 380/155/380
-f 363/135/367 362/144/372 377/162/387 378/157/382
-f 374/139/369 373/148/374 388/164/389 389/159/384
-f 372/147/373 371/150/375 386/165/390 387/163/388
-f 385/152/377 384/151/376 399/166/391 400/167/392
-f 383/154/379 382/153/378 397/168/393 398/169/394
-f 381/156/381 380/155/380 395/170/395 396/171/396
-f 379/158/383 378/157/382 393/172/397 394/173/398
-f 390/160/385 389/159/384 404/174/399 405/175/400
-f 377/162/387 376/161/386 391/176/401 392/177/402
-f 388/164/389 387/163/388 402/178/403 403/179/404
-f 386/165/390 385/152/377 400/167/392 401/180/405
-f 384/151/376 383/154/379 398/169/394 399/166/391
-f 382/153/378 381/156/381 396/171/396 397/168/393
-f 380/155/380 379/158/383 394/173/398 395/170/395
-f 378/157/382 377/162/387 392/177/402 393/172/397
-f 389/159/384 388/164/389 403/179/404 404/174/399
-f 387/163/388 386/165/390 401/180/405 402/178/403
-f 400/167/392 399/166/391 414/181/406 415/182/407
-f 398/169/394 397/168/393 412/183/408 413/184/409
-f 396/171/396 395/170/395 410/185/410 411/186/411
-f 394/173/398 393/172/397 408/187/412 409/188/413
-f 405/175/400 404/174/399 419/189/414 420/190/415
-f 392/177/402 391/176/401 406/191/416 407/192/417
-f 403/179/404 402/178/403 417/193/418 418/194/419
-f 401/180/405 400/167/392 415/182/407 416/195/420
-f 399/166/391 398/169/394 413/184/409 414/181/406
-f 397/168/393 396/171/396 411/186/411 412/183/408
-f 395/170/395 394/173/398 409/188/413 410/185/410
-f 393/172/397 392/177/402 407/192/417 408/187/412
-f 404/174/399 403/179/404 418/194/419 419/189/414
-f 402/178/403 401/180/405 416/195/420 417/193/418
-f 415/182/407 414/181/406 429/196/421 430/197/422
-f 413/184/409 412/183/408 427/198/423 428/199/424
-f 411/186/411 410/185/410 425/200/425 426/201/426
-f 409/188/413 408/187/412 423/202/427 424/203/428
-f 420/190/415 419/189/414 434/204/429 435/205/430
-f 407/192/417 406/191/416 421/206/431 422/207/432
-f 418/194/419 417/193/418 432/208/433 433/209/434
-f 416/195/420 415/182/407 430/197/422 431/210/435
-f 414/181/406 413/184/409 428/199/424 429/196/421
-f 412/183/408 411/186/411 426/201/426 427/198/423
-f 410/185/410 409/188/413 424/203/428 425/200/425
-f 408/187/412 407/192/417 422/207/432 423/202/427
-f 419/189/414 418/194/419 433/209/434 434/204/429
-f 417/193/418 416/195/420 431/210/435 432/208/433
-f 430/197/422 429/196/421 444/211/436 445/212/437
-f 428/199/424 427/198/423 442/213/438 443/214/439
-f 426/201/426 425/200/425 440/215/440 441/216/441
-f 424/203/428 423/202/427 438/217/442 439/218/443
-f 435/205/430 434/204/429 449/219/444 450/220/445
-f 422/207/432 421/206/431 436/221/446 437/222/447
-f 433/209/434 432/208/433 447/223/448 448/224/449
-f 431/210/435 430/197/422 445/212/437 446/225/450
-f 429/196/421 428/199/424 443/214/439 444/211/436
-f 427/198/423 426/201/426 441/216/441 442/213/438
-f 425/200/425 424/203/428 439/218/443 440/215/440
-f 423/202/427 422/207/432 437/222/447 438/217/442
-f 434/204/429 433/209/434 448/224/449 449/219/444
-f 432/208/433 431/210/435 446/225/450 447/223/448
-f 445/212/437 444/211/436 459/226/451 460/227/452
-f 443/214/439 442/213/438 457/228/453 458/229/454
-f 441/216/441 440/215/440 455/230/455 456/231/456
-f 439/218/443 438/217/442 453/232/457 454/233/458
-f 450/220/445 449/219/444 464/234/459 465/235/460
-f 437/222/447 436/221/446 451/236/461 452/237/462
-f 448/224/449 447/223/448 462/238/463 463/239/464
-f 446/225/450 445/212/437 460/227/452 461/240/465
-f 444/211/436 443/214/439 458/229/454 459/226/451
-f 442/213/438 441/216/441 456/231/456 457/228/453
-f 440/215/440 439/218/443 454/233/458 455/230/455
-f 438/217/442 437/222/447 452/237/462 453/232/457
-f 449/219/444 448/224/449 463/239/464 464/234/459
-f 447/223/448 446/225/450 461/240/465 462/238/463
-f 460/227/452 459/226/451 474/241/466 475/242/467
-f 458/229/454 457/228/453 472/243/468 473/244/469
-f 456/231/456 455/230/455 470/245/470 471/246/471
-f 454/233/458 453/232/457 468/247/472 469/248/473
-f 465/235/460 464/234/459 479/249/474 480/250/475
-f 452/237/462 451/236/461 466/251/476 467/252/477
-f 463/239/464 462/238/463 477/253/478 478/254/479
-f 461/240/465 460/227/452 475/242/467 476/255/480
-f 459/226/451 458/229/454 473/244/469 474/241/466
-f 457/228/453 456/231/456 471/246/471 472/243/468
-f 455/230/455 454/233/458 469/248/473 470/245/470
-f 453/232/457 452/237/462 467/252/477 468/247/472
-f 464/234/459 463/239/464 478/254/479 479/249/474
-f 462/238/463 461/240/465 476/255/480 477/253/478
-f 481/256/481 15/5/5 30/8/8 485/257/482
-f 485/257/482 30/8/8 45/40/40 487/258/483
-f 487/258/483 45/40/40 60/55/55 489/259/484
-f 489/259/484 60/55/55 75/70/70 491/260/485
-f 491/260/485 75/70/70 90/85/85 493/261/486
-f 493/261/486 90/85/85 105/100/100 495/262/487
-f 495/262/487 105/100/100 120/115/115 497/263/488
-f 497/264/488 120/137/115 135/140/130 499/265/489
-f 499/265/489 135/140/130 150/160/145 501/266/490
-f 501/266/490 150/160/145 165/175/160 503/267/491
-f 503/267/491 165/175/160 180/190/175 505/268/492
-f 505/268/492 180/190/175 195/205/190 507/269/493
-f 507/269/493 195/205/190 210/220/205 509/270/494
-f 509/270/494 210/220/205 225/235/220 511/271/495
-f 511/271/495 225/235/220 240/250/235 513/272/496
-f 513/272/496 240/250/235 255/5/250 515/256/497
-f 515/256/497 255/5/250 270/8/265 517/257/498
-f 517/257/498 270/8/265 285/40/280 519/258/499
-f 519/258/499 285/40/280 300/55/295 521/259/500
-f 521/259/500 300/55/295 315/70/310 523/260/501
-f 523/260/501 315/70/310 330/85/325 525/261/502
-f 525/261/502 330/85/325 345/100/340 527/262/503
-f 527/262/503 345/100/340 360/115/355 529/263/504
-f 529/264/504 360/137/355 375/140/370 531/265/505
-f 531/265/505 375/140/370 390/160/385 533/266/506
-f 533/266/506 390/160/385 405/175/400 534/267/507
-f 534/267/507 405/175/400 420/190/415 536/268/508
-f 536/268/508 420/190/415 435/205/430 538/269/509
-f 538/269/509 435/205/430 450/220/445 540/270/510
-f 540/270/510 450/220/445 465/235/460 542/271/511
-f 542/271/511 465/235/460 480/250/475 544/272/512
-f 475/242/467 474/241/466 9/21/21 10/18/18
-f 473/244/469 472/243/468 7/25/25 8/22/22
-f 471/246/471 470/245/470 5/29/29 6/26/26
-f 469/248/473 468/247/472 3/2/2 4/1/1
-f 480/250/475 479/249/474 14/6/6 15/5/5
-f 467/252/477 466/251/476 1/10/10 2/9/9
-f 478/254/479 477/253/478 12/14/14 13/13/13
-f 476/255/480 475/242/467 10/18/18 11/17/17
-f 474/241/466 473/244/469 8/22/22 9/21/21
-f 472/243/468 471/246/471 6/26/26 7/25/25
-f 470/245/470 469/248/473 4/1/1 5/29/29
-f 544/272/512 480/250/475 15/5/5 481/256/481
-f 468/247/472 467/252/477 2/9/9 3/2/2
-f 479/249/474 478/254/479 13/13/13 14/6/6
-f 477/253/478 476/255/480 11/17/17 12/14/14
-f 466/251/476 543/273/513 483/274/514 1/10/10
-f 451/236/461 541/275/515 543/273/513 466/251/476
-f 436/221/446 539/276/516 541/275/515 451/236/461
-f 421/206/431 537/277/517 539/276/516 436/221/446
-f 406/191/416 535/278/518 537/277/517 421/206/431
-f 391/176/401 482/279/519 535/278/518 406/191/416
-f 376/161/386 532/280/520 482/279/519 391/176/401
-f 361/143/371 530/281/521 532/280/520 376/161/386
-f 346/142/356 528/282/522 530/281/521 361/143/371
-f 331/101/341 526/283/523 528/284/522 346/116/356
-f 316/86/326 524/285/524 526/283/523 331/101/341
-f 301/71/311 522/286/525 524/285/524 316/86/326
-f 286/56/296 520/287/526 522/286/525 301/71/311
-f 271/41/281 518/288/527 520/287/526 286/56/296
-f 256/11/266 516/289/528 518/288/527 271/41/281
-f 241/10/251 514/274/529 516/289/528 256/11/266
-f 226/251/236 512/273/530 514/274/529 241/10/251
-f 211/236/221 510/275/531 512/273/530 226/251/236
-f 196/221/206 508/276/532 510/275/531 211/236/221
-f 181/206/191 506/277/533 508/276/532 196/221/206
-f 166/191/176 504/278/534 506/277/533 181/206/191
-f 151/176/161 502/279/535 504/278/534 166/191/176
-f 136/161/146 500/280/536 502/279/535 151/176/161
-f 121/143/131 498/281/537 500/280/536 136/161/146
-f 106/142/116 496/282/538 498/281/537 121/143/131
-f 91/101/101 494/283/539 496/284/538 106/116/116
-f 76/86/86 492/285/540 494/283/539 91/101/101
-f 61/71/71 490/286/541 492/285/540 76/86/86
-f 46/56/56 488/287/542 490/286/541 61/71/71
-f 31/41/41 486/288/543 488/287/542 46/56/56
-f 16/11/11 484/289/544 486/288/543 31/41/41
-f 1/10/10 483/274/514 484/289/544 16/11/11
-f 543/290/513 541/291/515 539/292/516 537/293/517 535/294/518 482/295/519 532/296/520 530/297/521 528/298/522 526/299/523 524/300/524 522/301/525 520/302/526 518/303/527 516/304/528 514/305/529 512/306/530 510/307/531 508/308/532 506/309/533 504/310/534 502/311/535 500/312/536 498/313/537 496/314/538 494/315/539 492/316/540 490/317/541 488/318/542 486/319/543 484/320/544 483/321/514
-f 544/290/512 481/291/481 485/292/482 487/293/483 489/294/484 491/295/485 493/296/486 495/297/487 497/298/488 499/299/489 501/300/490 503/301/491 505/302/492 507/303/493 509/304/494 511/305/495 513/306/496 515/307/497 517/308/498 519/309/499 521/310/500 523/311/501 525/312/502 527/313/503 529/314/504 531/315/505 533/316/506 534/317/507 536/318/508 538/319/509 540/320/510 542/321/511
diff --git a/technic/technic/models/technic_two_curved_edge.obj b/technic/technic/models/technic_two_curved_edge.obj
deleted file mode 100644
index a468ddf..0000000
--- a/technic/technic/models/technic_two_curved_edge.obj
+++ /dev/null
@@ -1,207 +0,0 @@
-# Blender v2.73 (sub 0) OBJ File: 'slope_test_quarter_round_corner_onetexture.blend'
-# www.blender.org
-o corner1_Cylinder
-v 0.415732 0.277783 0.499997
-v 0.461936 0.191340 0.499997
-v 0.415735 0.277783 -0.415732
-v 0.461940 0.191340 -0.461937
-v 0.490389 0.097544 0.499997
-v 0.353551 0.353551 0.499997
-v 0.353555 0.353551 -0.353551
-v 0.499996 -0.000000 0.499997
-v 0.277783 0.415732 0.499997
-v 0.490393 0.097544 -0.490389
-v 0.277787 0.415732 -0.277784
-v 0.191340 0.461936 0.499997
-v 0.191344 0.461937 -0.191341
-v 0.097544 0.490389 0.499997
-v 0.097547 0.490391 -0.097545
-v -0.000000 0.499996 0.499997
-v -0.499997 0.499997 0.499997
-v -0.499997 0.499997 -0.000030
-v -0.499997 0.415735 -0.277785
-v -0.499997 0.461940 -0.191342
-v -0.499997 0.490393 -0.097545
-v -0.500000 -0.500000 -0.500000
-v -0.499997 -0.499997 0.499997
-v 0.000000 0.499998 0.000000
-v -0.499998 0.000014 -0.499999
-v -0.499997 0.353553 -0.353554
-v -0.499998 0.097545 -0.490393
-v -0.499997 0.277785 -0.415735
-v -0.499998 0.191342 -0.461940
-v 0.499997 -0.000000 -0.499996
-v 0.500000 -0.500000 -0.500000
-v 0.499997 -0.499997 0.499997
-v -0.499997 -0.499997 0.499997
-v -0.499997 0.499997 0.499997
-v -0.499997 0.499997 -0.000030
-v -0.499997 0.415735 -0.277785
-v -0.499997 0.461940 -0.191342
-v -0.499997 0.490393 -0.097545
-v -0.500000 -0.500000 -0.500000
-v -0.499998 0.000014 -0.499999
-v -0.499997 0.353553 -0.353554
-v -0.499998 0.097545 -0.490393
-v -0.499997 0.277785 -0.415735
-v -0.499998 0.191342 -0.461940
-v -0.499998 -0.033351 0.033348
-v -0.500000 -0.500000 -0.500000
-v 0.500000 -0.500000 -0.500000
-v 0.499997 -0.499997 0.499997
-v 0.415732 0.277783 0.499997
-v 0.461936 0.191340 0.499997
-v 0.490389 0.097544 0.499997
-v 0.353551 0.353551 0.499997
-v 0.499996 -0.000000 0.499997
-v 0.277783 0.415732 0.499997
-v 0.191340 0.461936 0.499997
-v -0.499997 -0.499997 0.499997
-v 0.097544 0.490389 0.499997
-v -0.000000 0.499996 0.499997
-v -0.499997 0.499997 0.499997
-v -0.033351 -0.033351 0.499997
-v 0.499997 -0.499997 0.499997
-vt 1.000000 0.500100
-vt 0.990395 0.597625
-vt 0.466756 0.466756
-vt 1.000000 0.000200
-vt 0.000201 0.000201
-vt 0.597626 0.990394
-vt 0.500101 1.000000
-vt 0.691404 0.961947
-vt 0.777830 0.915751
-vt 0.853583 0.853583
-vt 0.915752 0.777829
-vt 0.000201 1.000000
-vt 0.961948 0.691403
-vt -0.000000 0.000000
-vt 1.000000 0.000000
-vt 1.000000 1.000000
-vt -0.000000 1.000000
-vt 0.533443 0.466757
-vt 0.000202 0.500115
-vt 0.402575 0.990397
-vt 0.308797 0.961949
-vt 0.222371 0.915753
-vt 0.146617 0.853584
-vt 0.084449 0.777831
-vt 0.038253 0.691405
-vt 0.009806 0.597626
-vt 0.999996 0.125448
-vt 0.222353 0.125462
-vt 0.146597 0.000612
-vt 0.999995 0.000594
-vt 0.000178 0.874582
-vt 0.915751 0.874577
-vt 0.853580 0.999436
-vt 0.000178 0.999439
-vt 0.999808 0.625427
-vt 0.009599 0.625446
-vt -0.000005 0.500594
-vt 0.999807 0.500594
-vt 0.597441 0.374574
-vt 0.499912 0.499435
-vt 0.000000 0.499434
-vt 0.000000 0.374576
-vt 0.999999 0.375154
-vt 1.000000 0.499969
-vt 0.500093 0.500015
-vt 0.402562 0.375164
-vt 0.999812 0.999983
-vt 0.146415 1.000000
-vt 0.084244 0.875149
-vt 0.999811 0.875131
-vt 0.990396 0.624861
-vt 0.961947 0.749719
-vt 0.000178 0.749724
-vt 0.000178 0.624866
-vt 0.777649 0.124857
-vt 0.691221 0.249715
-vt 0.000001 0.249719
-vt 0.000001 0.124861
-vt 0.308782 0.250314
-vt 0.999998 0.250301
-vt 0.853403 -0.000000
-vt 0.038047 0.750298
-vt 0.999809 0.750280
-vt 0.000177 0.500008
-vt 0.000000 0.500000
-vt 0.500000 1.000000
-vt 0.500000 0.500000
-vn 0.000000 -0.000000 1.000000
-vn -0.000000 -1.000000 0.000000
-vn -1.000000 0.000000 0.000000
-vn 0.000000 0.831500 -0.555600
-vn 0.325800 0.887500 -0.325800
-vn 0.429700 0.794100 -0.429700
-vn 0.000000 0.707100 -0.707100
-vn 0.831500 0.555600 0.000000
-vn 0.531000 0.660300 -0.531000
-vn 0.707100 0.707100 0.000000
-vn 0.000000 0.195100 -0.980800
-vn 0.683900 0.254100 -0.683900
-vn 0.705500 0.067100 -0.705500
-vn 0.000000 0.049100 -0.998800
-vn 0.123100 0.984700 -0.123100
-vn 0.036800 0.998600 -0.036800
-vn 0.049100 0.998800 0.000000
-vn 0.195100 0.980800 0.000000
-vn 0.000000 0.980800 -0.195100
-vn 0.000000 0.998800 -0.049100
-vn 0.000000 0.555600 -0.831500
-vn 0.620400 0.479600 -0.620400
-vn 0.923900 0.382700 0.000000
-vn 0.980800 0.195100 0.000000
-vn 0.223300 0.948800 -0.223200
-vn 0.382700 0.923900 0.000000
-vn 0.555600 0.831500 0.000000
-vn 0.000000 0.923900 -0.382700
-vn 0.000000 0.382700 -0.923900
-vn 0.998800 0.049100 0.000000
-vn 0.707100 0.000000 -0.707100
-vn 0.000000 0.000000 -1.000000
-vn -0.000000 1.000000 0.000000
-vn 1.000000 0.000000 0.000000
-s off
-f 53/1/1 51/2/1 60/3/1
-f 61/4/1 53/1/1 60/3/1 56/5/1
-f 57/6/1 58/7/1 60/3/1
-f 55/8/1 57/6/1 60/3/1
-f 54/9/1 55/8/1 60/3/1
-f 52/10/1 54/9/1 60/3/1
-f 49/11/1 52/10/1 60/3/1
-f 59/12/1 56/5/1 60/3/1 58/7/1
-f 50/13/1 49/11/1 60/3/1
-f 48/14/2 23/15/2 46/16/2 47/17/2
-f 39/5/3 33/4/3 45/18/3 40/19/3
-f 35/7/3 38/20/3 45/18/3
-f 38/20/3 37/21/3 45/18/3
-f 37/21/3 36/22/3 45/18/3
-f 36/22/3 41/23/3 45/18/3
-f 41/23/3 43/24/3 45/18/3
-f 43/24/3 44/25/3 45/18/3
-f 44/25/3 42/26/3 45/18/3
-f 42/26/3 40/19/3 45/18/3
-f 34/16/3 35/7/3 45/18/3 33/4/3
-f 51/2/1 50/13/1 60/3/1
-s 1
-f 19/27/4 11/28/5 7/29/6 26/30/7
-f 1/31/8 3/32/9 7/33/6 6/34/10
-f 27/35/11 10/36/12 30/37/13 25/38/14
-f 15/39/15 24/40/16 16/41/17 14/42/18
-f 21/43/19 18/44/20 24/45/16 15/46/15
-f 26/47/7 7/48/6 3/49/9 28/50/21
-f 10/51/12 4/52/22 2/53/23 5/54/24
-f 11/55/5 13/56/25 12/57/26 9/58/27
-f 21/43/19 15/46/15 13/59/25 20/60/28
-f 20/60/28 13/59/25 11/28/5 19/27/4
-f 9/58/27 6/14/10 7/61/6 11/55/5
-f 4/52/22 3/32/9 1/31/8 2/53/23
-f 3/49/9 4/62/22 29/63/29 28/50/21
-f 10/51/12 5/54/24 8/64/30 30/44/13
-f 29/63/29 4/62/22 10/36/12 27/35/11
-f 25/44/14 30/65/13 31/14/31 22/15/32
-f 16/66/17 24/67/16 18/44/20 17/16/33
-f 8/65/30 32/14/34 31/15/31 30/44/13
-f 12/57/26 13/56/25 15/39/15 14/42/18
diff --git a/technic/technic/register.lua b/technic/technic/register.lua
deleted file mode 100644
index 8f75b81..0000000
--- a/technic/technic/register.lua
+++ /dev/null
@@ -1,58 +0,0 @@
--- This file includes the functions and data structures for registering machines and tools for LV, MV, HV types.
--- We use the technic namespace for these functions and data to avoid eventual conflict.
-
-technic.receiver = "RE"
-technic.producer = "PR"
-technic.producer_receiver = "PR_RE"
-technic.battery = "BA"
-
-technic.machines = {}
-technic.power_tools = {}
-technic.networks = {}
-
-
-function technic.register_tier(tier, description)
- technic.machines[tier] = {}
-end
-
-function technic.register_machine(tier, nodename, machine_type)
- if not technic.machines[tier] then
- return
- end
- technic.machines[tier][nodename] = machine_type
-end
-
-function technic.register_power_tool(craftitem, max_charge)
- technic.power_tools[craftitem] = max_charge
-end
-
-
--- Utility functions. Not sure exactly what they do.. water.lua uses the two first.
-function technic.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 technic.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
-
--- Wear down a tool depending on the remaining charge.
-function technic.set_RE_wear(itemstack, item_load, max_load)
- if (minetest.registered_items[itemstack:get_name()].wear_represents or "mechanical_wear") ~= "technic_RE_charge" then return itemstack end
- local temp
- if item_load == 0 then
- temp = 0
- else
- temp = 65536 - math.floor(item_load / max_load * 65535)
- if temp > 65535 then temp = 65535 end
- if temp < 1 then temp = 1 end
- end
- itemstack:set_wear(temp)
- return itemstack
-end
diff --git a/technic/technic/sounds/chainsaw.ogg b/technic/technic/sounds/chainsaw.ogg
deleted file mode 100644
index 5fe7552..0000000
--- a/technic/technic/sounds/chainsaw.ogg
+++ /dev/null
Binary files differ
diff --git a/technic/technic/sounds/item_drop_pickup.1.ogg b/technic/technic/sounds/item_drop_pickup.1.ogg
deleted file mode 100644
index 2ae432d..0000000
--- a/technic/technic/sounds/item_drop_pickup.1.ogg
+++ /dev/null
Binary files differ
diff --git a/technic/technic/sounds/item_drop_pickup.2.ogg b/technic/technic/sounds/item_drop_pickup.2.ogg
deleted file mode 100644
index f58bf08..0000000
--- a/technic/technic/sounds/item_drop_pickup.2.ogg
+++ /dev/null
Binary files differ
diff --git a/technic/technic/sounds/item_drop_pickup.3.ogg b/technic/technic/sounds/item_drop_pickup.3.ogg
deleted file mode 100644
index cf57c94..0000000
--- a/technic/technic/sounds/item_drop_pickup.3.ogg
+++ /dev/null
Binary files differ
diff --git a/technic/technic/sounds/item_drop_pickup.4.ogg b/technic/technic/sounds/item_drop_pickup.4.ogg
deleted file mode 100644
index bfe99d9..0000000
--- a/technic/technic/sounds/item_drop_pickup.4.ogg
+++ /dev/null
Binary files differ
diff --git a/technic/technic/sounds/mining_drill.ogg b/technic/technic/sounds/mining_drill.ogg
deleted file mode 100644
index 1493544..0000000
--- a/technic/technic/sounds/mining_drill.ogg
+++ /dev/null
Binary files differ
diff --git a/technic/technic/sounds/technic_hv_nuclear_reactor_siren_clear.ogg b/technic/technic/sounds/technic_hv_nuclear_reactor_siren_clear.ogg
deleted file mode 100644
index 3332deb..0000000
--- a/technic/technic/sounds/technic_hv_nuclear_reactor_siren_clear.ogg
+++ /dev/null
Binary files differ
diff --git a/technic/technic/sounds/technic_hv_nuclear_reactor_siren_danger_loop.ogg b/technic/technic/sounds/technic_hv_nuclear_reactor_siren_danger_loop.ogg
deleted file mode 100644
index 3d290b0..0000000
--- a/technic/technic/sounds/technic_hv_nuclear_reactor_siren_danger_loop.ogg
+++ /dev/null
Binary files differ
diff --git a/technic/technic/sounds/technic_laser_mk1.0.ogg b/technic/technic/sounds/technic_laser_mk1.0.ogg
deleted file mode 100644
index 19be080..0000000
--- a/technic/technic/sounds/technic_laser_mk1.0.ogg
+++ /dev/null
Binary files differ
diff --git a/technic/technic/sounds/technic_laser_mk1.1.ogg b/technic/technic/sounds/technic_laser_mk1.1.ogg
deleted file mode 100644
index 7792be1..0000000
--- a/technic/technic/sounds/technic_laser_mk1.1.ogg
+++ /dev/null
Binary files differ
diff --git a/technic/technic/sounds/technic_laser_mk2.0.ogg b/technic/technic/sounds/technic_laser_mk2.0.ogg
deleted file mode 100644
index 2cf1548..0000000
--- a/technic/technic/sounds/technic_laser_mk2.0.ogg
+++ /dev/null
Binary files differ
diff --git a/technic/technic/sounds/technic_laser_mk2.1.ogg b/technic/technic/sounds/technic_laser_mk2.1.ogg
deleted file mode 100644
index b3f9afb..0000000
--- a/technic/technic/sounds/technic_laser_mk2.1.ogg
+++ /dev/null
Binary files differ
diff --git a/technic/technic/sounds/technic_laser_mk2.2.ogg b/technic/technic/sounds/technic_laser_mk2.2.ogg
deleted file mode 100644
index a4ee091..0000000
--- a/technic/technic/sounds/technic_laser_mk2.2.ogg
+++ /dev/null
Binary files differ
diff --git a/technic/technic/sounds/technic_laser_mk3.1.ogg b/technic/technic/sounds/technic_laser_mk3.1.ogg
deleted file mode 100644
index f948913..0000000
--- a/technic/technic/sounds/technic_laser_mk3.1.ogg
+++ /dev/null
Binary files differ
diff --git a/technic/technic/sounds/technic_laser_mk3.2.ogg b/technic/technic/sounds/technic_laser_mk3.2.ogg
deleted file mode 100644
index 636c306..0000000
--- a/technic/technic/sounds/technic_laser_mk3.2.ogg
+++ /dev/null
Binary files differ
diff --git a/technic/technic/sounds/technic_prospector_hit.ogg b/technic/technic/sounds/technic_prospector_hit.ogg
deleted file mode 100644
index 3a8ad2d..0000000
--- a/technic/technic/sounds/technic_prospector_hit.ogg
+++ /dev/null
Binary files differ
diff --git a/technic/technic/sounds/technic_prospector_miss.ogg b/technic/technic/sounds/technic_prospector_miss.ogg
deleted file mode 100644
index 0f050d0..0000000
--- a/technic/technic/sounds/technic_prospector_miss.ogg
+++ /dev/null
Binary files differ
diff --git a/technic/technic/sounds/technic_sonic_screwdriver.ogg b/technic/technic/sounds/technic_sonic_screwdriver.ogg
deleted file mode 100644
index 471bb72..0000000
--- a/technic/technic/sounds/technic_sonic_screwdriver.ogg
+++ /dev/null
Binary files differ
diff --git a/technic/technic/sounds/vacuumcleaner.ogg b/technic/technic/sounds/vacuumcleaner.ogg
deleted file mode 100644
index 39d72de..0000000
--- a/technic/technic/sounds/vacuumcleaner.ogg
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/hires/technic_hv_nuclear_reactor_core_128.png b/technic/technic/textures/hires/technic_hv_nuclear_reactor_core_128.png
deleted file mode 100644
index 2848f89..0000000
--- a/technic/technic/textures/hires/technic_hv_nuclear_reactor_core_128.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/hires/technic_hv_nuclear_reactor_core_16.png b/technic/technic/textures/hires/technic_hv_nuclear_reactor_core_16.png
deleted file mode 100644
index 4661177..0000000
--- a/technic/technic/textures/hires/technic_hv_nuclear_reactor_core_16.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/hires/technic_hv_nuclear_reactor_core_256.png b/technic/technic/textures/hires/technic_hv_nuclear_reactor_core_256.png
deleted file mode 100644
index 5187fab..0000000
--- a/technic/technic/textures/hires/technic_hv_nuclear_reactor_core_256.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/hires/technic_hv_nuclear_reactor_core_32.png b/technic/technic/textures/hires/technic_hv_nuclear_reactor_core_32.png
deleted file mode 100644
index 3d380da..0000000
--- a/technic/technic/textures/hires/technic_hv_nuclear_reactor_core_32.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/hires/technic_hv_nuclear_reactor_core_512.png b/technic/technic/textures/hires/technic_hv_nuclear_reactor_core_512.png
deleted file mode 100644
index ba2bd89..0000000
--- a/technic/technic/textures/hires/technic_hv_nuclear_reactor_core_512.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/hires/technic_hv_nuclear_reactor_core_64.png b/technic/technic/textures/hires/technic_hv_nuclear_reactor_core_64.png
deleted file mode 100644
index 2fa8f18..0000000
--- a/technic/technic/textures/hires/technic_hv_nuclear_reactor_core_64.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/power_meter.png b/technic/technic/textures/power_meter.png
deleted file mode 100644
index 9f96cac..0000000
--- a/technic/technic/textures/power_meter.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_acacia_grindings.png b/technic/technic/textures/technic_acacia_grindings.png
deleted file mode 100644
index bcfefc9..0000000
--- a/technic/technic/textures/technic_acacia_grindings.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_admin_anchor.png b/technic/technic/textures/technic_admin_anchor.png
deleted file mode 100644
index 7ce9b4c..0000000
--- a/technic/technic/textures/technic_admin_anchor.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_akalin_dust.png b/technic/technic/textures/technic_akalin_dust.png
deleted file mode 100644
index 052b0ac..0000000
--- a/technic/technic/textures/technic_akalin_dust.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_alatro_dust.png b/technic/technic/textures/technic_alatro_dust.png
deleted file mode 100644
index 172af25..0000000
--- a/technic/technic/textures/technic_alatro_dust.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_arol_dust.png b/technic/technic/textures/technic_arol_dust.png
deleted file mode 100644
index 1a575ed..0000000
--- a/technic/technic/textures/technic_arol_dust.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_battery.png b/technic/technic/textures/technic_battery.png
deleted file mode 100644
index ee83b74..0000000
--- a/technic/technic/textures/technic_battery.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_battery_box_side.png b/technic/technic/textures/technic_battery_box_side.png
deleted file mode 100644
index 98a22d6..0000000
--- a/technic/technic/textures/technic_battery_box_side.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_battery_box_side8.png b/technic/technic/textures/technic_battery_box_side8.png
deleted file mode 100644
index 65806f4..0000000
--- a/technic/technic/textures/technic_battery_box_side8.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_battery_box_side_mv.png b/technic/technic/textures/technic_battery_box_side_mv.png
deleted file mode 100644
index 06a4be5..0000000
--- a/technic/technic/textures/technic_battery_box_side_mv.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_battery_meter_fg.png b/technic/technic/textures/technic_battery_meter_fg.png
deleted file mode 100644
index 2f19bc7..0000000
--- a/technic/technic/textures/technic_battery_meter_fg.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_battery_reload.png b/technic/technic/textures/technic_battery_reload.png
deleted file mode 100644
index 4ce48d8..0000000
--- a/technic/technic/textures/technic_battery_reload.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_bronze_dust.png b/technic/technic/textures/technic_bronze_dust.png
deleted file mode 100644
index a613205..0000000
--- a/technic/technic/textures/technic_bronze_dust.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_bucket_corium.png b/technic/technic/textures/technic_bucket_corium.png
deleted file mode 100644
index 82da7ca..0000000
--- a/technic/technic/textures/technic_bucket_corium.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_carbon_cloth.png b/technic/technic/textures/technic_carbon_cloth.png
deleted file mode 100644
index 65a6dab..0000000
--- a/technic/technic/textures/technic_carbon_cloth.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_carbon_plate.png b/technic/technic/textures/technic_carbon_plate.png
deleted file mode 100644
index 5da83b8..0000000
--- a/technic/technic/textures/technic_carbon_plate.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_carbon_steel_dust.png b/technic/technic/textures/technic_carbon_steel_dust.png
deleted file mode 100644
index 0fa8a17..0000000
--- a/technic/technic/textures/technic_carbon_steel_dust.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_cast_iron_dust.png b/technic/technic/textures/technic_cast_iron_dust.png
deleted file mode 100644
index b5690ac..0000000
--- a/technic/technic/textures/technic_cast_iron_dust.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_chainsaw.png b/technic/technic/textures/technic_chainsaw.png
deleted file mode 100644
index 1a69893..0000000
--- a/technic/technic/textures/technic_chainsaw.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_chernobylite_block.png b/technic/technic/textures/technic_chernobylite_block.png
deleted file mode 100644
index a837c66..0000000
--- a/technic/technic/textures/technic_chernobylite_block.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_chromium_dust.png b/technic/technic/textures/technic_chromium_dust.png
deleted file mode 100644
index 0e48069..0000000
--- a/technic/technic/textures/technic_chromium_dust.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_cnc_bottom.png b/technic/technic/textures/technic_cnc_bottom.png
deleted file mode 100644
index e600cb1..0000000
--- a/technic/technic/textures/technic_cnc_bottom.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_cnc_cylinder.png b/technic/technic/textures/technic_cnc_cylinder.png
deleted file mode 100644
index 48921bd..0000000
--- a/technic/technic/textures/technic_cnc_cylinder.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_cnc_cylinder_horizontal.png b/technic/technic/textures/technic_cnc_cylinder_horizontal.png
deleted file mode 100644
index 82eb24c..0000000
--- a/technic/technic/textures/technic_cnc_cylinder_horizontal.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_cnc_element_cross.png b/technic/technic/textures/technic_cnc_element_cross.png
deleted file mode 100644
index cc66571..0000000
--- a/technic/technic/textures/technic_cnc_element_cross.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_cnc_element_edge.png b/technic/technic/textures/technic_cnc_element_edge.png
deleted file mode 100644
index 1245ea7..0000000
--- a/technic/technic/textures/technic_cnc_element_edge.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_cnc_element_end.png b/technic/technic/textures/technic_cnc_element_end.png
deleted file mode 100644
index 562eb2b..0000000
--- a/technic/technic/textures/technic_cnc_element_end.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_cnc_element_straight.png b/technic/technic/textures/technic_cnc_element_straight.png
deleted file mode 100644
index d42966e..0000000
--- a/technic/technic/textures/technic_cnc_element_straight.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_cnc_element_t.png b/technic/technic/textures/technic_cnc_element_t.png
deleted file mode 100644
index a462764..0000000
--- a/technic/technic/textures/technic_cnc_element_t.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_cnc_front.png b/technic/technic/textures/technic_cnc_front.png
deleted file mode 100644
index 6cc0490..0000000
--- a/technic/technic/textures/technic_cnc_front.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_cnc_front_active.png b/technic/technic/textures/technic_cnc_front_active.png
deleted file mode 100644
index f7a3c7f..0000000
--- a/technic/technic/textures/technic_cnc_front_active.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_cnc_full.png b/technic/technic/textures/technic_cnc_full.png
deleted file mode 100644
index 60f8a81..0000000
--- a/technic/technic/textures/technic_cnc_full.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_cnc_half.png b/technic/technic/textures/technic_cnc_half.png
deleted file mode 100644
index 2c4d3a8..0000000
--- a/technic/technic/textures/technic_cnc_half.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_cnc_milling_background.png b/technic/technic/textures/technic_cnc_milling_background.png
deleted file mode 100644
index 6a9c2f4..0000000
--- a/technic/technic/textures/technic_cnc_milling_background.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_cnc_oblate_spheroid.png b/technic/technic/textures/technic_cnc_oblate_spheroid.png
deleted file mode 100644
index b196e7d..0000000
--- a/technic/technic/textures/technic_cnc_oblate_spheroid.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_cnc_onecurvededge.png b/technic/technic/textures/technic_cnc_onecurvededge.png
deleted file mode 100644
index 8325846..0000000
--- a/technic/technic/textures/technic_cnc_onecurvededge.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_cnc_pyramid.png b/technic/technic/textures/technic_cnc_pyramid.png
deleted file mode 100644
index d8cc713..0000000
--- a/technic/technic/textures/technic_cnc_pyramid.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_cnc_side.png b/technic/technic/textures/technic_cnc_side.png
deleted file mode 100644
index 1ecbbac..0000000
--- a/technic/technic/textures/technic_cnc_side.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_cnc_slope.png b/technic/technic/textures/technic_cnc_slope.png
deleted file mode 100644
index 493d560..0000000
--- a/technic/technic/textures/technic_cnc_slope.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_cnc_slope_edge.png b/technic/technic/textures/technic_cnc_slope_edge.png
deleted file mode 100644
index 1b601c4..0000000
--- a/technic/technic/textures/technic_cnc_slope_edge.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_cnc_slope_edge_upsdwn.png b/technic/technic/textures/technic_cnc_slope_edge_upsdwn.png
deleted file mode 100644
index 350c22d..0000000
--- a/technic/technic/textures/technic_cnc_slope_edge_upsdwn.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_cnc_slope_inner_edge.png b/technic/technic/textures/technic_cnc_slope_inner_edge.png
deleted file mode 100644
index 3f5ab9e..0000000
--- a/technic/technic/textures/technic_cnc_slope_inner_edge.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_cnc_slope_inner_edge_upsdwn.png b/technic/technic/textures/technic_cnc_slope_inner_edge_upsdwn.png
deleted file mode 100644
index a1fee78..0000000
--- a/technic/technic/textures/technic_cnc_slope_inner_edge_upsdwn.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_cnc_slope_lying.png b/technic/technic/textures/technic_cnc_slope_lying.png
deleted file mode 100644
index 099ed59..0000000
--- a/technic/technic/textures/technic_cnc_slope_lying.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_cnc_slope_upsdwn.png b/technic/technic/textures/technic_cnc_slope_upsdwn.png
deleted file mode 100644
index 2a34b8b..0000000
--- a/technic/technic/textures/technic_cnc_slope_upsdwn.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_cnc_sphere.png b/technic/technic/textures/technic_cnc_sphere.png
deleted file mode 100644
index 791b32b..0000000
--- a/technic/technic/textures/technic_cnc_sphere.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_cnc_spike.png b/technic/technic/textures/technic_cnc_spike.png
deleted file mode 100644
index b445b40..0000000
--- a/technic/technic/textures/technic_cnc_spike.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_cnc_stick.png b/technic/technic/textures/technic_cnc_stick.png
deleted file mode 100644
index acaf1cb..0000000
--- a/technic/technic/textures/technic_cnc_stick.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_cnc_top.png b/technic/technic/textures/technic_cnc_top.png
deleted file mode 100644
index 5123334..0000000
--- a/technic/technic/textures/technic_cnc_top.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_cnc_top_active.png b/technic/technic/textures/technic_cnc_top_active.png
deleted file mode 100644
index 2bc9d81..0000000
--- a/technic/technic/textures/technic_cnc_top_active.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_cnc_twocurvededge.png b/technic/technic/textures/technic_cnc_twocurvededge.png
deleted file mode 100644
index b50a257..0000000
--- a/technic/technic/textures/technic_cnc_twocurvededge.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_coal_alloy_furnace_bottom.png b/technic/technic/textures/technic_coal_alloy_furnace_bottom.png
deleted file mode 100644
index 077dec5..0000000
--- a/technic/technic/textures/technic_coal_alloy_furnace_bottom.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_coal_alloy_furnace_front.png b/technic/technic/textures/technic_coal_alloy_furnace_front.png
deleted file mode 100644
index d9d93dd..0000000
--- a/technic/technic/textures/technic_coal_alloy_furnace_front.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_coal_alloy_furnace_front_active.png b/technic/technic/textures/technic_coal_alloy_furnace_front_active.png
deleted file mode 100644
index ffc4e0a..0000000
--- a/technic/technic/textures/technic_coal_alloy_furnace_front_active.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_coal_alloy_furnace_side.png b/technic/technic/textures/technic_coal_alloy_furnace_side.png
deleted file mode 100644
index d5c7066..0000000
--- a/technic/technic/textures/technic_coal_alloy_furnace_side.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_coal_alloy_furnace_top.png b/technic/technic/textures/technic_coal_alloy_furnace_top.png
deleted file mode 100644
index 6424fc0..0000000
--- a/technic/technic/textures/technic_coal_alloy_furnace_top.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_coal_dust.png b/technic/technic/textures/technic_coal_dust.png
deleted file mode 100644
index a1486c6..0000000
--- a/technic/technic/textures/technic_coal_dust.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_common_tree_grindings.png b/technic/technic/textures/technic_common_tree_grindings.png
deleted file mode 100644
index e17bb69..0000000
--- a/technic/technic/textures/technic_common_tree_grindings.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_composite_plate.png b/technic/technic/textures/technic_composite_plate.png
deleted file mode 100644
index 79b7b8d..0000000
--- a/technic/technic/textures/technic_composite_plate.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_constructor_back.png b/technic/technic/textures/technic_constructor_back.png
deleted file mode 100644
index f002363..0000000
--- a/technic/technic/textures/technic_constructor_back.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_constructor_front_off.png b/technic/technic/textures/technic_constructor_front_off.png
deleted file mode 100644
index f3f7856..0000000
--- a/technic/technic/textures/technic_constructor_front_off.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_constructor_front_on.png b/technic/technic/textures/technic_constructor_front_on.png
deleted file mode 100644
index d733765..0000000
--- a/technic/technic/textures/technic_constructor_front_on.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_constructor_mk1_bottom_off.png b/technic/technic/textures/technic_constructor_mk1_bottom_off.png
deleted file mode 100644
index 0c52557..0000000
--- a/technic/technic/textures/technic_constructor_mk1_bottom_off.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_constructor_mk1_bottom_on.png b/technic/technic/textures/technic_constructor_mk1_bottom_on.png
deleted file mode 100644
index 0c46c57..0000000
--- a/technic/technic/textures/technic_constructor_mk1_bottom_on.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_constructor_mk1_side1_off.png b/technic/technic/textures/technic_constructor_mk1_side1_off.png
deleted file mode 100644
index e64ddbe..0000000
--- a/technic/technic/textures/technic_constructor_mk1_side1_off.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_constructor_mk1_side1_on.png b/technic/technic/textures/technic_constructor_mk1_side1_on.png
deleted file mode 100644
index eda98d8..0000000
--- a/technic/technic/textures/technic_constructor_mk1_side1_on.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_constructor_mk1_side2_off.png b/technic/technic/textures/technic_constructor_mk1_side2_off.png
deleted file mode 100644
index b33fcfb..0000000
--- a/technic/technic/textures/technic_constructor_mk1_side2_off.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_constructor_mk1_side2_on.png b/technic/technic/textures/technic_constructor_mk1_side2_on.png
deleted file mode 100644
index 17e4786..0000000
--- a/technic/technic/textures/technic_constructor_mk1_side2_on.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_constructor_mk1_top_off.png b/technic/technic/textures/technic_constructor_mk1_top_off.png
deleted file mode 100644
index 9f3846c..0000000
--- a/technic/technic/textures/technic_constructor_mk1_top_off.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_constructor_mk1_top_on.png b/technic/technic/textures/technic_constructor_mk1_top_on.png
deleted file mode 100644
index 5c8d6fb..0000000
--- a/technic/technic/textures/technic_constructor_mk1_top_on.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_constructor_mk2_bottom_off.png b/technic/technic/textures/technic_constructor_mk2_bottom_off.png
deleted file mode 100644
index e926dda..0000000
--- a/technic/technic/textures/technic_constructor_mk2_bottom_off.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_constructor_mk2_bottom_on.png b/technic/technic/textures/technic_constructor_mk2_bottom_on.png
deleted file mode 100644
index 52d739b..0000000
--- a/technic/technic/textures/technic_constructor_mk2_bottom_on.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_constructor_mk2_side1_off.png b/technic/technic/textures/technic_constructor_mk2_side1_off.png
deleted file mode 100644
index 2fd42a2..0000000
--- a/technic/technic/textures/technic_constructor_mk2_side1_off.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_constructor_mk2_side1_on.png b/technic/technic/textures/technic_constructor_mk2_side1_on.png
deleted file mode 100644
index 4c75c83..0000000
--- a/technic/technic/textures/technic_constructor_mk2_side1_on.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_constructor_mk2_side2_off.png b/technic/technic/textures/technic_constructor_mk2_side2_off.png
deleted file mode 100644
index f6407e7..0000000
--- a/technic/technic/textures/technic_constructor_mk2_side2_off.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_constructor_mk2_side2_on.png b/technic/technic/textures/technic_constructor_mk2_side2_on.png
deleted file mode 100644
index e40db48..0000000
--- a/technic/technic/textures/technic_constructor_mk2_side2_on.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_constructor_mk2_top_off.png b/technic/technic/textures/technic_constructor_mk2_top_off.png
deleted file mode 100644
index e5227d1..0000000
--- a/technic/technic/textures/technic_constructor_mk2_top_off.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_constructor_mk2_top_on.png b/technic/technic/textures/technic_constructor_mk2_top_on.png
deleted file mode 100644
index 9762bd6..0000000
--- a/technic/technic/textures/technic_constructor_mk2_top_on.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_constructor_mk3_bottom_off.png b/technic/technic/textures/technic_constructor_mk3_bottom_off.png
deleted file mode 100644
index 606d97e..0000000
--- a/technic/technic/textures/technic_constructor_mk3_bottom_off.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_constructor_mk3_bottom_on.png b/technic/technic/textures/technic_constructor_mk3_bottom_on.png
deleted file mode 100644
index 878e4ff..0000000
--- a/technic/technic/textures/technic_constructor_mk3_bottom_on.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_constructor_mk3_side1_off.png b/technic/technic/textures/technic_constructor_mk3_side1_off.png
deleted file mode 100644
index 84dd7eb..0000000
--- a/technic/technic/textures/technic_constructor_mk3_side1_off.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_constructor_mk3_side1_on.png b/technic/technic/textures/technic_constructor_mk3_side1_on.png
deleted file mode 100644
index 2741d2d..0000000
--- a/technic/technic/textures/technic_constructor_mk3_side1_on.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_constructor_mk3_side2_off.png b/technic/technic/textures/technic_constructor_mk3_side2_off.png
deleted file mode 100644
index 75a5031..0000000
--- a/technic/technic/textures/technic_constructor_mk3_side2_off.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_constructor_mk3_side2_on.png b/technic/technic/textures/technic_constructor_mk3_side2_on.png
deleted file mode 100644
index 0a150ed..0000000
--- a/technic/technic/textures/technic_constructor_mk3_side2_on.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_constructor_mk3_top_off.png b/technic/technic/textures/technic_constructor_mk3_top_off.png
deleted file mode 100644
index c716752..0000000
--- a/technic/technic/textures/technic_constructor_mk3_top_off.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_constructor_mk3_top_on.png b/technic/technic/textures/technic_constructor_mk3_top_on.png
deleted file mode 100644
index acbe85b..0000000
--- a/technic/technic/textures/technic_constructor_mk3_top_on.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_control_logic_unit.png b/technic/technic/textures/technic_control_logic_unit.png
deleted file mode 100644
index c7b4b16..0000000
--- a/technic/technic/textures/technic_control_logic_unit.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_copper_coil.png b/technic/technic/textures/technic_copper_coil.png
deleted file mode 100644
index db6db1a..0000000
--- a/technic/technic/textures/technic_copper_coil.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_copper_dust.png b/technic/technic/textures/technic_copper_dust.png
deleted file mode 100644
index cad33ea..0000000
--- a/technic/technic/textures/technic_copper_dust.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_copper_plate.png b/technic/technic/textures/technic_copper_plate.png
deleted file mode 100644
index 99a49c8..0000000
--- a/technic/technic/textures/technic_copper_plate.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_corium_flowing_animated.png b/technic/technic/textures/technic_corium_flowing_animated.png
deleted file mode 100644
index 1d29f16..0000000
--- a/technic/technic/textures/technic_corium_flowing_animated.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_corium_source_animated.png b/technic/technic/textures/technic_corium_source_animated.png
deleted file mode 100644
index 6c3ee56..0000000
--- a/technic/technic/textures/technic_corium_source_animated.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_deployer_back.png b/technic/technic/textures/technic_deployer_back.png
deleted file mode 100644
index 12e5a31..0000000
--- a/technic/technic/textures/technic_deployer_back.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_deployer_bottom.png b/technic/technic/textures/technic_deployer_bottom.png
deleted file mode 100644
index febbe18..0000000
--- a/technic/technic/textures/technic_deployer_bottom.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_deployer_front_off.png b/technic/technic/textures/technic_deployer_front_off.png
deleted file mode 100644
index 9593112..0000000
--- a/technic/technic/textures/technic_deployer_front_off.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_deployer_front_on.png b/technic/technic/textures/technic_deployer_front_on.png
deleted file mode 100644
index f78de4c..0000000
--- a/technic/technic/textures/technic_deployer_front_on.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_deployer_side.png b/technic/technic/textures/technic_deployer_side.png
deleted file mode 100644
index 73af8f8..0000000
--- a/technic/technic/textures/technic_deployer_side.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_deployer_side1.png b/technic/technic/textures/technic_deployer_side1.png
deleted file mode 100644
index 8ef28d3..0000000
--- a/technic/technic/textures/technic_deployer_side1.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_deployer_side2.png b/technic/technic/textures/technic_deployer_side2.png
deleted file mode 100644
index ccb2cb9..0000000
--- a/technic/technic/textures/technic_deployer_side2.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_deployer_top.png b/technic/technic/textures/technic_deployer_top.png
deleted file mode 100644
index 262c9f6..0000000
--- a/technic/technic/textures/technic_deployer_top.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_diamond_block_blue.png b/technic/technic/textures/technic_diamond_block_blue.png
deleted file mode 100644
index 9f59fba..0000000
--- a/technic/technic/textures/technic_diamond_block_blue.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_diamond_block_green.png b/technic/technic/textures/technic_diamond_block_green.png
deleted file mode 100644
index 585c4b8..0000000
--- a/technic/technic/textures/technic_diamond_block_green.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_diamond_block_red.png b/technic/technic/textures/technic_diamond_block_red.png
deleted file mode 100644
index ed30957..0000000
--- a/technic/technic/textures/technic_diamond_block_red.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_diamond_drill_head.png b/technic/technic/textures/technic_diamond_drill_head.png
deleted file mode 100644
index e3d31e8..0000000
--- a/technic/technic/textures/technic_diamond_drill_head.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_doped_silicon_wafer.png b/technic/technic/textures/technic_doped_silicon_wafer.png
deleted file mode 100644
index 6365137..0000000
--- a/technic/technic/textures/technic_doped_silicon_wafer.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_fine_copper_wire.png b/technic/technic/textures/technic_fine_copper_wire.png
deleted file mode 100644
index 3e663bb..0000000
--- a/technic/technic/textures/technic_fine_copper_wire.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_fine_gold_wire.png b/technic/technic/textures/technic_fine_gold_wire.png
deleted file mode 100644
index 54a7a52..0000000
--- a/technic/technic/textures/technic_fine_gold_wire.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_fine_silver_wire.png b/technic/technic/textures/technic_fine_silver_wire.png
deleted file mode 100644
index f40a52b..0000000
--- a/technic/technic/textures/technic_fine_silver_wire.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_flashlight.png b/technic/technic/textures/technic_flashlight.png
deleted file mode 100644
index 8e7b75a..0000000
--- a/technic/technic/textures/technic_flashlight.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_forcefield_animated.png b/technic/technic/textures/technic_forcefield_animated.png
deleted file mode 100644
index 7763840..0000000
--- a/technic/technic/textures/technic_forcefield_animated.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_forcefield_emitter_off.png b/technic/technic/textures/technic_forcefield_emitter_off.png
deleted file mode 100644
index 4c4582f..0000000
--- a/technic/technic/textures/technic_forcefield_emitter_off.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_forcefield_emitter_on.png b/technic/technic/textures/technic_forcefield_emitter_on.png
deleted file mode 100644
index 1f32af6..0000000
--- a/technic/technic/textures/technic_forcefield_emitter_on.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_frame.png b/technic/technic/textures/technic_frame.png
deleted file mode 100644
index 4998120..0000000
--- a/technic/technic/textures/technic_frame.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_geothermal_side.png b/technic/technic/textures/technic_geothermal_side.png
deleted file mode 100644
index 90fb430..0000000
--- a/technic/technic/textures/technic_geothermal_side.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_geothermal_top.png b/technic/technic/textures/technic_geothermal_top.png
deleted file mode 100644
index 601ff15..0000000
--- a/technic/technic/textures/technic_geothermal_top.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_geothermal_top_active.png b/technic/technic/textures/technic_geothermal_top_active.png
deleted file mode 100644
index f02bec6..0000000
--- a/technic/technic/textures/technic_geothermal_top_active.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_gold_dust.png b/technic/technic/textures/technic_gold_dust.png
deleted file mode 100644
index 48c24ae..0000000
--- a/technic/technic/textures/technic_gold_dust.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_graphite.png b/technic/technic/textures/technic_graphite.png
deleted file mode 100644
index 00cd0ee..0000000
--- a/technic/technic/textures/technic_graphite.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_grinder_front.png b/technic/technic/textures/technic_grinder_front.png
deleted file mode 100644
index a28dbc1..0000000
--- a/technic/technic/textures/technic_grinder_front.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_grinder_side.png b/technic/technic/textures/technic_grinder_side.png
deleted file mode 100644
index af562f2..0000000
--- a/technic/technic/textures/technic_grinder_side.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_grinder_top.png b/technic/technic/textures/technic_grinder_top.png
deleted file mode 100644
index b074e13..0000000
--- a/technic/technic/textures/technic_grinder_top.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_homedecor_glowlight_cube_white_sides.png b/technic/technic/textures/technic_homedecor_glowlight_cube_white_sides.png
deleted file mode 100644
index 9121999..0000000
--- a/technic/technic/textures/technic_homedecor_glowlight_cube_white_sides.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_homedecor_glowlight_cube_white_sides_ceiling.png b/technic/technic/textures/technic_homedecor_glowlight_cube_white_sides_ceiling.png
deleted file mode 100644
index c8006eb..0000000
--- a/technic/technic/textures/technic_homedecor_glowlight_cube_white_sides_ceiling.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_homedecor_glowlight_cube_white_tb.png b/technic/technic/textures/technic_homedecor_glowlight_cube_white_tb.png
deleted file mode 100644
index b2e355a..0000000
--- a/technic/technic/textures/technic_homedecor_glowlight_cube_white_tb.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_homedecor_glowlight_cube_yellow_sides.png b/technic/technic/textures/technic_homedecor_glowlight_cube_yellow_sides.png
deleted file mode 100644
index b79be07..0000000
--- a/technic/technic/textures/technic_homedecor_glowlight_cube_yellow_sides.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_homedecor_glowlight_cube_yellow_sides_ceiling.png b/technic/technic/textures/technic_homedecor_glowlight_cube_yellow_sides_ceiling.png
deleted file mode 100644
index a9d397a..0000000
--- a/technic/technic/textures/technic_homedecor_glowlight_cube_yellow_sides_ceiling.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_homedecor_glowlight_cube_yellow_tb.png b/technic/technic/textures/technic_homedecor_glowlight_cube_yellow_tb.png
deleted file mode 100644
index daf03ab..0000000
--- a/technic/technic/textures/technic_homedecor_glowlight_cube_yellow_tb.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_homedecor_glowlight_thick_white_sides.png b/technic/technic/textures/technic_homedecor_glowlight_thick_white_sides.png
deleted file mode 100644
index 44c2b36..0000000
--- a/technic/technic/textures/technic_homedecor_glowlight_thick_white_sides.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_homedecor_glowlight_thick_white_wall_sides.png b/technic/technic/textures/technic_homedecor_glowlight_thick_white_wall_sides.png
deleted file mode 100644
index 937999e..0000000
--- a/technic/technic/textures/technic_homedecor_glowlight_thick_white_wall_sides.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_homedecor_glowlight_thick_yellow_sides.png b/technic/technic/textures/technic_homedecor_glowlight_thick_yellow_sides.png
deleted file mode 100644
index 769b054..0000000
--- a/technic/technic/textures/technic_homedecor_glowlight_thick_yellow_sides.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_homedecor_glowlight_thick_yellow_wall_sides.png b/technic/technic/textures/technic_homedecor_glowlight_thick_yellow_wall_sides.png
deleted file mode 100644
index 57820f1..0000000
--- a/technic/technic/textures/technic_homedecor_glowlight_thick_yellow_wall_sides.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_homedecor_glowlight_thin_white_sides.png b/technic/technic/textures/technic_homedecor_glowlight_thin_white_sides.png
deleted file mode 100644
index 0a337a5..0000000
--- a/technic/technic/textures/technic_homedecor_glowlight_thin_white_sides.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_homedecor_glowlight_thin_white_wall_sides.png b/technic/technic/textures/technic_homedecor_glowlight_thin_white_wall_sides.png
deleted file mode 100644
index 0fd3b1e..0000000
--- a/technic/technic/textures/technic_homedecor_glowlight_thin_white_wall_sides.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_homedecor_glowlight_thin_yellow_sides.png b/technic/technic/textures/technic_homedecor_glowlight_thin_yellow_sides.png
deleted file mode 100644
index 55bb6c0..0000000
--- a/technic/technic/textures/technic_homedecor_glowlight_thin_yellow_sides.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_homedecor_glowlight_thin_yellow_wall_sides.png b/technic/technic/textures/technic_homedecor_glowlight_thin_yellow_wall_sides.png
deleted file mode 100644
index 4b28a27..0000000
--- a/technic/technic/textures/technic_homedecor_glowlight_thin_yellow_wall_sides.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_homedecor_glowlight_white_tb.png b/technic/technic/textures/technic_homedecor_glowlight_white_tb.png
deleted file mode 100644
index fdc8a4d..0000000
--- a/technic/technic/textures/technic_homedecor_glowlight_white_tb.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_homedecor_glowlight_yellow_tb.png b/technic/technic/textures/technic_homedecor_glowlight_yellow_tb.png
deleted file mode 100644
index ffd9c58..0000000
--- a/technic/technic/textures/technic_homedecor_glowlight_yellow_tb.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_hv_battery_box_bottom.png b/technic/technic/textures/technic_hv_battery_box_bottom.png
deleted file mode 100644
index 996b2d4..0000000
--- a/technic/technic/textures/technic_hv_battery_box_bottom.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_hv_battery_box_side.png b/technic/technic/textures/technic_hv_battery_box_side.png
deleted file mode 100644
index fffd8ea..0000000
--- a/technic/technic/textures/technic_hv_battery_box_side.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_hv_battery_box_top.png b/technic/technic/textures/technic_hv_battery_box_top.png
deleted file mode 100644
index 49dee71..0000000
--- a/technic/technic/textures/technic_hv_battery_box_top.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_hv_cable.png b/technic/technic/textures/technic_hv_cable.png
deleted file mode 100644
index 7cb368d..0000000
--- a/technic/technic/textures/technic_hv_cable.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_hv_cable_wield.png b/technic/technic/textures/technic_hv_cable_wield.png
deleted file mode 100644
index 7b9ca58..0000000
--- a/technic/technic/textures/technic_hv_cable_wield.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_hv_down_converter_bottom.png b/technic/technic/textures/technic_hv_down_converter_bottom.png
deleted file mode 100644
index 996b2d4..0000000
--- a/technic/technic/textures/technic_hv_down_converter_bottom.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_hv_down_converter_side.png b/technic/technic/textures/technic_hv_down_converter_side.png
deleted file mode 100644
index ab904f1..0000000
--- a/technic/technic/textures/technic_hv_down_converter_side.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_hv_down_converter_top.png b/technic/technic/textures/technic_hv_down_converter_top.png
deleted file mode 100644
index 996b2d4..0000000
--- a/technic/technic/textures/technic_hv_down_converter_top.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_hv_generator_front.png b/technic/technic/textures/technic_hv_generator_front.png
deleted file mode 100644
index 6a14686..0000000
--- a/technic/technic/textures/technic_hv_generator_front.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_hv_generator_front_active.png b/technic/technic/textures/technic_hv_generator_front_active.png
deleted file mode 100644
index d92c699..0000000
--- a/technic/technic/textures/technic_hv_generator_front_active.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_hv_generator_side.png b/technic/technic/textures/technic_hv_generator_side.png
deleted file mode 100644
index 3073e0f..0000000
--- a/technic/technic/textures/technic_hv_generator_side.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_hv_generator_top.png b/technic/technic/textures/technic_hv_generator_top.png
deleted file mode 100644
index 646168c..0000000
--- a/technic/technic/textures/technic_hv_generator_top.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_hv_grinder_bottom.png b/technic/technic/textures/technic_hv_grinder_bottom.png
deleted file mode 100644
index fa2c135..0000000
--- a/technic/technic/textures/technic_hv_grinder_bottom.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_hv_grinder_front.png b/technic/technic/textures/technic_hv_grinder_front.png
deleted file mode 100644
index a5bca0a..0000000
--- a/technic/technic/textures/technic_hv_grinder_front.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_hv_grinder_front_active.png b/technic/technic/textures/technic_hv_grinder_front_active.png
deleted file mode 100644
index 4077630..0000000
--- a/technic/technic/textures/technic_hv_grinder_front_active.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_hv_grinder_side.png b/technic/technic/textures/technic_hv_grinder_side.png
deleted file mode 100644
index c3063c4..0000000
--- a/technic/technic/textures/technic_hv_grinder_side.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_hv_grinder_side_tube.png b/technic/technic/textures/technic_hv_grinder_side_tube.png
deleted file mode 100644
index 43bcca5..0000000
--- a/technic/technic/textures/technic_hv_grinder_side_tube.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_hv_grinder_top.png b/technic/technic/textures/technic_hv_grinder_top.png
deleted file mode 100644
index e0df36b..0000000
--- a/technic/technic/textures/technic_hv_grinder_top.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_hv_nuclear_reactor_core.png b/technic/technic/textures/technic_hv_nuclear_reactor_core.png
deleted file mode 100644
index 4661177..0000000
--- a/technic/technic/textures/technic_hv_nuclear_reactor_core.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_hv_solar_array_bottom.png b/technic/technic/textures/technic_hv_solar_array_bottom.png
deleted file mode 100644
index 596e79a..0000000
--- a/technic/technic/textures/technic_hv_solar_array_bottom.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_hv_solar_array_side.png b/technic/technic/textures/technic_hv_solar_array_side.png
deleted file mode 100644
index a3aa8c7..0000000
--- a/technic/technic/textures/technic_hv_solar_array_side.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_hv_solar_array_top.png b/technic/technic/textures/technic_hv_solar_array_top.png
deleted file mode 100644
index b7f0b43..0000000
--- a/technic/technic/textures/technic_hv_solar_array_top.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_hv_transformer.png b/technic/technic/textures/technic_hv_transformer.png
deleted file mode 100644
index e1d4c98..0000000
--- a/technic/technic/textures/technic_hv_transformer.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_injector_bottom.png b/technic/technic/textures/technic_injector_bottom.png
deleted file mode 100644
index 39916bd..0000000
--- a/technic/technic/textures/technic_injector_bottom.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_injector_side.png b/technic/technic/textures/technic_injector_side.png
deleted file mode 100644
index a5419a1..0000000
--- a/technic/technic/textures/technic_injector_side.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_injector_top.png b/technic/technic/textures/technic_injector_top.png
deleted file mode 100644
index 440649c..0000000
--- a/technic/technic/textures/technic_injector_top.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_kalite_dust.png b/technic/technic/textures/technic_kalite_dust.png
deleted file mode 100644
index 3a9e10f..0000000
--- a/technic/technic/textures/technic_kalite_dust.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_laser_beam_mk1.png b/technic/technic/textures/technic_laser_beam_mk1.png
deleted file mode 100644
index 4cf9b3e..0000000
--- a/technic/technic/textures/technic_laser_beam_mk1.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_laser_beam_mk2.png b/technic/technic/textures/technic_laser_beam_mk2.png
deleted file mode 100644
index 9e27a8c..0000000
--- a/technic/technic/textures/technic_laser_beam_mk2.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_laser_beam_mk3.png b/technic/technic/textures/technic_laser_beam_mk3.png
deleted file mode 100644
index 5a17e83..0000000
--- a/technic/technic/textures/technic_laser_beam_mk3.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_lava_can.png b/technic/technic/textures/technic_lava_can.png
deleted file mode 100644
index abe1a8c..0000000
--- a/technic/technic/textures/technic_lava_can.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_light.png b/technic/technic/textures/technic_light.png
deleted file mode 100644
index 334cb07..0000000
--- a/technic/technic/textures/technic_light.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_lv_alloy_furnace_bottom.png b/technic/technic/textures/technic_lv_alloy_furnace_bottom.png
deleted file mode 100644
index 2c0aaee..0000000
--- a/technic/technic/textures/technic_lv_alloy_furnace_bottom.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_lv_alloy_furnace_front.png b/technic/technic/textures/technic_lv_alloy_furnace_front.png
deleted file mode 100644
index 2d65cda..0000000
--- a/technic/technic/textures/technic_lv_alloy_furnace_front.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_lv_alloy_furnace_front_active.png b/technic/technic/textures/technic_lv_alloy_furnace_front_active.png
deleted file mode 100644
index 1ced989..0000000
--- a/technic/technic/textures/technic_lv_alloy_furnace_front_active.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_lv_alloy_furnace_side.png b/technic/technic/textures/technic_lv_alloy_furnace_side.png
deleted file mode 100644
index 778ad88..0000000
--- a/technic/technic/textures/technic_lv_alloy_furnace_side.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_lv_alloy_furnace_top.png b/technic/technic/textures/technic_lv_alloy_furnace_top.png
deleted file mode 100644
index 706793b..0000000
--- a/technic/technic/textures/technic_lv_alloy_furnace_top.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_lv_battery_box_bottom.png b/technic/technic/textures/technic_lv_battery_box_bottom.png
deleted file mode 100644
index a6124e6..0000000
--- a/technic/technic/textures/technic_lv_battery_box_bottom.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_lv_battery_box_side.png b/technic/technic/textures/technic_lv_battery_box_side.png
deleted file mode 100644
index 24d4e4e..0000000
--- a/technic/technic/textures/technic_lv_battery_box_side.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_lv_battery_box_top.png b/technic/technic/textures/technic_lv_battery_box_top.png
deleted file mode 100644
index b32100f..0000000
--- a/technic/technic/textures/technic_lv_battery_box_top.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_lv_cable.png b/technic/technic/textures/technic_lv_cable.png
deleted file mode 100644
index 0071bc9..0000000
--- a/technic/technic/textures/technic_lv_cable.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_lv_cable_wield.png b/technic/technic/textures/technic_lv_cable_wield.png
deleted file mode 100644
index bc7704d..0000000
--- a/technic/technic/textures/technic_lv_cable_wield.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_lv_compressor_back.png b/technic/technic/textures/technic_lv_compressor_back.png
deleted file mode 100644
index 11286e3..0000000
--- a/technic/technic/textures/technic_lv_compressor_back.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_lv_compressor_bottom.png b/technic/technic/textures/technic_lv_compressor_bottom.png
deleted file mode 100644
index 886f27e..0000000
--- a/technic/technic/textures/technic_lv_compressor_bottom.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_lv_compressor_front.png b/technic/technic/textures/technic_lv_compressor_front.png
deleted file mode 100644
index 007d6de..0000000
--- a/technic/technic/textures/technic_lv_compressor_front.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_lv_compressor_front_active.png b/technic/technic/textures/technic_lv_compressor_front_active.png
deleted file mode 100644
index b3d27c0..0000000
--- a/technic/technic/textures/technic_lv_compressor_front_active.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_lv_compressor_side.png b/technic/technic/textures/technic_lv_compressor_side.png
deleted file mode 100644
index 87acda6..0000000
--- a/technic/technic/textures/technic_lv_compressor_side.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_lv_compressor_top.png b/technic/technic/textures/technic_lv_compressor_top.png
deleted file mode 100644
index 786b859..0000000
--- a/technic/technic/textures/technic_lv_compressor_top.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_lv_electric_furnace_bottom.png b/technic/technic/textures/technic_lv_electric_furnace_bottom.png
deleted file mode 100644
index 15fa6de..0000000
--- a/technic/technic/textures/technic_lv_electric_furnace_bottom.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_lv_electric_furnace_front.png b/technic/technic/textures/technic_lv_electric_furnace_front.png
deleted file mode 100644
index 755aadf..0000000
--- a/technic/technic/textures/technic_lv_electric_furnace_front.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_lv_electric_furnace_front_active.png b/technic/technic/textures/technic_lv_electric_furnace_front_active.png
deleted file mode 100644
index de7f1f9..0000000
--- a/technic/technic/textures/technic_lv_electric_furnace_front_active.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_lv_electric_furnace_side.png b/technic/technic/textures/technic_lv_electric_furnace_side.png
deleted file mode 100644
index 80cf742..0000000
--- a/technic/technic/textures/technic_lv_electric_furnace_side.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_lv_electric_furnace_top.png b/technic/technic/textures/technic_lv_electric_furnace_top.png
deleted file mode 100644
index fbadd9a..0000000
--- a/technic/technic/textures/technic_lv_electric_furnace_top.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_lv_extractor_bottom.png b/technic/technic/textures/technic_lv_extractor_bottom.png
deleted file mode 100644
index aecd719..0000000
--- a/technic/technic/textures/technic_lv_extractor_bottom.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_lv_extractor_front.png b/technic/technic/textures/technic_lv_extractor_front.png
deleted file mode 100644
index 1bd7e9a..0000000
--- a/technic/technic/textures/technic_lv_extractor_front.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_lv_extractor_front_active.png b/technic/technic/textures/technic_lv_extractor_front_active.png
deleted file mode 100644
index 7f8b30a..0000000
--- a/technic/technic/textures/technic_lv_extractor_front_active.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_lv_extractor_side.png b/technic/technic/textures/technic_lv_extractor_side.png
deleted file mode 100644
index 99d9486..0000000
--- a/technic/technic/textures/technic_lv_extractor_side.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_lv_extractor_top.png b/technic/technic/textures/technic_lv_extractor_top.png
deleted file mode 100644
index e7d9ff9..0000000
--- a/technic/technic/textures/technic_lv_extractor_top.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_lv_generator_front.png b/technic/technic/textures/technic_lv_generator_front.png
deleted file mode 100644
index 2d64844..0000000
--- a/technic/technic/textures/technic_lv_generator_front.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_lv_generator_front_active.png b/technic/technic/textures/technic_lv_generator_front_active.png
deleted file mode 100644
index 4e57ca0..0000000
--- a/technic/technic/textures/technic_lv_generator_front_active.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_lv_generator_side.png b/technic/technic/textures/technic_lv_generator_side.png
deleted file mode 100644
index 5cbcbef..0000000
--- a/technic/technic/textures/technic_lv_generator_side.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_lv_generator_top.png b/technic/technic/textures/technic_lv_generator_top.png
deleted file mode 100644
index e2f3db3..0000000
--- a/technic/technic/textures/technic_lv_generator_top.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_lv_grinder_bottom.png b/technic/technic/textures/technic_lv_grinder_bottom.png
deleted file mode 100644
index aecd719..0000000
--- a/technic/technic/textures/technic_lv_grinder_bottom.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_lv_grinder_front.png b/technic/technic/textures/technic_lv_grinder_front.png
deleted file mode 100644
index 1bd7e9a..0000000
--- a/technic/technic/textures/technic_lv_grinder_front.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_lv_grinder_front_active.png b/technic/technic/textures/technic_lv_grinder_front_active.png
deleted file mode 100644
index 7f8b30a..0000000
--- a/technic/technic/textures/technic_lv_grinder_front_active.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_lv_grinder_side.png b/technic/technic/textures/technic_lv_grinder_side.png
deleted file mode 100644
index 99d9486..0000000
--- a/technic/technic/textures/technic_lv_grinder_side.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_lv_grinder_top.png b/technic/technic/textures/technic_lv_grinder_top.png
deleted file mode 100644
index e7d9ff9..0000000
--- a/technic/technic/textures/technic_lv_grinder_top.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_lv_solar_array_bottom.png b/technic/technic/textures/technic_lv_solar_array_bottom.png
deleted file mode 100644
index 9e888e3..0000000
--- a/technic/technic/textures/technic_lv_solar_array_bottom.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_lv_solar_array_side.png b/technic/technic/textures/technic_lv_solar_array_side.png
deleted file mode 100644
index b22447e..0000000
--- a/technic/technic/textures/technic_lv_solar_array_side.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_lv_solar_array_top.png b/technic/technic/textures/technic_lv_solar_array_top.png
deleted file mode 100644
index cabd315..0000000
--- a/technic/technic/textures/technic_lv_solar_array_top.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_lv_transformer.png b/technic/technic/textures/technic_lv_transformer.png
deleted file mode 100644
index 613b196..0000000
--- a/technic/technic/textures/technic_lv_transformer.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_machine_bottom.png b/technic/technic/textures/technic_machine_bottom.png
deleted file mode 100644
index 48a47b0..0000000
--- a/technic/technic/textures/technic_machine_bottom.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_machine_casing.png b/technic/technic/textures/technic_machine_casing.png
deleted file mode 100644
index d596733..0000000
--- a/technic/technic/textures/technic_machine_casing.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_mining_drill.png b/technic/technic/textures/technic_mining_drill.png
deleted file mode 100644
index 171888d..0000000
--- a/technic/technic/textures/technic_mining_drill.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_mining_drill_mk2.png b/technic/technic/textures/technic_mining_drill_mk2.png
deleted file mode 100644
index 30be719..0000000
--- a/technic/technic/textures/technic_mining_drill_mk2.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_mining_drill_mk3.png b/technic/technic/textures/technic_mining_drill_mk3.png
deleted file mode 100644
index 30de896..0000000
--- a/technic/technic/textures/technic_mining_drill_mk3.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_mining_laser_mk1.png b/technic/technic/textures/technic_mining_laser_mk1.png
deleted file mode 100644
index 29faeb4..0000000
--- a/technic/technic/textures/technic_mining_laser_mk1.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_mining_laser_mk2.png b/technic/technic/textures/technic_mining_laser_mk2.png
deleted file mode 100644
index 2d67c0f..0000000
--- a/technic/technic/textures/technic_mining_laser_mk2.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_mining_laser_mk3.png b/technic/technic/textures/technic_mining_laser_mk3.png
deleted file mode 100644
index db9ee26..0000000
--- a/technic/technic/textures/technic_mining_laser_mk3.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_mithril_dust.png b/technic/technic/textures/technic_mithril_dust.png
deleted file mode 100644
index adfbe6c..0000000
--- a/technic/technic/textures/technic_mithril_dust.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_mixed_metal_ingot.png b/technic/technic/textures/technic_mixed_metal_ingot.png
deleted file mode 100644
index 8f6847b..0000000
--- a/technic/technic/textures/technic_mixed_metal_ingot.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_motor.png b/technic/technic/textures/technic_motor.png
deleted file mode 100644
index 77d4b91..0000000
--- a/technic/technic/textures/technic_motor.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_music_player_bottom.png b/technic/technic/textures/technic_music_player_bottom.png
deleted file mode 100644
index bd8fd55..0000000
--- a/technic/technic/textures/technic_music_player_bottom.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_music_player_side.png b/technic/technic/textures/technic_music_player_side.png
deleted file mode 100644
index 6c34fea..0000000
--- a/technic/technic/textures/technic_music_player_side.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_music_player_top.png b/technic/technic/textures/technic_music_player_top.png
deleted file mode 100644
index 0d34563..0000000
--- a/technic/technic/textures/technic_music_player_top.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_mv_alloy_furnace_bottom.png b/technic/technic/textures/technic_mv_alloy_furnace_bottom.png
deleted file mode 100644
index 2c0aaee..0000000
--- a/technic/technic/textures/technic_mv_alloy_furnace_bottom.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_mv_alloy_furnace_front.png b/technic/technic/textures/technic_mv_alloy_furnace_front.png
deleted file mode 100644
index a5dac82..0000000
--- a/technic/technic/textures/technic_mv_alloy_furnace_front.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_mv_alloy_furnace_front_active.png b/technic/technic/textures/technic_mv_alloy_furnace_front_active.png
deleted file mode 100644
index f6e69a9..0000000
--- a/technic/technic/textures/technic_mv_alloy_furnace_front_active.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_mv_alloy_furnace_side.png b/technic/technic/textures/technic_mv_alloy_furnace_side.png
deleted file mode 100644
index 0430479..0000000
--- a/technic/technic/textures/technic_mv_alloy_furnace_side.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_mv_alloy_furnace_side_tube.png b/technic/technic/textures/technic_mv_alloy_furnace_side_tube.png
deleted file mode 100644
index 1800eed..0000000
--- a/technic/technic/textures/technic_mv_alloy_furnace_side_tube.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_mv_alloy_furnace_top.png b/technic/technic/textures/technic_mv_alloy_furnace_top.png
deleted file mode 100644
index f44e3c0..0000000
--- a/technic/technic/textures/technic_mv_alloy_furnace_top.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_mv_battery_box_bottom.png b/technic/technic/textures/technic_mv_battery_box_bottom.png
deleted file mode 100644
index a610660..0000000
--- a/technic/technic/textures/technic_mv_battery_box_bottom.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_mv_battery_box_side.png b/technic/technic/textures/technic_mv_battery_box_side.png
deleted file mode 100644
index 06a4be5..0000000
--- a/technic/technic/textures/technic_mv_battery_box_side.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_mv_battery_box_top.png b/technic/technic/textures/technic_mv_battery_box_top.png
deleted file mode 100644
index b32100f..0000000
--- a/technic/technic/textures/technic_mv_battery_box_top.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_mv_cable.png b/technic/technic/textures/technic_mv_cable.png
deleted file mode 100644
index 2819d2b..0000000
--- a/technic/technic/textures/technic_mv_cable.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_mv_cable_wield.png b/technic/technic/textures/technic_mv_cable_wield.png
deleted file mode 100644
index 2d41e27..0000000
--- a/technic/technic/textures/technic_mv_cable_wield.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_mv_centrifuge_bottom.png b/technic/technic/textures/technic_mv_centrifuge_bottom.png
deleted file mode 100644
index 6dcd40f..0000000
--- a/technic/technic/textures/technic_mv_centrifuge_bottom.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_mv_centrifuge_front.png b/technic/technic/textures/technic_mv_centrifuge_front.png
deleted file mode 100644
index e278a33..0000000
--- a/technic/technic/textures/technic_mv_centrifuge_front.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_mv_centrifuge_front_active.png b/technic/technic/textures/technic_mv_centrifuge_front_active.png
deleted file mode 100644
index 4cef912..0000000
--- a/technic/technic/textures/technic_mv_centrifuge_front_active.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_mv_centrifuge_side.png b/technic/technic/textures/technic_mv_centrifuge_side.png
deleted file mode 100644
index eeef44a..0000000
--- a/technic/technic/textures/technic_mv_centrifuge_side.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_mv_centrifuge_top.png b/technic/technic/textures/technic_mv_centrifuge_top.png
deleted file mode 100644
index 813bbf8..0000000
--- a/technic/technic/textures/technic_mv_centrifuge_top.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_mv_compressor_back.png b/technic/technic/textures/technic_mv_compressor_back.png
deleted file mode 100644
index 11286e3..0000000
--- a/technic/technic/textures/technic_mv_compressor_back.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_mv_compressor_bottom.png b/technic/technic/textures/technic_mv_compressor_bottom.png
deleted file mode 100644
index 886f27e..0000000
--- a/technic/technic/textures/technic_mv_compressor_bottom.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_mv_compressor_front.png b/technic/technic/textures/technic_mv_compressor_front.png
deleted file mode 100644
index 007d6de..0000000
--- a/technic/technic/textures/technic_mv_compressor_front.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_mv_compressor_front_active.png b/technic/technic/textures/technic_mv_compressor_front_active.png
deleted file mode 100644
index b3d27c0..0000000
--- a/technic/technic/textures/technic_mv_compressor_front_active.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_mv_compressor_side.png b/technic/technic/textures/technic_mv_compressor_side.png
deleted file mode 100644
index 87acda6..0000000
--- a/technic/technic/textures/technic_mv_compressor_side.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_mv_compressor_top.png b/technic/technic/textures/technic_mv_compressor_top.png
deleted file mode 100644
index 786b859..0000000
--- a/technic/technic/textures/technic_mv_compressor_top.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_mv_down_converter_bottom.png b/technic/technic/textures/technic_mv_down_converter_bottom.png
deleted file mode 100644
index a610660..0000000
--- a/technic/technic/textures/technic_mv_down_converter_bottom.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_mv_down_converter_side.png b/technic/technic/textures/technic_mv_down_converter_side.png
deleted file mode 100644
index 6492d5c..0000000
--- a/technic/technic/textures/technic_mv_down_converter_side.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_mv_down_converter_top.png b/technic/technic/textures/technic_mv_down_converter_top.png
deleted file mode 100644
index a610660..0000000
--- a/technic/technic/textures/technic_mv_down_converter_top.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_mv_electric_furnace_bottom.png b/technic/technic/textures/technic_mv_electric_furnace_bottom.png
deleted file mode 100644
index e2e445e..0000000
--- a/technic/technic/textures/technic_mv_electric_furnace_bottom.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_mv_electric_furnace_front.png b/technic/technic/textures/technic_mv_electric_furnace_front.png
deleted file mode 100644
index 81c33cf..0000000
--- a/technic/technic/textures/technic_mv_electric_furnace_front.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_mv_electric_furnace_front_active.png b/technic/technic/textures/technic_mv_electric_furnace_front_active.png
deleted file mode 100644
index 2523f0e..0000000
--- a/technic/technic/textures/technic_mv_electric_furnace_front_active.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_mv_electric_furnace_side.png b/technic/technic/textures/technic_mv_electric_furnace_side.png
deleted file mode 100644
index cd22a73..0000000
--- a/technic/technic/textures/technic_mv_electric_furnace_side.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_mv_electric_furnace_side_tube.png b/technic/technic/textures/technic_mv_electric_furnace_side_tube.png
deleted file mode 100644
index bfeba18..0000000
--- a/technic/technic/textures/technic_mv_electric_furnace_side_tube.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_mv_electric_furnace_top.png b/technic/technic/textures/technic_mv_electric_furnace_top.png
deleted file mode 100644
index 635b6b7..0000000
--- a/technic/technic/textures/technic_mv_electric_furnace_top.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_mv_extractor_bottom.png b/technic/technic/textures/technic_mv_extractor_bottom.png
deleted file mode 100644
index 70f34ee..0000000
--- a/technic/technic/textures/technic_mv_extractor_bottom.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_mv_extractor_front.png b/technic/technic/textures/technic_mv_extractor_front.png
deleted file mode 100644
index 18648c2..0000000
--- a/technic/technic/textures/technic_mv_extractor_front.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_mv_extractor_front_active.png b/technic/technic/textures/technic_mv_extractor_front_active.png
deleted file mode 100644
index ee86ade..0000000
--- a/technic/technic/textures/technic_mv_extractor_front_active.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_mv_extractor_side.png b/technic/technic/textures/technic_mv_extractor_side.png
deleted file mode 100644
index cbe3673..0000000
--- a/technic/technic/textures/technic_mv_extractor_side.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_mv_extractor_top.png b/technic/technic/textures/technic_mv_extractor_top.png
deleted file mode 100644
index 2259d64..0000000
--- a/technic/technic/textures/technic_mv_extractor_top.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_mv_generator_front.png b/technic/technic/textures/technic_mv_generator_front.png
deleted file mode 100644
index 570e0c5..0000000
--- a/technic/technic/textures/technic_mv_generator_front.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_mv_generator_front_active.png b/technic/technic/textures/technic_mv_generator_front_active.png
deleted file mode 100644
index 3006a17..0000000
--- a/technic/technic/textures/technic_mv_generator_front_active.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_mv_generator_side.png b/technic/technic/textures/technic_mv_generator_side.png
deleted file mode 100644
index 21c0d41..0000000
--- a/technic/technic/textures/technic_mv_generator_side.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_mv_generator_top.png b/technic/technic/textures/technic_mv_generator_top.png
deleted file mode 100644
index 7afa5a1..0000000
--- a/technic/technic/textures/technic_mv_generator_top.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_mv_grinder_bottom.png b/technic/technic/textures/technic_mv_grinder_bottom.png
deleted file mode 100644
index 70f34ee..0000000
--- a/technic/technic/textures/technic_mv_grinder_bottom.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_mv_grinder_front.png b/technic/technic/textures/technic_mv_grinder_front.png
deleted file mode 100644
index 18648c2..0000000
--- a/technic/technic/textures/technic_mv_grinder_front.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_mv_grinder_front_active.png b/technic/technic/textures/technic_mv_grinder_front_active.png
deleted file mode 100644
index ee86ade..0000000
--- a/technic/technic/textures/technic_mv_grinder_front_active.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_mv_grinder_side.png b/technic/technic/textures/technic_mv_grinder_side.png
deleted file mode 100644
index cbe3673..0000000
--- a/technic/technic/textures/technic_mv_grinder_side.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_mv_grinder_side_tube.png b/technic/technic/textures/technic_mv_grinder_side_tube.png
deleted file mode 100644
index 196b7c1..0000000
--- a/technic/technic/textures/technic_mv_grinder_side_tube.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_mv_grinder_top.png b/technic/technic/textures/technic_mv_grinder_top.png
deleted file mode 100644
index 2259d64..0000000
--- a/technic/technic/textures/technic_mv_grinder_top.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_mv_solar_array_bottom.png b/technic/technic/textures/technic_mv_solar_array_bottom.png
deleted file mode 100644
index 596e79a..0000000
--- a/technic/technic/textures/technic_mv_solar_array_bottom.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_mv_solar_array_side.png b/technic/technic/textures/technic_mv_solar_array_side.png
deleted file mode 100644
index 917b9ed..0000000
--- a/technic/technic/textures/technic_mv_solar_array_side.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_mv_solar_array_top.png b/technic/technic/textures/technic_mv_solar_array_top.png
deleted file mode 100644
index cdb7cf7..0000000
--- a/technic/technic/textures/technic_mv_solar_array_top.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_mv_transformer.png b/technic/technic/textures/technic_mv_transformer.png
deleted file mode 100644
index 7c4688e..0000000
--- a/technic/technic/textures/technic_mv_transformer.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_nodebreaker_back.png b/technic/technic/textures/technic_nodebreaker_back.png
deleted file mode 100644
index 0af7422..0000000
--- a/technic/technic/textures/technic_nodebreaker_back.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_nodebreaker_bottom.png b/technic/technic/textures/technic_nodebreaker_bottom.png
deleted file mode 100644
index ff1a2c6..0000000
--- a/technic/technic/textures/technic_nodebreaker_bottom.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_nodebreaker_bottom_off.png b/technic/technic/textures/technic_nodebreaker_bottom_off.png
deleted file mode 100644
index 0f456eb..0000000
--- a/technic/technic/textures/technic_nodebreaker_bottom_off.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_nodebreaker_bottom_on.png b/technic/technic/textures/technic_nodebreaker_bottom_on.png
deleted file mode 100644
index 6c4811a..0000000
--- a/technic/technic/textures/technic_nodebreaker_bottom_on.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_nodebreaker_front_off.png b/technic/technic/textures/technic_nodebreaker_front_off.png
deleted file mode 100644
index 488fd0a..0000000
--- a/technic/technic/textures/technic_nodebreaker_front_off.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_nodebreaker_front_on.png b/technic/technic/textures/technic_nodebreaker_front_on.png
deleted file mode 100644
index 4904e8b..0000000
--- a/technic/technic/textures/technic_nodebreaker_front_on.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_nodebreaker_side.png b/technic/technic/textures/technic_nodebreaker_side.png
deleted file mode 100644
index aefd7c8..0000000
--- a/technic/technic/textures/technic_nodebreaker_side.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_nodebreaker_side1.png b/technic/technic/textures/technic_nodebreaker_side1.png
deleted file mode 100644
index 8cb8634..0000000
--- a/technic/technic/textures/technic_nodebreaker_side1.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_nodebreaker_side1_off.png b/technic/technic/textures/technic_nodebreaker_side1_off.png
deleted file mode 100644
index 857face..0000000
--- a/technic/technic/textures/technic_nodebreaker_side1_off.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_nodebreaker_side1_on.png b/technic/technic/textures/technic_nodebreaker_side1_on.png
deleted file mode 100644
index c756f09..0000000
--- a/technic/technic/textures/technic_nodebreaker_side1_on.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_nodebreaker_side2.png b/technic/technic/textures/technic_nodebreaker_side2.png
deleted file mode 100644
index c2855d0..0000000
--- a/technic/technic/textures/technic_nodebreaker_side2.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_nodebreaker_side2_off.png b/technic/technic/textures/technic_nodebreaker_side2_off.png
deleted file mode 100644
index 4c62f98..0000000
--- a/technic/technic/textures/technic_nodebreaker_side2_off.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_nodebreaker_side2_on.png b/technic/technic/textures/technic_nodebreaker_side2_on.png
deleted file mode 100644
index b9e4823..0000000
--- a/technic/technic/textures/technic_nodebreaker_side2_on.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_nodebreaker_top.png b/technic/technic/textures/technic_nodebreaker_top.png
deleted file mode 100644
index 941d333..0000000
--- a/technic/technic/textures/technic_nodebreaker_top.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_nodebreaker_top_off.png b/technic/technic/textures/technic_nodebreaker_top_off.png
deleted file mode 100644
index 9139afe..0000000
--- a/technic/technic/textures/technic_nodebreaker_top_off.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_nodebreaker_top_on.png b/technic/technic/textures/technic_nodebreaker_top_on.png
deleted file mode 100644
index 4b0a661..0000000
--- a/technic/technic/textures/technic_nodebreaker_top_on.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_power_meter.png b/technic/technic/textures/technic_power_meter.png
deleted file mode 100644
index f1e5120..0000000
--- a/technic/technic/textures/technic_power_meter.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_power_meter0.png b/technic/technic/textures/technic_power_meter0.png
deleted file mode 100644
index 1b1e662..0000000
--- a/technic/technic/textures/technic_power_meter0.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_power_meter1.png b/technic/technic/textures/technic_power_meter1.png
deleted file mode 100644
index eb6be3b..0000000
--- a/technic/technic/textures/technic_power_meter1.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_power_meter2.png b/technic/technic/textures/technic_power_meter2.png
deleted file mode 100644
index e3a3772..0000000
--- a/technic/technic/textures/technic_power_meter2.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_power_meter3.png b/technic/technic/textures/technic_power_meter3.png
deleted file mode 100644
index 6333035..0000000
--- a/technic/technic/textures/technic_power_meter3.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_power_meter4.png b/technic/technic/textures/technic_power_meter4.png
deleted file mode 100644
index 6346dbd..0000000
--- a/technic/technic/textures/technic_power_meter4.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_power_meter5.png b/technic/technic/textures/technic_power_meter5.png
deleted file mode 100644
index 80f79c6..0000000
--- a/technic/technic/textures/technic_power_meter5.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_power_meter6.png b/technic/technic/textures/technic_power_meter6.png
deleted file mode 100644
index fe91bf5..0000000
--- a/technic/technic/textures/technic_power_meter6.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_power_meter7.png b/technic/technic/textures/technic_power_meter7.png
deleted file mode 100644
index e02dd6d..0000000
--- a/technic/technic/textures/technic_power_meter7.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_power_meter8.png b/technic/technic/textures/technic_power_meter8.png
deleted file mode 100644
index a12064c..0000000
--- a/technic/technic/textures/technic_power_meter8.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_power_meter_bg.png b/technic/technic/textures/technic_power_meter_bg.png
deleted file mode 100644
index 9667cda..0000000
--- a/technic/technic/textures/technic_power_meter_bg.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_power_meter_fg.png b/technic/technic/textures/technic_power_meter_fg.png
deleted file mode 100644
index 7f2dde8..0000000
--- a/technic/technic/textures/technic_power_meter_fg.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_prospector.png b/technic/technic/textures/technic_prospector.png
deleted file mode 100644
index 2f9ee6c..0000000
--- a/technic/technic/textures/technic_prospector.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_raw_latex.png b/technic/technic/textures/technic_raw_latex.png
deleted file mode 100644
index 49bb11b..0000000
--- a/technic/technic/textures/technic_raw_latex.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_rubber.png b/technic/technic/textures/technic_rubber.png
deleted file mode 100644
index 9ed4a9d..0000000
--- a/technic/technic/textures/technic_rubber.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_rubber_leaves.png b/technic/technic/textures/technic_rubber_leaves.png
deleted file mode 100644
index ae013e0..0000000
--- a/technic/technic/textures/technic_rubber_leaves.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_rubber_sapling.png b/technic/technic/textures/technic_rubber_sapling.png
deleted file mode 100644
index e5c9f5d..0000000
--- a/technic/technic/textures/technic_rubber_sapling.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_rubber_tree_empty.png b/technic/technic/textures/technic_rubber_tree_empty.png
deleted file mode 100644
index 1792951..0000000
--- a/technic/technic/textures/technic_rubber_tree_empty.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_rubber_tree_full.png b/technic/technic/textures/technic_rubber_tree_full.png
deleted file mode 100644
index 08067ef..0000000
--- a/technic/technic/textures/technic_rubber_tree_full.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_rubber_tree_grindings.png b/technic/technic/textures/technic_rubber_tree_grindings.png
deleted file mode 100644
index 9f2f5d6..0000000
--- a/technic/technic/textures/technic_rubber_tree_grindings.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_sawdust.png b/technic/technic/textures/technic_sawdust.png
deleted file mode 100644
index 976e7f9..0000000
--- a/technic/technic/textures/technic_sawdust.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_screwdriver.png b/technic/technic/textures/technic_screwdriver.png
deleted file mode 100644
index bd2da22..0000000
--- a/technic/technic/textures/technic_screwdriver.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_silicon_wafer.png b/technic/technic/textures/technic_silicon_wafer.png
deleted file mode 100644
index 78aef20..0000000
--- a/technic/technic/textures/technic_silicon_wafer.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_silver_dust.png b/technic/technic/textures/technic_silver_dust.png
deleted file mode 100644
index 19a5754..0000000
--- a/technic/technic/textures/technic_silver_dust.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_solar_panel_bottom.png b/technic/technic/textures/technic_solar_panel_bottom.png
deleted file mode 100644
index 9e888e3..0000000
--- a/technic/technic/textures/technic_solar_panel_bottom.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_solar_panel_side.png b/technic/technic/textures/technic_solar_panel_side.png
deleted file mode 100644
index b22447e..0000000
--- a/technic/technic/textures/technic_solar_panel_side.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_solar_panel_top.png b/technic/technic/textures/technic_solar_panel_top.png
deleted file mode 100644
index 492764b..0000000
--- a/technic/technic/textures/technic_solar_panel_top.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_sonic_screwdriver.png b/technic/technic/textures/technic_sonic_screwdriver.png
deleted file mode 100644
index 9b26b81..0000000
--- a/technic/technic/textures/technic_sonic_screwdriver.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_stainless_steel_dust.png b/technic/technic/textures/technic_stainless_steel_dust.png
deleted file mode 100644
index 6398be8..0000000
--- a/technic/technic/textures/technic_stainless_steel_dust.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_stainless_steel_ingot.png b/technic/technic/textures/technic_stainless_steel_ingot.png
deleted file mode 100644
index 7ec5e00..0000000
--- a/technic/technic/textures/technic_stainless_steel_ingot.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_supply_converter_bottom.png b/technic/technic/textures/technic_supply_converter_bottom.png
deleted file mode 100644
index a610660..0000000
--- a/technic/technic/textures/technic_supply_converter_bottom.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_supply_converter_side.png b/technic/technic/textures/technic_supply_converter_side.png
deleted file mode 100644
index 6492d5c..0000000
--- a/technic/technic/textures/technic_supply_converter_side.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_supply_converter_top.png b/technic/technic/textures/technic_supply_converter_top.png
deleted file mode 100644
index a610660..0000000
--- a/technic/technic/textures/technic_supply_converter_top.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_talinite_dust.png b/technic/technic/textures/technic_talinite_dust.png
deleted file mode 100644
index f228206..0000000
--- a/technic/technic/textures/technic_talinite_dust.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_tin_dust.png b/technic/technic/textures/technic_tin_dust.png
deleted file mode 100644
index 98e6f3f..0000000
--- a/technic/technic/textures/technic_tin_dust.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_tool_mode1.png b/technic/technic/textures/technic_tool_mode1.png
deleted file mode 100644
index 571dbe5..0000000
--- a/technic/technic/textures/technic_tool_mode1.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_tool_mode2.png b/technic/technic/textures/technic_tool_mode2.png
deleted file mode 100644
index 891aa82..0000000
--- a/technic/technic/textures/technic_tool_mode2.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_tool_mode3.png b/technic/technic/textures/technic_tool_mode3.png
deleted file mode 100644
index cd099a7..0000000
--- a/technic/technic/textures/technic_tool_mode3.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_tool_mode4.png b/technic/technic/textures/technic_tool_mode4.png
deleted file mode 100644
index 62f50d7..0000000
--- a/technic/technic/textures/technic_tool_mode4.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_tool_mode5.png b/technic/technic/textures/technic_tool_mode5.png
deleted file mode 100644
index c918314..0000000
--- a/technic/technic/textures/technic_tool_mode5.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_tool_mode6.png b/technic/technic/textures/technic_tool_mode6.png
deleted file mode 100644
index 9268f47..0000000
--- a/technic/technic/textures/technic_tool_mode6.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_tool_mode7.png b/technic/technic/textures/technic_tool_mode7.png
deleted file mode 100644
index 5ba572a..0000000
--- a/technic/technic/textures/technic_tool_mode7.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_tool_mode8.png b/technic/technic/textures/technic_tool_mode8.png
deleted file mode 100644
index b2655b6..0000000
--- a/technic/technic/textures/technic_tool_mode8.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_tool_mode9.png b/technic/technic/textures/technic_tool_mode9.png
deleted file mode 100644
index 2077afb..0000000
--- a/technic/technic/textures/technic_tool_mode9.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_tree_tap.png b/technic/technic/textures/technic_tree_tap.png
deleted file mode 100644
index 542f30f..0000000
--- a/technic/technic/textures/technic_tree_tap.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_uranium_dust.png b/technic/technic/textures/technic_uranium_dust.png
deleted file mode 100644
index 9c211dc..0000000
--- a/technic/technic/textures/technic_uranium_dust.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_uranium_fuel.png b/technic/technic/textures/technic_uranium_fuel.png
deleted file mode 100644
index 0a32c62..0000000
--- a/technic/technic/textures/technic_uranium_fuel.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_vacuum.png b/technic/technic/textures/technic_vacuum.png
deleted file mode 100644
index 1ef5815..0000000
--- a/technic/technic/textures/technic_vacuum.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_water_can.png b/technic/technic/textures/technic_water_can.png
deleted file mode 100644
index eec75db..0000000
--- a/technic/technic/textures/technic_water_can.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_water_mill_side.png b/technic/technic/textures/technic_water_mill_side.png
deleted file mode 100644
index f4bdb16..0000000
--- a/technic/technic/textures/technic_water_mill_side.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_water_mill_top.png b/technic/technic/textures/technic_water_mill_top.png
deleted file mode 100644
index 601ff15..0000000
--- a/technic/technic/textures/technic_water_mill_top.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_water_mill_top_active.png b/technic/technic/textures/technic_water_mill_top_active.png
deleted file mode 100644
index f02bec6..0000000
--- a/technic/technic/textures/technic_water_mill_top_active.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_workshop_bottom.png b/technic/technic/textures/technic_workshop_bottom.png
deleted file mode 100644
index bd8fd55..0000000
--- a/technic/technic/textures/technic_workshop_bottom.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_workshop_side.png b/technic/technic/textures/technic_workshop_side.png
deleted file mode 100644
index 9e3e7a7..0000000
--- a/technic/technic/textures/technic_workshop_side.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_workshop_top.png b/technic/technic/textures/technic_workshop_top.png
deleted file mode 100644
index feae141..0000000
--- a/technic/technic/textures/technic_workshop_top.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_wrought_iron_dust.png b/technic/technic/textures/technic_wrought_iron_dust.png
deleted file mode 100644
index ad23c62..0000000
--- a/technic/technic/textures/technic_wrought_iron_dust.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technic_zinc_dust.png b/technic/technic/textures/technic_zinc_dust.png
deleted file mode 100644
index bbd826c..0000000
--- a/technic/technic/textures/technic_zinc_dust.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_akalin_dust.png b/technic/technic/textures/technicx32/technic_akalin_dust.png
deleted file mode 100644
index 90f3bac..0000000
--- a/technic/technic/textures/technicx32/technic_akalin_dust.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_alatro_dust.png b/technic/technic/textures/technicx32/technic_alatro_dust.png
deleted file mode 100644
index 1199614..0000000
--- a/technic/technic/textures/technicx32/technic_alatro_dust.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_alloy_furnace_front.png b/technic/technic/textures/technicx32/technic_alloy_furnace_front.png
deleted file mode 100644
index 9123fb6..0000000
--- a/technic/technic/textures/technicx32/technic_alloy_furnace_front.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_alloy_furnace_front_active.png b/technic/technic/textures/technicx32/technic_alloy_furnace_front_active.png
deleted file mode 100644
index 4dda2e6..0000000
--- a/technic/technic/textures/technicx32/technic_alloy_furnace_front_active.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_alloy_furnace_side.png b/technic/technic/textures/technicx32/technic_alloy_furnace_side.png
deleted file mode 100644
index b5bd428..0000000
--- a/technic/technic/textures/technicx32/technic_alloy_furnace_side.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_alloy_furnace_top.png b/technic/technic/textures/technicx32/technic_alloy_furnace_top.png
deleted file mode 100644
index 67ef4b7..0000000
--- a/technic/technic/textures/technicx32/technic_alloy_furnace_top.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_arol_dust.png b/technic/technic/textures/technicx32/technic_arol_dust.png
deleted file mode 100644
index f5a392f..0000000
--- a/technic/technic/textures/technicx32/technic_arol_dust.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_battery.png b/technic/technic/textures/technicx32/technic_battery.png
deleted file mode 100644
index ee83b74..0000000
--- a/technic/technic/textures/technicx32/technic_battery.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_battery_box_bottom.png b/technic/technic/textures/technicx32/technic_battery_box_bottom.png
deleted file mode 100644
index 03c7ccc..0000000
--- a/technic/technic/textures/technicx32/technic_battery_box_bottom.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_battery_box_side0.png b/technic/technic/textures/technicx32/technic_battery_box_side0.png
deleted file mode 100644
index 2662ac0..0000000
--- a/technic/technic/textures/technicx32/technic_battery_box_side0.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_battery_box_top.png b/technic/technic/textures/technicx32/technic_battery_box_top.png
deleted file mode 100644
index 4953a32..0000000
--- a/technic/technic/textures/technicx32/technic_battery_box_top.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_battery_reload.png b/technic/technic/textures/technicx32/technic_battery_reload.png
deleted file mode 100644
index 164b4ac..0000000
--- a/technic/technic/textures/technicx32/technic_battery_reload.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_brass_dust.png b/technic/technic/textures/technicx32/technic_brass_dust.png
deleted file mode 100644
index f86167a..0000000
--- a/technic/technic/textures/technicx32/technic_brass_dust.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_bronze_dust.png b/technic/technic/textures/technicx32/technic_bronze_dust.png
deleted file mode 100644
index 0a2401e..0000000
--- a/technic/technic/textures/technicx32/technic_bronze_dust.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_carbon_steel_dust.png b/technic/technic/textures/technicx32/technic_carbon_steel_dust.png
deleted file mode 100644
index 0bf350f..0000000
--- a/technic/technic/textures/technicx32/technic_carbon_steel_dust.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_cast_iron_dust.png b/technic/technic/textures/technicx32/technic_cast_iron_dust.png
deleted file mode 100644
index f355094..0000000
--- a/technic/technic/textures/technicx32/technic_cast_iron_dust.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_chainsaw.png b/technic/technic/textures/technicx32/technic_chainsaw.png
deleted file mode 100644
index b7ceee6..0000000
--- a/technic/technic/textures/technicx32/technic_chainsaw.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_chromium_dust.png b/technic/technic/textures/technicx32/technic_chromium_dust.png
deleted file mode 100644
index a33358b..0000000
--- a/technic/technic/textures/technicx32/technic_chromium_dust.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_coal_alloy_furnace_bottom.png b/technic/technic/textures/technicx32/technic_coal_alloy_furnace_bottom.png
deleted file mode 100644
index 7a5eed7..0000000
--- a/technic/technic/textures/technicx32/technic_coal_alloy_furnace_bottom.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_coal_alloy_furnace_front.png b/technic/technic/textures/technicx32/technic_coal_alloy_furnace_front.png
deleted file mode 100644
index b00bef3..0000000
--- a/technic/technic/textures/technicx32/technic_coal_alloy_furnace_front.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_coal_alloy_furnace_front_active.png b/technic/technic/textures/technicx32/technic_coal_alloy_furnace_front_active.png
deleted file mode 100644
index b41f619..0000000
--- a/technic/technic/textures/technicx32/technic_coal_alloy_furnace_front_active.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_coal_alloy_furnace_side.png b/technic/technic/textures/technicx32/technic_coal_alloy_furnace_side.png
deleted file mode 100644
index 3db8daa..0000000
--- a/technic/technic/textures/technicx32/technic_coal_alloy_furnace_side.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_coal_alloy_furnace_top.png b/technic/technic/textures/technicx32/technic_coal_alloy_furnace_top.png
deleted file mode 100644
index c648fe8..0000000
--- a/technic/technic/textures/technicx32/technic_coal_alloy_furnace_top.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_coal_dust.png b/technic/technic/textures/technicx32/technic_coal_dust.png
deleted file mode 100644
index 0fe7db7..0000000
--- a/technic/technic/textures/technicx32/technic_coal_dust.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_constructor_back.png b/technic/technic/textures/technicx32/technic_constructor_back.png
deleted file mode 100644
index 6baf788..0000000
--- a/technic/technic/textures/technicx32/technic_constructor_back.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_constructor_front_off.png b/technic/technic/textures/technicx32/technic_constructor_front_off.png
deleted file mode 100644
index f878e55..0000000
--- a/technic/technic/textures/technicx32/technic_constructor_front_off.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_constructor_front_on.png b/technic/technic/textures/technicx32/technic_constructor_front_on.png
deleted file mode 100644
index 89189d6..0000000
--- a/technic/technic/textures/technicx32/technic_constructor_front_on.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_constructor_mk1_bottom_off.png b/technic/technic/textures/technicx32/technic_constructor_mk1_bottom_off.png
deleted file mode 100644
index 205dcc4..0000000
--- a/technic/technic/textures/technicx32/technic_constructor_mk1_bottom_off.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_constructor_mk1_bottom_on.png b/technic/technic/textures/technicx32/technic_constructor_mk1_bottom_on.png
deleted file mode 100644
index 9896c52..0000000
--- a/technic/technic/textures/technicx32/technic_constructor_mk1_bottom_on.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_constructor_mk1_side1_off.png b/technic/technic/textures/technicx32/technic_constructor_mk1_side1_off.png
deleted file mode 100644
index e8a01ff..0000000
--- a/technic/technic/textures/technicx32/technic_constructor_mk1_side1_off.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_constructor_mk1_side1_on.png b/technic/technic/textures/technicx32/technic_constructor_mk1_side1_on.png
deleted file mode 100644
index c897942..0000000
--- a/technic/technic/textures/technicx32/technic_constructor_mk1_side1_on.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_constructor_mk1_side2_off.png b/technic/technic/textures/technicx32/technic_constructor_mk1_side2_off.png
deleted file mode 100644
index 8da65f6..0000000
--- a/technic/technic/textures/technicx32/technic_constructor_mk1_side2_off.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_constructor_mk1_side2_on.png b/technic/technic/textures/technicx32/technic_constructor_mk1_side2_on.png
deleted file mode 100644
index da8ed34..0000000
--- a/technic/technic/textures/technicx32/technic_constructor_mk1_side2_on.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_constructor_mk1_top_off.png b/technic/technic/textures/technicx32/technic_constructor_mk1_top_off.png
deleted file mode 100644
index 7d8c7e0..0000000
--- a/technic/technic/textures/technicx32/technic_constructor_mk1_top_off.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_constructor_mk1_top_on.png b/technic/technic/textures/technicx32/technic_constructor_mk1_top_on.png
deleted file mode 100644
index 439caf5..0000000
--- a/technic/technic/textures/technicx32/technic_constructor_mk1_top_on.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_constructor_mk2_bottom_off.png b/technic/technic/textures/technicx32/technic_constructor_mk2_bottom_off.png
deleted file mode 100644
index 83c5b07..0000000
--- a/technic/technic/textures/technicx32/technic_constructor_mk2_bottom_off.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_constructor_mk2_bottom_on.png b/technic/technic/textures/technicx32/technic_constructor_mk2_bottom_on.png
deleted file mode 100644
index 9ad76f4..0000000
--- a/technic/technic/textures/technicx32/technic_constructor_mk2_bottom_on.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_constructor_mk2_side1_off.png b/technic/technic/textures/technicx32/technic_constructor_mk2_side1_off.png
deleted file mode 100644
index 584dfe3..0000000
--- a/technic/technic/textures/technicx32/technic_constructor_mk2_side1_off.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_constructor_mk2_side1_on.png b/technic/technic/textures/technicx32/technic_constructor_mk2_side1_on.png
deleted file mode 100644
index fe02042..0000000
--- a/technic/technic/textures/technicx32/technic_constructor_mk2_side1_on.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_constructor_mk2_side2_off.png b/technic/technic/textures/technicx32/technic_constructor_mk2_side2_off.png
deleted file mode 100644
index fd9ad74..0000000
--- a/technic/technic/textures/technicx32/technic_constructor_mk2_side2_off.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_constructor_mk2_side2_on.png b/technic/technic/textures/technicx32/technic_constructor_mk2_side2_on.png
deleted file mode 100644
index f51411a..0000000
--- a/technic/technic/textures/technicx32/technic_constructor_mk2_side2_on.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_constructor_mk2_top_off.png b/technic/technic/textures/technicx32/technic_constructor_mk2_top_off.png
deleted file mode 100644
index e3e3292..0000000
--- a/technic/technic/textures/technicx32/technic_constructor_mk2_top_off.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_constructor_mk2_top_on.png b/technic/technic/textures/technicx32/technic_constructor_mk2_top_on.png
deleted file mode 100644
index 83043d4..0000000
--- a/technic/technic/textures/technicx32/technic_constructor_mk2_top_on.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_constructor_mk3_bottom_off.png b/technic/technic/textures/technicx32/technic_constructor_mk3_bottom_off.png
deleted file mode 100644
index 5f46154..0000000
--- a/technic/technic/textures/technicx32/technic_constructor_mk3_bottom_off.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_constructor_mk3_bottom_on.png b/technic/technic/textures/technicx32/technic_constructor_mk3_bottom_on.png
deleted file mode 100644
index f76f29b..0000000
--- a/technic/technic/textures/technicx32/technic_constructor_mk3_bottom_on.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_constructor_mk3_side1_off.png b/technic/technic/textures/technicx32/technic_constructor_mk3_side1_off.png
deleted file mode 100644
index 0ea1fc0..0000000
--- a/technic/technic/textures/technicx32/technic_constructor_mk3_side1_off.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_constructor_mk3_side1_on.png b/technic/technic/textures/technicx32/technic_constructor_mk3_side1_on.png
deleted file mode 100644
index ba86332..0000000
--- a/technic/technic/textures/technicx32/technic_constructor_mk3_side1_on.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_constructor_mk3_side2_off.png b/technic/technic/textures/technicx32/technic_constructor_mk3_side2_off.png
deleted file mode 100644
index 8e8dce4..0000000
--- a/technic/technic/textures/technicx32/technic_constructor_mk3_side2_off.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_constructor_mk3_side2_on.png b/technic/technic/textures/technicx32/technic_constructor_mk3_side2_on.png
deleted file mode 100644
index 12dff69..0000000
--- a/technic/technic/textures/technicx32/technic_constructor_mk3_side2_on.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_constructor_mk3_top_off.png b/technic/technic/textures/technicx32/technic_constructor_mk3_top_off.png
deleted file mode 100644
index 705f255..0000000
--- a/technic/technic/textures/technicx32/technic_constructor_mk3_top_off.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_constructor_mk3_top_on.png b/technic/technic/textures/technicx32/technic_constructor_mk3_top_on.png
deleted file mode 100644
index cef077e..0000000
--- a/technic/technic/textures/technicx32/technic_constructor_mk3_top_on.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_control_logic_unit.png b/technic/technic/textures/technicx32/technic_control_logic_unit.png
deleted file mode 100644
index 6ed00eb..0000000
--- a/technic/technic/textures/technicx32/technic_control_logic_unit.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_copper_coil.png b/technic/technic/textures/technicx32/technic_copper_coil.png
deleted file mode 100644
index db6db1a..0000000
--- a/technic/technic/textures/technicx32/technic_copper_coil.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_copper_dust.png b/technic/technic/textures/technicx32/technic_copper_dust.png
deleted file mode 100644
index 68678ed..0000000
--- a/technic/technic/textures/technicx32/technic_copper_dust.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_deployer_back.png b/technic/technic/textures/technicx32/technic_deployer_back.png
deleted file mode 100644
index 0bc8df9..0000000
--- a/technic/technic/textures/technicx32/technic_deployer_back.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_deployer_bottom.png b/technic/technic/textures/technicx32/technic_deployer_bottom.png
deleted file mode 100644
index ff1a2c6..0000000
--- a/technic/technic/textures/technicx32/technic_deployer_bottom.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_deployer_front_off.png b/technic/technic/textures/technicx32/technic_deployer_front_off.png
deleted file mode 100644
index d0f6f55..0000000
--- a/technic/technic/textures/technicx32/technic_deployer_front_off.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_deployer_front_on.png b/technic/technic/textures/technicx32/technic_deployer_front_on.png
deleted file mode 100644
index 368ce32..0000000
--- a/technic/technic/textures/technicx32/technic_deployer_front_on.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_deployer_side.png b/technic/technic/textures/technicx32/technic_deployer_side.png
deleted file mode 100644
index aefd7c8..0000000
--- a/technic/technic/textures/technicx32/technic_deployer_side.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_deployer_side1.png b/technic/technic/textures/technicx32/technic_deployer_side1.png
deleted file mode 100644
index 8cb8634..0000000
--- a/technic/technic/textures/technicx32/technic_deployer_side1.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_deployer_side2.png b/technic/technic/textures/technicx32/technic_deployer_side2.png
deleted file mode 100644
index c2855d0..0000000
--- a/technic/technic/textures/technicx32/technic_deployer_side2.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_deployer_top.png b/technic/technic/textures/technicx32/technic_deployer_top.png
deleted file mode 100644
index 941d333..0000000
--- a/technic/technic/textures/technicx32/technic_deployer_top.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_diamond_block_blue.png b/technic/technic/textures/technicx32/technic_diamond_block_blue.png
deleted file mode 100644
index d89bd6e..0000000
--- a/technic/technic/textures/technicx32/technic_diamond_block_blue.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_diamond_block_green.png b/technic/technic/textures/technicx32/technic_diamond_block_green.png
deleted file mode 100644
index 996b254..0000000
--- a/technic/technic/textures/technicx32/technic_diamond_block_green.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_diamond_block_red.png b/technic/technic/textures/technicx32/technic_diamond_block_red.png
deleted file mode 100644
index 52fd893..0000000
--- a/technic/technic/textures/technicx32/technic_diamond_block_red.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_diamond_drill_head.png b/technic/technic/textures/technicx32/technic_diamond_drill_head.png
deleted file mode 100644
index e3d31e8..0000000
--- a/technic/technic/textures/technicx32/technic_diamond_drill_head.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_doped_silicon_wafer.png b/technic/technic/textures/technicx32/technic_doped_silicon_wafer.png
deleted file mode 100644
index 6ff06a6..0000000
--- a/technic/technic/textures/technicx32/technic_doped_silicon_wafer.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_electric_furnace_bottom.png b/technic/technic/textures/technicx32/technic_electric_furnace_bottom.png
deleted file mode 100644
index d16ac47..0000000
--- a/technic/technic/textures/technicx32/technic_electric_furnace_bottom.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_electric_furnace_front.png b/technic/technic/textures/technicx32/technic_electric_furnace_front.png
deleted file mode 100644
index dfee663..0000000
--- a/technic/technic/textures/technicx32/technic_electric_furnace_front.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_electric_furnace_front_active.png b/technic/technic/textures/technicx32/technic_electric_furnace_front_active.png
deleted file mode 100644
index 038eec4..0000000
--- a/technic/technic/textures/technicx32/technic_electric_furnace_front_active.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_electric_furnace_side.png b/technic/technic/textures/technicx32/technic_electric_furnace_side.png
deleted file mode 100644
index cf345e7..0000000
--- a/technic/technic/textures/technicx32/technic_electric_furnace_side.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_electric_furnace_top.png b/technic/technic/textures/technicx32/technic_electric_furnace_top.png
deleted file mode 100644
index d3309ec..0000000
--- a/technic/technic/textures/technicx32/technic_electric_furnace_top.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_fine_copper_wire.png b/technic/technic/textures/technicx32/technic_fine_copper_wire.png
deleted file mode 100644
index 36e2ed6..0000000
--- a/technic/technic/textures/technicx32/technic_fine_copper_wire.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_fine_gold_wire.png b/technic/technic/textures/technicx32/technic_fine_gold_wire.png
deleted file mode 100644
index be2a38a..0000000
--- a/technic/technic/textures/technicx32/technic_fine_gold_wire.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_fine_silver_wire.png b/technic/technic/textures/technicx32/technic_fine_silver_wire.png
deleted file mode 100644
index d43cb6a..0000000
--- a/technic/technic/textures/technicx32/technic_fine_silver_wire.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_flashlight.png b/technic/technic/textures/technicx32/technic_flashlight.png
deleted file mode 100644
index 01afdbb..0000000
--- a/technic/technic/textures/technicx32/technic_flashlight.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_generator_front.png b/technic/technic/textures/technicx32/technic_generator_front.png
deleted file mode 100644
index 2d64844..0000000
--- a/technic/technic/textures/technicx32/technic_generator_front.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_generator_front_active.png b/technic/technic/textures/technicx32/technic_generator_front_active.png
deleted file mode 100644
index 4e57ca0..0000000
--- a/technic/technic/textures/technicx32/technic_generator_front_active.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_generator_side.png b/technic/technic/textures/technicx32/technic_generator_side.png
deleted file mode 100644
index 5cbcbef..0000000
--- a/technic/technic/textures/technicx32/technic_generator_side.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_generator_top.png b/technic/technic/textures/technicx32/technic_generator_top.png
deleted file mode 100644
index e2f3db3..0000000
--- a/technic/technic/textures/technicx32/technic_generator_top.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_geothermal_side.png b/technic/technic/textures/technicx32/technic_geothermal_side.png
deleted file mode 100644
index 90fb430..0000000
--- a/technic/technic/textures/technicx32/technic_geothermal_side.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_geothermal_top.png b/technic/technic/textures/technicx32/technic_geothermal_top.png
deleted file mode 100644
index 601ff15..0000000
--- a/technic/technic/textures/technicx32/technic_geothermal_top.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_geothermal_top_active.png b/technic/technic/textures/technicx32/technic_geothermal_top_active.png
deleted file mode 100644
index f02bec6..0000000
--- a/technic/technic/textures/technicx32/technic_geothermal_top_active.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_gold_dust.png b/technic/technic/textures/technicx32/technic_gold_dust.png
deleted file mode 100644
index e545bb6..0000000
--- a/technic/technic/textures/technicx32/technic_gold_dust.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_grinder_front.png b/technic/technic/textures/technicx32/technic_grinder_front.png
deleted file mode 100644
index a28dbc1..0000000
--- a/technic/technic/textures/technicx32/technic_grinder_front.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_grinder_side.png b/technic/technic/textures/technicx32/technic_grinder_side.png
deleted file mode 100644
index af562f2..0000000
--- a/technic/technic/textures/technicx32/technic_grinder_side.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_grinder_top.png b/technic/technic/textures/technicx32/technic_grinder_top.png
deleted file mode 100644
index b074e13..0000000
--- a/technic/technic/textures/technicx32/technic_grinder_top.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_hv_grinder_bottom.png b/technic/technic/textures/technicx32/technic_hv_grinder_bottom.png
deleted file mode 100644
index d854193..0000000
--- a/technic/technic/textures/technicx32/technic_hv_grinder_bottom.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_hv_grinder_front.png b/technic/technic/textures/technicx32/technic_hv_grinder_front.png
deleted file mode 100644
index f20cb22..0000000
--- a/technic/technic/textures/technicx32/technic_hv_grinder_front.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_hv_grinder_front_active.png b/technic/technic/textures/technicx32/technic_hv_grinder_front_active.png
deleted file mode 100644
index d1fa468..0000000
--- a/technic/technic/textures/technicx32/technic_hv_grinder_front_active.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_hv_grinder_side.png b/technic/technic/textures/technicx32/technic_hv_grinder_side.png
deleted file mode 100644
index 35cf031..0000000
--- a/technic/technic/textures/technicx32/technic_hv_grinder_side.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_hv_grinder_side_tube.png b/technic/technic/textures/technicx32/technic_hv_grinder_side_tube.png
deleted file mode 100644
index 5b5b450..0000000
--- a/technic/technic/textures/technicx32/technic_hv_grinder_side_tube.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_hv_grinder_top.png b/technic/technic/textures/technicx32/technic_hv_grinder_top.png
deleted file mode 100644
index 7869ea8..0000000
--- a/technic/technic/textures/technicx32/technic_hv_grinder_top.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_hv_nuclear_reactor_core.png b/technic/technic/textures/technicx32/technic_hv_nuclear_reactor_core.png
deleted file mode 100644
index 3d380da..0000000
--- a/technic/technic/textures/technicx32/technic_hv_nuclear_reactor_core.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_hv_solar_array_bottom.png b/technic/technic/textures/technicx32/technic_hv_solar_array_bottom.png
deleted file mode 100644
index 94c8222..0000000
--- a/technic/technic/textures/technicx32/technic_hv_solar_array_bottom.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_hv_solar_array_side.png b/technic/technic/textures/technicx32/technic_hv_solar_array_side.png
deleted file mode 100644
index d39d3d8..0000000
--- a/technic/technic/textures/technicx32/technic_hv_solar_array_side.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_hv_solar_array_top.png b/technic/technic/textures/technicx32/technic_hv_solar_array_top.png
deleted file mode 100644
index 3e1b9e0..0000000
--- a/technic/technic/textures/technicx32/technic_hv_solar_array_top.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_hv_transformer.png b/technic/technic/textures/technicx32/technic_hv_transformer.png
deleted file mode 100644
index 7794644..0000000
--- a/technic/technic/textures/technicx32/technic_hv_transformer.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_injector_bottom.png b/technic/technic/textures/technicx32/technic_injector_bottom.png
deleted file mode 100644
index 39916bd..0000000
--- a/technic/technic/textures/technicx32/technic_injector_bottom.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_injector_side.png b/technic/technic/textures/technicx32/technic_injector_side.png
deleted file mode 100644
index a5419a1..0000000
--- a/technic/technic/textures/technicx32/technic_injector_side.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_injector_top.png b/technic/technic/textures/technicx32/technic_injector_top.png
deleted file mode 100644
index 440649c..0000000
--- a/technic/technic/textures/technicx32/technic_injector_top.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_kalite_dust.png b/technic/technic/textures/technicx32/technic_kalite_dust.png
deleted file mode 100644
index 595edb5..0000000
--- a/technic/technic/textures/technicx32/technic_kalite_dust.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_laser_beam.png b/technic/technic/textures/technicx32/technic_laser_beam.png
deleted file mode 100644
index 4814a9b..0000000
--- a/technic/technic/textures/technicx32/technic_laser_beam.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_lava_can.png b/technic/technic/textures/technicx32/technic_lava_can.png
deleted file mode 100644
index 80d15a6..0000000
--- a/technic/technic/textures/technicx32/technic_lava_can.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_light.png b/technic/technic/textures/technicx32/technic_light.png
deleted file mode 100644
index 334cb07..0000000
--- a/technic/technic/textures/technicx32/technic_light.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_lv_grinder_bottom.png b/technic/technic/textures/technicx32/technic_lv_grinder_bottom.png
deleted file mode 100644
index 816b969..0000000
--- a/technic/technic/textures/technicx32/technic_lv_grinder_bottom.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_lv_grinder_front.png b/technic/technic/textures/technicx32/technic_lv_grinder_front.png
deleted file mode 100644
index 7451ca9..0000000
--- a/technic/technic/textures/technicx32/technic_lv_grinder_front.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_lv_grinder_front_active.png b/technic/technic/textures/technicx32/technic_lv_grinder_front_active.png
deleted file mode 100644
index 8e17e4d..0000000
--- a/technic/technic/textures/technicx32/technic_lv_grinder_front_active.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_lv_grinder_side.png b/technic/technic/textures/technicx32/technic_lv_grinder_side.png
deleted file mode 100644
index 908287b..0000000
--- a/technic/technic/textures/technicx32/technic_lv_grinder_side.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_lv_grinder_top.png b/technic/technic/textures/technicx32/technic_lv_grinder_top.png
deleted file mode 100644
index 8520baf..0000000
--- a/technic/technic/textures/technicx32/technic_lv_grinder_top.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_lv_solar_array_bottom.png b/technic/technic/textures/technicx32/technic_lv_solar_array_bottom.png
deleted file mode 100644
index 94c8222..0000000
--- a/technic/technic/textures/technicx32/technic_lv_solar_array_bottom.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_lv_solar_array_side.png b/technic/technic/textures/technicx32/technic_lv_solar_array_side.png
deleted file mode 100644
index d39d3d8..0000000
--- a/technic/technic/textures/technicx32/technic_lv_solar_array_side.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_lv_solar_array_top.png b/technic/technic/textures/technicx32/technic_lv_solar_array_top.png
deleted file mode 100644
index 3d8c7ab..0000000
--- a/technic/technic/textures/technicx32/technic_lv_solar_array_top.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_lv_transformer.png b/technic/technic/textures/technicx32/technic_lv_transformer.png
deleted file mode 100644
index 99ac927..0000000
--- a/technic/technic/textures/technicx32/technic_lv_transformer.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_machine_bottom.png b/technic/technic/textures/technicx32/technic_machine_bottom.png
deleted file mode 100644
index 943dae1..0000000
--- a/technic/technic/textures/technicx32/technic_machine_bottom.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_mining_drill.png b/technic/technic/textures/technicx32/technic_mining_drill.png
deleted file mode 100644
index 171888d..0000000
--- a/technic/technic/textures/technicx32/technic_mining_drill.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_mining_laser_mk1.png b/technic/technic/textures/technicx32/technic_mining_laser_mk1.png
deleted file mode 100644
index acde392..0000000
--- a/technic/technic/textures/technicx32/technic_mining_laser_mk1.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_mithril_dust.png b/technic/technic/textures/technicx32/technic_mithril_dust.png
deleted file mode 100644
index 988e449..0000000
--- a/technic/technic/textures/technicx32/technic_mithril_dust.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_motor.png b/technic/technic/textures/technicx32/technic_motor.png
deleted file mode 100644
index 77d4b91..0000000
--- a/technic/technic/textures/technicx32/technic_motor.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_music_player_bottom.png b/technic/technic/textures/technicx32/technic_music_player_bottom.png
deleted file mode 100644
index bd8fd55..0000000
--- a/technic/technic/textures/technicx32/technic_music_player_bottom.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_music_player_side.png b/technic/technic/textures/technicx32/technic_music_player_side.png
deleted file mode 100644
index 6c34fea..0000000
--- a/technic/technic/textures/technicx32/technic_music_player_side.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_music_player_top.png b/technic/technic/textures/technicx32/technic_music_player_top.png
deleted file mode 100644
index 0d34563..0000000
--- a/technic/technic/textures/technicx32/technic_music_player_top.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_mv_alloy_furnace_bottom.png b/technic/technic/textures/technicx32/technic_mv_alloy_furnace_bottom.png
deleted file mode 100644
index 3723bb1..0000000
--- a/technic/technic/textures/technicx32/technic_mv_alloy_furnace_bottom.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_mv_alloy_furnace_front.png b/technic/technic/textures/technicx32/technic_mv_alloy_furnace_front.png
deleted file mode 100644
index a5dac82..0000000
--- a/technic/technic/textures/technicx32/technic_mv_alloy_furnace_front.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_mv_alloy_furnace_front_active.png b/technic/technic/textures/technicx32/technic_mv_alloy_furnace_front_active.png
deleted file mode 100644
index f6e69a9..0000000
--- a/technic/technic/textures/technicx32/technic_mv_alloy_furnace_front_active.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_mv_alloy_furnace_side.png b/technic/technic/textures/technicx32/technic_mv_alloy_furnace_side.png
deleted file mode 100644
index 0430479..0000000
--- a/technic/technic/textures/technicx32/technic_mv_alloy_furnace_side.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_mv_alloy_furnace_side_tube.png b/technic/technic/textures/technicx32/technic_mv_alloy_furnace_side_tube.png
deleted file mode 100644
index 69f89e7..0000000
--- a/technic/technic/textures/technicx32/technic_mv_alloy_furnace_side_tube.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_mv_alloy_furnace_top.png b/technic/technic/textures/technicx32/technic_mv_alloy_furnace_top.png
deleted file mode 100644
index f44e3c0..0000000
--- a/technic/technic/textures/technicx32/technic_mv_alloy_furnace_top.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_mv_battery_box_bottom.png b/technic/technic/textures/technicx32/technic_mv_battery_box_bottom.png
deleted file mode 100644
index 2a9b292..0000000
--- a/technic/technic/textures/technicx32/technic_mv_battery_box_bottom.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_mv_battery_box_side0.png b/technic/technic/textures/technicx32/technic_mv_battery_box_side0.png
deleted file mode 100644
index 39d8986..0000000
--- a/technic/technic/textures/technicx32/technic_mv_battery_box_side0.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_mv_battery_box_top.png b/technic/technic/textures/technicx32/technic_mv_battery_box_top.png
deleted file mode 100644
index f7f1ea9..0000000
--- a/technic/technic/textures/technicx32/technic_mv_battery_box_top.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_mv_cable_wield.png b/technic/technic/textures/technicx32/technic_mv_cable_wield.png
deleted file mode 100644
index aca9fd4..0000000
--- a/technic/technic/textures/technicx32/technic_mv_cable_wield.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_mv_electric_furnace_bottom.png b/technic/technic/textures/technicx32/technic_mv_electric_furnace_bottom.png
deleted file mode 100644
index d16ac47..0000000
--- a/technic/technic/textures/technicx32/technic_mv_electric_furnace_bottom.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_mv_electric_furnace_front.png b/technic/technic/textures/technicx32/technic_mv_electric_furnace_front.png
deleted file mode 100644
index 4dfac63..0000000
--- a/technic/technic/textures/technicx32/technic_mv_electric_furnace_front.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_mv_electric_furnace_front_active.png b/technic/technic/textures/technicx32/technic_mv_electric_furnace_front_active.png
deleted file mode 100644
index e206cd2..0000000
--- a/technic/technic/textures/technicx32/technic_mv_electric_furnace_front_active.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_mv_electric_furnace_side.png b/technic/technic/textures/technicx32/technic_mv_electric_furnace_side.png
deleted file mode 100644
index 4aa27b7..0000000
--- a/technic/technic/textures/technicx32/technic_mv_electric_furnace_side.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_mv_electric_furnace_side_tube.png b/technic/technic/textures/technicx32/technic_mv_electric_furnace_side_tube.png
deleted file mode 100644
index bfeba18..0000000
--- a/technic/technic/textures/technicx32/technic_mv_electric_furnace_side_tube.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_mv_electric_furnace_top.png b/technic/technic/textures/technicx32/technic_mv_electric_furnace_top.png
deleted file mode 100644
index 635b6b7..0000000
--- a/technic/technic/textures/technicx32/technic_mv_electric_furnace_top.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_mv_grinder_bottom.png b/technic/technic/textures/technicx32/technic_mv_grinder_bottom.png
deleted file mode 100644
index f46cd72..0000000
--- a/technic/technic/textures/technicx32/technic_mv_grinder_bottom.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_mv_grinder_front.png b/technic/technic/textures/technicx32/technic_mv_grinder_front.png
deleted file mode 100644
index 6445dfe..0000000
--- a/technic/technic/textures/technicx32/technic_mv_grinder_front.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_mv_grinder_front_active.png b/technic/technic/textures/technicx32/technic_mv_grinder_front_active.png
deleted file mode 100644
index 428e1dc..0000000
--- a/technic/technic/textures/technicx32/technic_mv_grinder_front_active.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_mv_grinder_side.png b/technic/technic/textures/technicx32/technic_mv_grinder_side.png
deleted file mode 100644
index c014f08..0000000
--- a/technic/technic/textures/technicx32/technic_mv_grinder_side.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_mv_grinder_side_tube.png b/technic/technic/textures/technicx32/technic_mv_grinder_side_tube.png
deleted file mode 100644
index 69050e4..0000000
--- a/technic/technic/textures/technicx32/technic_mv_grinder_side_tube.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_mv_grinder_top.png b/technic/technic/textures/technicx32/technic_mv_grinder_top.png
deleted file mode 100644
index e0320ef..0000000
--- a/technic/technic/textures/technicx32/technic_mv_grinder_top.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_mv_solar_array_bottom.png b/technic/technic/textures/technicx32/technic_mv_solar_array_bottom.png
deleted file mode 100644
index 94c8222..0000000
--- a/technic/technic/textures/technicx32/technic_mv_solar_array_bottom.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_mv_solar_array_side.png b/technic/technic/textures/technicx32/technic_mv_solar_array_side.png
deleted file mode 100644
index d39d3d8..0000000
--- a/technic/technic/textures/technicx32/technic_mv_solar_array_side.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_mv_solar_array_top.png b/technic/technic/textures/technicx32/technic_mv_solar_array_top.png
deleted file mode 100644
index e4999d5..0000000
--- a/technic/technic/textures/technicx32/technic_mv_solar_array_top.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_mv_transformer.png b/technic/technic/textures/technicx32/technic_mv_transformer.png
deleted file mode 100644
index 7c4688e..0000000
--- a/technic/technic/textures/technicx32/technic_mv_transformer.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_nodebreaker_back.png b/technic/technic/textures/technicx32/technic_nodebreaker_back.png
deleted file mode 100644
index 43ba821..0000000
--- a/technic/technic/textures/technicx32/technic_nodebreaker_back.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_nodebreaker_bottom.png b/technic/technic/textures/technicx32/technic_nodebreaker_bottom.png
deleted file mode 100644
index 99ff685..0000000
--- a/technic/technic/textures/technicx32/technic_nodebreaker_bottom.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_nodebreaker_bottom_off.png b/technic/technic/textures/technicx32/technic_nodebreaker_bottom_off.png
deleted file mode 100644
index 47cd4e8..0000000
--- a/technic/technic/textures/technicx32/technic_nodebreaker_bottom_off.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_nodebreaker_bottom_on.png b/technic/technic/textures/technicx32/technic_nodebreaker_bottom_on.png
deleted file mode 100644
index 994f787..0000000
--- a/technic/technic/textures/technicx32/technic_nodebreaker_bottom_on.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_nodebreaker_front_off.png b/technic/technic/textures/technicx32/technic_nodebreaker_front_off.png
deleted file mode 100644
index 5ece916..0000000
--- a/technic/technic/textures/technicx32/technic_nodebreaker_front_off.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_nodebreaker_front_on.png b/technic/technic/textures/technicx32/technic_nodebreaker_front_on.png
deleted file mode 100644
index a53de2a..0000000
--- a/technic/technic/textures/technicx32/technic_nodebreaker_front_on.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_nodebreaker_side.png b/technic/technic/textures/technicx32/technic_nodebreaker_side.png
deleted file mode 100644
index c2b401b..0000000
--- a/technic/technic/textures/technicx32/technic_nodebreaker_side.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_nodebreaker_side1.png b/technic/technic/textures/technicx32/technic_nodebreaker_side1.png
deleted file mode 100644
index 07e74aa..0000000
--- a/technic/technic/textures/technicx32/technic_nodebreaker_side1.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_nodebreaker_side1_off.png b/technic/technic/textures/technicx32/technic_nodebreaker_side1_off.png
deleted file mode 100644
index b63f3bb..0000000
--- a/technic/technic/textures/technicx32/technic_nodebreaker_side1_off.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_nodebreaker_side1_on.png b/technic/technic/textures/technicx32/technic_nodebreaker_side1_on.png
deleted file mode 100644
index b455f06..0000000
--- a/technic/technic/textures/technicx32/technic_nodebreaker_side1_on.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_nodebreaker_side2.png b/technic/technic/textures/technicx32/technic_nodebreaker_side2.png
deleted file mode 100644
index 7f4a0bf..0000000
--- a/technic/technic/textures/technicx32/technic_nodebreaker_side2.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_nodebreaker_side2_off.png b/technic/technic/textures/technicx32/technic_nodebreaker_side2_off.png
deleted file mode 100644
index 7b60902..0000000
--- a/technic/technic/textures/technicx32/technic_nodebreaker_side2_off.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_nodebreaker_side2_on.png b/technic/technic/textures/technicx32/technic_nodebreaker_side2_on.png
deleted file mode 100644
index 12985f6..0000000
--- a/technic/technic/textures/technicx32/technic_nodebreaker_side2_on.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_nodebreaker_top.png b/technic/technic/textures/technicx32/technic_nodebreaker_top.png
deleted file mode 100644
index 0994c6d..0000000
--- a/technic/technic/textures/technicx32/technic_nodebreaker_top.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_nodebreaker_top_off.png b/technic/technic/textures/technicx32/technic_nodebreaker_top_off.png
deleted file mode 100644
index f08fc1b..0000000
--- a/technic/technic/textures/technicx32/technic_nodebreaker_top_off.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_nodebreaker_top_on.png b/technic/technic/textures/technicx32/technic_nodebreaker_top_on.png
deleted file mode 100644
index ec28210..0000000
--- a/technic/technic/textures/technicx32/technic_nodebreaker_top_on.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_power_meter.png b/technic/technic/textures/technicx32/technic_power_meter.png
deleted file mode 100644
index f1e5120..0000000
--- a/technic/technic/textures/technicx32/technic_power_meter.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_power_meter1.png b/technic/technic/textures/technicx32/technic_power_meter1.png
deleted file mode 100644
index 0542c7b..0000000
--- a/technic/technic/textures/technicx32/technic_power_meter1.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_power_meter2.png b/technic/technic/textures/technicx32/technic_power_meter2.png
deleted file mode 100644
index bf5703c..0000000
--- a/technic/technic/textures/technicx32/technic_power_meter2.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_power_meter3.png b/technic/technic/textures/technicx32/technic_power_meter3.png
deleted file mode 100644
index 4204815..0000000
--- a/technic/technic/textures/technicx32/technic_power_meter3.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_power_meter4.png b/technic/technic/textures/technicx32/technic_power_meter4.png
deleted file mode 100644
index 82a0148..0000000
--- a/technic/technic/textures/technicx32/technic_power_meter4.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_power_meter5.png b/technic/technic/textures/technicx32/technic_power_meter5.png
deleted file mode 100644
index af783ca..0000000
--- a/technic/technic/textures/technicx32/technic_power_meter5.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_power_meter6.png b/technic/technic/textures/technicx32/technic_power_meter6.png
deleted file mode 100644
index 44feff4..0000000
--- a/technic/technic/textures/technicx32/technic_power_meter6.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_power_meter7.png b/technic/technic/textures/technicx32/technic_power_meter7.png
deleted file mode 100644
index 554baa2..0000000
--- a/technic/technic/textures/technicx32/technic_power_meter7.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_power_meter8.png b/technic/technic/textures/technicx32/technic_power_meter8.png
deleted file mode 100644
index 8c4f4a8..0000000
--- a/technic/technic/textures/technicx32/technic_power_meter8.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_power_meter_bg.png b/technic/technic/textures/technicx32/technic_power_meter_bg.png
deleted file mode 100644
index 9667cda..0000000
--- a/technic/technic/textures/technicx32/technic_power_meter_bg.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_power_meter_fg.png b/technic/technic/textures/technicx32/technic_power_meter_fg.png
deleted file mode 100644
index 7f2dde8..0000000
--- a/technic/technic/textures/technicx32/technic_power_meter_fg.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_raw_latex.png b/technic/technic/textures/technicx32/technic_raw_latex.png
deleted file mode 100644
index 7fbbe64..0000000
--- a/technic/technic/textures/technicx32/technic_raw_latex.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_rubber.png b/technic/technic/textures/technicx32/technic_rubber.png
deleted file mode 100644
index 9ed4a9d..0000000
--- a/technic/technic/textures/technicx32/technic_rubber.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_rubber_sapling.png b/technic/technic/textures/technicx32/technic_rubber_sapling.png
deleted file mode 100644
index e5c9f5d..0000000
--- a/technic/technic/textures/technicx32/technic_rubber_sapling.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_rubber_tree_empty.png b/technic/technic/textures/technicx32/technic_rubber_tree_empty.png
deleted file mode 100644
index 1792951..0000000
--- a/technic/technic/textures/technicx32/technic_rubber_tree_empty.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_rubber_tree_full.png b/technic/technic/textures/technicx32/technic_rubber_tree_full.png
deleted file mode 100644
index 08067ef..0000000
--- a/technic/technic/textures/technicx32/technic_rubber_tree_full.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_screwdriver.png b/technic/technic/textures/technicx32/technic_screwdriver.png
deleted file mode 100644
index bd2da22..0000000
--- a/technic/technic/textures/technicx32/technic_screwdriver.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_silicon_wafer.png b/technic/technic/textures/technicx32/technic_silicon_wafer.png
deleted file mode 100644
index 78aef20..0000000
--- a/technic/technic/textures/technicx32/technic_silicon_wafer.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_silver_dust.png b/technic/technic/textures/technicx32/technic_silver_dust.png
deleted file mode 100644
index 9092c90..0000000
--- a/technic/technic/textures/technicx32/technic_silver_dust.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_solar_panel_bottom.png b/technic/technic/textures/technicx32/technic_solar_panel_bottom.png
deleted file mode 100644
index b0ad82f..0000000
--- a/technic/technic/textures/technicx32/technic_solar_panel_bottom.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_solar_panel_side.png b/technic/technic/textures/technicx32/technic_solar_panel_side.png
deleted file mode 100644
index b22447e..0000000
--- a/technic/technic/textures/technicx32/technic_solar_panel_side.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_solar_panel_top.png b/technic/technic/textures/technicx32/technic_solar_panel_top.png
deleted file mode 100644
index 492764b..0000000
--- a/technic/technic/textures/technicx32/technic_solar_panel_top.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_sonic_screwdriver.png b/technic/technic/textures/technicx32/technic_sonic_screwdriver.png
deleted file mode 100644
index fb61d96..0000000
--- a/technic/technic/textures/technicx32/technic_sonic_screwdriver.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_stainless_steel_dust.png b/technic/technic/textures/technicx32/technic_stainless_steel_dust.png
deleted file mode 100644
index 450e2bb..0000000
--- a/technic/technic/textures/technicx32/technic_stainless_steel_dust.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_talinite_dust.png b/technic/technic/textures/technicx32/technic_talinite_dust.png
deleted file mode 100644
index 39f9330..0000000
--- a/technic/technic/textures/technicx32/technic_talinite_dust.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_tin_dust.png b/technic/technic/textures/technicx32/technic_tin_dust.png
deleted file mode 100644
index 4e94e00..0000000
--- a/technic/technic/textures/technicx32/technic_tin_dust.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_tree_tap.png b/technic/technic/textures/technicx32/technic_tree_tap.png
deleted file mode 100644
index 542f30f..0000000
--- a/technic/technic/textures/technicx32/technic_tree_tap.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_uranium_dust.png b/technic/technic/textures/technicx32/technic_uranium_dust.png
deleted file mode 100644
index d8095c3..0000000
--- a/technic/technic/textures/technicx32/technic_uranium_dust.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_water_can.png b/technic/technic/textures/technicx32/technic_water_can.png
deleted file mode 100644
index 18e0225..0000000
--- a/technic/technic/textures/technicx32/technic_water_can.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_water_mill_side.png b/technic/technic/textures/technicx32/technic_water_mill_side.png
deleted file mode 100644
index f4bdb16..0000000
--- a/technic/technic/textures/technicx32/technic_water_mill_side.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_water_mill_top.png b/technic/technic/textures/technicx32/technic_water_mill_top.png
deleted file mode 100644
index 601ff15..0000000
--- a/technic/technic/textures/technicx32/technic_water_mill_top.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_water_mill_top_active.png b/technic/technic/textures/technicx32/technic_water_mill_top_active.png
deleted file mode 100644
index f02bec6..0000000
--- a/technic/technic/textures/technicx32/technic_water_mill_top_active.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_workshop_bottom.png b/technic/technic/textures/technicx32/technic_workshop_bottom.png
deleted file mode 100644
index bd8fd55..0000000
--- a/technic/technic/textures/technicx32/technic_workshop_bottom.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_workshop_side.png b/technic/technic/textures/technicx32/technic_workshop_side.png
deleted file mode 100644
index 9e3e7a7..0000000
--- a/technic/technic/textures/technicx32/technic_workshop_side.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_workshop_top.png b/technic/technic/textures/technicx32/technic_workshop_top.png
deleted file mode 100644
index feae141..0000000
--- a/technic/technic/textures/technicx32/technic_workshop_top.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_wrought_iron_dust.png b/technic/technic/textures/technicx32/technic_wrought_iron_dust.png
deleted file mode 100644
index d890e73..0000000
--- a/technic/technic/textures/technicx32/technic_wrought_iron_dust.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/textures/technicx32/technic_zinc_dust.png b/technic/technic/textures/technicx32/technic_zinc_dust.png
deleted file mode 100644
index 0d2f75a..0000000
--- a/technic/technic/textures/technicx32/technic_zinc_dust.png
+++ /dev/null
Binary files differ
diff --git a/technic/technic/tools/cans.lua b/technic/technic/tools/cans.lua
deleted file mode 100644
index f12ec93..0000000
--- a/technic/technic/tools/cans.lua
+++ /dev/null
@@ -1,114 +0,0 @@
-local S = technic.getter
-
-local function set_can_wear(itemstack, level, max_level)
- local temp
- if level == 0 then
- temp = 0
- else
- temp = 65536 - math.floor(level / max_level * 65535)
- if temp > 65535 then temp = 65535 end
- if temp < 1 then temp = 1 end
- end
- itemstack:set_wear(temp)
-end
-
-local function get_can_level(itemstack)
- if itemstack:get_metadata() == "" then
- return 0
- else
- return tonumber(itemstack:get_metadata())
- end
-end
-
-function technic.register_can(d)
- local data = {}
- for k, v in pairs(d) do data[k] = v end
- minetest.register_tool(data.can_name, {
- description = data.can_description,
- inventory_image = data.can_inventory_image,
- stack_max = 1,
- wear_represents = "content_level",
- liquids_pointable = true,
- on_use = function(itemstack, user, pointed_thing)
- if pointed_thing.type ~= "node" then return end
- local node = minetest.get_node(pointed_thing.under)
- if node.name ~= data.liquid_source_name then return end
- local charge = get_can_level(itemstack)
- if charge == data.can_capacity then return end
- if minetest.is_protected(pointed_thing.under, user:get_player_name()) then
- minetest.log("action", user:get_player_name().." tried to take "..node.name.." at protected position "..minetest.pos_to_string(pointed_thing.under).." with a "..data.can_name)
- return
- end
- minetest.remove_node(pointed_thing.under)
- charge = charge + 1
- itemstack:set_metadata(tostring(charge))
- set_can_wear(itemstack, charge, data.can_capacity)
- return itemstack
- end,
- on_place = function(itemstack, user, pointed_thing)
- if pointed_thing.type ~= "node" then return end
- local pos = pointed_thing.under
- local def = minetest.registered_nodes[minetest.get_node(pos).name] or {}
- if def.on_rightclick and user and not user:get_player_control().sneak then
- return def.on_rightclick(pos, minetest.get_node(pos), user, itemstack, pointed_thing)
- end
- if not def.buildable_to then
- pos = pointed_thing.above
- def = minetest.registered_nodes[minetest.get_node(pos).name] or {}
- if not def.buildable_to then return end
- end
- local charge = get_can_level(itemstack)
- if charge == 0 then return end
- if minetest.is_protected(pos, user:get_player_name()) then
- minetest.log("action", user:get_player_name().." tried to place "..data.liquid_source_name.." at protected position "..minetest.pos_to_string(pos).." with a "..data.can_name)
- return
- end
- minetest.set_node(pos, {name=data.liquid_source_name})
- charge = charge - 1
- itemstack:set_metadata(tostring(charge))
- set_can_wear(itemstack, charge, data.can_capacity)
- return itemstack
- end,
- on_refill = function(stack)
- stack:set_metadata(tostring(data.can_capacity))
- set_can_wear(stack, data.can_capacity, data.can_capacity)
- return stack
- end,
- })
-end
-
-technic.register_can({
- can_name = "technic:water_can",
- can_description = S("Water Can"),
- can_inventory_image = "technic_water_can.png",
- can_capacity = 16,
- liquid_source_name = "default:water_source",
- liquid_flowing_name = "default:water_flowing",
-})
-
-minetest.register_craft({
- output = 'technic:water_can 1',
- recipe = {
- {'technic:zinc_ingot', 'technic:rubber','technic:zinc_ingot'},
- {'technic:carbon_steel_ingot', '', 'technic:carbon_steel_ingot'},
- {'technic:zinc_ingot', 'technic:carbon_steel_ingot', 'technic:zinc_ingot'},
- }
-})
-
-technic.register_can({
- can_name = "technic:lava_can",
- can_description = S("Lava Can"),
- can_inventory_image = "technic_lava_can.png",
- can_capacity = 8,
- liquid_source_name = "default:lava_source",
- liquid_flowing_name = "default:lava_flowing",
-})
-
-minetest.register_craft({
- output = 'technic:lava_can 1',
- recipe = {
- {'technic:zinc_ingot', 'technic:stainless_steel_ingot','technic:zinc_ingot'},
- {'technic:stainless_steel_ingot', '', 'technic:stainless_steel_ingot'},
- {'technic:zinc_ingot', 'technic:stainless_steel_ingot', 'technic:zinc_ingot'},
- }
-})
diff --git a/technic/technic/tools/chainsaw.lua b/technic/technic/tools/chainsaw.lua
deleted file mode 100644
index bf4efff..0000000
--- a/technic/technic/tools/chainsaw.lua
+++ /dev/null
@@ -1,366 +0,0 @@
--- Configuration
-
-local chainsaw_max_charge = 30000 -- Maximum charge of the saw
--- Gives 2500 nodes on a single charge (about 50 complete normal trees)
-local chainsaw_charge_per_node = 12
--- Cut down tree leaves. Leaf decay may cause slowness on large trees
--- if this is disabled.
-local chainsaw_leaves = true
-
--- The default trees
-local timber_nodenames = {
- ["default:jungletree"] = true,
- ["default:papyrus"] = true,
- ["default:cactus"] = true,
- ["default:tree"] = true,
- ["default:apple"] = true,
- ["default:pinetree"] = true,
-}
-
-if chainsaw_leaves then
- timber_nodenames["default:leaves"] = true
- timber_nodenames["default:jungleleaves"] = true
- timber_nodenames["default:pine_needles"] = true
-end
-
--- technic_worldgen defines rubber trees if moretrees isn't installed
-if minetest.get_modpath("technic_worldgen") or
- minetest.get_modpath("moretrees") then
- timber_nodenames["moretrees:rubber_tree_trunk_empty"] = true
- timber_nodenames["moretrees:rubber_tree_trunk"] = true
- if chainsaw_leaves then
- timber_nodenames["moretrees:rubber_tree_leaves"] = true
- end
-end
-
--- Support moretrees if it is there
-if minetest.get_modpath("moretrees") then
- timber_nodenames["moretrees:acacia_trunk"] = true
- timber_nodenames["moretrees:apple_tree_trunk"] = true
- timber_nodenames["moretrees:beech_trunk"] = true
- timber_nodenames["moretrees:birch_trunk"] = true
- timber_nodenames["moretrees:fir_trunk"] = true
- timber_nodenames["moretrees:oak_trunk"] = true
- timber_nodenames["moretrees:palm_trunk"] = true
- timber_nodenames["moretrees:pine_trunk"] = true
- timber_nodenames["moretrees:sequoia_trunk"] = true
- timber_nodenames["moretrees:spruce_trunk"] = true
- timber_nodenames["moretrees:willow_trunk"] = true
- timber_nodenames["moretrees:jungletree_trunk"] = true
-
- if chainsaw_leaves then
- timber_nodenames["moretrees:acacia_leaves"] = true
- timber_nodenames["moretrees:apple_tree_leaves"] = true
- timber_nodenames["moretrees:oak_leaves"] = true
- timber_nodenames["moretrees:fir_leaves"] = true
- timber_nodenames["moretrees:fir_leaves_bright"] = true
- timber_nodenames["moretrees:sequoia_leaves"] = true
- timber_nodenames["moretrees:birch_leaves"] = true
- timber_nodenames["moretrees:birch_leaves"] = true
- timber_nodenames["moretrees:palm_leaves"] = true
- timber_nodenames["moretrees:spruce_leaves"] = true
- timber_nodenames["moretrees:spruce_leaves"] = true
- timber_nodenames["moretrees:pine_leaves"] = true
- timber_nodenames["moretrees:willow_leaves"] = true
- timber_nodenames["moretrees:jungletree_leaves_green"] = true
- timber_nodenames["moretrees:jungletree_leaves_yellow"] = true
- timber_nodenames["moretrees:jungletree_leaves_red"] = true
- timber_nodenames["moretrees:acorn"] = true
- timber_nodenames["moretrees:coconut"] = true
- timber_nodenames["moretrees:spruce_cone"] = true
- timber_nodenames["moretrees:pine_cone"] = true
- timber_nodenames["moretrees:fir_cone"] = true
- timber_nodenames["moretrees:apple_blossoms"] = true
- end
-end
-
--- Support growing_trees
-if minetest.get_modpath("growing_trees") then
- timber_nodenames["growing_trees:trunk"] = true
- timber_nodenames["growing_trees:medium_trunk"] = true
- timber_nodenames["growing_trees:big_trunk"] = true
- timber_nodenames["growing_trees:trunk_top"] = true
- timber_nodenames["growing_trees:trunk_sprout"] = true
- timber_nodenames["growing_trees:branch_sprout"] = true
- timber_nodenames["growing_trees:branch"] = true
- timber_nodenames["growing_trees:branch_xmzm"] = true
- timber_nodenames["growing_trees:branch_xpzm"] = true
- timber_nodenames["growing_trees:branch_xmzp"] = true
- timber_nodenames["growing_trees:branch_xpzp"] = true
- timber_nodenames["growing_trees:branch_zz"] = true
- timber_nodenames["growing_trees:branch_xx"] = true
-
- if chainsaw_leaves then
- timber_nodenames["growing_trees:leaves"] = true
- end
-end
-
--- Support growing_cactus
-if minetest.get_modpath("growing_cactus") then
- timber_nodenames["growing_cactus:sprout"] = true
- timber_nodenames["growing_cactus:branch_sprout_vertical"] = true
- timber_nodenames["growing_cactus:branch_sprout_vertical_fixed"] = true
- timber_nodenames["growing_cactus:branch_sprout_xp"] = true
- timber_nodenames["growing_cactus:branch_sprout_xm"] = true
- timber_nodenames["growing_cactus:branch_sprout_zp"] = true
- timber_nodenames["growing_cactus:branch_sprout_zm"] = true
- timber_nodenames["growing_cactus:trunk"] = true
- timber_nodenames["growing_cactus:branch_trunk"] = true
- timber_nodenames["growing_cactus:branch"] = true
- timber_nodenames["growing_cactus:branch_xp"] = true
- timber_nodenames["growing_cactus:branch_xm"] = true
- timber_nodenames["growing_cactus:branch_zp"] = true
- timber_nodenames["growing_cactus:branch_zm"] = true
- timber_nodenames["growing_cactus:branch_zz"] = true
- timber_nodenames["growing_cactus:branch_xx"] = true
-end
-
--- Support farming_plus
-if minetest.get_modpath("farming_plus") then
- if chainsaw_leaves then
- timber_nodenames["farming_plus:banana_leaves"] = true
- timber_nodenames["farming_plus:banana"] = true
- timber_nodenames["farming_plus:cocoa_leaves"] = true
- timber_nodenames["farming_plus:cocoa"] = true
- end
-end
-
--- Support nature
-if minetest.get_modpath("nature") then
- if chainsaw_leaves then
- timber_nodenames["nature:blossom"] = true
- end
-end
-
--- Support snow
-if minetest.get_modpath("snow") then
- if chainsaw_leaves then
- timber_nodenames["snow:needles"] = true
- timber_nodenames["snow:needles_decorated"] = true
- timber_nodenames["snow:star"] = true
- end
-end
-
--- Support vines (also generated by moretrees if available)
-if minetest.get_modpath("vines") then
- if chainsaw_leaves then
- timber_nodenames["vines:vines"] = true
- end
-end
-
-if minetest.get_modpath("trunks") then
- if chainsaw_leaves then
- timber_nodenames["trunks:moss"] = true
- timber_nodenames["trunks:moss_fungus"] = true
- timber_nodenames["trunks:treeroot"] = true
- end
-end
-
-local S = technic.getter
-
-technic.register_power_tool("technic:chainsaw", chainsaw_max_charge)
-
--- Table for saving what was sawed down
-local produced = {}
-
--- Save the items sawed down so that we can drop them in a nice single stack
-local function handle_drops(drops)
- for _, item in ipairs(drops) do
- local stack = ItemStack(item)
- local name = stack:get_name()
- local p = produced[name]
- if not p then
- produced[name] = stack
- else
- p:set_count(p:get_count() + stack:get_count())
- end
- end
-end
-
---- Iterator over positions to try to saw around a sawed node.
--- This returns positions in a 3x1x3 area around the position, plus the
--- position above it. This does not return the bottom position to prevent
--- the chainsaw from cutting down nodes below the cutting position.
--- @param pos Sawing position.
-local function iterSawTries(pos)
- -- Copy position to prevent mangling it
- local pos = vector.new(pos)
- local i = 0
-
- return function()
- i = i + 1
- -- Given a (top view) area like so (where 5 is the starting position):
- -- X -->
- -- Z 123
- -- | 456
- -- V 789
- -- This will return positions 1, 4, 7, 2, 8 (skip 5), 3, 6, 9,
- -- and the position above 5.
- if i == 1 then
- -- Move to starting position
- pos.x = pos.x - 1
- pos.z = pos.z - 1
- elseif i == 4 or i == 7 then
- -- Move to next X and back to start of Z when we reach
- -- the end of a Z line.
- pos.x = pos.x + 1
- pos.z = pos.z - 2
- elseif i == 5 then
- -- Skip the middle position (we've already run on it)
- -- and double-increment the counter.
- pos.z = pos.z + 2
- i = i + 1
- elseif i <= 9 then
- -- Go to next Z.
- pos.z = pos.z + 1
- elseif i == 10 then
- -- Move back to center and up.
- -- The Y+ position must be last so that we don't dig
- -- straight upward and not come down (since the Y-
- -- position isn't checked).
- pos.x = pos.x - 1
- pos.z = pos.z - 1
- pos.y = pos.y + 1
- else
- return nil
- end
- return pos
- end
-end
-
--- This function does all the hard work. Recursively we dig the node at hand
--- if it is in the table and then search the surroundings for more stuff to dig.
-local function recursive_dig(pos, remaining_charge)
- if remaining_charge < chainsaw_charge_per_node then
- return remaining_charge
- end
- local node = minetest.get_node(pos)
-
- if not timber_nodenames[node.name] then
- return remaining_charge
- end
-
- -- Wood found - cut it
- handle_drops(minetest.get_node_drops(node.name, ""))
- minetest.remove_node(pos)
- remaining_charge = remaining_charge - chainsaw_charge_per_node
-
- -- Check surroundings and run recursively if any charge left
- for npos in iterSawTries(pos) do
- if remaining_charge < chainsaw_charge_per_node then
- break
- end
- if timber_nodenames[minetest.get_node(npos).name] then
- remaining_charge = recursive_dig(npos, remaining_charge)
- end
- end
- return remaining_charge
-end
-
--- Function to randomize positions for new node drops
-local function get_drop_pos(pos)
- local drop_pos = {}
-
- for i = 0, 8 do
- -- Randomize position for a new drop
- drop_pos.x = pos.x + math.random(-3, 3)
- drop_pos.y = pos.y - 1
- drop_pos.z = pos.z + math.random(-3, 3)
-
- -- Move the randomized position upwards until
- -- the node is air or unloaded.
- for y = drop_pos.y, drop_pos.y + 5 do
- drop_pos.y = y
- local node = minetest.get_node_or_nil(drop_pos)
-
- if not node then
- -- If the node is not loaded yet simply drop
- -- the item at the original digging position.
- return pos
- elseif node.name == "air" then
- -- Add variation to the entity drop position,
- -- but don't let drops get too close to the edge
- drop_pos.x = drop_pos.x + (math.random() * 0.8) - 0.5
- drop_pos.z = drop_pos.z + (math.random() * 0.8) - 0.5
- return drop_pos
- end
- end
- end
-
- -- Return the original position if this takes too long
- return pos
-end
-
--- Chainsaw entry point
-local function chainsaw_dig(pos, current_charge)
- -- Start sawing things down
- local remaining_charge = recursive_dig(pos, current_charge)
- minetest.sound_play("chainsaw", {pos = pos, gain = 1.0,
- max_hear_distance = 10})
-
- -- Now drop items for the player
- for name, stack in pairs(produced) do
- -- Drop stacks of stack max or less
- local count, max = stack:get_count(), stack:get_stack_max()
- stack:set_count(max)
- while count > max do
- minetest.add_item(get_drop_pos(pos), stack)
- count = count - max
- end
- stack:set_count(count)
- minetest.add_item(get_drop_pos(pos), stack)
- end
-
- -- Clean up
- produced = {}
-
- return remaining_charge
-end
-
-
-minetest.register_tool("technic:chainsaw", {
- description = S("Chainsaw"),
- inventory_image = "technic_chainsaw.png",
- stack_max = 1,
- wear_represents = "technic_RE_charge",
- on_refill = technic.refill_RE_charge,
- on_use = function(itemstack, user, pointed_thing)
- if pointed_thing.type ~= "node" then
- return itemstack
- end
-
- local meta = minetest.deserialize(itemstack:get_metadata())
- if not meta or not meta.charge or
- meta.charge < chainsaw_charge_per_node then
- return
- end
-
- local name = user:get_player_name()
- if minetest.is_protected(pointed_thing.under, name) then
- minetest.record_protection_violation(pointed_thing.under, name)
- return
- end
-
- -- Send current charge to digging function so that the
- -- chainsaw will stop after digging a number of nodes
- meta.charge = chainsaw_dig(pointed_thing.under, meta.charge)
- if not technic.creative_mode then
- technic.set_RE_wear(itemstack, meta.charge, chainsaw_max_charge)
- itemstack:set_metadata(minetest.serialize(meta))
- end
- return itemstack
- end,
-})
-
-local mesecons_button = minetest.get_modpath("mesecons_button")
-local trigger = mesecons_button and "mesecons_button:button_off" or "default:mese_crystal_fragment"
-
-minetest.register_craft({
- output = "technic:chainsaw",
- recipe = {
- {"technic:stainless_steel_ingot", trigger, "technic:battery"},
- {"technic:fine_copper_wire", "technic:motor", "technic:battery"},
- {"", "", "technic:stainless_steel_ingot"},
- }
-})
-
diff --git a/technic/technic/tools/flashlight.lua b/technic/technic/tools/flashlight.lua
deleted file mode 100644
index 252dc8c..0000000
--- a/technic/technic/tools/flashlight.lua
+++ /dev/null
@@ -1,123 +0,0 @@
--- Original code comes from walkin_light mod by Echo
--- http://minetest.net/forum/viewtopic.php?id=2621
-
-local flashlight_max_charge = 30000
-
-local S = technic.getter
-
-technic.register_power_tool("technic:flashlight", flashlight_max_charge)
-
-minetest.register_alias("technic:light_off", "air")
-
-minetest.register_tool("technic:flashlight", {
- description = S("Flashlight"),
- inventory_image = "technic_flashlight.png",
- stack_max = 1,
- wear_represents = "technic_RE_charge",
- on_refill = technic.refill_RE_charge,
-})
-
-minetest.register_craft({
- output = "technic:flashlight",
- recipe = {
- {"technic:rubber", "default:glass", "technic:rubber"},
- {"technic:stainless_steel_ingot", "technic:battery", "technic:stainless_steel_ingot"},
- {"", "technic:battery", ""}
- }
-})
-
-
-local player_positions = {}
-local was_wielding = {}
-
-local function check_for_flashlight(player)
- if player == nil then
- return false
- end
- local inv = player:get_inventory()
- local hotbar = inv:get_list("main")
- for i = 1, 8 do
- if hotbar[i]:get_name() == "technic:flashlight" then
- local meta = minetest.deserialize(hotbar[i]:get_metadata())
- if meta and meta.charge and meta.charge >= 2 then
- if not technic.creative_mode then
- meta.charge = meta.charge - 2;
- technic.set_RE_wear(hotbar[i], meta.charge, flashlight_max_charge)
- hotbar[i]:set_metadata(minetest.serialize(meta))
- inv:set_stack("main", i, hotbar[i])
- end
- return true
- end
- end
- end
- return false
-end
-
-minetest.register_on_joinplayer(function(player)
- local player_name = player:get_player_name()
- local pos = player:getpos()
- local rounded_pos = vector.round(pos)
- rounded_pos.y = rounded_pos.y + 1
- player_positions[player_name] = rounded_pos
- was_wielding[player_name] = true
-end)
-
-
-minetest.register_on_leaveplayer(function(player)
- local player_name = player:get_player_name()
- local pos = player_positions[player_name]
- local nodename = minetest.get_node(pos).name
- if nodename == "technic:light" then
- minetest.remove_node(pos)
- end
- player_positions[player_name] = nil
-end)
-
-minetest.register_globalstep(function(dtime)
- for i, player in pairs(minetest.get_connected_players()) do
- local player_name = player:get_player_name()
- local flashlight_weared = check_for_flashlight(player)
- local pos = player:getpos()
- local rounded_pos = vector.round(pos)
- rounded_pos.y = rounded_pos.y + 1
- local old_pos = player_positions[player_name]
- local player_moved = old_pos and not vector.equals(old_pos, rounded_pos)
- if not old_pos then
- old_pos = rounded_pos
- player_moved = true
- end
-
- -- Remove light, flashlight weared out or was removed from hotbar
- if was_wielding[player_name] and not flashlight_weared then
- was_wielding[player_name] = false
- local node = minetest.get_node_or_nil(old_pos)
- if node and node.name == "technic:light" then
- minetest.remove_node(old_pos)
- end
- elseif (player_moved or not was_wielding[player_name]) and flashlight_weared then
- local node = minetest.get_node_or_nil(rounded_pos)
- if node and node.name == "air" then
- minetest.set_node(rounded_pos, {name="technic:light"})
- end
- local node = minetest.get_node_or_nil(old_pos)
- if node and node.name == "technic:light" then
- minetest.remove_node(old_pos)
- end
- player_positions[player_name] = rounded_pos
- was_wielding[player_name] = true
- end
- end
-end)
-
-minetest.register_node("technic:light", {
- drawtype = "glasslike",
- tiles = {"technic_light.png"},
- paramtype = "light",
- groups = {not_in_creative_inventory=1},
- drop = "",
- walkable = false,
- buildable_to = true,
- sunlight_propagates = true,
- light_source = LIGHT_MAX,
- pointable = false,
-})
diff --git a/technic/technic/tools/init.lua b/technic/technic/tools/init.lua
deleted file mode 100644
index 5e0aa02..0000000
--- a/technic/technic/tools/init.lua
+++ /dev/null
@@ -1,23 +0,0 @@
-local path = technic.modpath.."/tools"
-
-if technic.config:get_bool("enable_mining_drill") then
- dofile(path.."/mining_drill.lua")
-end
-if technic.config:get_bool("enable_mining_laser") then
- dofile(path.."/mining_lasers.lua")
-end
-if technic.config:get_bool("enable_flashlight") then
- dofile(path.."/flashlight.lua")
-end
-dofile(path.."/cans.lua")
-dofile(path.."/chainsaw.lua")
-dofile(path.."/tree_tap.lua")
-dofile(path.."/sonic_screwdriver.lua")
-dofile(path.."/prospector.lua")
-dofile(path.."/vacuum.lua")
-
-if minetest.get_modpath("screwdriver") then
- -- compatibility alias
- minetest.register_alias("technic:screwdriver", "screwdriver:screwdriver")
-end
-
diff --git a/technic/technic/tools/mining_drill.lua b/technic/technic/tools/mining_drill.lua
deleted file mode 100644
index 8a25abe..0000000
--- a/technic/technic/tools/mining_drill.lua
+++ /dev/null
@@ -1,419 +0,0 @@
-local max_charge = {50000, 200000, 650000}
-local power_usage_per_node = {200, 500, 800}
-
-local S = technic.getter
-
-minetest.register_craft({
- output = 'technic:mining_drill',
- recipe = {
- {'moreores:tin_ingot', 'technic:diamond_drill_head', 'moreores:tin_ingot'},
- {'technic:stainless_steel_ingot', 'technic:motor', 'technic:stainless_steel_ingot'},
- {'', 'technic:red_energy_crystal', 'default:copper_ingot'},
- }
-})
-minetest.register_craft({
- output = 'technic:mining_drill_mk2',
- recipe = {
- {'technic:diamond_drill_head', 'technic:diamond_drill_head', 'technic:diamond_drill_head'},
- {'technic:stainless_steel_ingot', 'technic:mining_drill', 'technic:stainless_steel_ingot'},
- {'', 'technic:green_energy_crystal', ''},
- }
-})
-minetest.register_craft({
- output = 'technic:mining_drill_mk3',
- recipe = {
- {'technic:diamond_drill_head', 'technic:diamond_drill_head', 'technic:diamond_drill_head'},
- {'technic:stainless_steel_ingot', 'technic:mining_drill_mk2', 'technic:stainless_steel_ingot'},
- {'', 'technic:blue_energy_crystal', ''},
- }
-})
-for i = 1, 4 do
- minetest.register_craft({
- output = 'technic:mining_drill_mk3',
- recipe = {
- {'technic:diamond_drill_head', 'technic:diamond_drill_head', 'technic:diamond_drill_head'},
- {'technic:stainless_steel_ingot', 'technic:mining_drill_mk2_'..i, 'technic:stainless_steel_ingot'},
- {'', 'technic:blue_energy_crystal', ''},
- }
- })
-end
-
-local mining_drill_mode_text = {
- {S("Single node.")},
- {S("3 nodes deep.")},
- {S("3 nodes wide.")},
- {S("3 nodes tall.")},
- {S("3x3 nodes.")},
-}
-
-local function drill_dig_it0 (pos,player)
- if minetest.is_protected(pos, player:get_player_name()) then
- minetest.record_protection_violation(pos, player:get_player_name())
- return
- end
- local node=minetest.get_node(pos)
- if node.name == "air" or node.name == "ignore" then return end
- if node.name == "default:lava_source" then return end
- if node.name == "default:lava_flowing" then return end
- if node.name == "default:water_source" then minetest.remove_node(pos) return end
- if node.name == "default:water_flowing" then minetest.remove_node(pos) return end
- minetest.node_dig(pos,node,player)
-end
-
-local function drill_dig_it1 (player)
- local dir=player:get_look_dir()
- if math.abs(dir.x)>math.abs(dir.z) then
- if dir.x>0 then return 0 end
- return 1
- end
- if dir.z>0 then return 2 end
- return 3
-end
-
-local function drill_dig_it2 (pos,player)
- drill_dig_it0 (pos,player)
- pos.z=pos.z+1
- drill_dig_it0 (pos,player)
- pos.z=pos.z-2
- drill_dig_it0 (pos,player)
- pos.z=pos.z+1
- pos.y=pos.y+1
- drill_dig_it0 (pos,player)
- pos.z=pos.z+1
- drill_dig_it0 (pos,player)
- pos.z=pos.z-2
- drill_dig_it0 (pos,player)
- pos.z=pos.z+1
- pos.y=pos.y-2
- drill_dig_it0 (pos,player)
- pos.z=pos.z+1
- drill_dig_it0 (pos,player)
- pos.z=pos.z-2
- drill_dig_it0 (pos,player)
-end
-
-local function drill_dig_it3 (pos,player)
- drill_dig_it0 (pos,player)
- pos.x=pos.x+1
- drill_dig_it0 (pos,player)
- pos.x=pos.x-2
- drill_dig_it0 (pos,player)
- pos.x=pos.x+1
- pos.y=pos.y+1
- drill_dig_it0 (pos,player)
- pos.x=pos.x+1
- drill_dig_it0 (pos,player)
- pos.x=pos.x-2
- drill_dig_it0 (pos,player)
- pos.x=pos.x+1
- pos.y=pos.y-2
- drill_dig_it0 (pos,player)
- pos.x=pos.x+1
- drill_dig_it0 (pos,player)
- pos.x=pos.x-2
- drill_dig_it0 (pos,player)
-end
-
-local function drill_dig_it4 (pos,player)
- drill_dig_it0 (pos,player)
- pos.x=pos.x+1
- drill_dig_it0 (pos,player)
- pos.x=pos.x-2
- drill_dig_it0 (pos,player)
- pos.x=pos.x+1
- pos.z=pos.z+1
- drill_dig_it0 (pos,player)
- pos.x=pos.x+1
- drill_dig_it0 (pos,player)
- pos.x=pos.x-2
- drill_dig_it0 (pos,player)
- pos.x=pos.x+1
- pos.z=pos.z-2
- drill_dig_it0 (pos,player)
- pos.x=pos.x+1
- drill_dig_it0 (pos,player)
- pos.x=pos.x-2
- drill_dig_it0 (pos,player)
-end
-
-local function cost_to_use(drill_type, mode)
- local mult
- if mode == 1 then
- mult = 1
- elseif mode <= 4 then
- mult = 3
- else
- mult = 9
- end
- return power_usage_per_node[drill_type] * mult
-end
-
-local function drill_dig_it(pos, player, mode)
- if mode == 1 then
- drill_dig_it0(pos, player)
- end
-
- if mode == 2 then -- 3 deep
- dir = drill_dig_it1(player)
- if dir == 0 then -- x+
- drill_dig_it0(pos, player)
- pos.x = pos.x + 1
- drill_dig_it0(pos, player)
- pos.x = pos.x + 1
- drill_dig_it0(pos, player)
- end
- if dir == 1 then -- x-
- drill_dig_it0(pos, player)
- pos.x=pos.x-1
- drill_dig_it0 (pos,player)
- pos.x=pos.x-1
- drill_dig_it0 (pos,player)
- end
- if dir==2 then -- z+
- drill_dig_it0 (pos,player)
- pos.z=pos.z+1
- drill_dig_it0 (pos,player)
- pos.z=pos.z+1
- drill_dig_it0 (pos,player)
- end
- if dir==3 then -- z-
- drill_dig_it0 (pos,player)
- pos.z=pos.z-1
- drill_dig_it0 (pos,player)
- pos.z=pos.z-1
- drill_dig_it0 (pos,player)
- end
- end
-
- if mode==3 then -- 3 wide
- dir=drill_dig_it1(player)
- if dir==0 or dir==1 then -- x
- drill_dig_it0 (pos,player)
- pos.z=pos.z+1
- drill_dig_it0 (pos,player)
- pos.z=pos.z-2
- drill_dig_it0 (pos,player)
- end
- if dir==2 or dir==3 then -- z
- drill_dig_it0 (pos,player)
- pos.x=pos.x+1
- drill_dig_it0 (pos,player)
- pos.x=pos.x-2
- drill_dig_it0 (pos,player)
- end
- end
-
- if mode==4 then -- 3 tall, selected in the middle
- drill_dig_it0 (pos,player)
- pos.y=pos.y-1
- drill_dig_it0 (pos,player)
- pos.y=pos.y-1
- drill_dig_it0 (pos,player)
- end
-
- if mode==5 then -- 3 x 3
- local dir=player:get_look_dir()
- if math.abs(dir.y)<0.5 then
- dir=drill_dig_it1(player)
- if dir==0 or dir==1 then -- x
- drill_dig_it2(pos,player)
- end
- if dir==2 or dir==3 then -- z
- drill_dig_it3(pos,player)
- end
- else
- drill_dig_it4(pos,player)
- end
- end
-
- minetest.sound_play("mining_drill", {pos = pos, gain = 1.0, max_hear_distance = 10,})
-end
-
-local function pos_is_pointable(pos)
- local node = minetest.get_node(pos)
- local nodedef = minetest.registered_nodes[node.name]
- return nodedef and nodedef.pointable
-end
-
-local function mining_drill_mk2_setmode(user,itemstack)
- local player_name=user:get_player_name()
- local item=itemstack:to_table()
- local meta=minetest.deserialize(item["metadata"])
- if meta==nil then
- meta={}
- mode=0
- end
- if meta["mode"]==nil then
- minetest.chat_send_player(player_name, S("Use while sneaking to change Mining Drill Mk%d modes."):format(2))
- meta["mode"]=0
- mode=0
- end
- mode=(meta["mode"])
- mode=mode+1
- if mode>=5 then mode=1 end
- minetest.chat_send_player(player_name, S("Mining Drill Mk%d Mode %d"):format(2, mode)..": "..mining_drill_mode_text[mode][1])
- item["name"]="technic:mining_drill_mk2_"..mode
- meta["mode"]=mode
- item["metadata"]=minetest.serialize(meta)
- itemstack:replace(item)
- return itemstack
-end
-
-local function mining_drill_mk3_setmode(user,itemstack)
- local player_name=user:get_player_name()
- local item=itemstack:to_table()
- local meta=minetest.deserialize(item["metadata"])
- if meta==nil then
- meta={}
- mode=0
- end
- if meta["mode"]==nil then
- minetest.chat_send_player(player_name, S("Use while sneaking to change Mining Drill Mk%d modes."):format(3))
- meta["mode"]=0
- mode=0
- end
- mode=(meta["mode"])
- mode=mode+1
- if mode>=6 then mode=1 end
- minetest.chat_send_player(player_name, S("Mining Drill Mk%d Mode %d"):format(3, mode)..": "..mining_drill_mode_text[mode][1])
- item["name"]="technic:mining_drill_mk3_"..mode
- meta["mode"]=mode
- item["metadata"]=minetest.serialize(meta)
- itemstack:replace(item)
- return itemstack
-end
-
-
-local function mining_drill_mk2_handler(itemstack, user, pointed_thing)
- local keys = user:get_player_control()
- local player_name = user:get_player_name()
- local meta = minetest.deserialize(itemstack:get_metadata())
- if not meta or not meta.mode or keys.sneak then
- return mining_drill_mk2_setmode(user, itemstack)
- end
- if pointed_thing.type ~= "node" or not pos_is_pointable(pointed_thing.under) or not meta.charge then
- return
- end
- local charge_to_take = cost_to_use(2, meta.mode)
- if meta.charge >= charge_to_take then
- local pos = minetest.get_pointed_thing_position(pointed_thing, above)
- drill_dig_it(pos, user, meta.mode)
- if not technic.creative_mode then
- meta.charge = meta.charge - charge_to_take
- itemstack:set_metadata(minetest.serialize(meta))
- technic.set_RE_wear(itemstack, meta.charge, max_charge[2])
- end
- end
- return itemstack
-end
-
-local function mining_drill_mk3_handler(itemstack, user, pointed_thing)
- local keys = user:get_player_control()
- local player_name = user:get_player_name()
- local meta = minetest.deserialize(itemstack:get_metadata())
- if not meta or not meta.mode or keys.sneak then
- return mining_drill_mk3_setmode(user, itemstack)
- end
- if pointed_thing.type ~= "node" or not pos_is_pointable(pointed_thing.under) or not meta.charge then
- return
- end
- local charge_to_take = cost_to_use(3, meta.mode)
- if meta.charge >= charge_to_take then
- local pos = minetest.get_pointed_thing_position(pointed_thing, above)
- drill_dig_it(pos, user, meta.mode)
- if not technic.creative_mode then
- meta.charge = meta.charge - charge_to_take
- itemstack:set_metadata(minetest.serialize(meta))
- technic.set_RE_wear(itemstack, meta.charge, max_charge[3])
- end
- end
- return itemstack
-end
-
-technic.register_power_tool("technic:mining_drill", max_charge[1])
-
-minetest.register_tool("technic:mining_drill", {
- description = S("Mining Drill Mk%d"):format(1),
- inventory_image = "technic_mining_drill.png",
- stack_max = 1,
- wear_represents = "technic_RE_charge",
- on_refill = technic.refill_RE_charge,
- on_use = function(itemstack, user, pointed_thing)
- if pointed_thing.type ~= "node" or not pos_is_pointable(pointed_thing.under) then
- return itemstack
- end
- local meta = minetest.deserialize(itemstack:get_metadata())
- if not meta or not meta.charge then
- return
- end
- local charge_to_take = cost_to_use(1, 1)
- if meta.charge >= charge_to_take then
- local pos = minetest.get_pointed_thing_position(pointed_thing, above)
- drill_dig_it(pos, user, 1)
- if not technic.creative_mode then
- meta.charge = meta.charge - charge_to_take
- itemstack:set_metadata(minetest.serialize(meta))
- technic.set_RE_wear(itemstack, meta.charge, max_charge[1])
- end
- end
- return itemstack
- end,
-})
-
-minetest.register_tool("technic:mining_drill_mk2", {
- description = S("Mining Drill Mk%d"):format(2),
- inventory_image = "technic_mining_drill_mk2.png",
- wear_represents = "technic_RE_charge",
- on_refill = technic.refill_RE_charge,
- on_use = function(itemstack, user, pointed_thing)
- mining_drill_mk2_handler(itemstack, user, pointed_thing)
- return itemstack
- end,
-})
-
-technic.register_power_tool("technic:mining_drill_mk2", max_charge[2])
-
-for i = 1, 4 do
- technic.register_power_tool("technic:mining_drill_mk2_"..i, max_charge[2])
- minetest.register_tool("technic:mining_drill_mk2_"..i, {
- description = S("Mining Drill Mk%d Mode %d"):format(2, i),
- inventory_image = "technic_mining_drill_mk2.png^technic_tool_mode"..i..".png",
- wield_image = "technic_mining_drill_mk2.png",
- wear_represents = "technic_RE_charge",
- on_refill = technic.refill_RE_charge,
- groups = {not_in_creative_inventory=1},
- on_use = function(itemstack, user, pointed_thing)
- mining_drill_mk2_handler(itemstack, user, pointed_thing)
- return itemstack
- end,
- })
-end
-
-minetest.register_tool("technic:mining_drill_mk3", {
- description = S("Mining Drill Mk%d"):format(3),
- inventory_image = "technic_mining_drill_mk3.png",
- wear_represents = "technic_RE_charge",
- on_refill = technic.refill_RE_charge,
- on_use = function(itemstack, user, pointed_thing)
- mining_drill_mk3_handler(itemstack,user,pointed_thing)
- return itemstack
- end,
-})
-
-technic.register_power_tool("technic:mining_drill_mk3", max_charge[3])
-
-for i=1,5,1 do
- technic.register_power_tool("technic:mining_drill_mk3_"..i, max_charge[3])
- minetest.register_tool("technic:mining_drill_mk3_"..i, {
- description = S("Mining Drill Mk%d Mode %d"):format(3, i),
- inventory_image = "technic_mining_drill_mk3.png^technic_tool_mode"..i..".png",
- wield_image = "technic_mining_drill_mk3.png",
- wear_represents = "technic_RE_charge",
- on_refill = technic.refill_RE_charge,
- groups = {not_in_creative_inventory=1},
- on_use = function(itemstack, user, pointed_thing)
- mining_drill_mk3_handler(itemstack,user,pointed_thing)
- return itemstack
- end,
- })
-end
diff --git a/technic/technic/tools/mining_lasers.lua b/technic/technic/tools/mining_lasers.lua
deleted file mode 100644
index 4c83ae9..0000000
--- a/technic/technic/tools/mining_lasers.lua
+++ /dev/null
@@ -1,178 +0,0 @@
-local mining_lasers_list = {
--- {<num>, <range of the laser shots>, <max_charge>, <charge_per_shot>},
- {"1", 7, 50000, 1000},
- {"2", 14, 200000, 2000},
- {"3", 21, 650000, 3000},
-}
-
-local S = technic.getter
-
-minetest.register_craft({
- output = 'technic:laser_mk1',
- recipe = {
- {'default:diamond', 'technic:brass_ingot', 'default:obsidian_glass'},
- {'', 'technic:brass_ingot', 'technic:red_energy_crystal'},
- {'', '', 'default:copper_ingot'},
- }
-})
-minetest.register_craft({
- output = 'technic:laser_mk2',
- recipe = {
- {'default:diamond', 'technic:carbon_steel_ingot', 'technic:laser_mk1'},
- {'', 'technic:carbon_steel_ingot', 'technic:green_energy_crystal'},
- {'', '', 'default:copper_ingot'},
- }
-})
-minetest.register_craft({
- output = 'technic:laser_mk3',
- recipe = {
- {'default:diamond', 'technic:carbon_steel_ingot', 'technic:laser_mk2'},
- {'', 'technic:carbon_steel_ingot', 'technic:blue_energy_crystal'},
- {'', '', 'default:copper_ingot'},
- }
-})
-
--- Based on code by Uberi: https://gist.github.com/Uberi/3125280
-local function rayIter(pos, dir, range)
- local p = vector.round(pos)
- local x_step, y_step, z_step = 0, 0, 0
- local x_component, y_component, z_component = 0, 0, 0
- local x_intersect, y_intersect, z_intersect = 0, 0, 0
-
- if dir.x == 0 then
- x_intersect = math.huge
- elseif dir.x > 0 then
- x_step = 1
- x_component = 1 / dir.x
- x_intersect = x_component
- else
- x_step = -1
- x_component = 1 / -dir.x
- end
- if dir.y == 0 then
- y_intersect = math.huge
- elseif dir.y > 0 then
- y_step = 1
- y_component = 1 / dir.y
- y_intersect = y_component
- else
- y_step = -1
- y_component = 1 / -dir.y
- end
- if dir.z == 0 then
- z_intersect = math.huge
- elseif dir.z > 0 then
- z_step = 1
- z_component = 1 / dir.z
- z_intersect = z_component
- else
- z_step = -1
- z_component = 1 / -dir.z
- end
-
- return function()
- if x_intersect < y_intersect then
- if x_intersect < z_intersect then
- p.x = p.x + x_step
- x_intersect = x_intersect + x_component
- else
- p.z = p.z + z_step
- z_intersect = z_intersect + z_component
- end
- elseif y_intersect < z_intersect then
- p.y = p.y + y_step
- y_intersect = y_intersect + y_component
- else
- p.z = p.z + z_step
- z_intersect = z_intersect + z_component
- end
- if vector.distance(pos, p) > range then
- return nil
- end
- return p
- end
-end
-
-local function laser_node(pos, node, player)
- local def = minetest.registered_nodes[node.name]
- if def and def.liquidtype ~= "none" then
- minetest.remove_node(pos)
- minetest.add_particle({
- pos = pos,
- vel = {x=0, y=2, z=0},
- acc = {x=0, y=-1, z=0},
- expirationtime = 1.5,
- size = 6 + math.random() * 2,
- texture = "smoke_puff.png^[transform" .. math.random(0, 7),
- })
- return
- end
- minetest.node_dig(pos, node, player)
-end
-
-local no_destroy = {
- ["air"] = true,
- ["default:lava_source"] = true,
- ["default:lava_flowing"] = true,
-}
-local function laser_shoot(player, range, particle_texture, sound)
- local player_pos = player:getpos()
- local player_name = player:get_player_name()
- local dir = player:get_look_dir()
-
- local start_pos = vector.new(player_pos)
- -- Adjust to head height
- start_pos.y = start_pos.y + 1.9
- minetest.add_particle({
- pos = startpos,
- vel = dir,
- acc = vector.multiply(dir, 50),
- expirationtime = range / 11,
- size = 1,
- texture = particle_texture .. "^[transform" .. math.random(0, 7),
- })
- minetest.sound_play(sound, {pos = player_pos, max_hear_distance = range})
- for pos in rayIter(start_pos, dir, range) do
- if minetest.is_protected(pos, player_name) then
- minetest.record_protection_violation(pos, player_name)
- break
- end
- local node = minetest.get_node_or_nil(pos)
- if not node then
- break
- end
- if not no_destroy[node.name] then
- laser_node(pos, node, player)
- end
- end
-end
-
-
-for _, m in pairs(mining_lasers_list) do
- technic.register_power_tool("technic:laser_mk"..m[1], m[3])
- minetest.register_tool("technic:laser_mk"..m[1], {
- description = S("Mining Laser Mk%d"):format(m[1]),
- inventory_image = "technic_mining_laser_mk"..m[1]..".png",
- stack_max = 1,
- wear_represents = "technic_RE_charge",
- on_refill = technic.refill_RE_charge,
- on_use = function(itemstack, user)
- local meta = minetest.deserialize(itemstack:get_metadata())
- if not meta or not meta.charge then
- return
- end
-
- -- If there's enough charge left, fire the laser
- if meta.charge >= m[4] then
- laser_shoot(user, m[2], "technic_laser_beam_mk"..m[1]..".png", "technic_laser_mk"..m[1])
- if not technic.creative_mode then
- meta.charge = meta.charge - m[4]
- technic.set_RE_wear(itemstack, meta.charge, m[3])
- itemstack:set_metadata(minetest.serialize(meta))
- end
- end
- return itemstack
- end,
- })
-end
-
diff --git a/technic/technic/tools/prospector.lua b/technic/technic/tools/prospector.lua
deleted file mode 100644
index b28f1d8..0000000
--- a/technic/technic/tools/prospector.lua
+++ /dev/null
@@ -1,128 +0,0 @@
-local S = technic.getter
-
-technic.register_power_tool("technic:prospector", 300000)
-
-local function get_metadata(toolstack)
- local m = minetest.deserialize(toolstack:get_metadata())
- if not m then m = {} end
- if not m.charge then m.charge = 0 end
- if not m.target then m.target = "" end
- if not m.look_depth then m.look_depth = 7 end
- if not m.look_radius then m.look_radius = 1 end
- return m
-end
-
-minetest.register_tool("technic:prospector", {
- description = S("Prospector"),
- inventory_image = "technic_prospector.png",
- wear_represents = "technic_RE_charge",
- on_refill = technic.refill_RE_charge,
- on_use = function(toolstack, user, pointed_thing)
- if not user or not user:is_player() or user.is_fake_player then return end
- if pointed_thing.type ~= "node" then return end
- local toolmeta = get_metadata(toolstack)
- local look_diameter = toolmeta.look_radius * 2 + 1
- local charge_to_take = toolmeta.look_depth * (toolmeta.look_depth + 1) * look_diameter * look_diameter
- if toolmeta.charge < charge_to_take then return end
- if toolmeta.target == "" then
- minetest.chat_send_player(user:get_player_name(), "Right-click to set target block type")
- return
- end
- if not technic.creative_mode then
- toolmeta.charge = toolmeta.charge - charge_to_take
- toolstack:set_metadata(minetest.serialize(toolmeta))
- technic.set_RE_wear(toolstack, toolmeta.charge, technic.power_tools[toolstack:get_name()])
- end
- local start_pos = pointed_thing.under
- local forward = minetest.facedir_to_dir(minetest.dir_to_facedir(user:get_look_dir(), true))
- local right = forward.x ~= 0 and { x=0, y=1, z=0 } or (forward.y ~= 0 and { x=0, y=0, z=1 } or { x=1, y=0, z=0 })
- local up = forward.x ~= 0 and { x=0, y=0, z=1 } or (forward.y ~= 0 and { x=1, y=0, z=0 } or { x=0, y=1, z=0 })
- local base_pos = vector.add(start_pos, vector.multiply(vector.add(right, up), - toolmeta.look_radius))
- local found = false
- for f = 0, toolmeta.look_depth-1 do
- for r = 0, look_diameter-1 do
- for u = 0, look_diameter-1 do
- if minetest.get_node(vector.add(vector.add(vector.add(base_pos, vector.multiply(forward, f)), vector.multiply(right, r)), vector.multiply(up, u))).name == toolmeta.target then found = true end
- end
- end
- end
- if math.random() < 0.02 then found = not found end
- minetest.chat_send_player(user:get_player_name(), minetest.registered_nodes[toolmeta.target].description.." is "..(found and "present" or "absent").." in "..look_diameter.."x"..look_diameter.."x"..toolmeta.look_depth.." region")
- minetest.sound_play("technic_prospector_"..(found and "hit" or "miss"), { pos = vector.add(user:getpos(), { x = 0, y = 1, z = 0 }), gain = 1.0, max_hear_distance = 10 })
- return toolstack
- end,
- on_place = function(toolstack, user, pointed_thing)
- if not user or not user:is_player() or user.is_fake_player then return end
- local toolmeta = get_metadata(toolstack)
- local pointed
- if pointed_thing.type == "node" then
- local pname = minetest.get_node(pointed_thing.under).name
- local pdef = minetest.registered_nodes[pname]
- if pdef and (pdef.groups.not_in_creative_inventory or 0) == 0 and pname ~= toolmeta.target then
- pointed = pname
- end
- end
- local look_diameter = toolmeta.look_radius * 2 + 1
- minetest.show_formspec(user:get_player_name(), "technic:prospector_control",
- "size[7,8.5]"..
- "item_image[0,0;1,1;"..toolstack:get_name().."]"..
- "label[1,0;"..minetest.formspec_escape(toolstack:get_definition().description).."]"..
- (toolmeta.target ~= "" and
- "label[0,1.5;Current target:]"..
- "label[0,2;"..minetest.formspec_escape(minetest.registered_nodes[toolmeta.target].description).."]"..
- "item_image[0,2.5;1,1;"..toolmeta.target.."]" or
- "label[0,1.5;No target set]")..
- (pointed and
- "label[3.5,1.5;May set new target:]"..
- "label[3.5,2;"..minetest.formspec_escape(minetest.registered_nodes[pointed].description).."]"..
- "item_image[3.5,2.5;1,1;"..pointed.."]"..
- "button_exit[3.5,3.65;2,0.5;target_"..pointed..";Set target]" or
- "label[3.5,1.5;No new target available]")..
- "label[0,4.5;Region cross section:]"..
- "label[0,5;"..look_diameter.."x"..look_diameter.."]"..
- "label[3.5,4.5;Set region cross section:]"..
- "button_exit[3.5,5.15;1,0.5;look_radius_0;1x1]"..
- "button_exit[4.5,5.15;1,0.5;look_radius_1;3x3]"..
- "button_exit[5.5,5.15;1,0.5;look_radius_3;7x7]"..
- "label[0,6;Region depth:]"..
- "label[0,6.5;"..toolmeta.look_depth.."]"..
- "label[3.5,6;Set region depth:]"..
- "button_exit[3.5,6.65;1,0.5;look_depth_7;7]"..
- "button_exit[4.5,6.65;1,0.5;look_depth_14;14]"..
- "button_exit[5.5,6.65;1,0.5;look_depth_21;21]"..
- "label[0,7.5;Accuracy:]"..
- "label[0,8;98%]")
- return
- end,
-})
-
-minetest.register_on_player_receive_fields(function(user, formname, fields)
- if formname ~= "technic:prospector_control" then return false end
- if not user or not user:is_player() or user.is_fake_player then return end
- local toolstack = user:get_wielded_item()
- if toolstack:get_name() ~= "technic:prospector" then return true end
- local toolmeta = get_metadata(toolstack)
- for field, value in pairs(fields) do
- if field:sub(1, 7) == "target_" then
- toolmeta.target = field:sub(8)
- end
- if field:sub(1, 12) == "look_radius_" then
- toolmeta.look_radius = field:sub(13)
- end
- if field:sub(1, 11) == "look_depth_" then
- toolmeta.look_depth = field:sub(12)
- end
- end
- toolstack:set_metadata(minetest.serialize(toolmeta))
- user:set_wielded_item(toolstack)
- return true
-end)
-
-minetest.register_craft({
- output = "technic:prospector",
- recipe = {
- {"moreores:pick_silver", "moreores:mithril_block", "pipeworks:teleport_tube_1"},
- {"technic:brass_ingot", "technic:control_logic_unit", "technic:brass_ingot"},
- {"", "technic:blue_energy_crystal", ""},
- }
-})
diff --git a/technic/technic/tools/sonic_screwdriver.lua b/technic/technic/tools/sonic_screwdriver.lua
deleted file mode 100644
index 300d363..0000000
--- a/technic/technic/tools/sonic_screwdriver.lua
+++ /dev/null
@@ -1,98 +0,0 @@
-local sonic_screwdriver_max_charge = 15000
-
-local S = technic.getter
-
-technic.register_power_tool("technic:sonic_screwdriver", sonic_screwdriver_max_charge)
-
--- screwdriver handler code reused from minetest/minetest_game screwdriver @a9ac480
-local ROTATE_FACE = 1
-local ROTATE_AXIS = 2
-
-local function nextrange(x, max)
- x = x + 1
- if x > max then
- x = 0
- end
- return x
-end
-
--- Handles rotation
-local function screwdriver_handler(itemstack, user, pointed_thing, mode)
- if pointed_thing.type ~= "node" then
- return
- end
-
- local pos = pointed_thing.under
-
- if minetest.is_protected(pos, user:get_player_name()) then
- minetest.record_protection_violation(pos, user:get_player_name())
- return
- end
-
- local node = minetest.get_node(pos)
- local ndef = minetest.registered_nodes[node.name]
- if not ndef or not ndef.paramtype2 == "facedir" or
- (ndef.drawtype == "nodebox" and
- not ndef.node_box.type == "fixed") or
- node.param2 == nil then
- return
- end
-
- -- contrary to the default screwdriver, do not check for can_dig, to allow rotating machines with CLU's in them
- -- this is consistent with the previous sonic screwdriver
-
- local meta1 = minetest.deserialize(itemstack:get_metadata())
- if not meta1 or not meta1.charge or meta1.charge < 100 then
- return
- end
-
- minetest.sound_play("technic_sonic_screwdriver", {pos = pos, gain = 0.3, max_hear_distance = 10})
-
- -- Set param2
- local rotationPart = node.param2 % 32 -- get first 4 bits
- local preservePart = node.param2 - rotationPart
-
- local axisdir = math.floor(rotationPart / 4)
- local rotation = rotationPart - axisdir * 4
- if mode == ROTATE_FACE then
- rotationPart = axisdir * 4 + nextrange(rotation, 3)
- elseif mode == ROTATE_AXIS then
- rotationPart = nextrange(axisdir, 5) * 4
- end
-
- node.param2 = preservePart + rotationPart
- minetest.swap_node(pos, node)
-
- if not technic.creative_mode then
- meta1.charge = meta1.charge - 100
- itemstack:set_metadata(minetest.serialize(meta1))
- technic.set_RE_wear(itemstack, meta1.charge, sonic_screwdriver_max_charge)
- end
-
- return itemstack
-end
-
-minetest.register_tool("technic:sonic_screwdriver", {
- description = S("Sonic Screwdriver (left-click rotates face, right-click rotates axis)"),
- inventory_image = "technic_sonic_screwdriver.png",
- wear_represents = "technic_RE_charge",
- on_refill = technic.refill_RE_charge,
- on_use = function(itemstack, user, pointed_thing)
- screwdriver_handler(itemstack, user, pointed_thing, ROTATE_FACE)
- return itemstack
- end,
- on_place = function(itemstack, user, pointed_thing)
- screwdriver_handler(itemstack, user, pointed_thing, ROTATE_AXIS)
- return itemstack
- end,
-})
-
-minetest.register_craft({
- output = "technic:sonic_screwdriver",
- recipe = {
- {"", "default:diamond", ""},
- {"mesecons_materials:fiber", "technic:battery", "mesecons_materials:fiber"},
- {"mesecons_materials:fiber", "moreores:mithril_ingot", "mesecons_materials:fiber"}
- }
-})
-
diff --git a/technic/technic/tools/tree_tap.lua b/technic/technic/tools/tree_tap.lua
deleted file mode 100644
index e84fe33..0000000
--- a/technic/technic/tools/tree_tap.lua
+++ /dev/null
@@ -1,75 +0,0 @@
-
-local S = technic.getter
-local mesecons_materials = minetest.get_modpath("mesecons_materials")
-
-minetest.register_tool("technic:treetap", {
- description = S("Tree Tap"),
- inventory_image = "technic_tree_tap.png",
- on_use = function(itemstack, user, pointed_thing)
- if pointed_thing.type ~= "node" then
- return
- end
- local pos = pointed_thing.under
- if minetest.is_protected(pos, user:get_player_name()) then
- minetest.record_protection_violation(pos, user:get_player_name())
- return
- end
- local node = minetest.get_node(pos)
- local node_name = node.name
- if node_name ~= "moretrees:rubber_tree_trunk" then
- return
- end
- node.name = "moretrees:rubber_tree_trunk_empty"
- minetest.swap_node(pos, node)
- minetest.handle_node_drops(pointed_thing.above, {"technic:raw_latex"}, user)
- if not technic.creative_mode then
- local item_wear = tonumber(itemstack:get_wear())
- item_wear = item_wear + 819
- if item_wear > 65535 then
- itemstack:clear()
- return itemstack
- end
- itemstack:set_wear(item_wear)
- end
- return itemstack
- end,
-})
-
-minetest.register_craft({
- output = "technic:treetap",
- recipe = {
- {"pipeworks:tube_1", "group:wood", "default:stick"},
- {"", "default:stick", "default:stick"}
- },
-})
-
-minetest.register_craftitem("technic:raw_latex", {
- description = S("Raw Latex"),
- inventory_image = "technic_raw_latex.png",
-})
-
-if mesecons_materials then
- minetest.register_craft({
- type = "cooking",
- recipe = "technic:raw_latex",
- output = "mesecons_materials:glue",
- })
-end
-
-minetest.register_craftitem("technic:rubber", {
- description = S("Rubber Fiber"),
- inventory_image = "technic_rubber.png",
-})
-
-minetest.register_abm({
- nodenames = {"moretrees:rubber_tree_trunk_empty"},
- interval = 60,
- chance = 15,
- action = function(pos, node)
- if minetest.find_node_near(pos, (moretrees and moretrees.leafdecay_radius) or 5, {"moretrees:rubber_tree_leaves"}) then
- node.name = "moretrees:rubber_tree_trunk"
- minetest.swap_node(pos, node)
- end
- end
-})
-
diff --git a/technic/technic/tools/vacuum.lua b/technic/technic/tools/vacuum.lua
deleted file mode 100644
index f5fac9a..0000000
--- a/technic/technic/tools/vacuum.lua
+++ /dev/null
@@ -1,61 +0,0 @@
--- Configuration
-local vacuum_max_charge = 10000 -- 10000 - Maximum charge of the vacuum cleaner
-local vacuum_charge_per_object = 100 -- 100 - Capable of picking up 50 objects
-local vacuum_range = 8 -- 8 - Area in which to pick up objects
-
-local S = technic.getter
-
-technic.register_power_tool("technic:vacuum", vacuum_max_charge)
-
-minetest.register_tool("technic:vacuum", {
- description = S("Vacuum Cleaner"),
- inventory_image = "technic_vacuum.png",
- stack_max = 1,
- wear_represents = "technic_RE_charge",
- on_refill = technic.refill_RE_charge,
- on_use = function(itemstack, user, pointed_thing)
- local meta = minetest.deserialize(itemstack:get_metadata())
- if not meta or not meta.charge then
- return
- end
- if meta.charge > vacuum_charge_per_object then
- minetest.sound_play("vacuumcleaner", {
- to_player = user:get_player_name(),
- gain = 0.4,
- })
- end
- local pos = user:getpos()
- local inv = user:get_inventory()
- for _, object in ipairs(minetest.env:get_objects_inside_radius(pos, vacuum_range)) do
- local luaentity = object:get_luaentity()
- if not object:is_player() and luaentity and luaentity.name == "__builtin:item" and luaentity.itemstring ~= "" then
- if inv and inv:room_for_item("main", ItemStack(luaentity.itemstring)) then
- meta.charge = meta.charge - vacuum_charge_per_object
- if meta.charge < vacuum_charge_per_object then
- return
- end
- inv:add_item("main", ItemStack(luaentity.itemstring))
- minetest.sound_play("item_drop_pickup", {
- to_player = user:get_player_name(),
- gain = 0.4,
- })
- luaentity.itemstring = ""
- object:remove()
- end
- end
- end
-
- technic.set_RE_wear(itemstack, meta.charge, vacuum_max_charge)
- itemstack:set_metadata(minetest.serialize(meta))
- return itemstack
- end,
-})
-
-minetest.register_craft({
- output = 'technic:vacuum',
- recipe = {
- {'pipeworks:tube_1', 'pipeworks:filter', 'technic:battery'},
- {'pipeworks:tube_1', 'technic:motor', 'technic:battery'},
- {'technic:stainless_steel_ingot', '', ''},
- }
-})