From b7a62684b8e900e552ed378efd4da57258bf5fd2 Mon Sep 17 00:00:00 2001 From: DrMangoTea Date: Thu, 4 Jul 2024 20:47:50 +0200 Subject: [PATCH] 0.9.0 --- .../blockstates/accumulator.json | 7 + .../blockstates/aluminum_cable_hub.json | 7 + .../blockstates/aluminum_cogwheel.json | 17 + .../blockstates/aluminum_frame.json | 7 + .../blockstates/blue_caution_block.json | 19 + .../blockstates/brass_cable_hub.json | 7 + .../blockstates/brass_frame.json | 7 + .../blockstates/brass_truss.json | 17 + .../blockstates/brown_caution_block.json | 19 + .../blockstates/cable_connector.json | 56 + .../blockstates/cable_tube.json | 17 + .../createindustry/blockstates/capacitor.json | 7 + .../blockstates/cast_iron_bars.json | 100 ++ .../blockstates/cast_iron_frame.json | 7 + .../blockstates/cast_iron_ladder.json | 34 + .../blockstates/cast_iron_truss.json | 17 + .../blockstates/cinder_block.json | 7 + .../blockstates/cinderflour_block.json | 7 + .../createindustry/blockstates/converter.json | 7 + .../blockstates/copper_cable_hub.json | 7 + .../blockstates/copper_coil.json | 10 + .../blockstates/copper_frame.json | 7 + .../blockstates/copper_truss.json | 17 + .../blockstates/copycat_cable_base.json | 7 + .../blockstates/copycat_cable_block.json | 7 + .../blockstates/creative_generator.json | 7 + .../createindustry/blockstates/crude_oil.json | 7 + .../blockstates/cut_galena.json | 7 + .../blockstates/cut_galena_brick_slab.json | 13 + .../blockstates/cut_galena_brick_stairs.json | 209 ++++ .../blockstates/cut_galena_brick_wall.json | 90 ++ .../blockstates/cut_galena_bricks.json | 7 + .../blockstates/cut_galena_slab.json | 13 + .../blockstates/cut_galena_stairs.json | 209 ++++ .../blockstates/cut_galena_wall.json | 90 ++ .../blockstates/cyan_caution_block.json | 19 + .../blockstates/deepslate_lead_ore.json | 7 + .../blockstates/deepslate_lithium_ore.json | 7 + .../blockstates/deepslate_nickel_ore.json | 7 + .../blockstates/diagonal_cable_block.json | 88 ++ .../blockstates/electric_casing.json | 7 + .../blockstates/electric_motor.json | 26 + .../blockstates/energy_meter.json | 19 + .../createindustry/blockstates/firebox.json | 79 ++ .../createindustry/blockstates/galena.json | 18 + .../blockstates/galena_pillar.json | 16 + .../blockstates/galvanic_cell.json | 19 + .../createindustry/blockstates/generator.json | 30 + .../blockstates/gray_caution_block.json | 19 + .../blockstates/green_caution_block.json | 19 + .../blockstates/hardened_planks_slab.json | 13 + .../blockstates/heavy_cable_hub.json | 7 + ...eavy_casing_encased_aluminum_cogwheel.json | 56 + .../heavy_casing_encased_cogwheel.json | 56 + ...asing_encased_large_aluminum_cogwheel.json | 56 + .../heavy_casing_encased_large_cogwheel.json | 56 + ...y_casing_encased_large_steel_cogwheel.json | 56 + .../heavy_casing_encased_shaft.json | 20 + .../heavy_casing_encased_steel_cogwheel.json | 56 + .../blockstates/large_aluminum_cogwheel.json | 17 + .../blockstates/large_steel_cogwheel.json | 17 + .../blockstates/layered_galena.json | 7 + .../createindustry/blockstates/lead_bars.json | 100 ++ .../blockstates/lead_block.json | 7 + .../blockstates/lead_flywheel.json | 17 + .../blockstates/lead_frame.json | 7 + .../blockstates/lead_glass.json | 7 + .../blockstates/lead_ladder.json | 34 + .../createindustry/blockstates/lead_ore.json | 7 + .../blockstates/lead_truss.json | 17 + .../blockstates/light_blue_caution_block.json | 19 + .../blockstates/light_bulb.json | 836 +++++++++++++ .../blockstates/light_gray_caution_block.json | 19 + .../blockstates/lime_caution_block.json | 19 + .../blockstates/lithium_block.json | 7 + .../blockstates/lithium_ore.json | 7 + .../blockstates/lithium_torch.json | 48 + .../blockstates/low_grade_fuel_engine.json | 29 + .../blockstates/magenta_caution_block.json | 19 + .../createindustry/blockstates/neon_tube.json | 30 + .../blockstates/nickel_bars.json | 100 ++ .../blockstates/nickel_block.json | 7 + .../blockstates/nickel_flywheel.json | 17 + .../blockstates/nickel_frame.json | 7 + .../blockstates/nickel_ladder.json | 34 + .../blockstates/nickel_ore.json | 7 + .../blockstates/nickel_truss.json | 17 + .../blockstates/orange_caution_block.json | 19 + .../blockstates/pink_caution_block.json | 19 + .../createindustry/blockstates/polarizer.json | 19 + .../blockstates/polished_cut_galena.json | 7 + .../blockstates/polished_cut_galena_slab.json | 13 + .../polished_cut_galena_stairs.json | 209 ++++ .../blockstates/polished_cut_galena_wall.json | 90 ++ .../blockstates/purple_caution_block.json | 19 + .../createindustry/blockstates/resistor.json | 19 + .../blockstates/rgb_light_bulb.json | 836 +++++++++++++ .../createindustry/blockstates/rotor.json | 17 + .../blockstates/small_galena_brick_slab.json | 13 + .../small_galena_brick_stairs.json | 209 ++++ .../blockstates/small_galena_brick_wall.json | 90 ++ .../blockstates/small_galena_bricks.json | 7 + .../createindustry/blockstates/stator.json | 138 +++ .../blockstates/steel_cable_hub.json | 7 + .../blockstates/steel_casing_cable_hub.json | 7 + .../blockstates/steel_cogwheel.json | 17 + .../steel_encased_aluminum_cogwheel.json | 56 + .../blockstates/steel_encased_cogwheel.json | 56 + ...steel_encased_large_aluminum_cogwheel.json | 56 + .../steel_encased_large_cogwheel.json | 56 + .../steel_encased_large_steel_cogwheel.json | 56 + .../blockstates/steel_encased_shaft.json | 20 + .../steel_encased_steel_cogwheel.json | 56 + .../blockstates/steel_gearbox.json | 20 + .../blockstates/sulfuric_acid.json | 7 + .../blockstates/voltage_cube.json | 7 + .../createindustry/blockstates/voltmeter.json | 19 + .../blockstates/white_caution_block.json | 19 + .../blockstates/yellow_caution_block.json | 19 + .../blockstates/zinc_frame.json | 7 + .../blockstates/zinc_truss.json | 17 + .../assets/createindustry/lang/en_ud.json | 473 ++++++++ .../assets/createindustry/lang/en_us.json | 1064 +++++++++++++++++ .../models/block/aluminum_cable_hub.json | 6 + .../models/block/blue_caution_block.json | 7 + .../models/block/brass_cable_hub.json | 6 + .../models/block/brown_caution_block.json | 7 + .../models/block/cast_iron_cap.json | 8 + .../models/block/cast_iron_cap_alt.json | 8 + .../models/block/cast_iron_ladder.json | 8 + .../models/block/cast_iron_post.json | 8 + .../models/block/cast_iron_post_ends.json | 8 + .../models/block/cast_iron_side.json | 8 + .../models/block/cast_iron_side_alt.json | 8 + .../models/block/copper_cable_hub.json | 6 + .../models/block/creative_generator.json | 6 + .../models/block/crude_oil.json | 5 + .../models/block/cut_galena.json | 6 + .../models/block/cut_galena_brick_slab.json | 8 + .../block/cut_galena_brick_slab_top.json | 8 + .../models/block/cut_galena_brick_stairs.json | 8 + .../block/cut_galena_brick_stairs_inner.json | 8 + .../block/cut_galena_brick_stairs_outer.json | 8 + .../models/block/cut_galena_bricks.json | 6 + .../block/cut_galena_bricks_wall_post.json | 6 + .../block/cut_galena_bricks_wall_side.json | 6 + .../cut_galena_bricks_wall_side_tall.json | 6 + .../models/block/cut_galena_slab.json | 8 + .../models/block/cut_galena_slab_top.json | 8 + .../models/block/cut_galena_stairs.json | 8 + .../models/block/cut_galena_stairs_inner.json | 8 + .../models/block/cut_galena_stairs_outer.json | 8 + .../models/block/cut_galena_wall_post.json | 6 + .../models/block/cut_galena_wall_side.json | 6 + .../block/cut_galena_wall_side_tall.json | 6 + .../models/block/cyan_caution_block.json | 7 + .../models/block/deepslate_lead_ore.json | 6 + .../models/block/deepslate_lithium_ore.json | 6 + .../models/block/deepslate_nickel_ore.json | 6 + .../models/block/electric_casing.json | 6 + .../models/block/galena_natural_0.json | 6 + .../models/block/galena_natural_1.json | 6 + .../models/block/galena_natural_2.json | 6 + .../models/block/galena_natural_3.json | 6 + .../models/block/galena_pillar.json | 7 + .../block/galena_pillar_horizontal.json | 7 + .../models/block/gray_caution_block.json | 7 + .../models/block/green_caution_block.json | 7 + .../models/block/hardened_planks_bottom.json | 8 + .../models/block/hardened_planks_top.json | 8 + .../models/block/heavy_cable_hub.json | 6 + ...eavy_casing_encased_aluminum_cogwheel.json | 10 + ...sing_encased_aluminum_cogwheel_bottom.json | 10 + ..._casing_encased_aluminum_cogwheel_top.json | 10 + ..._encased_aluminum_cogwheel_top_bottom.json | 10 + .../block/heavy_casing_encased_cogwheel.json | 10 + .../heavy_casing_encased_cogwheel_bottom.json | 10 + .../heavy_casing_encased_cogwheel_top.json | 10 + ...vy_casing_encased_cogwheel_top_bottom.json | 10 + ...asing_encased_large_aluminum_cogwheel.json | 10 + ...ncased_large_aluminum_cogwheel_bottom.json | 10 + ...g_encased_large_aluminum_cogwheel_top.json | 10 + ...ed_large_aluminum_cogwheel_top_bottom.json | 10 + .../heavy_casing_encased_large_cogwheel.json | 10 + ..._casing_encased_large_cogwheel_bottom.json | 10 + ...avy_casing_encased_large_cogwheel_top.json | 10 + ...ing_encased_large_cogwheel_top_bottom.json | 10 + ...y_casing_encased_large_steel_cogwheel.json | 10 + ...g_encased_large_steel_cogwheel_bottom.json | 10 + ...sing_encased_large_steel_cogwheel_top.json | 10 + ...cased_large_steel_cogwheel_top_bottom.json | 10 + .../heavy_casing_encased_steel_cogwheel.json | 10 + ..._casing_encased_steel_cogwheel_bottom.json | 10 + ...avy_casing_encased_steel_cogwheel_top.json | 10 + ...ing_encased_steel_cogwheel_top_bottom.json | 10 + .../models/block/layered_galena.json | 7 + .../models/block/lead_block.json | 6 + .../createindustry/models/block/lead_cap.json | 8 + .../models/block/lead_cap_alt.json | 8 + .../models/block/lead_glass.json | 6 + .../models/block/lead_ladder.json | 8 + .../createindustry/models/block/lead_ore.json | 6 + .../models/block/lead_post.json | 8 + .../models/block/lead_post_ends.json | 8 + .../models/block/lead_side.json | 8 + .../models/block/lead_side_alt.json | 8 + .../block/light_blue_caution_block.json | 7 + .../block/light_gray_caution_block.json | 7 + .../models/block/lime_caution_block.json | 7 + .../models/block/lithium_block.json | 6 + .../models/block/lithium_ore.json | 6 + .../models/block/magenta_caution_block.json | 7 + .../models/block/nickel_block.json | 6 + .../models/block/nickel_cap.json | 8 + .../models/block/nickel_cap_alt.json | 8 + .../models/block/nickel_ladder.json | 8 + .../models/block/nickel_ore.json | 6 + .../models/block/nickel_post.json | 8 + .../models/block/nickel_post_ends.json | 8 + .../models/block/nickel_side.json | 8 + .../models/block/nickel_side_alt.json | 8 + .../models/block/orange_caution_block.json | 7 + .../models/block/pink_caution_block.json | 7 + .../models/block/polished_cut_galena.json | 6 + .../block/polished_cut_galena_slab.json | 8 + .../polished_cut_galena_slab_double.json | 7 + .../block/polished_cut_galena_slab_top.json | 8 + .../block/polished_cut_galena_stairs.json | 8 + .../polished_cut_galena_stairs_inner.json | 8 + .../polished_cut_galena_stairs_outer.json | 8 + .../block/polished_cut_galena_wall_post.json | 6 + .../block/polished_cut_galena_wall_side.json | 6 + .../polished_cut_galena_wall_side_tall.json | 6 + .../models/block/purple_caution_block.json | 7 + .../models/block/small_galena_brick_slab.json | 8 + .../block/small_galena_brick_slab_top.json | 8 + .../block/small_galena_brick_stairs.json | 8 + .../small_galena_brick_stairs_inner.json | 8 + .../small_galena_brick_stairs_outer.json | 8 + .../models/block/small_galena_bricks.json | 6 + .../block/small_galena_bricks_wall_post.json | 6 + .../block/small_galena_bricks_wall_side.json | 6 + .../small_galena_bricks_wall_side_tall.json | 6 + .../models/block/steel_cable_hub.json | 6 + .../models/block/steel_casing_cable_hub.json | 6 + .../steel_encased_aluminum_cogwheel.json | 10 + ...teel_encased_aluminum_cogwheel_bottom.json | 10 + .../steel_encased_aluminum_cogwheel_top.json | 10 + ..._encased_aluminum_cogwheel_top_bottom.json | 10 + .../models/block/steel_encased_cogwheel.json | 10 + .../block/steel_encased_cogwheel_bottom.json | 10 + .../block/steel_encased_cogwheel_top.json | 10 + .../steel_encased_cogwheel_top_bottom.json | 10 + ...steel_encased_large_aluminum_cogwheel.json | 10 + ...ncased_large_aluminum_cogwheel_bottom.json | 10 + ...l_encased_large_aluminum_cogwheel_top.json | 10 + ...ed_large_aluminum_cogwheel_top_bottom.json | 10 + .../block/steel_encased_large_cogwheel.json | 10 + .../steel_encased_large_cogwheel_bottom.json | 10 + .../steel_encased_large_cogwheel_top.json | 10 + ...eel_encased_large_cogwheel_top_bottom.json | 10 + .../steel_encased_large_steel_cogwheel.json | 10 + ...l_encased_large_steel_cogwheel_bottom.json | 10 + ...teel_encased_large_steel_cogwheel_top.json | 10 + ...cased_large_steel_cogwheel_top_bottom.json | 10 + .../block/steel_encased_steel_cogwheel.json | 10 + .../steel_encased_steel_cogwheel_bottom.json | 10 + .../steel_encased_steel_cogwheel_top.json | 10 + ...eel_encased_steel_cogwheel_top_bottom.json | 10 + .../models/block/sulfuric_acid.json | 5 + .../models/block/voltage_cube.json | 6 + .../models/block/white_caution_block.json | 7 + .../models/block/yellow_caution_block.json | 7 + .../models/item/accumulator.json | 3 + .../models/item/advanced_potato_cannon.json | 3 + .../models/item/air_bucket.json | 6 + .../models/item/aluminum_axe.json | 6 + .../models/item/aluminum_cable_hub.json | 3 + .../models/item/aluminum_cogwheel.json | 3 + .../models/item/aluminum_frame.json | 3 + .../models/item/aluminum_hoe.json | 6 + .../models/item/aluminum_pickaxe.json | 6 + .../models/item/aluminum_shovel.json | 6 + .../models/item/aluminum_sword.json | 6 + .../models/item/aluminum_wire.json | 6 + .../models/item/blue_caution_block.json | 3 + .../models/item/bottle_of_battery_acid.json | 6 + .../models/item/bottle_of_concrete.json | 6 + .../models/item/brass_cable_hub.json | 3 + .../models/item/brass_frame.json | 3 + .../models/item/brass_truss.json | 3 + .../models/item/brown_caution_block.json | 3 + .../models/item/butane_bucket.json | 6 + .../models/item/cable_connector.json | 3 + .../models/item/cable_tube.json | 3 + .../createindustry/models/item/capacitor.json | 3 + .../models/item/capacitor_.json | 6 + .../models/item/carbon_dioxide_bucket.json | 6 + .../models/item/cast_iron_bars.json | 7 + .../models/item/cast_iron_frame.json | 3 + .../models/item/cast_iron_ladder.json | 6 + .../models/item/cast_iron_truss.json | 3 + .../models/item/cinder_block.json | 3 + .../models/item/cinderblock.json | 6 + .../models/item/cinderflour_block.json | 3 + .../models/item/cinderflourblock.json | 6 + .../createindustry/models/item/converter.json | 3 + .../models/item/copper_cable.json | 6 + .../models/item/copper_cable_hub.json | 3 + .../models/item/copper_coil.json | 3 + .../models/item/copper_frame.json | 3 + .../models/item/copper_sulfate.json | 6 + .../models/item/copper_truss.json | 3 + .../models/item/copper_wire.json | 6 + .../models/item/copycat_cable_block.json | 3 + .../models/item/creative_generator.json | 3 + .../models/item/crude_oil_bucket.json | 6 + .../models/item/cut_galena.json | 3 + .../models/item/cut_galena_brick_slab.json | 3 + .../models/item/cut_galena_brick_stairs.json | 3 + .../models/item/cut_galena_brick_wall.json | 6 + .../models/item/cut_galena_bricks.json | 3 + .../models/item/cut_galena_slab.json | 3 + .../models/item/cut_galena_stairs.json | 3 + .../models/item/cut_galena_wall.json | 6 + .../models/item/cyan_caution_block.json | 3 + .../models/item/deepslate_lead_ore.json | 3 + .../models/item/deepslate_lithium_ore.json | 3 + .../models/item/deepslate_nickel_ore.json | 3 + .../models/item/diagonal_cable_block.json | 3 + .../models/item/electric_casing.json | 3 + .../models/item/electric_motor.json | 3 + .../models/item/energy_meter.json | 3 + .../models/item/ethylene_bucket.json | 6 + .../createindustry/models/item/firebox.json | 3 + .../models/item/flamethrower.json | 3 + .../createindustry/models/item/galena.json | 6 + .../models/item/galena_pillar.json | 3 + .../models/item/galvanic_cell.json | 3 + .../createindustry/models/item/generator.json | 3 + .../models/item/gray_caution_block.json | 3 + .../models/item/green_caution_block.json | 3 + .../models/item/hardened_planks_slab.json | 3 + .../models/item/heavy_cable_hub.json | 3 + ...eavy_casing_encased_aluminum_cogwheel.json | 9 + .../item/heavy_casing_encased_cogwheel.json | 9 + ...asing_encased_large_aluminum_cogwheel.json | 9 + .../heavy_casing_encased_large_cogwheel.json | 9 + ...y_casing_encased_large_steel_cogwheel.json | 9 + .../item/heavy_casing_encased_shaft.json | 3 + .../heavy_casing_encased_steel_cogwheel.json | 9 + .../models/item/large_aluminum_cogwheel.json | 3 + .../models/item/large_steel_cogwheel.json | 3 + .../models/item/layered_galena.json | 3 + .../createindustry/models/item/lead_axe.json | 6 + .../createindustry/models/item/lead_bars.json | 7 + .../models/item/lead_block.json | 3 + .../models/item/lead_flywheel.json | 3 + .../models/item/lead_frame.json | 3 + .../models/item/lead_glass.json | 3 + .../createindustry/models/item/lead_hoe.json | 6 + .../models/item/lead_ingot.json | 6 + .../models/item/lead_ladder.json | 6 + .../createindustry/models/item/lead_ore.json | 3 + .../models/item/lead_pickaxe.json | 6 + .../models/item/lead_shovel.json | 6 + .../models/item/lead_sword.json | 6 + .../models/item/lead_truss.json | 3 + .../models/item/light_blue_caution_block.json | 3 + .../models/item/light_bulb.json | 3 + .../models/item/light_gray_caution_block.json | 3 + .../models/item/lime_caution_block.json | 3 + .../models/item/lit_lithium_blade.json | 6 + .../models/item/lithium_blade.json | 6 + .../models/item/lithium_block.json | 3 + .../models/item/lithium_charge.json | 6 + .../models/item/lithium_ingot.json | 6 + .../models/item/lithium_ore.json | 3 + .../models/item/lithium_torch.json | 3 + .../models/item/low_grade_fuel_engine.json | 3 + .../models/item/lpg_bucket.json | 6 + .../models/item/magenta_caution_block.json | 3 + .../models/item/magnetic_ingot.json | 6 + .../models/item/napalm_potato.json | 6 + .../models/item/neon_bucket.json | 6 + .../createindustry/models/item/neon_tube.json | 3 + .../models/item/nickel_bars.json | 7 + .../models/item/nickel_block.json | 3 + .../models/item/nickel_flywheel.json | 3 + .../models/item/nickel_frame.json | 3 + .../models/item/nickel_ingot.json | 6 + .../models/item/nickel_ladder.json | 6 + .../models/item/nickel_ore.json | 3 + .../models/item/nickel_truss.json | 3 + .../models/item/orange_caution_block.json | 3 + .../models/item/pink_caution_block.json | 3 + .../createindustry/models/item/pipe_bomb.json | 6 + .../createindustry/models/item/polarizer.json | 3 + .../models/item/polished_cut_galena.json | 3 + .../models/item/polished_cut_galena_slab.json | 3 + .../item/polished_cut_galena_stairs.json | 3 + .../models/item/polished_cut_galena_wall.json | 6 + .../models/item/propane_bucket.json | 6 + .../models/item/propylene_bucket.json | 6 + .../models/item/purple_caution_block.json | 3 + .../createindustry/models/item/raw_lead.json | 6 + .../models/item/raw_lithium.json | 6 + .../models/item/raw_nickel.json | 6 + .../createindustry/models/item/resistor.json | 3 + .../createindustry/models/item/resistor_.json | 6 + .../models/item/rgb_light_bulb.json | 3 + .../createindustry/models/item/rotor.json | 3 + .../models/item/small_galena_brick_slab.json | 3 + .../item/small_galena_brick_stairs.json | 3 + .../models/item/small_galena_brick_wall.json | 6 + .../models/item/small_galena_bricks.json | 3 + .../createindustry/models/item/stator.json | 3 + .../createindustry/models/item/steel_axe.json | 6 + .../models/item/steel_boots.json | 6 + .../models/item/steel_cable_hub.json | 3 + .../models/item/steel_casing_cable_hub.json | 3 + .../models/item/steel_chestplate.json | 6 + .../models/item/steel_cogwheel.json | 3 + .../item/steel_encased_aluminum_cogwheel.json | 9 + .../models/item/steel_encased_cogwheel.json | 9 + ...steel_encased_large_aluminum_cogwheel.json | 9 + .../item/steel_encased_large_cogwheel.json | 9 + .../steel_encased_large_steel_cogwheel.json | 9 + .../models/item/steel_encased_shaft.json | 3 + .../item/steel_encased_steel_cogwheel.json | 9 + .../models/item/steel_gearbox.json | 3 + .../models/item/steel_helmet.json | 6 + .../createindustry/models/item/steel_hoe.json | 6 + .../models/item/steel_leggings.json | 6 + .../models/item/steel_pickaxe.json | 6 + .../models/item/steel_shovel.json | 6 + .../models/item/steel_sword.json | 6 + .../models/item/steel_vertical_gearbox.json | 3 + .../models/item/sulfuric_acid_bucket.json | 6 + .../models/item/synthetic_leather.json | 6 + .../models/item/synthetic_string.json | 6 + .../models/item/voltage_cube.json | 3 + .../createindustry/models/item/voltmeter.json | 3 + .../models/item/white_caution_block.json | 3 + .../models/item/yellow_caution_block.json | 3 + .../models/item/zinc_frame.json | 3 + .../models/item/zinc_sulfate.json | 6 + .../models/item/zinc_truss.json | 3 + ...inderblock_from_concrete_stonecutting.json | 34 + ...ars_from_ingots_aluminum_stonecutting.json | 32 + ...der_from_ingots_aluminum_stonecutting.json | 32 + ...ing_from_ingots_aluminum_stonecutting.json | 32 + ..._frame_from_ingots_brass_stonecutting.json | 32 + ..._truss_from_ingots_brass_stonecutting.json | 32 + ...rs_from_ingots_cast_iron_stonecutting.json | 32 + ...er_from_ingots_cast_iron_stonecutting.json | 32 + ...crete_slab_from_concrete_stonecutting.json | 34 + ...ete_stairs_from_concrete_stonecutting.json | 34 + ...crete_wall_from_concrete_stonecutting.json | 34 + ...frame_from_ingots_copper_stonecutting.json | 32 + ...truss_from_ingots_copper_stonecutting.json | 32 + .../cut_galena_brick_slab.json | 34 + ..._from_stone_types_galena_stonecutting.json | 32 + .../cut_galena_brick_slab_recycling.json | 34 + .../cut_galena_brick_stairs.json | 34 + ..._from_stone_types_galena_stonecutting.json | 32 + .../cut_galena_brick_wall.json | 34 + ..._from_stone_types_galena_stonecutting.json | 32 + ..._from_stone_types_galena_stonecutting.json | 32 + ..._from_stone_types_galena_stonecutting.json | 32 + .../cut_galena_slab.json | 34 + ..._from_stone_types_galena_stonecutting.json | 32 + .../cut_galena_slab_recycling.json | 34 + .../cut_galena_stairs.json | 34 + ..._from_stone_types_galena_stonecutting.json | 32 + .../cut_galena_wall.json | 34 + ..._from_stone_types_galena_stonecutting.json | 32 + ..._from_stone_types_galena_stonecutting.json | 32 + ..._from_stone_types_galena_stonecutting.json | 32 + ..._from_stone_types_galena_stonecutting.json | 32 + ...ad_bars_from_ingots_lead_stonecutting.json | 32 + ...d_frame_from_ingots_lead_stonecutting.json | 32 + ..._ladder_from_ingots_lead_stonecutting.json | 32 + ...d_truss_from_ingots_lead_stonecutting.json | 32 + ..._bars_from_ingots_nickel_stonecutting.json | 32 + ...frame_from_ingots_nickel_stonecutting.json | 32 + ...adder_from_ingots_nickel_stonecutting.json | 32 + ...truss_from_ingots_nickel_stonecutting.json | 32 + ..._from_stone_types_galena_stonecutting.json | 32 + .../polished_cut_galena_slab.json | 34 + ..._from_stone_types_galena_stonecutting.json | 32 + .../polished_cut_galena_slab_recycling.json | 34 + .../polished_cut_galena_stairs.json | 34 + ..._from_stone_types_galena_stonecutting.json | 32 + .../polished_cut_galena_wall.json | 34 + ..._from_stone_types_galena_stonecutting.json | 32 + ...slab_from_rebar_concrete_stonecutting.json | 34 + .../small_galena_brick_slab.json | 34 + ..._from_stone_types_galena_stonecutting.json | 32 + .../small_galena_brick_slab_recycling.json | 34 + .../small_galena_brick_stairs.json | 34 + ..._from_stone_types_galena_stonecutting.json | 32 + .../small_galena_brick_wall.json | 34 + ..._from_stone_types_galena_stonecutting.json | 32 + ..._from_stone_types_galena_stonecutting.json | 32 + ...l_bars_from_ingots_steel_stonecutting.json | 32 + ...ladder_from_ingots_steel_stonecutting.json | 32 + ...olding_from_ingots_steel_stonecutting.json | 32 + ...c_frame_from_ingots_zinc_stonecutting.json | 32 + ...c_truss_from_ingots_zinc_stonecutting.json | 32 + .../loot_tables/blocks/accumulator.json | 20 + .../blocks/aluminum_cable_hub.json | 20 + .../loot_tables/blocks/aluminum_cogwheel.json | 20 + .../loot_tables/blocks/aluminum_frame.json | 20 + .../blocks/blue_caution_block.json | 20 + .../loot_tables/blocks/brass_cable_hub.json | 20 + .../loot_tables/blocks/brass_frame.json | 20 + .../loot_tables/blocks/brass_truss.json | 20 + .../blocks/brown_caution_block.json | 20 + .../loot_tables/blocks/cable_connector.json | 20 + .../loot_tables/blocks/cable_tube.json | 20 + .../loot_tables/blocks/capacitor.json | 20 + .../loot_tables/blocks/cast_iron_bars.json | 20 + .../loot_tables/blocks/cast_iron_frame.json | 20 + .../loot_tables/blocks/cast_iron_ladder.json | 20 + .../loot_tables/blocks/cast_iron_truss.json | 20 + .../loot_tables/blocks/cinder_block.json | 20 + .../loot_tables/blocks/cinderflour_block.json | 20 + .../loot_tables/blocks/converter.json | 20 + .../loot_tables/blocks/copper_cable_hub.json | 20 + .../loot_tables/blocks/copper_coil.json | 20 + .../loot_tables/blocks/copper_frame.json | 20 + .../loot_tables/blocks/copper_truss.json | 20 + .../blocks/copycat_cable_base.json | 20 + .../blocks/copycat_cable_block.json | 20 + .../blocks/creative_generator.json | 20 + .../loot_tables/blocks/cut_galena.json | 20 + .../blocks/cut_galena_brick_slab.json | 34 + .../blocks/cut_galena_brick_stairs.json | 20 + .../blocks/cut_galena_brick_wall.json | 20 + .../loot_tables/blocks/cut_galena_bricks.json | 20 + .../loot_tables/blocks/cut_galena_slab.json | 34 + .../loot_tables/blocks/cut_galena_stairs.json | 20 + .../loot_tables/blocks/cut_galena_wall.json | 20 + .../blocks/cyan_caution_block.json | 20 + .../blocks/deepslate_lead_ore.json | 49 + .../blocks/deepslate_lithium_ore.json | 49 + .../blocks/deepslate_nickel_ore.json | 49 + .../blocks/diagonal_cable_block.json | 20 + .../loot_tables/blocks/electric_casing.json | 20 + .../loot_tables/blocks/electric_motor.json | 20 + .../loot_tables/blocks/energy_meter.json | 20 + .../loot_tables/blocks/firebox.json | 20 + .../loot_tables/blocks/galena.json | 20 + .../loot_tables/blocks/galena_pillar.json | 20 + .../loot_tables/blocks/galvanic_cell.json | 20 + .../loot_tables/blocks/generator.json | 20 + .../blocks/gray_caution_block.json | 20 + .../blocks/green_caution_block.json | 20 + .../blocks/hardened_planks_slab.json | 20 + .../loot_tables/blocks/heavy_cable_hub.json | 20 + ...eavy_casing_encased_aluminum_cogwheel.json | 20 + .../blocks/heavy_casing_encased_cogwheel.json | 20 + ...asing_encased_large_aluminum_cogwheel.json | 20 + .../heavy_casing_encased_large_cogwheel.json | 20 + ...y_casing_encased_large_steel_cogwheel.json | 20 + .../blocks/heavy_casing_encased_shaft.json | 20 + .../heavy_casing_encased_steel_cogwheel.json | 20 + .../blocks/large_aluminum_cogwheel.json | 20 + .../blocks/large_steel_cogwheel.json | 20 + .../loot_tables/blocks/layered_galena.json | 20 + .../loot_tables/blocks/lead_bars.json | 20 + .../loot_tables/blocks/lead_block.json | 20 + .../loot_tables/blocks/lead_flywheel.json | 20 + .../loot_tables/blocks/lead_frame.json | 20 + .../loot_tables/blocks/lead_glass.json | 20 + .../loot_tables/blocks/lead_ladder.json | 20 + .../loot_tables/blocks/lead_ore.json | 49 + .../loot_tables/blocks/lead_truss.json | 20 + .../blocks/light_blue_caution_block.json | 20 + .../loot_tables/blocks/light_bulb.json | 20 + .../blocks/light_gray_caution_block.json | 20 + .../blocks/lime_caution_block.json | 20 + .../loot_tables/blocks/lithium_block.json | 20 + .../loot_tables/blocks/lithium_ore.json | 49 + .../loot_tables/blocks/lithium_torch.json | 20 + .../blocks/low_grade_fuel_engine.json | 20 + .../blocks/magenta_caution_block.json | 20 + .../loot_tables/blocks/neon_tube.json | 20 + .../loot_tables/blocks/nickel_bars.json | 20 + .../loot_tables/blocks/nickel_block.json | 20 + .../loot_tables/blocks/nickel_flywheel.json | 20 + .../loot_tables/blocks/nickel_frame.json | 20 + .../loot_tables/blocks/nickel_ladder.json | 20 + .../loot_tables/blocks/nickel_ore.json | 49 + .../loot_tables/blocks/nickel_truss.json | 20 + .../blocks/orange_caution_block.json | 20 + .../blocks/pink_caution_block.json | 20 + .../loot_tables/blocks/polarizer.json | 20 + .../blocks/polished_cut_galena.json | 20 + .../blocks/polished_cut_galena_slab.json | 34 + .../blocks/polished_cut_galena_stairs.json | 20 + .../blocks/polished_cut_galena_wall.json | 20 + .../blocks/purple_caution_block.json | 20 + .../loot_tables/blocks/resistor.json | 20 + .../loot_tables/blocks/rgb_light_bulb.json | 20 + .../loot_tables/blocks/rotor.json | 20 + .../blocks/small_galena_brick_slab.json | 34 + .../blocks/small_galena_brick_stairs.json | 20 + .../blocks/small_galena_brick_wall.json | 20 + .../blocks/small_galena_bricks.json | 20 + .../loot_tables/blocks/stator.json | 20 + .../loot_tables/blocks/steel_cable_hub.json | 20 + .../blocks/steel_casing_cable_hub.json | 20 + .../loot_tables/blocks/steel_cogwheel.json | 20 + .../steel_encased_aluminum_cogwheel.json | 20 + .../blocks/steel_encased_cogwheel.json | 20 + ...steel_encased_large_aluminum_cogwheel.json | 20 + .../blocks/steel_encased_large_cogwheel.json | 20 + .../steel_encased_large_steel_cogwheel.json | 20 + .../blocks/steel_encased_shaft.json | 20 + .../blocks/steel_encased_steel_cogwheel.json | 20 + .../loot_tables/blocks/steel_gearbox.json | 20 + .../loot_tables/blocks/voltage_cube.json | 20 + .../loot_tables/blocks/voltmeter.json | 20 + .../blocks/white_caution_block.json | 20 + .../blocks/yellow_caution_block.json | 20 + .../loot_tables/blocks/zinc_frame.json | 20 + .../loot_tables/blocks/zinc_truss.json | 20 + ..._frame_from_ingots_brass_stonecutting.json | 8 + ..._truss_from_ingots_brass_stonecutting.json | 8 + ...rs_from_ingots_cast_iron_stonecutting.json | 8 + ...er_from_ingots_cast_iron_stonecutting.json | 8 + ...inderblock_from_concrete_stonecutting.json | 8 + ...crete_slab_from_concrete_stonecutting.json | 8 + ...ete_stairs_from_concrete_stonecutting.json | 8 + ...crete_wall_from_concrete_stonecutting.json | 8 + ...frame_from_ingots_copper_stonecutting.json | 8 + ...truss_from_ingots_copper_stonecutting.json | 8 + .../recipes/cut_galena_brick_slab.json | 16 + ..._from_stone_types_galena_stonecutting.json | 8 + .../cut_galena_brick_slab_recycling.json | 14 + .../recipes/cut_galena_brick_stairs.json | 18 + ..._from_stone_types_galena_stonecutting.json | 8 + .../recipes/cut_galena_brick_wall.json | 16 + ..._from_stone_types_galena_stonecutting.json | 8 + ..._from_stone_types_galena_stonecutting.json | 8 + ..._from_stone_types_galena_stonecutting.json | 8 + .../recipes/cut_galena_slab.json | 16 + ..._from_stone_types_galena_stonecutting.json | 8 + .../recipes/cut_galena_slab_recycling.json | 14 + .../recipes/cut_galena_stairs.json | 18 + ..._from_stone_types_galena_stonecutting.json | 8 + .../recipes/cut_galena_wall.json | 16 + ..._from_stone_types_galena_stonecutting.json | 8 + ..._from_stone_types_galena_stonecutting.json | 8 + ..._from_stone_types_galena_stonecutting.json | 8 + ..._from_stone_types_galena_stonecutting.json | 8 + ...ad_bars_from_ingots_lead_stonecutting.json | 8 + ...d_frame_from_ingots_lead_stonecutting.json | 8 + ..._ladder_from_ingots_lead_stonecutting.json | 8 + ...d_truss_from_ingots_lead_stonecutting.json | 8 + ..._bars_from_ingots_nickel_stonecutting.json | 8 + ...frame_from_ingots_nickel_stonecutting.json | 8 + ...adder_from_ingots_nickel_stonecutting.json | 8 + ...truss_from_ingots_nickel_stonecutting.json | 8 + ..._from_stone_types_galena_stonecutting.json | 8 + .../recipes/polished_cut_galena_slab.json | 16 + ..._from_stone_types_galena_stonecutting.json | 8 + .../polished_cut_galena_slab_recycling.json | 14 + .../recipes/polished_cut_galena_stairs.json | 18 + ..._from_stone_types_galena_stonecutting.json | 8 + .../recipes/polished_cut_galena_wall.json | 16 + ..._from_stone_types_galena_stonecutting.json | 8 + ...slab_from_rebar_concrete_stonecutting.json | 8 + .../recipes/small_galena_brick_slab.json | 16 + ..._from_stone_types_galena_stonecutting.json | 8 + .../small_galena_brick_slab_recycling.json | 14 + .../recipes/small_galena_brick_stairs.json | 18 + ..._from_stone_types_galena_stonecutting.json | 8 + .../recipes/small_galena_brick_wall.json | 16 + ..._from_stone_types_galena_stonecutting.json | 8 + ..._from_stone_types_galena_stonecutting.json | 8 + ...c_frame_from_ingots_zinc_stonecutting.json | 8 + ...c_truss_from_ingots_zinc_stonecutting.json | 8 + .../createindustry/tags/fluids/flammable.json | 24 + .../data/createindustry/tags/fluids/gas.json | 20 + .../tags/items/stone_types/galena.json | 19 + .../data/forge/tags/blocks/ores.json | 10 + .../data/forge/tags/blocks/ores/lead.json | 6 + .../data/forge/tags/blocks/ores/lithium.json | 6 + .../data/forge/tags/blocks/ores/nickel.json | 6 + .../tags/blocks/ores_in_ground/deepslate.json | 7 + .../tags/blocks/ores_in_ground/stone.json | 7 + .../tags/blocks/storage_blocks/lead.json | 5 + .../tags/blocks/storage_blocks/lithium.json | 5 + .../tags/blocks/storage_blocks/nickel.json | 5 + .../data/forge/tags/fluids/crude_oil.json | 6 + .../data/forge/tags/fluids/diesel.json | 6 + .../data/forge/tags/fluids/gasoline.json | 6 + .../data/forge/tags/fluids/heavy_oil.json | 6 + .../data/forge/tags/fluids/kerosene.json | 6 + .../resources/data/forge/tags/fluids/lpg.json | 6 + .../data/forge/tags/fluids/molten_steel.json | 6 + .../data/forge/tags/fluids/naphtha.json | 6 + .../data/forge/tags/items/buckets/air.json | 5 + .../data/forge/tags/items/buckets/butane.json | 5 + .../tags/items/buckets/carbon_dioxide.json | 5 + .../forge/tags/items/buckets/creosote.json | 5 + .../forge/tags/items/buckets/crude_oil.json | 5 + .../forge/tags/items/buckets/ethylene.json | 5 + .../forge/tags/items/buckets/heavy_oil.json | 5 + .../data/forge/tags/items/buckets/lpg.json | 5 + .../tags/items/buckets/lubrication_oil.json | 5 + .../data/forge/tags/items/buckets/neon.json | 5 + .../forge/tags/items/buckets/propane.json | 5 + .../forge/tags/items/buckets/propylene.json | 5 + .../data/forge/tags/items/ingots/lead.json | 5 + .../data/forge/tags/items/ingots/lithium.json | 5 + .../data/forge/tags/items/ingots/nickel.json | 5 + .../data/forge/tags/items/leather.json | 5 + .../resources/data/forge/tags/items/ores.json | 10 + .../data/forge/tags/items/ores/lead.json | 6 + .../data/forge/tags/items/ores/lithium.json | 6 + .../data/forge/tags/items/ores/nickel.json | 6 + .../tags/items/ores_in_ground/deepslate.json | 7 + .../tags/items/ores_in_ground/stone.json | 7 + .../data/forge/tags/items/plates/steel.json | 5 + .../data/forge/tags/items/raw_materials.json | 7 + .../forge/tags/items/raw_materials/lead.json | 5 + .../tags/items/raw_materials/lithium.json | 5 + .../tags/items/raw_materials/nickel.json | 5 + .../forge/tags/items/storage_blocks/lead.json | 5 + .../tags/items/storage_blocks/lithium.json | 5 + .../tags/items/storage_blocks/nickel.json | 5 + .../data/forge/tags/items/string.json | 5 + .../data/forge/tags/items/wires/aluminum.json | 5 + .../data/forge/tags/items/wires/copper.json | 5 + .../base/ElectricSparkParticle.java | 80 ++ .../createindustry/base/GasFluidBuilder.java | 28 + .../base/TFMGEncasedBlocks.java | 176 +++ .../createindustry/base/TFMGPipes.java | 477 ++++++++ .../createindustry/base/TFMGTools.java | 27 + .../base/effects/HellFireEffect.java | 21 + .../createindustry/base/util/TFMGUtils.java | 73 ++ .../blocks/HalfShaftRenderer.java | 28 + .../TFMGHorizontalDirectionalBlock.java | 26 + .../EncasedAluminumCogInstance.java | 116 ++ .../EncasedAluminumCogRenderer.java | 74 ++ .../cogwheeels/EncasedSteelCogInstance.java | 111 ++ .../cogwheeels/EncasedSteelCogRenderer.java | 74 ++ .../blocks/cogwheeels/TFMGCogWheelBlock.java | 218 ++++ .../cogwheeels/TFMGCogwheelBlockItem.java | 311 +++++ .../cogwheeels/TFMGCogwheelInstance.java | 117 ++ .../cogwheeels/TFMGCogwheelRenderer.java | 79 ++ .../blocks/decoration/LithiumTorchBlock.java | 100 ++ .../decoration/LithiumTorchGenerator.java | 43 + .../kinetics/SteelGearboxBlock.java | 88 ++ .../kinetics/SteelVerticalGearboxItem.java | 68 ++ .../electricity/base/ConverterBlock.java | 40 + .../base/ConverterBlockEntity.java | 123 ++ .../electricity/base/ElectricBlockEntity.java | 314 +++++ .../electricity/base/IElectricBlock.java | 332 +++++ .../blocks/electricity/base/IHaveCables.java | 3 + .../base/KineticElectricBlockEntity.java | 285 +++++ .../base/TFMGForgeEnergyStorage.java | 51 + .../electricity/base/WallMountBlock.java | 45 + .../base/cables/CableConnectorBlock.java | 96 ++ .../cables/CableConnectorBlockEntity.java | 407 +++++++ .../base/cables/CableConnectorGenerator.java | 76 ++ .../base/cables/CableConnectorRenderer.java | 32 + .../base/cables/WireConnection.java | 53 + .../electricity/base/cables/WireItem.java | 196 +++ .../electricity/base/cables/WireManager.java | 129 ++ .../base/multimeter/MultimeterItem.java | 13 + .../electricity/batteries/BatteryBlock.java | 55 + .../batteries/BatteryBlockEntity.java | 93 ++ .../batteries/GalvanicCellBlock.java | 62 + .../batteries/GalvanicCellBlockEntity.java | 32 + .../cable_blocks/CableHubBlock.java | 23 + .../cable_blocks/CableHubBlockEntity.java | 138 +++ .../cable_blocks/CableTubeBlock.java | 138 +++ .../cable_blocks/CableTubeBlockEntity.java | 25 + .../cable_blocks/DiagonalCableBlock.java | 120 ++ .../DiagonalCableBlockEntity.java | 34 + .../cable_blocks/DiagonalCableGenerator.java | 41 + .../AbstractCopycatCableModel.java | 164 +++ .../CopycatCableBlock.java | 371 ++++++ .../CopycatCableBlockEntity.java | 271 +++++ .../CopycatCableBlockModel.java | 88 ++ .../capacitor/AccumulatorBlock.java | 39 + .../capacitor/AccumulatorBlockEntity.java | 21 + .../capacitor/AccumulatorCTBehavior.java | 46 + .../electricity/capacitor/CapacitorBlock.java | 40 + .../capacitor/CapacitorBlockEntity.java | 145 +++ .../capacitor/CapacitorCTBehavior.java | 46 + .../electric_motor/ElectricMotorBlock.java | 68 ++ .../ElectricMotorBlockEntity.java | 404 +++++++ .../ElectricalSwitchBlock.java | 26 + .../electrical_switch/LeverGenerator.java | 36 + .../CreativeGeneratorBlock.java | 25 + .../CreativeGeneratorBlockEntity.java | 129 ++ .../creative_generator/VoltageCubeBlock.java | 45 + .../VoltageCubeBlockEntity.java | 24 + .../generation/generator/GeneratorBlock.java | 53 + .../generator/GeneratorBlockEntity.java | 74 ++ .../large_generator/RotorBlock.java | 49 + .../large_generator/RotorBlockEntity.java | 184 +++ .../large_generator/RotorInstance.java | 99 ++ .../large_generator/RotorRenderer.java | 80 ++ .../large_generator/StatorBlock.java | 119 ++ .../large_generator/StatorBlockEntity.java | 95 ++ .../large_generator/StatorGenerator.java | 84 ++ .../large_generator/StatorRenderer.java | 32 + .../electricity/lights/LightBulbBlock.java | 76 ++ .../lights/LightBulbBlockEntity.java | 107 ++ .../electricity/lights/LightBulbRenderer.java | 53 + .../lights/neon/NeonTubeBlock.java | 146 +++ .../lights/neon/NeonTubeBlockEntity.java | 130 ++ .../lights/neon/NeonTubeRenderer.java | 60 + .../lights/rgb/RGBLightBulbBlock.java | 94 ++ .../lights/rgb/RGBLightBulbBlockEntity.java | 47 + .../lights/rgb/RGBLightBulbRenderer.java | 54 + .../polarizer/PolarizeRenderer.java | 52 + .../electricity/polarizer/PolarizerBlock.java | 59 + .../polarizer/PolarizerBlockEntity.java | 194 +++ .../electricity/resistors/ResistorBlock.java | 33 + .../resistors/ResistorBlockEntity.java | 135 +++ .../electricity/transformer/CoilBlock.java | 45 + .../transformer/CoilBlockEntity.java | 155 +++ .../transformer/CoilGenerator.java | 28 + .../electricity/voltmeter/VoltMeterBlock.java | 67 ++ .../voltmeter/VoltMeterBlockEntity.java | 120 ++ .../voltmeter/VoltMeterRenderer.java | 59 + .../energy_meter/EnergyMeterBlock.java | 45 + .../energy_meter/EnergyMeterBlockEntity.java | 129 ++ .../energy_meter/EnergyMeterRenderer.java | 61 + .../LowGradeFuelEngineBlock.java | 110 ++ .../LowGradeFuelEngineBlockEntity.java | 541 +++++++++ .../LowGradeFuelEngineRenderer.java | 22 + .../blocks/fluids/AcidFluidType.java | 70 ++ .../blocks/fluids/FlammableFluid.java | 91 ++ .../blocks/fluids/FlammableFluidType.java | 64 + .../blocks/fluids/HotFluidType.java | 85 ++ .../blocks/fluids/PlasticFluidType.java | 22 + .../blocks/machines/firebox/FireboxBlock.java | 167 +++ .../machines/firebox/FireboxBlockEntity.java | 267 +++++ .../machines/firebox/FireboxGenerator.java | 50 + .../distillation/IndustrialPipeBlock.java | 86 ++ .../distillation/VerticalPlacementHelper.java | 76 ++ .../DistillationControllerBlock.java | 65 + .../DistillationControllerBlockEntity.java | 285 +++++ .../output/DistillationOutputBlock.java | 23 + .../output/DistillationOutputBlockEntity.java | 89 ++ .../welding_machine/BeltWeldingCallbacks.java | 81 ++ .../welding_machine/WeldingBehaviour.java | 283 +++++ .../welding_machine/WeldingMachineBlock.java | 54 + .../WeldingMachineBlockEntity.java | 154 +++ .../WeldingMachineInstance.java | 65 + .../WeldingMachineRenderer.java | 49 + .../simple/welding_machine/WeldingRecipe.java | 69 ++ .../items/BatteryAcidBottleItem.java | 63 + .../items/ConcreteBottleItem.java | 65 + .../createindustry/items/OilBucketItem.java | 21 + .../items/weapons/LeadAxeItem.java | 31 + .../items/weapons/LeadSwordItem.java | 29 + .../AdvancedPotatoCannonItem.java | 231 ++++ .../AdvancedPotatoCannonItemRenderer.java | 54 + .../AdvancedPotatoCannonPacket.java | 62 + .../AdvancedPotatoCannonRenderHandler.java | 65 + .../projectile/NapalmPotato.java | 81 ++ .../projectile/NapalmPotatoRenderer.java | 45 + .../explosives/pipe_bomb/PipeBomb.java | 81 ++ .../explosives/pipe_bomb/PipeBombItem.java | 42 + .../pipe_bomb/PipeBombRenderer.java | 45 + .../flamethrover/FlamethrowerItem.java | 226 ++++ .../flamethrover/FlamethrowerPacket.java | 45 + .../FlamethrowerRenderHandler.java | 35 + .../lithium_blade/LitLithiumBladeItem.java | 159 +++ .../lithium_blade/LithiumBladeItem.java | 75 ++ .../weapons/lithium_blade/LithiumSpark.java | 131 ++ .../lithium_blade/LithiumSparkRenderer.java | 58 + .../QuadPotatoCannonPacket.java | 58 + .../createindustry/mixins/ArrowMixin.java | 60 + .../mixins/BucketItemMixin.java | 30 + .../ponder/scenes/ElectricityScenes.java | 87 ++ .../registry/TFMGArmorMaterials.java | 86 ++ .../registry/TFMGMobEffects.java | 24 + .../createindustry/registry/TFMGPackets.java | 94 ++ .../registry/TFMGParticleTypes.java | 73 ++ .../createindustry/registry/TFMGPotions.java | 24 + .../createindustry/registry/TFMGTags.java | 241 ++++ .../createindustry/registry/TFMGTiers.java | 65 + .../worldgen/TFMGOreConfigEntries.java | 60 + .../oil_deposit/OilDepositFeature.java | 57 + .../worldgen/oil_deposit/OilWellFeature.java | 108 ++ .../createindustry/lang/default/tooltips.json | 145 +++ .../models/aluminum_cogwheel_shaftless.json | 137 +++ .../models/block/accumulator/block.json | 24 + .../models/block/accumulator/item.json | 23 + .../models/block/aluminum_cogwheel.json | 153 +++ .../block/aluminum_cogwheel_shaftless.json | 138 +++ .../models/block/aluminum_frame/block.json | 166 +++ .../models/block/aluminum_frame/item.json | 166 +++ .../models/block/battery/block.json | 23 + .../models/block/battery/item.json | 23 + .../models/block/brass_frame/block.json | 166 +++ .../models/block/brass_frame/item.json | 166 +++ .../models/block/brass_pipe/casing.json | 21 + .../block/brass_pipe/connection/down.json | 21 + .../block/brass_pipe/connection/east.json | 21 + .../block/brass_pipe/connection/north.json | 21 + .../block/brass_pipe/connection/south.json | 21 + .../block/brass_pipe/connection/up.json | 21 + .../block/brass_pipe/connection/west.json | 21 + .../models/block/brass_pipe/core_x.json | 17 + .../models/block/brass_pipe/core_y.json | 17 + .../models/block/brass_pipe/core_z.json | 17 + .../models/block/brass_pipe/drain/down.json | 35 + .../models/block/brass_pipe/drain/east.json | 35 + .../models/block/brass_pipe/drain/north.json | 35 + .../models/block/brass_pipe/drain/south.json | 35 + .../models/block/brass_pipe/drain/up.json | 35 + .../models/block/brass_pipe/drain/west.json | 35 + .../models/block/brass_pipe/item.json | 78 ++ .../models/block/brass_pipe/rim/down.json | 22 + .../models/block/brass_pipe/rim/east.json | 22 + .../models/block/brass_pipe/rim/north.json | 23 + .../models/block/brass_pipe/rim/south.json | 23 + .../models/block/brass_pipe/rim/up.json | 22 + .../models/block/brass_pipe/rim/west.json | 22 + .../block/brass_pipe/rim_connector/down.json | 20 + .../block/brass_pipe/rim_connector/east.json | 20 + .../block/brass_pipe/rim_connector/north.json | 21 + .../block/brass_pipe/rim_connector/south.json | 21 + .../block/brass_pipe/rim_connector/up.json | 20 + .../block/brass_pipe/rim_connector/west.json | 20 + .../models/block/brass_pipe/window.json | 85 ++ .../models/block/brass_pipe/window_alt.json | 58 + .../models/block/brass_truss.json | 106 ++ .../models/block/cable_connector/block.json | 71 ++ .../cable_connector/block_extension.json | 131 ++ .../models/block/cable_connector/item.json | 71 ++ .../models/block/cable_tube.json | 47 + .../models/block/capacitor/block.json | 24 + .../models/block/capacitor/item.json | 23 + .../models/block/cast_iron_frame/block.json | 166 +++ .../models/block/cast_iron_frame/item.json | 166 +++ .../models/block/cast_iron_truss.json | 106 ++ .../models/block/caution_block.json | 22 + .../models/block/cinder_block/block.json | 8 + .../models/block/cinder_block/item.json | 8 + .../models/block/cinderflour_block/block.json | 8 + .../models/block/cinderflour_block/item.json | 8 + .../models/block/converter/block.json | 23 + .../block/converter/block_vertical.json | 154 +++ .../models/block/converter/item.json | 23 + .../models/block/copper_coil/block.json | 23 + .../models/block/copper_coil/block_arrow.json | 23 + .../models/block/copper_coil/item.json | 23 + .../models/block/copper_frame/block.json | 166 +++ .../models/block/copper_frame/item.json | 166 +++ .../models/block/copper_truss.json | 106 ++ .../block/copycat_cable_base/block.json | 6 + .../models/block/copycat_cable_base/item.json | 6 + .../block/copycat_cable_block/block.json | 6 + .../block/copycat_cable_block/item.json | 6 + .../block/diagonal_cable_block/block.json | 49 + .../block/diagonal_cable_block/block_up.json | 49 + .../block/diagonal_cable_block/item.json | 49 + .../models/block/diesel_engine/linkage.json | 51 + .../models/block/diesel_engine/piston.json | 28 + .../models/block/electric_motor/block.json | 115 ++ .../block/electric_motor/block_vertical.json | 102 ++ .../models/block/electric_motor/item.json | 118 ++ .../models/block/electrical_switch/block.json | 89 ++ .../electrical_switch/block_powered.json | 89 ++ .../models/block/electrical_switch/item.json | 88 ++ .../models/block/electrical_switch/lever.json | 75 ++ .../models/block/energy_meter/block.json | 83 ++ .../models/block/energy_meter/dial.json | 24 + .../models/block/energy_meter/item.json | 71 ++ .../models/block/firebox/block.json | 23 + .../models/block/firebox/block_lit.json | 23 + .../models/block/firebox/item.json | 23 + .../models/block/galvanic_cell/block.json | 107 ++ .../models/block/galvanic_cell/item.json | 107 ++ .../models/block/generator/block.json | 36 + .../models/block/generator/item.json | 48 + .../block/glass_cable_connector/block.json | 58 + .../block_extension.json | 84 ++ .../block/glass_cable_connector/item.json | 58 + .../models/block/industrial_light/block.json | 52 + .../models/block/industrial_light/item.json | 52 + .../models/block/industrial_light/light.json | 35 + .../models/block/large_aluminum_cogwheel.json | 205 ++++ .../large_aluminum_cogwheel_shaftless.json | 190 +++ .../models/block/large_steel_cogwheel.json | 176 +++ .../block/large_steel_cogwheel_shaftless.json | 161 +++ .../models/block/lead_flywheel/block.json | 6 + .../models/block/lead_flywheel/flywheel.json | 10 + .../models/block/lead_flywheel/item.json | 18 + .../models/block/lead_frame/block.json | 166 +++ .../models/block/lead_frame/item.json | 166 +++ .../models/block/lead_glass/block.json | 7 + .../models/block/lead_glass/item.json | 7 + .../models/block/lead_truss.json | 106 ++ .../models/block/light_bulb/block.json | 52 + .../models/block/light_bulb/item.json | 52 + .../models/block/light_bulb/light.json | 35 + .../models/block/lithium_torch/block.json | 6 + .../block/lithium_torch/block_wall.json | 6 + .../models/block/lithium_torch/item.json | 6 + .../block/low_grade_fuel_engine/block.json | 94 ++ .../block/low_grade_fuel_engine/item.json | 108 ++ .../models/block/neon_tube/block.json | 22 + .../models/block/neon_tube/item.json | 22 + .../models/block/neon_tube/light.json | 21 + .../models/block/nickel_flywheel/block.json | 6 + .../block/nickel_flywheel/flywheel.json | 10 + .../models/block/nickel_flywheel/item.json | 18 + .../models/block/nickel_frame/block.json | 166 +++ .../models/block/nickel_frame/item.json | 166 +++ .../models/block/nickel_truss.json | 106 ++ .../models/block/polarizer/block.json | 119 ++ .../models/block/polarizer/item.json | 119 ++ .../models/block/resistor/block.json | 35 + .../models/block/resistor/item.json | 35 + .../models/block/rgb_light_bulb/block.json | 52 + .../models/block/rgb_light_bulb/item.json | 52 + .../models/block/rotor/block.json | 6 + .../models/block/rotor/frame.json | 18 + .../models/block/rotor/item.json | 6 + .../models/block/rotor/item.obj | 647 ++++++++++ .../models/block/rotor/model.mtl | 3 + .../models/block/rotor/model.obj | 601 ++++++++++ .../models/block/rotor/rotor.json | 17 + .../models/block/stator/block_corner.json | 43 + .../models/block/stator/block_corner_up.json | 45 + .../models/block/stator/block_side.json | 23 + .../block/stator/block_side_rotated.json | 23 + .../models/block/stator/block_unused.json | 43 + .../models/block/stator/item.json | 44 + .../models/block/stator/output.json | 18 + .../models/block/steel_cogwheel.json | 106 ++ .../block/steel_cogwheel_shaftless.json | 91 ++ .../models/block/steel_gearbox/block.json | 48 + .../models/block/steel_gearbox/item.json | 97 ++ .../block/steel_gearbox/item_vertical.json | 95 ++ .../models/block/surface_scanner/block.json | 95 ++ .../models/block/voltmeter/block.json | 83 ++ .../models/block/voltmeter/dial.json | 24 + .../models/block/voltmeter/item.json | 71 ++ .../models/block/welding_machine/block.json | 46 + .../models/block/welding_machine/item.json | 123 ++ .../models/block/zinc_frame/block.json | 166 +++ .../models/block/zinc_frame/item.json | 166 +++ .../models/block/zinc_truss.json | 106 ++ .../item/advanced_potato_cannon/item.json | 131 ++ .../models/item/flamethrower/item.json | 137 +++ .../large_aluminum_cogwheel_shaftless.json | 189 +++ .../large_steel_cogwheel_shaftless.json | 226 ++++ .../models/steel_cogwheel_shaftless.json | 91 ++ .../particles/electric_spark.json | 5 + .../createindustry/ponder/large_generator.nbt | Bin 0 -> 850 bytes .../textures/block/accumulator.png | Bin 0 -> 422 bytes .../textures/block/accumulator_side.png | Bin 0 -> 193 bytes .../block/accumulator_side_connected.png | Bin 0 -> 230 bytes .../textures/block/aluminum_cable_hub.png | Bin 0 -> 277 bytes .../textures/block/aluminum_coghweel.png | Bin 0 -> 273 bytes .../textures/block/aluminum_frame_2.png | Bin 0 -> 289 bytes .../textures/block/bars/cast_iron_bars.png | Bin 0 -> 257 bytes .../block/bars/cast_iron_bars_edge.png | Bin 0 -> 190 bytes .../textures/block/bars/lead_bars.png | Bin 0 -> 252 bytes .../textures/block/bars/lead_bars_edge.png | Bin 0 -> 202 bytes .../textures/block/bars/nickel_bars.png | Bin 0 -> 245 bytes .../textures/block/bars/nickel_bars_edge.png | Bin 0 -> 198 bytes .../textures/block/brass_cable_hub.png | Bin 0 -> 302 bytes .../textures/block/brass_frame.png | Bin 0 -> 271 bytes .../textures/block/brass_truss.png | Bin 0 -> 258 bytes .../textures/block/cable_connector.png | Bin 0 -> 307 bytes .../textures/block/cable_tube.png | Bin 0 -> 297 bytes .../textures/block/capacitor.png | Bin 0 -> 358 bytes .../textures/block/capacitor_side.png | Bin 0 -> 229 bytes .../block/capacitor_side_connected.png | Bin 0 -> 269 bytes .../textures/block/cast_iron_frame_2.png | Bin 0 -> 271 bytes .../textures/block/cast_iron_truss.png | Bin 0 -> 245 bytes .../textures/block/caution_block/blue.png | Bin 0 -> 412 bytes .../textures/block/caution_block/brown.png | Bin 0 -> 402 bytes .../textures/block/caution_block/cyan.png | Bin 0 -> 409 bytes .../textures/block/caution_block/gray.png | Bin 0 -> 373 bytes .../textures/block/caution_block/green.png | Bin 0 -> 420 bytes .../block/caution_block/light_blue.png | Bin 0 -> 393 bytes .../block/caution_block/light_gray.png | Bin 0 -> 382 bytes .../textures/block/caution_block/lime.png | Bin 0 -> 407 bytes .../textures/block/caution_block/magenta.png | Bin 0 -> 403 bytes .../textures/block/caution_block/orange.png | Bin 0 -> 419 bytes .../textures/block/caution_block/pink.png | Bin 0 -> 415 bytes .../textures/block/caution_block/purple.png | Bin 0 -> 420 bytes .../textures/block/caution_block/red.png | Bin 0 -> 405 bytes .../textures/block/caution_block/white.png | Bin 0 -> 389 bytes .../textures/block/caution_block/yellow.png | Bin 0 -> 408 bytes .../textures/block/cinderblock.png | Bin 0 -> 210 bytes .../textures/block/cinderblock_top.png | Bin 0 -> 199 bytes .../textures/block/cinderflourblock.png | Bin 0 -> 215 bytes .../textures/block/cinderflourblock_top.png | Bin 0 -> 212 bytes .../textures/block/converter_side.png | Bin 0 -> 267 bytes .../textures/block/converter_top.png | Bin 0 -> 249 bytes .../textures/block/copper_cable_hub.png | Bin 0 -> 288 bytes .../textures/block/copper_coil.png | Bin 0 -> 187 bytes .../textures/block/copper_coil_arrow.png | Bin 0 -> 332 bytes .../textures/block/copper_coil_top.png | Bin 0 -> 246 bytes .../textures/block/copper_frame.png | Bin 0 -> 273 bytes .../textures/block/copper_truss.png | Bin 0 -> 258 bytes .../textures/block/copycat_cable_block.png | Bin 0 -> 253 bytes .../textures/block/creative_generator.png | Bin 0 -> 250 bytes .../textures/block/deepslate_lead_ore.png | Bin 0 -> 290 bytes .../textures/block/deepslate_lithium_ore.png | Bin 0 -> 279 bytes .../textures/block/deepslate_nickel_ore.png | Bin 0 -> 316 bytes .../textures/block/diagonal_cable_block.png | Bin 0 -> 321 bytes .../textures/block/diesel_engine_linkage.png | Bin 0 -> 646 bytes .../textures/block/electric_casing.png | Bin 0 -> 284 bytes .../block/electric_casing_connected.png | Bin 0 -> 4021 bytes .../textures/block/electric_motor.png | Bin 0 -> 849 bytes .../textures/block/epic_party_light_bulb.png | Bin 0 -> 352 bytes .../createindustry/textures/block/firebox.png | Bin 0 -> 303 bytes .../textures/block/firebox_lit.png | Bin 0 -> 501 bytes .../textures/block/firebox_lit.png.mcmeta | 5 + .../createindustry/textures/block/furnác.png | Bin 0 -> 3731 bytes .../textures/block/galvanic_cell.png | Bin 0 -> 846 bytes .../textures/block/generator.png | Bin 0 -> 545 bytes .../textures/block/gildidier_blackstone.png | Bin 0 -> 51332 bytes .../textures/block/heavy_cable_hub.png | Bin 0 -> 309 bytes ...inery_encased_cogwheel_side_horizontal.png | Bin 0 -> 254 bytes ...sed_cogwheel_side_horizontal_connected.png | Bin 0 -> 302 bytes .../textures/block/ladder_cast_iron.png | Bin 0 -> 154 bytes .../textures/block/ladder_cast_iron_hoop.png | Bin 0 -> 160 bytes .../textures/block/ladder_lead.png | Bin 0 -> 150 bytes .../textures/block/ladder_lead_hoop.png | Bin 0 -> 165 bytes .../textures/block/ladder_nickel.png | Bin 0 -> 152 bytes .../textures/block/ladder_nickel_hoop.png | Bin 0 -> 169 bytes .../block/large_aluminum_coghweel.png | Bin 0 -> 405 bytes .../block/large_aluminum_cogwheel.png | Bin 0 -> 329 bytes .../block/large_aluminum_cogwheel_2.png | Bin 0 -> 292 bytes .../textures/block/large_generator.png | Bin 0 -> 1449 bytes .../textures/block/large_steel_cogwheel.png | Bin 0 -> 456 bytes .../textures/block/lead_block.png | Bin 0 -> 211 bytes .../textures/block/lead_block_connected.png | Bin 0 -> 2798 bytes .../textures/block/lead_flywheel.png | Bin 0 -> 730 bytes .../textures/block/lead_frame_2.png | Bin 0 -> 244 bytes .../textures/block/lead_glass.png | Bin 0 -> 232 bytes .../textures/block/lead_glass_connected.png | Bin 0 -> 1860 bytes .../textures/block/lead_glass_item.png | Bin 0 -> 174 bytes .../textures/block/lead_ore.png | Bin 0 -> 284 bytes .../textures/block/lead_truss.png | Bin 0 -> 250 bytes .../createindustry/textures/block/light.png | Bin 0 -> 147 bytes .../textures/block/light_blue_metal_plate.png | Bin 0 -> 262 bytes .../textures/block/light_bulb.png | Bin 0 -> 352 bytes .../textures/block/lithium_block.png | Bin 0 -> 261 bytes .../textures/block/lithium_ore.png | Bin 0 -> 268 bytes .../textures/block/lithium_torch.png | Bin 0 -> 164 bytes .../textures/block/low_grade_fuel_engine.png | Bin 0 -> 1344 bytes .../textures/block/neon_tube.png | Bin 0 -> 233 bytes .../textures/block/nickel_block.png | Bin 0 -> 263 bytes .../textures/block/nickel_flywheel.png | Bin 0 -> 740 bytes .../textures/block/nickel_frame.png | Bin 0 -> 245 bytes .../textures/block/nickel_ore.png | Bin 0 -> 308 bytes .../textures/block/nickel_truss.png | Bin 0 -> 252 bytes .../alternatives/galena_cut_basketweave.png | Bin 0 -> 674 bytes .../alternatives/galena_cut_bond.png | Bin 0 -> 688 bytes .../alternatives/galena_cut_herring.png | Bin 0 -> 589 bytes .../alternatives/galena_cut_indented.png | Bin 0 -> 521 bytes .../stone_types/brick/galena_cut_brick.png | Bin 0 -> 455 bytes .../stone_types/cap/galena_cut_cap.png | Bin 0 -> 463 bytes .../cap/galena_cut_cap_connected.png | Bin 0 -> 3909 bytes .../palettes/stone_types/cut/galena_cut.png | Bin 0 -> 395 bytes .../layered/galena_cut_layered.png | Bin 0 -> 732 bytes .../layered/galena_cut_layered_connected.png | Bin 0 -> 458 bytes .../palettes/stone_types/natural/galena_0.png | Bin 0 -> 254 bytes .../palettes/stone_types/natural/galena_1.png | Bin 0 -> 254 bytes .../palettes/stone_types/natural/galena_2.png | Bin 0 -> 270 bytes .../palettes/stone_types/natural/galena_3.png | Bin 0 -> 264 bytes .../stone_types/pillar/galena_cut_pillar.png | Bin 0 -> 547 bytes .../pillar/galena_cut_pillar_connected.png | Bin 0 -> 1373 bytes .../polished/galena_cut_polished.png | Bin 0 -> 448 bytes .../stone_types/slab/galena_cut_slab.png | Bin 0 -> 456 bytes .../small_brick/galena_cut_small_brick.png | Bin 0 -> 565 bytes .../textures/block/polarizer.png | Bin 0 -> 1471 bytes .../textures/block/pumpjack_crank.png | Bin 0 -> 725 bytes .../textures/block/resistor.png | Bin 0 -> 546 bytes .../textures/block/rgb_light_bulb.png | Bin 0 -> 352 bytes .../textures/block/steel_cable_hub.png | Bin 0 -> 282 bytes .../textures/block/steel_casing_cable_hub.png | Bin 0 -> 356 bytes .../textures/block/steel_coghweel.png | Bin 0 -> 322 bytes ...steel_encased_cogwheel_side_horizontal.png | Bin 0 -> 472 bytes ...sed_cogwheel_side_horizontal_connected.png | Bin 0 -> 883 bytes .../textures/block/the_rock.png | Bin 0 -> 5839 bytes .../textures/block/voltage_cube.png | Bin 0 -> 248 bytes .../textures/block/voltmeter.png | Bin 0 -> 537 bytes .../textures/block/zinc_frame.png | Bin 0 -> 272 bytes .../textures/block/zinc_truss.png | Bin 0 -> 258 bytes .../textures/entity/lithium_spark.png | Bin 0 -> 161 bytes .../createindustry/textures/fluid/air.png | Bin 0 -> 11808 bytes .../createindustry/textures/fluid/neon.png | Bin 0 -> 11808 bytes .../fluid/pink_cooling_fluid_flow.png | Bin 0 -> 18428 bytes .../fluid/pink_cooling_fluid_flow.png.mcmeta | 5 + .../fluid/pink_cooling_fluid_still.png | Bin 0 -> 11292 bytes .../fluid/pink_cooling_fluid_still.png.mcmeta | 5 + .../textures/fluid/sulfuric_acid_flow.png | Bin 0 -> 16644 bytes .../fluid/sulfuric_acid_flow.png.mcmeta | 5 + .../textures/fluid/sulfuric_acid_still.png | Bin 0 -> 6047 bytes .../fluid/sulfuric_acid_still.png.mcmeta | 5 + .../textures/item/advanced_potato_cannon.png | Bin 0 -> 1024 bytes .../textures/item/air_bucket.png | Bin 0 -> 279 bytes .../textures/item/aluminum_axe.png | Bin 0 -> 185 bytes .../textures/item/aluminum_hoe.png | Bin 0 -> 253 bytes .../textures/item/aluminum_pickaxe.png | Bin 0 -> 202 bytes .../textures/item/aluminum_shovel.png | Bin 0 -> 162 bytes .../textures/item/aluminum_sword.png | Bin 0 -> 205 bytes .../textures/item/aluminum_wire.png | Bin 0 -> 243 bytes .../textures/item/bottle_of_battery_acid.png | Bin 0 -> 218 bytes .../textures/item/bottle_of_concrete.png | Bin 0 -> 216 bytes .../textures/item/butane_bucket.png | Bin 0 -> 279 bytes .../textures/item/capacitor_.png | Bin 0 -> 276 bytes .../textures/item/carbon_dioxide_bucket.png | Bin 0 -> 279 bytes .../textures/item/cinderblock.png | Bin 0 -> 246 bytes .../textures/item/cinderflourblock.png | Bin 0 -> 282 bytes .../textures/item/copper_cable.png | Bin 0 -> 242 bytes .../textures/item/copper_sulfate.png | Bin 0 -> 266 bytes .../textures/item/copper_wire.png | Bin 0 -> 244 bytes .../textures/item/ethylene_bucket.png | Bin 0 -> 279 bytes .../textures/item/flamethrower.png | Bin 0 -> 777 bytes .../createindustry/textures/item/lead_axe.png | Bin 0 -> 191 bytes .../createindustry/textures/item/lead_hoe.png | Bin 0 -> 248 bytes .../textures/item/lead_ingot.png | Bin 0 -> 212 bytes .../textures/item/lead_pickaxe.png | Bin 0 -> 192 bytes .../textures/item/lead_shovel.png | Bin 0 -> 161 bytes .../textures/item/lead_sword.png | Bin 0 -> 214 bytes .../textures/item/lithium_blade.png | Bin 0 -> 297 bytes .../textures/item/lithium_blade_lit.png | Bin 0 -> 498 bytes .../item/lithium_blade_lit.png.mcmeta | 5 + .../textures/item/lithium_charge.png | Bin 0 -> 237 bytes .../textures/item/lithium_ingot.png | Bin 0 -> 268 bytes .../textures/item/lpg_bucket.png | Bin 0 -> 279 bytes .../textures/item/magnetic_ingot.png | Bin 0 -> 312 bytes .../textures/item/napalm_potato.png | Bin 0 -> 291 bytes .../textures/item/neon_bucket.png | Bin 0 -> 279 bytes .../textures/item/nickel_ingot.png | Bin 0 -> 213 bytes .../item/pink_cooling_fluid_bucket.png | Bin 0 -> 227 bytes .../textures/item/pipe_bomb.png | Bin 0 -> 274 bytes .../textures/item/propane_bucket.png | Bin 0 -> 279 bytes .../textures/item/propylene_bucket.png | Bin 0 -> 279 bytes .../createindustry/textures/item/raw_lead.png | Bin 0 -> 300 bytes .../textures/item/raw_lithium.png | Bin 0 -> 279 bytes .../textures/item/raw_nickel.png | Bin 0 -> 210 bytes .../textures/item/resistor_.png | Bin 0 -> 256 bytes .../textures/item/steel_axe.png | Bin 0 -> 192 bytes .../textures/item/steel_boots.png | Bin 0 -> 241 bytes .../textures/item/steel_chestplate.png | Bin 0 -> 274 bytes .../textures/item/steel_helmet.png | Bin 0 -> 235 bytes .../textures/item/steel_hoe.png | Bin 0 -> 253 bytes .../textures/item/steel_leggings.png | Bin 0 -> 242 bytes .../textures/item/steel_pickaxe.png | Bin 0 -> 200 bytes .../textures/item/steel_shovel.png | Bin 0 -> 167 bytes .../textures/item/steel_sword.png | Bin 0 -> 215 bytes .../textures/item/sulfuric_acid_bucket.png | Bin 0 -> 287 bytes .../textures/item/synthetic_leather.png | Bin 0 -> 262 bytes .../textures/item/synthetic_string.png | Bin 0 -> 241 bytes .../textures/item/zinc_sulfate.png | Bin 0 -> 246 bytes .../textures/mob_effect/hellfire.png | Bin 0 -> 241 bytes .../textures/models/armor/steel_layer_1.png | Bin 0 -> 676 bytes .../textures/models/armor/steel_layer_2.png | Bin 0 -> 329 bytes .../textures/particle/electric_spark.png | Bin 0 -> 148 bytes .../forge/biome_modifier/yeehaw3.json | 6 + .../railways_liquid_fuel/diesel.json | 6 + .../railways_liquid_fuel/naphtha.json | 6 + .../recipes/coking/charcoal.json | 22 + .../full_block/black_concrete.json | 17 + .../full_block/blue_concrete.json | 17 + .../full_block/brown_concrete.json | 17 + .../full_block/cyan_concrete.json | 17 + .../full_block/gray_concrete.json | 17 + .../full_block/green_concrete.json | 17 + .../full_block/light_blue_concrete.json | 17 + .../full_block/light_gray_concrete.json | 17 + .../full_block/lime_concrete.json | 17 + .../full_block/magenta_concrete.json | 17 + .../full_block/orange_concrete.json | 17 + .../full_block/pink_concrete.json | 17 + .../full_block/purple_concrete.json | 17 + .../full_block/red_concrete.json | 17 + .../full_block/white_concrete.json | 17 + .../full_block/yellow_concrete.json | 17 + .../recipes/compacting/bitumen.json | 18 + .../recipes/compacting/cinderflourblock.json | 18 + .../recipes/crafting/accumulator.json | 29 + .../recipes/crafting/aluminum_coghweel.json | 14 + .../recipes/crafting/armor/steel_boots.json | 20 + .../crafting/armor/steel_chestplate.json | 20 + .../recipes/crafting/armor/steel_helmet.json | 20 + .../crafting/armor/steel_leggings.json | 20 + .../recipes/crafting/battery.json | 29 + .../recipes/crafting/cable_connector.json | 23 + .../recipes/crafting/cable_tube.json | 23 + .../recipes/crafting/capacitor.json | 26 + .../recipes/crafting/capacitor_item.json | 28 + .../recipes/crafting/cinder_block.json | 20 + .../recipes/crafting/cinderflour_block.json | 20 + .../recipes/crafting/converter.json | 26 + .../recipes/crafting/copper_coil.json | 23 + .../recipes/crafting/copper_wire.json | 26 + .../recipes/crafting/copper_wire_plastic.json | 26 + .../recipes/crafting/copycat_cable_block.json | 23 + .../crafting/diagonal_cable_block.json | 23 + .../recipes/crafting/electric_casing.json | 33 + .../recipes/crafting/electric_motor.json | 35 + .../recipes/crafting/energy_meter.json | 20 + .../crafting/epic_party_light_bulb.json | 30 + .../recipes/crafting/firebox.json | 26 + .../recipes/crafting/galvanic_cell.json | 41 + .../crafting/glass_cable_connector.json | 23 + .../recipes/crafting/hubs/aluminum.json | 23 + .../recipes/crafting/hubs/brass.json | 23 + .../recipes/crafting/hubs/copper.json | 23 + .../recipes/crafting/hubs/heavy.json | 23 + .../recipes/crafting/hubs/steel.json | 23 + .../recipes/crafting/hubs/steel_casing.json | 23 + .../crafting/large_aluminum_coghweel.json | 17 + .../crafting/large_steel_coghweel.json | 17 + .../recipes/crafting/lead_block.json | 20 + .../recipes/crafting/lead_from_block.json | 20 + .../recipes/crafting/lead_glass.json | 23 + .../recipes/crafting/light_bulb.json | 27 + .../recipes/crafting/lithium_block.json | 20 + .../recipes/crafting/lithium_charge.json | 22 + .../crafting/lithium_charge_plastic.json | 22 + .../recipes/crafting/lithium_from_block.json | 20 + .../recipes/crafting/lithium_torch.json | 22 + .../crafting/low_grade_fuel_engine.json | 32 + .../recipes/crafting/neon_tube.json | 22 + .../recipes/crafting/nickel_block.json | 20 + .../recipes/crafting/nickel_from_block.json | 20 + .../recipes/crafting/paper.json | 20 + .../recipes/crafting/pipe_bomb.json | 23 + .../recipes/crafting/polarizer.json | 32 + .../recipes/crafting/resistor.json | 29 + .../recipes/crafting/resistor_item.json | 28 + .../recipes/crafting/rgb_light_bulb.json | 33 + .../recipes/crafting/steel_coghweel.json | 14 + .../recipes/crafting/steel_gearbox.json | 15 + .../crafting/steel_gearbox_from_vertical.json | 11 + .../recipes/crafting/synthetic_string.json | 20 + .../recipes/crafting/tools/aluminum_axe.json | 24 + .../recipes/crafting/tools/aluminum_hoe.json | 24 + .../crafting/tools/aluminum_pickaxe.json | 24 + .../crafting/tools/aluminum_shovel.json | 24 + .../crafting/tools/aluminum_sword.json | 24 + .../recipes/crafting/tools/lead_axe.json | 24 + .../recipes/crafting/tools/lead_hoe.json | 24 + .../recipes/crafting/tools/lead_pickaxe.json | 24 + .../recipes/crafting/tools/lead_shovel.json | 24 + .../recipes/crafting/tools/lead_sword.json | 24 + .../recipes/crafting/tools/steel_axe.json | 24 + .../recipes/crafting/tools/steel_hoe.json | 24 + .../recipes/crafting/tools/steel_pickaxe.json | 24 + .../recipes/crafting/tools/steel_shovel.json | 24 + .../recipes/crafting/tools/steel_sword.json | 24 + .../crafting/vertical_steel_gearbox.json | 11 + .../recipes/crafting/voltmeter.json | 24 + .../crafting/voltmeter_from_energy_meter.json | 20 + .../recipes/crafting/welding_machine.json | 35 + .../recipes/crushing/copper_sulfate.json | 29 + .../recipes/crushing/galena_recycling.json | 19 + .../recipes/distillation/heavy_oil.json | 23 + .../recipes/distillation/naphtha.json | 23 + .../recipes/filling/air_tank.json | 19 + .../filling/bottle_of_battery_acid.json | 19 + .../recipes/filling/bottle_of_concrete.json | 19 + .../recipes/filling/butane_tank.json | 19 + .../recipes/filling/carbon_dioxide_tank.json | 19 + .../recipes/filling/ethylene_tank.json | 19 + .../recipes/filling/lpg_tank.json | 19 + .../recipes/filling/napalm_potato.json | 19 + .../recipes/filling/neon_tank.json | 19 + .../recipes/filling/propane_tank.json | 19 + .../recipes/filling/propylene_tank.json | 19 + .../advanced_potato_cannon.json | 25 + .../mechanical_crafting/flamethrower.json | 28 + .../mechanical_crafting/generator.json | 30 + .../mechanical_crafting/lithium_blade.json | 44 + .../recipes/mechanical_crafting/rotor.json | 30 + .../recipes/mechanical_crafting/stator.json | 31 + .../recipes/mixing/copper_sulfate.json | 21 + .../recipes/mixing/hellfire_potion.json | 30 + .../createindustry/recipes/mixing/neon.json | 19 + .../recipes/mixing/sulfuric_acid.json | 24 + .../recipes/mixing/zinc_sulfate.json | 21 + .../recipes/pressing/synthetic_leather.json | 13 + .../smelting/blasting/aluminum_ingot.json | 10 + .../recipes/smelting/blasting/lead_ingot.json | 10 + .../blasting/lead_ingot_from_crushed.json | 10 + .../smelting/blasting/lithium_ingot.json | 10 + .../smelting/blasting/nickel_ingot.json | 10 + .../blasting/nickel_ingot_from_crushed.json | 10 + .../recipes/smelting/lead_ingot.json | 10 + .../smelting/lead_ingot_from_crushed.json | 10 + .../recipes/smelting/lithium_ingot.json | 10 + .../recipes/smelting/nickel_ingot.json | 10 + .../smelting/nickel_ingot_from_crushed.json | 10 + .../recipes/stonecutting/aluminum_frame.json | 9 + .../recipes/stonecutting/aluminum_wire.json | 9 + .../recipes/stonecutting/cast_iron_frame.json | 9 + .../recipes/stonecutting/cast_iron_truss.json | 9 + .../caution_blocks/blue_caution_block.json | 9 + .../caution_blocks/brown_caution_block.json | 9 + .../caution_blocks/cyan_caution_block.json | 9 + .../caution_blocks/gray_caution_block.json | 9 + .../caution_blocks/green_caution_block.json | 9 + .../light_blue_caution_block.json | 9 + .../light_gray_caution_block.json | 9 + .../caution_blocks/lime_caution_block.json | 9 + .../caution_blocks/magenta_caution_block.json | 9 + .../caution_blocks/orange_caution_block.json | 9 + .../caution_blocks/pink_caution_block.json | 9 + .../caution_blocks/purple_caution_block.json | 9 + .../caution_blocks/white_caution_block.json | 9 + .../recipes/stonecutting/copper_wire.json | 9 + .../stonecutting/hardened_planks_slab.json | 9 + .../recipes/stonecutting/nickel_frame.json | 9 + .../recipes/stonecutting/nickel_truss.json | 9 + .../stonecutting/rebar_concrete_stairs.json | 9 + .../stonecutting/rebar_concrete_wall.json | 9 + 1432 files changed, 45229 insertions(+) create mode 100644 src/generated/resources/assets/createindustry/blockstates/accumulator.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/aluminum_cable_hub.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/aluminum_cogwheel.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/aluminum_frame.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/blue_caution_block.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/brass_cable_hub.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/brass_frame.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/brass_truss.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/brown_caution_block.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/cable_connector.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/cable_tube.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/capacitor.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/cast_iron_bars.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/cast_iron_frame.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/cast_iron_ladder.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/cast_iron_truss.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/cinder_block.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/cinderflour_block.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/converter.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/copper_cable_hub.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/copper_coil.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/copper_frame.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/copper_truss.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/copycat_cable_base.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/copycat_cable_block.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/creative_generator.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/crude_oil.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/cut_galena.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/cut_galena_brick_slab.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/cut_galena_brick_stairs.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/cut_galena_brick_wall.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/cut_galena_bricks.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/cut_galena_slab.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/cut_galena_stairs.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/cut_galena_wall.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/cyan_caution_block.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/deepslate_lead_ore.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/deepslate_lithium_ore.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/deepslate_nickel_ore.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/diagonal_cable_block.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/electric_casing.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/electric_motor.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/energy_meter.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/firebox.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/galena.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/galena_pillar.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/galvanic_cell.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/generator.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/gray_caution_block.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/green_caution_block.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/hardened_planks_slab.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/heavy_cable_hub.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/heavy_casing_encased_aluminum_cogwheel.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/heavy_casing_encased_cogwheel.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/heavy_casing_encased_large_aluminum_cogwheel.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/heavy_casing_encased_large_cogwheel.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/heavy_casing_encased_large_steel_cogwheel.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/heavy_casing_encased_shaft.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/heavy_casing_encased_steel_cogwheel.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/large_aluminum_cogwheel.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/large_steel_cogwheel.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/layered_galena.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/lead_bars.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/lead_block.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/lead_flywheel.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/lead_frame.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/lead_glass.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/lead_ladder.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/lead_ore.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/lead_truss.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/light_blue_caution_block.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/light_bulb.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/light_gray_caution_block.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/lime_caution_block.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/lithium_block.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/lithium_ore.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/lithium_torch.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/low_grade_fuel_engine.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/magenta_caution_block.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/neon_tube.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/nickel_bars.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/nickel_block.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/nickel_flywheel.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/nickel_frame.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/nickel_ladder.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/nickel_ore.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/nickel_truss.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/orange_caution_block.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/pink_caution_block.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/polarizer.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/polished_cut_galena.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/polished_cut_galena_slab.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/polished_cut_galena_stairs.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/polished_cut_galena_wall.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/purple_caution_block.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/resistor.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/rgb_light_bulb.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/rotor.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/small_galena_brick_slab.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/small_galena_brick_stairs.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/small_galena_brick_wall.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/small_galena_bricks.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/stator.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/steel_cable_hub.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/steel_casing_cable_hub.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/steel_cogwheel.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/steel_encased_aluminum_cogwheel.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/steel_encased_cogwheel.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/steel_encased_large_aluminum_cogwheel.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/steel_encased_large_cogwheel.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/steel_encased_large_steel_cogwheel.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/steel_encased_shaft.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/steel_encased_steel_cogwheel.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/steel_gearbox.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/sulfuric_acid.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/voltage_cube.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/voltmeter.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/white_caution_block.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/yellow_caution_block.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/zinc_frame.json create mode 100644 src/generated/resources/assets/createindustry/blockstates/zinc_truss.json create mode 100644 src/generated/resources/assets/createindustry/lang/en_ud.json create mode 100644 src/generated/resources/assets/createindustry/lang/en_us.json create mode 100644 src/generated/resources/assets/createindustry/models/block/aluminum_cable_hub.json create mode 100644 src/generated/resources/assets/createindustry/models/block/blue_caution_block.json create mode 100644 src/generated/resources/assets/createindustry/models/block/brass_cable_hub.json create mode 100644 src/generated/resources/assets/createindustry/models/block/brown_caution_block.json create mode 100644 src/generated/resources/assets/createindustry/models/block/cast_iron_cap.json create mode 100644 src/generated/resources/assets/createindustry/models/block/cast_iron_cap_alt.json create mode 100644 src/generated/resources/assets/createindustry/models/block/cast_iron_ladder.json create mode 100644 src/generated/resources/assets/createindustry/models/block/cast_iron_post.json create mode 100644 src/generated/resources/assets/createindustry/models/block/cast_iron_post_ends.json create mode 100644 src/generated/resources/assets/createindustry/models/block/cast_iron_side.json create mode 100644 src/generated/resources/assets/createindustry/models/block/cast_iron_side_alt.json create mode 100644 src/generated/resources/assets/createindustry/models/block/copper_cable_hub.json create mode 100644 src/generated/resources/assets/createindustry/models/block/creative_generator.json create mode 100644 src/generated/resources/assets/createindustry/models/block/crude_oil.json create mode 100644 src/generated/resources/assets/createindustry/models/block/cut_galena.json create mode 100644 src/generated/resources/assets/createindustry/models/block/cut_galena_brick_slab.json create mode 100644 src/generated/resources/assets/createindustry/models/block/cut_galena_brick_slab_top.json create mode 100644 src/generated/resources/assets/createindustry/models/block/cut_galena_brick_stairs.json create mode 100644 src/generated/resources/assets/createindustry/models/block/cut_galena_brick_stairs_inner.json create mode 100644 src/generated/resources/assets/createindustry/models/block/cut_galena_brick_stairs_outer.json create mode 100644 src/generated/resources/assets/createindustry/models/block/cut_galena_bricks.json create mode 100644 src/generated/resources/assets/createindustry/models/block/cut_galena_bricks_wall_post.json create mode 100644 src/generated/resources/assets/createindustry/models/block/cut_galena_bricks_wall_side.json create mode 100644 src/generated/resources/assets/createindustry/models/block/cut_galena_bricks_wall_side_tall.json create mode 100644 src/generated/resources/assets/createindustry/models/block/cut_galena_slab.json create mode 100644 src/generated/resources/assets/createindustry/models/block/cut_galena_slab_top.json create mode 100644 src/generated/resources/assets/createindustry/models/block/cut_galena_stairs.json create mode 100644 src/generated/resources/assets/createindustry/models/block/cut_galena_stairs_inner.json create mode 100644 src/generated/resources/assets/createindustry/models/block/cut_galena_stairs_outer.json create mode 100644 src/generated/resources/assets/createindustry/models/block/cut_galena_wall_post.json create mode 100644 src/generated/resources/assets/createindustry/models/block/cut_galena_wall_side.json create mode 100644 src/generated/resources/assets/createindustry/models/block/cut_galena_wall_side_tall.json create mode 100644 src/generated/resources/assets/createindustry/models/block/cyan_caution_block.json create mode 100644 src/generated/resources/assets/createindustry/models/block/deepslate_lead_ore.json create mode 100644 src/generated/resources/assets/createindustry/models/block/deepslate_lithium_ore.json create mode 100644 src/generated/resources/assets/createindustry/models/block/deepslate_nickel_ore.json create mode 100644 src/generated/resources/assets/createindustry/models/block/electric_casing.json create mode 100644 src/generated/resources/assets/createindustry/models/block/galena_natural_0.json create mode 100644 src/generated/resources/assets/createindustry/models/block/galena_natural_1.json create mode 100644 src/generated/resources/assets/createindustry/models/block/galena_natural_2.json create mode 100644 src/generated/resources/assets/createindustry/models/block/galena_natural_3.json create mode 100644 src/generated/resources/assets/createindustry/models/block/galena_pillar.json create mode 100644 src/generated/resources/assets/createindustry/models/block/galena_pillar_horizontal.json create mode 100644 src/generated/resources/assets/createindustry/models/block/gray_caution_block.json create mode 100644 src/generated/resources/assets/createindustry/models/block/green_caution_block.json create mode 100644 src/generated/resources/assets/createindustry/models/block/hardened_planks_bottom.json create mode 100644 src/generated/resources/assets/createindustry/models/block/hardened_planks_top.json create mode 100644 src/generated/resources/assets/createindustry/models/block/heavy_cable_hub.json create mode 100644 src/generated/resources/assets/createindustry/models/block/heavy_casing_encased_aluminum_cogwheel.json create mode 100644 src/generated/resources/assets/createindustry/models/block/heavy_casing_encased_aluminum_cogwheel_bottom.json create mode 100644 src/generated/resources/assets/createindustry/models/block/heavy_casing_encased_aluminum_cogwheel_top.json create mode 100644 src/generated/resources/assets/createindustry/models/block/heavy_casing_encased_aluminum_cogwheel_top_bottom.json create mode 100644 src/generated/resources/assets/createindustry/models/block/heavy_casing_encased_cogwheel.json create mode 100644 src/generated/resources/assets/createindustry/models/block/heavy_casing_encased_cogwheel_bottom.json create mode 100644 src/generated/resources/assets/createindustry/models/block/heavy_casing_encased_cogwheel_top.json create mode 100644 src/generated/resources/assets/createindustry/models/block/heavy_casing_encased_cogwheel_top_bottom.json create mode 100644 src/generated/resources/assets/createindustry/models/block/heavy_casing_encased_large_aluminum_cogwheel.json create mode 100644 src/generated/resources/assets/createindustry/models/block/heavy_casing_encased_large_aluminum_cogwheel_bottom.json create mode 100644 src/generated/resources/assets/createindustry/models/block/heavy_casing_encased_large_aluminum_cogwheel_top.json create mode 100644 src/generated/resources/assets/createindustry/models/block/heavy_casing_encased_large_aluminum_cogwheel_top_bottom.json create mode 100644 src/generated/resources/assets/createindustry/models/block/heavy_casing_encased_large_cogwheel.json create mode 100644 src/generated/resources/assets/createindustry/models/block/heavy_casing_encased_large_cogwheel_bottom.json create mode 100644 src/generated/resources/assets/createindustry/models/block/heavy_casing_encased_large_cogwheel_top.json create mode 100644 src/generated/resources/assets/createindustry/models/block/heavy_casing_encased_large_cogwheel_top_bottom.json create mode 100644 src/generated/resources/assets/createindustry/models/block/heavy_casing_encased_large_steel_cogwheel.json create mode 100644 src/generated/resources/assets/createindustry/models/block/heavy_casing_encased_large_steel_cogwheel_bottom.json create mode 100644 src/generated/resources/assets/createindustry/models/block/heavy_casing_encased_large_steel_cogwheel_top.json create mode 100644 src/generated/resources/assets/createindustry/models/block/heavy_casing_encased_large_steel_cogwheel_top_bottom.json create mode 100644 src/generated/resources/assets/createindustry/models/block/heavy_casing_encased_steel_cogwheel.json create mode 100644 src/generated/resources/assets/createindustry/models/block/heavy_casing_encased_steel_cogwheel_bottom.json create mode 100644 src/generated/resources/assets/createindustry/models/block/heavy_casing_encased_steel_cogwheel_top.json create mode 100644 src/generated/resources/assets/createindustry/models/block/heavy_casing_encased_steel_cogwheel_top_bottom.json create mode 100644 src/generated/resources/assets/createindustry/models/block/layered_galena.json create mode 100644 src/generated/resources/assets/createindustry/models/block/lead_block.json create mode 100644 src/generated/resources/assets/createindustry/models/block/lead_cap.json create mode 100644 src/generated/resources/assets/createindustry/models/block/lead_cap_alt.json create mode 100644 src/generated/resources/assets/createindustry/models/block/lead_glass.json create mode 100644 src/generated/resources/assets/createindustry/models/block/lead_ladder.json create mode 100644 src/generated/resources/assets/createindustry/models/block/lead_ore.json create mode 100644 src/generated/resources/assets/createindustry/models/block/lead_post.json create mode 100644 src/generated/resources/assets/createindustry/models/block/lead_post_ends.json create mode 100644 src/generated/resources/assets/createindustry/models/block/lead_side.json create mode 100644 src/generated/resources/assets/createindustry/models/block/lead_side_alt.json create mode 100644 src/generated/resources/assets/createindustry/models/block/light_blue_caution_block.json create mode 100644 src/generated/resources/assets/createindustry/models/block/light_gray_caution_block.json create mode 100644 src/generated/resources/assets/createindustry/models/block/lime_caution_block.json create mode 100644 src/generated/resources/assets/createindustry/models/block/lithium_block.json create mode 100644 src/generated/resources/assets/createindustry/models/block/lithium_ore.json create mode 100644 src/generated/resources/assets/createindustry/models/block/magenta_caution_block.json create mode 100644 src/generated/resources/assets/createindustry/models/block/nickel_block.json create mode 100644 src/generated/resources/assets/createindustry/models/block/nickel_cap.json create mode 100644 src/generated/resources/assets/createindustry/models/block/nickel_cap_alt.json create mode 100644 src/generated/resources/assets/createindustry/models/block/nickel_ladder.json create mode 100644 src/generated/resources/assets/createindustry/models/block/nickel_ore.json create mode 100644 src/generated/resources/assets/createindustry/models/block/nickel_post.json create mode 100644 src/generated/resources/assets/createindustry/models/block/nickel_post_ends.json create mode 100644 src/generated/resources/assets/createindustry/models/block/nickel_side.json create mode 100644 src/generated/resources/assets/createindustry/models/block/nickel_side_alt.json create mode 100644 src/generated/resources/assets/createindustry/models/block/orange_caution_block.json create mode 100644 src/generated/resources/assets/createindustry/models/block/pink_caution_block.json create mode 100644 src/generated/resources/assets/createindustry/models/block/polished_cut_galena.json create mode 100644 src/generated/resources/assets/createindustry/models/block/polished_cut_galena_slab.json create mode 100644 src/generated/resources/assets/createindustry/models/block/polished_cut_galena_slab_double.json create mode 100644 src/generated/resources/assets/createindustry/models/block/polished_cut_galena_slab_top.json create mode 100644 src/generated/resources/assets/createindustry/models/block/polished_cut_galena_stairs.json create mode 100644 src/generated/resources/assets/createindustry/models/block/polished_cut_galena_stairs_inner.json create mode 100644 src/generated/resources/assets/createindustry/models/block/polished_cut_galena_stairs_outer.json create mode 100644 src/generated/resources/assets/createindustry/models/block/polished_cut_galena_wall_post.json create mode 100644 src/generated/resources/assets/createindustry/models/block/polished_cut_galena_wall_side.json create mode 100644 src/generated/resources/assets/createindustry/models/block/polished_cut_galena_wall_side_tall.json create mode 100644 src/generated/resources/assets/createindustry/models/block/purple_caution_block.json create mode 100644 src/generated/resources/assets/createindustry/models/block/small_galena_brick_slab.json create mode 100644 src/generated/resources/assets/createindustry/models/block/small_galena_brick_slab_top.json create mode 100644 src/generated/resources/assets/createindustry/models/block/small_galena_brick_stairs.json create mode 100644 src/generated/resources/assets/createindustry/models/block/small_galena_brick_stairs_inner.json create mode 100644 src/generated/resources/assets/createindustry/models/block/small_galena_brick_stairs_outer.json create mode 100644 src/generated/resources/assets/createindustry/models/block/small_galena_bricks.json create mode 100644 src/generated/resources/assets/createindustry/models/block/small_galena_bricks_wall_post.json create mode 100644 src/generated/resources/assets/createindustry/models/block/small_galena_bricks_wall_side.json create mode 100644 src/generated/resources/assets/createindustry/models/block/small_galena_bricks_wall_side_tall.json create mode 100644 src/generated/resources/assets/createindustry/models/block/steel_cable_hub.json create mode 100644 src/generated/resources/assets/createindustry/models/block/steel_casing_cable_hub.json create mode 100644 src/generated/resources/assets/createindustry/models/block/steel_encased_aluminum_cogwheel.json create mode 100644 src/generated/resources/assets/createindustry/models/block/steel_encased_aluminum_cogwheel_bottom.json create mode 100644 src/generated/resources/assets/createindustry/models/block/steel_encased_aluminum_cogwheel_top.json create mode 100644 src/generated/resources/assets/createindustry/models/block/steel_encased_aluminum_cogwheel_top_bottom.json create mode 100644 src/generated/resources/assets/createindustry/models/block/steel_encased_cogwheel.json create mode 100644 src/generated/resources/assets/createindustry/models/block/steel_encased_cogwheel_bottom.json create mode 100644 src/generated/resources/assets/createindustry/models/block/steel_encased_cogwheel_top.json create mode 100644 src/generated/resources/assets/createindustry/models/block/steel_encased_cogwheel_top_bottom.json create mode 100644 src/generated/resources/assets/createindustry/models/block/steel_encased_large_aluminum_cogwheel.json create mode 100644 src/generated/resources/assets/createindustry/models/block/steel_encased_large_aluminum_cogwheel_bottom.json create mode 100644 src/generated/resources/assets/createindustry/models/block/steel_encased_large_aluminum_cogwheel_top.json create mode 100644 src/generated/resources/assets/createindustry/models/block/steel_encased_large_aluminum_cogwheel_top_bottom.json create mode 100644 src/generated/resources/assets/createindustry/models/block/steel_encased_large_cogwheel.json create mode 100644 src/generated/resources/assets/createindustry/models/block/steel_encased_large_cogwheel_bottom.json create mode 100644 src/generated/resources/assets/createindustry/models/block/steel_encased_large_cogwheel_top.json create mode 100644 src/generated/resources/assets/createindustry/models/block/steel_encased_large_cogwheel_top_bottom.json create mode 100644 src/generated/resources/assets/createindustry/models/block/steel_encased_large_steel_cogwheel.json create mode 100644 src/generated/resources/assets/createindustry/models/block/steel_encased_large_steel_cogwheel_bottom.json create mode 100644 src/generated/resources/assets/createindustry/models/block/steel_encased_large_steel_cogwheel_top.json create mode 100644 src/generated/resources/assets/createindustry/models/block/steel_encased_large_steel_cogwheel_top_bottom.json create mode 100644 src/generated/resources/assets/createindustry/models/block/steel_encased_steel_cogwheel.json create mode 100644 src/generated/resources/assets/createindustry/models/block/steel_encased_steel_cogwheel_bottom.json create mode 100644 src/generated/resources/assets/createindustry/models/block/steel_encased_steel_cogwheel_top.json create mode 100644 src/generated/resources/assets/createindustry/models/block/steel_encased_steel_cogwheel_top_bottom.json create mode 100644 src/generated/resources/assets/createindustry/models/block/sulfuric_acid.json create mode 100644 src/generated/resources/assets/createindustry/models/block/voltage_cube.json create mode 100644 src/generated/resources/assets/createindustry/models/block/white_caution_block.json create mode 100644 src/generated/resources/assets/createindustry/models/block/yellow_caution_block.json create mode 100644 src/generated/resources/assets/createindustry/models/item/accumulator.json create mode 100644 src/generated/resources/assets/createindustry/models/item/advanced_potato_cannon.json create mode 100644 src/generated/resources/assets/createindustry/models/item/air_bucket.json create mode 100644 src/generated/resources/assets/createindustry/models/item/aluminum_axe.json create mode 100644 src/generated/resources/assets/createindustry/models/item/aluminum_cable_hub.json create mode 100644 src/generated/resources/assets/createindustry/models/item/aluminum_cogwheel.json create mode 100644 src/generated/resources/assets/createindustry/models/item/aluminum_frame.json create mode 100644 src/generated/resources/assets/createindustry/models/item/aluminum_hoe.json create mode 100644 src/generated/resources/assets/createindustry/models/item/aluminum_pickaxe.json create mode 100644 src/generated/resources/assets/createindustry/models/item/aluminum_shovel.json create mode 100644 src/generated/resources/assets/createindustry/models/item/aluminum_sword.json create mode 100644 src/generated/resources/assets/createindustry/models/item/aluminum_wire.json create mode 100644 src/generated/resources/assets/createindustry/models/item/blue_caution_block.json create mode 100644 src/generated/resources/assets/createindustry/models/item/bottle_of_battery_acid.json create mode 100644 src/generated/resources/assets/createindustry/models/item/bottle_of_concrete.json create mode 100644 src/generated/resources/assets/createindustry/models/item/brass_cable_hub.json create mode 100644 src/generated/resources/assets/createindustry/models/item/brass_frame.json create mode 100644 src/generated/resources/assets/createindustry/models/item/brass_truss.json create mode 100644 src/generated/resources/assets/createindustry/models/item/brown_caution_block.json create mode 100644 src/generated/resources/assets/createindustry/models/item/butane_bucket.json create mode 100644 src/generated/resources/assets/createindustry/models/item/cable_connector.json create mode 100644 src/generated/resources/assets/createindustry/models/item/cable_tube.json create mode 100644 src/generated/resources/assets/createindustry/models/item/capacitor.json create mode 100644 src/generated/resources/assets/createindustry/models/item/capacitor_.json create mode 100644 src/generated/resources/assets/createindustry/models/item/carbon_dioxide_bucket.json create mode 100644 src/generated/resources/assets/createindustry/models/item/cast_iron_bars.json create mode 100644 src/generated/resources/assets/createindustry/models/item/cast_iron_frame.json create mode 100644 src/generated/resources/assets/createindustry/models/item/cast_iron_ladder.json create mode 100644 src/generated/resources/assets/createindustry/models/item/cast_iron_truss.json create mode 100644 src/generated/resources/assets/createindustry/models/item/cinder_block.json create mode 100644 src/generated/resources/assets/createindustry/models/item/cinderblock.json create mode 100644 src/generated/resources/assets/createindustry/models/item/cinderflour_block.json create mode 100644 src/generated/resources/assets/createindustry/models/item/cinderflourblock.json create mode 100644 src/generated/resources/assets/createindustry/models/item/converter.json create mode 100644 src/generated/resources/assets/createindustry/models/item/copper_cable.json create mode 100644 src/generated/resources/assets/createindustry/models/item/copper_cable_hub.json create mode 100644 src/generated/resources/assets/createindustry/models/item/copper_coil.json create mode 100644 src/generated/resources/assets/createindustry/models/item/copper_frame.json create mode 100644 src/generated/resources/assets/createindustry/models/item/copper_sulfate.json create mode 100644 src/generated/resources/assets/createindustry/models/item/copper_truss.json create mode 100644 src/generated/resources/assets/createindustry/models/item/copper_wire.json create mode 100644 src/generated/resources/assets/createindustry/models/item/copycat_cable_block.json create mode 100644 src/generated/resources/assets/createindustry/models/item/creative_generator.json create mode 100644 src/generated/resources/assets/createindustry/models/item/crude_oil_bucket.json create mode 100644 src/generated/resources/assets/createindustry/models/item/cut_galena.json create mode 100644 src/generated/resources/assets/createindustry/models/item/cut_galena_brick_slab.json create mode 100644 src/generated/resources/assets/createindustry/models/item/cut_galena_brick_stairs.json create mode 100644 src/generated/resources/assets/createindustry/models/item/cut_galena_brick_wall.json create mode 100644 src/generated/resources/assets/createindustry/models/item/cut_galena_bricks.json create mode 100644 src/generated/resources/assets/createindustry/models/item/cut_galena_slab.json create mode 100644 src/generated/resources/assets/createindustry/models/item/cut_galena_stairs.json create mode 100644 src/generated/resources/assets/createindustry/models/item/cut_galena_wall.json create mode 100644 src/generated/resources/assets/createindustry/models/item/cyan_caution_block.json create mode 100644 src/generated/resources/assets/createindustry/models/item/deepslate_lead_ore.json create mode 100644 src/generated/resources/assets/createindustry/models/item/deepslate_lithium_ore.json create mode 100644 src/generated/resources/assets/createindustry/models/item/deepslate_nickel_ore.json create mode 100644 src/generated/resources/assets/createindustry/models/item/diagonal_cable_block.json create mode 100644 src/generated/resources/assets/createindustry/models/item/electric_casing.json create mode 100644 src/generated/resources/assets/createindustry/models/item/electric_motor.json create mode 100644 src/generated/resources/assets/createindustry/models/item/energy_meter.json create mode 100644 src/generated/resources/assets/createindustry/models/item/ethylene_bucket.json create mode 100644 src/generated/resources/assets/createindustry/models/item/firebox.json create mode 100644 src/generated/resources/assets/createindustry/models/item/flamethrower.json create mode 100644 src/generated/resources/assets/createindustry/models/item/galena.json create mode 100644 src/generated/resources/assets/createindustry/models/item/galena_pillar.json create mode 100644 src/generated/resources/assets/createindustry/models/item/galvanic_cell.json create mode 100644 src/generated/resources/assets/createindustry/models/item/generator.json create mode 100644 src/generated/resources/assets/createindustry/models/item/gray_caution_block.json create mode 100644 src/generated/resources/assets/createindustry/models/item/green_caution_block.json create mode 100644 src/generated/resources/assets/createindustry/models/item/hardened_planks_slab.json create mode 100644 src/generated/resources/assets/createindustry/models/item/heavy_cable_hub.json create mode 100644 src/generated/resources/assets/createindustry/models/item/heavy_casing_encased_aluminum_cogwheel.json create mode 100644 src/generated/resources/assets/createindustry/models/item/heavy_casing_encased_cogwheel.json create mode 100644 src/generated/resources/assets/createindustry/models/item/heavy_casing_encased_large_aluminum_cogwheel.json create mode 100644 src/generated/resources/assets/createindustry/models/item/heavy_casing_encased_large_cogwheel.json create mode 100644 src/generated/resources/assets/createindustry/models/item/heavy_casing_encased_large_steel_cogwheel.json create mode 100644 src/generated/resources/assets/createindustry/models/item/heavy_casing_encased_shaft.json create mode 100644 src/generated/resources/assets/createindustry/models/item/heavy_casing_encased_steel_cogwheel.json create mode 100644 src/generated/resources/assets/createindustry/models/item/large_aluminum_cogwheel.json create mode 100644 src/generated/resources/assets/createindustry/models/item/large_steel_cogwheel.json create mode 100644 src/generated/resources/assets/createindustry/models/item/layered_galena.json create mode 100644 src/generated/resources/assets/createindustry/models/item/lead_axe.json create mode 100644 src/generated/resources/assets/createindustry/models/item/lead_bars.json create mode 100644 src/generated/resources/assets/createindustry/models/item/lead_block.json create mode 100644 src/generated/resources/assets/createindustry/models/item/lead_flywheel.json create mode 100644 src/generated/resources/assets/createindustry/models/item/lead_frame.json create mode 100644 src/generated/resources/assets/createindustry/models/item/lead_glass.json create mode 100644 src/generated/resources/assets/createindustry/models/item/lead_hoe.json create mode 100644 src/generated/resources/assets/createindustry/models/item/lead_ingot.json create mode 100644 src/generated/resources/assets/createindustry/models/item/lead_ladder.json create mode 100644 src/generated/resources/assets/createindustry/models/item/lead_ore.json create mode 100644 src/generated/resources/assets/createindustry/models/item/lead_pickaxe.json create mode 100644 src/generated/resources/assets/createindustry/models/item/lead_shovel.json create mode 100644 src/generated/resources/assets/createindustry/models/item/lead_sword.json create mode 100644 src/generated/resources/assets/createindustry/models/item/lead_truss.json create mode 100644 src/generated/resources/assets/createindustry/models/item/light_blue_caution_block.json create mode 100644 src/generated/resources/assets/createindustry/models/item/light_bulb.json create mode 100644 src/generated/resources/assets/createindustry/models/item/light_gray_caution_block.json create mode 100644 src/generated/resources/assets/createindustry/models/item/lime_caution_block.json create mode 100644 src/generated/resources/assets/createindustry/models/item/lit_lithium_blade.json create mode 100644 src/generated/resources/assets/createindustry/models/item/lithium_blade.json create mode 100644 src/generated/resources/assets/createindustry/models/item/lithium_block.json create mode 100644 src/generated/resources/assets/createindustry/models/item/lithium_charge.json create mode 100644 src/generated/resources/assets/createindustry/models/item/lithium_ingot.json create mode 100644 src/generated/resources/assets/createindustry/models/item/lithium_ore.json create mode 100644 src/generated/resources/assets/createindustry/models/item/lithium_torch.json create mode 100644 src/generated/resources/assets/createindustry/models/item/low_grade_fuel_engine.json create mode 100644 src/generated/resources/assets/createindustry/models/item/lpg_bucket.json create mode 100644 src/generated/resources/assets/createindustry/models/item/magenta_caution_block.json create mode 100644 src/generated/resources/assets/createindustry/models/item/magnetic_ingot.json create mode 100644 src/generated/resources/assets/createindustry/models/item/napalm_potato.json create mode 100644 src/generated/resources/assets/createindustry/models/item/neon_bucket.json create mode 100644 src/generated/resources/assets/createindustry/models/item/neon_tube.json create mode 100644 src/generated/resources/assets/createindustry/models/item/nickel_bars.json create mode 100644 src/generated/resources/assets/createindustry/models/item/nickel_block.json create mode 100644 src/generated/resources/assets/createindustry/models/item/nickel_flywheel.json create mode 100644 src/generated/resources/assets/createindustry/models/item/nickel_frame.json create mode 100644 src/generated/resources/assets/createindustry/models/item/nickel_ingot.json create mode 100644 src/generated/resources/assets/createindustry/models/item/nickel_ladder.json create mode 100644 src/generated/resources/assets/createindustry/models/item/nickel_ore.json create mode 100644 src/generated/resources/assets/createindustry/models/item/nickel_truss.json create mode 100644 src/generated/resources/assets/createindustry/models/item/orange_caution_block.json create mode 100644 src/generated/resources/assets/createindustry/models/item/pink_caution_block.json create mode 100644 src/generated/resources/assets/createindustry/models/item/pipe_bomb.json create mode 100644 src/generated/resources/assets/createindustry/models/item/polarizer.json create mode 100644 src/generated/resources/assets/createindustry/models/item/polished_cut_galena.json create mode 100644 src/generated/resources/assets/createindustry/models/item/polished_cut_galena_slab.json create mode 100644 src/generated/resources/assets/createindustry/models/item/polished_cut_galena_stairs.json create mode 100644 src/generated/resources/assets/createindustry/models/item/polished_cut_galena_wall.json create mode 100644 src/generated/resources/assets/createindustry/models/item/propane_bucket.json create mode 100644 src/generated/resources/assets/createindustry/models/item/propylene_bucket.json create mode 100644 src/generated/resources/assets/createindustry/models/item/purple_caution_block.json create mode 100644 src/generated/resources/assets/createindustry/models/item/raw_lead.json create mode 100644 src/generated/resources/assets/createindustry/models/item/raw_lithium.json create mode 100644 src/generated/resources/assets/createindustry/models/item/raw_nickel.json create mode 100644 src/generated/resources/assets/createindustry/models/item/resistor.json create mode 100644 src/generated/resources/assets/createindustry/models/item/resistor_.json create mode 100644 src/generated/resources/assets/createindustry/models/item/rgb_light_bulb.json create mode 100644 src/generated/resources/assets/createindustry/models/item/rotor.json create mode 100644 src/generated/resources/assets/createindustry/models/item/small_galena_brick_slab.json create mode 100644 src/generated/resources/assets/createindustry/models/item/small_galena_brick_stairs.json create mode 100644 src/generated/resources/assets/createindustry/models/item/small_galena_brick_wall.json create mode 100644 src/generated/resources/assets/createindustry/models/item/small_galena_bricks.json create mode 100644 src/generated/resources/assets/createindustry/models/item/stator.json create mode 100644 src/generated/resources/assets/createindustry/models/item/steel_axe.json create mode 100644 src/generated/resources/assets/createindustry/models/item/steel_boots.json create mode 100644 src/generated/resources/assets/createindustry/models/item/steel_cable_hub.json create mode 100644 src/generated/resources/assets/createindustry/models/item/steel_casing_cable_hub.json create mode 100644 src/generated/resources/assets/createindustry/models/item/steel_chestplate.json create mode 100644 src/generated/resources/assets/createindustry/models/item/steel_cogwheel.json create mode 100644 src/generated/resources/assets/createindustry/models/item/steel_encased_aluminum_cogwheel.json create mode 100644 src/generated/resources/assets/createindustry/models/item/steel_encased_cogwheel.json create mode 100644 src/generated/resources/assets/createindustry/models/item/steel_encased_large_aluminum_cogwheel.json create mode 100644 src/generated/resources/assets/createindustry/models/item/steel_encased_large_cogwheel.json create mode 100644 src/generated/resources/assets/createindustry/models/item/steel_encased_large_steel_cogwheel.json create mode 100644 src/generated/resources/assets/createindustry/models/item/steel_encased_shaft.json create mode 100644 src/generated/resources/assets/createindustry/models/item/steel_encased_steel_cogwheel.json create mode 100644 src/generated/resources/assets/createindustry/models/item/steel_gearbox.json create mode 100644 src/generated/resources/assets/createindustry/models/item/steel_helmet.json create mode 100644 src/generated/resources/assets/createindustry/models/item/steel_hoe.json create mode 100644 src/generated/resources/assets/createindustry/models/item/steel_leggings.json create mode 100644 src/generated/resources/assets/createindustry/models/item/steel_pickaxe.json create mode 100644 src/generated/resources/assets/createindustry/models/item/steel_shovel.json create mode 100644 src/generated/resources/assets/createindustry/models/item/steel_sword.json create mode 100644 src/generated/resources/assets/createindustry/models/item/steel_vertical_gearbox.json create mode 100644 src/generated/resources/assets/createindustry/models/item/sulfuric_acid_bucket.json create mode 100644 src/generated/resources/assets/createindustry/models/item/synthetic_leather.json create mode 100644 src/generated/resources/assets/createindustry/models/item/synthetic_string.json create mode 100644 src/generated/resources/assets/createindustry/models/item/voltage_cube.json create mode 100644 src/generated/resources/assets/createindustry/models/item/voltmeter.json create mode 100644 src/generated/resources/assets/createindustry/models/item/white_caution_block.json create mode 100644 src/generated/resources/assets/createindustry/models/item/yellow_caution_block.json create mode 100644 src/generated/resources/assets/createindustry/models/item/zinc_frame.json create mode 100644 src/generated/resources/assets/createindustry/models/item/zinc_sulfate.json create mode 100644 src/generated/resources/assets/createindustry/models/item/zinc_truss.json create mode 100644 src/generated/resources/data/createindustry/advancements/recipes/createindustry.base/cinderblock_from_concrete_stonecutting.json create mode 100644 src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/aluminum_bars_from_ingots_aluminum_stonecutting.json create mode 100644 src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/aluminum_ladder_from_ingots_aluminum_stonecutting.json create mode 100644 src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/aluminum_scaffolding_from_ingots_aluminum_stonecutting.json create mode 100644 src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/brass_frame_from_ingots_brass_stonecutting.json create mode 100644 src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/brass_truss_from_ingots_brass_stonecutting.json create mode 100644 src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/cast_iron_bars_from_ingots_cast_iron_stonecutting.json create mode 100644 src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/cast_iron_ladder_from_ingots_cast_iron_stonecutting.json create mode 100644 src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/concrete_slab_from_concrete_stonecutting.json create mode 100644 src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/concrete_stairs_from_concrete_stonecutting.json create mode 100644 src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/concrete_wall_from_concrete_stonecutting.json create mode 100644 src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/copper_frame_from_ingots_copper_stonecutting.json create mode 100644 src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/copper_truss_from_ingots_copper_stonecutting.json create mode 100644 src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/cut_galena_brick_slab.json create mode 100644 src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/cut_galena_brick_slab_from_stone_types_galena_stonecutting.json create mode 100644 src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/cut_galena_brick_slab_recycling.json create mode 100644 src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/cut_galena_brick_stairs.json create mode 100644 src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/cut_galena_brick_stairs_from_stone_types_galena_stonecutting.json create mode 100644 src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/cut_galena_brick_wall.json create mode 100644 src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/cut_galena_brick_wall_from_stone_types_galena_stonecutting.json create mode 100644 src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/cut_galena_bricks_from_stone_types_galena_stonecutting.json create mode 100644 src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/cut_galena_from_stone_types_galena_stonecutting.json create mode 100644 src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/cut_galena_slab.json create mode 100644 src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/cut_galena_slab_from_stone_types_galena_stonecutting.json create mode 100644 src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/cut_galena_slab_recycling.json create mode 100644 src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/cut_galena_stairs.json create mode 100644 src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/cut_galena_stairs_from_stone_types_galena_stonecutting.json create mode 100644 src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/cut_galena_wall.json create mode 100644 src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/cut_galena_wall_from_stone_types_galena_stonecutting.json create mode 100644 src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/galena_from_stone_types_galena_stonecutting.json create mode 100644 src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/galena_pillar_from_stone_types_galena_stonecutting.json create mode 100644 src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/layered_galena_from_stone_types_galena_stonecutting.json create mode 100644 src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/lead_bars_from_ingots_lead_stonecutting.json create mode 100644 src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/lead_frame_from_ingots_lead_stonecutting.json create mode 100644 src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/lead_ladder_from_ingots_lead_stonecutting.json create mode 100644 src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/lead_truss_from_ingots_lead_stonecutting.json create mode 100644 src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/nickel_bars_from_ingots_nickel_stonecutting.json create mode 100644 src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/nickel_frame_from_ingots_nickel_stonecutting.json create mode 100644 src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/nickel_ladder_from_ingots_nickel_stonecutting.json create mode 100644 src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/nickel_truss_from_ingots_nickel_stonecutting.json create mode 100644 src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/polished_cut_galena_from_stone_types_galena_stonecutting.json create mode 100644 src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/polished_cut_galena_slab.json create mode 100644 src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/polished_cut_galena_slab_from_stone_types_galena_stonecutting.json create mode 100644 src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/polished_cut_galena_slab_recycling.json create mode 100644 src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/polished_cut_galena_stairs.json create mode 100644 src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/polished_cut_galena_stairs_from_stone_types_galena_stonecutting.json create mode 100644 src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/polished_cut_galena_wall.json create mode 100644 src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/polished_cut_galena_wall_from_stone_types_galena_stonecutting.json create mode 100644 src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/rebar_concrete_slab_from_rebar_concrete_stonecutting.json create mode 100644 src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/small_galena_brick_slab.json create mode 100644 src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/small_galena_brick_slab_from_stone_types_galena_stonecutting.json create mode 100644 src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/small_galena_brick_slab_recycling.json create mode 100644 src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/small_galena_brick_stairs.json create mode 100644 src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/small_galena_brick_stairs_from_stone_types_galena_stonecutting.json create mode 100644 src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/small_galena_brick_wall.json create mode 100644 src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/small_galena_brick_wall_from_stone_types_galena_stonecutting.json create mode 100644 src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/small_galena_bricks_from_stone_types_galena_stonecutting.json create mode 100644 src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/steel_bars_from_ingots_steel_stonecutting.json create mode 100644 src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/steel_ladder_from_ingots_steel_stonecutting.json create mode 100644 src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/steel_scaffolding_from_ingots_steel_stonecutting.json create mode 100644 src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/zinc_frame_from_ingots_zinc_stonecutting.json create mode 100644 src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/zinc_truss_from_ingots_zinc_stonecutting.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/accumulator.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/aluminum_cable_hub.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/aluminum_cogwheel.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/aluminum_frame.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/blue_caution_block.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/brass_cable_hub.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/brass_frame.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/brass_truss.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/brown_caution_block.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/cable_connector.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/cable_tube.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/capacitor.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/cast_iron_bars.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/cast_iron_frame.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/cast_iron_ladder.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/cast_iron_truss.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/cinder_block.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/cinderflour_block.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/converter.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/copper_cable_hub.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/copper_coil.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/copper_frame.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/copper_truss.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/copycat_cable_base.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/copycat_cable_block.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/creative_generator.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/cut_galena.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/cut_galena_brick_slab.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/cut_galena_brick_stairs.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/cut_galena_brick_wall.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/cut_galena_bricks.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/cut_galena_slab.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/cut_galena_stairs.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/cut_galena_wall.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/cyan_caution_block.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/deepslate_lead_ore.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/deepslate_lithium_ore.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/deepslate_nickel_ore.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/diagonal_cable_block.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/electric_casing.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/electric_motor.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/energy_meter.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/firebox.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/galena.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/galena_pillar.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/galvanic_cell.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/generator.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/gray_caution_block.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/green_caution_block.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/hardened_planks_slab.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/heavy_cable_hub.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/heavy_casing_encased_aluminum_cogwheel.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/heavy_casing_encased_cogwheel.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/heavy_casing_encased_large_aluminum_cogwheel.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/heavy_casing_encased_large_cogwheel.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/heavy_casing_encased_large_steel_cogwheel.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/heavy_casing_encased_shaft.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/heavy_casing_encased_steel_cogwheel.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/large_aluminum_cogwheel.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/large_steel_cogwheel.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/layered_galena.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/lead_bars.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/lead_block.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/lead_flywheel.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/lead_frame.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/lead_glass.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/lead_ladder.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/lead_ore.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/lead_truss.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/light_blue_caution_block.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/light_bulb.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/light_gray_caution_block.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/lime_caution_block.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/lithium_block.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/lithium_ore.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/lithium_torch.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/low_grade_fuel_engine.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/magenta_caution_block.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/neon_tube.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/nickel_bars.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/nickel_block.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/nickel_flywheel.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/nickel_frame.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/nickel_ladder.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/nickel_ore.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/nickel_truss.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/orange_caution_block.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/pink_caution_block.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/polarizer.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/polished_cut_galena.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/polished_cut_galena_slab.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/polished_cut_galena_stairs.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/polished_cut_galena_wall.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/purple_caution_block.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/resistor.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/rgb_light_bulb.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/rotor.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/small_galena_brick_slab.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/small_galena_brick_stairs.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/small_galena_brick_wall.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/small_galena_bricks.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/stator.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/steel_cable_hub.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/steel_casing_cable_hub.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/steel_cogwheel.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/steel_encased_aluminum_cogwheel.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/steel_encased_cogwheel.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/steel_encased_large_aluminum_cogwheel.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/steel_encased_large_cogwheel.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/steel_encased_large_steel_cogwheel.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/steel_encased_shaft.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/steel_encased_steel_cogwheel.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/steel_gearbox.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/voltage_cube.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/voltmeter.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/white_caution_block.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/yellow_caution_block.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/zinc_frame.json create mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/zinc_truss.json create mode 100644 src/generated/resources/data/createindustry/recipes/brass_frame_from_ingots_brass_stonecutting.json create mode 100644 src/generated/resources/data/createindustry/recipes/brass_truss_from_ingots_brass_stonecutting.json create mode 100644 src/generated/resources/data/createindustry/recipes/cast_iron_bars_from_ingots_cast_iron_stonecutting.json create mode 100644 src/generated/resources/data/createindustry/recipes/cast_iron_ladder_from_ingots_cast_iron_stonecutting.json create mode 100644 src/generated/resources/data/createindustry/recipes/cinderblock_from_concrete_stonecutting.json create mode 100644 src/generated/resources/data/createindustry/recipes/concrete_slab_from_concrete_stonecutting.json create mode 100644 src/generated/resources/data/createindustry/recipes/concrete_stairs_from_concrete_stonecutting.json create mode 100644 src/generated/resources/data/createindustry/recipes/concrete_wall_from_concrete_stonecutting.json create mode 100644 src/generated/resources/data/createindustry/recipes/copper_frame_from_ingots_copper_stonecutting.json create mode 100644 src/generated/resources/data/createindustry/recipes/copper_truss_from_ingots_copper_stonecutting.json create mode 100644 src/generated/resources/data/createindustry/recipes/cut_galena_brick_slab.json create mode 100644 src/generated/resources/data/createindustry/recipes/cut_galena_brick_slab_from_stone_types_galena_stonecutting.json create mode 100644 src/generated/resources/data/createindustry/recipes/cut_galena_brick_slab_recycling.json create mode 100644 src/generated/resources/data/createindustry/recipes/cut_galena_brick_stairs.json create mode 100644 src/generated/resources/data/createindustry/recipes/cut_galena_brick_stairs_from_stone_types_galena_stonecutting.json create mode 100644 src/generated/resources/data/createindustry/recipes/cut_galena_brick_wall.json create mode 100644 src/generated/resources/data/createindustry/recipes/cut_galena_brick_wall_from_stone_types_galena_stonecutting.json create mode 100644 src/generated/resources/data/createindustry/recipes/cut_galena_bricks_from_stone_types_galena_stonecutting.json create mode 100644 src/generated/resources/data/createindustry/recipes/cut_galena_from_stone_types_galena_stonecutting.json create mode 100644 src/generated/resources/data/createindustry/recipes/cut_galena_slab.json create mode 100644 src/generated/resources/data/createindustry/recipes/cut_galena_slab_from_stone_types_galena_stonecutting.json create mode 100644 src/generated/resources/data/createindustry/recipes/cut_galena_slab_recycling.json create mode 100644 src/generated/resources/data/createindustry/recipes/cut_galena_stairs.json create mode 100644 src/generated/resources/data/createindustry/recipes/cut_galena_stairs_from_stone_types_galena_stonecutting.json create mode 100644 src/generated/resources/data/createindustry/recipes/cut_galena_wall.json create mode 100644 src/generated/resources/data/createindustry/recipes/cut_galena_wall_from_stone_types_galena_stonecutting.json create mode 100644 src/generated/resources/data/createindustry/recipes/galena_from_stone_types_galena_stonecutting.json create mode 100644 src/generated/resources/data/createindustry/recipes/galena_pillar_from_stone_types_galena_stonecutting.json create mode 100644 src/generated/resources/data/createindustry/recipes/layered_galena_from_stone_types_galena_stonecutting.json create mode 100644 src/generated/resources/data/createindustry/recipes/lead_bars_from_ingots_lead_stonecutting.json create mode 100644 src/generated/resources/data/createindustry/recipes/lead_frame_from_ingots_lead_stonecutting.json create mode 100644 src/generated/resources/data/createindustry/recipes/lead_ladder_from_ingots_lead_stonecutting.json create mode 100644 src/generated/resources/data/createindustry/recipes/lead_truss_from_ingots_lead_stonecutting.json create mode 100644 src/generated/resources/data/createindustry/recipes/nickel_bars_from_ingots_nickel_stonecutting.json create mode 100644 src/generated/resources/data/createindustry/recipes/nickel_frame_from_ingots_nickel_stonecutting.json create mode 100644 src/generated/resources/data/createindustry/recipes/nickel_ladder_from_ingots_nickel_stonecutting.json create mode 100644 src/generated/resources/data/createindustry/recipes/nickel_truss_from_ingots_nickel_stonecutting.json create mode 100644 src/generated/resources/data/createindustry/recipes/polished_cut_galena_from_stone_types_galena_stonecutting.json create mode 100644 src/generated/resources/data/createindustry/recipes/polished_cut_galena_slab.json create mode 100644 src/generated/resources/data/createindustry/recipes/polished_cut_galena_slab_from_stone_types_galena_stonecutting.json create mode 100644 src/generated/resources/data/createindustry/recipes/polished_cut_galena_slab_recycling.json create mode 100644 src/generated/resources/data/createindustry/recipes/polished_cut_galena_stairs.json create mode 100644 src/generated/resources/data/createindustry/recipes/polished_cut_galena_stairs_from_stone_types_galena_stonecutting.json create mode 100644 src/generated/resources/data/createindustry/recipes/polished_cut_galena_wall.json create mode 100644 src/generated/resources/data/createindustry/recipes/polished_cut_galena_wall_from_stone_types_galena_stonecutting.json create mode 100644 src/generated/resources/data/createindustry/recipes/rebar_concrete_slab_from_rebar_concrete_stonecutting.json create mode 100644 src/generated/resources/data/createindustry/recipes/small_galena_brick_slab.json create mode 100644 src/generated/resources/data/createindustry/recipes/small_galena_brick_slab_from_stone_types_galena_stonecutting.json create mode 100644 src/generated/resources/data/createindustry/recipes/small_galena_brick_slab_recycling.json create mode 100644 src/generated/resources/data/createindustry/recipes/small_galena_brick_stairs.json create mode 100644 src/generated/resources/data/createindustry/recipes/small_galena_brick_stairs_from_stone_types_galena_stonecutting.json create mode 100644 src/generated/resources/data/createindustry/recipes/small_galena_brick_wall.json create mode 100644 src/generated/resources/data/createindustry/recipes/small_galena_brick_wall_from_stone_types_galena_stonecutting.json create mode 100644 src/generated/resources/data/createindustry/recipes/small_galena_bricks_from_stone_types_galena_stonecutting.json create mode 100644 src/generated/resources/data/createindustry/recipes/zinc_frame_from_ingots_zinc_stonecutting.json create mode 100644 src/generated/resources/data/createindustry/recipes/zinc_truss_from_ingots_zinc_stonecutting.json create mode 100644 src/generated/resources/data/createindustry/tags/fluids/flammable.json create mode 100644 src/generated/resources/data/createindustry/tags/fluids/gas.json create mode 100644 src/generated/resources/data/createindustry/tags/items/stone_types/galena.json create mode 100644 src/generated/resources/data/forge/tags/blocks/ores.json create mode 100644 src/generated/resources/data/forge/tags/blocks/ores/lead.json create mode 100644 src/generated/resources/data/forge/tags/blocks/ores/lithium.json create mode 100644 src/generated/resources/data/forge/tags/blocks/ores/nickel.json create mode 100644 src/generated/resources/data/forge/tags/blocks/ores_in_ground/deepslate.json create mode 100644 src/generated/resources/data/forge/tags/blocks/ores_in_ground/stone.json create mode 100644 src/generated/resources/data/forge/tags/blocks/storage_blocks/lead.json create mode 100644 src/generated/resources/data/forge/tags/blocks/storage_blocks/lithium.json create mode 100644 src/generated/resources/data/forge/tags/blocks/storage_blocks/nickel.json create mode 100644 src/generated/resources/data/forge/tags/fluids/crude_oil.json create mode 100644 src/generated/resources/data/forge/tags/fluids/diesel.json create mode 100644 src/generated/resources/data/forge/tags/fluids/gasoline.json create mode 100644 src/generated/resources/data/forge/tags/fluids/heavy_oil.json create mode 100644 src/generated/resources/data/forge/tags/fluids/kerosene.json create mode 100644 src/generated/resources/data/forge/tags/fluids/lpg.json create mode 100644 src/generated/resources/data/forge/tags/fluids/molten_steel.json create mode 100644 src/generated/resources/data/forge/tags/fluids/naphtha.json create mode 100644 src/generated/resources/data/forge/tags/items/buckets/air.json create mode 100644 src/generated/resources/data/forge/tags/items/buckets/butane.json create mode 100644 src/generated/resources/data/forge/tags/items/buckets/carbon_dioxide.json create mode 100644 src/generated/resources/data/forge/tags/items/buckets/creosote.json create mode 100644 src/generated/resources/data/forge/tags/items/buckets/crude_oil.json create mode 100644 src/generated/resources/data/forge/tags/items/buckets/ethylene.json create mode 100644 src/generated/resources/data/forge/tags/items/buckets/heavy_oil.json create mode 100644 src/generated/resources/data/forge/tags/items/buckets/lpg.json create mode 100644 src/generated/resources/data/forge/tags/items/buckets/lubrication_oil.json create mode 100644 src/generated/resources/data/forge/tags/items/buckets/neon.json create mode 100644 src/generated/resources/data/forge/tags/items/buckets/propane.json create mode 100644 src/generated/resources/data/forge/tags/items/buckets/propylene.json create mode 100644 src/generated/resources/data/forge/tags/items/ingots/lead.json create mode 100644 src/generated/resources/data/forge/tags/items/ingots/lithium.json create mode 100644 src/generated/resources/data/forge/tags/items/ingots/nickel.json create mode 100644 src/generated/resources/data/forge/tags/items/leather.json create mode 100644 src/generated/resources/data/forge/tags/items/ores.json create mode 100644 src/generated/resources/data/forge/tags/items/ores/lead.json create mode 100644 src/generated/resources/data/forge/tags/items/ores/lithium.json create mode 100644 src/generated/resources/data/forge/tags/items/ores/nickel.json create mode 100644 src/generated/resources/data/forge/tags/items/ores_in_ground/deepslate.json create mode 100644 src/generated/resources/data/forge/tags/items/ores_in_ground/stone.json create mode 100644 src/generated/resources/data/forge/tags/items/plates/steel.json create mode 100644 src/generated/resources/data/forge/tags/items/raw_materials.json create mode 100644 src/generated/resources/data/forge/tags/items/raw_materials/lead.json create mode 100644 src/generated/resources/data/forge/tags/items/raw_materials/lithium.json create mode 100644 src/generated/resources/data/forge/tags/items/raw_materials/nickel.json create mode 100644 src/generated/resources/data/forge/tags/items/storage_blocks/lead.json create mode 100644 src/generated/resources/data/forge/tags/items/storage_blocks/lithium.json create mode 100644 src/generated/resources/data/forge/tags/items/storage_blocks/nickel.json create mode 100644 src/generated/resources/data/forge/tags/items/string.json create mode 100644 src/generated/resources/data/forge/tags/items/wires/aluminum.json create mode 100644 src/generated/resources/data/forge/tags/items/wires/copper.json create mode 100644 src/main/java/com/drmangotea/createindustry/base/ElectricSparkParticle.java create mode 100644 src/main/java/com/drmangotea/createindustry/base/GasFluidBuilder.java create mode 100644 src/main/java/com/drmangotea/createindustry/base/TFMGEncasedBlocks.java create mode 100644 src/main/java/com/drmangotea/createindustry/base/TFMGPipes.java create mode 100644 src/main/java/com/drmangotea/createindustry/base/TFMGTools.java create mode 100644 src/main/java/com/drmangotea/createindustry/base/effects/HellFireEffect.java create mode 100644 src/main/java/com/drmangotea/createindustry/base/util/TFMGUtils.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/HalfShaftRenderer.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/TFMGHorizontalDirectionalBlock.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/cogwheeels/EncasedAluminumCogInstance.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/cogwheeels/EncasedAluminumCogRenderer.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/cogwheeels/EncasedSteelCogInstance.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/cogwheeels/EncasedSteelCogRenderer.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/cogwheeels/TFMGCogWheelBlock.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/cogwheeels/TFMGCogwheelBlockItem.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/cogwheeels/TFMGCogwheelInstance.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/cogwheeels/TFMGCogwheelRenderer.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/decoration/LithiumTorchBlock.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/decoration/LithiumTorchGenerator.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/decoration/kinetics/SteelGearboxBlock.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/decoration/kinetics/SteelVerticalGearboxItem.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/electricity/base/ConverterBlock.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/electricity/base/ConverterBlockEntity.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/electricity/base/ElectricBlockEntity.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/electricity/base/IElectricBlock.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/electricity/base/IHaveCables.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/electricity/base/KineticElectricBlockEntity.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/electricity/base/TFMGForgeEnergyStorage.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/electricity/base/WallMountBlock.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/electricity/base/cables/CableConnectorBlock.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/electricity/base/cables/CableConnectorBlockEntity.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/electricity/base/cables/CableConnectorGenerator.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/electricity/base/cables/CableConnectorRenderer.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/electricity/base/cables/WireConnection.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/electricity/base/cables/WireItem.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/electricity/base/cables/WireManager.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/electricity/base/multimeter/MultimeterItem.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/electricity/batteries/BatteryBlock.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/electricity/batteries/BatteryBlockEntity.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/electricity/batteries/GalvanicCellBlock.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/electricity/batteries/GalvanicCellBlockEntity.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/electricity/cable_blocks/CableHubBlock.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/electricity/cable_blocks/CableHubBlockEntity.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/electricity/cable_blocks/CableTubeBlock.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/electricity/cable_blocks/CableTubeBlockEntity.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/electricity/cable_blocks/DiagonalCableBlock.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/electricity/cable_blocks/DiagonalCableBlockEntity.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/electricity/cable_blocks/DiagonalCableGenerator.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/electricity/cable_blocks/copycat_cable_block/AbstractCopycatCableModel.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/electricity/cable_blocks/copycat_cable_block/CopycatCableBlock.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/electricity/cable_blocks/copycat_cable_block/CopycatCableBlockEntity.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/electricity/cable_blocks/copycat_cable_block/CopycatCableBlockModel.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/electricity/capacitor/AccumulatorBlock.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/electricity/capacitor/AccumulatorBlockEntity.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/electricity/capacitor/AccumulatorCTBehavior.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/electricity/capacitor/CapacitorBlock.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/electricity/capacitor/CapacitorBlockEntity.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/electricity/capacitor/CapacitorCTBehavior.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/electricity/electric_motor/ElectricMotorBlock.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/electricity/electric_motor/ElectricMotorBlockEntity.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/electricity/electrical_switch/ElectricalSwitchBlock.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/electricity/electrical_switch/LeverGenerator.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/electricity/generation/creative_generator/CreativeGeneratorBlock.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/electricity/generation/creative_generator/CreativeGeneratorBlockEntity.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/electricity/generation/creative_generator/VoltageCubeBlock.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/electricity/generation/creative_generator/VoltageCubeBlockEntity.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/electricity/generation/generator/GeneratorBlock.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/electricity/generation/generator/GeneratorBlockEntity.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/electricity/generation/large_generator/RotorBlock.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/electricity/generation/large_generator/RotorBlockEntity.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/electricity/generation/large_generator/RotorInstance.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/electricity/generation/large_generator/RotorRenderer.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/electricity/generation/large_generator/StatorBlock.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/electricity/generation/large_generator/StatorBlockEntity.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/electricity/generation/large_generator/StatorGenerator.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/electricity/generation/large_generator/StatorRenderer.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/electricity/lights/LightBulbBlock.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/electricity/lights/LightBulbBlockEntity.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/electricity/lights/LightBulbRenderer.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/electricity/lights/neon/NeonTubeBlock.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/electricity/lights/neon/NeonTubeBlockEntity.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/electricity/lights/neon/NeonTubeRenderer.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/electricity/lights/rgb/RGBLightBulbBlock.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/electricity/lights/rgb/RGBLightBulbBlockEntity.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/electricity/lights/rgb/RGBLightBulbRenderer.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/electricity/polarizer/PolarizeRenderer.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/electricity/polarizer/PolarizerBlock.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/electricity/polarizer/PolarizerBlockEntity.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/electricity/resistors/ResistorBlock.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/electricity/resistors/ResistorBlockEntity.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/electricity/transformer/CoilBlock.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/electricity/transformer/CoilBlockEntity.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/electricity/transformer/CoilGenerator.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/electricity/voltmeter/VoltMeterBlock.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/electricity/voltmeter/VoltMeterBlockEntity.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/electricity/voltmeter/VoltMeterRenderer.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/electricity/voltmeter/energy_meter/EnergyMeterBlock.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/electricity/voltmeter/energy_meter/EnergyMeterBlockEntity.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/electricity/voltmeter/energy_meter/EnergyMeterRenderer.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/engines/low_grade_fuel/LowGradeFuelEngineBlock.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/engines/low_grade_fuel/LowGradeFuelEngineBlockEntity.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/engines/low_grade_fuel/LowGradeFuelEngineRenderer.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/fluids/AcidFluidType.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/fluids/FlammableFluid.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/fluids/FlammableFluidType.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/fluids/HotFluidType.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/fluids/PlasticFluidType.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/machines/firebox/FireboxBlock.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/machines/firebox/FireboxBlockEntity.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/machines/firebox/FireboxGenerator.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/machines/oil_processing/distillation/IndustrialPipeBlock.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/machines/oil_processing/distillation/VerticalPlacementHelper.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/machines/oil_processing/distillation/controller/DistillationControllerBlock.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/machines/oil_processing/distillation/controller/DistillationControllerBlockEntity.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/machines/oil_processing/distillation/output/DistillationOutputBlock.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/machines/oil_processing/distillation/output/DistillationOutputBlockEntity.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/machines/simple/welding_machine/BeltWeldingCallbacks.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/machines/simple/welding_machine/WeldingBehaviour.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/machines/simple/welding_machine/WeldingMachineBlock.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/machines/simple/welding_machine/WeldingMachineBlockEntity.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/machines/simple/welding_machine/WeldingMachineInstance.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/machines/simple/welding_machine/WeldingMachineRenderer.java create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/machines/simple/welding_machine/WeldingRecipe.java create mode 100644 src/main/java/com/drmangotea/createindustry/items/BatteryAcidBottleItem.java create mode 100644 src/main/java/com/drmangotea/createindustry/items/ConcreteBottleItem.java create mode 100644 src/main/java/com/drmangotea/createindustry/items/OilBucketItem.java create mode 100644 src/main/java/com/drmangotea/createindustry/items/weapons/LeadAxeItem.java create mode 100644 src/main/java/com/drmangotea/createindustry/items/weapons/LeadSwordItem.java create mode 100644 src/main/java/com/drmangotea/createindustry/items/weapons/advanced_potato_cannon/AdvancedPotatoCannonItem.java create mode 100644 src/main/java/com/drmangotea/createindustry/items/weapons/advanced_potato_cannon/AdvancedPotatoCannonItemRenderer.java create mode 100644 src/main/java/com/drmangotea/createindustry/items/weapons/advanced_potato_cannon/AdvancedPotatoCannonPacket.java create mode 100644 src/main/java/com/drmangotea/createindustry/items/weapons/advanced_potato_cannon/AdvancedPotatoCannonRenderHandler.java create mode 100644 src/main/java/com/drmangotea/createindustry/items/weapons/advanced_potato_cannon/projectile/NapalmPotato.java create mode 100644 src/main/java/com/drmangotea/createindustry/items/weapons/advanced_potato_cannon/projectile/NapalmPotatoRenderer.java create mode 100644 src/main/java/com/drmangotea/createindustry/items/weapons/explosives/pipe_bomb/PipeBomb.java create mode 100644 src/main/java/com/drmangotea/createindustry/items/weapons/explosives/pipe_bomb/PipeBombItem.java create mode 100644 src/main/java/com/drmangotea/createindustry/items/weapons/explosives/pipe_bomb/PipeBombRenderer.java create mode 100644 src/main/java/com/drmangotea/createindustry/items/weapons/flamethrover/FlamethrowerItem.java create mode 100644 src/main/java/com/drmangotea/createindustry/items/weapons/flamethrover/FlamethrowerPacket.java create mode 100644 src/main/java/com/drmangotea/createindustry/items/weapons/flamethrover/FlamethrowerRenderHandler.java create mode 100644 src/main/java/com/drmangotea/createindustry/items/weapons/lithium_blade/LitLithiumBladeItem.java create mode 100644 src/main/java/com/drmangotea/createindustry/items/weapons/lithium_blade/LithiumBladeItem.java create mode 100644 src/main/java/com/drmangotea/createindustry/items/weapons/lithium_blade/LithiumSpark.java create mode 100644 src/main/java/com/drmangotea/createindustry/items/weapons/lithium_blade/LithiumSparkRenderer.java create mode 100644 src/main/java/com/drmangotea/createindustry/items/weapons/quad_potato_cannon/QuadPotatoCannonPacket.java create mode 100644 src/main/java/com/drmangotea/createindustry/mixins/ArrowMixin.java create mode 100644 src/main/java/com/drmangotea/createindustry/mixins/BucketItemMixin.java create mode 100644 src/main/java/com/drmangotea/createindustry/ponder/scenes/ElectricityScenes.java create mode 100644 src/main/java/com/drmangotea/createindustry/registry/TFMGArmorMaterials.java create mode 100644 src/main/java/com/drmangotea/createindustry/registry/TFMGMobEffects.java create mode 100644 src/main/java/com/drmangotea/createindustry/registry/TFMGPackets.java create mode 100644 src/main/java/com/drmangotea/createindustry/registry/TFMGParticleTypes.java create mode 100644 src/main/java/com/drmangotea/createindustry/registry/TFMGPotions.java create mode 100644 src/main/java/com/drmangotea/createindustry/registry/TFMGTags.java create mode 100644 src/main/java/com/drmangotea/createindustry/registry/TFMGTiers.java create mode 100644 src/main/java/com/drmangotea/createindustry/worldgen/TFMGOreConfigEntries.java create mode 100644 src/main/java/com/drmangotea/createindustry/worldgen/oil_deposit/OilDepositFeature.java create mode 100644 src/main/java/com/drmangotea/createindustry/worldgen/oil_deposit/OilWellFeature.java create mode 100644 src/main/resources/assets/createindustry/lang/default/tooltips.json create mode 100644 src/main/resources/assets/createindustry/models/aluminum_cogwheel_shaftless.json create mode 100644 src/main/resources/assets/createindustry/models/block/accumulator/block.json create mode 100644 src/main/resources/assets/createindustry/models/block/accumulator/item.json create mode 100644 src/main/resources/assets/createindustry/models/block/aluminum_cogwheel.json create mode 100644 src/main/resources/assets/createindustry/models/block/aluminum_cogwheel_shaftless.json create mode 100644 src/main/resources/assets/createindustry/models/block/aluminum_frame/block.json create mode 100644 src/main/resources/assets/createindustry/models/block/aluminum_frame/item.json create mode 100644 src/main/resources/assets/createindustry/models/block/battery/block.json create mode 100644 src/main/resources/assets/createindustry/models/block/battery/item.json create mode 100644 src/main/resources/assets/createindustry/models/block/brass_frame/block.json create mode 100644 src/main/resources/assets/createindustry/models/block/brass_frame/item.json create mode 100644 src/main/resources/assets/createindustry/models/block/brass_pipe/casing.json create mode 100644 src/main/resources/assets/createindustry/models/block/brass_pipe/connection/down.json create mode 100644 src/main/resources/assets/createindustry/models/block/brass_pipe/connection/east.json create mode 100644 src/main/resources/assets/createindustry/models/block/brass_pipe/connection/north.json create mode 100644 src/main/resources/assets/createindustry/models/block/brass_pipe/connection/south.json create mode 100644 src/main/resources/assets/createindustry/models/block/brass_pipe/connection/up.json create mode 100644 src/main/resources/assets/createindustry/models/block/brass_pipe/connection/west.json create mode 100644 src/main/resources/assets/createindustry/models/block/brass_pipe/core_x.json create mode 100644 src/main/resources/assets/createindustry/models/block/brass_pipe/core_y.json create mode 100644 src/main/resources/assets/createindustry/models/block/brass_pipe/core_z.json create mode 100644 src/main/resources/assets/createindustry/models/block/brass_pipe/drain/down.json create mode 100644 src/main/resources/assets/createindustry/models/block/brass_pipe/drain/east.json create mode 100644 src/main/resources/assets/createindustry/models/block/brass_pipe/drain/north.json create mode 100644 src/main/resources/assets/createindustry/models/block/brass_pipe/drain/south.json create mode 100644 src/main/resources/assets/createindustry/models/block/brass_pipe/drain/up.json create mode 100644 src/main/resources/assets/createindustry/models/block/brass_pipe/drain/west.json create mode 100644 src/main/resources/assets/createindustry/models/block/brass_pipe/item.json create mode 100644 src/main/resources/assets/createindustry/models/block/brass_pipe/rim/down.json create mode 100644 src/main/resources/assets/createindustry/models/block/brass_pipe/rim/east.json create mode 100644 src/main/resources/assets/createindustry/models/block/brass_pipe/rim/north.json create mode 100644 src/main/resources/assets/createindustry/models/block/brass_pipe/rim/south.json create mode 100644 src/main/resources/assets/createindustry/models/block/brass_pipe/rim/up.json create mode 100644 src/main/resources/assets/createindustry/models/block/brass_pipe/rim/west.json create mode 100644 src/main/resources/assets/createindustry/models/block/brass_pipe/rim_connector/down.json create mode 100644 src/main/resources/assets/createindustry/models/block/brass_pipe/rim_connector/east.json create mode 100644 src/main/resources/assets/createindustry/models/block/brass_pipe/rim_connector/north.json create mode 100644 src/main/resources/assets/createindustry/models/block/brass_pipe/rim_connector/south.json create mode 100644 src/main/resources/assets/createindustry/models/block/brass_pipe/rim_connector/up.json create mode 100644 src/main/resources/assets/createindustry/models/block/brass_pipe/rim_connector/west.json create mode 100644 src/main/resources/assets/createindustry/models/block/brass_pipe/window.json create mode 100644 src/main/resources/assets/createindustry/models/block/brass_pipe/window_alt.json create mode 100644 src/main/resources/assets/createindustry/models/block/brass_truss.json create mode 100644 src/main/resources/assets/createindustry/models/block/cable_connector/block.json create mode 100644 src/main/resources/assets/createindustry/models/block/cable_connector/block_extension.json create mode 100644 src/main/resources/assets/createindustry/models/block/cable_connector/item.json create mode 100644 src/main/resources/assets/createindustry/models/block/cable_tube.json create mode 100644 src/main/resources/assets/createindustry/models/block/capacitor/block.json create mode 100644 src/main/resources/assets/createindustry/models/block/capacitor/item.json create mode 100644 src/main/resources/assets/createindustry/models/block/cast_iron_frame/block.json create mode 100644 src/main/resources/assets/createindustry/models/block/cast_iron_frame/item.json create mode 100644 src/main/resources/assets/createindustry/models/block/cast_iron_truss.json create mode 100644 src/main/resources/assets/createindustry/models/block/caution_block.json create mode 100644 src/main/resources/assets/createindustry/models/block/cinder_block/block.json create mode 100644 src/main/resources/assets/createindustry/models/block/cinder_block/item.json create mode 100644 src/main/resources/assets/createindustry/models/block/cinderflour_block/block.json create mode 100644 src/main/resources/assets/createindustry/models/block/cinderflour_block/item.json create mode 100644 src/main/resources/assets/createindustry/models/block/converter/block.json create mode 100644 src/main/resources/assets/createindustry/models/block/converter/block_vertical.json create mode 100644 src/main/resources/assets/createindustry/models/block/converter/item.json create mode 100644 src/main/resources/assets/createindustry/models/block/copper_coil/block.json create mode 100644 src/main/resources/assets/createindustry/models/block/copper_coil/block_arrow.json create mode 100644 src/main/resources/assets/createindustry/models/block/copper_coil/item.json create mode 100644 src/main/resources/assets/createindustry/models/block/copper_frame/block.json create mode 100644 src/main/resources/assets/createindustry/models/block/copper_frame/item.json create mode 100644 src/main/resources/assets/createindustry/models/block/copper_truss.json create mode 100644 src/main/resources/assets/createindustry/models/block/copycat_cable_base/block.json create mode 100644 src/main/resources/assets/createindustry/models/block/copycat_cable_base/item.json create mode 100644 src/main/resources/assets/createindustry/models/block/copycat_cable_block/block.json create mode 100644 src/main/resources/assets/createindustry/models/block/copycat_cable_block/item.json create mode 100644 src/main/resources/assets/createindustry/models/block/diagonal_cable_block/block.json create mode 100644 src/main/resources/assets/createindustry/models/block/diagonal_cable_block/block_up.json create mode 100644 src/main/resources/assets/createindustry/models/block/diagonal_cable_block/item.json create mode 100644 src/main/resources/assets/createindustry/models/block/diesel_engine/linkage.json create mode 100644 src/main/resources/assets/createindustry/models/block/diesel_engine/piston.json create mode 100644 src/main/resources/assets/createindustry/models/block/electric_motor/block.json create mode 100644 src/main/resources/assets/createindustry/models/block/electric_motor/block_vertical.json create mode 100644 src/main/resources/assets/createindustry/models/block/electric_motor/item.json create mode 100644 src/main/resources/assets/createindustry/models/block/electrical_switch/block.json create mode 100644 src/main/resources/assets/createindustry/models/block/electrical_switch/block_powered.json create mode 100644 src/main/resources/assets/createindustry/models/block/electrical_switch/item.json create mode 100644 src/main/resources/assets/createindustry/models/block/electrical_switch/lever.json create mode 100644 src/main/resources/assets/createindustry/models/block/energy_meter/block.json create mode 100644 src/main/resources/assets/createindustry/models/block/energy_meter/dial.json create mode 100644 src/main/resources/assets/createindustry/models/block/energy_meter/item.json create mode 100644 src/main/resources/assets/createindustry/models/block/firebox/block.json create mode 100644 src/main/resources/assets/createindustry/models/block/firebox/block_lit.json create mode 100644 src/main/resources/assets/createindustry/models/block/firebox/item.json create mode 100644 src/main/resources/assets/createindustry/models/block/galvanic_cell/block.json create mode 100644 src/main/resources/assets/createindustry/models/block/galvanic_cell/item.json create mode 100644 src/main/resources/assets/createindustry/models/block/generator/block.json create mode 100644 src/main/resources/assets/createindustry/models/block/generator/item.json create mode 100644 src/main/resources/assets/createindustry/models/block/glass_cable_connector/block.json create mode 100644 src/main/resources/assets/createindustry/models/block/glass_cable_connector/block_extension.json create mode 100644 src/main/resources/assets/createindustry/models/block/glass_cable_connector/item.json create mode 100644 src/main/resources/assets/createindustry/models/block/industrial_light/block.json create mode 100644 src/main/resources/assets/createindustry/models/block/industrial_light/item.json create mode 100644 src/main/resources/assets/createindustry/models/block/industrial_light/light.json create mode 100644 src/main/resources/assets/createindustry/models/block/large_aluminum_cogwheel.json create mode 100644 src/main/resources/assets/createindustry/models/block/large_aluminum_cogwheel_shaftless.json create mode 100644 src/main/resources/assets/createindustry/models/block/large_steel_cogwheel.json create mode 100644 src/main/resources/assets/createindustry/models/block/large_steel_cogwheel_shaftless.json create mode 100644 src/main/resources/assets/createindustry/models/block/lead_flywheel/block.json create mode 100644 src/main/resources/assets/createindustry/models/block/lead_flywheel/flywheel.json create mode 100644 src/main/resources/assets/createindustry/models/block/lead_flywheel/item.json create mode 100644 src/main/resources/assets/createindustry/models/block/lead_frame/block.json create mode 100644 src/main/resources/assets/createindustry/models/block/lead_frame/item.json create mode 100644 src/main/resources/assets/createindustry/models/block/lead_glass/block.json create mode 100644 src/main/resources/assets/createindustry/models/block/lead_glass/item.json create mode 100644 src/main/resources/assets/createindustry/models/block/lead_truss.json create mode 100644 src/main/resources/assets/createindustry/models/block/light_bulb/block.json create mode 100644 src/main/resources/assets/createindustry/models/block/light_bulb/item.json create mode 100644 src/main/resources/assets/createindustry/models/block/light_bulb/light.json create mode 100644 src/main/resources/assets/createindustry/models/block/lithium_torch/block.json create mode 100644 src/main/resources/assets/createindustry/models/block/lithium_torch/block_wall.json create mode 100644 src/main/resources/assets/createindustry/models/block/lithium_torch/item.json create mode 100644 src/main/resources/assets/createindustry/models/block/low_grade_fuel_engine/block.json create mode 100644 src/main/resources/assets/createindustry/models/block/low_grade_fuel_engine/item.json create mode 100644 src/main/resources/assets/createindustry/models/block/neon_tube/block.json create mode 100644 src/main/resources/assets/createindustry/models/block/neon_tube/item.json create mode 100644 src/main/resources/assets/createindustry/models/block/neon_tube/light.json create mode 100644 src/main/resources/assets/createindustry/models/block/nickel_flywheel/block.json create mode 100644 src/main/resources/assets/createindustry/models/block/nickel_flywheel/flywheel.json create mode 100644 src/main/resources/assets/createindustry/models/block/nickel_flywheel/item.json create mode 100644 src/main/resources/assets/createindustry/models/block/nickel_frame/block.json create mode 100644 src/main/resources/assets/createindustry/models/block/nickel_frame/item.json create mode 100644 src/main/resources/assets/createindustry/models/block/nickel_truss.json create mode 100644 src/main/resources/assets/createindustry/models/block/polarizer/block.json create mode 100644 src/main/resources/assets/createindustry/models/block/polarizer/item.json create mode 100644 src/main/resources/assets/createindustry/models/block/resistor/block.json create mode 100644 src/main/resources/assets/createindustry/models/block/resistor/item.json create mode 100644 src/main/resources/assets/createindustry/models/block/rgb_light_bulb/block.json create mode 100644 src/main/resources/assets/createindustry/models/block/rgb_light_bulb/item.json create mode 100644 src/main/resources/assets/createindustry/models/block/rotor/block.json create mode 100644 src/main/resources/assets/createindustry/models/block/rotor/frame.json create mode 100644 src/main/resources/assets/createindustry/models/block/rotor/item.json create mode 100644 src/main/resources/assets/createindustry/models/block/rotor/item.obj create mode 100644 src/main/resources/assets/createindustry/models/block/rotor/model.mtl create mode 100644 src/main/resources/assets/createindustry/models/block/rotor/model.obj create mode 100644 src/main/resources/assets/createindustry/models/block/rotor/rotor.json create mode 100644 src/main/resources/assets/createindustry/models/block/stator/block_corner.json create mode 100644 src/main/resources/assets/createindustry/models/block/stator/block_corner_up.json create mode 100644 src/main/resources/assets/createindustry/models/block/stator/block_side.json create mode 100644 src/main/resources/assets/createindustry/models/block/stator/block_side_rotated.json create mode 100644 src/main/resources/assets/createindustry/models/block/stator/block_unused.json create mode 100644 src/main/resources/assets/createindustry/models/block/stator/item.json create mode 100644 src/main/resources/assets/createindustry/models/block/stator/output.json create mode 100644 src/main/resources/assets/createindustry/models/block/steel_cogwheel.json create mode 100644 src/main/resources/assets/createindustry/models/block/steel_cogwheel_shaftless.json create mode 100644 src/main/resources/assets/createindustry/models/block/steel_gearbox/block.json create mode 100644 src/main/resources/assets/createindustry/models/block/steel_gearbox/item.json create mode 100644 src/main/resources/assets/createindustry/models/block/steel_gearbox/item_vertical.json create mode 100644 src/main/resources/assets/createindustry/models/block/surface_scanner/block.json create mode 100644 src/main/resources/assets/createindustry/models/block/voltmeter/block.json create mode 100644 src/main/resources/assets/createindustry/models/block/voltmeter/dial.json create mode 100644 src/main/resources/assets/createindustry/models/block/voltmeter/item.json create mode 100644 src/main/resources/assets/createindustry/models/block/welding_machine/block.json create mode 100644 src/main/resources/assets/createindustry/models/block/welding_machine/item.json create mode 100644 src/main/resources/assets/createindustry/models/block/zinc_frame/block.json create mode 100644 src/main/resources/assets/createindustry/models/block/zinc_frame/item.json create mode 100644 src/main/resources/assets/createindustry/models/block/zinc_truss.json create mode 100644 src/main/resources/assets/createindustry/models/item/advanced_potato_cannon/item.json create mode 100644 src/main/resources/assets/createindustry/models/item/flamethrower/item.json create mode 100644 src/main/resources/assets/createindustry/models/large_aluminum_cogwheel_shaftless.json create mode 100644 src/main/resources/assets/createindustry/models/large_steel_cogwheel_shaftless.json create mode 100644 src/main/resources/assets/createindustry/models/steel_cogwheel_shaftless.json create mode 100644 src/main/resources/assets/createindustry/particles/electric_spark.json create mode 100644 src/main/resources/assets/createindustry/ponder/large_generator.nbt create mode 100644 src/main/resources/assets/createindustry/textures/block/accumulator.png create mode 100644 src/main/resources/assets/createindustry/textures/block/accumulator_side.png create mode 100644 src/main/resources/assets/createindustry/textures/block/accumulator_side_connected.png create mode 100644 src/main/resources/assets/createindustry/textures/block/aluminum_cable_hub.png create mode 100644 src/main/resources/assets/createindustry/textures/block/aluminum_coghweel.png create mode 100644 src/main/resources/assets/createindustry/textures/block/aluminum_frame_2.png create mode 100644 src/main/resources/assets/createindustry/textures/block/bars/cast_iron_bars.png create mode 100644 src/main/resources/assets/createindustry/textures/block/bars/cast_iron_bars_edge.png create mode 100644 src/main/resources/assets/createindustry/textures/block/bars/lead_bars.png create mode 100644 src/main/resources/assets/createindustry/textures/block/bars/lead_bars_edge.png create mode 100644 src/main/resources/assets/createindustry/textures/block/bars/nickel_bars.png create mode 100644 src/main/resources/assets/createindustry/textures/block/bars/nickel_bars_edge.png create mode 100644 src/main/resources/assets/createindustry/textures/block/brass_cable_hub.png create mode 100644 src/main/resources/assets/createindustry/textures/block/brass_frame.png create mode 100644 src/main/resources/assets/createindustry/textures/block/brass_truss.png create mode 100644 src/main/resources/assets/createindustry/textures/block/cable_connector.png create mode 100644 src/main/resources/assets/createindustry/textures/block/cable_tube.png create mode 100644 src/main/resources/assets/createindustry/textures/block/capacitor.png create mode 100644 src/main/resources/assets/createindustry/textures/block/capacitor_side.png create mode 100644 src/main/resources/assets/createindustry/textures/block/capacitor_side_connected.png create mode 100644 src/main/resources/assets/createindustry/textures/block/cast_iron_frame_2.png create mode 100644 src/main/resources/assets/createindustry/textures/block/cast_iron_truss.png create mode 100644 src/main/resources/assets/createindustry/textures/block/caution_block/blue.png create mode 100644 src/main/resources/assets/createindustry/textures/block/caution_block/brown.png create mode 100644 src/main/resources/assets/createindustry/textures/block/caution_block/cyan.png create mode 100644 src/main/resources/assets/createindustry/textures/block/caution_block/gray.png create mode 100644 src/main/resources/assets/createindustry/textures/block/caution_block/green.png create mode 100644 src/main/resources/assets/createindustry/textures/block/caution_block/light_blue.png create mode 100644 src/main/resources/assets/createindustry/textures/block/caution_block/light_gray.png create mode 100644 src/main/resources/assets/createindustry/textures/block/caution_block/lime.png create mode 100644 src/main/resources/assets/createindustry/textures/block/caution_block/magenta.png create mode 100644 src/main/resources/assets/createindustry/textures/block/caution_block/orange.png create mode 100644 src/main/resources/assets/createindustry/textures/block/caution_block/pink.png create mode 100644 src/main/resources/assets/createindustry/textures/block/caution_block/purple.png create mode 100644 src/main/resources/assets/createindustry/textures/block/caution_block/red.png create mode 100644 src/main/resources/assets/createindustry/textures/block/caution_block/white.png create mode 100644 src/main/resources/assets/createindustry/textures/block/caution_block/yellow.png create mode 100644 src/main/resources/assets/createindustry/textures/block/cinderblock.png create mode 100644 src/main/resources/assets/createindustry/textures/block/cinderblock_top.png create mode 100644 src/main/resources/assets/createindustry/textures/block/cinderflourblock.png create mode 100644 src/main/resources/assets/createindustry/textures/block/cinderflourblock_top.png create mode 100644 src/main/resources/assets/createindustry/textures/block/converter_side.png create mode 100644 src/main/resources/assets/createindustry/textures/block/converter_top.png create mode 100644 src/main/resources/assets/createindustry/textures/block/copper_cable_hub.png create mode 100644 src/main/resources/assets/createindustry/textures/block/copper_coil.png create mode 100644 src/main/resources/assets/createindustry/textures/block/copper_coil_arrow.png create mode 100644 src/main/resources/assets/createindustry/textures/block/copper_coil_top.png create mode 100644 src/main/resources/assets/createindustry/textures/block/copper_frame.png create mode 100644 src/main/resources/assets/createindustry/textures/block/copper_truss.png create mode 100644 src/main/resources/assets/createindustry/textures/block/copycat_cable_block.png create mode 100644 src/main/resources/assets/createindustry/textures/block/creative_generator.png create mode 100644 src/main/resources/assets/createindustry/textures/block/deepslate_lead_ore.png create mode 100644 src/main/resources/assets/createindustry/textures/block/deepslate_lithium_ore.png create mode 100644 src/main/resources/assets/createindustry/textures/block/deepslate_nickel_ore.png create mode 100644 src/main/resources/assets/createindustry/textures/block/diagonal_cable_block.png create mode 100644 src/main/resources/assets/createindustry/textures/block/diesel_engine_linkage.png create mode 100644 src/main/resources/assets/createindustry/textures/block/electric_casing.png create mode 100644 src/main/resources/assets/createindustry/textures/block/electric_casing_connected.png create mode 100644 src/main/resources/assets/createindustry/textures/block/electric_motor.png create mode 100644 src/main/resources/assets/createindustry/textures/block/epic_party_light_bulb.png create mode 100644 src/main/resources/assets/createindustry/textures/block/firebox.png create mode 100644 src/main/resources/assets/createindustry/textures/block/firebox_lit.png create mode 100644 src/main/resources/assets/createindustry/textures/block/firebox_lit.png.mcmeta create mode 100644 src/main/resources/assets/createindustry/textures/block/furnác.png create mode 100644 src/main/resources/assets/createindustry/textures/block/galvanic_cell.png create mode 100644 src/main/resources/assets/createindustry/textures/block/generator.png create mode 100644 src/main/resources/assets/createindustry/textures/block/gildidier_blackstone.png create mode 100644 src/main/resources/assets/createindustry/textures/block/heavy_cable_hub.png create mode 100644 src/main/resources/assets/createindustry/textures/block/heavy_machinery_encased_cogwheel_side_horizontal.png create mode 100644 src/main/resources/assets/createindustry/textures/block/heavy_machinery_encased_cogwheel_side_horizontal_connected.png create mode 100644 src/main/resources/assets/createindustry/textures/block/ladder_cast_iron.png create mode 100644 src/main/resources/assets/createindustry/textures/block/ladder_cast_iron_hoop.png create mode 100644 src/main/resources/assets/createindustry/textures/block/ladder_lead.png create mode 100644 src/main/resources/assets/createindustry/textures/block/ladder_lead_hoop.png create mode 100644 src/main/resources/assets/createindustry/textures/block/ladder_nickel.png create mode 100644 src/main/resources/assets/createindustry/textures/block/ladder_nickel_hoop.png create mode 100644 src/main/resources/assets/createindustry/textures/block/large_aluminum_coghweel.png create mode 100644 src/main/resources/assets/createindustry/textures/block/large_aluminum_cogwheel.png create mode 100644 src/main/resources/assets/createindustry/textures/block/large_aluminum_cogwheel_2.png create mode 100644 src/main/resources/assets/createindustry/textures/block/large_generator.png create mode 100644 src/main/resources/assets/createindustry/textures/block/large_steel_cogwheel.png create mode 100644 src/main/resources/assets/createindustry/textures/block/lead_block.png create mode 100644 src/main/resources/assets/createindustry/textures/block/lead_block_connected.png create mode 100644 src/main/resources/assets/createindustry/textures/block/lead_flywheel.png create mode 100644 src/main/resources/assets/createindustry/textures/block/lead_frame_2.png create mode 100644 src/main/resources/assets/createindustry/textures/block/lead_glass.png create mode 100644 src/main/resources/assets/createindustry/textures/block/lead_glass_connected.png create mode 100644 src/main/resources/assets/createindustry/textures/block/lead_glass_item.png create mode 100644 src/main/resources/assets/createindustry/textures/block/lead_ore.png create mode 100644 src/main/resources/assets/createindustry/textures/block/lead_truss.png create mode 100644 src/main/resources/assets/createindustry/textures/block/light.png create mode 100644 src/main/resources/assets/createindustry/textures/block/light_blue_metal_plate.png create mode 100644 src/main/resources/assets/createindustry/textures/block/light_bulb.png create mode 100644 src/main/resources/assets/createindustry/textures/block/lithium_block.png create mode 100644 src/main/resources/assets/createindustry/textures/block/lithium_ore.png create mode 100644 src/main/resources/assets/createindustry/textures/block/lithium_torch.png create mode 100644 src/main/resources/assets/createindustry/textures/block/low_grade_fuel_engine.png create mode 100644 src/main/resources/assets/createindustry/textures/block/neon_tube.png create mode 100644 src/main/resources/assets/createindustry/textures/block/nickel_block.png create mode 100644 src/main/resources/assets/createindustry/textures/block/nickel_flywheel.png create mode 100644 src/main/resources/assets/createindustry/textures/block/nickel_frame.png create mode 100644 src/main/resources/assets/createindustry/textures/block/nickel_ore.png create mode 100644 src/main/resources/assets/createindustry/textures/block/nickel_truss.png create mode 100644 src/main/resources/assets/createindustry/textures/block/palettes/stone_types/alternatives/galena_cut_basketweave.png create mode 100644 src/main/resources/assets/createindustry/textures/block/palettes/stone_types/alternatives/galena_cut_bond.png create mode 100644 src/main/resources/assets/createindustry/textures/block/palettes/stone_types/alternatives/galena_cut_herring.png create mode 100644 src/main/resources/assets/createindustry/textures/block/palettes/stone_types/alternatives/galena_cut_indented.png create mode 100644 src/main/resources/assets/createindustry/textures/block/palettes/stone_types/brick/galena_cut_brick.png create mode 100644 src/main/resources/assets/createindustry/textures/block/palettes/stone_types/cap/galena_cut_cap.png create mode 100644 src/main/resources/assets/createindustry/textures/block/palettes/stone_types/cap/galena_cut_cap_connected.png create mode 100644 src/main/resources/assets/createindustry/textures/block/palettes/stone_types/cut/galena_cut.png create mode 100644 src/main/resources/assets/createindustry/textures/block/palettes/stone_types/layered/galena_cut_layered.png create mode 100644 src/main/resources/assets/createindustry/textures/block/palettes/stone_types/layered/galena_cut_layered_connected.png create mode 100644 src/main/resources/assets/createindustry/textures/block/palettes/stone_types/natural/galena_0.png create mode 100644 src/main/resources/assets/createindustry/textures/block/palettes/stone_types/natural/galena_1.png create mode 100644 src/main/resources/assets/createindustry/textures/block/palettes/stone_types/natural/galena_2.png create mode 100644 src/main/resources/assets/createindustry/textures/block/palettes/stone_types/natural/galena_3.png create mode 100644 src/main/resources/assets/createindustry/textures/block/palettes/stone_types/pillar/galena_cut_pillar.png create mode 100644 src/main/resources/assets/createindustry/textures/block/palettes/stone_types/pillar/galena_cut_pillar_connected.png create mode 100644 src/main/resources/assets/createindustry/textures/block/palettes/stone_types/polished/galena_cut_polished.png create mode 100644 src/main/resources/assets/createindustry/textures/block/palettes/stone_types/slab/galena_cut_slab.png create mode 100644 src/main/resources/assets/createindustry/textures/block/palettes/stone_types/small_brick/galena_cut_small_brick.png create mode 100644 src/main/resources/assets/createindustry/textures/block/polarizer.png create mode 100644 src/main/resources/assets/createindustry/textures/block/pumpjack_crank.png create mode 100644 src/main/resources/assets/createindustry/textures/block/resistor.png create mode 100644 src/main/resources/assets/createindustry/textures/block/rgb_light_bulb.png create mode 100644 src/main/resources/assets/createindustry/textures/block/steel_cable_hub.png create mode 100644 src/main/resources/assets/createindustry/textures/block/steel_casing_cable_hub.png create mode 100644 src/main/resources/assets/createindustry/textures/block/steel_coghweel.png create mode 100644 src/main/resources/assets/createindustry/textures/block/steel_encased_cogwheel_side_horizontal.png create mode 100644 src/main/resources/assets/createindustry/textures/block/steel_encased_cogwheel_side_horizontal_connected.png create mode 100644 src/main/resources/assets/createindustry/textures/block/the_rock.png create mode 100644 src/main/resources/assets/createindustry/textures/block/voltage_cube.png create mode 100644 src/main/resources/assets/createindustry/textures/block/voltmeter.png create mode 100644 src/main/resources/assets/createindustry/textures/block/zinc_frame.png create mode 100644 src/main/resources/assets/createindustry/textures/block/zinc_truss.png create mode 100644 src/main/resources/assets/createindustry/textures/entity/lithium_spark.png create mode 100644 src/main/resources/assets/createindustry/textures/fluid/air.png create mode 100644 src/main/resources/assets/createindustry/textures/fluid/neon.png create mode 100644 src/main/resources/assets/createindustry/textures/fluid/pink_cooling_fluid_flow.png create mode 100644 src/main/resources/assets/createindustry/textures/fluid/pink_cooling_fluid_flow.png.mcmeta create mode 100644 src/main/resources/assets/createindustry/textures/fluid/pink_cooling_fluid_still.png create mode 100644 src/main/resources/assets/createindustry/textures/fluid/pink_cooling_fluid_still.png.mcmeta create mode 100644 src/main/resources/assets/createindustry/textures/fluid/sulfuric_acid_flow.png create mode 100644 src/main/resources/assets/createindustry/textures/fluid/sulfuric_acid_flow.png.mcmeta create mode 100644 src/main/resources/assets/createindustry/textures/fluid/sulfuric_acid_still.png create mode 100644 src/main/resources/assets/createindustry/textures/fluid/sulfuric_acid_still.png.mcmeta create mode 100644 src/main/resources/assets/createindustry/textures/item/advanced_potato_cannon.png create mode 100644 src/main/resources/assets/createindustry/textures/item/air_bucket.png create mode 100644 src/main/resources/assets/createindustry/textures/item/aluminum_axe.png create mode 100644 src/main/resources/assets/createindustry/textures/item/aluminum_hoe.png create mode 100644 src/main/resources/assets/createindustry/textures/item/aluminum_pickaxe.png create mode 100644 src/main/resources/assets/createindustry/textures/item/aluminum_shovel.png create mode 100644 src/main/resources/assets/createindustry/textures/item/aluminum_sword.png create mode 100644 src/main/resources/assets/createindustry/textures/item/aluminum_wire.png create mode 100644 src/main/resources/assets/createindustry/textures/item/bottle_of_battery_acid.png create mode 100644 src/main/resources/assets/createindustry/textures/item/bottle_of_concrete.png create mode 100644 src/main/resources/assets/createindustry/textures/item/butane_bucket.png create mode 100644 src/main/resources/assets/createindustry/textures/item/capacitor_.png create mode 100644 src/main/resources/assets/createindustry/textures/item/carbon_dioxide_bucket.png create mode 100644 src/main/resources/assets/createindustry/textures/item/cinderblock.png create mode 100644 src/main/resources/assets/createindustry/textures/item/cinderflourblock.png create mode 100644 src/main/resources/assets/createindustry/textures/item/copper_cable.png create mode 100644 src/main/resources/assets/createindustry/textures/item/copper_sulfate.png create mode 100644 src/main/resources/assets/createindustry/textures/item/copper_wire.png create mode 100644 src/main/resources/assets/createindustry/textures/item/ethylene_bucket.png create mode 100644 src/main/resources/assets/createindustry/textures/item/flamethrower.png create mode 100644 src/main/resources/assets/createindustry/textures/item/lead_axe.png create mode 100644 src/main/resources/assets/createindustry/textures/item/lead_hoe.png create mode 100644 src/main/resources/assets/createindustry/textures/item/lead_ingot.png create mode 100644 src/main/resources/assets/createindustry/textures/item/lead_pickaxe.png create mode 100644 src/main/resources/assets/createindustry/textures/item/lead_shovel.png create mode 100644 src/main/resources/assets/createindustry/textures/item/lead_sword.png create mode 100644 src/main/resources/assets/createindustry/textures/item/lithium_blade.png create mode 100644 src/main/resources/assets/createindustry/textures/item/lithium_blade_lit.png create mode 100644 src/main/resources/assets/createindustry/textures/item/lithium_blade_lit.png.mcmeta create mode 100644 src/main/resources/assets/createindustry/textures/item/lithium_charge.png create mode 100644 src/main/resources/assets/createindustry/textures/item/lithium_ingot.png create mode 100644 src/main/resources/assets/createindustry/textures/item/lpg_bucket.png create mode 100644 src/main/resources/assets/createindustry/textures/item/magnetic_ingot.png create mode 100644 src/main/resources/assets/createindustry/textures/item/napalm_potato.png create mode 100644 src/main/resources/assets/createindustry/textures/item/neon_bucket.png create mode 100644 src/main/resources/assets/createindustry/textures/item/nickel_ingot.png create mode 100644 src/main/resources/assets/createindustry/textures/item/pink_cooling_fluid_bucket.png create mode 100644 src/main/resources/assets/createindustry/textures/item/pipe_bomb.png create mode 100644 src/main/resources/assets/createindustry/textures/item/propane_bucket.png create mode 100644 src/main/resources/assets/createindustry/textures/item/propylene_bucket.png create mode 100644 src/main/resources/assets/createindustry/textures/item/raw_lead.png create mode 100644 src/main/resources/assets/createindustry/textures/item/raw_lithium.png create mode 100644 src/main/resources/assets/createindustry/textures/item/raw_nickel.png create mode 100644 src/main/resources/assets/createindustry/textures/item/resistor_.png create mode 100644 src/main/resources/assets/createindustry/textures/item/steel_axe.png create mode 100644 src/main/resources/assets/createindustry/textures/item/steel_boots.png create mode 100644 src/main/resources/assets/createindustry/textures/item/steel_chestplate.png create mode 100644 src/main/resources/assets/createindustry/textures/item/steel_helmet.png create mode 100644 src/main/resources/assets/createindustry/textures/item/steel_hoe.png create mode 100644 src/main/resources/assets/createindustry/textures/item/steel_leggings.png create mode 100644 src/main/resources/assets/createindustry/textures/item/steel_pickaxe.png create mode 100644 src/main/resources/assets/createindustry/textures/item/steel_shovel.png create mode 100644 src/main/resources/assets/createindustry/textures/item/steel_sword.png create mode 100644 src/main/resources/assets/createindustry/textures/item/sulfuric_acid_bucket.png create mode 100644 src/main/resources/assets/createindustry/textures/item/synthetic_leather.png create mode 100644 src/main/resources/assets/createindustry/textures/item/synthetic_string.png create mode 100644 src/main/resources/assets/createindustry/textures/item/zinc_sulfate.png create mode 100644 src/main/resources/assets/createindustry/textures/mob_effect/hellfire.png create mode 100644 src/main/resources/assets/createindustry/textures/models/armor/steel_layer_1.png create mode 100644 src/main/resources/assets/createindustry/textures/models/armor/steel_layer_2.png create mode 100644 src/main/resources/assets/createindustry/textures/particle/electric_spark.png create mode 100644 src/main/resources/data/createindustry/forge/biome_modifier/yeehaw3.json create mode 100644 src/main/resources/data/createindustry/railways_liquid_fuel/diesel.json create mode 100644 src/main/resources/data/createindustry/railways_liquid_fuel/naphtha.json create mode 100644 src/main/resources/data/createindustry/recipes/coking/charcoal.json create mode 100644 src/main/resources/data/createindustry/recipes/colored_concrete/full_block/black_concrete.json create mode 100644 src/main/resources/data/createindustry/recipes/colored_concrete/full_block/blue_concrete.json create mode 100644 src/main/resources/data/createindustry/recipes/colored_concrete/full_block/brown_concrete.json create mode 100644 src/main/resources/data/createindustry/recipes/colored_concrete/full_block/cyan_concrete.json create mode 100644 src/main/resources/data/createindustry/recipes/colored_concrete/full_block/gray_concrete.json create mode 100644 src/main/resources/data/createindustry/recipes/colored_concrete/full_block/green_concrete.json create mode 100644 src/main/resources/data/createindustry/recipes/colored_concrete/full_block/light_blue_concrete.json create mode 100644 src/main/resources/data/createindustry/recipes/colored_concrete/full_block/light_gray_concrete.json create mode 100644 src/main/resources/data/createindustry/recipes/colored_concrete/full_block/lime_concrete.json create mode 100644 src/main/resources/data/createindustry/recipes/colored_concrete/full_block/magenta_concrete.json create mode 100644 src/main/resources/data/createindustry/recipes/colored_concrete/full_block/orange_concrete.json create mode 100644 src/main/resources/data/createindustry/recipes/colored_concrete/full_block/pink_concrete.json create mode 100644 src/main/resources/data/createindustry/recipes/colored_concrete/full_block/purple_concrete.json create mode 100644 src/main/resources/data/createindustry/recipes/colored_concrete/full_block/red_concrete.json create mode 100644 src/main/resources/data/createindustry/recipes/colored_concrete/full_block/white_concrete.json create mode 100644 src/main/resources/data/createindustry/recipes/colored_concrete/full_block/yellow_concrete.json create mode 100644 src/main/resources/data/createindustry/recipes/compacting/bitumen.json create mode 100644 src/main/resources/data/createindustry/recipes/compacting/cinderflourblock.json create mode 100644 src/main/resources/data/createindustry/recipes/crafting/accumulator.json create mode 100644 src/main/resources/data/createindustry/recipes/crafting/aluminum_coghweel.json create mode 100644 src/main/resources/data/createindustry/recipes/crafting/armor/steel_boots.json create mode 100644 src/main/resources/data/createindustry/recipes/crafting/armor/steel_chestplate.json create mode 100644 src/main/resources/data/createindustry/recipes/crafting/armor/steel_helmet.json create mode 100644 src/main/resources/data/createindustry/recipes/crafting/armor/steel_leggings.json create mode 100644 src/main/resources/data/createindustry/recipes/crafting/battery.json create mode 100644 src/main/resources/data/createindustry/recipes/crafting/cable_connector.json create mode 100644 src/main/resources/data/createindustry/recipes/crafting/cable_tube.json create mode 100644 src/main/resources/data/createindustry/recipes/crafting/capacitor.json create mode 100644 src/main/resources/data/createindustry/recipes/crafting/capacitor_item.json create mode 100644 src/main/resources/data/createindustry/recipes/crafting/cinder_block.json create mode 100644 src/main/resources/data/createindustry/recipes/crafting/cinderflour_block.json create mode 100644 src/main/resources/data/createindustry/recipes/crafting/converter.json create mode 100644 src/main/resources/data/createindustry/recipes/crafting/copper_coil.json create mode 100644 src/main/resources/data/createindustry/recipes/crafting/copper_wire.json create mode 100644 src/main/resources/data/createindustry/recipes/crafting/copper_wire_plastic.json create mode 100644 src/main/resources/data/createindustry/recipes/crafting/copycat_cable_block.json create mode 100644 src/main/resources/data/createindustry/recipes/crafting/diagonal_cable_block.json create mode 100644 src/main/resources/data/createindustry/recipes/crafting/electric_casing.json create mode 100644 src/main/resources/data/createindustry/recipes/crafting/electric_motor.json create mode 100644 src/main/resources/data/createindustry/recipes/crafting/energy_meter.json create mode 100644 src/main/resources/data/createindustry/recipes/crafting/epic_party_light_bulb.json create mode 100644 src/main/resources/data/createindustry/recipes/crafting/firebox.json create mode 100644 src/main/resources/data/createindustry/recipes/crafting/galvanic_cell.json create mode 100644 src/main/resources/data/createindustry/recipes/crafting/glass_cable_connector.json create mode 100644 src/main/resources/data/createindustry/recipes/crafting/hubs/aluminum.json create mode 100644 src/main/resources/data/createindustry/recipes/crafting/hubs/brass.json create mode 100644 src/main/resources/data/createindustry/recipes/crafting/hubs/copper.json create mode 100644 src/main/resources/data/createindustry/recipes/crafting/hubs/heavy.json create mode 100644 src/main/resources/data/createindustry/recipes/crafting/hubs/steel.json create mode 100644 src/main/resources/data/createindustry/recipes/crafting/hubs/steel_casing.json create mode 100644 src/main/resources/data/createindustry/recipes/crafting/large_aluminum_coghweel.json create mode 100644 src/main/resources/data/createindustry/recipes/crafting/large_steel_coghweel.json create mode 100644 src/main/resources/data/createindustry/recipes/crafting/lead_block.json create mode 100644 src/main/resources/data/createindustry/recipes/crafting/lead_from_block.json create mode 100644 src/main/resources/data/createindustry/recipes/crafting/lead_glass.json create mode 100644 src/main/resources/data/createindustry/recipes/crafting/light_bulb.json create mode 100644 src/main/resources/data/createindustry/recipes/crafting/lithium_block.json create mode 100644 src/main/resources/data/createindustry/recipes/crafting/lithium_charge.json create mode 100644 src/main/resources/data/createindustry/recipes/crafting/lithium_charge_plastic.json create mode 100644 src/main/resources/data/createindustry/recipes/crafting/lithium_from_block.json create mode 100644 src/main/resources/data/createindustry/recipes/crafting/lithium_torch.json create mode 100644 src/main/resources/data/createindustry/recipes/crafting/low_grade_fuel_engine.json create mode 100644 src/main/resources/data/createindustry/recipes/crafting/neon_tube.json create mode 100644 src/main/resources/data/createindustry/recipes/crafting/nickel_block.json create mode 100644 src/main/resources/data/createindustry/recipes/crafting/nickel_from_block.json create mode 100644 src/main/resources/data/createindustry/recipes/crafting/paper.json create mode 100644 src/main/resources/data/createindustry/recipes/crafting/pipe_bomb.json create mode 100644 src/main/resources/data/createindustry/recipes/crafting/polarizer.json create mode 100644 src/main/resources/data/createindustry/recipes/crafting/resistor.json create mode 100644 src/main/resources/data/createindustry/recipes/crafting/resistor_item.json create mode 100644 src/main/resources/data/createindustry/recipes/crafting/rgb_light_bulb.json create mode 100644 src/main/resources/data/createindustry/recipes/crafting/steel_coghweel.json create mode 100644 src/main/resources/data/createindustry/recipes/crafting/steel_gearbox.json create mode 100644 src/main/resources/data/createindustry/recipes/crafting/steel_gearbox_from_vertical.json create mode 100644 src/main/resources/data/createindustry/recipes/crafting/synthetic_string.json create mode 100644 src/main/resources/data/createindustry/recipes/crafting/tools/aluminum_axe.json create mode 100644 src/main/resources/data/createindustry/recipes/crafting/tools/aluminum_hoe.json create mode 100644 src/main/resources/data/createindustry/recipes/crafting/tools/aluminum_pickaxe.json create mode 100644 src/main/resources/data/createindustry/recipes/crafting/tools/aluminum_shovel.json create mode 100644 src/main/resources/data/createindustry/recipes/crafting/tools/aluminum_sword.json create mode 100644 src/main/resources/data/createindustry/recipes/crafting/tools/lead_axe.json create mode 100644 src/main/resources/data/createindustry/recipes/crafting/tools/lead_hoe.json create mode 100644 src/main/resources/data/createindustry/recipes/crafting/tools/lead_pickaxe.json create mode 100644 src/main/resources/data/createindustry/recipes/crafting/tools/lead_shovel.json create mode 100644 src/main/resources/data/createindustry/recipes/crafting/tools/lead_sword.json create mode 100644 src/main/resources/data/createindustry/recipes/crafting/tools/steel_axe.json create mode 100644 src/main/resources/data/createindustry/recipes/crafting/tools/steel_hoe.json create mode 100644 src/main/resources/data/createindustry/recipes/crafting/tools/steel_pickaxe.json create mode 100644 src/main/resources/data/createindustry/recipes/crafting/tools/steel_shovel.json create mode 100644 src/main/resources/data/createindustry/recipes/crafting/tools/steel_sword.json create mode 100644 src/main/resources/data/createindustry/recipes/crafting/vertical_steel_gearbox.json create mode 100644 src/main/resources/data/createindustry/recipes/crafting/voltmeter.json create mode 100644 src/main/resources/data/createindustry/recipes/crafting/voltmeter_from_energy_meter.json create mode 100644 src/main/resources/data/createindustry/recipes/crafting/welding_machine.json create mode 100644 src/main/resources/data/createindustry/recipes/crushing/copper_sulfate.json create mode 100644 src/main/resources/data/createindustry/recipes/crushing/galena_recycling.json create mode 100644 src/main/resources/data/createindustry/recipes/distillation/heavy_oil.json create mode 100644 src/main/resources/data/createindustry/recipes/distillation/naphtha.json create mode 100644 src/main/resources/data/createindustry/recipes/filling/air_tank.json create mode 100644 src/main/resources/data/createindustry/recipes/filling/bottle_of_battery_acid.json create mode 100644 src/main/resources/data/createindustry/recipes/filling/bottle_of_concrete.json create mode 100644 src/main/resources/data/createindustry/recipes/filling/butane_tank.json create mode 100644 src/main/resources/data/createindustry/recipes/filling/carbon_dioxide_tank.json create mode 100644 src/main/resources/data/createindustry/recipes/filling/ethylene_tank.json create mode 100644 src/main/resources/data/createindustry/recipes/filling/lpg_tank.json create mode 100644 src/main/resources/data/createindustry/recipes/filling/napalm_potato.json create mode 100644 src/main/resources/data/createindustry/recipes/filling/neon_tank.json create mode 100644 src/main/resources/data/createindustry/recipes/filling/propane_tank.json create mode 100644 src/main/resources/data/createindustry/recipes/filling/propylene_tank.json create mode 100644 src/main/resources/data/createindustry/recipes/mechanical_crafting/advanced_potato_cannon.json create mode 100644 src/main/resources/data/createindustry/recipes/mechanical_crafting/flamethrower.json create mode 100644 src/main/resources/data/createindustry/recipes/mechanical_crafting/generator.json create mode 100644 src/main/resources/data/createindustry/recipes/mechanical_crafting/lithium_blade.json create mode 100644 src/main/resources/data/createindustry/recipes/mechanical_crafting/rotor.json create mode 100644 src/main/resources/data/createindustry/recipes/mechanical_crafting/stator.json create mode 100644 src/main/resources/data/createindustry/recipes/mixing/copper_sulfate.json create mode 100644 src/main/resources/data/createindustry/recipes/mixing/hellfire_potion.json create mode 100644 src/main/resources/data/createindustry/recipes/mixing/neon.json create mode 100644 src/main/resources/data/createindustry/recipes/mixing/sulfuric_acid.json create mode 100644 src/main/resources/data/createindustry/recipes/mixing/zinc_sulfate.json create mode 100644 src/main/resources/data/createindustry/recipes/pressing/synthetic_leather.json create mode 100644 src/main/resources/data/createindustry/recipes/smelting/blasting/aluminum_ingot.json create mode 100644 src/main/resources/data/createindustry/recipes/smelting/blasting/lead_ingot.json create mode 100644 src/main/resources/data/createindustry/recipes/smelting/blasting/lead_ingot_from_crushed.json create mode 100644 src/main/resources/data/createindustry/recipes/smelting/blasting/lithium_ingot.json create mode 100644 src/main/resources/data/createindustry/recipes/smelting/blasting/nickel_ingot.json create mode 100644 src/main/resources/data/createindustry/recipes/smelting/blasting/nickel_ingot_from_crushed.json create mode 100644 src/main/resources/data/createindustry/recipes/smelting/lead_ingot.json create mode 100644 src/main/resources/data/createindustry/recipes/smelting/lead_ingot_from_crushed.json create mode 100644 src/main/resources/data/createindustry/recipes/smelting/lithium_ingot.json create mode 100644 src/main/resources/data/createindustry/recipes/smelting/nickel_ingot.json create mode 100644 src/main/resources/data/createindustry/recipes/smelting/nickel_ingot_from_crushed.json create mode 100644 src/main/resources/data/createindustry/recipes/stonecutting/aluminum_frame.json create mode 100644 src/main/resources/data/createindustry/recipes/stonecutting/aluminum_wire.json create mode 100644 src/main/resources/data/createindustry/recipes/stonecutting/cast_iron_frame.json create mode 100644 src/main/resources/data/createindustry/recipes/stonecutting/cast_iron_truss.json create mode 100644 src/main/resources/data/createindustry/recipes/stonecutting/caution_blocks/blue_caution_block.json create mode 100644 src/main/resources/data/createindustry/recipes/stonecutting/caution_blocks/brown_caution_block.json create mode 100644 src/main/resources/data/createindustry/recipes/stonecutting/caution_blocks/cyan_caution_block.json create mode 100644 src/main/resources/data/createindustry/recipes/stonecutting/caution_blocks/gray_caution_block.json create mode 100644 src/main/resources/data/createindustry/recipes/stonecutting/caution_blocks/green_caution_block.json create mode 100644 src/main/resources/data/createindustry/recipes/stonecutting/caution_blocks/light_blue_caution_block.json create mode 100644 src/main/resources/data/createindustry/recipes/stonecutting/caution_blocks/light_gray_caution_block.json create mode 100644 src/main/resources/data/createindustry/recipes/stonecutting/caution_blocks/lime_caution_block.json create mode 100644 src/main/resources/data/createindustry/recipes/stonecutting/caution_blocks/magenta_caution_block.json create mode 100644 src/main/resources/data/createindustry/recipes/stonecutting/caution_blocks/orange_caution_block.json create mode 100644 src/main/resources/data/createindustry/recipes/stonecutting/caution_blocks/pink_caution_block.json create mode 100644 src/main/resources/data/createindustry/recipes/stonecutting/caution_blocks/purple_caution_block.json create mode 100644 src/main/resources/data/createindustry/recipes/stonecutting/caution_blocks/white_caution_block.json create mode 100644 src/main/resources/data/createindustry/recipes/stonecutting/copper_wire.json create mode 100644 src/main/resources/data/createindustry/recipes/stonecutting/hardened_planks_slab.json create mode 100644 src/main/resources/data/createindustry/recipes/stonecutting/nickel_frame.json create mode 100644 src/main/resources/data/createindustry/recipes/stonecutting/nickel_truss.json create mode 100644 src/main/resources/data/createindustry/recipes/stonecutting/rebar_concrete_stairs.json create mode 100644 src/main/resources/data/createindustry/recipes/stonecutting/rebar_concrete_wall.json diff --git a/src/generated/resources/assets/createindustry/blockstates/accumulator.json b/src/generated/resources/assets/createindustry/blockstates/accumulator.json new file mode 100644 index 00000000..b664b78a --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/accumulator.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "createindustry:block/accumulator/block" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/aluminum_cable_hub.json b/src/generated/resources/assets/createindustry/blockstates/aluminum_cable_hub.json new file mode 100644 index 00000000..58b37988 --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/aluminum_cable_hub.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "createindustry:block/aluminum_cable_hub" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/aluminum_cogwheel.json b/src/generated/resources/assets/createindustry/blockstates/aluminum_cogwheel.json new file mode 100644 index 00000000..dbd819d8 --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/aluminum_cogwheel.json @@ -0,0 +1,17 @@ +{ + "variants": { + "axis=x": { + "model": "createindustry:block/aluminum_cogwheel", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "createindustry:block/aluminum_cogwheel" + }, + "axis=z": { + "model": "createindustry:block/aluminum_cogwheel", + "x": 90, + "y": 180 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/aluminum_frame.json b/src/generated/resources/assets/createindustry/blockstates/aluminum_frame.json new file mode 100644 index 00000000..be1f194c --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/aluminum_frame.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "createindustry:block/aluminum_frame/block" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/blue_caution_block.json b/src/generated/resources/assets/createindustry/blockstates/blue_caution_block.json new file mode 100644 index 00000000..9c02fd06 --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/blue_caution_block.json @@ -0,0 +1,19 @@ +{ + "variants": { + "facing=east": { + "model": "createindustry:block/blue_caution_block", + "y": 90 + }, + "facing=north": { + "model": "createindustry:block/blue_caution_block" + }, + "facing=south": { + "model": "createindustry:block/blue_caution_block", + "y": 180 + }, + "facing=west": { + "model": "createindustry:block/blue_caution_block", + "y": 270 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/brass_cable_hub.json b/src/generated/resources/assets/createindustry/blockstates/brass_cable_hub.json new file mode 100644 index 00000000..7d099b44 --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/brass_cable_hub.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "createindustry:block/brass_cable_hub" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/brass_frame.json b/src/generated/resources/assets/createindustry/blockstates/brass_frame.json new file mode 100644 index 00000000..584076e6 --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/brass_frame.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "createindustry:block/brass_frame/block" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/brass_truss.json b/src/generated/resources/assets/createindustry/blockstates/brass_truss.json new file mode 100644 index 00000000..0bebb3e3 --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/brass_truss.json @@ -0,0 +1,17 @@ +{ + "variants": { + "axis=x": { + "model": "createindustry:block/brass_truss", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "createindustry:block/brass_truss" + }, + "axis=z": { + "model": "createindustry:block/brass_truss", + "x": 90, + "y": 180 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/brown_caution_block.json b/src/generated/resources/assets/createindustry/blockstates/brown_caution_block.json new file mode 100644 index 00000000..80f6e2ef --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/brown_caution_block.json @@ -0,0 +1,19 @@ +{ + "variants": { + "facing=east": { + "model": "createindustry:block/brown_caution_block", + "y": 90 + }, + "facing=north": { + "model": "createindustry:block/brown_caution_block" + }, + "facing=south": { + "model": "createindustry:block/brown_caution_block", + "y": 180 + }, + "facing=west": { + "model": "createindustry:block/brown_caution_block", + "y": 270 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/cable_connector.json b/src/generated/resources/assets/createindustry/blockstates/cable_connector.json new file mode 100644 index 00000000..b0e558df --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/cable_connector.json @@ -0,0 +1,56 @@ +{ + "variants": { + "extension=false,facing=down": { + "model": "createindustry:block/cable_connector/block", + "x": 180 + }, + "extension=false,facing=east": { + "model": "createindustry:block/cable_connector/block", + "x": 90, + "y": 90 + }, + "extension=false,facing=north": { + "model": "createindustry:block/cable_connector/block", + "x": 90 + }, + "extension=false,facing=south": { + "model": "createindustry:block/cable_connector/block", + "x": 90, + "y": 180 + }, + "extension=false,facing=up": { + "model": "createindustry:block/cable_connector/block" + }, + "extension=false,facing=west": { + "model": "createindustry:block/cable_connector/block", + "x": 90, + "y": 270 + }, + "extension=true,facing=down": { + "model": "createindustry:block/cable_connector/block_extension", + "x": 180 + }, + "extension=true,facing=east": { + "model": "createindustry:block/cable_connector/block_extension", + "x": 90, + "y": 90 + }, + "extension=true,facing=north": { + "model": "createindustry:block/cable_connector/block_extension", + "x": 90 + }, + "extension=true,facing=south": { + "model": "createindustry:block/cable_connector/block_extension", + "x": 90, + "y": 180 + }, + "extension=true,facing=up": { + "model": "createindustry:block/cable_connector/block_extension" + }, + "extension=true,facing=west": { + "model": "createindustry:block/cable_connector/block_extension", + "x": 90, + "y": 270 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/cable_tube.json b/src/generated/resources/assets/createindustry/blockstates/cable_tube.json new file mode 100644 index 00000000..1ebe7dfa --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/cable_tube.json @@ -0,0 +1,17 @@ +{ + "variants": { + "axis=x": { + "model": "createindustry:block/cable_tube", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "createindustry:block/cable_tube" + }, + "axis=z": { + "model": "createindustry:block/cable_tube", + "x": 90, + "y": 180 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/capacitor.json b/src/generated/resources/assets/createindustry/blockstates/capacitor.json new file mode 100644 index 00000000..5b1321e6 --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/capacitor.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "createindustry:block/capacitor/block" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/cast_iron_bars.json b/src/generated/resources/assets/createindustry/blockstates/cast_iron_bars.json new file mode 100644 index 00000000..507308a6 --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/cast_iron_bars.json @@ -0,0 +1,100 @@ +{ + "multipart": [ + { + "apply": { + "model": "createindustry:block/cast_iron_post_ends" + } + }, + { + "apply": { + "model": "createindustry:block/cast_iron_post" + }, + "when": { + "east": "false", + "north": "false", + "south": "false", + "west": "false" + } + }, + { + "apply": { + "model": "createindustry:block/cast_iron_cap" + }, + "when": { + "east": "false", + "north": "true", + "south": "false", + "west": "false" + } + }, + { + "apply": { + "model": "createindustry:block/cast_iron_cap", + "y": 90 + }, + "when": { + "east": "true", + "north": "false", + "south": "false", + "west": "false" + } + }, + { + "apply": { + "model": "createindustry:block/cast_iron_cap_alt" + }, + "when": { + "east": "false", + "north": "false", + "south": "true", + "west": "false" + } + }, + { + "apply": { + "model": "createindustry:block/cast_iron_cap_alt", + "y": 90 + }, + "when": { + "east": "false", + "north": "false", + "south": "false", + "west": "true" + } + }, + { + "apply": { + "model": "createindustry:block/cast_iron_side" + }, + "when": { + "north": "true" + } + }, + { + "apply": { + "model": "createindustry:block/cast_iron_side", + "y": 90 + }, + "when": { + "east": "true" + } + }, + { + "apply": { + "model": "createindustry:block/cast_iron_side_alt" + }, + "when": { + "south": "true" + } + }, + { + "apply": { + "model": "createindustry:block/cast_iron_side_alt", + "y": 90 + }, + "when": { + "west": "true" + } + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/cast_iron_frame.json b/src/generated/resources/assets/createindustry/blockstates/cast_iron_frame.json new file mode 100644 index 00000000..2aecc2ad --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/cast_iron_frame.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "createindustry:block/cast_iron_frame/block" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/cast_iron_ladder.json b/src/generated/resources/assets/createindustry/blockstates/cast_iron_ladder.json new file mode 100644 index 00000000..7435b582 --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/cast_iron_ladder.json @@ -0,0 +1,34 @@ +{ + "variants": { + "facing=east,waterlogged=false": { + "model": "createindustry:block/cast_iron_ladder", + "y": 90 + }, + "facing=east,waterlogged=true": { + "model": "createindustry:block/cast_iron_ladder", + "y": 90 + }, + "facing=north,waterlogged=false": { + "model": "createindustry:block/cast_iron_ladder" + }, + "facing=north,waterlogged=true": { + "model": "createindustry:block/cast_iron_ladder" + }, + "facing=south,waterlogged=false": { + "model": "createindustry:block/cast_iron_ladder", + "y": 180 + }, + "facing=south,waterlogged=true": { + "model": "createindustry:block/cast_iron_ladder", + "y": 180 + }, + "facing=west,waterlogged=false": { + "model": "createindustry:block/cast_iron_ladder", + "y": 270 + }, + "facing=west,waterlogged=true": { + "model": "createindustry:block/cast_iron_ladder", + "y": 270 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/cast_iron_truss.json b/src/generated/resources/assets/createindustry/blockstates/cast_iron_truss.json new file mode 100644 index 00000000..a106e390 --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/cast_iron_truss.json @@ -0,0 +1,17 @@ +{ + "variants": { + "axis=x": { + "model": "createindustry:block/cast_iron_truss", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "createindustry:block/cast_iron_truss" + }, + "axis=z": { + "model": "createindustry:block/cast_iron_truss", + "x": 90, + "y": 180 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/cinder_block.json b/src/generated/resources/assets/createindustry/blockstates/cinder_block.json new file mode 100644 index 00000000..a9d8989c --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/cinder_block.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "createindustry:block/cinder_block/block" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/cinderflour_block.json b/src/generated/resources/assets/createindustry/blockstates/cinderflour_block.json new file mode 100644 index 00000000..b6ad742b --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/cinderflour_block.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "createindustry:block/cinderflour_block/block" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/converter.json b/src/generated/resources/assets/createindustry/blockstates/converter.json new file mode 100644 index 00000000..7e716ec3 --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/converter.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "createindustry:block/converter/block" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/copper_cable_hub.json b/src/generated/resources/assets/createindustry/blockstates/copper_cable_hub.json new file mode 100644 index 00000000..bc957974 --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/copper_cable_hub.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "createindustry:block/copper_cable_hub" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/copper_coil.json b/src/generated/resources/assets/createindustry/blockstates/copper_coil.json new file mode 100644 index 00000000..e1f83c29 --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/copper_coil.json @@ -0,0 +1,10 @@ +{ + "variants": { + "can_extract=false": { + "model": "createindustry:block/copper_coil/block" + }, + "can_extract=true": { + "model": "createindustry:block/copper_coil/block_arrow" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/copper_frame.json b/src/generated/resources/assets/createindustry/blockstates/copper_frame.json new file mode 100644 index 00000000..c777f7c2 --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/copper_frame.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "createindustry:block/copper_frame/block" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/copper_truss.json b/src/generated/resources/assets/createindustry/blockstates/copper_truss.json new file mode 100644 index 00000000..d6b9bde7 --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/copper_truss.json @@ -0,0 +1,17 @@ +{ + "variants": { + "axis=x": { + "model": "createindustry:block/copper_truss", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "createindustry:block/copper_truss" + }, + "axis=z": { + "model": "createindustry:block/copper_truss", + "x": 90, + "y": 180 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/copycat_cable_base.json b/src/generated/resources/assets/createindustry/blockstates/copycat_cable_base.json new file mode 100644 index 00000000..965085f4 --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/copycat_cable_base.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "createindustry:block/copycat_cable_base/block" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/copycat_cable_block.json b/src/generated/resources/assets/createindustry/blockstates/copycat_cable_block.json new file mode 100644 index 00000000..2c8f02f0 --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/copycat_cable_block.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/air" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/creative_generator.json b/src/generated/resources/assets/createindustry/blockstates/creative_generator.json new file mode 100644 index 00000000..0c8a1fd6 --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/creative_generator.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "createindustry:block/creative_generator" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/crude_oil.json b/src/generated/resources/assets/createindustry/blockstates/crude_oil.json new file mode 100644 index 00000000..24acec2b --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/crude_oil.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "createindustry:block/crude_oil" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/cut_galena.json b/src/generated/resources/assets/createindustry/blockstates/cut_galena.json new file mode 100644 index 00000000..a29bf021 --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/cut_galena.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "createindustry:block/cut_galena" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/cut_galena_brick_slab.json b/src/generated/resources/assets/createindustry/blockstates/cut_galena_brick_slab.json new file mode 100644 index 00000000..969e9c80 --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/cut_galena_brick_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "createindustry:block/cut_galena_brick_slab" + }, + "type=double": { + "model": "createindustry:block/cut_galena_bricks" + }, + "type=top": { + "model": "createindustry:block/cut_galena_brick_slab_top" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/cut_galena_brick_stairs.json b/src/generated/resources/assets/createindustry/blockstates/cut_galena_brick_stairs.json new file mode 100644 index 00000000..a53f87de --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/cut_galena_brick_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "createindustry:block/cut_galena_brick_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "createindustry:block/cut_galena_brick_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "createindustry:block/cut_galena_brick_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "createindustry:block/cut_galena_brick_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "createindustry:block/cut_galena_brick_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "createindustry:block/cut_galena_brick_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=inner_right": { + "model": "createindustry:block/cut_galena_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=outer_left": { + "model": "createindustry:block/cut_galena_brick_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=outer_right": { + "model": "createindustry:block/cut_galena_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=straight": { + "model": "createindustry:block/cut_galena_brick_stairs", + "uvlock": true, + "x": 180 + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "createindustry:block/cut_galena_brick_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "createindustry:block/cut_galena_brick_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "createindustry:block/cut_galena_brick_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "createindustry:block/cut_galena_brick_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=straight": { + "model": "createindustry:block/cut_galena_brick_stairs", + "uvlock": true, + "y": 270 + }, + "facing=north,half=top,shape=inner_left": { + "model": "createindustry:block/cut_galena_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=inner_right": { + "model": "createindustry:block/cut_galena_brick_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=outer_left": { + "model": "createindustry:block/cut_galena_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=outer_right": { + "model": "createindustry:block/cut_galena_brick_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=straight": { + "model": "createindustry:block/cut_galena_brick_stairs", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "createindustry:block/cut_galena_brick_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "createindustry:block/cut_galena_brick_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "createindustry:block/cut_galena_brick_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "createindustry:block/cut_galena_brick_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=straight": { + "model": "createindustry:block/cut_galena_brick_stairs", + "uvlock": true, + "y": 90 + }, + "facing=south,half=top,shape=inner_left": { + "model": "createindustry:block/cut_galena_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=inner_right": { + "model": "createindustry:block/cut_galena_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=outer_left": { + "model": "createindustry:block/cut_galena_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=outer_right": { + "model": "createindustry:block/cut_galena_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=straight": { + "model": "createindustry:block/cut_galena_brick_stairs", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "createindustry:block/cut_galena_brick_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "createindustry:block/cut_galena_brick_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "createindustry:block/cut_galena_brick_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "createindustry:block/cut_galena_brick_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=straight": { + "model": "createindustry:block/cut_galena_brick_stairs", + "uvlock": true, + "y": 180 + }, + "facing=west,half=top,shape=inner_left": { + "model": "createindustry:block/cut_galena_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=inner_right": { + "model": "createindustry:block/cut_galena_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=outer_left": { + "model": "createindustry:block/cut_galena_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=outer_right": { + "model": "createindustry:block/cut_galena_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=straight": { + "model": "createindustry:block/cut_galena_brick_stairs", + "uvlock": true, + "x": 180, + "y": 180 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/cut_galena_brick_wall.json b/src/generated/resources/assets/createindustry/blockstates/cut_galena_brick_wall.json new file mode 100644 index 00000000..dec1c64c --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/cut_galena_brick_wall.json @@ -0,0 +1,90 @@ +{ + "multipart": [ + { + "apply": { + "model": "createindustry:block/cut_galena_bricks_wall_post" + }, + "when": { + "up": "true" + } + }, + { + "apply": { + "model": "createindustry:block/cut_galena_bricks_wall_side", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "low" + } + }, + { + "apply": { + "model": "createindustry:block/cut_galena_bricks_wall_side_tall", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "tall" + } + }, + { + "apply": { + "model": "createindustry:block/cut_galena_bricks_wall_side", + "uvlock": true + }, + "when": { + "north": "low" + } + }, + { + "apply": { + "model": "createindustry:block/cut_galena_bricks_wall_side_tall", + "uvlock": true + }, + "when": { + "north": "tall" + } + }, + { + "apply": { + "model": "createindustry:block/cut_galena_bricks_wall_side", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "low" + } + }, + { + "apply": { + "model": "createindustry:block/cut_galena_bricks_wall_side_tall", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "tall" + } + }, + { + "apply": { + "model": "createindustry:block/cut_galena_bricks_wall_side", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "low" + } + }, + { + "apply": { + "model": "createindustry:block/cut_galena_bricks_wall_side_tall", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "tall" + } + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/cut_galena_bricks.json b/src/generated/resources/assets/createindustry/blockstates/cut_galena_bricks.json new file mode 100644 index 00000000..06a28617 --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/cut_galena_bricks.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "createindustry:block/cut_galena_bricks" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/cut_galena_slab.json b/src/generated/resources/assets/createindustry/blockstates/cut_galena_slab.json new file mode 100644 index 00000000..3032b0c8 --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/cut_galena_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "createindustry:block/cut_galena_slab" + }, + "type=double": { + "model": "createindustry:block/cut_galena" + }, + "type=top": { + "model": "createindustry:block/cut_galena_slab_top" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/cut_galena_stairs.json b/src/generated/resources/assets/createindustry/blockstates/cut_galena_stairs.json new file mode 100644 index 00000000..74b83894 --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/cut_galena_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "createindustry:block/cut_galena_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "createindustry:block/cut_galena_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "createindustry:block/cut_galena_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "createindustry:block/cut_galena_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "createindustry:block/cut_galena_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "createindustry:block/cut_galena_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=inner_right": { + "model": "createindustry:block/cut_galena_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=outer_left": { + "model": "createindustry:block/cut_galena_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=outer_right": { + "model": "createindustry:block/cut_galena_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=straight": { + "model": "createindustry:block/cut_galena_stairs", + "uvlock": true, + "x": 180 + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "createindustry:block/cut_galena_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "createindustry:block/cut_galena_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "createindustry:block/cut_galena_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "createindustry:block/cut_galena_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=straight": { + "model": "createindustry:block/cut_galena_stairs", + "uvlock": true, + "y": 270 + }, + "facing=north,half=top,shape=inner_left": { + "model": "createindustry:block/cut_galena_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=inner_right": { + "model": "createindustry:block/cut_galena_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=outer_left": { + "model": "createindustry:block/cut_galena_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=outer_right": { + "model": "createindustry:block/cut_galena_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=straight": { + "model": "createindustry:block/cut_galena_stairs", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "createindustry:block/cut_galena_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "createindustry:block/cut_galena_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "createindustry:block/cut_galena_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "createindustry:block/cut_galena_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=straight": { + "model": "createindustry:block/cut_galena_stairs", + "uvlock": true, + "y": 90 + }, + "facing=south,half=top,shape=inner_left": { + "model": "createindustry:block/cut_galena_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=inner_right": { + "model": "createindustry:block/cut_galena_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=outer_left": { + "model": "createindustry:block/cut_galena_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=outer_right": { + "model": "createindustry:block/cut_galena_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=straight": { + "model": "createindustry:block/cut_galena_stairs", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "createindustry:block/cut_galena_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "createindustry:block/cut_galena_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "createindustry:block/cut_galena_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "createindustry:block/cut_galena_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=straight": { + "model": "createindustry:block/cut_galena_stairs", + "uvlock": true, + "y": 180 + }, + "facing=west,half=top,shape=inner_left": { + "model": "createindustry:block/cut_galena_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=inner_right": { + "model": "createindustry:block/cut_galena_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=outer_left": { + "model": "createindustry:block/cut_galena_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=outer_right": { + "model": "createindustry:block/cut_galena_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=straight": { + "model": "createindustry:block/cut_galena_stairs", + "uvlock": true, + "x": 180, + "y": 180 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/cut_galena_wall.json b/src/generated/resources/assets/createindustry/blockstates/cut_galena_wall.json new file mode 100644 index 00000000..27718cca --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/cut_galena_wall.json @@ -0,0 +1,90 @@ +{ + "multipart": [ + { + "apply": { + "model": "createindustry:block/cut_galena_wall_post" + }, + "when": { + "up": "true" + } + }, + { + "apply": { + "model": "createindustry:block/cut_galena_wall_side", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "low" + } + }, + { + "apply": { + "model": "createindustry:block/cut_galena_wall_side_tall", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "tall" + } + }, + { + "apply": { + "model": "createindustry:block/cut_galena_wall_side", + "uvlock": true + }, + "when": { + "north": "low" + } + }, + { + "apply": { + "model": "createindustry:block/cut_galena_wall_side_tall", + "uvlock": true + }, + "when": { + "north": "tall" + } + }, + { + "apply": { + "model": "createindustry:block/cut_galena_wall_side", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "low" + } + }, + { + "apply": { + "model": "createindustry:block/cut_galena_wall_side_tall", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "tall" + } + }, + { + "apply": { + "model": "createindustry:block/cut_galena_wall_side", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "low" + } + }, + { + "apply": { + "model": "createindustry:block/cut_galena_wall_side_tall", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "tall" + } + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/cyan_caution_block.json b/src/generated/resources/assets/createindustry/blockstates/cyan_caution_block.json new file mode 100644 index 00000000..d50bfc2c --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/cyan_caution_block.json @@ -0,0 +1,19 @@ +{ + "variants": { + "facing=east": { + "model": "createindustry:block/cyan_caution_block", + "y": 90 + }, + "facing=north": { + "model": "createindustry:block/cyan_caution_block" + }, + "facing=south": { + "model": "createindustry:block/cyan_caution_block", + "y": 180 + }, + "facing=west": { + "model": "createindustry:block/cyan_caution_block", + "y": 270 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/deepslate_lead_ore.json b/src/generated/resources/assets/createindustry/blockstates/deepslate_lead_ore.json new file mode 100644 index 00000000..c3f3355a --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/deepslate_lead_ore.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "createindustry:block/deepslate_lead_ore" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/deepslate_lithium_ore.json b/src/generated/resources/assets/createindustry/blockstates/deepslate_lithium_ore.json new file mode 100644 index 00000000..29632309 --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/deepslate_lithium_ore.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "createindustry:block/deepslate_lithium_ore" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/deepslate_nickel_ore.json b/src/generated/resources/assets/createindustry/blockstates/deepslate_nickel_ore.json new file mode 100644 index 00000000..021ff644 --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/deepslate_nickel_ore.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "createindustry:block/deepslate_nickel_ore" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/diagonal_cable_block.json b/src/generated/resources/assets/createindustry/blockstates/diagonal_cable_block.json new file mode 100644 index 00000000..a5601a5d --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/diagonal_cable_block.json @@ -0,0 +1,88 @@ +{ + "variants": { + "facing=down,facing_up=false,waterlogged=false": { + "model": "createindustry:block/diagonal_cable_block/block" + }, + "facing=down,facing_up=false,waterlogged=true": { + "model": "createindustry:block/diagonal_cable_block/block" + }, + "facing=down,facing_up=true,waterlogged=false": { + "model": "createindustry:block/diagonal_cable_block/block_up" + }, + "facing=down,facing_up=true,waterlogged=true": { + "model": "createindustry:block/diagonal_cable_block/block_up" + }, + "facing=east,facing_up=false,waterlogged=false": { + "model": "createindustry:block/diagonal_cable_block/block" + }, + "facing=east,facing_up=false,waterlogged=true": { + "model": "createindustry:block/diagonal_cable_block/block" + }, + "facing=east,facing_up=true,waterlogged=false": { + "model": "createindustry:block/diagonal_cable_block/block_up" + }, + "facing=east,facing_up=true,waterlogged=true": { + "model": "createindustry:block/diagonal_cable_block/block_up" + }, + "facing=north,facing_up=false,waterlogged=false": { + "model": "createindustry:block/diagonal_cable_block/block", + "y": 270 + }, + "facing=north,facing_up=false,waterlogged=true": { + "model": "createindustry:block/diagonal_cable_block/block", + "y": 270 + }, + "facing=north,facing_up=true,waterlogged=false": { + "model": "createindustry:block/diagonal_cable_block/block_up", + "y": 270 + }, + "facing=north,facing_up=true,waterlogged=true": { + "model": "createindustry:block/diagonal_cable_block/block_up", + "y": 270 + }, + "facing=south,facing_up=false,waterlogged=false": { + "model": "createindustry:block/diagonal_cable_block/block", + "y": 90 + }, + "facing=south,facing_up=false,waterlogged=true": { + "model": "createindustry:block/diagonal_cable_block/block", + "y": 90 + }, + "facing=south,facing_up=true,waterlogged=false": { + "model": "createindustry:block/diagonal_cable_block/block_up", + "y": 90 + }, + "facing=south,facing_up=true,waterlogged=true": { + "model": "createindustry:block/diagonal_cable_block/block_up", + "y": 90 + }, + "facing=up,facing_up=false,waterlogged=false": { + "model": "createindustry:block/diagonal_cable_block/block" + }, + "facing=up,facing_up=false,waterlogged=true": { + "model": "createindustry:block/diagonal_cable_block/block" + }, + "facing=up,facing_up=true,waterlogged=false": { + "model": "createindustry:block/diagonal_cable_block/block_up" + }, + "facing=up,facing_up=true,waterlogged=true": { + "model": "createindustry:block/diagonal_cable_block/block_up" + }, + "facing=west,facing_up=false,waterlogged=false": { + "model": "createindustry:block/diagonal_cable_block/block", + "y": 180 + }, + "facing=west,facing_up=false,waterlogged=true": { + "model": "createindustry:block/diagonal_cable_block/block", + "y": 180 + }, + "facing=west,facing_up=true,waterlogged=false": { + "model": "createindustry:block/diagonal_cable_block/block_up", + "y": 180 + }, + "facing=west,facing_up=true,waterlogged=true": { + "model": "createindustry:block/diagonal_cable_block/block_up", + "y": 180 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/electric_casing.json b/src/generated/resources/assets/createindustry/blockstates/electric_casing.json new file mode 100644 index 00000000..44332d5e --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/electric_casing.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "createindustry:block/electric_casing" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/electric_motor.json b/src/generated/resources/assets/createindustry/blockstates/electric_motor.json new file mode 100644 index 00000000..3e27bd15 --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/electric_motor.json @@ -0,0 +1,26 @@ +{ + "variants": { + "facing=down": { + "model": "createindustry:block/electric_motor/block_vertical", + "x": 180 + }, + "facing=east": { + "model": "createindustry:block/electric_motor/block", + "y": 270 + }, + "facing=north": { + "model": "createindustry:block/electric_motor/block", + "y": 180 + }, + "facing=south": { + "model": "createindustry:block/electric_motor/block" + }, + "facing=up": { + "model": "createindustry:block/electric_motor/block_vertical" + }, + "facing=west": { + "model": "createindustry:block/electric_motor/block", + "y": 90 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/energy_meter.json b/src/generated/resources/assets/createindustry/blockstates/energy_meter.json new file mode 100644 index 00000000..c5eea8df --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/energy_meter.json @@ -0,0 +1,19 @@ +{ + "variants": { + "facing=east": { + "model": "createindustry:block/energy_meter/block", + "y": 90 + }, + "facing=north": { + "model": "createindustry:block/energy_meter/block" + }, + "facing=south": { + "model": "createindustry:block/energy_meter/block", + "y": 180 + }, + "facing=west": { + "model": "createindustry:block/energy_meter/block", + "y": 270 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/firebox.json b/src/generated/resources/assets/createindustry/blockstates/firebox.json new file mode 100644 index 00000000..3dd3d0a0 --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/firebox.json @@ -0,0 +1,79 @@ +{ + "variants": { + "blaze=fading,facing=east": { + "model": "createindustry:block/firebox/block_lit", + "y": 90 + }, + "blaze=fading,facing=north": { + "model": "createindustry:block/firebox/block_lit" + }, + "blaze=fading,facing=south": { + "model": "createindustry:block/firebox/block_lit", + "y": 180 + }, + "blaze=fading,facing=west": { + "model": "createindustry:block/firebox/block_lit", + "y": 270 + }, + "blaze=kindled,facing=east": { + "model": "createindustry:block/firebox/block_lit", + "y": 90 + }, + "blaze=kindled,facing=north": { + "model": "createindustry:block/firebox/block_lit" + }, + "blaze=kindled,facing=south": { + "model": "createindustry:block/firebox/block_lit", + "y": 180 + }, + "blaze=kindled,facing=west": { + "model": "createindustry:block/firebox/block_lit", + "y": 270 + }, + "blaze=none,facing=east": { + "model": "createindustry:block/firebox/block_lit", + "y": 90 + }, + "blaze=none,facing=north": { + "model": "createindustry:block/firebox/block_lit" + }, + "blaze=none,facing=south": { + "model": "createindustry:block/firebox/block_lit", + "y": 180 + }, + "blaze=none,facing=west": { + "model": "createindustry:block/firebox/block_lit", + "y": 270 + }, + "blaze=seething,facing=east": { + "model": "createindustry:block/firebox/block_lit", + "y": 90 + }, + "blaze=seething,facing=north": { + "model": "createindustry:block/firebox/block_lit" + }, + "blaze=seething,facing=south": { + "model": "createindustry:block/firebox/block_lit", + "y": 180 + }, + "blaze=seething,facing=west": { + "model": "createindustry:block/firebox/block_lit", + "y": 270 + }, + "blaze=smouldering,facing=east": { + "model": "createindustry:block/firebox/block", + "y": 90 + }, + "blaze=smouldering,facing=north": { + "model": "createindustry:block/firebox/block" + }, + "blaze=smouldering,facing=south": { + "model": "createindustry:block/firebox/block", + "y": 180 + }, + "blaze=smouldering,facing=west": { + "model": "createindustry:block/firebox/block", + "y": 270 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/galena.json b/src/generated/resources/assets/createindustry/blockstates/galena.json new file mode 100644 index 00000000..5fe8aee2 --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/galena.json @@ -0,0 +1,18 @@ +{ + "variants": { + "": [ + { + "model": "createindustry:block/galena_natural_0" + }, + { + "model": "createindustry:block/galena_natural_1" + }, + { + "model": "createindustry:block/galena_natural_2" + }, + { + "model": "createindustry:block/galena_natural_3" + } + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/galena_pillar.json b/src/generated/resources/assets/createindustry/blockstates/galena_pillar.json new file mode 100644 index 00000000..182049b4 --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/galena_pillar.json @@ -0,0 +1,16 @@ +{ + "variants": { + "axis=x": { + "model": "createindustry:block/galena_pillar_horizontal", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "createindustry:block/galena_pillar" + }, + "axis=z": { + "model": "createindustry:block/galena_pillar_horizontal", + "x": 90 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/galvanic_cell.json b/src/generated/resources/assets/createindustry/blockstates/galvanic_cell.json new file mode 100644 index 00000000..6e1c75dc --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/galvanic_cell.json @@ -0,0 +1,19 @@ +{ + "variants": { + "facing=east": { + "model": "createindustry:block/galvanic_cell/block", + "y": 90 + }, + "facing=north": { + "model": "createindustry:block/galvanic_cell/block" + }, + "facing=south": { + "model": "createindustry:block/galvanic_cell/block", + "y": 180 + }, + "facing=west": { + "model": "createindustry:block/galvanic_cell/block", + "y": 270 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/generator.json b/src/generated/resources/assets/createindustry/blockstates/generator.json new file mode 100644 index 00000000..038ed3c3 --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/generator.json @@ -0,0 +1,30 @@ +{ + "variants": { + "facing=down": { + "model": "createindustry:block/generator/block", + "x": 180 + }, + "facing=east": { + "model": "createindustry:block/generator/block", + "x": 90, + "y": 90 + }, + "facing=north": { + "model": "createindustry:block/generator/block", + "x": 90 + }, + "facing=south": { + "model": "createindustry:block/generator/block", + "x": 90, + "y": 180 + }, + "facing=up": { + "model": "createindustry:block/generator/block" + }, + "facing=west": { + "model": "createindustry:block/generator/block", + "x": 90, + "y": 270 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/gray_caution_block.json b/src/generated/resources/assets/createindustry/blockstates/gray_caution_block.json new file mode 100644 index 00000000..802a7c57 --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/gray_caution_block.json @@ -0,0 +1,19 @@ +{ + "variants": { + "facing=east": { + "model": "createindustry:block/gray_caution_block", + "y": 90 + }, + "facing=north": { + "model": "createindustry:block/gray_caution_block" + }, + "facing=south": { + "model": "createindustry:block/gray_caution_block", + "y": 180 + }, + "facing=west": { + "model": "createindustry:block/gray_caution_block", + "y": 270 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/green_caution_block.json b/src/generated/resources/assets/createindustry/blockstates/green_caution_block.json new file mode 100644 index 00000000..71e363aa --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/green_caution_block.json @@ -0,0 +1,19 @@ +{ + "variants": { + "facing=east": { + "model": "createindustry:block/green_caution_block", + "y": 90 + }, + "facing=north": { + "model": "createindustry:block/green_caution_block" + }, + "facing=south": { + "model": "createindustry:block/green_caution_block", + "y": 180 + }, + "facing=west": { + "model": "createindustry:block/green_caution_block", + "y": 270 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/hardened_planks_slab.json b/src/generated/resources/assets/createindustry/blockstates/hardened_planks_slab.json new file mode 100644 index 00000000..cb6c16ca --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/hardened_planks_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "createindustry:block/hardened_planks_bottom" + }, + "type=double": { + "model": "createindustry:block/hardened_planks" + }, + "type=top": { + "model": "createindustry:block/hardened_planks_top" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/heavy_cable_hub.json b/src/generated/resources/assets/createindustry/blockstates/heavy_cable_hub.json new file mode 100644 index 00000000..6bb87281 --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/heavy_cable_hub.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "createindustry:block/heavy_cable_hub" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/heavy_casing_encased_aluminum_cogwheel.json b/src/generated/resources/assets/createindustry/blockstates/heavy_casing_encased_aluminum_cogwheel.json new file mode 100644 index 00000000..3f83acca --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/heavy_casing_encased_aluminum_cogwheel.json @@ -0,0 +1,56 @@ +{ + "variants": { + "axis=x,bottom_shaft=false,top_shaft=false": { + "model": "createindustry:block/heavy_casing_encased_aluminum_cogwheel", + "x": 90, + "y": 90 + }, + "axis=x,bottom_shaft=false,top_shaft=true": { + "model": "createindustry:block/heavy_casing_encased_aluminum_cogwheel_top", + "x": 90, + "y": 90 + }, + "axis=x,bottom_shaft=true,top_shaft=false": { + "model": "createindustry:block/heavy_casing_encased_aluminum_cogwheel_bottom", + "x": 90, + "y": 90 + }, + "axis=x,bottom_shaft=true,top_shaft=true": { + "model": "createindustry:block/heavy_casing_encased_aluminum_cogwheel_top_bottom", + "x": 90, + "y": 90 + }, + "axis=y,bottom_shaft=false,top_shaft=false": { + "model": "createindustry:block/heavy_casing_encased_aluminum_cogwheel" + }, + "axis=y,bottom_shaft=false,top_shaft=true": { + "model": "createindustry:block/heavy_casing_encased_aluminum_cogwheel_top" + }, + "axis=y,bottom_shaft=true,top_shaft=false": { + "model": "createindustry:block/heavy_casing_encased_aluminum_cogwheel_bottom" + }, + "axis=y,bottom_shaft=true,top_shaft=true": { + "model": "createindustry:block/heavy_casing_encased_aluminum_cogwheel_top_bottom" + }, + "axis=z,bottom_shaft=false,top_shaft=false": { + "model": "createindustry:block/heavy_casing_encased_aluminum_cogwheel", + "x": 90, + "y": 180 + }, + "axis=z,bottom_shaft=false,top_shaft=true": { + "model": "createindustry:block/heavy_casing_encased_aluminum_cogwheel_top", + "x": 90, + "y": 180 + }, + "axis=z,bottom_shaft=true,top_shaft=false": { + "model": "createindustry:block/heavy_casing_encased_aluminum_cogwheel_bottom", + "x": 90, + "y": 180 + }, + "axis=z,bottom_shaft=true,top_shaft=true": { + "model": "createindustry:block/heavy_casing_encased_aluminum_cogwheel_top_bottom", + "x": 90, + "y": 180 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/heavy_casing_encased_cogwheel.json b/src/generated/resources/assets/createindustry/blockstates/heavy_casing_encased_cogwheel.json new file mode 100644 index 00000000..010ca475 --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/heavy_casing_encased_cogwheel.json @@ -0,0 +1,56 @@ +{ + "variants": { + "axis=x,bottom_shaft=false,top_shaft=false": { + "model": "createindustry:block/heavy_casing_encased_cogwheel", + "x": 90, + "y": 90 + }, + "axis=x,bottom_shaft=false,top_shaft=true": { + "model": "createindustry:block/heavy_casing_encased_cogwheel_top", + "x": 90, + "y": 90 + }, + "axis=x,bottom_shaft=true,top_shaft=false": { + "model": "createindustry:block/heavy_casing_encased_cogwheel_bottom", + "x": 90, + "y": 90 + }, + "axis=x,bottom_shaft=true,top_shaft=true": { + "model": "createindustry:block/heavy_casing_encased_cogwheel_top_bottom", + "x": 90, + "y": 90 + }, + "axis=y,bottom_shaft=false,top_shaft=false": { + "model": "createindustry:block/heavy_casing_encased_cogwheel" + }, + "axis=y,bottom_shaft=false,top_shaft=true": { + "model": "createindustry:block/heavy_casing_encased_cogwheel_top" + }, + "axis=y,bottom_shaft=true,top_shaft=false": { + "model": "createindustry:block/heavy_casing_encased_cogwheel_bottom" + }, + "axis=y,bottom_shaft=true,top_shaft=true": { + "model": "createindustry:block/heavy_casing_encased_cogwheel_top_bottom" + }, + "axis=z,bottom_shaft=false,top_shaft=false": { + "model": "createindustry:block/heavy_casing_encased_cogwheel", + "x": 90, + "y": 180 + }, + "axis=z,bottom_shaft=false,top_shaft=true": { + "model": "createindustry:block/heavy_casing_encased_cogwheel_top", + "x": 90, + "y": 180 + }, + "axis=z,bottom_shaft=true,top_shaft=false": { + "model": "createindustry:block/heavy_casing_encased_cogwheel_bottom", + "x": 90, + "y": 180 + }, + "axis=z,bottom_shaft=true,top_shaft=true": { + "model": "createindustry:block/heavy_casing_encased_cogwheel_top_bottom", + "x": 90, + "y": 180 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/heavy_casing_encased_large_aluminum_cogwheel.json b/src/generated/resources/assets/createindustry/blockstates/heavy_casing_encased_large_aluminum_cogwheel.json new file mode 100644 index 00000000..0697e8f9 --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/heavy_casing_encased_large_aluminum_cogwheel.json @@ -0,0 +1,56 @@ +{ + "variants": { + "axis=x,bottom_shaft=false,top_shaft=false": { + "model": "createindustry:block/heavy_casing_encased_large_aluminum_cogwheel", + "x": 90, + "y": 90 + }, + "axis=x,bottom_shaft=false,top_shaft=true": { + "model": "createindustry:block/heavy_casing_encased_large_aluminum_cogwheel_top", + "x": 90, + "y": 90 + }, + "axis=x,bottom_shaft=true,top_shaft=false": { + "model": "createindustry:block/heavy_casing_encased_large_aluminum_cogwheel_bottom", + "x": 90, + "y": 90 + }, + "axis=x,bottom_shaft=true,top_shaft=true": { + "model": "createindustry:block/heavy_casing_encased_large_aluminum_cogwheel_top_bottom", + "x": 90, + "y": 90 + }, + "axis=y,bottom_shaft=false,top_shaft=false": { + "model": "createindustry:block/heavy_casing_encased_large_aluminum_cogwheel" + }, + "axis=y,bottom_shaft=false,top_shaft=true": { + "model": "createindustry:block/heavy_casing_encased_large_aluminum_cogwheel_top" + }, + "axis=y,bottom_shaft=true,top_shaft=false": { + "model": "createindustry:block/heavy_casing_encased_large_aluminum_cogwheel_bottom" + }, + "axis=y,bottom_shaft=true,top_shaft=true": { + "model": "createindustry:block/heavy_casing_encased_large_aluminum_cogwheel_top_bottom" + }, + "axis=z,bottom_shaft=false,top_shaft=false": { + "model": "createindustry:block/heavy_casing_encased_large_aluminum_cogwheel", + "x": 90, + "y": 180 + }, + "axis=z,bottom_shaft=false,top_shaft=true": { + "model": "createindustry:block/heavy_casing_encased_large_aluminum_cogwheel_top", + "x": 90, + "y": 180 + }, + "axis=z,bottom_shaft=true,top_shaft=false": { + "model": "createindustry:block/heavy_casing_encased_large_aluminum_cogwheel_bottom", + "x": 90, + "y": 180 + }, + "axis=z,bottom_shaft=true,top_shaft=true": { + "model": "createindustry:block/heavy_casing_encased_large_aluminum_cogwheel_top_bottom", + "x": 90, + "y": 180 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/heavy_casing_encased_large_cogwheel.json b/src/generated/resources/assets/createindustry/blockstates/heavy_casing_encased_large_cogwheel.json new file mode 100644 index 00000000..9a1433a2 --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/heavy_casing_encased_large_cogwheel.json @@ -0,0 +1,56 @@ +{ + "variants": { + "axis=x,bottom_shaft=false,top_shaft=false": { + "model": "createindustry:block/heavy_casing_encased_large_cogwheel", + "x": 90, + "y": 90 + }, + "axis=x,bottom_shaft=false,top_shaft=true": { + "model": "createindustry:block/heavy_casing_encased_large_cogwheel_top", + "x": 90, + "y": 90 + }, + "axis=x,bottom_shaft=true,top_shaft=false": { + "model": "createindustry:block/heavy_casing_encased_large_cogwheel_bottom", + "x": 90, + "y": 90 + }, + "axis=x,bottom_shaft=true,top_shaft=true": { + "model": "createindustry:block/heavy_casing_encased_large_cogwheel_top_bottom", + "x": 90, + "y": 90 + }, + "axis=y,bottom_shaft=false,top_shaft=false": { + "model": "createindustry:block/heavy_casing_encased_large_cogwheel" + }, + "axis=y,bottom_shaft=false,top_shaft=true": { + "model": "createindustry:block/heavy_casing_encased_large_cogwheel_top" + }, + "axis=y,bottom_shaft=true,top_shaft=false": { + "model": "createindustry:block/heavy_casing_encased_large_cogwheel_bottom" + }, + "axis=y,bottom_shaft=true,top_shaft=true": { + "model": "createindustry:block/heavy_casing_encased_large_cogwheel_top_bottom" + }, + "axis=z,bottom_shaft=false,top_shaft=false": { + "model": "createindustry:block/heavy_casing_encased_large_cogwheel", + "x": 90, + "y": 180 + }, + "axis=z,bottom_shaft=false,top_shaft=true": { + "model": "createindustry:block/heavy_casing_encased_large_cogwheel_top", + "x": 90, + "y": 180 + }, + "axis=z,bottom_shaft=true,top_shaft=false": { + "model": "createindustry:block/heavy_casing_encased_large_cogwheel_bottom", + "x": 90, + "y": 180 + }, + "axis=z,bottom_shaft=true,top_shaft=true": { + "model": "createindustry:block/heavy_casing_encased_large_cogwheel_top_bottom", + "x": 90, + "y": 180 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/heavy_casing_encased_large_steel_cogwheel.json b/src/generated/resources/assets/createindustry/blockstates/heavy_casing_encased_large_steel_cogwheel.json new file mode 100644 index 00000000..9bc93f8f --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/heavy_casing_encased_large_steel_cogwheel.json @@ -0,0 +1,56 @@ +{ + "variants": { + "axis=x,bottom_shaft=false,top_shaft=false": { + "model": "createindustry:block/heavy_casing_encased_large_steel_cogwheel", + "x": 90, + "y": 90 + }, + "axis=x,bottom_shaft=false,top_shaft=true": { + "model": "createindustry:block/heavy_casing_encased_large_steel_cogwheel_top", + "x": 90, + "y": 90 + }, + "axis=x,bottom_shaft=true,top_shaft=false": { + "model": "createindustry:block/heavy_casing_encased_large_steel_cogwheel_bottom", + "x": 90, + "y": 90 + }, + "axis=x,bottom_shaft=true,top_shaft=true": { + "model": "createindustry:block/heavy_casing_encased_large_steel_cogwheel_top_bottom", + "x": 90, + "y": 90 + }, + "axis=y,bottom_shaft=false,top_shaft=false": { + "model": "createindustry:block/heavy_casing_encased_large_steel_cogwheel" + }, + "axis=y,bottom_shaft=false,top_shaft=true": { + "model": "createindustry:block/heavy_casing_encased_large_steel_cogwheel_top" + }, + "axis=y,bottom_shaft=true,top_shaft=false": { + "model": "createindustry:block/heavy_casing_encased_large_steel_cogwheel_bottom" + }, + "axis=y,bottom_shaft=true,top_shaft=true": { + "model": "createindustry:block/heavy_casing_encased_large_steel_cogwheel_top_bottom" + }, + "axis=z,bottom_shaft=false,top_shaft=false": { + "model": "createindustry:block/heavy_casing_encased_large_steel_cogwheel", + "x": 90, + "y": 180 + }, + "axis=z,bottom_shaft=false,top_shaft=true": { + "model": "createindustry:block/heavy_casing_encased_large_steel_cogwheel_top", + "x": 90, + "y": 180 + }, + "axis=z,bottom_shaft=true,top_shaft=false": { + "model": "createindustry:block/heavy_casing_encased_large_steel_cogwheel_bottom", + "x": 90, + "y": 180 + }, + "axis=z,bottom_shaft=true,top_shaft=true": { + "model": "createindustry:block/heavy_casing_encased_large_steel_cogwheel_top_bottom", + "x": 90, + "y": 180 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/heavy_casing_encased_shaft.json b/src/generated/resources/assets/createindustry/blockstates/heavy_casing_encased_shaft.json new file mode 100644 index 00000000..82e41f60 --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/heavy_casing_encased_shaft.json @@ -0,0 +1,20 @@ +{ + "variants": { + "axis=x": { + "model": "createindustry:block/encased_shaft/block_heavy_casing", + "uvlock": true, + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "createindustry:block/encased_shaft/block_heavy_casing", + "uvlock": true + }, + "axis=z": { + "model": "createindustry:block/encased_shaft/block_heavy_casing", + "uvlock": true, + "x": 90, + "y": 180 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/heavy_casing_encased_steel_cogwheel.json b/src/generated/resources/assets/createindustry/blockstates/heavy_casing_encased_steel_cogwheel.json new file mode 100644 index 00000000..d70ad0d8 --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/heavy_casing_encased_steel_cogwheel.json @@ -0,0 +1,56 @@ +{ + "variants": { + "axis=x,bottom_shaft=false,top_shaft=false": { + "model": "createindustry:block/heavy_casing_encased_steel_cogwheel", + "x": 90, + "y": 90 + }, + "axis=x,bottom_shaft=false,top_shaft=true": { + "model": "createindustry:block/heavy_casing_encased_steel_cogwheel_top", + "x": 90, + "y": 90 + }, + "axis=x,bottom_shaft=true,top_shaft=false": { + "model": "createindustry:block/heavy_casing_encased_steel_cogwheel_bottom", + "x": 90, + "y": 90 + }, + "axis=x,bottom_shaft=true,top_shaft=true": { + "model": "createindustry:block/heavy_casing_encased_steel_cogwheel_top_bottom", + "x": 90, + "y": 90 + }, + "axis=y,bottom_shaft=false,top_shaft=false": { + "model": "createindustry:block/heavy_casing_encased_steel_cogwheel" + }, + "axis=y,bottom_shaft=false,top_shaft=true": { + "model": "createindustry:block/heavy_casing_encased_steel_cogwheel_top" + }, + "axis=y,bottom_shaft=true,top_shaft=false": { + "model": "createindustry:block/heavy_casing_encased_steel_cogwheel_bottom" + }, + "axis=y,bottom_shaft=true,top_shaft=true": { + "model": "createindustry:block/heavy_casing_encased_steel_cogwheel_top_bottom" + }, + "axis=z,bottom_shaft=false,top_shaft=false": { + "model": "createindustry:block/heavy_casing_encased_steel_cogwheel", + "x": 90, + "y": 180 + }, + "axis=z,bottom_shaft=false,top_shaft=true": { + "model": "createindustry:block/heavy_casing_encased_steel_cogwheel_top", + "x": 90, + "y": 180 + }, + "axis=z,bottom_shaft=true,top_shaft=false": { + "model": "createindustry:block/heavy_casing_encased_steel_cogwheel_bottom", + "x": 90, + "y": 180 + }, + "axis=z,bottom_shaft=true,top_shaft=true": { + "model": "createindustry:block/heavy_casing_encased_steel_cogwheel_top_bottom", + "x": 90, + "y": 180 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/large_aluminum_cogwheel.json b/src/generated/resources/assets/createindustry/blockstates/large_aluminum_cogwheel.json new file mode 100644 index 00000000..1d7bb774 --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/large_aluminum_cogwheel.json @@ -0,0 +1,17 @@ +{ + "variants": { + "axis=x": { + "model": "createindustry:block/large_aluminum_cogwheel", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "createindustry:block/large_aluminum_cogwheel" + }, + "axis=z": { + "model": "createindustry:block/large_aluminum_cogwheel", + "x": 90, + "y": 180 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/large_steel_cogwheel.json b/src/generated/resources/assets/createindustry/blockstates/large_steel_cogwheel.json new file mode 100644 index 00000000..27934497 --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/large_steel_cogwheel.json @@ -0,0 +1,17 @@ +{ + "variants": { + "axis=x": { + "model": "createindustry:block/large_steel_cogwheel", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "createindustry:block/large_steel_cogwheel" + }, + "axis=z": { + "model": "createindustry:block/large_steel_cogwheel", + "x": 90, + "y": 180 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/layered_galena.json b/src/generated/resources/assets/createindustry/blockstates/layered_galena.json new file mode 100644 index 00000000..bf891a05 --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/layered_galena.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "createindustry:block/layered_galena" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/lead_bars.json b/src/generated/resources/assets/createindustry/blockstates/lead_bars.json new file mode 100644 index 00000000..e3d24834 --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/lead_bars.json @@ -0,0 +1,100 @@ +{ + "multipart": [ + { + "apply": { + "model": "createindustry:block/lead_post_ends" + } + }, + { + "apply": { + "model": "createindustry:block/lead_post" + }, + "when": { + "east": "false", + "north": "false", + "south": "false", + "west": "false" + } + }, + { + "apply": { + "model": "createindustry:block/lead_cap" + }, + "when": { + "east": "false", + "north": "true", + "south": "false", + "west": "false" + } + }, + { + "apply": { + "model": "createindustry:block/lead_cap", + "y": 90 + }, + "when": { + "east": "true", + "north": "false", + "south": "false", + "west": "false" + } + }, + { + "apply": { + "model": "createindustry:block/lead_cap_alt" + }, + "when": { + "east": "false", + "north": "false", + "south": "true", + "west": "false" + } + }, + { + "apply": { + "model": "createindustry:block/lead_cap_alt", + "y": 90 + }, + "when": { + "east": "false", + "north": "false", + "south": "false", + "west": "true" + } + }, + { + "apply": { + "model": "createindustry:block/lead_side" + }, + "when": { + "north": "true" + } + }, + { + "apply": { + "model": "createindustry:block/lead_side", + "y": 90 + }, + "when": { + "east": "true" + } + }, + { + "apply": { + "model": "createindustry:block/lead_side_alt" + }, + "when": { + "south": "true" + } + }, + { + "apply": { + "model": "createindustry:block/lead_side_alt", + "y": 90 + }, + "when": { + "west": "true" + } + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/lead_block.json b/src/generated/resources/assets/createindustry/blockstates/lead_block.json new file mode 100644 index 00000000..05c54c51 --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/lead_block.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "createindustry:block/lead_block" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/lead_flywheel.json b/src/generated/resources/assets/createindustry/blockstates/lead_flywheel.json new file mode 100644 index 00000000..e2737c92 --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/lead_flywheel.json @@ -0,0 +1,17 @@ +{ + "variants": { + "axis=x": { + "model": "createindustry:block/lead_flywheel/block", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "createindustry:block/lead_flywheel/block" + }, + "axis=z": { + "model": "createindustry:block/lead_flywheel/block", + "x": 90, + "y": 180 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/lead_frame.json b/src/generated/resources/assets/createindustry/blockstates/lead_frame.json new file mode 100644 index 00000000..50896877 --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/lead_frame.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "createindustry:block/lead_frame/block" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/lead_glass.json b/src/generated/resources/assets/createindustry/blockstates/lead_glass.json new file mode 100644 index 00000000..06875c62 --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/lead_glass.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "createindustry:block/lead_glass" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/lead_ladder.json b/src/generated/resources/assets/createindustry/blockstates/lead_ladder.json new file mode 100644 index 00000000..ee1d337d --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/lead_ladder.json @@ -0,0 +1,34 @@ +{ + "variants": { + "facing=east,waterlogged=false": { + "model": "createindustry:block/lead_ladder", + "y": 90 + }, + "facing=east,waterlogged=true": { + "model": "createindustry:block/lead_ladder", + "y": 90 + }, + "facing=north,waterlogged=false": { + "model": "createindustry:block/lead_ladder" + }, + "facing=north,waterlogged=true": { + "model": "createindustry:block/lead_ladder" + }, + "facing=south,waterlogged=false": { + "model": "createindustry:block/lead_ladder", + "y": 180 + }, + "facing=south,waterlogged=true": { + "model": "createindustry:block/lead_ladder", + "y": 180 + }, + "facing=west,waterlogged=false": { + "model": "createindustry:block/lead_ladder", + "y": 270 + }, + "facing=west,waterlogged=true": { + "model": "createindustry:block/lead_ladder", + "y": 270 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/lead_ore.json b/src/generated/resources/assets/createindustry/blockstates/lead_ore.json new file mode 100644 index 00000000..17329d14 --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/lead_ore.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "createindustry:block/lead_ore" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/lead_truss.json b/src/generated/resources/assets/createindustry/blockstates/lead_truss.json new file mode 100644 index 00000000..89b1c56a --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/lead_truss.json @@ -0,0 +1,17 @@ +{ + "variants": { + "axis=x": { + "model": "createindustry:block/lead_truss", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "createindustry:block/lead_truss" + }, + "axis=z": { + "model": "createindustry:block/lead_truss", + "x": 90, + "y": 180 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/light_blue_caution_block.json b/src/generated/resources/assets/createindustry/blockstates/light_blue_caution_block.json new file mode 100644 index 00000000..5e8912c3 --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/light_blue_caution_block.json @@ -0,0 +1,19 @@ +{ + "variants": { + "facing=east": { + "model": "createindustry:block/light_blue_caution_block", + "y": 90 + }, + "facing=north": { + "model": "createindustry:block/light_blue_caution_block" + }, + "facing=south": { + "model": "createindustry:block/light_blue_caution_block", + "y": 180 + }, + "facing=west": { + "model": "createindustry:block/light_blue_caution_block", + "y": 270 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/light_bulb.json b/src/generated/resources/assets/createindustry/blockstates/light_bulb.json new file mode 100644 index 00000000..52e846e0 --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/light_bulb.json @@ -0,0 +1,836 @@ +{ + "variants": { + "facing=down,level=0,waterlogged=false": { + "model": "createindustry:block/light_bulb/block", + "x": 180 + }, + "facing=down,level=0,waterlogged=true": { + "model": "createindustry:block/light_bulb/block", + "x": 180 + }, + "facing=down,level=1,waterlogged=false": { + "model": "createindustry:block/light_bulb/block", + "x": 180 + }, + "facing=down,level=1,waterlogged=true": { + "model": "createindustry:block/light_bulb/block", + "x": 180 + }, + "facing=down,level=10,waterlogged=false": { + "model": "createindustry:block/light_bulb/block", + "x": 180 + }, + "facing=down,level=10,waterlogged=true": { + "model": "createindustry:block/light_bulb/block", + "x": 180 + }, + "facing=down,level=11,waterlogged=false": { + "model": "createindustry:block/light_bulb/block", + "x": 180 + }, + "facing=down,level=11,waterlogged=true": { + "model": "createindustry:block/light_bulb/block", + "x": 180 + }, + "facing=down,level=12,waterlogged=false": { + "model": "createindustry:block/light_bulb/block", + "x": 180 + }, + "facing=down,level=12,waterlogged=true": { + "model": "createindustry:block/light_bulb/block", + "x": 180 + }, + "facing=down,level=13,waterlogged=false": { + "model": "createindustry:block/light_bulb/block", + "x": 180 + }, + "facing=down,level=13,waterlogged=true": { + "model": "createindustry:block/light_bulb/block", + "x": 180 + }, + "facing=down,level=14,waterlogged=false": { + "model": "createindustry:block/light_bulb/block", + "x": 180 + }, + "facing=down,level=14,waterlogged=true": { + "model": "createindustry:block/light_bulb/block", + "x": 180 + }, + "facing=down,level=15,waterlogged=false": { + "model": "createindustry:block/light_bulb/block", + "x": 180 + }, + "facing=down,level=15,waterlogged=true": { + "model": "createindustry:block/light_bulb/block", + "x": 180 + }, + "facing=down,level=2,waterlogged=false": { + "model": "createindustry:block/light_bulb/block", + "x": 180 + }, + "facing=down,level=2,waterlogged=true": { + "model": "createindustry:block/light_bulb/block", + "x": 180 + }, + "facing=down,level=3,waterlogged=false": { + "model": "createindustry:block/light_bulb/block", + "x": 180 + }, + "facing=down,level=3,waterlogged=true": { + "model": "createindustry:block/light_bulb/block", + "x": 180 + }, + "facing=down,level=4,waterlogged=false": { + "model": "createindustry:block/light_bulb/block", + "x": 180 + }, + "facing=down,level=4,waterlogged=true": { + "model": "createindustry:block/light_bulb/block", + "x": 180 + }, + "facing=down,level=5,waterlogged=false": { + "model": "createindustry:block/light_bulb/block", + "x": 180 + }, + "facing=down,level=5,waterlogged=true": { + "model": "createindustry:block/light_bulb/block", + "x": 180 + }, + "facing=down,level=6,waterlogged=false": { + "model": "createindustry:block/light_bulb/block", + "x": 180 + }, + "facing=down,level=6,waterlogged=true": { + "model": "createindustry:block/light_bulb/block", + "x": 180 + }, + "facing=down,level=7,waterlogged=false": { + "model": "createindustry:block/light_bulb/block", + "x": 180 + }, + "facing=down,level=7,waterlogged=true": { + "model": "createindustry:block/light_bulb/block", + "x": 180 + }, + "facing=down,level=8,waterlogged=false": { + "model": "createindustry:block/light_bulb/block", + "x": 180 + }, + "facing=down,level=8,waterlogged=true": { + "model": "createindustry:block/light_bulb/block", + "x": 180 + }, + "facing=down,level=9,waterlogged=false": { + "model": "createindustry:block/light_bulb/block", + "x": 180 + }, + "facing=down,level=9,waterlogged=true": { + "model": "createindustry:block/light_bulb/block", + "x": 180 + }, + "facing=east,level=0,waterlogged=false": { + "model": "createindustry:block/light_bulb/block", + "x": 90, + "y": 90 + }, + "facing=east,level=0,waterlogged=true": { + "model": "createindustry:block/light_bulb/block", + "x": 90, + "y": 90 + }, + "facing=east,level=1,waterlogged=false": { + "model": "createindustry:block/light_bulb/block", + "x": 90, + "y": 90 + }, + "facing=east,level=1,waterlogged=true": { + "model": "createindustry:block/light_bulb/block", + "x": 90, + "y": 90 + }, + "facing=east,level=10,waterlogged=false": { + "model": "createindustry:block/light_bulb/block", + "x": 90, + "y": 90 + }, + "facing=east,level=10,waterlogged=true": { + "model": "createindustry:block/light_bulb/block", + "x": 90, + "y": 90 + }, + "facing=east,level=11,waterlogged=false": { + "model": "createindustry:block/light_bulb/block", + "x": 90, + "y": 90 + }, + "facing=east,level=11,waterlogged=true": { + "model": "createindustry:block/light_bulb/block", + "x": 90, + "y": 90 + }, + "facing=east,level=12,waterlogged=false": { + "model": "createindustry:block/light_bulb/block", + "x": 90, + "y": 90 + }, + "facing=east,level=12,waterlogged=true": { + "model": "createindustry:block/light_bulb/block", + "x": 90, + "y": 90 + }, + "facing=east,level=13,waterlogged=false": { + "model": "createindustry:block/light_bulb/block", + "x": 90, + "y": 90 + }, + "facing=east,level=13,waterlogged=true": { + "model": "createindustry:block/light_bulb/block", + "x": 90, + "y": 90 + }, + "facing=east,level=14,waterlogged=false": { + "model": "createindustry:block/light_bulb/block", + "x": 90, + "y": 90 + }, + "facing=east,level=14,waterlogged=true": { + "model": "createindustry:block/light_bulb/block", + "x": 90, + "y": 90 + }, + "facing=east,level=15,waterlogged=false": { + "model": "createindustry:block/light_bulb/block", + "x": 90, + "y": 90 + }, + "facing=east,level=15,waterlogged=true": { + "model": "createindustry:block/light_bulb/block", + "x": 90, + "y": 90 + }, + "facing=east,level=2,waterlogged=false": { + "model": "createindustry:block/light_bulb/block", + "x": 90, + "y": 90 + }, + "facing=east,level=2,waterlogged=true": { + "model": "createindustry:block/light_bulb/block", + "x": 90, + "y": 90 + }, + "facing=east,level=3,waterlogged=false": { + "model": "createindustry:block/light_bulb/block", + "x": 90, + "y": 90 + }, + "facing=east,level=3,waterlogged=true": { + "model": "createindustry:block/light_bulb/block", + "x": 90, + "y": 90 + }, + "facing=east,level=4,waterlogged=false": { + "model": "createindustry:block/light_bulb/block", + "x": 90, + "y": 90 + }, + "facing=east,level=4,waterlogged=true": { + "model": "createindustry:block/light_bulb/block", + "x": 90, + "y": 90 + }, + "facing=east,level=5,waterlogged=false": { + "model": "createindustry:block/light_bulb/block", + "x": 90, + "y": 90 + }, + "facing=east,level=5,waterlogged=true": { + "model": "createindustry:block/light_bulb/block", + "x": 90, + "y": 90 + }, + "facing=east,level=6,waterlogged=false": { + "model": "createindustry:block/light_bulb/block", + "x": 90, + "y": 90 + }, + "facing=east,level=6,waterlogged=true": { + "model": "createindustry:block/light_bulb/block", + "x": 90, + "y": 90 + }, + "facing=east,level=7,waterlogged=false": { + "model": "createindustry:block/light_bulb/block", + "x": 90, + "y": 90 + }, + "facing=east,level=7,waterlogged=true": { + "model": "createindustry:block/light_bulb/block", + "x": 90, + "y": 90 + }, + "facing=east,level=8,waterlogged=false": { + "model": "createindustry:block/light_bulb/block", + "x": 90, + "y": 90 + }, + "facing=east,level=8,waterlogged=true": { + "model": "createindustry:block/light_bulb/block", + "x": 90, + "y": 90 + }, + "facing=east,level=9,waterlogged=false": { + "model": "createindustry:block/light_bulb/block", + "x": 90, + "y": 90 + }, + "facing=east,level=9,waterlogged=true": { + "model": "createindustry:block/light_bulb/block", + "x": 90, + "y": 90 + }, + "facing=north,level=0,waterlogged=false": { + "model": "createindustry:block/light_bulb/block", + "x": 90 + }, + "facing=north,level=0,waterlogged=true": { + "model": "createindustry:block/light_bulb/block", + "x": 90 + }, + "facing=north,level=1,waterlogged=false": { + "model": "createindustry:block/light_bulb/block", + "x": 90 + }, + "facing=north,level=1,waterlogged=true": { + "model": "createindustry:block/light_bulb/block", + "x": 90 + }, + "facing=north,level=10,waterlogged=false": { + "model": "createindustry:block/light_bulb/block", + "x": 90 + }, + "facing=north,level=10,waterlogged=true": { + "model": "createindustry:block/light_bulb/block", + "x": 90 + }, + "facing=north,level=11,waterlogged=false": { + "model": "createindustry:block/light_bulb/block", + "x": 90 + }, + "facing=north,level=11,waterlogged=true": { + "model": "createindustry:block/light_bulb/block", + "x": 90 + }, + "facing=north,level=12,waterlogged=false": { + "model": "createindustry:block/light_bulb/block", + "x": 90 + }, + "facing=north,level=12,waterlogged=true": { + "model": "createindustry:block/light_bulb/block", + "x": 90 + }, + "facing=north,level=13,waterlogged=false": { + "model": "createindustry:block/light_bulb/block", + "x": 90 + }, + "facing=north,level=13,waterlogged=true": { + "model": "createindustry:block/light_bulb/block", + "x": 90 + }, + "facing=north,level=14,waterlogged=false": { + "model": "createindustry:block/light_bulb/block", + "x": 90 + }, + "facing=north,level=14,waterlogged=true": { + "model": "createindustry:block/light_bulb/block", + "x": 90 + }, + "facing=north,level=15,waterlogged=false": { + "model": "createindustry:block/light_bulb/block", + "x": 90 + }, + "facing=north,level=15,waterlogged=true": { + "model": "createindustry:block/light_bulb/block", + "x": 90 + }, + "facing=north,level=2,waterlogged=false": { + "model": "createindustry:block/light_bulb/block", + "x": 90 + }, + "facing=north,level=2,waterlogged=true": { + "model": "createindustry:block/light_bulb/block", + "x": 90 + }, + "facing=north,level=3,waterlogged=false": { + "model": "createindustry:block/light_bulb/block", + "x": 90 + }, + "facing=north,level=3,waterlogged=true": { + "model": "createindustry:block/light_bulb/block", + "x": 90 + }, + "facing=north,level=4,waterlogged=false": { + "model": "createindustry:block/light_bulb/block", + "x": 90 + }, + "facing=north,level=4,waterlogged=true": { + "model": "createindustry:block/light_bulb/block", + "x": 90 + }, + "facing=north,level=5,waterlogged=false": { + "model": "createindustry:block/light_bulb/block", + "x": 90 + }, + "facing=north,level=5,waterlogged=true": { + "model": "createindustry:block/light_bulb/block", + "x": 90 + }, + "facing=north,level=6,waterlogged=false": { + "model": "createindustry:block/light_bulb/block", + "x": 90 + }, + "facing=north,level=6,waterlogged=true": { + "model": "createindustry:block/light_bulb/block", + "x": 90 + }, + "facing=north,level=7,waterlogged=false": { + "model": "createindustry:block/light_bulb/block", + "x": 90 + }, + "facing=north,level=7,waterlogged=true": { + "model": "createindustry:block/light_bulb/block", + "x": 90 + }, + "facing=north,level=8,waterlogged=false": { + "model": "createindustry:block/light_bulb/block", + "x": 90 + }, + "facing=north,level=8,waterlogged=true": { + "model": "createindustry:block/light_bulb/block", + "x": 90 + }, + "facing=north,level=9,waterlogged=false": { + "model": "createindustry:block/light_bulb/block", + "x": 90 + }, + "facing=north,level=9,waterlogged=true": { + "model": "createindustry:block/light_bulb/block", + "x": 90 + }, + "facing=south,level=0,waterlogged=false": { + "model": "createindustry:block/light_bulb/block", + "x": 90, + "y": 180 + }, + "facing=south,level=0,waterlogged=true": { + "model": "createindustry:block/light_bulb/block", + "x": 90, + "y": 180 + }, + "facing=south,level=1,waterlogged=false": { + "model": "createindustry:block/light_bulb/block", + "x": 90, + "y": 180 + }, + "facing=south,level=1,waterlogged=true": { + "model": "createindustry:block/light_bulb/block", + "x": 90, + "y": 180 + }, + "facing=south,level=10,waterlogged=false": { + "model": "createindustry:block/light_bulb/block", + "x": 90, + "y": 180 + }, + "facing=south,level=10,waterlogged=true": { + "model": "createindustry:block/light_bulb/block", + "x": 90, + "y": 180 + }, + "facing=south,level=11,waterlogged=false": { + "model": "createindustry:block/light_bulb/block", + "x": 90, + "y": 180 + }, + "facing=south,level=11,waterlogged=true": { + "model": "createindustry:block/light_bulb/block", + "x": 90, + "y": 180 + }, + "facing=south,level=12,waterlogged=false": { + "model": "createindustry:block/light_bulb/block", + "x": 90, + "y": 180 + }, + "facing=south,level=12,waterlogged=true": { + "model": "createindustry:block/light_bulb/block", + "x": 90, + "y": 180 + }, + "facing=south,level=13,waterlogged=false": { + "model": "createindustry:block/light_bulb/block", + "x": 90, + "y": 180 + }, + "facing=south,level=13,waterlogged=true": { + "model": "createindustry:block/light_bulb/block", + "x": 90, + "y": 180 + }, + "facing=south,level=14,waterlogged=false": { + "model": "createindustry:block/light_bulb/block", + "x": 90, + "y": 180 + }, + "facing=south,level=14,waterlogged=true": { + "model": "createindustry:block/light_bulb/block", + "x": 90, + "y": 180 + }, + "facing=south,level=15,waterlogged=false": { + "model": "createindustry:block/light_bulb/block", + "x": 90, + "y": 180 + }, + "facing=south,level=15,waterlogged=true": { + "model": "createindustry:block/light_bulb/block", + "x": 90, + "y": 180 + }, + "facing=south,level=2,waterlogged=false": { + "model": "createindustry:block/light_bulb/block", + "x": 90, + "y": 180 + }, + "facing=south,level=2,waterlogged=true": { + "model": "createindustry:block/light_bulb/block", + "x": 90, + "y": 180 + }, + "facing=south,level=3,waterlogged=false": { + "model": "createindustry:block/light_bulb/block", + "x": 90, + "y": 180 + }, + "facing=south,level=3,waterlogged=true": { + "model": "createindustry:block/light_bulb/block", + "x": 90, + "y": 180 + }, + "facing=south,level=4,waterlogged=false": { + "model": "createindustry:block/light_bulb/block", + "x": 90, + "y": 180 + }, + "facing=south,level=4,waterlogged=true": { + "model": "createindustry:block/light_bulb/block", + "x": 90, + "y": 180 + }, + "facing=south,level=5,waterlogged=false": { + "model": "createindustry:block/light_bulb/block", + "x": 90, + "y": 180 + }, + "facing=south,level=5,waterlogged=true": { + "model": "createindustry:block/light_bulb/block", + "x": 90, + "y": 180 + }, + "facing=south,level=6,waterlogged=false": { + "model": "createindustry:block/light_bulb/block", + "x": 90, + "y": 180 + }, + "facing=south,level=6,waterlogged=true": { + "model": "createindustry:block/light_bulb/block", + "x": 90, + "y": 180 + }, + "facing=south,level=7,waterlogged=false": { + "model": "createindustry:block/light_bulb/block", + "x": 90, + "y": 180 + }, + "facing=south,level=7,waterlogged=true": { + "model": "createindustry:block/light_bulb/block", + "x": 90, + "y": 180 + }, + "facing=south,level=8,waterlogged=false": { + "model": "createindustry:block/light_bulb/block", + "x": 90, + "y": 180 + }, + "facing=south,level=8,waterlogged=true": { + "model": "createindustry:block/light_bulb/block", + "x": 90, + "y": 180 + }, + "facing=south,level=9,waterlogged=false": { + "model": "createindustry:block/light_bulb/block", + "x": 90, + "y": 180 + }, + "facing=south,level=9,waterlogged=true": { + "model": "createindustry:block/light_bulb/block", + "x": 90, + "y": 180 + }, + "facing=up,level=0,waterlogged=false": { + "model": "createindustry:block/light_bulb/block" + }, + "facing=up,level=0,waterlogged=true": { + "model": "createindustry:block/light_bulb/block" + }, + "facing=up,level=1,waterlogged=false": { + "model": "createindustry:block/light_bulb/block" + }, + "facing=up,level=1,waterlogged=true": { + "model": "createindustry:block/light_bulb/block" + }, + "facing=up,level=10,waterlogged=false": { + "model": "createindustry:block/light_bulb/block" + }, + "facing=up,level=10,waterlogged=true": { + "model": "createindustry:block/light_bulb/block" + }, + "facing=up,level=11,waterlogged=false": { + "model": "createindustry:block/light_bulb/block" + }, + "facing=up,level=11,waterlogged=true": { + "model": "createindustry:block/light_bulb/block" + }, + "facing=up,level=12,waterlogged=false": { + "model": "createindustry:block/light_bulb/block" + }, + "facing=up,level=12,waterlogged=true": { + "model": "createindustry:block/light_bulb/block" + }, + "facing=up,level=13,waterlogged=false": { + "model": "createindustry:block/light_bulb/block" + }, + "facing=up,level=13,waterlogged=true": { + "model": "createindustry:block/light_bulb/block" + }, + "facing=up,level=14,waterlogged=false": { + "model": "createindustry:block/light_bulb/block" + }, + "facing=up,level=14,waterlogged=true": { + "model": "createindustry:block/light_bulb/block" + }, + "facing=up,level=15,waterlogged=false": { + "model": "createindustry:block/light_bulb/block" + }, + "facing=up,level=15,waterlogged=true": { + "model": "createindustry:block/light_bulb/block" + }, + "facing=up,level=2,waterlogged=false": { + "model": "createindustry:block/light_bulb/block" + }, + "facing=up,level=2,waterlogged=true": { + "model": "createindustry:block/light_bulb/block" + }, + "facing=up,level=3,waterlogged=false": { + "model": "createindustry:block/light_bulb/block" + }, + "facing=up,level=3,waterlogged=true": { + "model": "createindustry:block/light_bulb/block" + }, + "facing=up,level=4,waterlogged=false": { + "model": "createindustry:block/light_bulb/block" + }, + "facing=up,level=4,waterlogged=true": { + "model": "createindustry:block/light_bulb/block" + }, + "facing=up,level=5,waterlogged=false": { + "model": "createindustry:block/light_bulb/block" + }, + "facing=up,level=5,waterlogged=true": { + "model": "createindustry:block/light_bulb/block" + }, + "facing=up,level=6,waterlogged=false": { + "model": "createindustry:block/light_bulb/block" + }, + "facing=up,level=6,waterlogged=true": { + "model": "createindustry:block/light_bulb/block" + }, + "facing=up,level=7,waterlogged=false": { + "model": "createindustry:block/light_bulb/block" + }, + "facing=up,level=7,waterlogged=true": { + "model": "createindustry:block/light_bulb/block" + }, + "facing=up,level=8,waterlogged=false": { + "model": "createindustry:block/light_bulb/block" + }, + "facing=up,level=8,waterlogged=true": { + "model": "createindustry:block/light_bulb/block" + }, + "facing=up,level=9,waterlogged=false": { + "model": "createindustry:block/light_bulb/block" + }, + "facing=up,level=9,waterlogged=true": { + "model": "createindustry:block/light_bulb/block" + }, + "facing=west,level=0,waterlogged=false": { + "model": "createindustry:block/light_bulb/block", + "x": 90, + "y": 270 + }, + "facing=west,level=0,waterlogged=true": { + "model": "createindustry:block/light_bulb/block", + "x": 90, + "y": 270 + }, + "facing=west,level=1,waterlogged=false": { + "model": "createindustry:block/light_bulb/block", + "x": 90, + "y": 270 + }, + "facing=west,level=1,waterlogged=true": { + "model": "createindustry:block/light_bulb/block", + "x": 90, + "y": 270 + }, + "facing=west,level=10,waterlogged=false": { + "model": "createindustry:block/light_bulb/block", + "x": 90, + "y": 270 + }, + "facing=west,level=10,waterlogged=true": { + "model": "createindustry:block/light_bulb/block", + "x": 90, + "y": 270 + }, + "facing=west,level=11,waterlogged=false": { + "model": "createindustry:block/light_bulb/block", + "x": 90, + "y": 270 + }, + "facing=west,level=11,waterlogged=true": { + "model": "createindustry:block/light_bulb/block", + "x": 90, + "y": 270 + }, + "facing=west,level=12,waterlogged=false": { + "model": "createindustry:block/light_bulb/block", + "x": 90, + "y": 270 + }, + "facing=west,level=12,waterlogged=true": { + "model": "createindustry:block/light_bulb/block", + "x": 90, + "y": 270 + }, + "facing=west,level=13,waterlogged=false": { + "model": "createindustry:block/light_bulb/block", + "x": 90, + "y": 270 + }, + "facing=west,level=13,waterlogged=true": { + "model": "createindustry:block/light_bulb/block", + "x": 90, + "y": 270 + }, + "facing=west,level=14,waterlogged=false": { + "model": "createindustry:block/light_bulb/block", + "x": 90, + "y": 270 + }, + "facing=west,level=14,waterlogged=true": { + "model": "createindustry:block/light_bulb/block", + "x": 90, + "y": 270 + }, + "facing=west,level=15,waterlogged=false": { + "model": "createindustry:block/light_bulb/block", + "x": 90, + "y": 270 + }, + "facing=west,level=15,waterlogged=true": { + "model": "createindustry:block/light_bulb/block", + "x": 90, + "y": 270 + }, + "facing=west,level=2,waterlogged=false": { + "model": "createindustry:block/light_bulb/block", + "x": 90, + "y": 270 + }, + "facing=west,level=2,waterlogged=true": { + "model": "createindustry:block/light_bulb/block", + "x": 90, + "y": 270 + }, + "facing=west,level=3,waterlogged=false": { + "model": "createindustry:block/light_bulb/block", + "x": 90, + "y": 270 + }, + "facing=west,level=3,waterlogged=true": { + "model": "createindustry:block/light_bulb/block", + "x": 90, + "y": 270 + }, + "facing=west,level=4,waterlogged=false": { + "model": "createindustry:block/light_bulb/block", + "x": 90, + "y": 270 + }, + "facing=west,level=4,waterlogged=true": { + "model": "createindustry:block/light_bulb/block", + "x": 90, + "y": 270 + }, + "facing=west,level=5,waterlogged=false": { + "model": "createindustry:block/light_bulb/block", + "x": 90, + "y": 270 + }, + "facing=west,level=5,waterlogged=true": { + "model": "createindustry:block/light_bulb/block", + "x": 90, + "y": 270 + }, + "facing=west,level=6,waterlogged=false": { + "model": "createindustry:block/light_bulb/block", + "x": 90, + "y": 270 + }, + "facing=west,level=6,waterlogged=true": { + "model": "createindustry:block/light_bulb/block", + "x": 90, + "y": 270 + }, + "facing=west,level=7,waterlogged=false": { + "model": "createindustry:block/light_bulb/block", + "x": 90, + "y": 270 + }, + "facing=west,level=7,waterlogged=true": { + "model": "createindustry:block/light_bulb/block", + "x": 90, + "y": 270 + }, + "facing=west,level=8,waterlogged=false": { + "model": "createindustry:block/light_bulb/block", + "x": 90, + "y": 270 + }, + "facing=west,level=8,waterlogged=true": { + "model": "createindustry:block/light_bulb/block", + "x": 90, + "y": 270 + }, + "facing=west,level=9,waterlogged=false": { + "model": "createindustry:block/light_bulb/block", + "x": 90, + "y": 270 + }, + "facing=west,level=9,waterlogged=true": { + "model": "createindustry:block/light_bulb/block", + "x": 90, + "y": 270 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/light_gray_caution_block.json b/src/generated/resources/assets/createindustry/blockstates/light_gray_caution_block.json new file mode 100644 index 00000000..96748080 --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/light_gray_caution_block.json @@ -0,0 +1,19 @@ +{ + "variants": { + "facing=east": { + "model": "createindustry:block/light_gray_caution_block", + "y": 90 + }, + "facing=north": { + "model": "createindustry:block/light_gray_caution_block" + }, + "facing=south": { + "model": "createindustry:block/light_gray_caution_block", + "y": 180 + }, + "facing=west": { + "model": "createindustry:block/light_gray_caution_block", + "y": 270 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/lime_caution_block.json b/src/generated/resources/assets/createindustry/blockstates/lime_caution_block.json new file mode 100644 index 00000000..d83d7f1e --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/lime_caution_block.json @@ -0,0 +1,19 @@ +{ + "variants": { + "facing=east": { + "model": "createindustry:block/lime_caution_block", + "y": 90 + }, + "facing=north": { + "model": "createindustry:block/lime_caution_block" + }, + "facing=south": { + "model": "createindustry:block/lime_caution_block", + "y": 180 + }, + "facing=west": { + "model": "createindustry:block/lime_caution_block", + "y": 270 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/lithium_block.json b/src/generated/resources/assets/createindustry/blockstates/lithium_block.json new file mode 100644 index 00000000..e2af442a --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/lithium_block.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "createindustry:block/lithium_block" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/lithium_ore.json b/src/generated/resources/assets/createindustry/blockstates/lithium_ore.json new file mode 100644 index 00000000..0602e3bb --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/lithium_ore.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "createindustry:block/lithium_ore" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/lithium_torch.json b/src/generated/resources/assets/createindustry/blockstates/lithium_torch.json new file mode 100644 index 00000000..0210d18c --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/lithium_torch.json @@ -0,0 +1,48 @@ +{ + "variants": { + "facing=down,waterlogged=false": { + "model": "createindustry:block/lithium_torch/block", + "x": 180 + }, + "facing=down,waterlogged=true": { + "model": "createindustry:block/lithium_torch/block", + "x": 180 + }, + "facing=east,waterlogged=false": { + "model": "createindustry:block/lithium_torch/block_wall" + }, + "facing=east,waterlogged=true": { + "model": "createindustry:block/lithium_torch/block_wall" + }, + "facing=north,waterlogged=false": { + "model": "createindustry:block/lithium_torch/block_wall", + "y": 270 + }, + "facing=north,waterlogged=true": { + "model": "createindustry:block/lithium_torch/block_wall", + "y": 270 + }, + "facing=south,waterlogged=false": { + "model": "createindustry:block/lithium_torch/block_wall", + "y": 90 + }, + "facing=south,waterlogged=true": { + "model": "createindustry:block/lithium_torch/block_wall", + "y": 90 + }, + "facing=up,waterlogged=false": { + "model": "createindustry:block/lithium_torch/block" + }, + "facing=up,waterlogged=true": { + "model": "createindustry:block/lithium_torch/block" + }, + "facing=west,waterlogged=false": { + "model": "createindustry:block/lithium_torch/block_wall", + "y": 180 + }, + "facing=west,waterlogged=true": { + "model": "createindustry:block/lithium_torch/block_wall", + "y": 180 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/low_grade_fuel_engine.json b/src/generated/resources/assets/createindustry/blockstates/low_grade_fuel_engine.json new file mode 100644 index 00000000..9056b823 --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/low_grade_fuel_engine.json @@ -0,0 +1,29 @@ +{ + "variants": { + "facing=down": { + "model": "createindustry:block/low_grade_fuel_engine/block", + "x": 90, + "y": 180 + }, + "facing=east": { + "model": "createindustry:block/low_grade_fuel_engine/block", + "y": 90 + }, + "facing=north": { + "model": "createindustry:block/low_grade_fuel_engine/block" + }, + "facing=south": { + "model": "createindustry:block/low_grade_fuel_engine/block", + "y": 180 + }, + "facing=up": { + "model": "createindustry:block/low_grade_fuel_engine/block", + "x": 270, + "y": 180 + }, + "facing=west": { + "model": "createindustry:block/low_grade_fuel_engine/block", + "y": 270 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/magenta_caution_block.json b/src/generated/resources/assets/createindustry/blockstates/magenta_caution_block.json new file mode 100644 index 00000000..84f45617 --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/magenta_caution_block.json @@ -0,0 +1,19 @@ +{ + "variants": { + "facing=east": { + "model": "createindustry:block/magenta_caution_block", + "y": 90 + }, + "facing=north": { + "model": "createindustry:block/magenta_caution_block" + }, + "facing=south": { + "model": "createindustry:block/magenta_caution_block", + "y": 180 + }, + "facing=west": { + "model": "createindustry:block/magenta_caution_block", + "y": 270 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/neon_tube.json b/src/generated/resources/assets/createindustry/blockstates/neon_tube.json new file mode 100644 index 00000000..a5fc5fc4 --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/neon_tube.json @@ -0,0 +1,30 @@ +{ + "variants": { + "active=false,axis=x": { + "model": "createindustry:block/neon_tube/block", + "x": 90, + "y": 90 + }, + "active=false,axis=y": { + "model": "createindustry:block/neon_tube/block" + }, + "active=false,axis=z": { + "model": "createindustry:block/neon_tube/block", + "x": 90, + "y": 180 + }, + "active=true,axis=x": { + "model": "createindustry:block/neon_tube/block", + "x": 90, + "y": 90 + }, + "active=true,axis=y": { + "model": "createindustry:block/neon_tube/block" + }, + "active=true,axis=z": { + "model": "createindustry:block/neon_tube/block", + "x": 90, + "y": 180 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/nickel_bars.json b/src/generated/resources/assets/createindustry/blockstates/nickel_bars.json new file mode 100644 index 00000000..db1af8b2 --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/nickel_bars.json @@ -0,0 +1,100 @@ +{ + "multipart": [ + { + "apply": { + "model": "createindustry:block/nickel_post_ends" + } + }, + { + "apply": { + "model": "createindustry:block/nickel_post" + }, + "when": { + "east": "false", + "north": "false", + "south": "false", + "west": "false" + } + }, + { + "apply": { + "model": "createindustry:block/nickel_cap" + }, + "when": { + "east": "false", + "north": "true", + "south": "false", + "west": "false" + } + }, + { + "apply": { + "model": "createindustry:block/nickel_cap", + "y": 90 + }, + "when": { + "east": "true", + "north": "false", + "south": "false", + "west": "false" + } + }, + { + "apply": { + "model": "createindustry:block/nickel_cap_alt" + }, + "when": { + "east": "false", + "north": "false", + "south": "true", + "west": "false" + } + }, + { + "apply": { + "model": "createindustry:block/nickel_cap_alt", + "y": 90 + }, + "when": { + "east": "false", + "north": "false", + "south": "false", + "west": "true" + } + }, + { + "apply": { + "model": "createindustry:block/nickel_side" + }, + "when": { + "north": "true" + } + }, + { + "apply": { + "model": "createindustry:block/nickel_side", + "y": 90 + }, + "when": { + "east": "true" + } + }, + { + "apply": { + "model": "createindustry:block/nickel_side_alt" + }, + "when": { + "south": "true" + } + }, + { + "apply": { + "model": "createindustry:block/nickel_side_alt", + "y": 90 + }, + "when": { + "west": "true" + } + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/nickel_block.json b/src/generated/resources/assets/createindustry/blockstates/nickel_block.json new file mode 100644 index 00000000..c2617432 --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/nickel_block.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "createindustry:block/nickel_block" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/nickel_flywheel.json b/src/generated/resources/assets/createindustry/blockstates/nickel_flywheel.json new file mode 100644 index 00000000..9f7ee48b --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/nickel_flywheel.json @@ -0,0 +1,17 @@ +{ + "variants": { + "axis=x": { + "model": "createindustry:block/nickel_flywheel/block", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "createindustry:block/nickel_flywheel/block" + }, + "axis=z": { + "model": "createindustry:block/nickel_flywheel/block", + "x": 90, + "y": 180 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/nickel_frame.json b/src/generated/resources/assets/createindustry/blockstates/nickel_frame.json new file mode 100644 index 00000000..8cf5d3eb --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/nickel_frame.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "createindustry:block/nickel_frame/block" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/nickel_ladder.json b/src/generated/resources/assets/createindustry/blockstates/nickel_ladder.json new file mode 100644 index 00000000..6d969687 --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/nickel_ladder.json @@ -0,0 +1,34 @@ +{ + "variants": { + "facing=east,waterlogged=false": { + "model": "createindustry:block/nickel_ladder", + "y": 90 + }, + "facing=east,waterlogged=true": { + "model": "createindustry:block/nickel_ladder", + "y": 90 + }, + "facing=north,waterlogged=false": { + "model": "createindustry:block/nickel_ladder" + }, + "facing=north,waterlogged=true": { + "model": "createindustry:block/nickel_ladder" + }, + "facing=south,waterlogged=false": { + "model": "createindustry:block/nickel_ladder", + "y": 180 + }, + "facing=south,waterlogged=true": { + "model": "createindustry:block/nickel_ladder", + "y": 180 + }, + "facing=west,waterlogged=false": { + "model": "createindustry:block/nickel_ladder", + "y": 270 + }, + "facing=west,waterlogged=true": { + "model": "createindustry:block/nickel_ladder", + "y": 270 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/nickel_ore.json b/src/generated/resources/assets/createindustry/blockstates/nickel_ore.json new file mode 100644 index 00000000..aeb4743f --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/nickel_ore.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "createindustry:block/nickel_ore" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/nickel_truss.json b/src/generated/resources/assets/createindustry/blockstates/nickel_truss.json new file mode 100644 index 00000000..cec2a4c4 --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/nickel_truss.json @@ -0,0 +1,17 @@ +{ + "variants": { + "axis=x": { + "model": "createindustry:block/nickel_truss", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "createindustry:block/nickel_truss" + }, + "axis=z": { + "model": "createindustry:block/nickel_truss", + "x": 90, + "y": 180 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/orange_caution_block.json b/src/generated/resources/assets/createindustry/blockstates/orange_caution_block.json new file mode 100644 index 00000000..37ff843f --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/orange_caution_block.json @@ -0,0 +1,19 @@ +{ + "variants": { + "facing=east": { + "model": "createindustry:block/orange_caution_block", + "y": 90 + }, + "facing=north": { + "model": "createindustry:block/orange_caution_block" + }, + "facing=south": { + "model": "createindustry:block/orange_caution_block", + "y": 180 + }, + "facing=west": { + "model": "createindustry:block/orange_caution_block", + "y": 270 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/pink_caution_block.json b/src/generated/resources/assets/createindustry/blockstates/pink_caution_block.json new file mode 100644 index 00000000..b0bc3525 --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/pink_caution_block.json @@ -0,0 +1,19 @@ +{ + "variants": { + "facing=east": { + "model": "createindustry:block/pink_caution_block", + "y": 90 + }, + "facing=north": { + "model": "createindustry:block/pink_caution_block" + }, + "facing=south": { + "model": "createindustry:block/pink_caution_block", + "y": 180 + }, + "facing=west": { + "model": "createindustry:block/pink_caution_block", + "y": 270 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/polarizer.json b/src/generated/resources/assets/createindustry/blockstates/polarizer.json new file mode 100644 index 00000000..d1051685 --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/polarizer.json @@ -0,0 +1,19 @@ +{ + "variants": { + "facing=east": { + "model": "createindustry:block/polarizer/block", + "y": 90 + }, + "facing=north": { + "model": "createindustry:block/polarizer/block" + }, + "facing=south": { + "model": "createindustry:block/polarizer/block", + "y": 180 + }, + "facing=west": { + "model": "createindustry:block/polarizer/block", + "y": 270 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/polished_cut_galena.json b/src/generated/resources/assets/createindustry/blockstates/polished_cut_galena.json new file mode 100644 index 00000000..36bc109c --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/polished_cut_galena.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "createindustry:block/polished_cut_galena" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/polished_cut_galena_slab.json b/src/generated/resources/assets/createindustry/blockstates/polished_cut_galena_slab.json new file mode 100644 index 00000000..69d64ce9 --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/polished_cut_galena_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "createindustry:block/polished_cut_galena_slab" + }, + "type=double": { + "model": "createindustry:block/polished_cut_galena_slab_double" + }, + "type=top": { + "model": "createindustry:block/polished_cut_galena_slab_top" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/polished_cut_galena_stairs.json b/src/generated/resources/assets/createindustry/blockstates/polished_cut_galena_stairs.json new file mode 100644 index 00000000..feae8846 --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/polished_cut_galena_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "createindustry:block/polished_cut_galena_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "createindustry:block/polished_cut_galena_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "createindustry:block/polished_cut_galena_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "createindustry:block/polished_cut_galena_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "createindustry:block/polished_cut_galena_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "createindustry:block/polished_cut_galena_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=inner_right": { + "model": "createindustry:block/polished_cut_galena_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=outer_left": { + "model": "createindustry:block/polished_cut_galena_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=outer_right": { + "model": "createindustry:block/polished_cut_galena_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=straight": { + "model": "createindustry:block/polished_cut_galena_stairs", + "uvlock": true, + "x": 180 + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "createindustry:block/polished_cut_galena_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "createindustry:block/polished_cut_galena_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "createindustry:block/polished_cut_galena_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "createindustry:block/polished_cut_galena_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=straight": { + "model": "createindustry:block/polished_cut_galena_stairs", + "uvlock": true, + "y": 270 + }, + "facing=north,half=top,shape=inner_left": { + "model": "createindustry:block/polished_cut_galena_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=inner_right": { + "model": "createindustry:block/polished_cut_galena_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=outer_left": { + "model": "createindustry:block/polished_cut_galena_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=outer_right": { + "model": "createindustry:block/polished_cut_galena_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=straight": { + "model": "createindustry:block/polished_cut_galena_stairs", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "createindustry:block/polished_cut_galena_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "createindustry:block/polished_cut_galena_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "createindustry:block/polished_cut_galena_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "createindustry:block/polished_cut_galena_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=straight": { + "model": "createindustry:block/polished_cut_galena_stairs", + "uvlock": true, + "y": 90 + }, + "facing=south,half=top,shape=inner_left": { + "model": "createindustry:block/polished_cut_galena_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=inner_right": { + "model": "createindustry:block/polished_cut_galena_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=outer_left": { + "model": "createindustry:block/polished_cut_galena_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=outer_right": { + "model": "createindustry:block/polished_cut_galena_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=straight": { + "model": "createindustry:block/polished_cut_galena_stairs", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "createindustry:block/polished_cut_galena_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "createindustry:block/polished_cut_galena_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "createindustry:block/polished_cut_galena_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "createindustry:block/polished_cut_galena_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=straight": { + "model": "createindustry:block/polished_cut_galena_stairs", + "uvlock": true, + "y": 180 + }, + "facing=west,half=top,shape=inner_left": { + "model": "createindustry:block/polished_cut_galena_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=inner_right": { + "model": "createindustry:block/polished_cut_galena_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=outer_left": { + "model": "createindustry:block/polished_cut_galena_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=outer_right": { + "model": "createindustry:block/polished_cut_galena_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=straight": { + "model": "createindustry:block/polished_cut_galena_stairs", + "uvlock": true, + "x": 180, + "y": 180 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/polished_cut_galena_wall.json b/src/generated/resources/assets/createindustry/blockstates/polished_cut_galena_wall.json new file mode 100644 index 00000000..cc73baac --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/polished_cut_galena_wall.json @@ -0,0 +1,90 @@ +{ + "multipart": [ + { + "apply": { + "model": "createindustry:block/polished_cut_galena_wall_post" + }, + "when": { + "up": "true" + } + }, + { + "apply": { + "model": "createindustry:block/polished_cut_galena_wall_side", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "low" + } + }, + { + "apply": { + "model": "createindustry:block/polished_cut_galena_wall_side_tall", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "tall" + } + }, + { + "apply": { + "model": "createindustry:block/polished_cut_galena_wall_side", + "uvlock": true + }, + "when": { + "north": "low" + } + }, + { + "apply": { + "model": "createindustry:block/polished_cut_galena_wall_side_tall", + "uvlock": true + }, + "when": { + "north": "tall" + } + }, + { + "apply": { + "model": "createindustry:block/polished_cut_galena_wall_side", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "low" + } + }, + { + "apply": { + "model": "createindustry:block/polished_cut_galena_wall_side_tall", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "tall" + } + }, + { + "apply": { + "model": "createindustry:block/polished_cut_galena_wall_side", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "low" + } + }, + { + "apply": { + "model": "createindustry:block/polished_cut_galena_wall_side_tall", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "tall" + } + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/purple_caution_block.json b/src/generated/resources/assets/createindustry/blockstates/purple_caution_block.json new file mode 100644 index 00000000..268bfce3 --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/purple_caution_block.json @@ -0,0 +1,19 @@ +{ + "variants": { + "facing=east": { + "model": "createindustry:block/purple_caution_block", + "y": 90 + }, + "facing=north": { + "model": "createindustry:block/purple_caution_block" + }, + "facing=south": { + "model": "createindustry:block/purple_caution_block", + "y": 180 + }, + "facing=west": { + "model": "createindustry:block/purple_caution_block", + "y": 270 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/resistor.json b/src/generated/resources/assets/createindustry/blockstates/resistor.json new file mode 100644 index 00000000..f37fcb53 --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/resistor.json @@ -0,0 +1,19 @@ +{ + "variants": { + "facing=east": { + "model": "createindustry:block/resistor/block", + "y": 90 + }, + "facing=north": { + "model": "createindustry:block/resistor/block" + }, + "facing=south": { + "model": "createindustry:block/resistor/block", + "y": 180 + }, + "facing=west": { + "model": "createindustry:block/resistor/block", + "y": 270 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/rgb_light_bulb.json b/src/generated/resources/assets/createindustry/blockstates/rgb_light_bulb.json new file mode 100644 index 00000000..16f4eee6 --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/rgb_light_bulb.json @@ -0,0 +1,836 @@ +{ + "variants": { + "facing=down,level=0,waterlogged=false": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 180 + }, + "facing=down,level=0,waterlogged=true": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 180 + }, + "facing=down,level=1,waterlogged=false": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 180 + }, + "facing=down,level=1,waterlogged=true": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 180 + }, + "facing=down,level=10,waterlogged=false": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 180 + }, + "facing=down,level=10,waterlogged=true": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 180 + }, + "facing=down,level=11,waterlogged=false": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 180 + }, + "facing=down,level=11,waterlogged=true": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 180 + }, + "facing=down,level=12,waterlogged=false": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 180 + }, + "facing=down,level=12,waterlogged=true": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 180 + }, + "facing=down,level=13,waterlogged=false": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 180 + }, + "facing=down,level=13,waterlogged=true": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 180 + }, + "facing=down,level=14,waterlogged=false": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 180 + }, + "facing=down,level=14,waterlogged=true": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 180 + }, + "facing=down,level=15,waterlogged=false": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 180 + }, + "facing=down,level=15,waterlogged=true": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 180 + }, + "facing=down,level=2,waterlogged=false": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 180 + }, + "facing=down,level=2,waterlogged=true": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 180 + }, + "facing=down,level=3,waterlogged=false": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 180 + }, + "facing=down,level=3,waterlogged=true": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 180 + }, + "facing=down,level=4,waterlogged=false": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 180 + }, + "facing=down,level=4,waterlogged=true": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 180 + }, + "facing=down,level=5,waterlogged=false": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 180 + }, + "facing=down,level=5,waterlogged=true": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 180 + }, + "facing=down,level=6,waterlogged=false": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 180 + }, + "facing=down,level=6,waterlogged=true": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 180 + }, + "facing=down,level=7,waterlogged=false": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 180 + }, + "facing=down,level=7,waterlogged=true": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 180 + }, + "facing=down,level=8,waterlogged=false": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 180 + }, + "facing=down,level=8,waterlogged=true": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 180 + }, + "facing=down,level=9,waterlogged=false": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 180 + }, + "facing=down,level=9,waterlogged=true": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 180 + }, + "facing=east,level=0,waterlogged=false": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90, + "y": 90 + }, + "facing=east,level=0,waterlogged=true": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90, + "y": 90 + }, + "facing=east,level=1,waterlogged=false": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90, + "y": 90 + }, + "facing=east,level=1,waterlogged=true": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90, + "y": 90 + }, + "facing=east,level=10,waterlogged=false": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90, + "y": 90 + }, + "facing=east,level=10,waterlogged=true": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90, + "y": 90 + }, + "facing=east,level=11,waterlogged=false": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90, + "y": 90 + }, + "facing=east,level=11,waterlogged=true": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90, + "y": 90 + }, + "facing=east,level=12,waterlogged=false": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90, + "y": 90 + }, + "facing=east,level=12,waterlogged=true": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90, + "y": 90 + }, + "facing=east,level=13,waterlogged=false": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90, + "y": 90 + }, + "facing=east,level=13,waterlogged=true": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90, + "y": 90 + }, + "facing=east,level=14,waterlogged=false": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90, + "y": 90 + }, + "facing=east,level=14,waterlogged=true": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90, + "y": 90 + }, + "facing=east,level=15,waterlogged=false": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90, + "y": 90 + }, + "facing=east,level=15,waterlogged=true": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90, + "y": 90 + }, + "facing=east,level=2,waterlogged=false": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90, + "y": 90 + }, + "facing=east,level=2,waterlogged=true": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90, + "y": 90 + }, + "facing=east,level=3,waterlogged=false": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90, + "y": 90 + }, + "facing=east,level=3,waterlogged=true": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90, + "y": 90 + }, + "facing=east,level=4,waterlogged=false": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90, + "y": 90 + }, + "facing=east,level=4,waterlogged=true": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90, + "y": 90 + }, + "facing=east,level=5,waterlogged=false": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90, + "y": 90 + }, + "facing=east,level=5,waterlogged=true": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90, + "y": 90 + }, + "facing=east,level=6,waterlogged=false": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90, + "y": 90 + }, + "facing=east,level=6,waterlogged=true": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90, + "y": 90 + }, + "facing=east,level=7,waterlogged=false": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90, + "y": 90 + }, + "facing=east,level=7,waterlogged=true": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90, + "y": 90 + }, + "facing=east,level=8,waterlogged=false": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90, + "y": 90 + }, + "facing=east,level=8,waterlogged=true": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90, + "y": 90 + }, + "facing=east,level=9,waterlogged=false": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90, + "y": 90 + }, + "facing=east,level=9,waterlogged=true": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90, + "y": 90 + }, + "facing=north,level=0,waterlogged=false": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90 + }, + "facing=north,level=0,waterlogged=true": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90 + }, + "facing=north,level=1,waterlogged=false": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90 + }, + "facing=north,level=1,waterlogged=true": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90 + }, + "facing=north,level=10,waterlogged=false": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90 + }, + "facing=north,level=10,waterlogged=true": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90 + }, + "facing=north,level=11,waterlogged=false": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90 + }, + "facing=north,level=11,waterlogged=true": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90 + }, + "facing=north,level=12,waterlogged=false": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90 + }, + "facing=north,level=12,waterlogged=true": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90 + }, + "facing=north,level=13,waterlogged=false": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90 + }, + "facing=north,level=13,waterlogged=true": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90 + }, + "facing=north,level=14,waterlogged=false": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90 + }, + "facing=north,level=14,waterlogged=true": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90 + }, + "facing=north,level=15,waterlogged=false": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90 + }, + "facing=north,level=15,waterlogged=true": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90 + }, + "facing=north,level=2,waterlogged=false": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90 + }, + "facing=north,level=2,waterlogged=true": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90 + }, + "facing=north,level=3,waterlogged=false": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90 + }, + "facing=north,level=3,waterlogged=true": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90 + }, + "facing=north,level=4,waterlogged=false": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90 + }, + "facing=north,level=4,waterlogged=true": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90 + }, + "facing=north,level=5,waterlogged=false": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90 + }, + "facing=north,level=5,waterlogged=true": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90 + }, + "facing=north,level=6,waterlogged=false": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90 + }, + "facing=north,level=6,waterlogged=true": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90 + }, + "facing=north,level=7,waterlogged=false": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90 + }, + "facing=north,level=7,waterlogged=true": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90 + }, + "facing=north,level=8,waterlogged=false": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90 + }, + "facing=north,level=8,waterlogged=true": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90 + }, + "facing=north,level=9,waterlogged=false": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90 + }, + "facing=north,level=9,waterlogged=true": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90 + }, + "facing=south,level=0,waterlogged=false": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90, + "y": 180 + }, + "facing=south,level=0,waterlogged=true": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90, + "y": 180 + }, + "facing=south,level=1,waterlogged=false": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90, + "y": 180 + }, + "facing=south,level=1,waterlogged=true": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90, + "y": 180 + }, + "facing=south,level=10,waterlogged=false": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90, + "y": 180 + }, + "facing=south,level=10,waterlogged=true": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90, + "y": 180 + }, + "facing=south,level=11,waterlogged=false": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90, + "y": 180 + }, + "facing=south,level=11,waterlogged=true": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90, + "y": 180 + }, + "facing=south,level=12,waterlogged=false": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90, + "y": 180 + }, + "facing=south,level=12,waterlogged=true": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90, + "y": 180 + }, + "facing=south,level=13,waterlogged=false": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90, + "y": 180 + }, + "facing=south,level=13,waterlogged=true": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90, + "y": 180 + }, + "facing=south,level=14,waterlogged=false": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90, + "y": 180 + }, + "facing=south,level=14,waterlogged=true": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90, + "y": 180 + }, + "facing=south,level=15,waterlogged=false": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90, + "y": 180 + }, + "facing=south,level=15,waterlogged=true": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90, + "y": 180 + }, + "facing=south,level=2,waterlogged=false": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90, + "y": 180 + }, + "facing=south,level=2,waterlogged=true": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90, + "y": 180 + }, + "facing=south,level=3,waterlogged=false": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90, + "y": 180 + }, + "facing=south,level=3,waterlogged=true": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90, + "y": 180 + }, + "facing=south,level=4,waterlogged=false": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90, + "y": 180 + }, + "facing=south,level=4,waterlogged=true": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90, + "y": 180 + }, + "facing=south,level=5,waterlogged=false": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90, + "y": 180 + }, + "facing=south,level=5,waterlogged=true": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90, + "y": 180 + }, + "facing=south,level=6,waterlogged=false": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90, + "y": 180 + }, + "facing=south,level=6,waterlogged=true": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90, + "y": 180 + }, + "facing=south,level=7,waterlogged=false": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90, + "y": 180 + }, + "facing=south,level=7,waterlogged=true": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90, + "y": 180 + }, + "facing=south,level=8,waterlogged=false": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90, + "y": 180 + }, + "facing=south,level=8,waterlogged=true": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90, + "y": 180 + }, + "facing=south,level=9,waterlogged=false": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90, + "y": 180 + }, + "facing=south,level=9,waterlogged=true": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90, + "y": 180 + }, + "facing=up,level=0,waterlogged=false": { + "model": "createindustry:block/rgb_light_bulb/block" + }, + "facing=up,level=0,waterlogged=true": { + "model": "createindustry:block/rgb_light_bulb/block" + }, + "facing=up,level=1,waterlogged=false": { + "model": "createindustry:block/rgb_light_bulb/block" + }, + "facing=up,level=1,waterlogged=true": { + "model": "createindustry:block/rgb_light_bulb/block" + }, + "facing=up,level=10,waterlogged=false": { + "model": "createindustry:block/rgb_light_bulb/block" + }, + "facing=up,level=10,waterlogged=true": { + "model": "createindustry:block/rgb_light_bulb/block" + }, + "facing=up,level=11,waterlogged=false": { + "model": "createindustry:block/rgb_light_bulb/block" + }, + "facing=up,level=11,waterlogged=true": { + "model": "createindustry:block/rgb_light_bulb/block" + }, + "facing=up,level=12,waterlogged=false": { + "model": "createindustry:block/rgb_light_bulb/block" + }, + "facing=up,level=12,waterlogged=true": { + "model": "createindustry:block/rgb_light_bulb/block" + }, + "facing=up,level=13,waterlogged=false": { + "model": "createindustry:block/rgb_light_bulb/block" + }, + "facing=up,level=13,waterlogged=true": { + "model": "createindustry:block/rgb_light_bulb/block" + }, + "facing=up,level=14,waterlogged=false": { + "model": "createindustry:block/rgb_light_bulb/block" + }, + "facing=up,level=14,waterlogged=true": { + "model": "createindustry:block/rgb_light_bulb/block" + }, + "facing=up,level=15,waterlogged=false": { + "model": "createindustry:block/rgb_light_bulb/block" + }, + "facing=up,level=15,waterlogged=true": { + "model": "createindustry:block/rgb_light_bulb/block" + }, + "facing=up,level=2,waterlogged=false": { + "model": "createindustry:block/rgb_light_bulb/block" + }, + "facing=up,level=2,waterlogged=true": { + "model": "createindustry:block/rgb_light_bulb/block" + }, + "facing=up,level=3,waterlogged=false": { + "model": "createindustry:block/rgb_light_bulb/block" + }, + "facing=up,level=3,waterlogged=true": { + "model": "createindustry:block/rgb_light_bulb/block" + }, + "facing=up,level=4,waterlogged=false": { + "model": "createindustry:block/rgb_light_bulb/block" + }, + "facing=up,level=4,waterlogged=true": { + "model": "createindustry:block/rgb_light_bulb/block" + }, + "facing=up,level=5,waterlogged=false": { + "model": "createindustry:block/rgb_light_bulb/block" + }, + "facing=up,level=5,waterlogged=true": { + "model": "createindustry:block/rgb_light_bulb/block" + }, + "facing=up,level=6,waterlogged=false": { + "model": "createindustry:block/rgb_light_bulb/block" + }, + "facing=up,level=6,waterlogged=true": { + "model": "createindustry:block/rgb_light_bulb/block" + }, + "facing=up,level=7,waterlogged=false": { + "model": "createindustry:block/rgb_light_bulb/block" + }, + "facing=up,level=7,waterlogged=true": { + "model": "createindustry:block/rgb_light_bulb/block" + }, + "facing=up,level=8,waterlogged=false": { + "model": "createindustry:block/rgb_light_bulb/block" + }, + "facing=up,level=8,waterlogged=true": { + "model": "createindustry:block/rgb_light_bulb/block" + }, + "facing=up,level=9,waterlogged=false": { + "model": "createindustry:block/rgb_light_bulb/block" + }, + "facing=up,level=9,waterlogged=true": { + "model": "createindustry:block/rgb_light_bulb/block" + }, + "facing=west,level=0,waterlogged=false": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90, + "y": 270 + }, + "facing=west,level=0,waterlogged=true": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90, + "y": 270 + }, + "facing=west,level=1,waterlogged=false": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90, + "y": 270 + }, + "facing=west,level=1,waterlogged=true": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90, + "y": 270 + }, + "facing=west,level=10,waterlogged=false": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90, + "y": 270 + }, + "facing=west,level=10,waterlogged=true": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90, + "y": 270 + }, + "facing=west,level=11,waterlogged=false": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90, + "y": 270 + }, + "facing=west,level=11,waterlogged=true": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90, + "y": 270 + }, + "facing=west,level=12,waterlogged=false": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90, + "y": 270 + }, + "facing=west,level=12,waterlogged=true": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90, + "y": 270 + }, + "facing=west,level=13,waterlogged=false": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90, + "y": 270 + }, + "facing=west,level=13,waterlogged=true": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90, + "y": 270 + }, + "facing=west,level=14,waterlogged=false": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90, + "y": 270 + }, + "facing=west,level=14,waterlogged=true": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90, + "y": 270 + }, + "facing=west,level=15,waterlogged=false": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90, + "y": 270 + }, + "facing=west,level=15,waterlogged=true": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90, + "y": 270 + }, + "facing=west,level=2,waterlogged=false": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90, + "y": 270 + }, + "facing=west,level=2,waterlogged=true": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90, + "y": 270 + }, + "facing=west,level=3,waterlogged=false": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90, + "y": 270 + }, + "facing=west,level=3,waterlogged=true": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90, + "y": 270 + }, + "facing=west,level=4,waterlogged=false": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90, + "y": 270 + }, + "facing=west,level=4,waterlogged=true": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90, + "y": 270 + }, + "facing=west,level=5,waterlogged=false": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90, + "y": 270 + }, + "facing=west,level=5,waterlogged=true": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90, + "y": 270 + }, + "facing=west,level=6,waterlogged=false": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90, + "y": 270 + }, + "facing=west,level=6,waterlogged=true": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90, + "y": 270 + }, + "facing=west,level=7,waterlogged=false": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90, + "y": 270 + }, + "facing=west,level=7,waterlogged=true": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90, + "y": 270 + }, + "facing=west,level=8,waterlogged=false": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90, + "y": 270 + }, + "facing=west,level=8,waterlogged=true": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90, + "y": 270 + }, + "facing=west,level=9,waterlogged=false": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90, + "y": 270 + }, + "facing=west,level=9,waterlogged=true": { + "model": "createindustry:block/rgb_light_bulb/block", + "x": 90, + "y": 270 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/rotor.json b/src/generated/resources/assets/createindustry/blockstates/rotor.json new file mode 100644 index 00000000..763e92b4 --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/rotor.json @@ -0,0 +1,17 @@ +{ + "variants": { + "axis=x": { + "model": "createindustry:block/rotor/block", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "createindustry:block/rotor/block" + }, + "axis=z": { + "model": "createindustry:block/rotor/block", + "x": 90, + "y": 180 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/small_galena_brick_slab.json b/src/generated/resources/assets/createindustry/blockstates/small_galena_brick_slab.json new file mode 100644 index 00000000..db50a46d --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/small_galena_brick_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "createindustry:block/small_galena_brick_slab" + }, + "type=double": { + "model": "createindustry:block/small_galena_bricks" + }, + "type=top": { + "model": "createindustry:block/small_galena_brick_slab_top" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/small_galena_brick_stairs.json b/src/generated/resources/assets/createindustry/blockstates/small_galena_brick_stairs.json new file mode 100644 index 00000000..acfa86d6 --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/small_galena_brick_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "createindustry:block/small_galena_brick_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "createindustry:block/small_galena_brick_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "createindustry:block/small_galena_brick_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "createindustry:block/small_galena_brick_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "createindustry:block/small_galena_brick_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "createindustry:block/small_galena_brick_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=inner_right": { + "model": "createindustry:block/small_galena_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=outer_left": { + "model": "createindustry:block/small_galena_brick_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=outer_right": { + "model": "createindustry:block/small_galena_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=straight": { + "model": "createindustry:block/small_galena_brick_stairs", + "uvlock": true, + "x": 180 + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "createindustry:block/small_galena_brick_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "createindustry:block/small_galena_brick_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "createindustry:block/small_galena_brick_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "createindustry:block/small_galena_brick_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=straight": { + "model": "createindustry:block/small_galena_brick_stairs", + "uvlock": true, + "y": 270 + }, + "facing=north,half=top,shape=inner_left": { + "model": "createindustry:block/small_galena_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=inner_right": { + "model": "createindustry:block/small_galena_brick_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=outer_left": { + "model": "createindustry:block/small_galena_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=outer_right": { + "model": "createindustry:block/small_galena_brick_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=straight": { + "model": "createindustry:block/small_galena_brick_stairs", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "createindustry:block/small_galena_brick_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "createindustry:block/small_galena_brick_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "createindustry:block/small_galena_brick_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "createindustry:block/small_galena_brick_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=straight": { + "model": "createindustry:block/small_galena_brick_stairs", + "uvlock": true, + "y": 90 + }, + "facing=south,half=top,shape=inner_left": { + "model": "createindustry:block/small_galena_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=inner_right": { + "model": "createindustry:block/small_galena_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=outer_left": { + "model": "createindustry:block/small_galena_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=outer_right": { + "model": "createindustry:block/small_galena_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=straight": { + "model": "createindustry:block/small_galena_brick_stairs", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "createindustry:block/small_galena_brick_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "createindustry:block/small_galena_brick_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "createindustry:block/small_galena_brick_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "createindustry:block/small_galena_brick_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=straight": { + "model": "createindustry:block/small_galena_brick_stairs", + "uvlock": true, + "y": 180 + }, + "facing=west,half=top,shape=inner_left": { + "model": "createindustry:block/small_galena_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=inner_right": { + "model": "createindustry:block/small_galena_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=outer_left": { + "model": "createindustry:block/small_galena_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=outer_right": { + "model": "createindustry:block/small_galena_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=straight": { + "model": "createindustry:block/small_galena_brick_stairs", + "uvlock": true, + "x": 180, + "y": 180 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/small_galena_brick_wall.json b/src/generated/resources/assets/createindustry/blockstates/small_galena_brick_wall.json new file mode 100644 index 00000000..8f6c0ea6 --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/small_galena_brick_wall.json @@ -0,0 +1,90 @@ +{ + "multipart": [ + { + "apply": { + "model": "createindustry:block/small_galena_bricks_wall_post" + }, + "when": { + "up": "true" + } + }, + { + "apply": { + "model": "createindustry:block/small_galena_bricks_wall_side", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "low" + } + }, + { + "apply": { + "model": "createindustry:block/small_galena_bricks_wall_side_tall", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "tall" + } + }, + { + "apply": { + "model": "createindustry:block/small_galena_bricks_wall_side", + "uvlock": true + }, + "when": { + "north": "low" + } + }, + { + "apply": { + "model": "createindustry:block/small_galena_bricks_wall_side_tall", + "uvlock": true + }, + "when": { + "north": "tall" + } + }, + { + "apply": { + "model": "createindustry:block/small_galena_bricks_wall_side", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "low" + } + }, + { + "apply": { + "model": "createindustry:block/small_galena_bricks_wall_side_tall", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "tall" + } + }, + { + "apply": { + "model": "createindustry:block/small_galena_bricks_wall_side", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "low" + } + }, + { + "apply": { + "model": "createindustry:block/small_galena_bricks_wall_side_tall", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "tall" + } + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/small_galena_bricks.json b/src/generated/resources/assets/createindustry/blockstates/small_galena_bricks.json new file mode 100644 index 00000000..907ba3dc --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/small_galena_bricks.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "createindustry:block/small_galena_bricks" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/stator.json b/src/generated/resources/assets/createindustry/blockstates/stator.json new file mode 100644 index 00000000..8dc85f22 --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/stator.json @@ -0,0 +1,138 @@ +{ + "variants": { + "facing=down,stator_state=corner,value=false": { + "model": "createindustry:block/stator/block_corner" + }, + "facing=down,stator_state=corner,value=true": { + "model": "createindustry:block/stator/block_corner_up" + }, + "facing=down,stator_state=side,value=false": { + "model": "createindustry:block/stator/block_side", + "x": 90 + }, + "facing=down,stator_state=side,value=true": { + "model": "createindustry:block/stator/block_side_rotated", + "x": 90 + }, + "facing=down,stator_state=unused,value=false": { + "model": "createindustry:block/stator/block_unused", + "x": 90 + }, + "facing=down,stator_state=unused,value=true": { + "model": "createindustry:block/stator/block_unused", + "x": 90 + }, + "facing=east,stator_state=corner,value=false": { + "model": "createindustry:block/stator/block_corner", + "y": 90 + }, + "facing=east,stator_state=corner,value=true": { + "model": "createindustry:block/stator/block_corner_up", + "y": 90 + }, + "facing=east,stator_state=side,value=false": { + "model": "createindustry:block/stator/block_side", + "y": 90 + }, + "facing=east,stator_state=side,value=true": { + "model": "createindustry:block/stator/block_side_rotated", + "y": 90 + }, + "facing=east,stator_state=unused,value=false": { + "model": "createindustry:block/stator/block_unused", + "y": 90 + }, + "facing=east,stator_state=unused,value=true": { + "model": "createindustry:block/stator/block_unused", + "y": 90 + }, + "facing=north,stator_state=corner,value=false": { + "model": "createindustry:block/stator/block_corner" + }, + "facing=north,stator_state=corner,value=true": { + "model": "createindustry:block/stator/block_corner_up" + }, + "facing=north,stator_state=side,value=false": { + "model": "createindustry:block/stator/block_side" + }, + "facing=north,stator_state=side,value=true": { + "model": "createindustry:block/stator/block_side_rotated" + }, + "facing=north,stator_state=unused,value=false": { + "model": "createindustry:block/stator/block_unused" + }, + "facing=north,stator_state=unused,value=true": { + "model": "createindustry:block/stator/block_unused" + }, + "facing=south,stator_state=corner,value=false": { + "model": "createindustry:block/stator/block_corner", + "y": 180 + }, + "facing=south,stator_state=corner,value=true": { + "model": "createindustry:block/stator/block_corner_up", + "y": 180 + }, + "facing=south,stator_state=side,value=false": { + "model": "createindustry:block/stator/block_side", + "y": 180 + }, + "facing=south,stator_state=side,value=true": { + "model": "createindustry:block/stator/block_side_rotated", + "y": 180 + }, + "facing=south,stator_state=unused,value=false": { + "model": "createindustry:block/stator/block_unused", + "y": 180 + }, + "facing=south,stator_state=unused,value=true": { + "model": "createindustry:block/stator/block_unused", + "y": 180 + }, + "facing=up,stator_state=corner,value=false": { + "model": "createindustry:block/stator/block_corner" + }, + "facing=up,stator_state=corner,value=true": { + "model": "createindustry:block/stator/block_corner_up" + }, + "facing=up,stator_state=side,value=false": { + "model": "createindustry:block/stator/block_side", + "x": 270 + }, + "facing=up,stator_state=side,value=true": { + "model": "createindustry:block/stator/block_side_rotated", + "x": 270 + }, + "facing=up,stator_state=unused,value=false": { + "model": "createindustry:block/stator/block_unused", + "x": 270 + }, + "facing=up,stator_state=unused,value=true": { + "model": "createindustry:block/stator/block_unused", + "x": 270 + }, + "facing=west,stator_state=corner,value=false": { + "model": "createindustry:block/stator/block_corner", + "y": 270 + }, + "facing=west,stator_state=corner,value=true": { + "model": "createindustry:block/stator/block_corner_up", + "y": 270 + }, + "facing=west,stator_state=side,value=false": { + "model": "createindustry:block/stator/block_side", + "y": 270 + }, + "facing=west,stator_state=side,value=true": { + "model": "createindustry:block/stator/block_side_rotated", + "y": 270 + }, + "facing=west,stator_state=unused,value=false": { + "model": "createindustry:block/stator/block_unused", + "y": 270 + }, + "facing=west,stator_state=unused,value=true": { + "model": "createindustry:block/stator/block_unused", + "y": 270 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/steel_cable_hub.json b/src/generated/resources/assets/createindustry/blockstates/steel_cable_hub.json new file mode 100644 index 00000000..ce629ccf --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/steel_cable_hub.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "createindustry:block/steel_cable_hub" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/steel_casing_cable_hub.json b/src/generated/resources/assets/createindustry/blockstates/steel_casing_cable_hub.json new file mode 100644 index 00000000..ded38227 --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/steel_casing_cable_hub.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "createindustry:block/steel_casing_cable_hub" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/steel_cogwheel.json b/src/generated/resources/assets/createindustry/blockstates/steel_cogwheel.json new file mode 100644 index 00000000..89bf193b --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/steel_cogwheel.json @@ -0,0 +1,17 @@ +{ + "variants": { + "axis=x": { + "model": "createindustry:block/steel_cogwheel", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "createindustry:block/steel_cogwheel" + }, + "axis=z": { + "model": "createindustry:block/steel_cogwheel", + "x": 90, + "y": 180 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/steel_encased_aluminum_cogwheel.json b/src/generated/resources/assets/createindustry/blockstates/steel_encased_aluminum_cogwheel.json new file mode 100644 index 00000000..870b4372 --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/steel_encased_aluminum_cogwheel.json @@ -0,0 +1,56 @@ +{ + "variants": { + "axis=x,bottom_shaft=false,top_shaft=false": { + "model": "createindustry:block/steel_encased_aluminum_cogwheel", + "x": 90, + "y": 90 + }, + "axis=x,bottom_shaft=false,top_shaft=true": { + "model": "createindustry:block/steel_encased_aluminum_cogwheel_top", + "x": 90, + "y": 90 + }, + "axis=x,bottom_shaft=true,top_shaft=false": { + "model": "createindustry:block/steel_encased_aluminum_cogwheel_bottom", + "x": 90, + "y": 90 + }, + "axis=x,bottom_shaft=true,top_shaft=true": { + "model": "createindustry:block/steel_encased_aluminum_cogwheel_top_bottom", + "x": 90, + "y": 90 + }, + "axis=y,bottom_shaft=false,top_shaft=false": { + "model": "createindustry:block/steel_encased_aluminum_cogwheel" + }, + "axis=y,bottom_shaft=false,top_shaft=true": { + "model": "createindustry:block/steel_encased_aluminum_cogwheel_top" + }, + "axis=y,bottom_shaft=true,top_shaft=false": { + "model": "createindustry:block/steel_encased_aluminum_cogwheel_bottom" + }, + "axis=y,bottom_shaft=true,top_shaft=true": { + "model": "createindustry:block/steel_encased_aluminum_cogwheel_top_bottom" + }, + "axis=z,bottom_shaft=false,top_shaft=false": { + "model": "createindustry:block/steel_encased_aluminum_cogwheel", + "x": 90, + "y": 180 + }, + "axis=z,bottom_shaft=false,top_shaft=true": { + "model": "createindustry:block/steel_encased_aluminum_cogwheel_top", + "x": 90, + "y": 180 + }, + "axis=z,bottom_shaft=true,top_shaft=false": { + "model": "createindustry:block/steel_encased_aluminum_cogwheel_bottom", + "x": 90, + "y": 180 + }, + "axis=z,bottom_shaft=true,top_shaft=true": { + "model": "createindustry:block/steel_encased_aluminum_cogwheel_top_bottom", + "x": 90, + "y": 180 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/steel_encased_cogwheel.json b/src/generated/resources/assets/createindustry/blockstates/steel_encased_cogwheel.json new file mode 100644 index 00000000..6006a082 --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/steel_encased_cogwheel.json @@ -0,0 +1,56 @@ +{ + "variants": { + "axis=x,bottom_shaft=false,top_shaft=false": { + "model": "createindustry:block/steel_encased_cogwheel", + "x": 90, + "y": 90 + }, + "axis=x,bottom_shaft=false,top_shaft=true": { + "model": "createindustry:block/steel_encased_cogwheel_top", + "x": 90, + "y": 90 + }, + "axis=x,bottom_shaft=true,top_shaft=false": { + "model": "createindustry:block/steel_encased_cogwheel_bottom", + "x": 90, + "y": 90 + }, + "axis=x,bottom_shaft=true,top_shaft=true": { + "model": "createindustry:block/steel_encased_cogwheel_top_bottom", + "x": 90, + "y": 90 + }, + "axis=y,bottom_shaft=false,top_shaft=false": { + "model": "createindustry:block/steel_encased_cogwheel" + }, + "axis=y,bottom_shaft=false,top_shaft=true": { + "model": "createindustry:block/steel_encased_cogwheel_top" + }, + "axis=y,bottom_shaft=true,top_shaft=false": { + "model": "createindustry:block/steel_encased_cogwheel_bottom" + }, + "axis=y,bottom_shaft=true,top_shaft=true": { + "model": "createindustry:block/steel_encased_cogwheel_top_bottom" + }, + "axis=z,bottom_shaft=false,top_shaft=false": { + "model": "createindustry:block/steel_encased_cogwheel", + "x": 90, + "y": 180 + }, + "axis=z,bottom_shaft=false,top_shaft=true": { + "model": "createindustry:block/steel_encased_cogwheel_top", + "x": 90, + "y": 180 + }, + "axis=z,bottom_shaft=true,top_shaft=false": { + "model": "createindustry:block/steel_encased_cogwheel_bottom", + "x": 90, + "y": 180 + }, + "axis=z,bottom_shaft=true,top_shaft=true": { + "model": "createindustry:block/steel_encased_cogwheel_top_bottom", + "x": 90, + "y": 180 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/steel_encased_large_aluminum_cogwheel.json b/src/generated/resources/assets/createindustry/blockstates/steel_encased_large_aluminum_cogwheel.json new file mode 100644 index 00000000..072d8ad7 --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/steel_encased_large_aluminum_cogwheel.json @@ -0,0 +1,56 @@ +{ + "variants": { + "axis=x,bottom_shaft=false,top_shaft=false": { + "model": "createindustry:block/steel_encased_large_aluminum_cogwheel", + "x": 90, + "y": 90 + }, + "axis=x,bottom_shaft=false,top_shaft=true": { + "model": "createindustry:block/steel_encased_large_aluminum_cogwheel_top", + "x": 90, + "y": 90 + }, + "axis=x,bottom_shaft=true,top_shaft=false": { + "model": "createindustry:block/steel_encased_large_aluminum_cogwheel_bottom", + "x": 90, + "y": 90 + }, + "axis=x,bottom_shaft=true,top_shaft=true": { + "model": "createindustry:block/steel_encased_large_aluminum_cogwheel_top_bottom", + "x": 90, + "y": 90 + }, + "axis=y,bottom_shaft=false,top_shaft=false": { + "model": "createindustry:block/steel_encased_large_aluminum_cogwheel" + }, + "axis=y,bottom_shaft=false,top_shaft=true": { + "model": "createindustry:block/steel_encased_large_aluminum_cogwheel_top" + }, + "axis=y,bottom_shaft=true,top_shaft=false": { + "model": "createindustry:block/steel_encased_large_aluminum_cogwheel_bottom" + }, + "axis=y,bottom_shaft=true,top_shaft=true": { + "model": "createindustry:block/steel_encased_large_aluminum_cogwheel_top_bottom" + }, + "axis=z,bottom_shaft=false,top_shaft=false": { + "model": "createindustry:block/steel_encased_large_aluminum_cogwheel", + "x": 90, + "y": 180 + }, + "axis=z,bottom_shaft=false,top_shaft=true": { + "model": "createindustry:block/steel_encased_large_aluminum_cogwheel_top", + "x": 90, + "y": 180 + }, + "axis=z,bottom_shaft=true,top_shaft=false": { + "model": "createindustry:block/steel_encased_large_aluminum_cogwheel_bottom", + "x": 90, + "y": 180 + }, + "axis=z,bottom_shaft=true,top_shaft=true": { + "model": "createindustry:block/steel_encased_large_aluminum_cogwheel_top_bottom", + "x": 90, + "y": 180 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/steel_encased_large_cogwheel.json b/src/generated/resources/assets/createindustry/blockstates/steel_encased_large_cogwheel.json new file mode 100644 index 00000000..768f7ad4 --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/steel_encased_large_cogwheel.json @@ -0,0 +1,56 @@ +{ + "variants": { + "axis=x,bottom_shaft=false,top_shaft=false": { + "model": "createindustry:block/steel_encased_large_cogwheel", + "x": 90, + "y": 90 + }, + "axis=x,bottom_shaft=false,top_shaft=true": { + "model": "createindustry:block/steel_encased_large_cogwheel_top", + "x": 90, + "y": 90 + }, + "axis=x,bottom_shaft=true,top_shaft=false": { + "model": "createindustry:block/steel_encased_large_cogwheel_bottom", + "x": 90, + "y": 90 + }, + "axis=x,bottom_shaft=true,top_shaft=true": { + "model": "createindustry:block/steel_encased_large_cogwheel_top_bottom", + "x": 90, + "y": 90 + }, + "axis=y,bottom_shaft=false,top_shaft=false": { + "model": "createindustry:block/steel_encased_large_cogwheel" + }, + "axis=y,bottom_shaft=false,top_shaft=true": { + "model": "createindustry:block/steel_encased_large_cogwheel_top" + }, + "axis=y,bottom_shaft=true,top_shaft=false": { + "model": "createindustry:block/steel_encased_large_cogwheel_bottom" + }, + "axis=y,bottom_shaft=true,top_shaft=true": { + "model": "createindustry:block/steel_encased_large_cogwheel_top_bottom" + }, + "axis=z,bottom_shaft=false,top_shaft=false": { + "model": "createindustry:block/steel_encased_large_cogwheel", + "x": 90, + "y": 180 + }, + "axis=z,bottom_shaft=false,top_shaft=true": { + "model": "createindustry:block/steel_encased_large_cogwheel_top", + "x": 90, + "y": 180 + }, + "axis=z,bottom_shaft=true,top_shaft=false": { + "model": "createindustry:block/steel_encased_large_cogwheel_bottom", + "x": 90, + "y": 180 + }, + "axis=z,bottom_shaft=true,top_shaft=true": { + "model": "createindustry:block/steel_encased_large_cogwheel_top_bottom", + "x": 90, + "y": 180 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/steel_encased_large_steel_cogwheel.json b/src/generated/resources/assets/createindustry/blockstates/steel_encased_large_steel_cogwheel.json new file mode 100644 index 00000000..4e03dc74 --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/steel_encased_large_steel_cogwheel.json @@ -0,0 +1,56 @@ +{ + "variants": { + "axis=x,bottom_shaft=false,top_shaft=false": { + "model": "createindustry:block/steel_encased_large_steel_cogwheel", + "x": 90, + "y": 90 + }, + "axis=x,bottom_shaft=false,top_shaft=true": { + "model": "createindustry:block/steel_encased_large_steel_cogwheel_top", + "x": 90, + "y": 90 + }, + "axis=x,bottom_shaft=true,top_shaft=false": { + "model": "createindustry:block/steel_encased_large_steel_cogwheel_bottom", + "x": 90, + "y": 90 + }, + "axis=x,bottom_shaft=true,top_shaft=true": { + "model": "createindustry:block/steel_encased_large_steel_cogwheel_top_bottom", + "x": 90, + "y": 90 + }, + "axis=y,bottom_shaft=false,top_shaft=false": { + "model": "createindustry:block/steel_encased_large_steel_cogwheel" + }, + "axis=y,bottom_shaft=false,top_shaft=true": { + "model": "createindustry:block/steel_encased_large_steel_cogwheel_top" + }, + "axis=y,bottom_shaft=true,top_shaft=false": { + "model": "createindustry:block/steel_encased_large_steel_cogwheel_bottom" + }, + "axis=y,bottom_shaft=true,top_shaft=true": { + "model": "createindustry:block/steel_encased_large_steel_cogwheel_top_bottom" + }, + "axis=z,bottom_shaft=false,top_shaft=false": { + "model": "createindustry:block/steel_encased_large_steel_cogwheel", + "x": 90, + "y": 180 + }, + "axis=z,bottom_shaft=false,top_shaft=true": { + "model": "createindustry:block/steel_encased_large_steel_cogwheel_top", + "x": 90, + "y": 180 + }, + "axis=z,bottom_shaft=true,top_shaft=false": { + "model": "createindustry:block/steel_encased_large_steel_cogwheel_bottom", + "x": 90, + "y": 180 + }, + "axis=z,bottom_shaft=true,top_shaft=true": { + "model": "createindustry:block/steel_encased_large_steel_cogwheel_top_bottom", + "x": 90, + "y": 180 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/steel_encased_shaft.json b/src/generated/resources/assets/createindustry/blockstates/steel_encased_shaft.json new file mode 100644 index 00000000..e11bb634 --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/steel_encased_shaft.json @@ -0,0 +1,20 @@ +{ + "variants": { + "axis=x": { + "model": "createindustry:block/encased_shaft/block_steel", + "uvlock": true, + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "createindustry:block/encased_shaft/block_steel", + "uvlock": true + }, + "axis=z": { + "model": "createindustry:block/encased_shaft/block_steel", + "uvlock": true, + "x": 90, + "y": 180 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/steel_encased_steel_cogwheel.json b/src/generated/resources/assets/createindustry/blockstates/steel_encased_steel_cogwheel.json new file mode 100644 index 00000000..786948ee --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/steel_encased_steel_cogwheel.json @@ -0,0 +1,56 @@ +{ + "variants": { + "axis=x,bottom_shaft=false,top_shaft=false": { + "model": "createindustry:block/steel_encased_steel_cogwheel", + "x": 90, + "y": 90 + }, + "axis=x,bottom_shaft=false,top_shaft=true": { + "model": "createindustry:block/steel_encased_steel_cogwheel_top", + "x": 90, + "y": 90 + }, + "axis=x,bottom_shaft=true,top_shaft=false": { + "model": "createindustry:block/steel_encased_steel_cogwheel_bottom", + "x": 90, + "y": 90 + }, + "axis=x,bottom_shaft=true,top_shaft=true": { + "model": "createindustry:block/steel_encased_steel_cogwheel_top_bottom", + "x": 90, + "y": 90 + }, + "axis=y,bottom_shaft=false,top_shaft=false": { + "model": "createindustry:block/steel_encased_steel_cogwheel" + }, + "axis=y,bottom_shaft=false,top_shaft=true": { + "model": "createindustry:block/steel_encased_steel_cogwheel_top" + }, + "axis=y,bottom_shaft=true,top_shaft=false": { + "model": "createindustry:block/steel_encased_steel_cogwheel_bottom" + }, + "axis=y,bottom_shaft=true,top_shaft=true": { + "model": "createindustry:block/steel_encased_steel_cogwheel_top_bottom" + }, + "axis=z,bottom_shaft=false,top_shaft=false": { + "model": "createindustry:block/steel_encased_steel_cogwheel", + "x": 90, + "y": 180 + }, + "axis=z,bottom_shaft=false,top_shaft=true": { + "model": "createindustry:block/steel_encased_steel_cogwheel_top", + "x": 90, + "y": 180 + }, + "axis=z,bottom_shaft=true,top_shaft=false": { + "model": "createindustry:block/steel_encased_steel_cogwheel_bottom", + "x": 90, + "y": 180 + }, + "axis=z,bottom_shaft=true,top_shaft=true": { + "model": "createindustry:block/steel_encased_steel_cogwheel_top_bottom", + "x": 90, + "y": 180 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/steel_gearbox.json b/src/generated/resources/assets/createindustry/blockstates/steel_gearbox.json new file mode 100644 index 00000000..e3f8b9e7 --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/steel_gearbox.json @@ -0,0 +1,20 @@ +{ + "variants": { + "axis=x": { + "model": "createindustry:block/steel_gearbox/block", + "uvlock": true, + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "createindustry:block/steel_gearbox/block", + "uvlock": true + }, + "axis=z": { + "model": "createindustry:block/steel_gearbox/block", + "uvlock": true, + "x": 90, + "y": 180 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/sulfuric_acid.json b/src/generated/resources/assets/createindustry/blockstates/sulfuric_acid.json new file mode 100644 index 00000000..a616a00d --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/sulfuric_acid.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "createindustry:block/sulfuric_acid" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/voltage_cube.json b/src/generated/resources/assets/createindustry/blockstates/voltage_cube.json new file mode 100644 index 00000000..617950d0 --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/voltage_cube.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "createindustry:block/voltage_cube" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/voltmeter.json b/src/generated/resources/assets/createindustry/blockstates/voltmeter.json new file mode 100644 index 00000000..688abc3d --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/voltmeter.json @@ -0,0 +1,19 @@ +{ + "variants": { + "facing=east": { + "model": "createindustry:block/voltmeter/block", + "y": 90 + }, + "facing=north": { + "model": "createindustry:block/voltmeter/block" + }, + "facing=south": { + "model": "createindustry:block/voltmeter/block", + "y": 180 + }, + "facing=west": { + "model": "createindustry:block/voltmeter/block", + "y": 270 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/white_caution_block.json b/src/generated/resources/assets/createindustry/blockstates/white_caution_block.json new file mode 100644 index 00000000..d8f4df49 --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/white_caution_block.json @@ -0,0 +1,19 @@ +{ + "variants": { + "facing=east": { + "model": "createindustry:block/white_caution_block", + "y": 90 + }, + "facing=north": { + "model": "createindustry:block/white_caution_block" + }, + "facing=south": { + "model": "createindustry:block/white_caution_block", + "y": 180 + }, + "facing=west": { + "model": "createindustry:block/white_caution_block", + "y": 270 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/yellow_caution_block.json b/src/generated/resources/assets/createindustry/blockstates/yellow_caution_block.json new file mode 100644 index 00000000..65c81551 --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/yellow_caution_block.json @@ -0,0 +1,19 @@ +{ + "variants": { + "facing=east": { + "model": "createindustry:block/yellow_caution_block", + "y": 90 + }, + "facing=north": { + "model": "createindustry:block/yellow_caution_block" + }, + "facing=south": { + "model": "createindustry:block/yellow_caution_block", + "y": 180 + }, + "facing=west": { + "model": "createindustry:block/yellow_caution_block", + "y": 270 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/zinc_frame.json b/src/generated/resources/assets/createindustry/blockstates/zinc_frame.json new file mode 100644 index 00000000..38a7a3e8 --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/zinc_frame.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "createindustry:block/zinc_frame/block" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/zinc_truss.json b/src/generated/resources/assets/createindustry/blockstates/zinc_truss.json new file mode 100644 index 00000000..7bfcb08c --- /dev/null +++ b/src/generated/resources/assets/createindustry/blockstates/zinc_truss.json @@ -0,0 +1,17 @@ +{ + "variants": { + "axis=x": { + "model": "createindustry:block/zinc_truss", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "createindustry:block/zinc_truss" + }, + "axis=z": { + "model": "createindustry:block/zinc_truss", + "x": 90, + "y": 180 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/lang/en_ud.json b/src/generated/resources/assets/createindustry/lang/en_ud.json new file mode 100644 index 00000000..0ba1b3f2 --- /dev/null +++ b/src/generated/resources/assets/createindustry/lang/en_ud.json @@ -0,0 +1,473 @@ +{ + "block.createindustry.accumulator": "ɹoʇɐןnɯnɔɔⱯ", + "block.createindustry.air_intake": "ǝʞɐʇuI ɹıⱯ", + "block.createindustry.aluminum_bars": "sɹɐᗺ ɯnuıɯnןⱯ", + "block.createindustry.aluminum_block": "ɯnuıɯnןⱯ ɟo ʞɔoןᗺ", + "block.createindustry.aluminum_cable_hub": "qnH ǝןqɐƆ ɯnuıɯnןⱯ", + "block.createindustry.aluminum_cogwheel": "ןǝǝɥʍboƆ ɯnuıɯnןⱯ", + "block.createindustry.aluminum_fluid_valve": "ǝʌןɐΛ pınןℲ ɯnuıɯnןⱯ", + "block.createindustry.aluminum_flywheel": "ןǝǝɥʍʎןℲ ɯnuıɯnןⱯ", + "block.createindustry.aluminum_frame": "ǝɯɐɹℲ ɯnuıɯnןⱯ", + "block.createindustry.aluminum_ladder": "ɹǝppɐꞀ ɯnuıɯnןⱯ", + "block.createindustry.aluminum_mechanical_pump": "dɯnԀ ןɐɔıuɐɥɔǝW ɯnuıɯnןⱯ", + "block.createindustry.aluminum_pipe": "ǝdıԀ ɯnuıɯnןⱯ", + "block.createindustry.aluminum_scaffolding": "buıpןoɟɟɐɔS ɯnuıɯnןⱯ", + "block.createindustry.aluminum_smart_fluid_pipe": "ǝdıԀ pınןℲ ʇɹɐɯS ɯnuıɯnןⱯ", + "block.createindustry.aluminum_truss": "ssnɹ⟘ ɯnuıɯnןⱯ", + "block.createindustry.asphalt": "ʇןɐɥdsⱯ", + "block.createindustry.bauxite": "ǝʇıxnɐᗺ", + "block.createindustry.bauxite_pillar": "ɹɐןןıԀ ǝʇıxnɐᗺ", + "block.createindustry.black_concrete": "ǝʇǝɹɔuoƆ ʞɔɐןᗺ", + "block.createindustry.black_concrete_slab": "qɐןS ǝʇǝɹɔuoƆ ʞɔɐןᗺ", + "block.createindustry.black_concrete_stairs": "sɹıɐʇS ǝʇǝɹɔuoƆ ʞɔɐןᗺ", + "block.createindustry.black_concrete_wall": "ןןɐM ǝʇǝɹɔuoƆ ʞɔɐןᗺ", + "block.createindustry.blast_furnace_output": "ʇndʇnO ǝɔɐuɹnℲ ʇsɐןᗺ", + "block.createindustry.blue_caution_block": "ʞɔoןᗺ uoıʇnɐƆ ǝnןᗺ", + "block.createindustry.blue_concrete": "ǝʇǝɹɔuoƆ ǝnןᗺ", + "block.createindustry.blue_concrete_slab": "qɐןS ǝʇǝɹɔuoƆ ǝnןᗺ", + "block.createindustry.blue_concrete_stairs": "sɹıɐʇS ǝʇǝɹɔuoƆ ǝnןᗺ", + "block.createindustry.blue_concrete_wall": "ןןɐM ǝʇǝɹɔuoƆ ǝnןᗺ", + "block.createindustry.brass_cable_hub": "qnH ǝןqɐƆ ssɐɹᗺ", + "block.createindustry.brass_fluid_valve": "ǝʌןɐΛ pınןℲ ssɐɹᗺ", + "block.createindustry.brass_frame": "ǝɯɐɹℲ ssɐɹᗺ", + "block.createindustry.brass_mechanical_pump": "dɯnԀ ןɐɔıuɐɥɔǝW ssɐɹᗺ", + "block.createindustry.brass_pipe": "ǝdıԀ ssɐɹᗺ", + "block.createindustry.brass_smart_fluid_pipe": "ǝdıԀ pınןℲ ʇɹɐɯS ssɐɹᗺ", + "block.createindustry.brass_truss": "ssnɹ⟘ ssɐɹᗺ", + "block.createindustry.brown_caution_block": "ʞɔoןᗺ uoıʇnɐƆ uʍoɹᗺ", + "block.createindustry.brown_concrete": "ǝʇǝɹɔuoƆ uʍoɹᗺ", + "block.createindustry.brown_concrete_slab": "qɐןS ǝʇǝɹɔuoƆ uʍoɹᗺ", + "block.createindustry.brown_concrete_stairs": "sɹıɐʇS ǝʇǝɹɔuoƆ uʍoɹᗺ", + "block.createindustry.brown_concrete_wall": "ןןɐM ǝʇǝɹɔuoƆ uʍoɹᗺ", + "block.createindustry.cable_connector": "ɹoʇɔǝuuoƆ ǝןqɐƆ", + "block.createindustry.cable_tube": "ǝqn⟘ ǝןqɐƆ", + "block.createindustry.capacitor": "ɹoʇıɔɐdɐƆ", + "block.createindustry.cast_iron_bars": "sɹɐᗺ uoɹI ʇsɐƆ", + "block.createindustry.cast_iron_block": "uoɹI ʇsɐƆ ɟo ʞɔoןᗺ", + "block.createindustry.cast_iron_fluid_valve": "ǝʌןɐΛ pınןℲ uoɹI ʇsɐƆ", + "block.createindustry.cast_iron_flywheel": "ןǝǝɥʍʎןℲ uoɹI ʇsɐƆ", + "block.createindustry.cast_iron_frame": "ǝɯɐɹℲ uoɹI ʇsɐƆ", + "block.createindustry.cast_iron_ladder": "ɹǝppɐꞀ uoɹI ʇsɐƆ", + "block.createindustry.cast_iron_mechanical_pump": "dɯnԀ ןɐɔıuɐɥɔǝW uoɹI ʇsɐƆ", + "block.createindustry.cast_iron_pipe": "ǝdıԀ uoɹI ʇsɐƆ", + "block.createindustry.cast_iron_smart_fluid_pipe": "ǝdıԀ pınןℲ ʇɹɐɯS uoɹI ʇsɐƆ", + "block.createindustry.cast_iron_truss": "ssnɹ⟘ uoɹI ʇsɐƆ", + "block.createindustry.casting_basin": "uısɐᗺ buıʇsɐƆ", + "block.createindustry.casting_spout": "ʇnodS buıʇsɐƆ", + "block.createindustry.cement": "ʇuǝɯǝƆ", + "block.createindustry.cinder_block": "ʞɔoןᗺ ɹǝpuıƆ", + "block.createindustry.cinderflour_block": "ʞɔoןᗺ ɹnoןɟɹǝpuıƆ", + "block.createindustry.coal_coke_block": "ǝʞoƆ ןɐoƆ ɟo ʞɔoןᗺ", + "block.createindustry.coke_oven": "uǝʌO ǝʞoƆ", + "block.createindustry.compact_engine": "ǝuıbuƎ ʇɔɐdɯoƆ", + "block.createindustry.concrete": "ǝʇǝɹɔuoƆ", + "block.createindustry.concrete_slab": "qɐןS ǝʇǝɹɔuoƆ", + "block.createindustry.concrete_stairs": "sɹıɐʇS ǝʇǝɹɔuoƆ", + "block.createindustry.concrete_wall": "ןןɐM ǝʇǝɹɔuoƆ", + "block.createindustry.converter": "ɹǝʇɹǝʌuoƆ", + "block.createindustry.cooling_fluid": "pınןℲ buıןooƆ", + "block.createindustry.copper_cable_hub": "qnH ǝןqɐƆ ɹǝddoƆ", + "block.createindustry.copper_coil": "ןıoƆ ɹǝddoƆ", + "block.createindustry.copper_encased_aluminum_pipe": "ǝdıԀ ɯnuıɯnןⱯ pǝsɐɔuƎ ɹǝddoƆ", + "block.createindustry.copper_encased_brass_pipe": "ǝdıԀ ssɐɹᗺ pǝsɐɔuƎ ɹǝddoƆ", + "block.createindustry.copper_encased_cast_iron_pipe": "ǝdıԀ uoɹI ʇsɐƆ pǝsɐɔuƎ ɹǝddoƆ", + "block.createindustry.copper_encased_plastic_pipe": "ǝdıԀ ɔıʇsɐןԀ pǝsɐɔuƎ ɹǝddoƆ", + "block.createindustry.copper_encased_steel_pipe": "ǝdıԀ ןǝǝʇS pǝsɐɔuƎ ɹǝddoƆ", + "block.createindustry.copper_frame": "ǝɯɐɹℲ ɹǝddoƆ", + "block.createindustry.copper_truss": "ssnɹ⟘ ɹǝddoƆ", + "block.createindustry.copycat_cable_base": "ǝsɐᗺ ǝןqɐƆ ʇɐɔʎdoƆ", + "block.createindustry.copycat_cable_block": "ʞɔoןᗺ ǝןqɐƆ ʇɐɔʎdoƆ", + "block.createindustry.creative_generator": "ɹoʇɐɹǝuǝ⅁ ǝʌıʇɐǝɹƆ", + "block.createindustry.creosote": "ǝʇosoǝɹƆ", + "block.createindustry.crude_oil": "ןıO ǝpnɹƆ", + "block.createindustry.cut_bauxite": "ǝʇıxnɐᗺ ʇnƆ", + "block.createindustry.cut_bauxite_brick_slab": "qɐןS ʞɔıɹᗺ ǝʇıxnɐᗺ ʇnƆ", + "block.createindustry.cut_bauxite_brick_stairs": "sɹıɐʇS ʞɔıɹᗺ ǝʇıxnɐᗺ ʇnƆ", + "block.createindustry.cut_bauxite_brick_wall": "ןןɐM ʞɔıɹᗺ ǝʇıxnɐᗺ ʇnƆ", + "block.createindustry.cut_bauxite_bricks": "sʞɔıɹᗺ ǝʇıxnɐᗺ ʇnƆ", + "block.createindustry.cut_bauxite_slab": "qɐןS ǝʇıxnɐᗺ ʇnƆ", + "block.createindustry.cut_bauxite_stairs": "sɹıɐʇS ǝʇıxnɐᗺ ʇnƆ", + "block.createindustry.cut_bauxite_wall": "ןןɐM ǝʇıxnɐᗺ ʇnƆ", + "block.createindustry.cut_galena": "ɐuǝןɐ⅁ ʇnƆ", + "block.createindustry.cut_galena_brick_slab": "qɐןS ʞɔıɹᗺ ɐuǝןɐ⅁ ʇnƆ", + "block.createindustry.cut_galena_brick_stairs": "sɹıɐʇS ʞɔıɹᗺ ɐuǝןɐ⅁ ʇnƆ", + "block.createindustry.cut_galena_brick_wall": "ןןɐM ʞɔıɹᗺ ɐuǝןɐ⅁ ʇnƆ", + "block.createindustry.cut_galena_bricks": "sʞɔıɹᗺ ɐuǝןɐ⅁ ʇnƆ", + "block.createindustry.cut_galena_slab": "qɐןS ɐuǝןɐ⅁ ʇnƆ", + "block.createindustry.cut_galena_stairs": "sɹıɐʇS ɐuǝןɐ⅁ ʇnƆ", + "block.createindustry.cut_galena_wall": "ןןɐM ɐuǝןɐ⅁ ʇnƆ", + "block.createindustry.cyan_caution_block": "ʞɔoןᗺ uoıʇnɐƆ uɐʎƆ", + "block.createindustry.cyan_concrete": "ǝʇǝɹɔuoƆ uɐʎƆ", + "block.createindustry.cyan_concrete_slab": "qɐןS ǝʇǝɹɔuoƆ uɐʎƆ", + "block.createindustry.cyan_concrete_stairs": "sɹıɐʇS ǝʇǝɹɔuoƆ uɐʎƆ", + "block.createindustry.cyan_concrete_wall": "ןןɐM ǝʇǝɹɔuoƆ uɐʎƆ", + "block.createindustry.deepslate_lead_ore": "ǝɹO pɐǝꞀ ǝʇɐןsdǝǝᗡ", + "block.createindustry.deepslate_lithium_ore": "ǝɹO ɯnıɥʇıꞀ ǝʇɐןsdǝǝᗡ", + "block.createindustry.deepslate_nickel_ore": "ǝɹO ןǝʞɔıN ǝʇɐןsdǝǝᗡ", + "block.createindustry.diagonal_cable_block": "ʞɔoןᗺ ǝןqɐƆ ןɐuobɐıᗡ", + "block.createindustry.diesel": "ןǝsǝıᗡ", + "block.createindustry.diesel_engine": "ǝuıbuƎ ןǝsǝıᗡ", + "block.createindustry.diesel_engine_expansion": "uoısuɐdxƎ ǝuıbuƎ ןǝsǝıᗡ", + "block.createindustry.electric_casing": "buısɐƆ ɔıɹʇɔǝןƎ", + "block.createindustry.electric_motor": "ɹoʇoW ɔıɹʇɔǝןƎ", + "block.createindustry.energy_meter": "ɹǝʇǝW ʎbɹǝuƎ", + "block.createindustry.exhaust": "ʇsnɐɥxƎ", + "block.createindustry.factory_floor": "ɹooןℲ ʎɹoʇɔɐℲ", + "block.createindustry.factory_floor_slab": "qɐןS ɹooןℲ ʎɹoʇɔɐℲ", + "block.createindustry.factory_floor_stairs": "sɹıɐʇS ɹooןℲ ʎɹoʇɔɐℲ", + "block.createindustry.firebox": "xoqǝɹıℲ", + "block.createindustry.fireclay": "ʎɐןɔǝɹıℲ", + "block.createindustry.fireproof_brick_reinforcement": "ʇuǝɯǝɔɹoɟuıǝᴚ ʞɔıɹᗺ ɟooɹdǝɹıℲ", + "block.createindustry.fireproof_bricks": "sʞɔıɹᗺ ɟooɹdǝɹıℲ", + "block.createindustry.flarestack": "ʞɔɐʇsǝɹɐןℲ", + "block.createindustry.formwork_block": "ʞɔoןᗺ ʞɹoʍɯɹoℲ", + "block.createindustry.fossilstone": "ǝuoʇsןıssoℲ", + "block.createindustry.galena": "ɐuǝןɐ⅁", + "block.createindustry.galena_pillar": "ɹɐןןıԀ ɐuǝןɐ⅁", + "block.createindustry.galvanic_cell": "ןןǝƆ ɔıuɐʌןɐ⅁", + "block.createindustry.gasoline": "ǝuıןosɐ⅁", + "block.createindustry.gasoline_engine": "ǝuıbuƎ ǝuıןosɐ⅁", + "block.createindustry.gasoline_engine_back": "ʞɔɐᗺ ǝuıbuƎ ǝuıןosɐ⅁", + "block.createindustry.generator": "ɹoʇɐɹǝuǝ⅁", + "block.createindustry.glass_aluminum_pipe": "ǝdıԀ ɯnuıɯnןⱯ ssɐן⅁", + "block.createindustry.glass_brass_pipe": "ǝdıԀ ssɐɹᗺ ssɐן⅁", + "block.createindustry.glass_cast_iron_pipe": "ǝdıԀ uoɹI ʇsɐƆ ssɐן⅁", + "block.createindustry.glass_plastic_pipe": "ǝdıԀ ɔıʇsɐןԀ ssɐן⅁", + "block.createindustry.glass_steel_pipe": "ǝdıԀ ןǝǝʇS ssɐן⅁", + "block.createindustry.gray_caution_block": "ʞɔoןᗺ uoıʇnɐƆ ʎɐɹ⅁", + "block.createindustry.gray_concrete": "ǝʇǝɹɔuoƆ ʎɐɹ⅁", + "block.createindustry.gray_concrete_slab": "qɐןS ǝʇǝɹɔuoƆ ʎɐɹ⅁", + "block.createindustry.gray_concrete_stairs": "sɹıɐʇS ǝʇǝɹɔuoƆ ʎɐɹ⅁", + "block.createindustry.gray_concrete_wall": "ןןɐM ǝʇǝɹɔuoƆ ʎɐɹ⅁", + "block.createindustry.green_caution_block": "ʞɔoןᗺ uoıʇnɐƆ uǝǝɹ⅁", + "block.createindustry.green_concrete": "ǝʇǝɹɔuoƆ uǝǝɹ⅁", + "block.createindustry.green_concrete_slab": "qɐןS ǝʇǝɹɔuoƆ uǝǝɹ⅁", + "block.createindustry.green_concrete_stairs": "sɹıɐʇS ǝʇǝɹɔuoƆ uǝǝɹ⅁", + "block.createindustry.green_concrete_wall": "ןןɐM ǝʇǝɹɔuoƆ uǝǝɹ⅁", + "block.createindustry.hardened_planks": "sʞuɐןԀ pǝuǝpɹɐH", + "block.createindustry.hardened_planks_slab": "qɐןS sʞuɐןԀ pǝuǝpɹɐH", + "block.createindustry.heavy_cable_hub": "qnH ǝןqɐƆ ʎʌɐǝH", + "block.createindustry.heavy_casing_door": "ɹooᗡ buısɐƆ ʎʌɐǝH", + "block.createindustry.heavy_casing_encased_aluminum_cogwheel": "ןǝǝɥʍboƆ ɯnuıɯnןⱯ pǝsɐɔuƎ buısɐƆ ʎʌɐǝH", + "block.createindustry.heavy_casing_encased_cogwheel": "ןǝǝɥʍboƆ pǝsɐɔuƎ buısɐƆ ʎʌɐǝH", + "block.createindustry.heavy_casing_encased_large_aluminum_cogwheel": "ןǝǝɥʍboƆ ɯnuıɯnןⱯ ǝbɹɐꞀ pǝsɐɔuƎ buısɐƆ ʎʌɐǝH", + "block.createindustry.heavy_casing_encased_large_cogwheel": "ןǝǝɥʍboƆ ǝbɹɐꞀ pǝsɐɔuƎ buısɐƆ ʎʌɐǝH", + "block.createindustry.heavy_casing_encased_large_steel_cogwheel": "ןǝǝɥʍboƆ ןǝǝʇS ǝbɹɐꞀ pǝsɐɔuƎ buısɐƆ ʎʌɐǝH", + "block.createindustry.heavy_casing_encased_shaft": "ʇɟɐɥS pǝsɐɔuƎ buısɐƆ ʎʌɐǝH", + "block.createindustry.heavy_casing_encased_steel_cogwheel": "ןǝǝɥʍboƆ ןǝǝʇS pǝsɐɔuƎ buısɐƆ ʎʌɐǝH", + "block.createindustry.heavy_machinery_casing": "buısɐƆ ʎɹǝuıɥɔɐW ʎʌɐǝH", + "block.createindustry.heavy_oil": "ןıO ʎʌɐǝH", + "block.createindustry.industrial_pipe": "ǝdıԀ ןɐıɹʇsnpuI", + "block.createindustry.kerosene": "ǝuǝsoɹǝʞ", + "block.createindustry.large_aluminum_cogwheel": "ןǝǝɥʍboƆ ɯnuıɯnןⱯ ǝbɹɐꞀ", + "block.createindustry.large_pumpjack_hammer_connector": "ɹoʇɔǝuuoƆ ɹǝɯɯɐH ʞɔɐظdɯnԀ ǝbɹɐꞀ", + "block.createindustry.large_pumpjack_hammer_head": "pɐǝH ɹǝɯɯɐH ʞɔɐظdɯnԀ ǝbɹɐꞀ", + "block.createindustry.large_pumpjack_hammer_part": "ʇɹɐԀ ɹǝɯɯɐH ʞɔɐظdɯnԀ ǝbɹɐꞀ", + "block.createindustry.large_radial_engine": "ǝuıbuƎ ןɐıpɐᴚ ǝbɹɐꞀ", + "block.createindustry.large_steel_cogwheel": "ןǝǝɥʍboƆ ןǝǝʇS ǝbɹɐꞀ", + "block.createindustry.layered_bauxite": "ǝʇıxnɐᗺ pǝɹǝʎɐꞀ", + "block.createindustry.layered_galena": "ɐuǝןɐ⅁ pǝɹǝʎɐꞀ", + "block.createindustry.lead_bars": "sɹɐᗺ pɐǝꞀ", + "block.createindustry.lead_block": "pɐǝꞀ ɟo ʞɔoןᗺ", + "block.createindustry.lead_flywheel": "ןǝǝɥʍʎןℲ pɐǝꞀ", + "block.createindustry.lead_frame": "ǝɯɐɹℲ pɐǝꞀ", + "block.createindustry.lead_glass": "ssɐן⅁ pɐǝꞀ", + "block.createindustry.lead_ladder": "ɹǝppɐǝꞀ", + "block.createindustry.lead_ore": "ǝɹO pɐǝꞀ", + "block.createindustry.lead_truss": "ssnɹ⟘ pɐǝꞀ", + "block.createindustry.light_blue_caution_block": "ʞɔoןᗺ uoıʇnɐƆ ǝnןᗺ ʇɥbıꞀ", + "block.createindustry.light_blue_concrete": "ǝʇǝɹɔuoƆ ǝnןᗺ ʇɥbıꞀ", + "block.createindustry.light_blue_concrete_slab": "qɐןS ǝʇǝɹɔuoƆ ǝnןᗺ ʇɥbıꞀ", + "block.createindustry.light_blue_concrete_stairs": "sɹıɐʇS ǝʇǝɹɔuoƆ ǝnןᗺ ʇɥbıꞀ", + "block.createindustry.light_blue_concrete_wall": "ןןɐM ǝʇǝɹɔuoƆ ǝnןᗺ ʇɥbıꞀ", + "block.createindustry.light_bulb": "qןnᗺ ʇɥbıꞀ", + "block.createindustry.light_gray_caution_block": "ʞɔoןᗺ uoıʇnɐƆ ʎɐɹ⅁ ʇɥbıꞀ", + "block.createindustry.light_gray_concrete": "ǝʇǝɹɔuoƆ ʎɐɹ⅁ ʇɥbıꞀ", + "block.createindustry.light_gray_concrete_slab": "qɐןS ǝʇǝɹɔuoƆ ʎɐɹ⅁ ʇɥbıꞀ", + "block.createindustry.light_gray_concrete_stairs": "sɹıɐʇS ǝʇǝɹɔuoƆ ʎɐɹ⅁ ʇɥbıꞀ", + "block.createindustry.light_gray_concrete_wall": "ןןɐM ǝʇǝɹɔuoƆ ʎɐɹ⅁ ʇɥbıꞀ", + "block.createindustry.lignite": "ǝʇıubıꞀ", + "block.createindustry.lime_caution_block": "ʞɔoןᗺ uoıʇnɐƆ ǝɯıꞀ", + "block.createindustry.lime_concrete": "ǝʇǝɹɔuoƆ ǝɯıꞀ", + "block.createindustry.lime_concrete_slab": "qɐןS ǝʇǝɹɔuoƆ ǝɯıꞀ", + "block.createindustry.lime_concrete_stairs": "sɹıɐʇS ǝʇǝɹɔuoƆ ǝɯıꞀ", + "block.createindustry.lime_concrete_wall": "ןןɐM ǝʇǝɹɔuoƆ ǝɯıꞀ", + "block.createindustry.liquid_asphalt": "ʇןɐɥdsⱯ pınbıꞀ", + "block.createindustry.liquid_concrete": "ǝʇǝɹɔuoƆ pınbıꞀ", + "block.createindustry.liquid_plastic": "ɔıʇsɐןԀ pınbıꞀ", + "block.createindustry.lithium_block": "ɯnıɥʇıꞀ ɟo ʞɔoןᗺ", + "block.createindustry.lithium_ore": "ǝɹO ɯnıɥʇıꞀ", + "block.createindustry.lithium_torch": "ɥɔɹo⟘ ɯnıɥʇıꞀ", + "block.createindustry.low_grade_fuel_engine": "ǝuıbuƎ ןǝnℲ ǝpɐɹ⅁ ʍoꞀ", + "block.createindustry.lpg_engine": "ǝuıbuƎ bdꞀ", + "block.createindustry.lpg_engine_back": "ʞɔɐᗺ ǝuıbuƎ bdꞀ", + "block.createindustry.lubrication_oil": "ןıO uoıʇɐɔıɹqnꞀ", + "block.createindustry.machine_input": "ʇnduI ǝuıɥɔɐW", + "block.createindustry.magenta_caution_block": "ʞɔoןᗺ uoıʇnɐƆ ɐʇuǝbɐW", + "block.createindustry.magenta_concrete": "ǝʇǝɹɔuoƆ ɐʇuǝbɐW", + "block.createindustry.magenta_concrete_slab": "qɐןS ǝʇǝɹɔuoƆ ɐʇuǝbɐW", + "block.createindustry.magenta_concrete_stairs": "sɹıɐʇS ǝʇǝɹɔuoƆ ɐʇuǝbɐW", + "block.createindustry.magenta_concrete_wall": "ןןɐM ǝʇǝɹɔuoƆ ɐʇuǝbɐW", + "block.createindustry.molten_metal": "ןɐʇǝW uǝʇןoW", + "block.createindustry.molten_slag": "bɐןS uǝʇןoW", + "block.createindustry.molten_steel": "ןǝǝʇS uǝʇןoW", + "block.createindustry.napalm": "ɯןɐdɐN", + "block.createindustry.napalm_bomb": "qɯoᗺ ɯןɐdɐN", + "block.createindustry.naphtha": "ɐɥʇɥdɐN", + "block.createindustry.neon_tube": "ǝqn⟘ uoǝN", + "block.createindustry.nickel_bars": "sɹɐᗺ ןǝʞɔıN", + "block.createindustry.nickel_block": "ןǝʞɔıN ɟo ʞɔoןᗺ", + "block.createindustry.nickel_flywheel": "ןǝǝɥʍʎןℲ ןǝʞɔıN", + "block.createindustry.nickel_frame": "ǝɯɐɹℲ ןǝʞɔıN", + "block.createindustry.nickel_ladder": "ɹǝppɐꞀ ןǝʞɔıN", + "block.createindustry.nickel_ore": "ǝɹO ןǝʞɔıN", + "block.createindustry.nickel_truss": "ssnɹ⟘ ןǝʞɔıN", + "block.createindustry.oil_deposit": "ʇısodǝᗡ ןıO", + "block.createindustry.orange_caution_block": "ʞɔoןᗺ uoıʇnɐƆ ǝbuɐɹO", + "block.createindustry.orange_concrete": "ǝʇǝɹɔuoƆ ǝbuɐɹO", + "block.createindustry.orange_concrete_slab": "qɐןS ǝʇǝɹɔuoƆ ǝbuɐɹO", + "block.createindustry.orange_concrete_stairs": "sɹıɐʇS ǝʇǝɹɔuoƆ ǝbuɐɹO", + "block.createindustry.orange_concrete_wall": "ןןɐM ǝʇǝɹɔuoƆ ǝbuɐɹO", + "block.createindustry.pink_caution_block": "ʞɔoןᗺ uoıʇnɐƆ ʞuıԀ", + "block.createindustry.pink_concrete": "ǝʇǝɹɔuoƆ ʞuıԀ", + "block.createindustry.pink_concrete_slab": "qɐןS ǝʇǝɹɔuoƆ ʞuıԀ", + "block.createindustry.pink_concrete_stairs": "sɹıɐʇS ǝʇǝɹɔuoƆ ʞuıԀ", + "block.createindustry.pink_concrete_wall": "ןןɐM ǝʇǝɹɔuoƆ ʞuıԀ", + "block.createindustry.plastic_block": "ɔıʇsɐןԀ ɟo ʞɔoןᗺ", + "block.createindustry.plastic_fluid_valve": "ǝʌןɐΛ pınןℲ ɔıʇsɐןԀ", + "block.createindustry.plastic_mechanical_pump": "dɯnԀ ןɐɔıuɐɥɔǝW ɔıʇsɐןԀ", + "block.createindustry.plastic_pipe": "ǝdıԀ ɔıʇsɐןԀ", + "block.createindustry.plastic_smart_fluid_pipe": "ǝdıԀ pınןℲ ʇɹɐɯS ɔıʇsɐןԀ", + "block.createindustry.polarizer": "ɹǝzıɹɐןoԀ", + "block.createindustry.polished_cut_bauxite": "ǝʇıxnɐᗺ ʇnƆ pǝɥsıןoԀ", + "block.createindustry.polished_cut_bauxite_slab": "qɐןS ǝʇıxnɐᗺ ʇnƆ pǝɥsıןoԀ", + "block.createindustry.polished_cut_bauxite_stairs": "sɹıɐʇS ǝʇıxnɐᗺ ʇnƆ pǝɥsıןoԀ", + "block.createindustry.polished_cut_bauxite_wall": "ןןɐM ǝʇıxnɐᗺ ʇnƆ pǝɥsıןoԀ", + "block.createindustry.polished_cut_galena": "ɐuǝןɐ⅁ ʇnƆ pǝɥsıןoԀ", + "block.createindustry.polished_cut_galena_slab": "qɐןS ɐuǝןɐ⅁ ʇnƆ pǝɥsıןoԀ", + "block.createindustry.polished_cut_galena_stairs": "sɹıɐʇS ɐuǝןɐ⅁ ʇnƆ pǝɥsıןoԀ", + "block.createindustry.polished_cut_galena_wall": "ןןɐM ɐuǝןɐ⅁ ʇnƆ pǝɥsıןoԀ", + "block.createindustry.pumpjack_base": "ǝsɐᗺ ʞɔɐظdɯnԀ", + "block.createindustry.pumpjack_crank": "ʞuɐɹƆ ʞɔɐظdɯnԀ", + "block.createindustry.pumpjack_hammer": "ɹǝpןoH ɹǝɯɯɐH ʞɔɐظdɯnԀ", + "block.createindustry.pumpjack_hammer_connector": "ɹoʇɔǝuuoƆ ɹǝɯɯɐH ʞɔɐظdɯnԀ", + "block.createindustry.pumpjack_hammer_head": "pɐǝH ɹǝɯɯɐH ʞɔɐظdɯnԀ", + "block.createindustry.pumpjack_hammer_part": "ʇɹɐԀ ɹǝɯɯɐH ʞɔɐظdɯnԀ", + "block.createindustry.purple_caution_block": "ʞɔoןᗺ uoıʇnɐƆ ǝןdɹnԀ", + "block.createindustry.purple_concrete": "ǝʇǝɹɔuoƆ ǝןdɹnԀ", + "block.createindustry.purple_concrete_slab": "qɐןS ǝʇǝɹɔuoƆ ǝןdɹnԀ", + "block.createindustry.purple_concrete_stairs": "sɹıɐʇS ǝʇǝɹɔuoƆ ǝןdɹnԀ", + "block.createindustry.purple_concrete_wall": "ןןɐM ǝʇǝɹɔuoƆ ǝןdɹnԀ", + "block.createindustry.radial_engine": "ǝuıbuƎ ןɐıpɐᴚ", + "block.createindustry.radial_engine_input": "ʇnduI ǝuıbuƎ ןɐıpɐᴚ", + "block.createindustry.radial_engine_input_ponder": "ɹǝpuoԀ ʇnduI ǝuıbuƎ ןɐıpɐᴚ", + "block.createindustry.rebar_concrete": "ǝʇǝɹɔuoƆ ɹɐqǝᴚ", + "block.createindustry.rebar_concrete_slab": "qɐןS ǝʇǝɹɔuoƆ ɹɐqǝᴚ", + "block.createindustry.rebar_concrete_stairs": "sɹıɐʇS ǝʇǝɹɔuoƆ ɹɐqǝᴚ", + "block.createindustry.rebar_concrete_wall": "ןןɐM ǝʇǝɹɔuoƆ ɹɐqǝᴚ", + "block.createindustry.rebar_formwork_block": "ʞɔoןᗺ ʞɹoʍɯɹoℲ ɹɐqǝᴚ", + "block.createindustry.red_caution_block": "ʞɔoןᗺ uoıʇnɐƆ pǝᴚ", + "block.createindustry.red_concrete": "ǝʇǝɹɔuoƆ pǝᴚ", + "block.createindustry.red_concrete_slab": "qɐןS ǝʇǝɹɔuoƆ pǝᴚ", + "block.createindustry.red_concrete_stairs": "sɹıɐʇS ǝʇǝɹɔuoƆ pǝᴚ", + "block.createindustry.red_concrete_wall": "ןןɐM ǝʇǝɹɔuoƆ pǝᴚ", + "block.createindustry.resistor": "ɹoʇsısǝᴚ", + "block.createindustry.rgb_light_bulb": "qןnᗺ ʇɥbıꞀ qbᴚ", + "block.createindustry.rotor": "ɹoʇoᴚ", + "block.createindustry.small_bauxite_brick_slab": "qɐןS ʞɔıɹᗺ ǝʇıxnɐᗺ ןןɐɯS", + "block.createindustry.small_bauxite_brick_stairs": "sɹıɐʇS ʞɔıɹᗺ ǝʇıxnɐᗺ ןןɐɯS", + "block.createindustry.small_bauxite_brick_wall": "ןןɐM ʞɔıɹᗺ ǝʇıxnɐᗺ ןןɐɯS", + "block.createindustry.small_bauxite_bricks": "sʞɔıɹᗺ ǝʇıxnɐᗺ ןןɐɯS", + "block.createindustry.small_galena_brick_slab": "qɐןS ʞɔıɹᗺ ɐuǝןɐ⅁ ןןɐɯS", + "block.createindustry.small_galena_brick_stairs": "sɹıɐʇS ʞɔıɹᗺ ɐuǝןɐ⅁ ןןɐɯS", + "block.createindustry.small_galena_brick_wall": "ןןɐM ʞɔıɹᗺ ɐuǝןɐ⅁ ןןɐɯS", + "block.createindustry.small_galena_bricks": "sʞɔıɹᗺ ɐuǝןɐ⅁ ןןɐɯS", + "block.createindustry.stator": "ɹoʇɐʇS", + "block.createindustry.steel_bars": "sɹɐᗺ ןǝǝʇS", + "block.createindustry.steel_block": "ןǝǝʇS ɟo ʞɔoןᗺ", + "block.createindustry.steel_cable_hub": "qnH ǝןqɐƆ ןǝǝʇS", + "block.createindustry.steel_casing": "buısɐƆ ןǝǝʇS", + "block.createindustry.steel_casing_cable_hub": "qnH ǝןqɐƆ buısɐƆ ןǝǝʇS", + "block.createindustry.steel_cogwheel": "ןǝǝɥʍboƆ ןǝǝʇS", + "block.createindustry.steel_distillation_controller": "ɹǝןןoɹʇuoƆ uoıʇɐןןıʇsıᗡ ןǝǝʇS", + "block.createindustry.steel_distillation_output": "ʇndʇnO uoıʇɐןןıʇsıᗡ ןǝǝʇS", + "block.createindustry.steel_door": "ɹooᗡ ןǝǝʇS", + "block.createindustry.steel_encased_aluminum_cogwheel": "ןǝǝɥʍboƆ ɯnuıɯnןⱯ pǝsɐɔuƎ ןǝǝʇS", + "block.createindustry.steel_encased_cogwheel": "ןǝǝɥʍboƆ pǝsɐɔuƎ ןǝǝʇS", + "block.createindustry.steel_encased_large_aluminum_cogwheel": "ןǝǝɥʍboƆ ɯnuıɯnןⱯ ǝbɹɐꞀ pǝsɐɔuƎ ןǝǝʇS", + "block.createindustry.steel_encased_large_cogwheel": "ןǝǝɥʍboƆ ǝbɹɐꞀ pǝsɐɔuƎ ןǝǝʇS", + "block.createindustry.steel_encased_large_steel_cogwheel": "ןǝǝɥʍboƆ ןǝǝʇS ǝbɹɐꞀ pǝsɐɔuƎ ןǝǝʇS", + "block.createindustry.steel_encased_shaft": "ʇɟɐɥS pǝsɐɔuƎ ןǝǝʇS", + "block.createindustry.steel_encased_steel_cogwheel": "ןǝǝɥʍboƆ ןǝǝʇS pǝsɐɔuƎ ןǝǝʇS", + "block.createindustry.steel_fluid_tank": "ʞuɐ⟘ pınןℲ ןǝǝʇS", + "block.createindustry.steel_fluid_valve": "ǝʌןɐΛ pınןℲ ןǝǝʇS", + "block.createindustry.steel_flywheel": "ןǝǝɥʍʎןℲ ןǝǝʇS", + "block.createindustry.steel_frame": "ǝɯɐɹℲ ןǝǝʇS", + "block.createindustry.steel_gearbox": "xoqɹɐǝ⅁ ןǝǝʇS", + "block.createindustry.steel_ladder": "ɹǝppɐꞀ ןǝǝʇS", + "block.createindustry.steel_mechanical_pump": "dɯnԀ ןɐɔıuɐɥɔǝW ןǝǝʇS", + "block.createindustry.steel_pipe": "ǝdıԀ ןǝǝʇS", + "block.createindustry.steel_scaffolding": "buıpןoɟɟɐɔS ןǝǝʇS", + "block.createindustry.steel_smart_fluid_pipe": "ǝdıԀ pınןℲ ʇɹɐɯS ןǝǝʇS", + "block.createindustry.steel_truss": "ssnɹ⟘ ןǝǝʇS", + "block.createindustry.sulfur": "ɹnɟןnS", + "block.createindustry.sulfuric_acid": "pıɔⱯ ɔıɹnɟןnS", + "block.createindustry.surface_scanner": "ɹǝuuɐɔS ǝɔɐɟɹnS", + "block.createindustry.turbine_engine": "ǝuıbuƎ ǝuıqɹn⟘", + "block.createindustry.turbine_engine_back": "ʞɔɐᗺ ǝuıbuƎ ǝuıqɹn⟘", + "block.createindustry.voltage_cube": "ǝqnƆ ǝbɐʇןoΛ", + "block.createindustry.voltmeter": "ɹǝʇǝɯʇןoΛ", + "block.createindustry.white_caution_block": "ʞɔoןᗺ uoıʇnɐƆ ǝʇıɥM", + "block.createindustry.white_concrete": "ǝʇǝɹɔuoƆ ǝʇıɥM", + "block.createindustry.white_concrete_slab": "qɐןS ǝʇǝɹɔuoƆ ǝʇıɥM", + "block.createindustry.white_concrete_stairs": "sɹıɐʇS ǝʇǝɹɔuoƆ ǝʇıɥM", + "block.createindustry.white_concrete_wall": "ןןɐM ǝʇǝɹɔuoƆ ǝʇıɥM", + "block.createindustry.yellow_caution_block": "ʞɔoןᗺ uoıʇnɐƆ ʍoןןǝʎ", + "block.createindustry.yellow_concrete": "ǝʇǝɹɔuoƆ ʍoןןǝʎ", + "block.createindustry.yellow_concrete_slab": "qɐןS ǝʇǝɹɔuoƆ ʍoןןǝʎ", + "block.createindustry.yellow_concrete_stairs": "sɹıɐʇS ǝʇǝɹɔuoƆ ʍoןןǝʎ", + "block.createindustry.yellow_concrete_wall": "ןןɐM ǝʇǝɹɔuoƆ ʍoןןǝʎ", + "block.createindustry.zinc_frame": "ǝɯɐɹℲ ɔuıZ", + "block.createindustry.zinc_truss": "ssnɹ⟘ ɔuıZ", + "entity.createindustry.blue_spark": "ʞɹɐdS ǝnןᗺ", + "entity.createindustry.copper_grenade": "ǝpɐuǝɹ⅁ ɹǝddoƆ", + "entity.createindustry.green_spark": "ʞɹɐdS uǝǝɹ⅁", + "entity.createindustry.lithium_spark": "ʞɹɐdS ɯnıɥʇıꞀ", + "entity.createindustry.napalm_bomb_entity": "ʎʇıʇuƎ qɯoᗺ ɯןɐdɐN", + "entity.createindustry.napalm_potato": "oʇɐʇoԀ ɯןɐdɐN", + "entity.createindustry.pipe_bomb": "qɯoᗺ ǝdıԀ", + "entity.createindustry.spark": "ʞɹɐdS", + "entity.createindustry.thermite_grenade": "ǝpɐuǝɹ⅁ ǝʇıɯɹǝɥ⟘", + "entity.createindustry.zinc_grenade": "ǝpɐuǝɹ⅁ ɔuıZ", + "fluid.createindustry.air": "ɹıⱯ", + "fluid.createindustry.butane": "ǝuɐʇnᗺ", + "fluid.createindustry.carbon_dioxide": "ǝpıxoıᗡ uoqɹɐƆ", + "fluid.createindustry.cooling_fluid": "pınןℲ buıןooƆ", + "fluid.createindustry.creosote": "ǝʇosoǝɹƆ", + "fluid.createindustry.crude_oil": "ןıO ǝpnɹƆ", + "fluid.createindustry.diesel": "ןǝsǝıᗡ", + "fluid.createindustry.ethylene": "ǝuǝןʎɥʇƎ", + "fluid.createindustry.gasoline": "ǝuıןosɐ⅁", + "fluid.createindustry.heavy_oil": "ןıO ʎʌɐǝH", + "fluid.createindustry.kerosene": "ǝuǝsoɹǝʞ", + "fluid.createindustry.liquid_asphalt": "ʇןɐɥdsⱯ pınbıꞀ", + "fluid.createindustry.liquid_concrete": "ǝʇǝɹɔuoƆ pınbıꞀ", + "fluid.createindustry.liquid_plastic": "ɔıʇsɐןԀ pınbıꞀ", + "fluid.createindustry.lpg": "bdꞀ", + "fluid.createindustry.lubrication_oil": "ןıO uoıʇɐɔıɹqnꞀ", + "fluid.createindustry.molten_slag": "bɐןS uǝʇןoW", + "fluid.createindustry.molten_steel": "ןǝǝʇS uǝʇןoW", + "fluid.createindustry.napalm": "ɯןɐdɐN", + "fluid.createindustry.naphtha": "ɐɥʇɥdɐN", + "fluid.createindustry.neon": "uoǝN", + "fluid.createindustry.propane": "ǝuɐdoɹԀ", + "fluid.createindustry.propylene": "ǝuǝןʎdoɹԀ", + "fluid.createindustry.sulfuric_acid": "pıɔⱯ ɔıɹnɟןnS", + "item.createindustry.advanced_potato_cannon": "uouuɐƆ oʇɐʇoԀ pǝɔuɐʌpⱯ", + "item.createindustry.air_bucket": "ʞuɐ⟘ ɹıⱯ", + "item.createindustry.aluminum_axe": "ǝxⱯ ɯnuıɯnןⱯ", + "item.createindustry.aluminum_hoe": "ǝoH ɯnuıɯnןⱯ", + "item.createindustry.aluminum_ingot": "ʇobuI ɯnuıɯnןⱯ", + "item.createindustry.aluminum_pickaxe": "ǝxɐʞɔıԀ ɯnuıɯnןⱯ", + "item.createindustry.aluminum_shovel": "ןǝʌoɥS ɯnuıɯnןⱯ", + "item.createindustry.aluminum_sword": "pɹoʍS ɯnuıɯnןⱯ", + "item.createindustry.aluminum_wire": "ǝɹıM ɯnuıɯnןⱯ", + "item.createindustry.bitumen": "uǝɯnʇıᗺ", + "item.createindustry.blasting_mixture": "ǝɹnʇxıW buıʇsɐןᗺ", + "item.createindustry.block_mold": "pןoW ʞɔoןᗺ", + "item.createindustry.bottle_of_battery_acid": "pıɔⱯ ʎɹǝʇʇɐᗺ ,o ǝןʇʇoᗺ", + "item.createindustry.bottle_of_concrete": "ǝʇǝɹɔuoƆ ɟO ǝןʇʇoᗺ", + "item.createindustry.butane_bucket": "ʞuɐ⟘ ǝuɐʇnᗺ", + "item.createindustry.capacitor_": "ɹoʇıɔɐdɐƆ", + "item.createindustry.carbon_dioxide_bucket": "ʞuɐ⟘ ǝpıxoıᗡ uoqɹɐƆ", + "item.createindustry.cast_iron_ingot": "ʇobuI uoɹI ʇsɐƆ", + "item.createindustry.cinderblock": "ʞɔoןqɹǝpuıƆ", + "item.createindustry.cinderflourblock": "ʞɔoןqɹnoןɟɹǝpuıƆ", + "item.createindustry.coal_coke": "ǝʞoƆ ןɐoƆ", + "item.createindustry.coal_coke_dust": "ʇsnᗡ ǝʞoƆ ןɐoƆ", + "item.createindustry.concrete_mixture": "ǝɹnʇxıW ǝʇǝɹɔuoƆ", + "item.createindustry.cooling_fluid_bucket": "ʇǝʞɔnᗺ pınןℲ buıןooƆ", + "item.createindustry.copper_cable": "ǝןqɐƆ ɹǝddoƆ", + "item.createindustry.copper_grenade": "ǝpɐuǝɹ⅁ ɹǝddoƆ", + "item.createindustry.copper_sulfate": "ǝʇɐɟןnS ɹǝddoƆ", + "item.createindustry.copper_wire": "ǝɹıM ɹǝddoƆ", + "item.createindustry.creosote_bucket": "ʇǝʞɔnᗺ ǝʇosoǝɹƆ", + "item.createindustry.crude_oil_bucket": "ʇǝʞɔnᗺ ןıO ǝpnɹƆ", + "item.createindustry.diesel_bucket": "ʇǝʞɔnᗺ ןǝsǝıᗡ", + "item.createindustry.engine_base": "ǝsɐᗺ ǝuıbuƎ", + "item.createindustry.engine_chamber": "ɹǝqɯɐɥƆ ǝuıbuƎ", + "item.createindustry.ethylene_bucket": "ʞuɐ⟘ ǝuǝןʎɥʇƎ", + "item.createindustry.fireclay_ball": "ןןɐᗺ ʎɐןɔǝɹıℲ", + "item.createindustry.fireproof_brick": "ʞɔıɹᗺ ɟooɹdǝɹıℲ", + "item.createindustry.flamethrower": "ɹǝʍoɹɥʇǝɯɐןℲ", + "item.createindustry.gasoline_bucket": "ʇǝʞɔnᗺ ǝuıןosɐ⅁", + "item.createindustry.heavy_oil_bucket": "ʇǝʞɔnᗺ ןıO ʎʌɐǝH", + "item.createindustry.heavy_plate": "ǝʇɐןԀ ʎʌɐǝH", + "item.createindustry.ingot_mold": "pןoW ʇobuI", + "item.createindustry.kerosene_bucket": "ʇǝʞɔnᗺ ǝuǝsoɹǝʞ", + "item.createindustry.lead_axe": "ǝxⱯ pɐǝꞀ", + "item.createindustry.lead_hoe": "ǝoH pɐǝꞀ", + "item.createindustry.lead_ingot": "ʇobuI pɐǝꞀ", + "item.createindustry.lead_pickaxe": "ǝxɐʞɔıԀ pɐǝꞀ", + "item.createindustry.lead_shovel": "ןǝʌoɥS pɐǝꞀ", + "item.createindustry.lead_sword": "pɹoʍS pɐǝꞀ", + "item.createindustry.limesand": "puɐsǝɯıꞀ", + "item.createindustry.liquid_asphalt_bucket": "ʇǝʞɔnᗺ ʇןɐɥdsⱯ pınbıꞀ", + "item.createindustry.liquid_concrete_bucket": "ʇǝʞɔnᗺ ǝʇǝɹɔuoƆ pınbıꞀ", + "item.createindustry.liquid_plastic_bucket": "ʇǝʞɔnᗺ ɔıʇsɐןԀ pınbıꞀ", + "item.createindustry.lit_lithium_blade": "ǝpɐןᗺ ɯnıɥʇıꞀ", + "item.createindustry.lithium_blade": "ǝpɐןᗺ ɯnıɥʇıꞀ", + "item.createindustry.lithium_charge": "ǝbɹɐɥƆ ɯnıɥʇıꞀ", + "item.createindustry.lithium_ingot": "ʇobuI ɯnıɥʇıꞀ", + "item.createindustry.lpg_bucket": "ʞuɐ⟘ bdꞀ", + "item.createindustry.lubrication_oil_bucket": "ʇǝʞɔnᗺ ןıO uoıʇɐɔıɹqnꞀ", + "item.createindustry.magnetic_ingot": "ʇobuI ɔıʇǝubɐW", + "item.createindustry.molten_slag_bucket": "ʇǝʞɔnᗺ bɐןS uǝʇןoW", + "item.createindustry.molten_steel_bucket": "ʇǝʞɔnᗺ ןǝǝʇS uǝʇןoW", + "item.createindustry.napalm_bucket": "ʇǝʞɔnᗺ ɯןɐdɐN", + "item.createindustry.napalm_potato": "oʇɐʇoԀ ɯןɐdɐN", + "item.createindustry.naphtha_bucket": "ʇǝʞɔnᗺ ɐɥʇɥdɐN", + "item.createindustry.neon_bucket": "ʞuɐ⟘ uoǝN", + "item.createindustry.nickel_ingot": "ʇobuI ןǝʞɔıN", + "item.createindustry.nitrate_dust": "ʇsnᗡ ǝʇɐɹʇıN", + "item.createindustry.pipe_bomb": "qɯoᗺ ǝdıԀ", + "item.createindustry.plastic_sheet": "ʇǝǝɥS ɔıʇsɐןԀ", + "item.createindustry.propane_bucket": "ʞuɐ⟘ ǝuɐdoɹԀ", + "item.createindustry.propylene_bucket": "ʞuɐ⟘ ǝuǝןʎdoɹԀ", + "item.createindustry.quad_potato_cannon": "uouuɐƆ oʇɐʇoԀ pɐnὉ", + "item.createindustry.raw_lead": "pɐǝꞀ ʍɐᴚ", + "item.createindustry.raw_lithium": "ɯnıɥʇıꞀ ʍɐᴚ", + "item.createindustry.raw_nickel": "ןǝʞɔıN ʍɐᴚ", + "item.createindustry.rebar": "ɹɐqǝᴚ", + "item.createindustry.resistor_": "ɹoʇsısǝᴚ", + "item.createindustry.screw": "ʍǝɹɔS", + "item.createindustry.screwdriver": "ɹǝʌıɹpʍǝɹɔS", + "item.createindustry.slag": "bɐןS", + "item.createindustry.spark_plug": "bnןԀ ʞɹɐdS", + "item.createindustry.steel_axe": "ǝxⱯ ןǝǝʇS", + "item.createindustry.steel_boots": "sʇooᗺ ןǝǝʇS", + "item.createindustry.steel_chestplate": "ǝʇɐןdʇsǝɥƆ ןǝǝʇS", + "item.createindustry.steel_helmet": "ʇǝɯןǝH ןǝǝʇS", + "item.createindustry.steel_hoe": "ǝoH ןǝǝʇS", + "item.createindustry.steel_ingot": "ʇobuI ןǝǝʇS", + "item.createindustry.steel_leggings": "sbuıbbǝꞀ ןǝǝʇS", + "item.createindustry.steel_mechanism": "ɯsıuɐɥɔǝW ןǝǝʇS", + "item.createindustry.steel_pickaxe": "ǝxɐʞɔıԀ ןǝǝʇS", + "item.createindustry.steel_shovel": "ןǝʌoɥS ןǝǝʇS", + "item.createindustry.steel_sword": "pɹoʍS ןǝǝʇS", + "item.createindustry.steel_vertical_gearbox": "xoqɹɐǝ⅁ ןɐɔıʇɹǝΛ ןǝǝʇS", + "item.createindustry.sulfur_dust": "ʇsnᗡ ɹnɟןnS", + "item.createindustry.sulfuric_acid_bucket": "ʇǝʞɔnᗺ pıɔⱯ ɔıɹnɟןnS", + "item.createindustry.synthetic_leather": "ɹǝɥʇɐǝꞀ ɔıʇǝɥʇuʎS", + "item.createindustry.synthetic_string": "buıɹʇS ɔıʇǝɥʇuʎS", + "item.createindustry.thermite_grenade": "ǝpɐuǝɹ⅁ ǝʇıɯɹǝɥ⟘", + "item.createindustry.thermite_powder": "ɹǝpʍoԀ ǝʇıɯɹǝɥ⟘", + "item.createindustry.turbine_blade": "ǝpɐןᗺ ǝuıqɹn⟘", + "item.createindustry.unfinished_gasoline_engine": "ǝuıbuƎ ǝuıןosɐ⅁ pǝɥsıuıɟu∩", + "item.createindustry.unfinished_lpg_engine": "ǝuıbuƎ bdꞀ pǝɥsıuıɟu∩", + "item.createindustry.unfinished_steel_mechanism": "ɯsıuɐɥɔǝW ןǝǝʇS pǝɥsıuıɟu∩", + "item.createindustry.unfinished_turbine_engine": "ǝuıbuƎ ǝuıqɹn⟘ pǝɥsıuıɟu∩", + "item.createindustry.unprocessed_heavy_plate": "ǝʇɐןԀ ʎʌɐǝH pǝssǝɔoɹdu∩", + "item.createindustry.zinc_grenade": "ǝpɐuǝɹ⅁ ɔuıZ", + "item.createindustry.zinc_sulfate": "ǝʇɐɟןnS ɔuıZ" +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/lang/en_us.json b/src/generated/resources/assets/createindustry/lang/en_us.json new file mode 100644 index 00000000..c4136ac3 --- /dev/null +++ b/src/generated/resources/assets/createindustry/lang/en_us.json @@ -0,0 +1,1064 @@ +{ + + "_": "->------------------------] Game Elements [------------------------<-", + + "block.createindustry.accumulator": "Accumulator", + "block.createindustry.air_intake": "Air Intake", + "block.createindustry.aluminum_bars": "Aluminum Bars", + "block.createindustry.aluminum_block": "Block of Aluminum", + "block.createindustry.aluminum_cable_hub": "Aluminum Cable Hub", + "block.createindustry.aluminum_cogwheel": "Aluminum Cogwheel", + "block.createindustry.aluminum_fluid_valve": "Aluminum Fluid Valve", + "block.createindustry.aluminum_flywheel": "Aluminum Flywheel", + "block.createindustry.aluminum_frame": "Aluminum Frame", + "block.createindustry.aluminum_ladder": "Aluminum Ladder", + "block.createindustry.aluminum_mechanical_pump": "Aluminum Mechanical Pump", + "block.createindustry.aluminum_pipe": "Aluminum Pipe", + "block.createindustry.aluminum_scaffolding": "Aluminum Scaffolding", + "block.createindustry.aluminum_smart_fluid_pipe": "Aluminum Smart Fluid Pipe", + "block.createindustry.aluminum_truss": "Aluminum Truss", + "block.createindustry.asphalt": "Asphalt", + "block.createindustry.bauxite": "Bauxite", + "block.createindustry.bauxite_pillar": "Bauxite Pillar", + "block.createindustry.black_concrete": "Black Concrete", + "block.createindustry.black_concrete_slab": "Black Concrete Slab", + "block.createindustry.black_concrete_stairs": "Black Concrete Stairs", + "block.createindustry.black_concrete_wall": "Black Concrete Wall", + "block.createindustry.blast_furnace_output": "Blast Furnace Output", + "block.createindustry.blue_caution_block": "Blue Caution Block", + "block.createindustry.blue_concrete": "Blue Concrete", + "block.createindustry.blue_concrete_slab": "Blue Concrete Slab", + "block.createindustry.blue_concrete_stairs": "Blue Concrete Stairs", + "block.createindustry.blue_concrete_wall": "Blue Concrete Wall", + "block.createindustry.brass_cable_hub": "Brass Cable Hub", + "block.createindustry.brass_fluid_valve": "Brass Fluid Valve", + "block.createindustry.brass_frame": "Brass Frame", + "block.createindustry.brass_mechanical_pump": "Brass Mechanical Pump", + "block.createindustry.brass_pipe": "Brass Pipe", + "block.createindustry.brass_smart_fluid_pipe": "Brass Smart Fluid Pipe", + "block.createindustry.brass_truss": "Brass Truss", + "block.createindustry.brown_caution_block": "Brown Caution Block", + "block.createindustry.brown_concrete": "Brown Concrete", + "block.createindustry.brown_concrete_slab": "Brown Concrete Slab", + "block.createindustry.brown_concrete_stairs": "Brown Concrete Stairs", + "block.createindustry.brown_concrete_wall": "Brown Concrete Wall", + "block.createindustry.cable_connector": "Cable Connector", + "block.createindustry.cable_tube": "Cable Tube", + "block.createindustry.capacitor": "Capacitor", + "block.createindustry.cast_iron_bars": "Cast Iron Bars", + "block.createindustry.cast_iron_block": "Block of Cast Iron", + "block.createindustry.cast_iron_fluid_valve": "Cast Iron Fluid Valve", + "block.createindustry.cast_iron_flywheel": "Cast Iron Flywheel", + "block.createindustry.cast_iron_frame": "Cast Iron Frame", + "block.createindustry.cast_iron_ladder": "Cast Iron Ladder", + "block.createindustry.cast_iron_mechanical_pump": "Cast Iron Mechanical Pump", + "block.createindustry.cast_iron_pipe": "Cast Iron Pipe", + "block.createindustry.cast_iron_smart_fluid_pipe": "Cast Iron Smart Fluid Pipe", + "block.createindustry.cast_iron_truss": "Cast Iron Truss", + "block.createindustry.casting_basin": "Casting Basin", + "block.createindustry.casting_spout": "Casting Spout", + "block.createindustry.cement": "Cement", + "block.createindustry.cinder_block": "Cinder Block", + "block.createindustry.cinderflour_block": "Cinderflour Block", + "block.createindustry.coal_coke_block": "Block of Coal Coke", + "block.createindustry.coke_oven": "Coke Oven", + "block.createindustry.compact_engine": "Compact Engine", + "block.createindustry.concrete": "Concrete", + "block.createindustry.concrete_slab": "Concrete Slab", + "block.createindustry.concrete_stairs": "Concrete Stairs", + "block.createindustry.concrete_wall": "Concrete Wall", + "block.createindustry.converter": "Converter", + "block.createindustry.cooling_fluid": "Cooling Fluid", + "block.createindustry.copper_cable_hub": "Copper Cable Hub", + "block.createindustry.copper_coil": "Copper Coil", + "block.createindustry.copper_encased_aluminum_pipe": "Copper Encased Aluminum Pipe", + "block.createindustry.copper_encased_brass_pipe": "Copper Encased Brass Pipe", + "block.createindustry.copper_encased_cast_iron_pipe": "Copper Encased Cast Iron Pipe", + "block.createindustry.copper_encased_plastic_pipe": "Copper Encased Plastic Pipe", + "block.createindustry.copper_encased_steel_pipe": "Copper Encased Steel Pipe", + "block.createindustry.copper_frame": "Copper Frame", + "block.createindustry.copper_truss": "Copper Truss", + "block.createindustry.copycat_cable_base": "Copycat Cable Base", + "block.createindustry.copycat_cable_block": "Copycat Cable Block", + "block.createindustry.creative_generator": "Creative Generator", + "block.createindustry.creosote": "Creosote", + "block.createindustry.crude_oil": "Crude Oil", + "block.createindustry.cut_bauxite": "Cut Bauxite", + "block.createindustry.cut_bauxite_brick_slab": "Cut Bauxite Brick Slab", + "block.createindustry.cut_bauxite_brick_stairs": "Cut Bauxite Brick Stairs", + "block.createindustry.cut_bauxite_brick_wall": "Cut Bauxite Brick Wall", + "block.createindustry.cut_bauxite_bricks": "Cut Bauxite Bricks", + "block.createindustry.cut_bauxite_slab": "Cut Bauxite Slab", + "block.createindustry.cut_bauxite_stairs": "Cut Bauxite Stairs", + "block.createindustry.cut_bauxite_wall": "Cut Bauxite Wall", + "block.createindustry.cut_galena": "Cut Galena", + "block.createindustry.cut_galena_brick_slab": "Cut Galena Brick Slab", + "block.createindustry.cut_galena_brick_stairs": "Cut Galena Brick Stairs", + "block.createindustry.cut_galena_brick_wall": "Cut Galena Brick Wall", + "block.createindustry.cut_galena_bricks": "Cut Galena Bricks", + "block.createindustry.cut_galena_slab": "Cut Galena Slab", + "block.createindustry.cut_galena_stairs": "Cut Galena Stairs", + "block.createindustry.cut_galena_wall": "Cut Galena Wall", + "block.createindustry.cyan_caution_block": "Cyan Caution Block", + "block.createindustry.cyan_concrete": "Cyan Concrete", + "block.createindustry.cyan_concrete_slab": "Cyan Concrete Slab", + "block.createindustry.cyan_concrete_stairs": "Cyan Concrete Stairs", + "block.createindustry.cyan_concrete_wall": "Cyan Concrete Wall", + "block.createindustry.deepslate_lead_ore": "Deepslate Lead Ore", + "block.createindustry.deepslate_lithium_ore": "Deepslate Lithium Ore", + "block.createindustry.deepslate_nickel_ore": "Deepslate Nickel Ore", + "block.createindustry.diagonal_cable_block": "Diagonal Cable Block", + "block.createindustry.diesel": "Diesel", + "block.createindustry.diesel_engine": "Diesel Engine", + "block.createindustry.diesel_engine_expansion": "Diesel Engine Expansion", + "block.createindustry.electric_casing": "Electric Casing", + "block.createindustry.electric_motor": "Electric Motor", + "block.createindustry.energy_meter": "Energy Meter", + "block.createindustry.exhaust": "Exhaust", + "block.createindustry.factory_floor": "Factory Floor", + "block.createindustry.factory_floor_slab": "Factory Floor Slab", + "block.createindustry.factory_floor_stairs": "Factory Floor Stairs", + "block.createindustry.firebox": "Firebox", + "block.createindustry.fireclay": "Fireclay", + "block.createindustry.fireproof_brick_reinforcement": "Fireproof Brick Reinforcement", + "block.createindustry.fireproof_bricks": "Fireproof Bricks", + "block.createindustry.flarestack": "Flarestack", + "block.createindustry.formwork_block": "Formwork Block", + "block.createindustry.fossilstone": "Fossilstone", + "block.createindustry.galena": "Galena", + "block.createindustry.galena_pillar": "Galena Pillar", + "block.createindustry.galvanic_cell": "Galvanic Cell", + "block.createindustry.gasoline": "Gasoline", + "block.createindustry.gasoline_engine": "Gasoline Engine", + "block.createindustry.gasoline_engine_back": "Gasoline Engine Back", + "block.createindustry.generator": "Generator", + "block.createindustry.glass_aluminum_pipe": "Glass Aluminum Pipe", + "block.createindustry.glass_brass_pipe": "Glass Brass Pipe", + "block.createindustry.glass_cast_iron_pipe": "Glass Cast Iron Pipe", + "block.createindustry.glass_plastic_pipe": "Glass Plastic Pipe", + "block.createindustry.glass_steel_pipe": "Glass Steel Pipe", + "block.createindustry.gray_caution_block": "Gray Caution Block", + "block.createindustry.gray_concrete": "Gray Concrete", + "block.createindustry.gray_concrete_slab": "Gray Concrete Slab", + "block.createindustry.gray_concrete_stairs": "Gray Concrete Stairs", + "block.createindustry.gray_concrete_wall": "Gray Concrete Wall", + "block.createindustry.green_caution_block": "Green Caution Block", + "block.createindustry.green_concrete": "Green Concrete", + "block.createindustry.green_concrete_slab": "Green Concrete Slab", + "block.createindustry.green_concrete_stairs": "Green Concrete Stairs", + "block.createindustry.green_concrete_wall": "Green Concrete Wall", + "block.createindustry.hardened_planks": "Hardened Planks", + "block.createindustry.hardened_planks_slab": "Hardened Planks Slab", + "block.createindustry.heavy_cable_hub": "Heavy Cable Hub", + "block.createindustry.heavy_casing_door": "Heavy Casing Door", + "block.createindustry.heavy_casing_encased_aluminum_cogwheel": "Heavy Casing Encased Aluminum Cogwheel", + "block.createindustry.heavy_casing_encased_cogwheel": "Heavy Casing Encased Cogwheel", + "block.createindustry.heavy_casing_encased_large_aluminum_cogwheel": "Heavy Casing Encased Large Aluminum Cogwheel", + "block.createindustry.heavy_casing_encased_large_cogwheel": "Heavy Casing Encased Large Cogwheel", + "block.createindustry.heavy_casing_encased_large_steel_cogwheel": "Heavy Casing Encased Large Steel Cogwheel", + "block.createindustry.heavy_casing_encased_shaft": "Heavy Casing Encased Shaft", + "block.createindustry.heavy_casing_encased_steel_cogwheel": "Heavy Casing Encased Steel Cogwheel", + "block.createindustry.heavy_machinery_casing": "Heavy Machinery Casing", + "block.createindustry.heavy_oil": "Heavy Oil", + "block.createindustry.industrial_pipe": "Industrial Pipe", + "block.createindustry.kerosene": "Kerosene", + "block.createindustry.large_aluminum_cogwheel": "Large Aluminum Cogwheel", + "block.createindustry.large_pumpjack_hammer_connector": "Large Pumpjack Hammer Connector", + "block.createindustry.large_pumpjack_hammer_head": "Large Pumpjack Hammer Head", + "block.createindustry.large_pumpjack_hammer_part": "Large Pumpjack Hammer Part", + "block.createindustry.large_radial_engine": "Large Radial Engine", + "block.createindustry.large_steel_cogwheel": "Large Steel Cogwheel", + "block.createindustry.layered_bauxite": "Layered Bauxite", + "block.createindustry.layered_galena": "Layered Galena", + "block.createindustry.lead_bars": "Lead Bars", + "block.createindustry.lead_block": "Block of Lead", + "block.createindustry.lead_flywheel": "Lead Flywheel", + "block.createindustry.lead_frame": "Lead Frame", + "block.createindustry.lead_glass": "Lead Glass", + "block.createindustry.lead_ladder": "Leadder", + "block.createindustry.lead_ore": "Lead Ore", + "block.createindustry.lead_truss": "Lead Truss", + "block.createindustry.light_blue_caution_block": "Light Blue Caution Block", + "block.createindustry.light_blue_concrete": "Light Blue Concrete", + "block.createindustry.light_blue_concrete_slab": "Light Blue Concrete Slab", + "block.createindustry.light_blue_concrete_stairs": "Light Blue Concrete Stairs", + "block.createindustry.light_blue_concrete_wall": "Light Blue Concrete Wall", + "block.createindustry.light_bulb": "Light Bulb", + "block.createindustry.light_gray_caution_block": "Light Gray Caution Block", + "block.createindustry.light_gray_concrete": "Light Gray Concrete", + "block.createindustry.light_gray_concrete_slab": "Light Gray Concrete Slab", + "block.createindustry.light_gray_concrete_stairs": "Light Gray Concrete Stairs", + "block.createindustry.light_gray_concrete_wall": "Light Gray Concrete Wall", + "block.createindustry.lignite": "Lignite", + "block.createindustry.lime_caution_block": "Lime Caution Block", + "block.createindustry.lime_concrete": "Lime Concrete", + "block.createindustry.lime_concrete_slab": "Lime Concrete Slab", + "block.createindustry.lime_concrete_stairs": "Lime Concrete Stairs", + "block.createindustry.lime_concrete_wall": "Lime Concrete Wall", + "block.createindustry.liquid_asphalt": "Liquid Asphalt", + "block.createindustry.liquid_concrete": "Liquid Concrete", + "block.createindustry.liquid_plastic": "Liquid Plastic", + "block.createindustry.lithium_block": "Block of Lithium", + "block.createindustry.lithium_ore": "Lithium Ore", + "block.createindustry.lithium_torch": "Lithium Torch", + "block.createindustry.low_grade_fuel_engine": "Low Grade Fuel Engine", + "block.createindustry.lpg_engine": "Lpg Engine", + "block.createindustry.lpg_engine_back": "Lpg Engine Back", + "block.createindustry.lubrication_oil": "Lubrication Oil", + "block.createindustry.machine_input": "Machine Input", + "block.createindustry.magenta_caution_block": "Magenta Caution Block", + "block.createindustry.magenta_concrete": "Magenta Concrete", + "block.createindustry.magenta_concrete_slab": "Magenta Concrete Slab", + "block.createindustry.magenta_concrete_stairs": "Magenta Concrete Stairs", + "block.createindustry.magenta_concrete_wall": "Magenta Concrete Wall", + "block.createindustry.molten_metal": "Molten Metal", + "block.createindustry.molten_slag": "Molten Slag", + "block.createindustry.molten_steel": "Molten Steel", + "block.createindustry.napalm": "Napalm", + "block.createindustry.napalm_bomb": "Napalm Bomb", + "block.createindustry.naphtha": "Naphtha", + "block.createindustry.neon_tube": "Neon Tube", + "block.createindustry.nickel_bars": "Nickel Bars", + "block.createindustry.nickel_block": "Block of Nickel", + "block.createindustry.nickel_flywheel": "Nickel Flywheel", + "block.createindustry.nickel_frame": "Nickel Frame", + "block.createindustry.nickel_ladder": "Nickel Ladder", + "block.createindustry.nickel_ore": "Nickel Ore", + "block.createindustry.nickel_truss": "Nickel Truss", + "block.createindustry.oil_deposit": "Oil Deposit", + "block.createindustry.orange_caution_block": "Orange Caution Block", + "block.createindustry.orange_concrete": "Orange Concrete", + "block.createindustry.orange_concrete_slab": "Orange Concrete Slab", + "block.createindustry.orange_concrete_stairs": "Orange Concrete Stairs", + "block.createindustry.orange_concrete_wall": "Orange Concrete Wall", + "block.createindustry.pink_caution_block": "Pink Caution Block", + "block.createindustry.pink_concrete": "Pink Concrete", + "block.createindustry.pink_concrete_slab": "Pink Concrete Slab", + "block.createindustry.pink_concrete_stairs": "Pink Concrete Stairs", + "block.createindustry.pink_concrete_wall": "Pink Concrete Wall", + "block.createindustry.plastic_block": "Block of Plastic", + "block.createindustry.plastic_fluid_valve": "Plastic Fluid Valve", + "block.createindustry.plastic_mechanical_pump": "Plastic Mechanical Pump", + "block.createindustry.plastic_pipe": "Plastic Pipe", + "block.createindustry.plastic_smart_fluid_pipe": "Plastic Smart Fluid Pipe", + "block.createindustry.polarizer": "Polarizer", + "block.createindustry.polished_cut_bauxite": "Polished Cut Bauxite", + "block.createindustry.polished_cut_bauxite_slab": "Polished Cut Bauxite Slab", + "block.createindustry.polished_cut_bauxite_stairs": "Polished Cut Bauxite Stairs", + "block.createindustry.polished_cut_bauxite_wall": "Polished Cut Bauxite Wall", + "block.createindustry.polished_cut_galena": "Polished Cut Galena", + "block.createindustry.polished_cut_galena_slab": "Polished Cut Galena Slab", + "block.createindustry.polished_cut_galena_stairs": "Polished Cut Galena Stairs", + "block.createindustry.polished_cut_galena_wall": "Polished Cut Galena Wall", + "block.createindustry.pumpjack_base": "Pumpjack Base", + "block.createindustry.pumpjack_crank": "Pumpjack Crank", + "block.createindustry.pumpjack_hammer": "Pumpjack Hammer Holder", + "block.createindustry.pumpjack_hammer_connector": "Pumpjack Hammer Connector", + "block.createindustry.pumpjack_hammer_head": "Pumpjack Hammer Head", + "block.createindustry.pumpjack_hammer_part": "Pumpjack Hammer Part", + "block.createindustry.purple_caution_block": "Purple Caution Block", + "block.createindustry.purple_concrete": "Purple Concrete", + "block.createindustry.purple_concrete_slab": "Purple Concrete Slab", + "block.createindustry.purple_concrete_stairs": "Purple Concrete Stairs", + "block.createindustry.purple_concrete_wall": "Purple Concrete Wall", + "block.createindustry.radial_engine": "Radial Engine", + "block.createindustry.radial_engine_input": "Radial Engine Input", + "block.createindustry.radial_engine_input_ponder": "Radial Engine Input Ponder", + "block.createindustry.rebar_concrete": "Rebar Concrete", + "block.createindustry.rebar_concrete_slab": "Rebar Concrete Slab", + "block.createindustry.rebar_concrete_stairs": "Rebar Concrete Stairs", + "block.createindustry.rebar_concrete_wall": "Rebar Concrete Wall", + "block.createindustry.rebar_formwork_block": "Rebar Formwork Block", + "block.createindustry.red_caution_block": "Red Caution Block", + "block.createindustry.red_concrete": "Red Concrete", + "block.createindustry.red_concrete_slab": "Red Concrete Slab", + "block.createindustry.red_concrete_stairs": "Red Concrete Stairs", + "block.createindustry.red_concrete_wall": "Red Concrete Wall", + "block.createindustry.resistor": "Resistor", + "block.createindustry.rgb_light_bulb": "Rgb Light Bulb", + "block.createindustry.rotor": "Rotor", + "block.createindustry.small_bauxite_brick_slab": "Small Bauxite Brick Slab", + "block.createindustry.small_bauxite_brick_stairs": "Small Bauxite Brick Stairs", + "block.createindustry.small_bauxite_brick_wall": "Small Bauxite Brick Wall", + "block.createindustry.small_bauxite_bricks": "Small Bauxite Bricks", + "block.createindustry.small_galena_brick_slab": "Small Galena Brick Slab", + "block.createindustry.small_galena_brick_stairs": "Small Galena Brick Stairs", + "block.createindustry.small_galena_brick_wall": "Small Galena Brick Wall", + "block.createindustry.small_galena_bricks": "Small Galena Bricks", + "block.createindustry.stator": "Stator", + "block.createindustry.steel_bars": "Steel Bars", + "block.createindustry.steel_block": "Block of Steel", + "block.createindustry.steel_cable_hub": "Steel Cable Hub", + "block.createindustry.steel_casing": "Steel Casing", + "block.createindustry.steel_casing_cable_hub": "Steel Casing Cable Hub", + "block.createindustry.steel_cogwheel": "Steel Cogwheel", + "block.createindustry.steel_distillation_controller": "Steel Distillation Controller", + "block.createindustry.steel_distillation_output": "Steel Distillation Output", + "block.createindustry.steel_door": "Steel Door", + "block.createindustry.steel_encased_aluminum_cogwheel": "Steel Encased Aluminum Cogwheel", + "block.createindustry.steel_encased_cogwheel": "Steel Encased Cogwheel", + "block.createindustry.steel_encased_large_aluminum_cogwheel": "Steel Encased Large Aluminum Cogwheel", + "block.createindustry.steel_encased_large_cogwheel": "Steel Encased Large Cogwheel", + "block.createindustry.steel_encased_large_steel_cogwheel": "Steel Encased Large Steel Cogwheel", + "block.createindustry.steel_encased_shaft": "Steel Encased Shaft", + "block.createindustry.steel_encased_steel_cogwheel": "Steel Encased Steel Cogwheel", + "block.createindustry.steel_fluid_tank": "Steel Fluid Tank", + "block.createindustry.steel_fluid_valve": "Steel Fluid Valve", + "block.createindustry.steel_flywheel": "Steel Flywheel", + "block.createindustry.steel_frame": "Steel Frame", + "block.createindustry.steel_gearbox": "Steel Gearbox", + "block.createindustry.steel_ladder": "Steel Ladder", + "block.createindustry.steel_mechanical_pump": "Steel Mechanical Pump", + "block.createindustry.steel_pipe": "Steel Pipe", + "block.createindustry.steel_scaffolding": "Steel Scaffolding", + "block.createindustry.steel_smart_fluid_pipe": "Steel Smart Fluid Pipe", + "block.createindustry.steel_truss": "Steel Truss", + "block.createindustry.sulfur": "Sulfur", + "block.createindustry.sulfuric_acid": "Sulfuric Acid", + "block.createindustry.surface_scanner": "Surface Scanner", + "block.createindustry.turbine_engine": "Turbine Engine", + "block.createindustry.turbine_engine_back": "Turbine Engine Back", + "block.createindustry.voltage_cube": "Voltage Cube", + "block.createindustry.voltmeter": "Voltmeter", + "block.createindustry.white_caution_block": "White Caution Block", + "block.createindustry.white_concrete": "White Concrete", + "block.createindustry.white_concrete_slab": "White Concrete Slab", + "block.createindustry.white_concrete_stairs": "White Concrete Stairs", + "block.createindustry.white_concrete_wall": "White Concrete Wall", + "block.createindustry.yellow_caution_block": "Yellow Caution Block", + "block.createindustry.yellow_concrete": "Yellow Concrete", + "block.createindustry.yellow_concrete_slab": "Yellow Concrete Slab", + "block.createindustry.yellow_concrete_stairs": "Yellow Concrete Stairs", + "block.createindustry.yellow_concrete_wall": "Yellow Concrete Wall", + "block.createindustry.zinc_frame": "Zinc Frame", + "block.createindustry.zinc_truss": "Zinc Truss", + + "entity.createindustry.blue_spark": "Blue Spark", + "entity.createindustry.copper_grenade": "Copper Grenade", + "entity.createindustry.green_spark": "Green Spark", + "entity.createindustry.lithium_spark": "Lithium Spark", + "entity.createindustry.napalm_bomb_entity": "Napalm Bomb Entity", + "entity.createindustry.napalm_potato": "Napalm Potato", + "entity.createindustry.pipe_bomb": "Pipe Bomb", + "entity.createindustry.spark": "Spark", + "entity.createindustry.thermite_grenade": "Thermite Grenade", + "entity.createindustry.zinc_grenade": "Zinc Grenade", + + "fluid.createindustry.air": "Air", + "fluid.createindustry.butane": "Butane", + "fluid.createindustry.carbon_dioxide": "Carbon Dioxide", + "fluid.createindustry.cooling_fluid": "Cooling Fluid", + "fluid.createindustry.creosote": "Creosote", + "fluid.createindustry.crude_oil": "Crude Oil", + "fluid.createindustry.diesel": "Diesel", + "fluid.createindustry.ethylene": "Ethylene", + "fluid.createindustry.gasoline": "Gasoline", + "fluid.createindustry.heavy_oil": "Heavy Oil", + "fluid.createindustry.kerosene": "Kerosene", + "fluid.createindustry.liquid_asphalt": "Liquid Asphalt", + "fluid.createindustry.liquid_concrete": "Liquid Concrete", + "fluid.createindustry.liquid_plastic": "Liquid Plastic", + "fluid.createindustry.lpg": "Lpg", + "fluid.createindustry.lubrication_oil": "Lubrication Oil", + "fluid.createindustry.molten_slag": "Molten Slag", + "fluid.createindustry.molten_steel": "Molten Steel", + "fluid.createindustry.napalm": "Napalm", + "fluid.createindustry.naphtha": "Naphtha", + "fluid.createindustry.neon": "Neon", + "fluid.createindustry.propane": "Propane", + "fluid.createindustry.propylene": "Propylene", + "fluid.createindustry.sulfuric_acid": "Sulfuric Acid", + + "item.createindustry.advanced_potato_cannon": "Advanced Potato Cannon", + "item.createindustry.air_bucket": "Air Tank", + "item.createindustry.aluminum_axe": "Aluminum Axe", + "item.createindustry.aluminum_hoe": "Aluminum Hoe", + "item.createindustry.aluminum_ingot": "Aluminum Ingot", + "item.createindustry.aluminum_pickaxe": "Aluminum Pickaxe", + "item.createindustry.aluminum_shovel": "Aluminum Shovel", + "item.createindustry.aluminum_sword": "Aluminum Sword", + "item.createindustry.aluminum_wire": "Aluminum Wire", + "item.createindustry.bitumen": "Bitumen", + "item.createindustry.blasting_mixture": "Blasting Mixture", + "item.createindustry.block_mold": "Block Mold", + "item.createindustry.bottle_of_battery_acid": "Bottle o' Battery Acid", + "item.createindustry.bottle_of_concrete": "Bottle Of Concrete", + "item.createindustry.butane_bucket": "Butane Tank", + "item.createindustry.capacitor_": "Capacitor", + "item.createindustry.carbon_dioxide_bucket": "Carbon Dioxide Tank", + "item.createindustry.cast_iron_ingot": "Cast Iron Ingot", + "item.createindustry.cinderblock": "Cinderblock", + "item.createindustry.cinderflourblock": "Cinderflourblock", + "item.createindustry.coal_coke": "Coal Coke", + "item.createindustry.coal_coke_dust": "Coal Coke Dust", + "item.createindustry.concrete_mixture": "Concrete Mixture", + "item.createindustry.cooling_fluid_bucket": "Cooling Fluid Bucket", + "item.createindustry.copper_cable": "Copper Cable", + "item.createindustry.copper_grenade": "Copper Grenade", + "item.createindustry.copper_sulfate": "Copper Sulfate", + "item.createindustry.copper_wire": "Copper Wire", + "item.createindustry.creosote_bucket": "Creosote Bucket", + "item.createindustry.crude_oil_bucket": "Crude Oil Bucket", + "item.createindustry.diesel_bucket": "Diesel Bucket", + "item.createindustry.engine_base": "Engine Base", + "item.createindustry.engine_chamber": "Engine Chamber", + "item.createindustry.ethylene_bucket": "Ethylene Tank", + "item.createindustry.fireclay_ball": "Fireclay Ball", + "item.createindustry.fireproof_brick": "Fireproof Brick", + "item.createindustry.flamethrower": "Flamethrower", + "item.createindustry.gasoline_bucket": "Gasoline Bucket", + "item.createindustry.heavy_oil_bucket": "Heavy Oil Bucket", + "item.createindustry.heavy_plate": "Heavy Plate", + "item.createindustry.ingot_mold": "Ingot Mold", + "item.createindustry.kerosene_bucket": "Kerosene Bucket", + "item.createindustry.lead_axe": "Lead Axe", + "item.createindustry.lead_hoe": "Lead Hoe", + "item.createindustry.lead_ingot": "Lead Ingot", + "item.createindustry.lead_pickaxe": "Lead Pickaxe", + "item.createindustry.lead_shovel": "Lead Shovel", + "item.createindustry.lead_sword": "Lead Sword", + "item.createindustry.limesand": "Limesand", + "item.createindustry.liquid_asphalt_bucket": "Liquid Asphalt Bucket", + "item.createindustry.liquid_concrete_bucket": "Liquid Concrete Bucket", + "item.createindustry.liquid_plastic_bucket": "Liquid Plastic Bucket", + "item.createindustry.lit_lithium_blade": "Lithium Blade", + "item.createindustry.lithium_blade": "Lithium Blade", + "item.createindustry.lithium_charge": "Lithium Charge", + "item.createindustry.lithium_ingot": "Lithium Ingot", + "item.createindustry.lpg_bucket": "Lpg Tank", + "item.createindustry.lubrication_oil_bucket": "Lubrication Oil Bucket", + "item.createindustry.magnetic_ingot": "Magnetic Ingot", + "item.createindustry.molten_slag_bucket": "Molten Slag Bucket", + "item.createindustry.molten_steel_bucket": "Molten Steel Bucket", + "item.createindustry.napalm_bucket": "Napalm Bucket", + "item.createindustry.napalm_potato": "Napalm Potato", + "item.createindustry.naphtha_bucket": "Naphtha Bucket", + "item.createindustry.neon_bucket": "Neon Tank", + "item.createindustry.nickel_ingot": "Nickel Ingot", + "item.createindustry.nitrate_dust": "Nitrate Dust", + "item.createindustry.pipe_bomb": "Pipe Bomb", + "item.createindustry.plastic_sheet": "Plastic Sheet", + "item.createindustry.propane_bucket": "Propane Tank", + "item.createindustry.propylene_bucket": "Propylene Tank", + "item.createindustry.quad_potato_cannon": "Quad Potato Cannon", + "item.createindustry.raw_lead": "Raw Lead", + "item.createindustry.raw_lithium": "Raw Lithium", + "item.createindustry.raw_nickel": "Raw Nickel", + "item.createindustry.rebar": "Rebar", + "item.createindustry.resistor_": "Resistor", + "item.createindustry.screw": "Screw", + "item.createindustry.screwdriver": "Screwdriver", + "item.createindustry.slag": "Slag", + "item.createindustry.spark_plug": "Spark Plug", + "item.createindustry.steel_axe": "Steel Axe", + "item.createindustry.steel_boots": "Steel Boots", + "item.createindustry.steel_chestplate": "Steel Chestplate", + "item.createindustry.steel_helmet": "Steel Helmet", + "item.createindustry.steel_hoe": "Steel Hoe", + "item.createindustry.steel_ingot": "Steel Ingot", + "item.createindustry.steel_leggings": "Steel Leggings", + "item.createindustry.steel_mechanism": "Steel Mechanism", + "item.createindustry.steel_pickaxe": "Steel Pickaxe", + "item.createindustry.steel_shovel": "Steel Shovel", + "item.createindustry.steel_sword": "Steel Sword", + "item.createindustry.steel_vertical_gearbox": "Steel Vertical Gearbox", + "item.createindustry.sulfur_dust": "Sulfur Dust", + "item.createindustry.sulfuric_acid_bucket": "Sulfuric Acid Bucket", + "item.createindustry.synthetic_leather": "Synthetic Leather", + "item.createindustry.synthetic_string": "Synthetic String", + "item.createindustry.thermite_grenade": "Thermite Grenade", + "item.createindustry.thermite_powder": "Thermite Powder", + "item.createindustry.turbine_blade": "Turbine Blade", + "item.createindustry.unfinished_gasoline_engine": "Unfinished Gasoline Engine", + "item.createindustry.unfinished_lpg_engine": "Unfinished Lpg Engine", + "item.createindustry.unfinished_steel_mechanism": "Unfinished Steel Mechanism", + "item.createindustry.unfinished_turbine_engine": "Unfinished Turbine Engine", + "item.createindustry.unprocessed_heavy_plate": "Unprocessed Heavy Plate", + "item.createindustry.zinc_grenade": "Zinc Grenade", + "item.createindustry.zinc_sulfate": "Zinc Sulfate", + + "itemGroup.createindustry.base": "Create: The Factory Must Grow", + "itemGroup.createindustry.building": "Create: TFMG Building Blocks", + + "create.goggles.misc.number": "%1$s", + "create.goggles.misc.percent_symbol": "%", + "create.goggles.misc.dot_one": ".", + "create.goggles.misc.dot_two": "..", + "create.goggles.misc.dot_three": "...", + "create.goggles.misc.storage_info": "Storage Info:", + "create.goggles.fluid_in_tank": "Tank Contents:", + "create.goggles.surface_scanner.no_rotation": "Machine Unpowered", + "create.goggles.surface_scanner.no_deposit": "No Deposit Found", + "create.goggles.surface_scanner.deposit_found": "Deposit Located!", + "create.goggles.surface_scanner.distance": "Distance: %1$s Blocks", + "create.goggles.surface_scanner.scanning_surface": "Scanning The Surface", + "create.goggles.distillation_tower.status": "Distillation Tower Info:", + "create.goggles.distillation_tower.tank_not_found": "Steel Fluid Tank Not Found", + "create.goggles.distillation_tower.level": "Heat Level: %1$s", + "create.goggles.distillation_tower.found_outputs": "Output Count: %1$s", + "create.goggles.distillation_tower.no_outputs": "No Output Blocks Found", + "create.goggles.blast_furnace.stats": "Blast Furnace:", + "create.goggles.blast_furnace.fuel_amount": "Fuel Amount: %1$s", + "create.goggles.blast_furnace.item_count": "Item Count: %1$s", + "create.goggles.blast_furnace.height": "Height: %1$s", + "create.goggles.blast_furnace.nothing_lol": "", + "create.goggles.blast_furnace.status.off": "Status: Idle", + "create.goggles.blast_furnace.status.running": "Status: Running", + "create.goggles.blast_furnace.diameter.one": "Diameter: 1", + "create.goggles.blast_furnace.diameter.two": "Diameter: 2", + "create.goggles.blast_furnace.invalid": "Blast Furnace Invalid", + "create.goggles.coke_oven.status": "Coke Oven:", + "create.goggles.coke_oven.fluid_amount_output": "Internal Tank Contents: %1$s mb", + "create.goggles.coke_oven.fluid_amount_exhaust": "Carbon Dioxide: %1$s mb", + "create.goggles.coke_oven.item_count": "Internal Storage Item Count: %1$s", + "create.goggles.coke_oven.invalid": "Coke Oven Invalid", + "create.goggles.coke_oven.tank_full": "An Internal Tank is Full", + "create.goggles.coke_oven.progress": "Progress: %1$s", + "create.goggles.engine_stats": "Engine Stats:", + "create.goggles.engine_exhaust_stats": "Engine Exhaust Stats:", + "create.goggles.fuel_container": "Fluid Storage", + "create.goggles.engine.backpartmissing": "Back Part Missing:", + "create.goggles.engine_redstone_input": "Speed:", + "create.goggles.engine.efficiency": "Efficiency:", + + "create.tooltip.engine_analog_strength": "%1$s/15", + + "create.goggles.get_engine_efficiency": "%1$s", + "create.goggles.engine.stress": "%1$ssu", + "create.goggles.diesel_engine.info": "Diesel Engine:", + "create.goggles.pumpjack_info": "Pumpjack Info:", + "create.goggles.pumpjack.part_missing": "Hammer or Crank Missing", + "create.goggles.pumpjack.wrong_rotation1": "The Pumpjack Base is oriented incorrectly, the red marker must", + "create.goggles.pumpjack.wrong_rotation2": "face away from the Pumpjack Hammer Holder", + "create.goggles.pumpjack_fluid_storage": "Fluid Tank Info:", + "create.goggles.pumpjack.fluid_amount": "Fluid Amount:", + "create.goggles.pumpjack.deposit_info": "Deposit Info:", + + "create.pumpjack_deposit_amount": "%1$s Buckets", + + "create.goggles.zero": "Machine Invalid", + "create.goggles.machine_input.info": "Machine Input Info", + "create.goggles.machine_input.no_rot": "No Rotation Provided!", + "create.goggles.machine_input.power_level": "Power Level: ", + "create.goggles.electricity.no_power": "No Power", + "create.goggles.electricity.insufficient_voltage": "Insufficient Voltage", + "create.goggles.voltmeter": "Voltmeter:", + "create.goggles.voltmeter.voltage": " Measured Voltage: %1$s V", + "create.goggles.voltmeter.range": " Measuring Range: %1$s V", + "create.goggles.energy_meter": "Energy Meter:", + "create.goggles.energy_meter.energy": " Energy: %1$s fe", + "create.goggles.motor.usage": "Energy Usage: %1$s fe/t", + "create.goggles.generator.production": "Energy Production: %1$s fe/t", + + "create.resistor.allowed_voltage": "Allowed Voltage", + + "create.creative_generator.voltage_generation": "Voltage Generation", + + "death.attack.createindustry.concrete": "%1$s tried to eat Concrete", + "death.attack.createindustry.concrete.player": "%1$s tried to eat Concrete", + "death.attack.createindustry.acid": "%1$s took an acid bath", + "death.attack.createindustry.acid.player": "%1$s took an acid bath", + + "create.recipe.distillation": "Distillation", + "create.recipe.advanced_distillation": "Advanced Distillation", + "create.recipe.industrial_blasting": "Industrial Blasting", + "create.recipe.casting": "Casting", + "create.recipe.coking": "Coking", + + "item.minecraft.potion.effect.hellfire_potion": "Potion of Hellfire", + "item.minecraft.splash_potion.effect.hellfire_potion": "Splash Potion of Hellfire", + "item.minecraft.lingering_potion.effect.hellfire_potion": "Lingering Potion of Hellfire", + "item.minecraft.tipped_arrow.effect.hellfire_potion": "Arrow of Hellfire", + + "effect.createindustry.hellfire": "Hellfire", + + "create.wires.removed_data": "Data Removed", + + "createindustry.subtitle.engine_sounds": "Engine Sounds", + "createindustry.subtitle.diesel_engine_sounds": "Diesel Engine Sounds", + + "1": "Welcome to whoever was forced to work on this, if you got this file, it means you didn't make enough textures", + + "2": "and its time work on something special OwO, the tooltips to be specific", + + "3": "Good Luck! ;3", + + "UwU": "here are some examples:", + + "comment 1": "WHOEVER WILL WORK ON THIS DONT FORGET TO CHANGE item.createindustry to block.createindustry if needed", + + "comment 2": "open create to see how exactly tooltips look", + + "OwO": "UwU", + + "item.createindustry.item or block name.tooltip.summary": "SUMMARY", + "item.createindustry.item or block name.tooltip.condition1": "if (you right click this block for example)", + "item.createindustry.item or block name.tooltip.behaviour1": "what happens when you do condition above", + "item.createindustry.item or block name.tooltip.condition2": "condition 2", + "item.createindustry.item or block name.tooltip.behaviour2": "-||- :3", + + "createindustry.ponder.small_engines.text_1": "To create a small engine, place the front and back parts adjacent to eachother", + "createindustry.ponder.small_engines.text_2": "Fuel is inputted into the front part, and exhaust must be removed from the back part using pipes and an exhaust block", + "createindustry.ponder.small_engines.text_3": "Applying a redstone signal to the front part starts the engine", + "createindustry.ponder.small_engines.text_4": "Small engines include LPG, kerosene and gasoline engines", + "createindustry.ponder.diesel_engine.text_1": "Diesel Engines are assembled by placing a shaft infront of a Diesel Engine block", + "createindustry.ponder.diesel_engine.text_2": "The engine produces exhaust gas which has to be removed with pipes and an exhaust block", + "createindustry.ponder.diesel_engine.text_3": "Air is needed for the engine to run, so an Air Intake is required", + "createindustry.ponder.diesel_engine_expansion.text_1": "Diesel Engine Expansions can give a Diesel Engine two new input slots, for lubrication and radiator fluids", + "createindustry.ponder.surface_scanner.text_1": "The Surface Scanner is used to locate crude oil deposits", + "createindustry.ponder.surface_scanner.text_2": "Providing the machine with rotational power makes it scan for the nearest deposit", + "createindustry.ponder.surface_scanner.text_3": "If a deposit is found, the compass will point towards its location", + "createindustry.ponder.pumpjack.text_1": "To start extracting Oil, you must first build a pipeline on top of a deposit using Industrial Pipes", + "createindustry.ponder.pumpjack.text_2": "Then, construct a Pumpjack on top of the pipeline by first placing down a Pumpjack Base...", + "createindustry.ponder.pumpjack.text_3": "Placing the Pumpjack Hammer behind it...", + "createindustry.ponder.pumpjack.text_4": "Next step is building the Connector And the Head of the Pumpjack above the crank and the base", + "createindustry.ponder.pumpjack.text_5": "Now they need to be connected with Pumpjack Hammer Parts, keep in mind that superglue is needed to finish the structure", + "createindustry.ponder.pumpjack.text_6": "And finally, placing the Machine Input with a Pumpjack Crank above it, as shown in the scene", + "createindustry.ponder.distillation_tower.text_1": "A sufficiently large Steel Fluid Tank can be turned into a Distillation Tower", + "createindustry.ponder.distillation_tower.text_2": "The tower is assembled by first placing a Steel Distillation Tower Controller next to the tank...", + "createindustry.ponder.distillation_tower.text_3": "And placing up to 6 Distillation Tower Outputs, all connected with Industrial Pipes", + "createindustry.ponder.distillation_tower.text_4": "Blaze Burners are required to run the Distillation Tower. The dial displays current power levels", + "createindustry.ponder.distillation_tower.text_5": "To input Crude Oil, it must be pumped into the controller block", + "createindustry.ponder.distillation_tower.text_6": "Each output block provides one of the Oil byproducts", + "createindustry.ponder.distillation_tower.text_7": "LPG", + "createindustry.ponder.distillation_tower.text_8": "Gasoline", + "createindustry.ponder.distillation_tower.text_9": "Naphtha", + "createindustry.ponder.distillation_tower.text_10": "Kerosene", + "createindustry.ponder.distillation_tower.text_11": "Diesel", + "createindustry.ponder.distillation_tower.text_12": "Heavy Oil", + "createindustry.ponder.blast_furnace.text_1": "The base of the Blast Furnace is a Blast Furnace Output block", + "createindustry.ponder.blast_furnace.text_2": "To assemble a Blast Furnace, construct a chimney using Fireproof Bricks as shown in the scene", + "createindustry.ponder.blast_furnace.text_3": "The bottom half of the chimney requires to be reinforced", + "createindustry.ponder.blast_furnace.text_4": "Fuel and other items are inserted through the opening at the top", + "createindustry.ponder.coke_oven.text_1": "The Coke Oven is built by placing Coke Oven blocks as shown in the scene, and clicking its side with a wrench", + "createindustry.ponder.coke_oven.text_2": "The process of coking is slow, so it is more efficient to have long arrays of ovens working simultaneously", + "createindustry.ponder.coke_oven.text_3": "Coal can be inputted from any side", + "createindustry.ponder.coke_oven.text_4": "While running, the oven produces Creosote and CO2 which have to be pumped out for it to function", + "createindustry.ponder.coke_oven.text_5": "Once done, Coal Coke will drop out of the opening", + "createindustry.ponder.casting.text_1": "Casting is the process of pouring liquid metal into a Casting Basin using a Casting Spout", + "createindustry.ponder.casting.text_2": "The Casting Basin, obviously, requires a mold to function", + "createindustry.ponder.radial_engines.text_1": "Radial Engines are a special Type of Engine that doesn't require an exhaust block and has a shaft from both sides", + "createindustry.ponder.radial_engines.text_2": "Clicking the Engine from one of its sides will spawn an input slot that can accept fuel and redstone signals", + "createindustry.ponder.radial_engines.text_3": "Regular Radial Engines uses gasoline as fuel", + "createindustry.ponder.radial_engines.text_4": "Engine will start when redstone signal is applied to the input slot or the block itself", + "createindustry.ponder.radial_engines.text_5": "The second variant of a radial is The Large Radial Engine which uses kerosene as fuel", + "createindustry.ponder.large_generator.text_1": "The main of the Large Generator is the Rotor", + "createindustry.ponder.large_generator.text_2": "To complete the Large Generator, place Stator block around the Rotor", + "createindustry.ponder.large_generator.text_3": "Providing rotational power to the Rotor will produce electric energy", + "createindustry.ponder.large_generator.text_4": "Clicking a side with a wrench will make it the energy output", + + "createindustry.ponder.distillation_tower.header": "Distillation Tower Setup", + + "createindustry.ponder.pumpjack.header": "Building Pumpjacks", + + "createindustry.ponder.surface_scanner.header": "Locating Oil", + + "createindustry.ponder.diesel_engine.header": "Building a Diesel Engine", + + "createindustry.ponder.diesel_engine_expansion.header": "Expanding Diesel Engines", + + "createindustry.ponder.small_engines.header": "Building Small Engines", + + "createindustry.ponder.radial_engines.header": "Using Radial Engines", + + "createindustry.ponder.coke_oven.header": "Building a Coke Oven", + + "createindustry.ponder.blast_furnace.header": "Building a Blast Furnace", + + "createindustry.ponder.casting.header": "Casting Metal", + "createindustry.ponder.tag.oil": "Oil Related Machines", + "createindustry.ponder.tag.metallurgy": "Metal Processing", + "createindustry.ponder.tag.oil.description": "Machines that extract, process or use Crude Oil and its byproducts", + "createindustry.ponder.tag.metallurgy.description": "Machines that produce, process or use Metal and raw materials as such", + + "item.createindustry.quad_potato_cannon.tooltip.summary": "Launches 4 of your home-grown vegetables at Enemies. Can be powered with _Air_ _Pressure_ from a _Backtank_", + "item.createindustry.quad_potato_cannon.tooltip.condition1": "When R-Clicked", + "item.createindustry.quad_potato_cannon.tooltip.behaviour1": "_Shoots_ a suitable item from your _Inventory_.", + "item.createindustry.quad_potato_cannon.tooltip.condition2": "While wearing Backtank", + "item.createindustry.quad_potato_cannon.tooltip.behaviour2": "_No_ _Durability_ will be used. Instead, _Air_ _pressure_ is drained from the Tank", + "item.createindustry.advanced_potato_cannon.tooltip.summary": "Launches _Napalm Potatoes_ at Enemies. Can be powered with _Air_ _Pressure_ from a _Backtank_", + "item.createindustry.advanced_potato_cannon.tooltip.condition1": "When R-Clicked", + "item.createindustry.advanced_potato_cannon.tooltip.behaviour1": "_Shoots_ a _Napalm Potato_ from your _Inventory_.", + "item.createindustry.advanced_potato_cannon.tooltip.condition2": "While wearing Backtank", + "item.createindustry.advanced_potato_cannon.tooltip.behaviour2": "_No_ _Durability_ will be used. Instead, _Air_ _pressure_ is drained from the Tank", + "item.createindustry.flamethrower.tooltip.summary": "Burns burnable _Gases_ and _Fluids_ to shoot out a burst of flame to burn your Enemies", + "item.createindustry.flamethrower.tooltip.condition1": "When R-Clicked", + "item.createindustry.flamethrower.tooltip.behaviour1": "_Shoots out Flames_ ", + "item.createindustry.flamethrower.tooltip.condition2": "When R-Clicking a Fluid Tank with a Burnable Fluid/Gas inside", + "item.createindustry.flamethrower.tooltip.behaviour2": "The _Fuel_ will be consumed from the tank. _Range_ and _Spread_ change according to your _Fuel_ of choice", + "item.createindustry.lithium_blade.tooltip.summary": "Using _Steel Ingot_Lithium Charges_, this Blade is set aflame burning enemies and shooting out Bolts of _Hellfire_", + "item.createindustry.lithium_blade.tooltip.condition1": "When R-Clicked when Off", + "item.createindustry.lithium_blade.tooltip.behaviour1": "Is set on hellfire, consuming a _Lithium Charge_. Its flame sets enemies on fire for a set amount of time, this fire is renewed even after Enemy extinguishes themself in water ", + "item.createindustry.lithium_blade.tooltip.condition2": "When R-Clicking when On", + "item.createindustry.lithium_blade.tooltip.behaviour2": "Shoots out several bolts of _Hellfire_ consuming the blades charge", + "item.createindustry.pipebomb.tooltip.summary": "So cool", + "item.createindustry.screwdriver.tooltip.summary": "Can lock pipes in place", + "item.createindustry.screwdriver.tooltip.condition1": "When R-Clicking pipe", + "item.createindustry.screwdriver.tooltip.behaviour1": "Locks _Pipe_ in its current rotation allowing for _Pipes_ to be placed next to eachother _Without Connecting_", + + "block.createindustry.formwork_block.tooltip.summary": "Holds Liquid Concrete until it turns into concrete blocks", + "block.createindustry.formwork_block.tooltip.condition1": "When Pumped concrete into", + "block.createindustry.formwork_block.tooltip.behaviour1": "Fills out with _Liquid Concrete_, this Concrete eventually turns into solid blocks", + "block.createindustry.rebar_formwork_block.tooltip.summary": "Holds Liquid Concrete until it turns into rebar concrete blocks", + "block.createindustry.rebar_formwork_block.tooltip.condition1": "When Pumped concrete into", + "block.createindustry.rebar_formwork_block.tooltip.behaviour1": "Fills out with _Liquid Concrete_, this concrete eventually turns into solid rebar concrete blocks", + "block.createindustry.firebox.tooltip.summary": "Uses burnables to function as a blaze burner", + "block.createindustry.firebox.condition1": "When inputted burnables into", + "block.createindustry.firebox.tooltip.behaviour1": "The _Firebox_ will act as a _Blaze Burner_ until it runs out of fuel, there is no way to superheat it", + "block.createindustry.polarizer.tooltip.summary": "Makes Magnetic Ingots out of Steel", + "block.createindustry.polarizer.condition1": "When powered", + "block.createindustry.polarizer.tooltip.behaviour1": "Will turn a _Steel Ingot_ into a _Magnetic Ingot_ when right clicked with a _Steel Ingot_", + "block.createindustry.energy_meter.tooltip.summary": "Measures energy", + "block.createindustry.energy_meter.condition1": "When put on Power Source", + "block.createindustry.energy_meter.tooltip.behaviour1": "Measures the _Energy_ of the _Power Source_", + "block.createindustry.energy_meter.condition2": "When looked on with Engineer's Goggles", + "block.createindustry.energy_meter.tooltip.behaviour2": "Shows detailed info on the sources energy", + "block.createindustry.voltmeter.tooltip.summary": "Measures voltage", + "block.createindustry.voltmeter.condition1": "When put on Power Source", + "block.createindustry.voltmeter.tooltip.behaviour1": "Measures the _Voltage_ of the _Power Source_ the max energy on the _Voltmeter_ is determined by its _Measuring Range_", + "block.createindustry.voltmeter.condition2": "When looked on with Engineer's Goggles", + "block.createindustry.voltmeter.tooltip.behaviour2": "Shows detailed info on the sources _Voltage_ as well as the Voltmeters _Measuring Range_", + "block.createindustry.voltmeter.condition3": "When R-Clicked with Wrench", + "block.createindustry.voltmeter.tooltip.behaviour3": "Changes the _Measuring Range_", + "block.createindustry.converter.tooltip.summary": "Makes other mods compatible with TFMG by adding voltage", + "block.createindustry.converter.condition1": "When Put FE from Bottom", + "block.createindustry.converter.behaviour1": "The _Top_ outputs FE With _Voltage_ making it usable with _TFMG_", + "block.createindustry.light_bulb.tooltip.summary": "Glows when Powered", + "block.createindustry.light_bulb.condition1": "When put on Power Source", + "block.createindustry.light_bulb.behaviour1": "The lightbulb will _Glow_ if _Voltage_ and _Energy_ are balanced, the higher the _Voltage_, the stronger the glow", + "block.createindustry.rgb_light_bulb.tooltip.summary": "Glows in a certain color when Powered", + "block.createindustry.rgb_light_bulb.condition1": "When put on Power Source", + "block.createindustry.rgb_light_bulb.behaviour1": "The lightbulb will _Glow_ if _Voltage_ and _Energy_ are balanced, the higher the _Voltage_, the stronger the glow", + "block.createindustry.rgb_light_bulb.condition2": "When R-Clicked with Wrench", + "block.createindustry.rgb_light_bulb.behaviour2": "Cycles through colors", + "block.createindustry.creative_generator.tooltip.summary": "Outputs energy based on the value on its input panel", + "block.createindustry.cable connector.tooltip.summary": "Right click 2 cable connectors with a _Copper Cable_ amking them transport _Energy_", + "block.createindustry.lithium_torch.tooltip.summary": "Works underwater and can be placed upside down", + "block.createindustry.cable_tube.tooltip.summary": "Transports Energy like a Cable", + "block.createindustry.diagonal_cable_block.tooltip.summary": "Transports Energy like a Cable (But diagonally)", + "block.createindustry.capacitor.tooltip.summary": "Holds a Small Amount of energy (inserted from bottom) that can be outputted Quickly from the Top", + "block.createindustry.accumulator.tooltip.summary": "Holds a Large Amount of energy (inserted from bottom) that can be outputted Slowly from the Top", + "block.createindustry.electric_motor.tooltip.summary": "Changes energy to rotation (rpm configurable on side)", + "block.createindustry.generator.tooltip.summary": "Changes rotation to energy", + "block.createindustry.copper_coil.tooltip.summary": "Increases Voltage", + "block.createindustry.copper_coil.tooltip.behaviour1": "To increase voltage you have to have to towers of coils either next to or one block from eachother, one atleast 1 block larger than the other, both max 5 blocks in height and with their top blocks touching. R-Click the top block in the larger tower with a wrench to make it the output. Energy is both inputted and outputted on the top of their respective towers", + "block.createindustry.flarestack.tooltip.summary": "Burns unneeded oil products", + "block.createindustry.flarestack.tooltip.condition1": "When Pumped burnable Fluids/Gases into from the bottom", + "block.createindustry.flarestack.tooltip.behaviour1": "Deletes what is pumped inside", + "block.createindustry.resistor.tooltip.summary": "Reduces voltage", + "block.createindustry.resistor.tooltip.condition1": "When Put Energy into from the back (where strip of lead is smaller on top of the texture)", + "block.createindustry.resistor.tooltip.behaviour1": "Outputs energy with voltage based on its allowed voltage (configurable on top) on front", + "block.createindustry.galvanic_cell.tooltip.summary": "Has a small amount of unchargable energy inside, ideal for starting your venture into electricity", + "block.createindustry.neon_tube.tooltip.summary": "Glows in a certain color when Powered", + "block.createindustry.neon_tube.condition1": "When put on Power Source", + "block.createindustry.neon_tube.behaviour1": "The tube will _Glow_ ", + "block.createindustry.neon_tube.condition2": "When R-Clicked with Dye", + "block.createindustry.neon_tube.behaviour2": "Changes Color", + "block.createindustry.low_grade_fuel_engine.tooltip.summary": "Makes Rotation from Creosote", + "block.createindustry.low_grade_fuel_engine.condition1": "When Pumped Creosote into", + "block.createindustry.low_grade_fuel_engine.behaviour1": "Will output a small amount of _RPM_ based on the strength of the _Redstone Signal_ inputted into it", + "block.createindustry.compact_engine.tooltip.summary": "Makes Rotation from Gasoline", + "block.createindustry.compact_engine.condition1": "When Gasoline Creosote into", + "block.createindustry.compact_engine.behaviour1": "Will output _RPM_ based on the strength of the _Redstone Signal_ inputted into it", + "block.createindustry.fireclay.tooltip.summary": "It is found in underground veins in the overworld", + + "createindustry.ponder.large_generator.header": "Building a Large Generator", + + "item.createindustry.pipe_bomb.tooltip.summary": "So cool", + + "block.createindustry.copper_cable_hub.tooltip.summary": "Can be turned off with redstone", + "block.createindustry.aluminium_cable_hub.tooltip.summary": "Can be turned off with redstone", + "block.createindustry.brass_cable_hub.tooltip.summary": "Can be turned off with redstone", + "block.createindustry.steel_cable_hub.tooltip.summary": "Can be turned off with redstone", + "block.createindustry.heavy_cable_hub.tooltip.summary": "Can be turned off with redstone", + "block.createindustry.steel_casing_cable_hub.tooltip.summary": "Can be turned off with redstone", + "block.createindustry.copycat_cable_block.tooltip.summary": "Can be turned off with redstone", + + + "_": "->------------------------] UI & Messages [------------------------<-", + + "itemGroup.createindustry.base": "Create: The Factory Must Grow", + "itemGroup.createindustry.building": "Create: TFMG Building Blocks", + + "create.goggles.misc.number": "%1$s", + "create.goggles.misc.percent_symbol": "%", + "create.goggles.misc.dot_one": ".", + "create.goggles.misc.dot_two": "..", + "create.goggles.misc.dot_three": "...", + "create.goggles.misc.storage_info": "Storage Info:", + "create.goggles.fluid_in_tank": "Tank Contents:", + "create.goggles.surface_scanner.no_rotation": "Machine Unpowered", + "create.goggles.surface_scanner.no_deposit": "No Deposit Found", + "create.goggles.surface_scanner.deposit_found": "Deposit Located!", + "create.goggles.surface_scanner.distance": "Distance: %1$s Blocks", + "create.goggles.surface_scanner.scanning_surface": "Scanning The Surface", + "create.goggles.distillation_tower.status": "Distillation Tower Info:", + "create.goggles.distillation_tower.tank_not_found": "Steel Fluid Tank Not Found", + "create.goggles.distillation_tower.level": "Heat Level: %1$s", + "create.goggles.distillation_tower.found_outputs": "Output Count: %1$s", + "create.goggles.distillation_tower.no_outputs": "No Output Blocks Found", + "create.goggles.blast_furnace.stats": "Blast Furnace:", + "create.goggles.blast_furnace.fuel_amount": "Fuel Amount: %1$s", + "create.goggles.blast_furnace.item_count": "Item Count: %1$s", + "create.goggles.blast_furnace.height": "Height: %1$s", + "create.goggles.blast_furnace.nothing_lol": "", + "create.goggles.blast_furnace.status.off": "Status: Idle", + "create.goggles.blast_furnace.status.running": "Status: Running", + "create.goggles.blast_furnace.diameter.one": "Diameter: 1", + "create.goggles.blast_furnace.diameter.two": "Diameter: 2", + "create.goggles.blast_furnace.invalid": "Blast Furnace Invalid", + "create.goggles.coke_oven.status": "Coke Oven:", + "create.goggles.coke_oven.fluid_amount_output": "Internal Tank Contents: %1$s mb", + "create.goggles.coke_oven.fluid_amount_exhaust": "Carbon Dioxide: %1$s mb", + "create.goggles.coke_oven.item_count": "Internal Storage Item Count: %1$s", + "create.goggles.coke_oven.invalid": "Coke Oven Invalid", + "create.goggles.coke_oven.tank_full": "An Internal Tank is Full", + "create.goggles.coke_oven.progress": "Progress: %1$s", + "create.goggles.engine_stats": "Engine Stats:", + "create.goggles.engine_exhaust_stats": "Engine Exhaust Stats:", + "create.goggles.fuel_container": "Fluid Storage", + "create.goggles.engine.backpartmissing": "Back Part Missing:", + "create.goggles.engine_redstone_input": "Speed:", + "create.goggles.engine.efficiency": "Efficiency:", + + "create.tooltip.engine_analog_strength": "%1$s/15", + + "create.goggles.get_engine_efficiency": "%1$s", + "create.goggles.engine.stress": "%1$ssu", + "create.goggles.diesel_engine.info": "Diesel Engine:", + "create.goggles.pumpjack_info": "Pumpjack Info:", + "create.goggles.pumpjack.part_missing": "Hammer or Crank Missing", + "create.goggles.pumpjack.wrong_rotation1": "The Pumpjack Base is oriented incorrectly, the red marker must", + "create.goggles.pumpjack.wrong_rotation2": "face away from the Pumpjack Hammer Holder", + "create.goggles.pumpjack_fluid_storage": "Fluid Tank Info:", + "create.goggles.pumpjack.fluid_amount": "Fluid Amount:", + "create.goggles.pumpjack.deposit_info": "Deposit Info:", + + "create.pumpjack_deposit_amount": "%1$s Buckets", + + "create.goggles.zero": "Machine Invalid", + "create.goggles.machine_input.info": "Machine Input Info", + "create.goggles.machine_input.no_rot": "No Rotation Provided!", + "create.goggles.machine_input.power_level": "Power Level: ", + "create.goggles.electricity.no_power": "No Power", + "create.goggles.electricity.insufficient_voltage": "Insufficient Voltage", + "create.goggles.voltmeter": "Voltmeter:", + "create.goggles.voltmeter.voltage": " Measured Voltage: %1$s V", + "create.goggles.voltmeter.range": " Measuring Range: %1$s V", + "create.goggles.energy_meter": "Energy Meter:", + "create.goggles.energy_meter.energy": " Energy: %1$s fe", + "create.goggles.motor.usage": "Energy Usage: %1$s fe/t", + "create.goggles.generator.production": "Energy Production: %1$s fe/t", + + "create.resistor.allowed_voltage": "Allowed Voltage", + + "create.creative_generator.voltage_generation": "Voltage Generation", + + "death.attack.createindustry.concrete": "%1$s tried to eat Concrete", + "death.attack.createindustry.concrete.player": "%1$s tried to eat Concrete", + "death.attack.createindustry.acid": "%1$s took an acid bath", + "death.attack.createindustry.acid.player": "%1$s took an acid bath", + + "create.recipe.distillation": "Distillation", + "create.recipe.advanced_distillation": "Advanced Distillation", + "create.recipe.industrial_blasting": "Industrial Blasting", + "create.recipe.casting": "Casting", + "create.recipe.coking": "Coking", + + "item.minecraft.potion.effect.hellfire_potion": "Potion of Hellfire", + "item.minecraft.splash_potion.effect.hellfire_potion": "Splash Potion of Hellfire", + "item.minecraft.lingering_potion.effect.hellfire_potion": "Lingering Potion of Hellfire", + "item.minecraft.tipped_arrow.effect.hellfire_potion": "Arrow of Hellfire", + + "effect.createindustry.hellfire": "Hellfire", + + "create.wires.removed_data": "Data Removed", + + "createindustry.subtitle.engine_sounds": "Engine Sounds", + "createindustry.subtitle.diesel_engine_sounds": "Diesel Engine Sounds", + + + "_": "->------------------------] Tooltips [------------------------<-", + + "OwO": "UwU", + + "item.createindustry.quad_potato_cannon.tooltip.summary": "Launches 4 of your home-grown vegetables at Enemies. Can be powered with _Air_ _Pressure_ from a _Backtank_", + "item.createindustry.quad_potato_cannon.tooltip.condition1": "When R-Clicked", + "item.createindustry.quad_potato_cannon.tooltip.behaviour1": "_Shoots_ a suitable item from your _Inventory_.", + "item.createindustry.quad_potato_cannon.tooltip.condition2": "While wearing Backtank", + "item.createindustry.quad_potato_cannon.tooltip.behaviour2": "_No_ _Durability_ will be used. Instead, _Air_ _pressure_ is drained from the Tank", + "item.createindustry.advanced_potato_cannon.tooltip.summary": "Launches _Napalm Potatoes_ at Enemies. Can be powered with _Air_ _Pressure_ from a _Backtank_", + "item.createindustry.advanced_potato_cannon.tooltip.condition1": "When R-Clicked", + "item.createindustry.advanced_potato_cannon.tooltip.behaviour1": "_Shoots_ a _Napalm Potato_ from your _Inventory_.", + "item.createindustry.advanced_potato_cannon.tooltip.condition2": "While wearing Backtank", + "item.createindustry.advanced_potato_cannon.tooltip.behaviour2": "_No_ _Durability_ will be used. Instead, _Air_ _pressure_ is drained from the Tank", + "item.createindustry.flamethrower.tooltip.summary": "Burns burnable _Gases_ and _Fluids_ to shoot out a burst of flame to burn your Enemies", + "item.createindustry.flamethrower.tooltip.condition1": "When R-Clicked", + "item.createindustry.flamethrower.tooltip.behaviour1": "_Shoots out Flames_ ", + "item.createindustry.flamethrower.tooltip.condition2": "When R-Clicking a Fluid Tank with a Burnable Fluid/Gas inside", + "item.createindustry.flamethrower.tooltip.behaviour2": "The _Fuel_ will be consumed from the tank. _Range_ and _Spread_ change according to your _Fuel_ of choice", + "item.createindustry.lithium_blade.tooltip.summary": "Using _Steel Ingot_Lithium Charges_, this Blade is set aflame burning enemies and shooting out Bolts of _Hellfire_", + "item.createindustry.lithium_blade.tooltip.condition1": "When R-Clicked when Off", + "item.createindustry.lithium_blade.tooltip.behaviour1": "Is set on hellfire, consuming a _Lithium Charge_. Its flame sets enemies on fire for a set amount of time, this fire is renewed even after Enemy extinguishes themself in water ", + "item.createindustry.lithium_blade.tooltip.condition2": "When R-Clicking when On", + "item.createindustry.lithium_blade.tooltip.behaviour2": "Shoots out several bolts of _Hellfire_ consuming the blades charge", + "item.createindustry.pipebomb.tooltip.summary": "So cool", + "item.createindustry.screwdriver.tooltip.summary": "Can lock pipes in place", + "item.createindustry.screwdriver.tooltip.condition1": "When R-Clicking pipe", + "item.createindustry.screwdriver.tooltip.behaviour1": "Locks _Pipe_ in its current rotation allowing for _Pipes_ to be placed next to eachother _Without Connecting_", + + "block.createindustry.formwork_block.tooltip.summary": "Holds Liquid Concrete until it turns into concrete blocks", + "block.createindustry.formwork_block.tooltip.condition1": "When Pumped concrete into", + "block.createindustry.formwork_block.tooltip.behaviour1": "Fills out with _Liquid Concrete_, this Concrete eventually turns into solid blocks", + "block.createindustry.rebar_formwork_block.tooltip.summary": "Holds Liquid Concrete until it turns into rebar concrete blocks", + "block.createindustry.rebar_formwork_block.tooltip.condition1": "When Pumped concrete into", + "block.createindustry.rebar_formwork_block.tooltip.behaviour1": "Fills out with _Liquid Concrete_, this concrete eventually turns into solid rebar concrete blocks", + "block.createindustry.firebox.tooltip.summary": "Uses burnables to function as a blaze burner", + "block.createindustry.firebox.condition1": "When inputted burnables into", + "block.createindustry.firebox.tooltip.behaviour1": "The _Firebox_ will act as a _Blaze Burner_ until it runs out of fuel, there is no way to superheat it", + "block.createindustry.polarizer.tooltip.summary": "Makes Magnetic Ingots out of Steel", + "block.createindustry.polarizer.condition1": "When powered", + "block.createindustry.polarizer.tooltip.behaviour1": "Will turn a _Steel Ingot_ into a _Magnetic Ingot_ when right clicked with a _Steel Ingot_", + "block.createindustry.energy_meter.tooltip.summary": "Measures energy", + "block.createindustry.energy_meter.condition1": "When put on Power Source", + "block.createindustry.energy_meter.tooltip.behaviour1": "Measures the _Energy_ of the _Power Source_", + "block.createindustry.energy_meter.condition2": "When looked on with Engineer's Goggles", + "block.createindustry.energy_meter.tooltip.behaviour2": "Shows detailed info on the sources energy", + "block.createindustry.voltmeter.tooltip.summary": "Measures voltage", + "block.createindustry.voltmeter.condition1": "When put on Power Source", + "block.createindustry.voltmeter.tooltip.behaviour1": "Measures the _Voltage_ of the _Power Source_ the max energy on the _Voltmeter_ is determined by its _Measuring Range_", + "block.createindustry.voltmeter.condition2": "When looked on with Engineer's Goggles", + "block.createindustry.voltmeter.tooltip.behaviour2": "Shows detailed info on the sources _Voltage_ as well as the Voltmeters _Measuring Range_", + "block.createindustry.voltmeter.condition3": "When R-Clicked with Wrench", + "block.createindustry.voltmeter.tooltip.behaviour3": "Changes the _Measuring Range_", + "block.createindustry.converter.tooltip.summary": "Makes other mods compatible with TFMG by adding voltage", + "block.createindustry.converter.condition1": "When Put FE from Bottom", + "block.createindustry.converter.behaviour1": "The _Top_ outputs FE With _Voltage_ making it usable with _TFMG_", + "block.createindustry.light_bulb.tooltip.summary": "Glows when Powered", + "block.createindustry.light_bulb.condition1": "When put on Power Source", + "block.createindustry.light_bulb.behaviour1": "The lightbulb will _Glow_ if _Voltage_ and _Energy_ are balanced, the higher the _Voltage_, the stronger the glow", + "block.createindustry.rgb_light_bulb.tooltip.summary": "Glows in a certain color when Powered", + "block.createindustry.rgb_light_bulb.condition1": "When put on Power Source", + "block.createindustry.rgb_light_bulb.behaviour1": "The lightbulb will _Glow_ if _Voltage_ and _Energy_ are balanced, the higher the _Voltage_, the stronger the glow", + "block.createindustry.rgb_light_bulb.condition2": "When R-Clicked with Wrench", + "block.createindustry.rgb_light_bulb.behaviour2": "Cycles through colors", + "block.createindustry.creative_generator.tooltip.summary": "Outputs energy based on the value on its input panel", + "block.createindustry.cable connector.tooltip.summary": "Right click 2 cable connectors with a _Copper Cable_ amking them transport _Energy_", + "block.createindustry.lithium_torch.tooltip.summary": "Works underwater and can be placed upside down", + "block.createindustry.cable_tube.tooltip.summary": "Transports Energy like a Cable", + "block.createindustry.diagonal_cable_block.tooltip.summary": "Transports Energy like a Cable (But diagonally)", + "block.createindustry.capacitor.tooltip.summary": "Holds a Small Amount of energy (inserted from bottom) that can be outputted Quickly from the Top", + "block.createindustry.accumulator.tooltip.summary": "Holds a Large Amount of energy (inserted from bottom) that can be outputted Slowly from the Top", + "block.createindustry.electric_motor.tooltip.summary": "Changes energy to rotation (rpm configurable on side)", + "block.createindustry.generator.tooltip.summary": "Changes rotation to energy", + "block.createindustry.copper_coil.tooltip.summary": "Increases Voltage", + "block.createindustry.copper_coil.tooltip.behaviour1": "To increase voltage you have to have to towers of coils either next to or one block from eachother, one atleast 1 block larger than the other, both max 5 blocks in height and with their top blocks touching. R-Click the top block in the larger tower with a wrench to make it the output. Energy is both inputted and outputted on the top of their respective towers", + "block.createindustry.flarestack.tooltip.summary": "Burns unneeded oil products", + "block.createindustry.flarestack.tooltip.condition1": "When Pumped burnable Fluids/Gases into from the bottom", + "block.createindustry.flarestack.tooltip.behaviour1": "Deletes what is pumped inside", + "block.createindustry.resistor.tooltip.summary": "Reduces voltage", + "block.createindustry.resistor.tooltip.condition1": "When Put Energy into from the back (where strip of lead is smaller on top of the texture)", + "block.createindustry.resistor.tooltip.behaviour1": "Outputs energy with voltage based on its allowed voltage (configurable on top) on front", + "block.createindustry.galvanic_cell.tooltip.summary": "Has a small amount of unchargable energy inside, ideal for starting your venture into electricity", + "block.createindustry.neon_tube.tooltip.summary": "Glows in a certain color when Powered", + "block.createindustry.neon_tube.condition1": "When put on Power Source", + "block.createindustry.neon_tube.behaviour1": "The tube will _Glow_ ", + "block.createindustry.neon_tube.condition2": "When R-Clicked with Dye", + "block.createindustry.neon_tube.behaviour2": "Changes Color", + "block.createindustry.low_grade_fuel_engine.tooltip.summary": "Makes Rotation from Creosote", + "block.createindustry.low_grade_fuel_engine.condition1": "When Pumped Creosote into", + "block.createindustry.low_grade_fuel_engine.behaviour1": "Will output a small amount of _RPM_ based on the strength of the _Redstone Signal_ inputted into it", + "block.createindustry.compact_engine.tooltip.summary": "Makes Rotation from Gasoline", + "block.createindustry.compact_engine.condition1": "When Gasoline Creosote into", + "block.createindustry.compact_engine.behaviour1": "Will output _RPM_ based on the strength of the _Redstone Signal_ inputted into it", + "block.createindustry.fireclay.tooltip.summary": "It is found in underground veins in the overworld", + "block.createindustry.copper_cable_hub.tooltip.summary": "Can be turned off with redstone", + "block.createindustry.aluminium_cable_hub.tooltip.summary": "Can be turned off with redstone", + "block.createindustry.brass_cable_hub.tooltip.summary": "Can be turned off with redstone", + "block.createindustry.steel_cable_hub.tooltip.summary": "Can be turned off with redstone", + "block.createindustry.heavy_cable_hub.tooltip.summary": "Can be turned off with redstone", + "block.createindustry.steel_casing_cable_hub.tooltip.summary": "Can be turned off with redstone", + "block.createindustry.copycat_cable_block.tooltip.summary": "Can be turned off with redstone", + + + "_": "->------------------------] Ponders [------------------------<-", + + "createindustry.ponder.small_engines.text_1": "To create a small engine, place the front and back parts adjacent to eachother", + "createindustry.ponder.small_engines.text_2": "Fuel is inputted into the front part, and exhaust must be removed from the back part using pipes and an exhaust block", + "createindustry.ponder.small_engines.text_3": "Applying a redstone signal to the front part starts the engine", + "createindustry.ponder.small_engines.text_4": "Small engines include LPG, kerosene and gasoline engines", + "createindustry.ponder.diesel_engine.text_1": "Diesel Engines are assembled by placing a shaft infront of a Diesel Engine block", + "createindustry.ponder.diesel_engine.text_2": "The engine produces exhaust gas which has to be removed with pipes and an exhaust block", + "createindustry.ponder.diesel_engine.text_3": "Air is needed for the engine to run, so an Air Intake is required", + "createindustry.ponder.diesel_engine_expansion.text_1": "Diesel Engine Expansions can give a Diesel Engine two new input slots, for lubrication and radiator fluids", + "createindustry.ponder.surface_scanner.text_1": "The Surface Scanner is used to locate crude oil deposits", + "createindustry.ponder.surface_scanner.text_2": "Providing the machine with rotational power makes it scan for the nearest deposit", + "createindustry.ponder.surface_scanner.text_3": "If a deposit is found, the compass will point towards its location", + "createindustry.ponder.pumpjack.text_1": "To start extracting Oil, you must first build a pipeline on top of a deposit using Industrial Pipes", + "createindustry.ponder.pumpjack.text_2": "Then, construct a Pumpjack on top of the pipeline by first placing down a Pumpjack Base...", + "createindustry.ponder.pumpjack.text_3": "Placing the Pumpjack Hammer behind it...", + "createindustry.ponder.pumpjack.text_4": "Next step is building the Connector And the Head of the Pumpjack above the crank and the base", + "createindustry.ponder.pumpjack.text_5": "Now they need to be connected with Pumpjack Hammer Parts, keep in mind that superglue is needed to finish the structure", + "createindustry.ponder.pumpjack.text_6": "And finally, placing the Machine Input with a Pumpjack Crank above it, as shown in the scene", + "createindustry.ponder.distillation_tower.text_1": "A sufficiently large Steel Fluid Tank can be turned into a Distillation Tower", + "createindustry.ponder.distillation_tower.text_2": "The tower is assembled by first placing a Steel Distillation Tower Controller next to the tank...", + "createindustry.ponder.distillation_tower.text_3": "And placing up to 6 Distillation Tower Outputs, all connected with Industrial Pipes", + "createindustry.ponder.distillation_tower.text_4": "Blaze Burners are required to run the Distillation Tower. The dial displays current power levels", + "createindustry.ponder.distillation_tower.text_5": "To input Crude Oil, it must be pumped into the controller block", + "createindustry.ponder.distillation_tower.text_6": "Each output block provides one of the Oil byproducts", + "createindustry.ponder.distillation_tower.text_7": "LPG", + "createindustry.ponder.distillation_tower.text_8": "Gasoline", + "createindustry.ponder.distillation_tower.text_9": "Naphtha", + "createindustry.ponder.distillation_tower.text_10": "Kerosene", + "createindustry.ponder.distillation_tower.text_11": "Diesel", + "createindustry.ponder.distillation_tower.text_12": "Heavy Oil", + "createindustry.ponder.blast_furnace.text_1": "The base of the Blast Furnace is a Blast Furnace Output block", + "createindustry.ponder.blast_furnace.text_2": "To assemble a Blast Furnace, construct a chimney using Fireproof Bricks as shown in the scene", + "createindustry.ponder.blast_furnace.text_3": "The bottom half of the chimney requires to be reinforced", + "createindustry.ponder.blast_furnace.text_4": "Fuel and other items are inserted through the opening at the top", + "createindustry.ponder.coke_oven.text_1": "The Coke Oven is built by placing Coke Oven blocks as shown in the scene, and clicking its side with a wrench", + "createindustry.ponder.coke_oven.text_2": "The process of coking is slow, so it is more efficient to have long arrays of ovens working simultaneously", + "createindustry.ponder.coke_oven.text_3": "Coal can be inputted from any side", + "createindustry.ponder.coke_oven.text_4": "While running, the oven produces Creosote and CO2 which have to be pumped out for it to function", + "createindustry.ponder.coke_oven.text_5": "Once done, Coal Coke will drop out of the opening", + "createindustry.ponder.casting.text_1": "Casting is the process of pouring liquid metal into a Casting Basin using a Casting Spout", + "createindustry.ponder.casting.text_2": "The Casting Basin, obviously, requires a mold to function", + "createindustry.ponder.radial_engines.text_1": "Radial Engines are a special Type of Engine that doesn't require an exhaust block and has a shaft from both sides", + "createindustry.ponder.radial_engines.text_2": "Clicking the Engine from one of its sides will spawn an input slot that can accept fuel and redstone signals", + "createindustry.ponder.radial_engines.text_3": "Regular Radial Engines uses gasoline as fuel", + "createindustry.ponder.radial_engines.text_4": "Engine will start when redstone signal is applied to the input slot or the block itself", + "createindustry.ponder.radial_engines.text_5": "The second variant of a radial is The Large Radial Engine which uses kerosene as fuel", + "createindustry.ponder.large_generator.text_1": "The main of the Large Generator is the Rotor", + "createindustry.ponder.large_generator.text_2": "To complete the Large Generator, place Stator block around the Rotor", + "createindustry.ponder.large_generator.text_3": "Providing rotational power to the Rotor will produce electric energy", + "createindustry.ponder.large_generator.text_4": "Clicking a side with a wrench will make it the energy output", + + "createindustry.ponder.distillation_tower.header": "Distillation Tower Setup", + + "createindustry.ponder.pumpjack.header": "Building Pumpjacks", + + "createindustry.ponder.surface_scanner.header": "Locating Oil", + + "createindustry.ponder.diesel_engine.header": "Building a Diesel Engine", + + "createindustry.ponder.diesel_engine_expansion.header": "Expanding Diesel Engines", + + "createindustry.ponder.small_engines.header": "Building Small Engines", + + "createindustry.ponder.radial_engines.header": "Using Radial Engines", + + "createindustry.ponder.large_generator.header": "Building a Large Generator", + + "createindustry.ponder.coke_oven.header": "Building a Coke Oven", + + "createindustry.ponder.blast_furnace.header": "Building a Blast Furnace", + + "createindustry.ponder.casting.header": "Casting Metal", + "createindustry.ponder.tag.oil": "Oil Related Machines", + "createindustry.ponder.tag.metallurgy": "Metal Processing", + "createindustry.ponder.tag.oil.description": "Machines that extract, process or use Crude Oil and its byproducts", + "createindustry.ponder.tag.metallurgy.description": "Machines that produce, process or use Metal and raw materials as such", + + "_": "Thank you for translating Create: The Factory Must Grow!" + +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/aluminum_cable_hub.json b/src/generated/resources/assets/createindustry/models/block/aluminum_cable_hub.json new file mode 100644 index 00000000..60b629ea --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/aluminum_cable_hub.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "createindustry:block/aluminum_cable_hub" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/blue_caution_block.json b/src/generated/resources/assets/createindustry/models/block/blue_caution_block.json new file mode 100644 index 00000000..685e0e3f --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/blue_caution_block.json @@ -0,0 +1,7 @@ +{ + "parent": "createindustry:block/caution_block", + "textures": { + "0": "createindustry:block/caution_block/blue", + "particle": "createindustry:block/caution_block/blue" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/brass_cable_hub.json b/src/generated/resources/assets/createindustry/models/block/brass_cable_hub.json new file mode 100644 index 00000000..dfc5e029 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/brass_cable_hub.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "createindustry:block/brass_cable_hub" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/brown_caution_block.json b/src/generated/resources/assets/createindustry/models/block/brown_caution_block.json new file mode 100644 index 00000000..99ebe340 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/brown_caution_block.json @@ -0,0 +1,7 @@ +{ + "parent": "createindustry:block/caution_block", + "textures": { + "0": "createindustry:block/caution_block/brown", + "particle": "createindustry:block/caution_block/brown" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/cast_iron_cap.json b/src/generated/resources/assets/createindustry/models/block/cast_iron_cap.json new file mode 100644 index 00000000..6c0e26ea --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/cast_iron_cap.json @@ -0,0 +1,8 @@ +{ + "parent": "createindustry:block/bars/cap", + "textures": { + "bars": "createindustry:block/bars/cast_iron_bars", + "edge": "createindustry:block/bars/cast_iron_bars_edge", + "particle": "createindustry:block/bars/cast_iron_bars" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/cast_iron_cap_alt.json b/src/generated/resources/assets/createindustry/models/block/cast_iron_cap_alt.json new file mode 100644 index 00000000..ba81d6d1 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/cast_iron_cap_alt.json @@ -0,0 +1,8 @@ +{ + "parent": "createindustry:block/bars/cap_alt", + "textures": { + "bars": "createindustry:block/bars/cast_iron_bars", + "edge": "createindustry:block/bars/cast_iron_bars_edge", + "particle": "createindustry:block/bars/cast_iron_bars" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/cast_iron_ladder.json b/src/generated/resources/assets/createindustry/models/block/cast_iron_ladder.json new file mode 100644 index 00000000..213f87d2 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/cast_iron_ladder.json @@ -0,0 +1,8 @@ +{ + "parent": "createindustry:block/ladder", + "textures": { + "0": "createindustry:block/ladder_cast_iron_hoop", + "1": "createindustry:block/ladder_cast_iron", + "particle": "createindustry:block/ladder_cast_iron" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/cast_iron_post.json b/src/generated/resources/assets/createindustry/models/block/cast_iron_post.json new file mode 100644 index 00000000..526c5da8 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/cast_iron_post.json @@ -0,0 +1,8 @@ +{ + "parent": "createindustry:block/bars/post", + "textures": { + "bars": "createindustry:block/bars/cast_iron_bars", + "edge": "createindustry:block/bars/cast_iron_bars_edge", + "particle": "createindustry:block/bars/cast_iron_bars" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/cast_iron_post_ends.json b/src/generated/resources/assets/createindustry/models/block/cast_iron_post_ends.json new file mode 100644 index 00000000..5549798a --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/cast_iron_post_ends.json @@ -0,0 +1,8 @@ +{ + "parent": "createindustry:block/bars/post_ends", + "textures": { + "bars": "createindustry:block/bars/cast_iron_bars", + "edge": "createindustry:block/bars/cast_iron_bars_edge", + "particle": "createindustry:block/bars/cast_iron_bars" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/cast_iron_side.json b/src/generated/resources/assets/createindustry/models/block/cast_iron_side.json new file mode 100644 index 00000000..8c5dd476 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/cast_iron_side.json @@ -0,0 +1,8 @@ +{ + "parent": "createindustry:block/bars/side", + "textures": { + "bars": "createindustry:block/bars/cast_iron_bars", + "edge": "createindustry:block/bars/cast_iron_bars_edge", + "particle": "createindustry:block/bars/cast_iron_bars" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/cast_iron_side_alt.json b/src/generated/resources/assets/createindustry/models/block/cast_iron_side_alt.json new file mode 100644 index 00000000..4e887cdc --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/cast_iron_side_alt.json @@ -0,0 +1,8 @@ +{ + "parent": "createindustry:block/bars/side_alt", + "textures": { + "bars": "createindustry:block/bars/cast_iron_bars", + "edge": "createindustry:block/bars/cast_iron_bars_edge", + "particle": "createindustry:block/bars/cast_iron_bars" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/copper_cable_hub.json b/src/generated/resources/assets/createindustry/models/block/copper_cable_hub.json new file mode 100644 index 00000000..745aca3d --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/copper_cable_hub.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "createindustry:block/copper_cable_hub" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/creative_generator.json b/src/generated/resources/assets/createindustry/models/block/creative_generator.json new file mode 100644 index 00000000..abdd6e91 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/creative_generator.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "createindustry:block/creative_generator" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/crude_oil.json b/src/generated/resources/assets/createindustry/models/block/crude_oil.json new file mode 100644 index 00000000..958b6d90 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/crude_oil.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "createindustry:fluid/crude_oil_still" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/cut_galena.json b/src/generated/resources/assets/createindustry/models/block/cut_galena.json new file mode 100644 index 00000000..04d566b3 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/cut_galena.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "createindustry:block/palettes/stone_types/cut/galena_cut" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/cut_galena_brick_slab.json b/src/generated/resources/assets/createindustry/models/block/cut_galena_brick_slab.json new file mode 100644 index 00000000..0b349785 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/cut_galena_brick_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "createindustry:block/palettes/stone_types/brick/galena_cut_brick", + "side": "createindustry:block/palettes/stone_types/brick/galena_cut_brick", + "top": "createindustry:block/palettes/stone_types/brick/galena_cut_brick" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/cut_galena_brick_slab_top.json b/src/generated/resources/assets/createindustry/models/block/cut_galena_brick_slab_top.json new file mode 100644 index 00000000..97b6fa00 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/cut_galena_brick_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "createindustry:block/palettes/stone_types/brick/galena_cut_brick", + "side": "createindustry:block/palettes/stone_types/brick/galena_cut_brick", + "top": "createindustry:block/palettes/stone_types/brick/galena_cut_brick" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/cut_galena_brick_stairs.json b/src/generated/resources/assets/createindustry/models/block/cut_galena_brick_stairs.json new file mode 100644 index 00000000..315135e1 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/cut_galena_brick_stairs.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "createindustry:block/palettes/stone_types/brick/galena_cut_brick", + "side": "createindustry:block/palettes/stone_types/brick/galena_cut_brick", + "top": "createindustry:block/palettes/stone_types/brick/galena_cut_brick" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/cut_galena_brick_stairs_inner.json b/src/generated/resources/assets/createindustry/models/block/cut_galena_brick_stairs_inner.json new file mode 100644 index 00000000..4eb15f89 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/cut_galena_brick_stairs_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "createindustry:block/palettes/stone_types/brick/galena_cut_brick", + "side": "createindustry:block/palettes/stone_types/brick/galena_cut_brick", + "top": "createindustry:block/palettes/stone_types/brick/galena_cut_brick" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/cut_galena_brick_stairs_outer.json b/src/generated/resources/assets/createindustry/models/block/cut_galena_brick_stairs_outer.json new file mode 100644 index 00000000..f95e205e --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/cut_galena_brick_stairs_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "createindustry:block/palettes/stone_types/brick/galena_cut_brick", + "side": "createindustry:block/palettes/stone_types/brick/galena_cut_brick", + "top": "createindustry:block/palettes/stone_types/brick/galena_cut_brick" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/cut_galena_bricks.json b/src/generated/resources/assets/createindustry/models/block/cut_galena_bricks.json new file mode 100644 index 00000000..dd9d82ae --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/cut_galena_bricks.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "createindustry:block/palettes/stone_types/brick/galena_cut_brick" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/cut_galena_bricks_wall_post.json b/src/generated/resources/assets/createindustry/models/block/cut_galena_bricks_wall_post.json new file mode 100644 index 00000000..20932cf6 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/cut_galena_bricks_wall_post.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_post", + "textures": { + "wall": "createindustry:block/palettes/stone_types/brick/galena_cut_brick" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/cut_galena_bricks_wall_side.json b/src/generated/resources/assets/createindustry/models/block/cut_galena_bricks_wall_side.json new file mode 100644 index 00000000..a67b849b --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/cut_galena_bricks_wall_side.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side", + "textures": { + "wall": "createindustry:block/palettes/stone_types/brick/galena_cut_brick" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/cut_galena_bricks_wall_side_tall.json b/src/generated/resources/assets/createindustry/models/block/cut_galena_bricks_wall_side_tall.json new file mode 100644 index 00000000..37b03a31 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/cut_galena_bricks_wall_side_tall.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side_tall", + "textures": { + "wall": "createindustry:block/palettes/stone_types/brick/galena_cut_brick" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/cut_galena_slab.json b/src/generated/resources/assets/createindustry/models/block/cut_galena_slab.json new file mode 100644 index 00000000..a2468297 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/cut_galena_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "createindustry:block/palettes/stone_types/cut/galena_cut", + "side": "createindustry:block/palettes/stone_types/cut/galena_cut", + "top": "createindustry:block/palettes/stone_types/cut/galena_cut" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/cut_galena_slab_top.json b/src/generated/resources/assets/createindustry/models/block/cut_galena_slab_top.json new file mode 100644 index 00000000..6b24ab45 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/cut_galena_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "createindustry:block/palettes/stone_types/cut/galena_cut", + "side": "createindustry:block/palettes/stone_types/cut/galena_cut", + "top": "createindustry:block/palettes/stone_types/cut/galena_cut" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/cut_galena_stairs.json b/src/generated/resources/assets/createindustry/models/block/cut_galena_stairs.json new file mode 100644 index 00000000..ade31a10 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/cut_galena_stairs.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "createindustry:block/palettes/stone_types/cut/galena_cut", + "side": "createindustry:block/palettes/stone_types/cut/galena_cut", + "top": "createindustry:block/palettes/stone_types/cut/galena_cut" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/cut_galena_stairs_inner.json b/src/generated/resources/assets/createindustry/models/block/cut_galena_stairs_inner.json new file mode 100644 index 00000000..3646e50b --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/cut_galena_stairs_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "createindustry:block/palettes/stone_types/cut/galena_cut", + "side": "createindustry:block/palettes/stone_types/cut/galena_cut", + "top": "createindustry:block/palettes/stone_types/cut/galena_cut" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/cut_galena_stairs_outer.json b/src/generated/resources/assets/createindustry/models/block/cut_galena_stairs_outer.json new file mode 100644 index 00000000..6465e542 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/cut_galena_stairs_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "createindustry:block/palettes/stone_types/cut/galena_cut", + "side": "createindustry:block/palettes/stone_types/cut/galena_cut", + "top": "createindustry:block/palettes/stone_types/cut/galena_cut" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/cut_galena_wall_post.json b/src/generated/resources/assets/createindustry/models/block/cut_galena_wall_post.json new file mode 100644 index 00000000..d409d19e --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/cut_galena_wall_post.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_post", + "textures": { + "wall": "createindustry:block/palettes/stone_types/cut/galena_cut" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/cut_galena_wall_side.json b/src/generated/resources/assets/createindustry/models/block/cut_galena_wall_side.json new file mode 100644 index 00000000..88d62e97 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/cut_galena_wall_side.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side", + "textures": { + "wall": "createindustry:block/palettes/stone_types/cut/galena_cut" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/cut_galena_wall_side_tall.json b/src/generated/resources/assets/createindustry/models/block/cut_galena_wall_side_tall.json new file mode 100644 index 00000000..10cf683d --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/cut_galena_wall_side_tall.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side_tall", + "textures": { + "wall": "createindustry:block/palettes/stone_types/cut/galena_cut" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/cyan_caution_block.json b/src/generated/resources/assets/createindustry/models/block/cyan_caution_block.json new file mode 100644 index 00000000..0ff761b5 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/cyan_caution_block.json @@ -0,0 +1,7 @@ +{ + "parent": "createindustry:block/caution_block", + "textures": { + "0": "createindustry:block/caution_block/cyan", + "particle": "createindustry:block/caution_block/cyan" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/deepslate_lead_ore.json b/src/generated/resources/assets/createindustry/models/block/deepslate_lead_ore.json new file mode 100644 index 00000000..25de74ff --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/deepslate_lead_ore.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "createindustry:block/deepslate_lead_ore" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/deepslate_lithium_ore.json b/src/generated/resources/assets/createindustry/models/block/deepslate_lithium_ore.json new file mode 100644 index 00000000..e3d80a93 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/deepslate_lithium_ore.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "createindustry:block/deepslate_lithium_ore" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/deepslate_nickel_ore.json b/src/generated/resources/assets/createindustry/models/block/deepslate_nickel_ore.json new file mode 100644 index 00000000..69674a91 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/deepslate_nickel_ore.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "createindustry:block/deepslate_nickel_ore" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/electric_casing.json b/src/generated/resources/assets/createindustry/models/block/electric_casing.json new file mode 100644 index 00000000..b4cccc4f --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/electric_casing.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "createindustry:block/electric_casing" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/galena_natural_0.json b/src/generated/resources/assets/createindustry/models/block/galena_natural_0.json new file mode 100644 index 00000000..fe3dff2e --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/galena_natural_0.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "createindustry:block/palettes/stone_types/natural/galena_0" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/galena_natural_1.json b/src/generated/resources/assets/createindustry/models/block/galena_natural_1.json new file mode 100644 index 00000000..f6551dc0 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/galena_natural_1.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "createindustry:block/palettes/stone_types/natural/galena_1" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/galena_natural_2.json b/src/generated/resources/assets/createindustry/models/block/galena_natural_2.json new file mode 100644 index 00000000..6237b04b --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/galena_natural_2.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "createindustry:block/palettes/stone_types/natural/galena_2" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/galena_natural_3.json b/src/generated/resources/assets/createindustry/models/block/galena_natural_3.json new file mode 100644 index 00000000..599215b8 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/galena_natural_3.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "createindustry:block/palettes/stone_types/natural/galena_3" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/galena_pillar.json b/src/generated/resources/assets/createindustry/models/block/galena_pillar.json new file mode 100644 index 00000000..83f7395a --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/galena_pillar.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "createindustry:block/palettes/stone_types/cap/galena_cut_cap", + "side": "createindustry:block/palettes/stone_types/pillar/galena_cut_pillar" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/galena_pillar_horizontal.json b/src/generated/resources/assets/createindustry/models/block/galena_pillar_horizontal.json new file mode 100644 index 00000000..cb78ef6b --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/galena_pillar_horizontal.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column_horizontal", + "textures": { + "end": "createindustry:block/palettes/stone_types/cap/galena_cut_cap", + "side": "createindustry:block/palettes/stone_types/pillar/galena_cut_pillar" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/gray_caution_block.json b/src/generated/resources/assets/createindustry/models/block/gray_caution_block.json new file mode 100644 index 00000000..7057e54f --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/gray_caution_block.json @@ -0,0 +1,7 @@ +{ + "parent": "createindustry:block/caution_block", + "textures": { + "0": "createindustry:block/caution_block/gray", + "particle": "createindustry:block/caution_block/gray" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/green_caution_block.json b/src/generated/resources/assets/createindustry/models/block/green_caution_block.json new file mode 100644 index 00000000..880fef47 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/green_caution_block.json @@ -0,0 +1,7 @@ +{ + "parent": "createindustry:block/caution_block", + "textures": { + "0": "createindustry:block/caution_block/green", + "particle": "createindustry:block/caution_block/green" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/hardened_planks_bottom.json b/src/generated/resources/assets/createindustry/models/block/hardened_planks_bottom.json new file mode 100644 index 00000000..8222cfbd --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/hardened_planks_bottom.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "createindustry:block/hardened_planks", + "side": "createindustry:block/hardened_planks", + "top": "createindustry:block/hardened_planks" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/hardened_planks_top.json b/src/generated/resources/assets/createindustry/models/block/hardened_planks_top.json new file mode 100644 index 00000000..24d2cccd --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/hardened_planks_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "createindustry:block/hardened_planks", + "side": "createindustry:block/hardened_planks", + "top": "createindustry:block/hardened_planks" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/heavy_cable_hub.json b/src/generated/resources/assets/createindustry/models/block/heavy_cable_hub.json new file mode 100644 index 00000000..302ff58d --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/heavy_cable_hub.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "createindustry:block/heavy_cable_hub" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/heavy_casing_encased_aluminum_cogwheel.json b/src/generated/resources/assets/createindustry/models/block/heavy_casing_encased_aluminum_cogwheel.json new file mode 100644 index 00000000..bebcbafe --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/heavy_casing_encased_aluminum_cogwheel.json @@ -0,0 +1,10 @@ +{ + "parent": "createindustry:block/encased_cogwheel/block", + "textures": { + "1": "createindustry:block/heavy_machinery_casing", + "4": "createindustry:block/heavy_gearbox", + "casing": "createindustry:block/heavy_machinery_casing", + "particle": "createindustry:block/heavy_machinery_casing", + "side": "createindustry:block/heavy_machinery_encased_cogwheel_side" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/heavy_casing_encased_aluminum_cogwheel_bottom.json b/src/generated/resources/assets/createindustry/models/block/heavy_casing_encased_aluminum_cogwheel_bottom.json new file mode 100644 index 00000000..2d099520 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/heavy_casing_encased_aluminum_cogwheel_bottom.json @@ -0,0 +1,10 @@ +{ + "parent": "createindustry:block/encased_cogwheel/block_bottom", + "textures": { + "1": "createindustry:block/heavy_machinery_casing", + "4": "createindustry:block/heavy_gearbox", + "casing": "createindustry:block/heavy_machinery_casing", + "particle": "createindustry:block/heavy_machinery_casing", + "side": "createindustry:block/heavy_machinery_encased_cogwheel_side" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/heavy_casing_encased_aluminum_cogwheel_top.json b/src/generated/resources/assets/createindustry/models/block/heavy_casing_encased_aluminum_cogwheel_top.json new file mode 100644 index 00000000..ec40af04 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/heavy_casing_encased_aluminum_cogwheel_top.json @@ -0,0 +1,10 @@ +{ + "parent": "createindustry:block/encased_cogwheel/block_top", + "textures": { + "1": "createindustry:block/heavy_machinery_casing", + "4": "createindustry:block/heavy_gearbox", + "casing": "createindustry:block/heavy_machinery_casing", + "particle": "createindustry:block/heavy_machinery_casing", + "side": "createindustry:block/heavy_machinery_encased_cogwheel_side" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/heavy_casing_encased_aluminum_cogwheel_top_bottom.json b/src/generated/resources/assets/createindustry/models/block/heavy_casing_encased_aluminum_cogwheel_top_bottom.json new file mode 100644 index 00000000..e0494835 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/heavy_casing_encased_aluminum_cogwheel_top_bottom.json @@ -0,0 +1,10 @@ +{ + "parent": "createindustry:block/encased_cogwheel/block_top_bottom", + "textures": { + "1": "createindustry:block/heavy_machinery_casing", + "4": "createindustry:block/heavy_gearbox", + "casing": "createindustry:block/heavy_machinery_casing", + "particle": "createindustry:block/heavy_machinery_casing", + "side": "createindustry:block/heavy_machinery_encased_cogwheel_side" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/heavy_casing_encased_cogwheel.json b/src/generated/resources/assets/createindustry/models/block/heavy_casing_encased_cogwheel.json new file mode 100644 index 00000000..bebcbafe --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/heavy_casing_encased_cogwheel.json @@ -0,0 +1,10 @@ +{ + "parent": "createindustry:block/encased_cogwheel/block", + "textures": { + "1": "createindustry:block/heavy_machinery_casing", + "4": "createindustry:block/heavy_gearbox", + "casing": "createindustry:block/heavy_machinery_casing", + "particle": "createindustry:block/heavy_machinery_casing", + "side": "createindustry:block/heavy_machinery_encased_cogwheel_side" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/heavy_casing_encased_cogwheel_bottom.json b/src/generated/resources/assets/createindustry/models/block/heavy_casing_encased_cogwheel_bottom.json new file mode 100644 index 00000000..2d099520 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/heavy_casing_encased_cogwheel_bottom.json @@ -0,0 +1,10 @@ +{ + "parent": "createindustry:block/encased_cogwheel/block_bottom", + "textures": { + "1": "createindustry:block/heavy_machinery_casing", + "4": "createindustry:block/heavy_gearbox", + "casing": "createindustry:block/heavy_machinery_casing", + "particle": "createindustry:block/heavy_machinery_casing", + "side": "createindustry:block/heavy_machinery_encased_cogwheel_side" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/heavy_casing_encased_cogwheel_top.json b/src/generated/resources/assets/createindustry/models/block/heavy_casing_encased_cogwheel_top.json new file mode 100644 index 00000000..ec40af04 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/heavy_casing_encased_cogwheel_top.json @@ -0,0 +1,10 @@ +{ + "parent": "createindustry:block/encased_cogwheel/block_top", + "textures": { + "1": "createindustry:block/heavy_machinery_casing", + "4": "createindustry:block/heavy_gearbox", + "casing": "createindustry:block/heavy_machinery_casing", + "particle": "createindustry:block/heavy_machinery_casing", + "side": "createindustry:block/heavy_machinery_encased_cogwheel_side" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/heavy_casing_encased_cogwheel_top_bottom.json b/src/generated/resources/assets/createindustry/models/block/heavy_casing_encased_cogwheel_top_bottom.json new file mode 100644 index 00000000..e0494835 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/heavy_casing_encased_cogwheel_top_bottom.json @@ -0,0 +1,10 @@ +{ + "parent": "createindustry:block/encased_cogwheel/block_top_bottom", + "textures": { + "1": "createindustry:block/heavy_machinery_casing", + "4": "createindustry:block/heavy_gearbox", + "casing": "createindustry:block/heavy_machinery_casing", + "particle": "createindustry:block/heavy_machinery_casing", + "side": "createindustry:block/heavy_machinery_encased_cogwheel_side" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/heavy_casing_encased_large_aluminum_cogwheel.json b/src/generated/resources/assets/createindustry/models/block/heavy_casing_encased_large_aluminum_cogwheel.json new file mode 100644 index 00000000..169a2f09 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/heavy_casing_encased_large_aluminum_cogwheel.json @@ -0,0 +1,10 @@ +{ + "parent": "createindustry:block/encased_large_cogwheel/block", + "textures": { + "1": "createindustry:block/heavy_machinery_casing", + "4": "createindustry:block/heavy_gearbox", + "casing": "createindustry:block/heavy_machinery_casing", + "particle": "createindustry:block/heavy_machinery_casing", + "side": "createindustry:block/heavy_machinery_encased_cogwheel_side_large" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/heavy_casing_encased_large_aluminum_cogwheel_bottom.json b/src/generated/resources/assets/createindustry/models/block/heavy_casing_encased_large_aluminum_cogwheel_bottom.json new file mode 100644 index 00000000..16963303 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/heavy_casing_encased_large_aluminum_cogwheel_bottom.json @@ -0,0 +1,10 @@ +{ + "parent": "createindustry:block/encased_large_cogwheel/block_bottom", + "textures": { + "1": "createindustry:block/heavy_machinery_casing", + "4": "createindustry:block/heavy_gearbox", + "casing": "createindustry:block/heavy_machinery_casing", + "particle": "createindustry:block/heavy_machinery_casing", + "side": "createindustry:block/heavy_machinery_encased_cogwheel_side_large" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/heavy_casing_encased_large_aluminum_cogwheel_top.json b/src/generated/resources/assets/createindustry/models/block/heavy_casing_encased_large_aluminum_cogwheel_top.json new file mode 100644 index 00000000..b81e2c08 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/heavy_casing_encased_large_aluminum_cogwheel_top.json @@ -0,0 +1,10 @@ +{ + "parent": "createindustry:block/encased_large_cogwheel/block_top", + "textures": { + "1": "createindustry:block/heavy_machinery_casing", + "4": "createindustry:block/heavy_gearbox", + "casing": "createindustry:block/heavy_machinery_casing", + "particle": "createindustry:block/heavy_machinery_casing", + "side": "createindustry:block/heavy_machinery_encased_cogwheel_side_large" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/heavy_casing_encased_large_aluminum_cogwheel_top_bottom.json b/src/generated/resources/assets/createindustry/models/block/heavy_casing_encased_large_aluminum_cogwheel_top_bottom.json new file mode 100644 index 00000000..342e3d52 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/heavy_casing_encased_large_aluminum_cogwheel_top_bottom.json @@ -0,0 +1,10 @@ +{ + "parent": "createindustry:block/encased_large_cogwheel/block_top_bottom", + "textures": { + "1": "createindustry:block/heavy_machinery_casing", + "4": "createindustry:block/heavy_gearbox", + "casing": "createindustry:block/heavy_machinery_casing", + "particle": "createindustry:block/heavy_machinery_casing", + "side": "createindustry:block/heavy_machinery_encased_cogwheel_side_large" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/heavy_casing_encased_large_cogwheel.json b/src/generated/resources/assets/createindustry/models/block/heavy_casing_encased_large_cogwheel.json new file mode 100644 index 00000000..169a2f09 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/heavy_casing_encased_large_cogwheel.json @@ -0,0 +1,10 @@ +{ + "parent": "createindustry:block/encased_large_cogwheel/block", + "textures": { + "1": "createindustry:block/heavy_machinery_casing", + "4": "createindustry:block/heavy_gearbox", + "casing": "createindustry:block/heavy_machinery_casing", + "particle": "createindustry:block/heavy_machinery_casing", + "side": "createindustry:block/heavy_machinery_encased_cogwheel_side_large" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/heavy_casing_encased_large_cogwheel_bottom.json b/src/generated/resources/assets/createindustry/models/block/heavy_casing_encased_large_cogwheel_bottom.json new file mode 100644 index 00000000..16963303 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/heavy_casing_encased_large_cogwheel_bottom.json @@ -0,0 +1,10 @@ +{ + "parent": "createindustry:block/encased_large_cogwheel/block_bottom", + "textures": { + "1": "createindustry:block/heavy_machinery_casing", + "4": "createindustry:block/heavy_gearbox", + "casing": "createindustry:block/heavy_machinery_casing", + "particle": "createindustry:block/heavy_machinery_casing", + "side": "createindustry:block/heavy_machinery_encased_cogwheel_side_large" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/heavy_casing_encased_large_cogwheel_top.json b/src/generated/resources/assets/createindustry/models/block/heavy_casing_encased_large_cogwheel_top.json new file mode 100644 index 00000000..b81e2c08 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/heavy_casing_encased_large_cogwheel_top.json @@ -0,0 +1,10 @@ +{ + "parent": "createindustry:block/encased_large_cogwheel/block_top", + "textures": { + "1": "createindustry:block/heavy_machinery_casing", + "4": "createindustry:block/heavy_gearbox", + "casing": "createindustry:block/heavy_machinery_casing", + "particle": "createindustry:block/heavy_machinery_casing", + "side": "createindustry:block/heavy_machinery_encased_cogwheel_side_large" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/heavy_casing_encased_large_cogwheel_top_bottom.json b/src/generated/resources/assets/createindustry/models/block/heavy_casing_encased_large_cogwheel_top_bottom.json new file mode 100644 index 00000000..342e3d52 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/heavy_casing_encased_large_cogwheel_top_bottom.json @@ -0,0 +1,10 @@ +{ + "parent": "createindustry:block/encased_large_cogwheel/block_top_bottom", + "textures": { + "1": "createindustry:block/heavy_machinery_casing", + "4": "createindustry:block/heavy_gearbox", + "casing": "createindustry:block/heavy_machinery_casing", + "particle": "createindustry:block/heavy_machinery_casing", + "side": "createindustry:block/heavy_machinery_encased_cogwheel_side_large" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/heavy_casing_encased_large_steel_cogwheel.json b/src/generated/resources/assets/createindustry/models/block/heavy_casing_encased_large_steel_cogwheel.json new file mode 100644 index 00000000..169a2f09 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/heavy_casing_encased_large_steel_cogwheel.json @@ -0,0 +1,10 @@ +{ + "parent": "createindustry:block/encased_large_cogwheel/block", + "textures": { + "1": "createindustry:block/heavy_machinery_casing", + "4": "createindustry:block/heavy_gearbox", + "casing": "createindustry:block/heavy_machinery_casing", + "particle": "createindustry:block/heavy_machinery_casing", + "side": "createindustry:block/heavy_machinery_encased_cogwheel_side_large" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/heavy_casing_encased_large_steel_cogwheel_bottom.json b/src/generated/resources/assets/createindustry/models/block/heavy_casing_encased_large_steel_cogwheel_bottom.json new file mode 100644 index 00000000..16963303 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/heavy_casing_encased_large_steel_cogwheel_bottom.json @@ -0,0 +1,10 @@ +{ + "parent": "createindustry:block/encased_large_cogwheel/block_bottom", + "textures": { + "1": "createindustry:block/heavy_machinery_casing", + "4": "createindustry:block/heavy_gearbox", + "casing": "createindustry:block/heavy_machinery_casing", + "particle": "createindustry:block/heavy_machinery_casing", + "side": "createindustry:block/heavy_machinery_encased_cogwheel_side_large" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/heavy_casing_encased_large_steel_cogwheel_top.json b/src/generated/resources/assets/createindustry/models/block/heavy_casing_encased_large_steel_cogwheel_top.json new file mode 100644 index 00000000..b81e2c08 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/heavy_casing_encased_large_steel_cogwheel_top.json @@ -0,0 +1,10 @@ +{ + "parent": "createindustry:block/encased_large_cogwheel/block_top", + "textures": { + "1": "createindustry:block/heavy_machinery_casing", + "4": "createindustry:block/heavy_gearbox", + "casing": "createindustry:block/heavy_machinery_casing", + "particle": "createindustry:block/heavy_machinery_casing", + "side": "createindustry:block/heavy_machinery_encased_cogwheel_side_large" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/heavy_casing_encased_large_steel_cogwheel_top_bottom.json b/src/generated/resources/assets/createindustry/models/block/heavy_casing_encased_large_steel_cogwheel_top_bottom.json new file mode 100644 index 00000000..342e3d52 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/heavy_casing_encased_large_steel_cogwheel_top_bottom.json @@ -0,0 +1,10 @@ +{ + "parent": "createindustry:block/encased_large_cogwheel/block_top_bottom", + "textures": { + "1": "createindustry:block/heavy_machinery_casing", + "4": "createindustry:block/heavy_gearbox", + "casing": "createindustry:block/heavy_machinery_casing", + "particle": "createindustry:block/heavy_machinery_casing", + "side": "createindustry:block/heavy_machinery_encased_cogwheel_side_large" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/heavy_casing_encased_steel_cogwheel.json b/src/generated/resources/assets/createindustry/models/block/heavy_casing_encased_steel_cogwheel.json new file mode 100644 index 00000000..bebcbafe --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/heavy_casing_encased_steel_cogwheel.json @@ -0,0 +1,10 @@ +{ + "parent": "createindustry:block/encased_cogwheel/block", + "textures": { + "1": "createindustry:block/heavy_machinery_casing", + "4": "createindustry:block/heavy_gearbox", + "casing": "createindustry:block/heavy_machinery_casing", + "particle": "createindustry:block/heavy_machinery_casing", + "side": "createindustry:block/heavy_machinery_encased_cogwheel_side" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/heavy_casing_encased_steel_cogwheel_bottom.json b/src/generated/resources/assets/createindustry/models/block/heavy_casing_encased_steel_cogwheel_bottom.json new file mode 100644 index 00000000..2d099520 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/heavy_casing_encased_steel_cogwheel_bottom.json @@ -0,0 +1,10 @@ +{ + "parent": "createindustry:block/encased_cogwheel/block_bottom", + "textures": { + "1": "createindustry:block/heavy_machinery_casing", + "4": "createindustry:block/heavy_gearbox", + "casing": "createindustry:block/heavy_machinery_casing", + "particle": "createindustry:block/heavy_machinery_casing", + "side": "createindustry:block/heavy_machinery_encased_cogwheel_side" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/heavy_casing_encased_steel_cogwheel_top.json b/src/generated/resources/assets/createindustry/models/block/heavy_casing_encased_steel_cogwheel_top.json new file mode 100644 index 00000000..ec40af04 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/heavy_casing_encased_steel_cogwheel_top.json @@ -0,0 +1,10 @@ +{ + "parent": "createindustry:block/encased_cogwheel/block_top", + "textures": { + "1": "createindustry:block/heavy_machinery_casing", + "4": "createindustry:block/heavy_gearbox", + "casing": "createindustry:block/heavy_machinery_casing", + "particle": "createindustry:block/heavy_machinery_casing", + "side": "createindustry:block/heavy_machinery_encased_cogwheel_side" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/heavy_casing_encased_steel_cogwheel_top_bottom.json b/src/generated/resources/assets/createindustry/models/block/heavy_casing_encased_steel_cogwheel_top_bottom.json new file mode 100644 index 00000000..e0494835 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/heavy_casing_encased_steel_cogwheel_top_bottom.json @@ -0,0 +1,10 @@ +{ + "parent": "createindustry:block/encased_cogwheel/block_top_bottom", + "textures": { + "1": "createindustry:block/heavy_machinery_casing", + "4": "createindustry:block/heavy_gearbox", + "casing": "createindustry:block/heavy_machinery_casing", + "particle": "createindustry:block/heavy_machinery_casing", + "side": "createindustry:block/heavy_machinery_encased_cogwheel_side" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/layered_galena.json b/src/generated/resources/assets/createindustry/models/block/layered_galena.json new file mode 100644 index 00000000..54f3ed0e --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/layered_galena.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "createindustry:block/palettes/stone_types/cap/galena_cut_cap", + "side": "createindustry:block/palettes/stone_types/layered/galena_cut_layered" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/lead_block.json b/src/generated/resources/assets/createindustry/models/block/lead_block.json new file mode 100644 index 00000000..8743f12c --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/lead_block.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "createindustry:block/lead_block" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/lead_cap.json b/src/generated/resources/assets/createindustry/models/block/lead_cap.json new file mode 100644 index 00000000..265ee7d2 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/lead_cap.json @@ -0,0 +1,8 @@ +{ + "parent": "createindustry:block/bars/cap", + "textures": { + "bars": "createindustry:block/bars/lead_bars", + "edge": "createindustry:block/bars/lead_bars_edge", + "particle": "createindustry:block/bars/lead_bars" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/lead_cap_alt.json b/src/generated/resources/assets/createindustry/models/block/lead_cap_alt.json new file mode 100644 index 00000000..937b9eaa --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/lead_cap_alt.json @@ -0,0 +1,8 @@ +{ + "parent": "createindustry:block/bars/cap_alt", + "textures": { + "bars": "createindustry:block/bars/lead_bars", + "edge": "createindustry:block/bars/lead_bars_edge", + "particle": "createindustry:block/bars/lead_bars" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/lead_glass.json b/src/generated/resources/assets/createindustry/models/block/lead_glass.json new file mode 100644 index 00000000..51714a36 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/lead_glass.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "createindustry:block/lead_glass" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/lead_ladder.json b/src/generated/resources/assets/createindustry/models/block/lead_ladder.json new file mode 100644 index 00000000..ee76bf9c --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/lead_ladder.json @@ -0,0 +1,8 @@ +{ + "parent": "createindustry:block/ladder", + "textures": { + "0": "createindustry:block/ladder_lead_hoop", + "1": "createindustry:block/ladder_lead", + "particle": "createindustry:block/ladder_lead" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/lead_ore.json b/src/generated/resources/assets/createindustry/models/block/lead_ore.json new file mode 100644 index 00000000..aeb54ee5 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/lead_ore.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "createindustry:block/lead_ore" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/lead_post.json b/src/generated/resources/assets/createindustry/models/block/lead_post.json new file mode 100644 index 00000000..5881754a --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/lead_post.json @@ -0,0 +1,8 @@ +{ + "parent": "createindustry:block/bars/post", + "textures": { + "bars": "createindustry:block/bars/lead_bars", + "edge": "createindustry:block/bars/lead_bars_edge", + "particle": "createindustry:block/bars/lead_bars" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/lead_post_ends.json b/src/generated/resources/assets/createindustry/models/block/lead_post_ends.json new file mode 100644 index 00000000..fde8d555 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/lead_post_ends.json @@ -0,0 +1,8 @@ +{ + "parent": "createindustry:block/bars/post_ends", + "textures": { + "bars": "createindustry:block/bars/lead_bars", + "edge": "createindustry:block/bars/lead_bars_edge", + "particle": "createindustry:block/bars/lead_bars" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/lead_side.json b/src/generated/resources/assets/createindustry/models/block/lead_side.json new file mode 100644 index 00000000..dad5a2b0 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/lead_side.json @@ -0,0 +1,8 @@ +{ + "parent": "createindustry:block/bars/side", + "textures": { + "bars": "createindustry:block/bars/lead_bars", + "edge": "createindustry:block/bars/lead_bars_edge", + "particle": "createindustry:block/bars/lead_bars" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/lead_side_alt.json b/src/generated/resources/assets/createindustry/models/block/lead_side_alt.json new file mode 100644 index 00000000..f7df504d --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/lead_side_alt.json @@ -0,0 +1,8 @@ +{ + "parent": "createindustry:block/bars/side_alt", + "textures": { + "bars": "createindustry:block/bars/lead_bars", + "edge": "createindustry:block/bars/lead_bars_edge", + "particle": "createindustry:block/bars/lead_bars" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/light_blue_caution_block.json b/src/generated/resources/assets/createindustry/models/block/light_blue_caution_block.json new file mode 100644 index 00000000..32a0ce37 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/light_blue_caution_block.json @@ -0,0 +1,7 @@ +{ + "parent": "createindustry:block/caution_block", + "textures": { + "0": "createindustry:block/caution_block/light_blue", + "particle": "createindustry:block/caution_block/light_blue" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/light_gray_caution_block.json b/src/generated/resources/assets/createindustry/models/block/light_gray_caution_block.json new file mode 100644 index 00000000..a921a266 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/light_gray_caution_block.json @@ -0,0 +1,7 @@ +{ + "parent": "createindustry:block/caution_block", + "textures": { + "0": "createindustry:block/caution_block/light_gray", + "particle": "createindustry:block/caution_block/light_gray" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/lime_caution_block.json b/src/generated/resources/assets/createindustry/models/block/lime_caution_block.json new file mode 100644 index 00000000..606fd28e --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/lime_caution_block.json @@ -0,0 +1,7 @@ +{ + "parent": "createindustry:block/caution_block", + "textures": { + "0": "createindustry:block/caution_block/lime", + "particle": "createindustry:block/caution_block/lime" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/lithium_block.json b/src/generated/resources/assets/createindustry/models/block/lithium_block.json new file mode 100644 index 00000000..325af957 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/lithium_block.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "createindustry:block/lithium_block" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/lithium_ore.json b/src/generated/resources/assets/createindustry/models/block/lithium_ore.json new file mode 100644 index 00000000..19086516 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/lithium_ore.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "createindustry:block/lithium_ore" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/magenta_caution_block.json b/src/generated/resources/assets/createindustry/models/block/magenta_caution_block.json new file mode 100644 index 00000000..52b11be9 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/magenta_caution_block.json @@ -0,0 +1,7 @@ +{ + "parent": "createindustry:block/caution_block", + "textures": { + "0": "createindustry:block/caution_block/magenta", + "particle": "createindustry:block/caution_block/magenta" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/nickel_block.json b/src/generated/resources/assets/createindustry/models/block/nickel_block.json new file mode 100644 index 00000000..44792d20 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/nickel_block.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "createindustry:block/nickel_block" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/nickel_cap.json b/src/generated/resources/assets/createindustry/models/block/nickel_cap.json new file mode 100644 index 00000000..06455e4f --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/nickel_cap.json @@ -0,0 +1,8 @@ +{ + "parent": "createindustry:block/bars/cap", + "textures": { + "bars": "createindustry:block/bars/nickel_bars", + "edge": "createindustry:block/bars/nickel_bars_edge", + "particle": "createindustry:block/bars/nickel_bars" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/nickel_cap_alt.json b/src/generated/resources/assets/createindustry/models/block/nickel_cap_alt.json new file mode 100644 index 00000000..2430ad71 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/nickel_cap_alt.json @@ -0,0 +1,8 @@ +{ + "parent": "createindustry:block/bars/cap_alt", + "textures": { + "bars": "createindustry:block/bars/nickel_bars", + "edge": "createindustry:block/bars/nickel_bars_edge", + "particle": "createindustry:block/bars/nickel_bars" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/nickel_ladder.json b/src/generated/resources/assets/createindustry/models/block/nickel_ladder.json new file mode 100644 index 00000000..d5f23da3 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/nickel_ladder.json @@ -0,0 +1,8 @@ +{ + "parent": "createindustry:block/ladder", + "textures": { + "0": "createindustry:block/ladder_nickel_hoop", + "1": "createindustry:block/ladder_nickel", + "particle": "createindustry:block/ladder_nickel" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/nickel_ore.json b/src/generated/resources/assets/createindustry/models/block/nickel_ore.json new file mode 100644 index 00000000..aae08867 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/nickel_ore.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "createindustry:block/nickel_ore" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/nickel_post.json b/src/generated/resources/assets/createindustry/models/block/nickel_post.json new file mode 100644 index 00000000..f571160c --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/nickel_post.json @@ -0,0 +1,8 @@ +{ + "parent": "createindustry:block/bars/post", + "textures": { + "bars": "createindustry:block/bars/nickel_bars", + "edge": "createindustry:block/bars/nickel_bars_edge", + "particle": "createindustry:block/bars/nickel_bars" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/nickel_post_ends.json b/src/generated/resources/assets/createindustry/models/block/nickel_post_ends.json new file mode 100644 index 00000000..c511dc69 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/nickel_post_ends.json @@ -0,0 +1,8 @@ +{ + "parent": "createindustry:block/bars/post_ends", + "textures": { + "bars": "createindustry:block/bars/nickel_bars", + "edge": "createindustry:block/bars/nickel_bars_edge", + "particle": "createindustry:block/bars/nickel_bars" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/nickel_side.json b/src/generated/resources/assets/createindustry/models/block/nickel_side.json new file mode 100644 index 00000000..6d8b0f04 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/nickel_side.json @@ -0,0 +1,8 @@ +{ + "parent": "createindustry:block/bars/side", + "textures": { + "bars": "createindustry:block/bars/nickel_bars", + "edge": "createindustry:block/bars/nickel_bars_edge", + "particle": "createindustry:block/bars/nickel_bars" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/nickel_side_alt.json b/src/generated/resources/assets/createindustry/models/block/nickel_side_alt.json new file mode 100644 index 00000000..54ee61a2 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/nickel_side_alt.json @@ -0,0 +1,8 @@ +{ + "parent": "createindustry:block/bars/side_alt", + "textures": { + "bars": "createindustry:block/bars/nickel_bars", + "edge": "createindustry:block/bars/nickel_bars_edge", + "particle": "createindustry:block/bars/nickel_bars" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/orange_caution_block.json b/src/generated/resources/assets/createindustry/models/block/orange_caution_block.json new file mode 100644 index 00000000..127f34b0 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/orange_caution_block.json @@ -0,0 +1,7 @@ +{ + "parent": "createindustry:block/caution_block", + "textures": { + "0": "createindustry:block/caution_block/orange", + "particle": "createindustry:block/caution_block/orange" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/pink_caution_block.json b/src/generated/resources/assets/createindustry/models/block/pink_caution_block.json new file mode 100644 index 00000000..953e784d --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/pink_caution_block.json @@ -0,0 +1,7 @@ +{ + "parent": "createindustry:block/caution_block", + "textures": { + "0": "createindustry:block/caution_block/pink", + "particle": "createindustry:block/caution_block/pink" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/polished_cut_galena.json b/src/generated/resources/assets/createindustry/models/block/polished_cut_galena.json new file mode 100644 index 00000000..1791bd8b --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/polished_cut_galena.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "createindustry:block/palettes/stone_types/polished/galena_cut_polished" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/polished_cut_galena_slab.json b/src/generated/resources/assets/createindustry/models/block/polished_cut_galena_slab.json new file mode 100644 index 00000000..5bc3f37b --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/polished_cut_galena_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "createindustry:block/palettes/stone_types/polished/galena_cut_polished", + "side": "createindustry:block/palettes/stone_types/slab/galena_cut_slab", + "top": "createindustry:block/palettes/stone_types/polished/galena_cut_polished" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/polished_cut_galena_slab_double.json b/src/generated/resources/assets/createindustry/models/block/polished_cut_galena_slab_double.json new file mode 100644 index 00000000..fd8b4be2 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/polished_cut_galena_slab_double.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "createindustry:block/palettes/stone_types/polished/galena_cut_polished", + "side": "createindustry:block/palettes/stone_types/slab/galena_cut_slab" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/polished_cut_galena_slab_top.json b/src/generated/resources/assets/createindustry/models/block/polished_cut_galena_slab_top.json new file mode 100644 index 00000000..ff9151b6 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/polished_cut_galena_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "createindustry:block/palettes/stone_types/polished/galena_cut_polished", + "side": "createindustry:block/palettes/stone_types/slab/galena_cut_slab", + "top": "createindustry:block/palettes/stone_types/polished/galena_cut_polished" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/polished_cut_galena_stairs.json b/src/generated/resources/assets/createindustry/models/block/polished_cut_galena_stairs.json new file mode 100644 index 00000000..8405778a --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/polished_cut_galena_stairs.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "createindustry:block/palettes/stone_types/polished/galena_cut_polished", + "side": "createindustry:block/palettes/stone_types/polished/galena_cut_polished", + "top": "createindustry:block/palettes/stone_types/polished/galena_cut_polished" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/polished_cut_galena_stairs_inner.json b/src/generated/resources/assets/createindustry/models/block/polished_cut_galena_stairs_inner.json new file mode 100644 index 00000000..477a3c30 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/polished_cut_galena_stairs_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "createindustry:block/palettes/stone_types/polished/galena_cut_polished", + "side": "createindustry:block/palettes/stone_types/polished/galena_cut_polished", + "top": "createindustry:block/palettes/stone_types/polished/galena_cut_polished" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/polished_cut_galena_stairs_outer.json b/src/generated/resources/assets/createindustry/models/block/polished_cut_galena_stairs_outer.json new file mode 100644 index 00000000..942d555b --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/polished_cut_galena_stairs_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "createindustry:block/palettes/stone_types/polished/galena_cut_polished", + "side": "createindustry:block/palettes/stone_types/polished/galena_cut_polished", + "top": "createindustry:block/palettes/stone_types/polished/galena_cut_polished" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/polished_cut_galena_wall_post.json b/src/generated/resources/assets/createindustry/models/block/polished_cut_galena_wall_post.json new file mode 100644 index 00000000..31e725a5 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/polished_cut_galena_wall_post.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_post", + "textures": { + "wall": "createindustry:block/palettes/stone_types/polished/galena_cut_polished" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/polished_cut_galena_wall_side.json b/src/generated/resources/assets/createindustry/models/block/polished_cut_galena_wall_side.json new file mode 100644 index 00000000..5f367b20 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/polished_cut_galena_wall_side.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side", + "textures": { + "wall": "createindustry:block/palettes/stone_types/polished/galena_cut_polished" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/polished_cut_galena_wall_side_tall.json b/src/generated/resources/assets/createindustry/models/block/polished_cut_galena_wall_side_tall.json new file mode 100644 index 00000000..147cc468 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/polished_cut_galena_wall_side_tall.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side_tall", + "textures": { + "wall": "createindustry:block/palettes/stone_types/polished/galena_cut_polished" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/purple_caution_block.json b/src/generated/resources/assets/createindustry/models/block/purple_caution_block.json new file mode 100644 index 00000000..f41d873c --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/purple_caution_block.json @@ -0,0 +1,7 @@ +{ + "parent": "createindustry:block/caution_block", + "textures": { + "0": "createindustry:block/caution_block/purple", + "particle": "createindustry:block/caution_block/purple" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/small_galena_brick_slab.json b/src/generated/resources/assets/createindustry/models/block/small_galena_brick_slab.json new file mode 100644 index 00000000..011aac35 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/small_galena_brick_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "createindustry:block/palettes/stone_types/small_brick/galena_cut_small_brick", + "side": "createindustry:block/palettes/stone_types/small_brick/galena_cut_small_brick", + "top": "createindustry:block/palettes/stone_types/small_brick/galena_cut_small_brick" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/small_galena_brick_slab_top.json b/src/generated/resources/assets/createindustry/models/block/small_galena_brick_slab_top.json new file mode 100644 index 00000000..a6198d49 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/small_galena_brick_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "createindustry:block/palettes/stone_types/small_brick/galena_cut_small_brick", + "side": "createindustry:block/palettes/stone_types/small_brick/galena_cut_small_brick", + "top": "createindustry:block/palettes/stone_types/small_brick/galena_cut_small_brick" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/small_galena_brick_stairs.json b/src/generated/resources/assets/createindustry/models/block/small_galena_brick_stairs.json new file mode 100644 index 00000000..fa6bfe45 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/small_galena_brick_stairs.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "createindustry:block/palettes/stone_types/small_brick/galena_cut_small_brick", + "side": "createindustry:block/palettes/stone_types/small_brick/galena_cut_small_brick", + "top": "createindustry:block/palettes/stone_types/small_brick/galena_cut_small_brick" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/small_galena_brick_stairs_inner.json b/src/generated/resources/assets/createindustry/models/block/small_galena_brick_stairs_inner.json new file mode 100644 index 00000000..6ed8b0f5 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/small_galena_brick_stairs_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "createindustry:block/palettes/stone_types/small_brick/galena_cut_small_brick", + "side": "createindustry:block/palettes/stone_types/small_brick/galena_cut_small_brick", + "top": "createindustry:block/palettes/stone_types/small_brick/galena_cut_small_brick" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/small_galena_brick_stairs_outer.json b/src/generated/resources/assets/createindustry/models/block/small_galena_brick_stairs_outer.json new file mode 100644 index 00000000..2b0a26ed --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/small_galena_brick_stairs_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "createindustry:block/palettes/stone_types/small_brick/galena_cut_small_brick", + "side": "createindustry:block/palettes/stone_types/small_brick/galena_cut_small_brick", + "top": "createindustry:block/palettes/stone_types/small_brick/galena_cut_small_brick" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/small_galena_bricks.json b/src/generated/resources/assets/createindustry/models/block/small_galena_bricks.json new file mode 100644 index 00000000..76036f4f --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/small_galena_bricks.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "createindustry:block/palettes/stone_types/small_brick/galena_cut_small_brick" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/small_galena_bricks_wall_post.json b/src/generated/resources/assets/createindustry/models/block/small_galena_bricks_wall_post.json new file mode 100644 index 00000000..792c9ade --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/small_galena_bricks_wall_post.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_post", + "textures": { + "wall": "createindustry:block/palettes/stone_types/small_brick/galena_cut_small_brick" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/small_galena_bricks_wall_side.json b/src/generated/resources/assets/createindustry/models/block/small_galena_bricks_wall_side.json new file mode 100644 index 00000000..92be81be --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/small_galena_bricks_wall_side.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side", + "textures": { + "wall": "createindustry:block/palettes/stone_types/small_brick/galena_cut_small_brick" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/small_galena_bricks_wall_side_tall.json b/src/generated/resources/assets/createindustry/models/block/small_galena_bricks_wall_side_tall.json new file mode 100644 index 00000000..b8079ead --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/small_galena_bricks_wall_side_tall.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side_tall", + "textures": { + "wall": "createindustry:block/palettes/stone_types/small_brick/galena_cut_small_brick" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/steel_cable_hub.json b/src/generated/resources/assets/createindustry/models/block/steel_cable_hub.json new file mode 100644 index 00000000..edae635d --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/steel_cable_hub.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "createindustry:block/steel_cable_hub" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/steel_casing_cable_hub.json b/src/generated/resources/assets/createindustry/models/block/steel_casing_cable_hub.json new file mode 100644 index 00000000..17facd89 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/steel_casing_cable_hub.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "createindustry:block/steel_casing_cable_hub" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/steel_encased_aluminum_cogwheel.json b/src/generated/resources/assets/createindustry/models/block/steel_encased_aluminum_cogwheel.json new file mode 100644 index 00000000..ec6ea4e6 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/steel_encased_aluminum_cogwheel.json @@ -0,0 +1,10 @@ +{ + "parent": "createindustry:block/encased_cogwheel/block", + "textures": { + "1": "createindustry:block/steel_casing", + "4": "createindustry:block/steel_gearbox", + "casing": "createindustry:block/steel_casing", + "particle": "createindustry:block/steel_casing", + "side": "createindustry:block/steel_encased_cogwheel_side" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/steel_encased_aluminum_cogwheel_bottom.json b/src/generated/resources/assets/createindustry/models/block/steel_encased_aluminum_cogwheel_bottom.json new file mode 100644 index 00000000..f2b5d7b3 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/steel_encased_aluminum_cogwheel_bottom.json @@ -0,0 +1,10 @@ +{ + "parent": "createindustry:block/encased_cogwheel/block_bottom", + "textures": { + "1": "createindustry:block/steel_casing", + "4": "createindustry:block/steel_gearbox", + "casing": "createindustry:block/steel_casing", + "particle": "createindustry:block/steel_casing", + "side": "createindustry:block/steel_encased_cogwheel_side" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/steel_encased_aluminum_cogwheel_top.json b/src/generated/resources/assets/createindustry/models/block/steel_encased_aluminum_cogwheel_top.json new file mode 100644 index 00000000..b42dc6e6 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/steel_encased_aluminum_cogwheel_top.json @@ -0,0 +1,10 @@ +{ + "parent": "createindustry:block/encased_cogwheel/block_top", + "textures": { + "1": "createindustry:block/steel_casing", + "4": "createindustry:block/steel_gearbox", + "casing": "createindustry:block/steel_casing", + "particle": "createindustry:block/steel_casing", + "side": "createindustry:block/steel_encased_cogwheel_side" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/steel_encased_aluminum_cogwheel_top_bottom.json b/src/generated/resources/assets/createindustry/models/block/steel_encased_aluminum_cogwheel_top_bottom.json new file mode 100644 index 00000000..d13b5217 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/steel_encased_aluminum_cogwheel_top_bottom.json @@ -0,0 +1,10 @@ +{ + "parent": "createindustry:block/encased_cogwheel/block_top_bottom", + "textures": { + "1": "createindustry:block/steel_casing", + "4": "createindustry:block/steel_gearbox", + "casing": "createindustry:block/steel_casing", + "particle": "createindustry:block/steel_casing", + "side": "createindustry:block/steel_encased_cogwheel_side" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/steel_encased_cogwheel.json b/src/generated/resources/assets/createindustry/models/block/steel_encased_cogwheel.json new file mode 100644 index 00000000..ec6ea4e6 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/steel_encased_cogwheel.json @@ -0,0 +1,10 @@ +{ + "parent": "createindustry:block/encased_cogwheel/block", + "textures": { + "1": "createindustry:block/steel_casing", + "4": "createindustry:block/steel_gearbox", + "casing": "createindustry:block/steel_casing", + "particle": "createindustry:block/steel_casing", + "side": "createindustry:block/steel_encased_cogwheel_side" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/steel_encased_cogwheel_bottom.json b/src/generated/resources/assets/createindustry/models/block/steel_encased_cogwheel_bottom.json new file mode 100644 index 00000000..f2b5d7b3 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/steel_encased_cogwheel_bottom.json @@ -0,0 +1,10 @@ +{ + "parent": "createindustry:block/encased_cogwheel/block_bottom", + "textures": { + "1": "createindustry:block/steel_casing", + "4": "createindustry:block/steel_gearbox", + "casing": "createindustry:block/steel_casing", + "particle": "createindustry:block/steel_casing", + "side": "createindustry:block/steel_encased_cogwheel_side" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/steel_encased_cogwheel_top.json b/src/generated/resources/assets/createindustry/models/block/steel_encased_cogwheel_top.json new file mode 100644 index 00000000..b42dc6e6 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/steel_encased_cogwheel_top.json @@ -0,0 +1,10 @@ +{ + "parent": "createindustry:block/encased_cogwheel/block_top", + "textures": { + "1": "createindustry:block/steel_casing", + "4": "createindustry:block/steel_gearbox", + "casing": "createindustry:block/steel_casing", + "particle": "createindustry:block/steel_casing", + "side": "createindustry:block/steel_encased_cogwheel_side" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/steel_encased_cogwheel_top_bottom.json b/src/generated/resources/assets/createindustry/models/block/steel_encased_cogwheel_top_bottom.json new file mode 100644 index 00000000..d13b5217 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/steel_encased_cogwheel_top_bottom.json @@ -0,0 +1,10 @@ +{ + "parent": "createindustry:block/encased_cogwheel/block_top_bottom", + "textures": { + "1": "createindustry:block/steel_casing", + "4": "createindustry:block/steel_gearbox", + "casing": "createindustry:block/steel_casing", + "particle": "createindustry:block/steel_casing", + "side": "createindustry:block/steel_encased_cogwheel_side" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/steel_encased_large_aluminum_cogwheel.json b/src/generated/resources/assets/createindustry/models/block/steel_encased_large_aluminum_cogwheel.json new file mode 100644 index 00000000..346690ae --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/steel_encased_large_aluminum_cogwheel.json @@ -0,0 +1,10 @@ +{ + "parent": "createindustry:block/encased_large_cogwheel/block", + "textures": { + "1": "createindustry:block/steel_casing", + "4": "createindustry:block/steel_gearbox", + "casing": "createindustry:block/steel_casing", + "particle": "createindustry:block/steel_casing", + "side": "createindustry:block/steel_encased_cogwheel_side_large" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/steel_encased_large_aluminum_cogwheel_bottom.json b/src/generated/resources/assets/createindustry/models/block/steel_encased_large_aluminum_cogwheel_bottom.json new file mode 100644 index 00000000..91386e6c --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/steel_encased_large_aluminum_cogwheel_bottom.json @@ -0,0 +1,10 @@ +{ + "parent": "createindustry:block/encased_large_cogwheel/block_bottom", + "textures": { + "1": "createindustry:block/steel_casing", + "4": "createindustry:block/steel_gearbox", + "casing": "createindustry:block/steel_casing", + "particle": "createindustry:block/steel_casing", + "side": "createindustry:block/steel_encased_cogwheel_side_large" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/steel_encased_large_aluminum_cogwheel_top.json b/src/generated/resources/assets/createindustry/models/block/steel_encased_large_aluminum_cogwheel_top.json new file mode 100644 index 00000000..e1a12a88 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/steel_encased_large_aluminum_cogwheel_top.json @@ -0,0 +1,10 @@ +{ + "parent": "createindustry:block/encased_large_cogwheel/block_top", + "textures": { + "1": "createindustry:block/steel_casing", + "4": "createindustry:block/steel_gearbox", + "casing": "createindustry:block/steel_casing", + "particle": "createindustry:block/steel_casing", + "side": "createindustry:block/steel_encased_cogwheel_side_large" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/steel_encased_large_aluminum_cogwheel_top_bottom.json b/src/generated/resources/assets/createindustry/models/block/steel_encased_large_aluminum_cogwheel_top_bottom.json new file mode 100644 index 00000000..aa2ed068 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/steel_encased_large_aluminum_cogwheel_top_bottom.json @@ -0,0 +1,10 @@ +{ + "parent": "createindustry:block/encased_large_cogwheel/block_top_bottom", + "textures": { + "1": "createindustry:block/steel_casing", + "4": "createindustry:block/steel_gearbox", + "casing": "createindustry:block/steel_casing", + "particle": "createindustry:block/steel_casing", + "side": "createindustry:block/steel_encased_cogwheel_side_large" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/steel_encased_large_cogwheel.json b/src/generated/resources/assets/createindustry/models/block/steel_encased_large_cogwheel.json new file mode 100644 index 00000000..346690ae --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/steel_encased_large_cogwheel.json @@ -0,0 +1,10 @@ +{ + "parent": "createindustry:block/encased_large_cogwheel/block", + "textures": { + "1": "createindustry:block/steel_casing", + "4": "createindustry:block/steel_gearbox", + "casing": "createindustry:block/steel_casing", + "particle": "createindustry:block/steel_casing", + "side": "createindustry:block/steel_encased_cogwheel_side_large" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/steel_encased_large_cogwheel_bottom.json b/src/generated/resources/assets/createindustry/models/block/steel_encased_large_cogwheel_bottom.json new file mode 100644 index 00000000..91386e6c --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/steel_encased_large_cogwheel_bottom.json @@ -0,0 +1,10 @@ +{ + "parent": "createindustry:block/encased_large_cogwheel/block_bottom", + "textures": { + "1": "createindustry:block/steel_casing", + "4": "createindustry:block/steel_gearbox", + "casing": "createindustry:block/steel_casing", + "particle": "createindustry:block/steel_casing", + "side": "createindustry:block/steel_encased_cogwheel_side_large" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/steel_encased_large_cogwheel_top.json b/src/generated/resources/assets/createindustry/models/block/steel_encased_large_cogwheel_top.json new file mode 100644 index 00000000..e1a12a88 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/steel_encased_large_cogwheel_top.json @@ -0,0 +1,10 @@ +{ + "parent": "createindustry:block/encased_large_cogwheel/block_top", + "textures": { + "1": "createindustry:block/steel_casing", + "4": "createindustry:block/steel_gearbox", + "casing": "createindustry:block/steel_casing", + "particle": "createindustry:block/steel_casing", + "side": "createindustry:block/steel_encased_cogwheel_side_large" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/steel_encased_large_cogwheel_top_bottom.json b/src/generated/resources/assets/createindustry/models/block/steel_encased_large_cogwheel_top_bottom.json new file mode 100644 index 00000000..aa2ed068 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/steel_encased_large_cogwheel_top_bottom.json @@ -0,0 +1,10 @@ +{ + "parent": "createindustry:block/encased_large_cogwheel/block_top_bottom", + "textures": { + "1": "createindustry:block/steel_casing", + "4": "createindustry:block/steel_gearbox", + "casing": "createindustry:block/steel_casing", + "particle": "createindustry:block/steel_casing", + "side": "createindustry:block/steel_encased_cogwheel_side_large" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/steel_encased_large_steel_cogwheel.json b/src/generated/resources/assets/createindustry/models/block/steel_encased_large_steel_cogwheel.json new file mode 100644 index 00000000..346690ae --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/steel_encased_large_steel_cogwheel.json @@ -0,0 +1,10 @@ +{ + "parent": "createindustry:block/encased_large_cogwheel/block", + "textures": { + "1": "createindustry:block/steel_casing", + "4": "createindustry:block/steel_gearbox", + "casing": "createindustry:block/steel_casing", + "particle": "createindustry:block/steel_casing", + "side": "createindustry:block/steel_encased_cogwheel_side_large" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/steel_encased_large_steel_cogwheel_bottom.json b/src/generated/resources/assets/createindustry/models/block/steel_encased_large_steel_cogwheel_bottom.json new file mode 100644 index 00000000..91386e6c --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/steel_encased_large_steel_cogwheel_bottom.json @@ -0,0 +1,10 @@ +{ + "parent": "createindustry:block/encased_large_cogwheel/block_bottom", + "textures": { + "1": "createindustry:block/steel_casing", + "4": "createindustry:block/steel_gearbox", + "casing": "createindustry:block/steel_casing", + "particle": "createindustry:block/steel_casing", + "side": "createindustry:block/steel_encased_cogwheel_side_large" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/steel_encased_large_steel_cogwheel_top.json b/src/generated/resources/assets/createindustry/models/block/steel_encased_large_steel_cogwheel_top.json new file mode 100644 index 00000000..e1a12a88 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/steel_encased_large_steel_cogwheel_top.json @@ -0,0 +1,10 @@ +{ + "parent": "createindustry:block/encased_large_cogwheel/block_top", + "textures": { + "1": "createindustry:block/steel_casing", + "4": "createindustry:block/steel_gearbox", + "casing": "createindustry:block/steel_casing", + "particle": "createindustry:block/steel_casing", + "side": "createindustry:block/steel_encased_cogwheel_side_large" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/steel_encased_large_steel_cogwheel_top_bottom.json b/src/generated/resources/assets/createindustry/models/block/steel_encased_large_steel_cogwheel_top_bottom.json new file mode 100644 index 00000000..aa2ed068 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/steel_encased_large_steel_cogwheel_top_bottom.json @@ -0,0 +1,10 @@ +{ + "parent": "createindustry:block/encased_large_cogwheel/block_top_bottom", + "textures": { + "1": "createindustry:block/steel_casing", + "4": "createindustry:block/steel_gearbox", + "casing": "createindustry:block/steel_casing", + "particle": "createindustry:block/steel_casing", + "side": "createindustry:block/steel_encased_cogwheel_side_large" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/steel_encased_steel_cogwheel.json b/src/generated/resources/assets/createindustry/models/block/steel_encased_steel_cogwheel.json new file mode 100644 index 00000000..ec6ea4e6 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/steel_encased_steel_cogwheel.json @@ -0,0 +1,10 @@ +{ + "parent": "createindustry:block/encased_cogwheel/block", + "textures": { + "1": "createindustry:block/steel_casing", + "4": "createindustry:block/steel_gearbox", + "casing": "createindustry:block/steel_casing", + "particle": "createindustry:block/steel_casing", + "side": "createindustry:block/steel_encased_cogwheel_side" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/steel_encased_steel_cogwheel_bottom.json b/src/generated/resources/assets/createindustry/models/block/steel_encased_steel_cogwheel_bottom.json new file mode 100644 index 00000000..f2b5d7b3 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/steel_encased_steel_cogwheel_bottom.json @@ -0,0 +1,10 @@ +{ + "parent": "createindustry:block/encased_cogwheel/block_bottom", + "textures": { + "1": "createindustry:block/steel_casing", + "4": "createindustry:block/steel_gearbox", + "casing": "createindustry:block/steel_casing", + "particle": "createindustry:block/steel_casing", + "side": "createindustry:block/steel_encased_cogwheel_side" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/steel_encased_steel_cogwheel_top.json b/src/generated/resources/assets/createindustry/models/block/steel_encased_steel_cogwheel_top.json new file mode 100644 index 00000000..b42dc6e6 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/steel_encased_steel_cogwheel_top.json @@ -0,0 +1,10 @@ +{ + "parent": "createindustry:block/encased_cogwheel/block_top", + "textures": { + "1": "createindustry:block/steel_casing", + "4": "createindustry:block/steel_gearbox", + "casing": "createindustry:block/steel_casing", + "particle": "createindustry:block/steel_casing", + "side": "createindustry:block/steel_encased_cogwheel_side" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/steel_encased_steel_cogwheel_top_bottom.json b/src/generated/resources/assets/createindustry/models/block/steel_encased_steel_cogwheel_top_bottom.json new file mode 100644 index 00000000..d13b5217 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/steel_encased_steel_cogwheel_top_bottom.json @@ -0,0 +1,10 @@ +{ + "parent": "createindustry:block/encased_cogwheel/block_top_bottom", + "textures": { + "1": "createindustry:block/steel_casing", + "4": "createindustry:block/steel_gearbox", + "casing": "createindustry:block/steel_casing", + "particle": "createindustry:block/steel_casing", + "side": "createindustry:block/steel_encased_cogwheel_side" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/sulfuric_acid.json b/src/generated/resources/assets/createindustry/models/block/sulfuric_acid.json new file mode 100644 index 00000000..11fb1ed0 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/sulfuric_acid.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "createindustry:fluid/sulfuric_acid_still" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/voltage_cube.json b/src/generated/resources/assets/createindustry/models/block/voltage_cube.json new file mode 100644 index 00000000..558b3d4a --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/voltage_cube.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "createindustry:block/voltage_cube" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/white_caution_block.json b/src/generated/resources/assets/createindustry/models/block/white_caution_block.json new file mode 100644 index 00000000..33d28943 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/white_caution_block.json @@ -0,0 +1,7 @@ +{ + "parent": "createindustry:block/caution_block", + "textures": { + "0": "createindustry:block/caution_block/white", + "particle": "createindustry:block/caution_block/white" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/yellow_caution_block.json b/src/generated/resources/assets/createindustry/models/block/yellow_caution_block.json new file mode 100644 index 00000000..5117d193 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/block/yellow_caution_block.json @@ -0,0 +1,7 @@ +{ + "parent": "createindustry:block/caution_block", + "textures": { + "0": "createindustry:block/caution_block/yellow", + "particle": "createindustry:block/caution_block/yellow" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/accumulator.json b/src/generated/resources/assets/createindustry/models/item/accumulator.json new file mode 100644 index 00000000..2b7f8326 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/accumulator.json @@ -0,0 +1,3 @@ +{ + "parent": "createindustry:block/accumulator/block" +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/advanced_potato_cannon.json b/src/generated/resources/assets/createindustry/models/item/advanced_potato_cannon.json new file mode 100644 index 00000000..047cef68 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/advanced_potato_cannon.json @@ -0,0 +1,3 @@ +{ + "parent": "createindustry:item/advanced_potato_cannon/item" +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/air_bucket.json b/src/generated/resources/assets/createindustry/models/item/air_bucket.json new file mode 100644 index 00000000..f6dbe9ed --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/air_bucket.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "createindustry:item/air_bucket" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/aluminum_axe.json b/src/generated/resources/assets/createindustry/models/item/aluminum_axe.json new file mode 100644 index 00000000..b9ec4014 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/aluminum_axe.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "createindustry:item/aluminum_axe" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/aluminum_cable_hub.json b/src/generated/resources/assets/createindustry/models/item/aluminum_cable_hub.json new file mode 100644 index 00000000..40dadd05 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/aluminum_cable_hub.json @@ -0,0 +1,3 @@ +{ + "parent": "createindustry:block/aluminum_cable_hub" +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/aluminum_cogwheel.json b/src/generated/resources/assets/createindustry/models/item/aluminum_cogwheel.json new file mode 100644 index 00000000..d234ef5a --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/aluminum_cogwheel.json @@ -0,0 +1,3 @@ +{ + "parent": "createindustry:block/aluminum_cogwheel" +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/aluminum_frame.json b/src/generated/resources/assets/createindustry/models/item/aluminum_frame.json new file mode 100644 index 00000000..af04e014 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/aluminum_frame.json @@ -0,0 +1,3 @@ +{ + "parent": "createindustry:block/aluminum_frame/block" +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/aluminum_hoe.json b/src/generated/resources/assets/createindustry/models/item/aluminum_hoe.json new file mode 100644 index 00000000..003e8412 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/aluminum_hoe.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "createindustry:item/aluminum_hoe" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/aluminum_pickaxe.json b/src/generated/resources/assets/createindustry/models/item/aluminum_pickaxe.json new file mode 100644 index 00000000..937debde --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/aluminum_pickaxe.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "createindustry:item/aluminum_pickaxe" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/aluminum_shovel.json b/src/generated/resources/assets/createindustry/models/item/aluminum_shovel.json new file mode 100644 index 00000000..b903653f --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/aluminum_shovel.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "createindustry:item/aluminum_shovel" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/aluminum_sword.json b/src/generated/resources/assets/createindustry/models/item/aluminum_sword.json new file mode 100644 index 00000000..a7401109 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/aluminum_sword.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "createindustry:item/aluminum_sword" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/aluminum_wire.json b/src/generated/resources/assets/createindustry/models/item/aluminum_wire.json new file mode 100644 index 00000000..2a67db55 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/aluminum_wire.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "createindustry:item/aluminum_wire" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/blue_caution_block.json b/src/generated/resources/assets/createindustry/models/item/blue_caution_block.json new file mode 100644 index 00000000..93086748 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/blue_caution_block.json @@ -0,0 +1,3 @@ +{ + "parent": "createindustry:block/blue_caution_block" +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/bottle_of_battery_acid.json b/src/generated/resources/assets/createindustry/models/item/bottle_of_battery_acid.json new file mode 100644 index 00000000..540947fc --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/bottle_of_battery_acid.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "createindustry:item/bottle_of_battery_acid" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/bottle_of_concrete.json b/src/generated/resources/assets/createindustry/models/item/bottle_of_concrete.json new file mode 100644 index 00000000..2dc088bf --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/bottle_of_concrete.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "createindustry:item/bottle_of_concrete" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/brass_cable_hub.json b/src/generated/resources/assets/createindustry/models/item/brass_cable_hub.json new file mode 100644 index 00000000..bc5fa5f5 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/brass_cable_hub.json @@ -0,0 +1,3 @@ +{ + "parent": "createindustry:block/brass_cable_hub" +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/brass_frame.json b/src/generated/resources/assets/createindustry/models/item/brass_frame.json new file mode 100644 index 00000000..32e2689f --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/brass_frame.json @@ -0,0 +1,3 @@ +{ + "parent": "createindustry:block/brass_frame/block" +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/brass_truss.json b/src/generated/resources/assets/createindustry/models/item/brass_truss.json new file mode 100644 index 00000000..c4476bce --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/brass_truss.json @@ -0,0 +1,3 @@ +{ + "parent": "createindustry:block/brass_truss" +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/brown_caution_block.json b/src/generated/resources/assets/createindustry/models/item/brown_caution_block.json new file mode 100644 index 00000000..f4f00a31 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/brown_caution_block.json @@ -0,0 +1,3 @@ +{ + "parent": "createindustry:block/brown_caution_block" +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/butane_bucket.json b/src/generated/resources/assets/createindustry/models/item/butane_bucket.json new file mode 100644 index 00000000..16cd86ba --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/butane_bucket.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "createindustry:item/butane_bucket" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/cable_connector.json b/src/generated/resources/assets/createindustry/models/item/cable_connector.json new file mode 100644 index 00000000..ffa15b7b --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/cable_connector.json @@ -0,0 +1,3 @@ +{ + "parent": "createindustry:block/cable_connector/item" +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/cable_tube.json b/src/generated/resources/assets/createindustry/models/item/cable_tube.json new file mode 100644 index 00000000..46112754 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/cable_tube.json @@ -0,0 +1,3 @@ +{ + "parent": "createindustry:block/cable_tube" +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/capacitor.json b/src/generated/resources/assets/createindustry/models/item/capacitor.json new file mode 100644 index 00000000..e407cad9 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/capacitor.json @@ -0,0 +1,3 @@ +{ + "parent": "createindustry:block/capacitor/block" +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/capacitor_.json b/src/generated/resources/assets/createindustry/models/item/capacitor_.json new file mode 100644 index 00000000..87371a4c --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/capacitor_.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "createindustry:item/capacitor_" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/carbon_dioxide_bucket.json b/src/generated/resources/assets/createindustry/models/item/carbon_dioxide_bucket.json new file mode 100644 index 00000000..efb39937 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/carbon_dioxide_bucket.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "createindustry:item/carbon_dioxide_bucket" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/cast_iron_bars.json b/src/generated/resources/assets/createindustry/models/item/cast_iron_bars.json new file mode 100644 index 00000000..046debac --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/cast_iron_bars.json @@ -0,0 +1,7 @@ +{ + "parent": "createindustry:item/bars", + "textures": { + "bars": "createindustry:block/bars/cast_iron_bars", + "edge": "createindustry:block/bars/cast_iron_bars_edge" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/cast_iron_frame.json b/src/generated/resources/assets/createindustry/models/item/cast_iron_frame.json new file mode 100644 index 00000000..3defa2fc --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/cast_iron_frame.json @@ -0,0 +1,3 @@ +{ + "parent": "createindustry:block/cast_iron_frame/block" +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/cast_iron_ladder.json b/src/generated/resources/assets/createindustry/models/item/cast_iron_ladder.json new file mode 100644 index 00000000..65f9a7c6 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/cast_iron_ladder.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "createindustry:block/ladder_cast_iron" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/cast_iron_truss.json b/src/generated/resources/assets/createindustry/models/item/cast_iron_truss.json new file mode 100644 index 00000000..8e437719 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/cast_iron_truss.json @@ -0,0 +1,3 @@ +{ + "parent": "createindustry:block/cast_iron_truss" +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/cinder_block.json b/src/generated/resources/assets/createindustry/models/item/cinder_block.json new file mode 100644 index 00000000..1efe37bb --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/cinder_block.json @@ -0,0 +1,3 @@ +{ + "parent": "createindustry:block/cinder_block/item" +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/cinderblock.json b/src/generated/resources/assets/createindustry/models/item/cinderblock.json new file mode 100644 index 00000000..f0341888 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/cinderblock.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "createindustry:item/cinderblock" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/cinderflour_block.json b/src/generated/resources/assets/createindustry/models/item/cinderflour_block.json new file mode 100644 index 00000000..8e65178c --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/cinderflour_block.json @@ -0,0 +1,3 @@ +{ + "parent": "createindustry:block/cinderflour_block/item" +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/cinderflourblock.json b/src/generated/resources/assets/createindustry/models/item/cinderflourblock.json new file mode 100644 index 00000000..45e42afd --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/cinderflourblock.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "createindustry:item/cinderflourblock" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/converter.json b/src/generated/resources/assets/createindustry/models/item/converter.json new file mode 100644 index 00000000..61c92209 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/converter.json @@ -0,0 +1,3 @@ +{ + "parent": "createindustry:block/converter/block" +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/copper_cable.json b/src/generated/resources/assets/createindustry/models/item/copper_cable.json new file mode 100644 index 00000000..337426c9 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/copper_cable.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "createindustry:item/copper_cable" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/copper_cable_hub.json b/src/generated/resources/assets/createindustry/models/item/copper_cable_hub.json new file mode 100644 index 00000000..4c87b6d2 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/copper_cable_hub.json @@ -0,0 +1,3 @@ +{ + "parent": "createindustry:block/copper_cable_hub" +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/copper_coil.json b/src/generated/resources/assets/createindustry/models/item/copper_coil.json new file mode 100644 index 00000000..bb416421 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/copper_coil.json @@ -0,0 +1,3 @@ +{ + "parent": "createindustry:block/copper_coil/item" +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/copper_frame.json b/src/generated/resources/assets/createindustry/models/item/copper_frame.json new file mode 100644 index 00000000..147abc5b --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/copper_frame.json @@ -0,0 +1,3 @@ +{ + "parent": "createindustry:block/copper_frame/block" +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/copper_sulfate.json b/src/generated/resources/assets/createindustry/models/item/copper_sulfate.json new file mode 100644 index 00000000..bfe4cb31 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/copper_sulfate.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "createindustry:item/copper_sulfate" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/copper_truss.json b/src/generated/resources/assets/createindustry/models/item/copper_truss.json new file mode 100644 index 00000000..98b82541 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/copper_truss.json @@ -0,0 +1,3 @@ +{ + "parent": "createindustry:block/copper_truss" +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/copper_wire.json b/src/generated/resources/assets/createindustry/models/item/copper_wire.json new file mode 100644 index 00000000..4f8428bb --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/copper_wire.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "createindustry:item/copper_wire" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/copycat_cable_block.json b/src/generated/resources/assets/createindustry/models/item/copycat_cable_block.json new file mode 100644 index 00000000..1e4ad3f7 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/copycat_cable_block.json @@ -0,0 +1,3 @@ +{ + "parent": "createindustry:block/copycat_cable_block/item" +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/creative_generator.json b/src/generated/resources/assets/createindustry/models/item/creative_generator.json new file mode 100644 index 00000000..9a3b4cc4 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/creative_generator.json @@ -0,0 +1,3 @@ +{ + "parent": "createindustry:block/creative_generator" +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/crude_oil_bucket.json b/src/generated/resources/assets/createindustry/models/item/crude_oil_bucket.json new file mode 100644 index 00000000..a94b888c --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/crude_oil_bucket.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "createindustry:item/crude_oil_bucket" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/cut_galena.json b/src/generated/resources/assets/createindustry/models/item/cut_galena.json new file mode 100644 index 00000000..27254a27 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/cut_galena.json @@ -0,0 +1,3 @@ +{ + "parent": "createindustry:block/cut_galena" +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/cut_galena_brick_slab.json b/src/generated/resources/assets/createindustry/models/item/cut_galena_brick_slab.json new file mode 100644 index 00000000..8f108749 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/cut_galena_brick_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "createindustry:block/cut_galena_brick_slab" +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/cut_galena_brick_stairs.json b/src/generated/resources/assets/createindustry/models/item/cut_galena_brick_stairs.json new file mode 100644 index 00000000..e6c9442e --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/cut_galena_brick_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "createindustry:block/cut_galena_brick_stairs" +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/cut_galena_brick_wall.json b/src/generated/resources/assets/createindustry/models/item/cut_galena_brick_wall.json new file mode 100644 index 00000000..757c44e8 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/cut_galena_brick_wall.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/wall_inventory", + "textures": { + "wall": "createindustry:block/palettes/stone_types/brick/galena_cut_brick" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/cut_galena_bricks.json b/src/generated/resources/assets/createindustry/models/item/cut_galena_bricks.json new file mode 100644 index 00000000..fd258e0e --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/cut_galena_bricks.json @@ -0,0 +1,3 @@ +{ + "parent": "createindustry:block/cut_galena_bricks" +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/cut_galena_slab.json b/src/generated/resources/assets/createindustry/models/item/cut_galena_slab.json new file mode 100644 index 00000000..09d8f65c --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/cut_galena_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "createindustry:block/cut_galena_slab" +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/cut_galena_stairs.json b/src/generated/resources/assets/createindustry/models/item/cut_galena_stairs.json new file mode 100644 index 00000000..7a17d752 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/cut_galena_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "createindustry:block/cut_galena_stairs" +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/cut_galena_wall.json b/src/generated/resources/assets/createindustry/models/item/cut_galena_wall.json new file mode 100644 index 00000000..950aedc3 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/cut_galena_wall.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/wall_inventory", + "textures": { + "wall": "createindustry:block/palettes/stone_types/cut/galena_cut" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/cyan_caution_block.json b/src/generated/resources/assets/createindustry/models/item/cyan_caution_block.json new file mode 100644 index 00000000..467b37bc --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/cyan_caution_block.json @@ -0,0 +1,3 @@ +{ + "parent": "createindustry:block/cyan_caution_block" +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/deepslate_lead_ore.json b/src/generated/resources/assets/createindustry/models/item/deepslate_lead_ore.json new file mode 100644 index 00000000..67c08659 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/deepslate_lead_ore.json @@ -0,0 +1,3 @@ +{ + "parent": "createindustry:block/deepslate_lead_ore" +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/deepslate_lithium_ore.json b/src/generated/resources/assets/createindustry/models/item/deepslate_lithium_ore.json new file mode 100644 index 00000000..736d4024 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/deepslate_lithium_ore.json @@ -0,0 +1,3 @@ +{ + "parent": "createindustry:block/deepslate_lithium_ore" +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/deepslate_nickel_ore.json b/src/generated/resources/assets/createindustry/models/item/deepslate_nickel_ore.json new file mode 100644 index 00000000..24679445 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/deepslate_nickel_ore.json @@ -0,0 +1,3 @@ +{ + "parent": "createindustry:block/deepslate_nickel_ore" +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/diagonal_cable_block.json b/src/generated/resources/assets/createindustry/models/item/diagonal_cable_block.json new file mode 100644 index 00000000..77a44e84 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/diagonal_cable_block.json @@ -0,0 +1,3 @@ +{ + "parent": "createindustry:block/diagonal_cable_block/item" +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/electric_casing.json b/src/generated/resources/assets/createindustry/models/item/electric_casing.json new file mode 100644 index 00000000..c417b10b --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/electric_casing.json @@ -0,0 +1,3 @@ +{ + "parent": "createindustry:block/electric_casing" +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/electric_motor.json b/src/generated/resources/assets/createindustry/models/item/electric_motor.json new file mode 100644 index 00000000..870e7889 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/electric_motor.json @@ -0,0 +1,3 @@ +{ + "parent": "createindustry:block/electric_motor/item" +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/energy_meter.json b/src/generated/resources/assets/createindustry/models/item/energy_meter.json new file mode 100644 index 00000000..078a85a5 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/energy_meter.json @@ -0,0 +1,3 @@ +{ + "parent": "createindustry:block/energy_meter/item" +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/ethylene_bucket.json b/src/generated/resources/assets/createindustry/models/item/ethylene_bucket.json new file mode 100644 index 00000000..ff3ae164 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/ethylene_bucket.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "createindustry:item/ethylene_bucket" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/firebox.json b/src/generated/resources/assets/createindustry/models/item/firebox.json new file mode 100644 index 00000000..42ba7e1f --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/firebox.json @@ -0,0 +1,3 @@ +{ + "parent": "createindustry:block/firebox/item" +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/flamethrower.json b/src/generated/resources/assets/createindustry/models/item/flamethrower.json new file mode 100644 index 00000000..29fd3445 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/flamethrower.json @@ -0,0 +1,3 @@ +{ + "parent": "createindustry:item/flamethrower/item" +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/galena.json b/src/generated/resources/assets/createindustry/models/item/galena.json new file mode 100644 index 00000000..f6551dc0 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/galena.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "createindustry:block/palettes/stone_types/natural/galena_1" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/galena_pillar.json b/src/generated/resources/assets/createindustry/models/item/galena_pillar.json new file mode 100644 index 00000000..23f394e0 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/galena_pillar.json @@ -0,0 +1,3 @@ +{ + "parent": "createindustry:block/galena_pillar" +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/galvanic_cell.json b/src/generated/resources/assets/createindustry/models/item/galvanic_cell.json new file mode 100644 index 00000000..6a12e3a5 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/galvanic_cell.json @@ -0,0 +1,3 @@ +{ + "parent": "createindustry:block/galvanic_cell/item" +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/generator.json b/src/generated/resources/assets/createindustry/models/item/generator.json new file mode 100644 index 00000000..82c72a4f --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/generator.json @@ -0,0 +1,3 @@ +{ + "parent": "createindustry:block/generator/item" +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/gray_caution_block.json b/src/generated/resources/assets/createindustry/models/item/gray_caution_block.json new file mode 100644 index 00000000..6260cfa4 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/gray_caution_block.json @@ -0,0 +1,3 @@ +{ + "parent": "createindustry:block/gray_caution_block" +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/green_caution_block.json b/src/generated/resources/assets/createindustry/models/item/green_caution_block.json new file mode 100644 index 00000000..e09fdbb4 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/green_caution_block.json @@ -0,0 +1,3 @@ +{ + "parent": "createindustry:block/green_caution_block" +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/hardened_planks_slab.json b/src/generated/resources/assets/createindustry/models/item/hardened_planks_slab.json new file mode 100644 index 00000000..d810b4de --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/hardened_planks_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "createindustry:block/hardened_planks_bottom" +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/heavy_cable_hub.json b/src/generated/resources/assets/createindustry/models/item/heavy_cable_hub.json new file mode 100644 index 00000000..6cebe436 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/heavy_cable_hub.json @@ -0,0 +1,3 @@ +{ + "parent": "createindustry:block/heavy_cable_hub" +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/heavy_casing_encased_aluminum_cogwheel.json b/src/generated/resources/assets/createindustry/models/item/heavy_casing_encased_aluminum_cogwheel.json new file mode 100644 index 00000000..a8220108 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/heavy_casing_encased_aluminum_cogwheel.json @@ -0,0 +1,9 @@ +{ + "parent": "createindustry:block/encased_cogwheel/item", + "textures": { + "1": "createindustry:block/heavy_machinery_casing", + "casing": "createindustry:block/heavy_machinery_casing", + "particle": "createindustry:block/heavy_machinery_casing", + "side": "createindustry:block/heavy_machinery_encased_cogwheel_side" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/heavy_casing_encased_cogwheel.json b/src/generated/resources/assets/createindustry/models/item/heavy_casing_encased_cogwheel.json new file mode 100644 index 00000000..a8220108 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/heavy_casing_encased_cogwheel.json @@ -0,0 +1,9 @@ +{ + "parent": "createindustry:block/encased_cogwheel/item", + "textures": { + "1": "createindustry:block/heavy_machinery_casing", + "casing": "createindustry:block/heavy_machinery_casing", + "particle": "createindustry:block/heavy_machinery_casing", + "side": "createindustry:block/heavy_machinery_encased_cogwheel_side" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/heavy_casing_encased_large_aluminum_cogwheel.json b/src/generated/resources/assets/createindustry/models/item/heavy_casing_encased_large_aluminum_cogwheel.json new file mode 100644 index 00000000..0eef222f --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/heavy_casing_encased_large_aluminum_cogwheel.json @@ -0,0 +1,9 @@ +{ + "parent": "createindustry:block/encased_large_cogwheel/item", + "textures": { + "1": "createindustry:block/heavy_machinery_casing", + "casing": "createindustry:block/heavy_machinery_casing", + "particle": "createindustry:block/heavy_machinery_casing", + "side": "createindustry:block/heavy_machinery_encased_cogwheel_side_large" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/heavy_casing_encased_large_cogwheel.json b/src/generated/resources/assets/createindustry/models/item/heavy_casing_encased_large_cogwheel.json new file mode 100644 index 00000000..0eef222f --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/heavy_casing_encased_large_cogwheel.json @@ -0,0 +1,9 @@ +{ + "parent": "createindustry:block/encased_large_cogwheel/item", + "textures": { + "1": "createindustry:block/heavy_machinery_casing", + "casing": "createindustry:block/heavy_machinery_casing", + "particle": "createindustry:block/heavy_machinery_casing", + "side": "createindustry:block/heavy_machinery_encased_cogwheel_side_large" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/heavy_casing_encased_large_steel_cogwheel.json b/src/generated/resources/assets/createindustry/models/item/heavy_casing_encased_large_steel_cogwheel.json new file mode 100644 index 00000000..0eef222f --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/heavy_casing_encased_large_steel_cogwheel.json @@ -0,0 +1,9 @@ +{ + "parent": "createindustry:block/encased_large_cogwheel/item", + "textures": { + "1": "createindustry:block/heavy_machinery_casing", + "casing": "createindustry:block/heavy_machinery_casing", + "particle": "createindustry:block/heavy_machinery_casing", + "side": "createindustry:block/heavy_machinery_encased_cogwheel_side_large" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/heavy_casing_encased_shaft.json b/src/generated/resources/assets/createindustry/models/item/heavy_casing_encased_shaft.json new file mode 100644 index 00000000..2e5665e4 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/heavy_casing_encased_shaft.json @@ -0,0 +1,3 @@ +{ + "parent": "createindustry:block/encased_shaft/item_heavy_casing" +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/heavy_casing_encased_steel_cogwheel.json b/src/generated/resources/assets/createindustry/models/item/heavy_casing_encased_steel_cogwheel.json new file mode 100644 index 00000000..a8220108 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/heavy_casing_encased_steel_cogwheel.json @@ -0,0 +1,9 @@ +{ + "parent": "createindustry:block/encased_cogwheel/item", + "textures": { + "1": "createindustry:block/heavy_machinery_casing", + "casing": "createindustry:block/heavy_machinery_casing", + "particle": "createindustry:block/heavy_machinery_casing", + "side": "createindustry:block/heavy_machinery_encased_cogwheel_side" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/large_aluminum_cogwheel.json b/src/generated/resources/assets/createindustry/models/item/large_aluminum_cogwheel.json new file mode 100644 index 00000000..eaf8c0f5 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/large_aluminum_cogwheel.json @@ -0,0 +1,3 @@ +{ + "parent": "createindustry:block/large_aluminum_cogwheel" +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/large_steel_cogwheel.json b/src/generated/resources/assets/createindustry/models/item/large_steel_cogwheel.json new file mode 100644 index 00000000..3c78bc7e --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/large_steel_cogwheel.json @@ -0,0 +1,3 @@ +{ + "parent": "createindustry:block/large_steel_cogwheel" +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/layered_galena.json b/src/generated/resources/assets/createindustry/models/item/layered_galena.json new file mode 100644 index 00000000..5a7b0c67 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/layered_galena.json @@ -0,0 +1,3 @@ +{ + "parent": "createindustry:block/layered_galena" +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/lead_axe.json b/src/generated/resources/assets/createindustry/models/item/lead_axe.json new file mode 100644 index 00000000..af24707e --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/lead_axe.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "createindustry:item/lead_axe" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/lead_bars.json b/src/generated/resources/assets/createindustry/models/item/lead_bars.json new file mode 100644 index 00000000..7a7ac801 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/lead_bars.json @@ -0,0 +1,7 @@ +{ + "parent": "createindustry:item/bars", + "textures": { + "bars": "createindustry:block/bars/lead_bars", + "edge": "createindustry:block/bars/lead_bars_edge" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/lead_block.json b/src/generated/resources/assets/createindustry/models/item/lead_block.json new file mode 100644 index 00000000..0c0c5fac --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/lead_block.json @@ -0,0 +1,3 @@ +{ + "parent": "createindustry:block/lead_block" +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/lead_flywheel.json b/src/generated/resources/assets/createindustry/models/item/lead_flywheel.json new file mode 100644 index 00000000..e7c8a4c8 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/lead_flywheel.json @@ -0,0 +1,3 @@ +{ + "parent": "createindustry:block/lead_flywheel/item" +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/lead_frame.json b/src/generated/resources/assets/createindustry/models/item/lead_frame.json new file mode 100644 index 00000000..6d1b7436 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/lead_frame.json @@ -0,0 +1,3 @@ +{ + "parent": "createindustry:block/lead_frame/block" +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/lead_glass.json b/src/generated/resources/assets/createindustry/models/item/lead_glass.json new file mode 100644 index 00000000..0d75eaf7 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/lead_glass.json @@ -0,0 +1,3 @@ +{ + "parent": "createindustry:block/lead_glass" +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/lead_hoe.json b/src/generated/resources/assets/createindustry/models/item/lead_hoe.json new file mode 100644 index 00000000..6ccb6155 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/lead_hoe.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "createindustry:item/lead_hoe" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/lead_ingot.json b/src/generated/resources/assets/createindustry/models/item/lead_ingot.json new file mode 100644 index 00000000..0b79efd7 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/lead_ingot.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "createindustry:item/lead_ingot" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/lead_ladder.json b/src/generated/resources/assets/createindustry/models/item/lead_ladder.json new file mode 100644 index 00000000..39b49f1f --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/lead_ladder.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "createindustry:block/ladder_lead" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/lead_ore.json b/src/generated/resources/assets/createindustry/models/item/lead_ore.json new file mode 100644 index 00000000..b1a751bf --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/lead_ore.json @@ -0,0 +1,3 @@ +{ + "parent": "createindustry:block/lead_ore" +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/lead_pickaxe.json b/src/generated/resources/assets/createindustry/models/item/lead_pickaxe.json new file mode 100644 index 00000000..4077eb9f --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/lead_pickaxe.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "createindustry:item/lead_pickaxe" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/lead_shovel.json b/src/generated/resources/assets/createindustry/models/item/lead_shovel.json new file mode 100644 index 00000000..1316556c --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/lead_shovel.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "createindustry:item/lead_shovel" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/lead_sword.json b/src/generated/resources/assets/createindustry/models/item/lead_sword.json new file mode 100644 index 00000000..f718e126 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/lead_sword.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "createindustry:item/lead_sword" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/lead_truss.json b/src/generated/resources/assets/createindustry/models/item/lead_truss.json new file mode 100644 index 00000000..c831b431 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/lead_truss.json @@ -0,0 +1,3 @@ +{ + "parent": "createindustry:block/lead_truss" +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/light_blue_caution_block.json b/src/generated/resources/assets/createindustry/models/item/light_blue_caution_block.json new file mode 100644 index 00000000..cc95d908 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/light_blue_caution_block.json @@ -0,0 +1,3 @@ +{ + "parent": "createindustry:block/light_blue_caution_block" +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/light_bulb.json b/src/generated/resources/assets/createindustry/models/item/light_bulb.json new file mode 100644 index 00000000..2e996791 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/light_bulb.json @@ -0,0 +1,3 @@ +{ + "parent": "createindustry:block/light_bulb/item" +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/light_gray_caution_block.json b/src/generated/resources/assets/createindustry/models/item/light_gray_caution_block.json new file mode 100644 index 00000000..6ab603a6 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/light_gray_caution_block.json @@ -0,0 +1,3 @@ +{ + "parent": "createindustry:block/light_gray_caution_block" +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/lime_caution_block.json b/src/generated/resources/assets/createindustry/models/item/lime_caution_block.json new file mode 100644 index 00000000..0e7d54ea --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/lime_caution_block.json @@ -0,0 +1,3 @@ +{ + "parent": "createindustry:block/lime_caution_block" +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/lit_lithium_blade.json b/src/generated/resources/assets/createindustry/models/item/lit_lithium_blade.json new file mode 100644 index 00000000..9ba20d64 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/lit_lithium_blade.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "createindustry:item/lithium_blade_lit" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/lithium_blade.json b/src/generated/resources/assets/createindustry/models/item/lithium_blade.json new file mode 100644 index 00000000..314feb3d --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/lithium_blade.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "createindustry:item/lithium_blade" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/lithium_block.json b/src/generated/resources/assets/createindustry/models/item/lithium_block.json new file mode 100644 index 00000000..78ce3c63 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/lithium_block.json @@ -0,0 +1,3 @@ +{ + "parent": "createindustry:block/lithium_block" +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/lithium_charge.json b/src/generated/resources/assets/createindustry/models/item/lithium_charge.json new file mode 100644 index 00000000..c48aeafc --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/lithium_charge.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "createindustry:item/lithium_charge" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/lithium_ingot.json b/src/generated/resources/assets/createindustry/models/item/lithium_ingot.json new file mode 100644 index 00000000..0cbdf159 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/lithium_ingot.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "createindustry:item/lithium_ingot" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/lithium_ore.json b/src/generated/resources/assets/createindustry/models/item/lithium_ore.json new file mode 100644 index 00000000..bccd3634 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/lithium_ore.json @@ -0,0 +1,3 @@ +{ + "parent": "createindustry:block/lithium_ore" +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/lithium_torch.json b/src/generated/resources/assets/createindustry/models/item/lithium_torch.json new file mode 100644 index 00000000..c98b01c2 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/lithium_torch.json @@ -0,0 +1,3 @@ +{ + "parent": "createindustry:block/lithium_torch/item" +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/low_grade_fuel_engine.json b/src/generated/resources/assets/createindustry/models/item/low_grade_fuel_engine.json new file mode 100644 index 00000000..45441500 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/low_grade_fuel_engine.json @@ -0,0 +1,3 @@ +{ + "parent": "createindustry:block/low_grade_fuel_engine/item" +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/lpg_bucket.json b/src/generated/resources/assets/createindustry/models/item/lpg_bucket.json new file mode 100644 index 00000000..8c5ee6a6 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/lpg_bucket.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "createindustry:item/lpg_bucket" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/magenta_caution_block.json b/src/generated/resources/assets/createindustry/models/item/magenta_caution_block.json new file mode 100644 index 00000000..d0f3808c --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/magenta_caution_block.json @@ -0,0 +1,3 @@ +{ + "parent": "createindustry:block/magenta_caution_block" +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/magnetic_ingot.json b/src/generated/resources/assets/createindustry/models/item/magnetic_ingot.json new file mode 100644 index 00000000..7a69caad --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/magnetic_ingot.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "createindustry:item/magnetic_ingot" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/napalm_potato.json b/src/generated/resources/assets/createindustry/models/item/napalm_potato.json new file mode 100644 index 00000000..35dd8706 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/napalm_potato.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "createindustry:item/napalm_potato" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/neon_bucket.json b/src/generated/resources/assets/createindustry/models/item/neon_bucket.json new file mode 100644 index 00000000..0cb6a92d --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/neon_bucket.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "createindustry:item/neon_bucket" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/neon_tube.json b/src/generated/resources/assets/createindustry/models/item/neon_tube.json new file mode 100644 index 00000000..7484bf6a --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/neon_tube.json @@ -0,0 +1,3 @@ +{ + "parent": "createindustry:block/neon_tube/item" +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/nickel_bars.json b/src/generated/resources/assets/createindustry/models/item/nickel_bars.json new file mode 100644 index 00000000..07f3e470 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/nickel_bars.json @@ -0,0 +1,7 @@ +{ + "parent": "createindustry:item/bars", + "textures": { + "bars": "createindustry:block/bars/nickel_bars", + "edge": "createindustry:block/bars/nickel_bars_edge" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/nickel_block.json b/src/generated/resources/assets/createindustry/models/item/nickel_block.json new file mode 100644 index 00000000..4ea02230 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/nickel_block.json @@ -0,0 +1,3 @@ +{ + "parent": "createindustry:block/nickel_block" +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/nickel_flywheel.json b/src/generated/resources/assets/createindustry/models/item/nickel_flywheel.json new file mode 100644 index 00000000..c0273dbe --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/nickel_flywheel.json @@ -0,0 +1,3 @@ +{ + "parent": "createindustry:block/nickel_flywheel/item" +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/nickel_frame.json b/src/generated/resources/assets/createindustry/models/item/nickel_frame.json new file mode 100644 index 00000000..0b805116 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/nickel_frame.json @@ -0,0 +1,3 @@ +{ + "parent": "createindustry:block/nickel_frame/block" +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/nickel_ingot.json b/src/generated/resources/assets/createindustry/models/item/nickel_ingot.json new file mode 100644 index 00000000..0b4d59c4 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/nickel_ingot.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "createindustry:item/nickel_ingot" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/nickel_ladder.json b/src/generated/resources/assets/createindustry/models/item/nickel_ladder.json new file mode 100644 index 00000000..d6918faf --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/nickel_ladder.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "createindustry:block/ladder_nickel" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/nickel_ore.json b/src/generated/resources/assets/createindustry/models/item/nickel_ore.json new file mode 100644 index 00000000..767cba95 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/nickel_ore.json @@ -0,0 +1,3 @@ +{ + "parent": "createindustry:block/nickel_ore" +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/nickel_truss.json b/src/generated/resources/assets/createindustry/models/item/nickel_truss.json new file mode 100644 index 00000000..5993c40b --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/nickel_truss.json @@ -0,0 +1,3 @@ +{ + "parent": "createindustry:block/nickel_truss" +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/orange_caution_block.json b/src/generated/resources/assets/createindustry/models/item/orange_caution_block.json new file mode 100644 index 00000000..ca7a97e1 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/orange_caution_block.json @@ -0,0 +1,3 @@ +{ + "parent": "createindustry:block/orange_caution_block" +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/pink_caution_block.json b/src/generated/resources/assets/createindustry/models/item/pink_caution_block.json new file mode 100644 index 00000000..a07fdc1e --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/pink_caution_block.json @@ -0,0 +1,3 @@ +{ + "parent": "createindustry:block/pink_caution_block" +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/pipe_bomb.json b/src/generated/resources/assets/createindustry/models/item/pipe_bomb.json new file mode 100644 index 00000000..1ad47f64 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/pipe_bomb.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "createindustry:item/pipe_bomb" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/polarizer.json b/src/generated/resources/assets/createindustry/models/item/polarizer.json new file mode 100644 index 00000000..adb79af9 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/polarizer.json @@ -0,0 +1,3 @@ +{ + "parent": "createindustry:block/polarizer/item" +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/polished_cut_galena.json b/src/generated/resources/assets/createindustry/models/item/polished_cut_galena.json new file mode 100644 index 00000000..0b27a764 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/polished_cut_galena.json @@ -0,0 +1,3 @@ +{ + "parent": "createindustry:block/polished_cut_galena" +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/polished_cut_galena_slab.json b/src/generated/resources/assets/createindustry/models/item/polished_cut_galena_slab.json new file mode 100644 index 00000000..1cfe3b0f --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/polished_cut_galena_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "createindustry:block/polished_cut_galena_slab" +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/polished_cut_galena_stairs.json b/src/generated/resources/assets/createindustry/models/item/polished_cut_galena_stairs.json new file mode 100644 index 00000000..dcb6f24e --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/polished_cut_galena_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "createindustry:block/polished_cut_galena_stairs" +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/polished_cut_galena_wall.json b/src/generated/resources/assets/createindustry/models/item/polished_cut_galena_wall.json new file mode 100644 index 00000000..e054d966 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/polished_cut_galena_wall.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/wall_inventory", + "textures": { + "wall": "createindustry:block/palettes/stone_types/polished/galena_cut_polished" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/propane_bucket.json b/src/generated/resources/assets/createindustry/models/item/propane_bucket.json new file mode 100644 index 00000000..85b84449 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/propane_bucket.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "createindustry:item/propane_bucket" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/propylene_bucket.json b/src/generated/resources/assets/createindustry/models/item/propylene_bucket.json new file mode 100644 index 00000000..d4a97635 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/propylene_bucket.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "createindustry:item/propylene_bucket" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/purple_caution_block.json b/src/generated/resources/assets/createindustry/models/item/purple_caution_block.json new file mode 100644 index 00000000..763d1e46 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/purple_caution_block.json @@ -0,0 +1,3 @@ +{ + "parent": "createindustry:block/purple_caution_block" +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/raw_lead.json b/src/generated/resources/assets/createindustry/models/item/raw_lead.json new file mode 100644 index 00000000..dcadad78 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/raw_lead.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "createindustry:item/raw_lead" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/raw_lithium.json b/src/generated/resources/assets/createindustry/models/item/raw_lithium.json new file mode 100644 index 00000000..6ce40034 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/raw_lithium.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "createindustry:item/raw_lithium" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/raw_nickel.json b/src/generated/resources/assets/createindustry/models/item/raw_nickel.json new file mode 100644 index 00000000..44bcdebc --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/raw_nickel.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "createindustry:item/raw_nickel" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/resistor.json b/src/generated/resources/assets/createindustry/models/item/resistor.json new file mode 100644 index 00000000..0e885633 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/resistor.json @@ -0,0 +1,3 @@ +{ + "parent": "createindustry:block/resistor/item" +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/resistor_.json b/src/generated/resources/assets/createindustry/models/item/resistor_.json new file mode 100644 index 00000000..50bf016e --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/resistor_.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "createindustry:item/resistor_" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/rgb_light_bulb.json b/src/generated/resources/assets/createindustry/models/item/rgb_light_bulb.json new file mode 100644 index 00000000..41566b8f --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/rgb_light_bulb.json @@ -0,0 +1,3 @@ +{ + "parent": "createindustry:block/rgb_light_bulb/item" +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/rotor.json b/src/generated/resources/assets/createindustry/models/item/rotor.json new file mode 100644 index 00000000..363eb087 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/rotor.json @@ -0,0 +1,3 @@ +{ + "parent": "createindustry:block/rotor/item" +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/small_galena_brick_slab.json b/src/generated/resources/assets/createindustry/models/item/small_galena_brick_slab.json new file mode 100644 index 00000000..551ba041 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/small_galena_brick_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "createindustry:block/small_galena_brick_slab" +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/small_galena_brick_stairs.json b/src/generated/resources/assets/createindustry/models/item/small_galena_brick_stairs.json new file mode 100644 index 00000000..58d5bede --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/small_galena_brick_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "createindustry:block/small_galena_brick_stairs" +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/small_galena_brick_wall.json b/src/generated/resources/assets/createindustry/models/item/small_galena_brick_wall.json new file mode 100644 index 00000000..5e76b532 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/small_galena_brick_wall.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/wall_inventory", + "textures": { + "wall": "createindustry:block/palettes/stone_types/small_brick/galena_cut_small_brick" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/small_galena_bricks.json b/src/generated/resources/assets/createindustry/models/item/small_galena_bricks.json new file mode 100644 index 00000000..6f00122b --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/small_galena_bricks.json @@ -0,0 +1,3 @@ +{ + "parent": "createindustry:block/small_galena_bricks" +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/stator.json b/src/generated/resources/assets/createindustry/models/item/stator.json new file mode 100644 index 00000000..d9a9889e --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/stator.json @@ -0,0 +1,3 @@ +{ + "parent": "createindustry:block/stator/item" +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/steel_axe.json b/src/generated/resources/assets/createindustry/models/item/steel_axe.json new file mode 100644 index 00000000..dc8e2d9e --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/steel_axe.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "createindustry:item/steel_axe" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/steel_boots.json b/src/generated/resources/assets/createindustry/models/item/steel_boots.json new file mode 100644 index 00000000..f321f56c --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/steel_boots.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "createindustry:item/steel_boots" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/steel_cable_hub.json b/src/generated/resources/assets/createindustry/models/item/steel_cable_hub.json new file mode 100644 index 00000000..0d33e170 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/steel_cable_hub.json @@ -0,0 +1,3 @@ +{ + "parent": "createindustry:block/steel_cable_hub" +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/steel_casing_cable_hub.json b/src/generated/resources/assets/createindustry/models/item/steel_casing_cable_hub.json new file mode 100644 index 00000000..26d80607 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/steel_casing_cable_hub.json @@ -0,0 +1,3 @@ +{ + "parent": "createindustry:block/steel_casing_cable_hub" +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/steel_chestplate.json b/src/generated/resources/assets/createindustry/models/item/steel_chestplate.json new file mode 100644 index 00000000..dfcbc381 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/steel_chestplate.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "createindustry:item/steel_chestplate" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/steel_cogwheel.json b/src/generated/resources/assets/createindustry/models/item/steel_cogwheel.json new file mode 100644 index 00000000..8ddb039c --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/steel_cogwheel.json @@ -0,0 +1,3 @@ +{ + "parent": "createindustry:block/steel_cogwheel" +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/steel_encased_aluminum_cogwheel.json b/src/generated/resources/assets/createindustry/models/item/steel_encased_aluminum_cogwheel.json new file mode 100644 index 00000000..443a0481 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/steel_encased_aluminum_cogwheel.json @@ -0,0 +1,9 @@ +{ + "parent": "createindustry:block/encased_cogwheel/item", + "textures": { + "1": "createindustry:block/steel_casing", + "casing": "createindustry:block/steel_casing", + "particle": "createindustry:block/steel_casing", + "side": "createindustry:block/steel_encased_cogwheel_side" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/steel_encased_cogwheel.json b/src/generated/resources/assets/createindustry/models/item/steel_encased_cogwheel.json new file mode 100644 index 00000000..443a0481 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/steel_encased_cogwheel.json @@ -0,0 +1,9 @@ +{ + "parent": "createindustry:block/encased_cogwheel/item", + "textures": { + "1": "createindustry:block/steel_casing", + "casing": "createindustry:block/steel_casing", + "particle": "createindustry:block/steel_casing", + "side": "createindustry:block/steel_encased_cogwheel_side" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/steel_encased_large_aluminum_cogwheel.json b/src/generated/resources/assets/createindustry/models/item/steel_encased_large_aluminum_cogwheel.json new file mode 100644 index 00000000..10580afa --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/steel_encased_large_aluminum_cogwheel.json @@ -0,0 +1,9 @@ +{ + "parent": "createindustry:block/encased_large_cogwheel/item", + "textures": { + "1": "createindustry:block/steel_casing", + "casing": "createindustry:block/steel_casing", + "particle": "createindustry:block/steel_casing", + "side": "createindustry:block/steel_encased_cogwheel_side_large" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/steel_encased_large_cogwheel.json b/src/generated/resources/assets/createindustry/models/item/steel_encased_large_cogwheel.json new file mode 100644 index 00000000..10580afa --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/steel_encased_large_cogwheel.json @@ -0,0 +1,9 @@ +{ + "parent": "createindustry:block/encased_large_cogwheel/item", + "textures": { + "1": "createindustry:block/steel_casing", + "casing": "createindustry:block/steel_casing", + "particle": "createindustry:block/steel_casing", + "side": "createindustry:block/steel_encased_cogwheel_side_large" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/steel_encased_large_steel_cogwheel.json b/src/generated/resources/assets/createindustry/models/item/steel_encased_large_steel_cogwheel.json new file mode 100644 index 00000000..10580afa --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/steel_encased_large_steel_cogwheel.json @@ -0,0 +1,9 @@ +{ + "parent": "createindustry:block/encased_large_cogwheel/item", + "textures": { + "1": "createindustry:block/steel_casing", + "casing": "createindustry:block/steel_casing", + "particle": "createindustry:block/steel_casing", + "side": "createindustry:block/steel_encased_cogwheel_side_large" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/steel_encased_shaft.json b/src/generated/resources/assets/createindustry/models/item/steel_encased_shaft.json new file mode 100644 index 00000000..f99bef83 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/steel_encased_shaft.json @@ -0,0 +1,3 @@ +{ + "parent": "createindustry:block/encased_shaft/item_steel" +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/steel_encased_steel_cogwheel.json b/src/generated/resources/assets/createindustry/models/item/steel_encased_steel_cogwheel.json new file mode 100644 index 00000000..443a0481 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/steel_encased_steel_cogwheel.json @@ -0,0 +1,9 @@ +{ + "parent": "createindustry:block/encased_cogwheel/item", + "textures": { + "1": "createindustry:block/steel_casing", + "casing": "createindustry:block/steel_casing", + "particle": "createindustry:block/steel_casing", + "side": "createindustry:block/steel_encased_cogwheel_side" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/steel_gearbox.json b/src/generated/resources/assets/createindustry/models/item/steel_gearbox.json new file mode 100644 index 00000000..46809674 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/steel_gearbox.json @@ -0,0 +1,3 @@ +{ + "parent": "createindustry:block/steel_gearbox/item" +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/steel_helmet.json b/src/generated/resources/assets/createindustry/models/item/steel_helmet.json new file mode 100644 index 00000000..9e7ac0b2 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/steel_helmet.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "createindustry:item/steel_helmet" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/steel_hoe.json b/src/generated/resources/assets/createindustry/models/item/steel_hoe.json new file mode 100644 index 00000000..2585a6c7 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/steel_hoe.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "createindustry:item/steel_hoe" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/steel_leggings.json b/src/generated/resources/assets/createindustry/models/item/steel_leggings.json new file mode 100644 index 00000000..b943a66b --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/steel_leggings.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "createindustry:item/steel_leggings" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/steel_pickaxe.json b/src/generated/resources/assets/createindustry/models/item/steel_pickaxe.json new file mode 100644 index 00000000..0102b3c0 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/steel_pickaxe.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "createindustry:item/steel_pickaxe" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/steel_shovel.json b/src/generated/resources/assets/createindustry/models/item/steel_shovel.json new file mode 100644 index 00000000..1939952a --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/steel_shovel.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "createindustry:item/steel_shovel" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/steel_sword.json b/src/generated/resources/assets/createindustry/models/item/steel_sword.json new file mode 100644 index 00000000..fc0a2e9c --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/steel_sword.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "createindustry:item/steel_sword" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/steel_vertical_gearbox.json b/src/generated/resources/assets/createindustry/models/item/steel_vertical_gearbox.json new file mode 100644 index 00000000..03839eb8 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/steel_vertical_gearbox.json @@ -0,0 +1,3 @@ +{ + "parent": "createindustry:block/steel_gearbox/item_vertical" +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/sulfuric_acid_bucket.json b/src/generated/resources/assets/createindustry/models/item/sulfuric_acid_bucket.json new file mode 100644 index 00000000..196ad547 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/sulfuric_acid_bucket.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "createindustry:item/sulfuric_acid_bucket" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/synthetic_leather.json b/src/generated/resources/assets/createindustry/models/item/synthetic_leather.json new file mode 100644 index 00000000..35f8b394 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/synthetic_leather.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "createindustry:item/synthetic_leather" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/synthetic_string.json b/src/generated/resources/assets/createindustry/models/item/synthetic_string.json new file mode 100644 index 00000000..14a3b260 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/synthetic_string.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "createindustry:item/synthetic_string" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/voltage_cube.json b/src/generated/resources/assets/createindustry/models/item/voltage_cube.json new file mode 100644 index 00000000..c8955b2e --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/voltage_cube.json @@ -0,0 +1,3 @@ +{ + "parent": "createindustry:block/voltage_cube" +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/voltmeter.json b/src/generated/resources/assets/createindustry/models/item/voltmeter.json new file mode 100644 index 00000000..ce6040fd --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/voltmeter.json @@ -0,0 +1,3 @@ +{ + "parent": "createindustry:block/voltmeter/item" +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/white_caution_block.json b/src/generated/resources/assets/createindustry/models/item/white_caution_block.json new file mode 100644 index 00000000..3d89c972 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/white_caution_block.json @@ -0,0 +1,3 @@ +{ + "parent": "createindustry:block/white_caution_block" +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/yellow_caution_block.json b/src/generated/resources/assets/createindustry/models/item/yellow_caution_block.json new file mode 100644 index 00000000..27ff268a --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/yellow_caution_block.json @@ -0,0 +1,3 @@ +{ + "parent": "createindustry:block/yellow_caution_block" +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/zinc_frame.json b/src/generated/resources/assets/createindustry/models/item/zinc_frame.json new file mode 100644 index 00000000..4ee518ea --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/zinc_frame.json @@ -0,0 +1,3 @@ +{ + "parent": "createindustry:block/zinc_frame/block" +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/zinc_sulfate.json b/src/generated/resources/assets/createindustry/models/item/zinc_sulfate.json new file mode 100644 index 00000000..808dc189 --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/zinc_sulfate.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "createindustry:item/zinc_sulfate" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/zinc_truss.json b/src/generated/resources/assets/createindustry/models/item/zinc_truss.json new file mode 100644 index 00000000..02604bcb --- /dev/null +++ b/src/generated/resources/assets/createindustry/models/item/zinc_truss.json @@ -0,0 +1,3 @@ +{ + "parent": "createindustry:block/zinc_truss" +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/advancements/recipes/createindustry.base/cinderblock_from_concrete_stonecutting.json b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.base/cinderblock_from_concrete_stonecutting.json new file mode 100644 index 00000000..ec2d3be6 --- /dev/null +++ b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.base/cinderblock_from_concrete_stonecutting.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_concrete": { + "conditions": { + "items": [ + { + "items": [ + "createindustry:concrete" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "createindustry:cinderblock_from_concrete_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_concrete", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "createindustry:cinderblock_from_concrete_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/aluminum_bars_from_ingots_aluminum_stonecutting.json b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/aluminum_bars_from_ingots_aluminum_stonecutting.json new file mode 100644 index 00000000..18ab5296 --- /dev/null +++ b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/aluminum_bars_from_ingots_aluminum_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_ingots_aluminum": { + "conditions": { + "items": [ + { + "tag": "forge:ingots/aluminum" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "createindustry:aluminum_bars_from_ingots_aluminum_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_ingots_aluminum", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "createindustry:aluminum_bars_from_ingots_aluminum_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/aluminum_ladder_from_ingots_aluminum_stonecutting.json b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/aluminum_ladder_from_ingots_aluminum_stonecutting.json new file mode 100644 index 00000000..994b1932 --- /dev/null +++ b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/aluminum_ladder_from_ingots_aluminum_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_ingots_aluminum": { + "conditions": { + "items": [ + { + "tag": "forge:ingots/aluminum" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "createindustry:aluminum_ladder_from_ingots_aluminum_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_ingots_aluminum", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "createindustry:aluminum_ladder_from_ingots_aluminum_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/aluminum_scaffolding_from_ingots_aluminum_stonecutting.json b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/aluminum_scaffolding_from_ingots_aluminum_stonecutting.json new file mode 100644 index 00000000..f8dd8e34 --- /dev/null +++ b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/aluminum_scaffolding_from_ingots_aluminum_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_ingots_aluminum": { + "conditions": { + "items": [ + { + "tag": "forge:ingots/aluminum" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "createindustry:aluminum_scaffolding_from_ingots_aluminum_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_ingots_aluminum", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "createindustry:aluminum_scaffolding_from_ingots_aluminum_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/brass_frame_from_ingots_brass_stonecutting.json b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/brass_frame_from_ingots_brass_stonecutting.json new file mode 100644 index 00000000..9db3b032 --- /dev/null +++ b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/brass_frame_from_ingots_brass_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_ingots_brass": { + "conditions": { + "items": [ + { + "tag": "forge:ingots/brass" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "createindustry:brass_frame_from_ingots_brass_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_ingots_brass", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "createindustry:brass_frame_from_ingots_brass_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/brass_truss_from_ingots_brass_stonecutting.json b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/brass_truss_from_ingots_brass_stonecutting.json new file mode 100644 index 00000000..05cca7ee --- /dev/null +++ b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/brass_truss_from_ingots_brass_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_ingots_brass": { + "conditions": { + "items": [ + { + "tag": "forge:ingots/brass" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "createindustry:brass_truss_from_ingots_brass_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_ingots_brass", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "createindustry:brass_truss_from_ingots_brass_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/cast_iron_bars_from_ingots_cast_iron_stonecutting.json b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/cast_iron_bars_from_ingots_cast_iron_stonecutting.json new file mode 100644 index 00000000..26f483a3 --- /dev/null +++ b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/cast_iron_bars_from_ingots_cast_iron_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_ingots_cast_iron": { + "conditions": { + "items": [ + { + "tag": "forge:ingots/cast_iron" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "createindustry:cast_iron_bars_from_ingots_cast_iron_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_ingots_cast_iron", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "createindustry:cast_iron_bars_from_ingots_cast_iron_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/cast_iron_ladder_from_ingots_cast_iron_stonecutting.json b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/cast_iron_ladder_from_ingots_cast_iron_stonecutting.json new file mode 100644 index 00000000..cd453962 --- /dev/null +++ b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/cast_iron_ladder_from_ingots_cast_iron_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_ingots_cast_iron": { + "conditions": { + "items": [ + { + "tag": "forge:ingots/cast_iron" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "createindustry:cast_iron_ladder_from_ingots_cast_iron_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_ingots_cast_iron", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "createindustry:cast_iron_ladder_from_ingots_cast_iron_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/concrete_slab_from_concrete_stonecutting.json b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/concrete_slab_from_concrete_stonecutting.json new file mode 100644 index 00000000..571af550 --- /dev/null +++ b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/concrete_slab_from_concrete_stonecutting.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_concrete": { + "conditions": { + "items": [ + { + "items": [ + "createindustry:concrete" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "createindustry:concrete_slab_from_concrete_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_concrete", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "createindustry:concrete_slab_from_concrete_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/concrete_stairs_from_concrete_stonecutting.json b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/concrete_stairs_from_concrete_stonecutting.json new file mode 100644 index 00000000..a25006a9 --- /dev/null +++ b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/concrete_stairs_from_concrete_stonecutting.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_concrete": { + "conditions": { + "items": [ + { + "items": [ + "createindustry:concrete" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "createindustry:concrete_stairs_from_concrete_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_concrete", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "createindustry:concrete_stairs_from_concrete_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/concrete_wall_from_concrete_stonecutting.json b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/concrete_wall_from_concrete_stonecutting.json new file mode 100644 index 00000000..d2e57a00 --- /dev/null +++ b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/concrete_wall_from_concrete_stonecutting.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_concrete": { + "conditions": { + "items": [ + { + "items": [ + "createindustry:concrete" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "createindustry:concrete_wall_from_concrete_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_concrete", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "createindustry:concrete_wall_from_concrete_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/copper_frame_from_ingots_copper_stonecutting.json b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/copper_frame_from_ingots_copper_stonecutting.json new file mode 100644 index 00000000..793e316a --- /dev/null +++ b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/copper_frame_from_ingots_copper_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_ingots_copper": { + "conditions": { + "items": [ + { + "tag": "forge:ingots/copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "createindustry:copper_frame_from_ingots_copper_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_ingots_copper", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "createindustry:copper_frame_from_ingots_copper_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/copper_truss_from_ingots_copper_stonecutting.json b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/copper_truss_from_ingots_copper_stonecutting.json new file mode 100644 index 00000000..dac61bd4 --- /dev/null +++ b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/copper_truss_from_ingots_copper_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_ingots_copper": { + "conditions": { + "items": [ + { + "tag": "forge:ingots/copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "createindustry:copper_truss_from_ingots_copper_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_ingots_copper", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "createindustry:copper_truss_from_ingots_copper_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/cut_galena_brick_slab.json b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/cut_galena_brick_slab.json new file mode 100644 index 00000000..5f11aead --- /dev/null +++ b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/cut_galena_brick_slab.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_cut_galena_bricks": { + "conditions": { + "items": [ + { + "items": [ + "createindustry:cut_galena_bricks" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "createindustry:cut_galena_brick_slab" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_cut_galena_bricks", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "createindustry:cut_galena_brick_slab" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/cut_galena_brick_slab_from_stone_types_galena_stonecutting.json b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/cut_galena_brick_slab_from_stone_types_galena_stonecutting.json new file mode 100644 index 00000000..70466ed8 --- /dev/null +++ b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/cut_galena_brick_slab_from_stone_types_galena_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_stone_types_galena": { + "conditions": { + "items": [ + { + "tag": "createindustry:stone_types/galena" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "createindustry:cut_galena_brick_slab_from_stone_types_galena_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_stone_types_galena", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "createindustry:cut_galena_brick_slab_from_stone_types_galena_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/cut_galena_brick_slab_recycling.json b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/cut_galena_brick_slab_recycling.json new file mode 100644 index 00000000..edcc1eb9 --- /dev/null +++ b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/cut_galena_brick_slab_recycling.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_cut_galena_brick_slab": { + "conditions": { + "items": [ + { + "items": [ + "createindustry:cut_galena_brick_slab" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "createindustry:cut_galena_brick_slab_recycling" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_cut_galena_brick_slab", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "createindustry:cut_galena_brick_slab_recycling" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/cut_galena_brick_stairs.json b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/cut_galena_brick_stairs.json new file mode 100644 index 00000000..16a73282 --- /dev/null +++ b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/cut_galena_brick_stairs.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_cut_galena_bricks": { + "conditions": { + "items": [ + { + "items": [ + "createindustry:cut_galena_bricks" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "createindustry:cut_galena_brick_stairs" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_cut_galena_bricks", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "createindustry:cut_galena_brick_stairs" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/cut_galena_brick_stairs_from_stone_types_galena_stonecutting.json b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/cut_galena_brick_stairs_from_stone_types_galena_stonecutting.json new file mode 100644 index 00000000..c257b05a --- /dev/null +++ b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/cut_galena_brick_stairs_from_stone_types_galena_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_stone_types_galena": { + "conditions": { + "items": [ + { + "tag": "createindustry:stone_types/galena" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "createindustry:cut_galena_brick_stairs_from_stone_types_galena_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_stone_types_galena", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "createindustry:cut_galena_brick_stairs_from_stone_types_galena_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/cut_galena_brick_wall.json b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/cut_galena_brick_wall.json new file mode 100644 index 00000000..0506f846 --- /dev/null +++ b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/cut_galena_brick_wall.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_cut_galena_bricks": { + "conditions": { + "items": [ + { + "items": [ + "createindustry:cut_galena_bricks" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "createindustry:cut_galena_brick_wall" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_cut_galena_bricks", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "createindustry:cut_galena_brick_wall" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/cut_galena_brick_wall_from_stone_types_galena_stonecutting.json b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/cut_galena_brick_wall_from_stone_types_galena_stonecutting.json new file mode 100644 index 00000000..9703c152 --- /dev/null +++ b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/cut_galena_brick_wall_from_stone_types_galena_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_stone_types_galena": { + "conditions": { + "items": [ + { + "tag": "createindustry:stone_types/galena" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "createindustry:cut_galena_brick_wall_from_stone_types_galena_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_stone_types_galena", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "createindustry:cut_galena_brick_wall_from_stone_types_galena_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/cut_galena_bricks_from_stone_types_galena_stonecutting.json b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/cut_galena_bricks_from_stone_types_galena_stonecutting.json new file mode 100644 index 00000000..a0598ad4 --- /dev/null +++ b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/cut_galena_bricks_from_stone_types_galena_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_stone_types_galena": { + "conditions": { + "items": [ + { + "tag": "createindustry:stone_types/galena" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "createindustry:cut_galena_bricks_from_stone_types_galena_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_stone_types_galena", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "createindustry:cut_galena_bricks_from_stone_types_galena_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/cut_galena_from_stone_types_galena_stonecutting.json b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/cut_galena_from_stone_types_galena_stonecutting.json new file mode 100644 index 00000000..e38db0a3 --- /dev/null +++ b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/cut_galena_from_stone_types_galena_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_stone_types_galena": { + "conditions": { + "items": [ + { + "tag": "createindustry:stone_types/galena" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "createindustry:cut_galena_from_stone_types_galena_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_stone_types_galena", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "createindustry:cut_galena_from_stone_types_galena_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/cut_galena_slab.json b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/cut_galena_slab.json new file mode 100644 index 00000000..b18f70bc --- /dev/null +++ b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/cut_galena_slab.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_cut_galena": { + "conditions": { + "items": [ + { + "items": [ + "createindustry:cut_galena" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "createindustry:cut_galena_slab" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_cut_galena", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "createindustry:cut_galena_slab" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/cut_galena_slab_from_stone_types_galena_stonecutting.json b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/cut_galena_slab_from_stone_types_galena_stonecutting.json new file mode 100644 index 00000000..408ee7da --- /dev/null +++ b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/cut_galena_slab_from_stone_types_galena_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_stone_types_galena": { + "conditions": { + "items": [ + { + "tag": "createindustry:stone_types/galena" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "createindustry:cut_galena_slab_from_stone_types_galena_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_stone_types_galena", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "createindustry:cut_galena_slab_from_stone_types_galena_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/cut_galena_slab_recycling.json b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/cut_galena_slab_recycling.json new file mode 100644 index 00000000..92c3da90 --- /dev/null +++ b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/cut_galena_slab_recycling.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_cut_galena_slab": { + "conditions": { + "items": [ + { + "items": [ + "createindustry:cut_galena_slab" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "createindustry:cut_galena_slab_recycling" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_cut_galena_slab", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "createindustry:cut_galena_slab_recycling" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/cut_galena_stairs.json b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/cut_galena_stairs.json new file mode 100644 index 00000000..623b40bc --- /dev/null +++ b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/cut_galena_stairs.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_cut_galena": { + "conditions": { + "items": [ + { + "items": [ + "createindustry:cut_galena" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "createindustry:cut_galena_stairs" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_cut_galena", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "createindustry:cut_galena_stairs" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/cut_galena_stairs_from_stone_types_galena_stonecutting.json b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/cut_galena_stairs_from_stone_types_galena_stonecutting.json new file mode 100644 index 00000000..6aa1c047 --- /dev/null +++ b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/cut_galena_stairs_from_stone_types_galena_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_stone_types_galena": { + "conditions": { + "items": [ + { + "tag": "createindustry:stone_types/galena" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "createindustry:cut_galena_stairs_from_stone_types_galena_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_stone_types_galena", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "createindustry:cut_galena_stairs_from_stone_types_galena_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/cut_galena_wall.json b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/cut_galena_wall.json new file mode 100644 index 00000000..4dcc8b9a --- /dev/null +++ b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/cut_galena_wall.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_cut_galena": { + "conditions": { + "items": [ + { + "items": [ + "createindustry:cut_galena" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "createindustry:cut_galena_wall" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_cut_galena", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "createindustry:cut_galena_wall" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/cut_galena_wall_from_stone_types_galena_stonecutting.json b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/cut_galena_wall_from_stone_types_galena_stonecutting.json new file mode 100644 index 00000000..171d3815 --- /dev/null +++ b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/cut_galena_wall_from_stone_types_galena_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_stone_types_galena": { + "conditions": { + "items": [ + { + "tag": "createindustry:stone_types/galena" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "createindustry:cut_galena_wall_from_stone_types_galena_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_stone_types_galena", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "createindustry:cut_galena_wall_from_stone_types_galena_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/galena_from_stone_types_galena_stonecutting.json b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/galena_from_stone_types_galena_stonecutting.json new file mode 100644 index 00000000..0993f90b --- /dev/null +++ b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/galena_from_stone_types_galena_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_stone_types_galena": { + "conditions": { + "items": [ + { + "tag": "createindustry:stone_types/galena" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "createindustry:galena_from_stone_types_galena_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_stone_types_galena", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "createindustry:galena_from_stone_types_galena_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/galena_pillar_from_stone_types_galena_stonecutting.json b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/galena_pillar_from_stone_types_galena_stonecutting.json new file mode 100644 index 00000000..07a41536 --- /dev/null +++ b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/galena_pillar_from_stone_types_galena_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_stone_types_galena": { + "conditions": { + "items": [ + { + "tag": "createindustry:stone_types/galena" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "createindustry:galena_pillar_from_stone_types_galena_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_stone_types_galena", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "createindustry:galena_pillar_from_stone_types_galena_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/layered_galena_from_stone_types_galena_stonecutting.json b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/layered_galena_from_stone_types_galena_stonecutting.json new file mode 100644 index 00000000..6a201f0e --- /dev/null +++ b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/layered_galena_from_stone_types_galena_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_stone_types_galena": { + "conditions": { + "items": [ + { + "tag": "createindustry:stone_types/galena" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "createindustry:layered_galena_from_stone_types_galena_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_stone_types_galena", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "createindustry:layered_galena_from_stone_types_galena_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/lead_bars_from_ingots_lead_stonecutting.json b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/lead_bars_from_ingots_lead_stonecutting.json new file mode 100644 index 00000000..7bc45421 --- /dev/null +++ b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/lead_bars_from_ingots_lead_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_ingots_lead": { + "conditions": { + "items": [ + { + "tag": "forge:ingots/lead" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "createindustry:lead_bars_from_ingots_lead_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_ingots_lead", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "createindustry:lead_bars_from_ingots_lead_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/lead_frame_from_ingots_lead_stonecutting.json b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/lead_frame_from_ingots_lead_stonecutting.json new file mode 100644 index 00000000..fdff7845 --- /dev/null +++ b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/lead_frame_from_ingots_lead_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_ingots_lead": { + "conditions": { + "items": [ + { + "tag": "forge:ingots/lead" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "createindustry:lead_frame_from_ingots_lead_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_ingots_lead", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "createindustry:lead_frame_from_ingots_lead_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/lead_ladder_from_ingots_lead_stonecutting.json b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/lead_ladder_from_ingots_lead_stonecutting.json new file mode 100644 index 00000000..d4dd19e4 --- /dev/null +++ b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/lead_ladder_from_ingots_lead_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_ingots_lead": { + "conditions": { + "items": [ + { + "tag": "forge:ingots/lead" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "createindustry:lead_ladder_from_ingots_lead_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_ingots_lead", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "createindustry:lead_ladder_from_ingots_lead_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/lead_truss_from_ingots_lead_stonecutting.json b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/lead_truss_from_ingots_lead_stonecutting.json new file mode 100644 index 00000000..4e8e4f8b --- /dev/null +++ b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/lead_truss_from_ingots_lead_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_ingots_lead": { + "conditions": { + "items": [ + { + "tag": "forge:ingots/lead" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "createindustry:lead_truss_from_ingots_lead_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_ingots_lead", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "createindustry:lead_truss_from_ingots_lead_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/nickel_bars_from_ingots_nickel_stonecutting.json b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/nickel_bars_from_ingots_nickel_stonecutting.json new file mode 100644 index 00000000..d850ee6a --- /dev/null +++ b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/nickel_bars_from_ingots_nickel_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_ingots_nickel": { + "conditions": { + "items": [ + { + "tag": "forge:ingots/nickel" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "createindustry:nickel_bars_from_ingots_nickel_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_ingots_nickel", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "createindustry:nickel_bars_from_ingots_nickel_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/nickel_frame_from_ingots_nickel_stonecutting.json b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/nickel_frame_from_ingots_nickel_stonecutting.json new file mode 100644 index 00000000..46512a1d --- /dev/null +++ b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/nickel_frame_from_ingots_nickel_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_ingots_nickel": { + "conditions": { + "items": [ + { + "tag": "forge:ingots/nickel" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "createindustry:nickel_frame_from_ingots_nickel_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_ingots_nickel", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "createindustry:nickel_frame_from_ingots_nickel_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/nickel_ladder_from_ingots_nickel_stonecutting.json b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/nickel_ladder_from_ingots_nickel_stonecutting.json new file mode 100644 index 00000000..ef8e1514 --- /dev/null +++ b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/nickel_ladder_from_ingots_nickel_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_ingots_nickel": { + "conditions": { + "items": [ + { + "tag": "forge:ingots/nickel" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "createindustry:nickel_ladder_from_ingots_nickel_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_ingots_nickel", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "createindustry:nickel_ladder_from_ingots_nickel_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/nickel_truss_from_ingots_nickel_stonecutting.json b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/nickel_truss_from_ingots_nickel_stonecutting.json new file mode 100644 index 00000000..7c2be41c --- /dev/null +++ b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/nickel_truss_from_ingots_nickel_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_ingots_nickel": { + "conditions": { + "items": [ + { + "tag": "forge:ingots/nickel" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "createindustry:nickel_truss_from_ingots_nickel_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_ingots_nickel", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "createindustry:nickel_truss_from_ingots_nickel_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/polished_cut_galena_from_stone_types_galena_stonecutting.json b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/polished_cut_galena_from_stone_types_galena_stonecutting.json new file mode 100644 index 00000000..cbaf2bd5 --- /dev/null +++ b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/polished_cut_galena_from_stone_types_galena_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_stone_types_galena": { + "conditions": { + "items": [ + { + "tag": "createindustry:stone_types/galena" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "createindustry:polished_cut_galena_from_stone_types_galena_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_stone_types_galena", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "createindustry:polished_cut_galena_from_stone_types_galena_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/polished_cut_galena_slab.json b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/polished_cut_galena_slab.json new file mode 100644 index 00000000..36ae2fc3 --- /dev/null +++ b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/polished_cut_galena_slab.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_polished_cut_galena": { + "conditions": { + "items": [ + { + "items": [ + "createindustry:polished_cut_galena" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "createindustry:polished_cut_galena_slab" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_polished_cut_galena", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "createindustry:polished_cut_galena_slab" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/polished_cut_galena_slab_from_stone_types_galena_stonecutting.json b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/polished_cut_galena_slab_from_stone_types_galena_stonecutting.json new file mode 100644 index 00000000..5ca73951 --- /dev/null +++ b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/polished_cut_galena_slab_from_stone_types_galena_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_stone_types_galena": { + "conditions": { + "items": [ + { + "tag": "createindustry:stone_types/galena" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "createindustry:polished_cut_galena_slab_from_stone_types_galena_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_stone_types_galena", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "createindustry:polished_cut_galena_slab_from_stone_types_galena_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/polished_cut_galena_slab_recycling.json b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/polished_cut_galena_slab_recycling.json new file mode 100644 index 00000000..7d3aca5b --- /dev/null +++ b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/polished_cut_galena_slab_recycling.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_polished_cut_galena_slab": { + "conditions": { + "items": [ + { + "items": [ + "createindustry:polished_cut_galena_slab" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "createindustry:polished_cut_galena_slab_recycling" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_polished_cut_galena_slab", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "createindustry:polished_cut_galena_slab_recycling" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/polished_cut_galena_stairs.json b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/polished_cut_galena_stairs.json new file mode 100644 index 00000000..8a0cf46f --- /dev/null +++ b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/polished_cut_galena_stairs.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_polished_cut_galena": { + "conditions": { + "items": [ + { + "items": [ + "createindustry:polished_cut_galena" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "createindustry:polished_cut_galena_stairs" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_polished_cut_galena", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "createindustry:polished_cut_galena_stairs" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/polished_cut_galena_stairs_from_stone_types_galena_stonecutting.json b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/polished_cut_galena_stairs_from_stone_types_galena_stonecutting.json new file mode 100644 index 00000000..a62d29ae --- /dev/null +++ b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/polished_cut_galena_stairs_from_stone_types_galena_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_stone_types_galena": { + "conditions": { + "items": [ + { + "tag": "createindustry:stone_types/galena" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "createindustry:polished_cut_galena_stairs_from_stone_types_galena_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_stone_types_galena", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "createindustry:polished_cut_galena_stairs_from_stone_types_galena_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/polished_cut_galena_wall.json b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/polished_cut_galena_wall.json new file mode 100644 index 00000000..33116d5d --- /dev/null +++ b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/polished_cut_galena_wall.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_polished_cut_galena": { + "conditions": { + "items": [ + { + "items": [ + "createindustry:polished_cut_galena" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "createindustry:polished_cut_galena_wall" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_polished_cut_galena", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "createindustry:polished_cut_galena_wall" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/polished_cut_galena_wall_from_stone_types_galena_stonecutting.json b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/polished_cut_galena_wall_from_stone_types_galena_stonecutting.json new file mode 100644 index 00000000..ac384a47 --- /dev/null +++ b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/polished_cut_galena_wall_from_stone_types_galena_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_stone_types_galena": { + "conditions": { + "items": [ + { + "tag": "createindustry:stone_types/galena" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "createindustry:polished_cut_galena_wall_from_stone_types_galena_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_stone_types_galena", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "createindustry:polished_cut_galena_wall_from_stone_types_galena_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/rebar_concrete_slab_from_rebar_concrete_stonecutting.json b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/rebar_concrete_slab_from_rebar_concrete_stonecutting.json new file mode 100644 index 00000000..156b785e --- /dev/null +++ b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/rebar_concrete_slab_from_rebar_concrete_stonecutting.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_rebar_concrete": { + "conditions": { + "items": [ + { + "items": [ + "createindustry:rebar_concrete" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "createindustry:rebar_concrete_slab_from_rebar_concrete_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_rebar_concrete", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "createindustry:rebar_concrete_slab_from_rebar_concrete_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/small_galena_brick_slab.json b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/small_galena_brick_slab.json new file mode 100644 index 00000000..0a3ca9ca --- /dev/null +++ b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/small_galena_brick_slab.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_small_galena_bricks": { + "conditions": { + "items": [ + { + "items": [ + "createindustry:small_galena_bricks" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "createindustry:small_galena_brick_slab" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_small_galena_bricks", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "createindustry:small_galena_brick_slab" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/small_galena_brick_slab_from_stone_types_galena_stonecutting.json b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/small_galena_brick_slab_from_stone_types_galena_stonecutting.json new file mode 100644 index 00000000..950f20fc --- /dev/null +++ b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/small_galena_brick_slab_from_stone_types_galena_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_stone_types_galena": { + "conditions": { + "items": [ + { + "tag": "createindustry:stone_types/galena" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "createindustry:small_galena_brick_slab_from_stone_types_galena_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_stone_types_galena", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "createindustry:small_galena_brick_slab_from_stone_types_galena_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/small_galena_brick_slab_recycling.json b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/small_galena_brick_slab_recycling.json new file mode 100644 index 00000000..8d525089 --- /dev/null +++ b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/small_galena_brick_slab_recycling.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_small_galena_brick_slab": { + "conditions": { + "items": [ + { + "items": [ + "createindustry:small_galena_brick_slab" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "createindustry:small_galena_brick_slab_recycling" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_small_galena_brick_slab", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "createindustry:small_galena_brick_slab_recycling" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/small_galena_brick_stairs.json b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/small_galena_brick_stairs.json new file mode 100644 index 00000000..354edb5f --- /dev/null +++ b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/small_galena_brick_stairs.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_small_galena_bricks": { + "conditions": { + "items": [ + { + "items": [ + "createindustry:small_galena_bricks" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "createindustry:small_galena_brick_stairs" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_small_galena_bricks", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "createindustry:small_galena_brick_stairs" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/small_galena_brick_stairs_from_stone_types_galena_stonecutting.json b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/small_galena_brick_stairs_from_stone_types_galena_stonecutting.json new file mode 100644 index 00000000..9ff45849 --- /dev/null +++ b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/small_galena_brick_stairs_from_stone_types_galena_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_stone_types_galena": { + "conditions": { + "items": [ + { + "tag": "createindustry:stone_types/galena" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "createindustry:small_galena_brick_stairs_from_stone_types_galena_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_stone_types_galena", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "createindustry:small_galena_brick_stairs_from_stone_types_galena_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/small_galena_brick_wall.json b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/small_galena_brick_wall.json new file mode 100644 index 00000000..76d2c011 --- /dev/null +++ b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/small_galena_brick_wall.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_small_galena_bricks": { + "conditions": { + "items": [ + { + "items": [ + "createindustry:small_galena_bricks" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "createindustry:small_galena_brick_wall" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_small_galena_bricks", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "createindustry:small_galena_brick_wall" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/small_galena_brick_wall_from_stone_types_galena_stonecutting.json b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/small_galena_brick_wall_from_stone_types_galena_stonecutting.json new file mode 100644 index 00000000..5482e287 --- /dev/null +++ b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/small_galena_brick_wall_from_stone_types_galena_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_stone_types_galena": { + "conditions": { + "items": [ + { + "tag": "createindustry:stone_types/galena" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "createindustry:small_galena_brick_wall_from_stone_types_galena_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_stone_types_galena", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "createindustry:small_galena_brick_wall_from_stone_types_galena_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/small_galena_bricks_from_stone_types_galena_stonecutting.json b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/small_galena_bricks_from_stone_types_galena_stonecutting.json new file mode 100644 index 00000000..8fbb8dc3 --- /dev/null +++ b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/small_galena_bricks_from_stone_types_galena_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_stone_types_galena": { + "conditions": { + "items": [ + { + "tag": "createindustry:stone_types/galena" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "createindustry:small_galena_bricks_from_stone_types_galena_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_stone_types_galena", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "createindustry:small_galena_bricks_from_stone_types_galena_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/steel_bars_from_ingots_steel_stonecutting.json b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/steel_bars_from_ingots_steel_stonecutting.json new file mode 100644 index 00000000..3c547ec5 --- /dev/null +++ b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/steel_bars_from_ingots_steel_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_ingots_steel": { + "conditions": { + "items": [ + { + "tag": "forge:ingots/steel" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "createindustry:steel_bars_from_ingots_steel_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_ingots_steel", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "createindustry:steel_bars_from_ingots_steel_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/steel_ladder_from_ingots_steel_stonecutting.json b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/steel_ladder_from_ingots_steel_stonecutting.json new file mode 100644 index 00000000..87fb97ab --- /dev/null +++ b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/steel_ladder_from_ingots_steel_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_ingots_steel": { + "conditions": { + "items": [ + { + "tag": "forge:ingots/steel" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "createindustry:steel_ladder_from_ingots_steel_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_ingots_steel", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "createindustry:steel_ladder_from_ingots_steel_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/steel_scaffolding_from_ingots_steel_stonecutting.json b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/steel_scaffolding_from_ingots_steel_stonecutting.json new file mode 100644 index 00000000..7ebbe56c --- /dev/null +++ b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/steel_scaffolding_from_ingots_steel_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_ingots_steel": { + "conditions": { + "items": [ + { + "tag": "forge:ingots/steel" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "createindustry:steel_scaffolding_from_ingots_steel_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_ingots_steel", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "createindustry:steel_scaffolding_from_ingots_steel_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/zinc_frame_from_ingots_zinc_stonecutting.json b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/zinc_frame_from_ingots_zinc_stonecutting.json new file mode 100644 index 00000000..d5b60678 --- /dev/null +++ b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/zinc_frame_from_ingots_zinc_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_ingots_zinc": { + "conditions": { + "items": [ + { + "tag": "forge:ingots/zinc" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "createindustry:zinc_frame_from_ingots_zinc_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_ingots_zinc", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "createindustry:zinc_frame_from_ingots_zinc_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/zinc_truss_from_ingots_zinc_stonecutting.json b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/zinc_truss_from_ingots_zinc_stonecutting.json new file mode 100644 index 00000000..ba25ccd0 --- /dev/null +++ b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/zinc_truss_from_ingots_zinc_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_ingots_zinc": { + "conditions": { + "items": [ + { + "tag": "forge:ingots/zinc" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "createindustry:zinc_truss_from_ingots_zinc_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_ingots_zinc", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "createindustry:zinc_truss_from_ingots_zinc_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/accumulator.json b/src/generated/resources/data/createindustry/loot_tables/blocks/accumulator.json new file mode 100644 index 00000000..2bb4b8a2 --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/accumulator.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "createindustry:accumulator" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/aluminum_cable_hub.json b/src/generated/resources/data/createindustry/loot_tables/blocks/aluminum_cable_hub.json new file mode 100644 index 00000000..4d740615 --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/aluminum_cable_hub.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "createindustry:aluminum_cable_hub" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/aluminum_cogwheel.json b/src/generated/resources/data/createindustry/loot_tables/blocks/aluminum_cogwheel.json new file mode 100644 index 00000000..21406ec6 --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/aluminum_cogwheel.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "createindustry:aluminum_cogwheel" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/aluminum_frame.json b/src/generated/resources/data/createindustry/loot_tables/blocks/aluminum_frame.json new file mode 100644 index 00000000..67cc6824 --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/aluminum_frame.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "createindustry:aluminum_frame" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/blue_caution_block.json b/src/generated/resources/data/createindustry/loot_tables/blocks/blue_caution_block.json new file mode 100644 index 00000000..23a29dc0 --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/blue_caution_block.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "createindustry:blue_caution_block" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/brass_cable_hub.json b/src/generated/resources/data/createindustry/loot_tables/blocks/brass_cable_hub.json new file mode 100644 index 00000000..34798778 --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/brass_cable_hub.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "createindustry:brass_cable_hub" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/brass_frame.json b/src/generated/resources/data/createindustry/loot_tables/blocks/brass_frame.json new file mode 100644 index 00000000..2896bd6d --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/brass_frame.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "createindustry:brass_frame" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/brass_truss.json b/src/generated/resources/data/createindustry/loot_tables/blocks/brass_truss.json new file mode 100644 index 00000000..75a8e2e3 --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/brass_truss.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "createindustry:brass_truss" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/brown_caution_block.json b/src/generated/resources/data/createindustry/loot_tables/blocks/brown_caution_block.json new file mode 100644 index 00000000..2c9b4890 --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/brown_caution_block.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "createindustry:brown_caution_block" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/cable_connector.json b/src/generated/resources/data/createindustry/loot_tables/blocks/cable_connector.json new file mode 100644 index 00000000..c47da03c --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/cable_connector.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "createindustry:cable_connector" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/cable_tube.json b/src/generated/resources/data/createindustry/loot_tables/blocks/cable_tube.json new file mode 100644 index 00000000..2fe49af8 --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/cable_tube.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "createindustry:cable_tube" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/capacitor.json b/src/generated/resources/data/createindustry/loot_tables/blocks/capacitor.json new file mode 100644 index 00000000..26219c15 --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/capacitor.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "createindustry:capacitor" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/cast_iron_bars.json b/src/generated/resources/data/createindustry/loot_tables/blocks/cast_iron_bars.json new file mode 100644 index 00000000..f0b09982 --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/cast_iron_bars.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "createindustry:cast_iron_bars" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/cast_iron_frame.json b/src/generated/resources/data/createindustry/loot_tables/blocks/cast_iron_frame.json new file mode 100644 index 00000000..6a318c77 --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/cast_iron_frame.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "createindustry:cast_iron_frame" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/cast_iron_ladder.json b/src/generated/resources/data/createindustry/loot_tables/blocks/cast_iron_ladder.json new file mode 100644 index 00000000..a0624b02 --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/cast_iron_ladder.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "createindustry:cast_iron_ladder" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/cast_iron_truss.json b/src/generated/resources/data/createindustry/loot_tables/blocks/cast_iron_truss.json new file mode 100644 index 00000000..dcbc14a2 --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/cast_iron_truss.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "createindustry:cast_iron_truss" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/cinder_block.json b/src/generated/resources/data/createindustry/loot_tables/blocks/cinder_block.json new file mode 100644 index 00000000..284e071b --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/cinder_block.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "createindustry:cinder_block" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/cinderflour_block.json b/src/generated/resources/data/createindustry/loot_tables/blocks/cinderflour_block.json new file mode 100644 index 00000000..ec280c87 --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/cinderflour_block.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "createindustry:cinderflour_block" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/converter.json b/src/generated/resources/data/createindustry/loot_tables/blocks/converter.json new file mode 100644 index 00000000..86edaf51 --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/converter.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "createindustry:converter" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/copper_cable_hub.json b/src/generated/resources/data/createindustry/loot_tables/blocks/copper_cable_hub.json new file mode 100644 index 00000000..29dc586d --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/copper_cable_hub.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "createindustry:copper_cable_hub" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/copper_coil.json b/src/generated/resources/data/createindustry/loot_tables/blocks/copper_coil.json new file mode 100644 index 00000000..20c730ba --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/copper_coil.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "createindustry:copper_coil" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/copper_frame.json b/src/generated/resources/data/createindustry/loot_tables/blocks/copper_frame.json new file mode 100644 index 00000000..69f49c30 --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/copper_frame.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "createindustry:copper_frame" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/copper_truss.json b/src/generated/resources/data/createindustry/loot_tables/blocks/copper_truss.json new file mode 100644 index 00000000..9c911f78 --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/copper_truss.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "createindustry:copper_truss" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/copycat_cable_base.json b/src/generated/resources/data/createindustry/loot_tables/blocks/copycat_cable_base.json new file mode 100644 index 00000000..38fe9914 --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/copycat_cable_base.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:air" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/copycat_cable_block.json b/src/generated/resources/data/createindustry/loot_tables/blocks/copycat_cable_block.json new file mode 100644 index 00000000..3206152e --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/copycat_cable_block.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "createindustry:copycat_cable_block" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/creative_generator.json b/src/generated/resources/data/createindustry/loot_tables/blocks/creative_generator.json new file mode 100644 index 00000000..8780e333 --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/creative_generator.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "createindustry:creative_generator" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/cut_galena.json b/src/generated/resources/data/createindustry/loot_tables/blocks/cut_galena.json new file mode 100644 index 00000000..2db41f3d --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/cut_galena.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "createindustry:cut_galena" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/cut_galena_brick_slab.json b/src/generated/resources/data/createindustry/loot_tables/blocks/cut_galena_brick_slab.json new file mode 100644 index 00000000..2b9d8533 --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/cut_galena_brick_slab.json @@ -0,0 +1,34 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "createindustry:cut_galena_brick_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "createindustry:cut_galena_brick_slab" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/cut_galena_brick_stairs.json b/src/generated/resources/data/createindustry/loot_tables/blocks/cut_galena_brick_stairs.json new file mode 100644 index 00000000..e3ea5a2e --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/cut_galena_brick_stairs.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "createindustry:cut_galena_brick_stairs" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/cut_galena_brick_wall.json b/src/generated/resources/data/createindustry/loot_tables/blocks/cut_galena_brick_wall.json new file mode 100644 index 00000000..524d334b --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/cut_galena_brick_wall.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "createindustry:cut_galena_brick_wall" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/cut_galena_bricks.json b/src/generated/resources/data/createindustry/loot_tables/blocks/cut_galena_bricks.json new file mode 100644 index 00000000..a4f59106 --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/cut_galena_bricks.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "createindustry:cut_galena_bricks" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/cut_galena_slab.json b/src/generated/resources/data/createindustry/loot_tables/blocks/cut_galena_slab.json new file mode 100644 index 00000000..7bfbf89f --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/cut_galena_slab.json @@ -0,0 +1,34 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "createindustry:cut_galena_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "createindustry:cut_galena_slab" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/cut_galena_stairs.json b/src/generated/resources/data/createindustry/loot_tables/blocks/cut_galena_stairs.json new file mode 100644 index 00000000..68d4bae5 --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/cut_galena_stairs.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "createindustry:cut_galena_stairs" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/cut_galena_wall.json b/src/generated/resources/data/createindustry/loot_tables/blocks/cut_galena_wall.json new file mode 100644 index 00000000..cdc74b2d --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/cut_galena_wall.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "createindustry:cut_galena_wall" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/cyan_caution_block.json b/src/generated/resources/data/createindustry/loot_tables/blocks/cyan_caution_block.json new file mode 100644 index 00000000..49d6620c --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/cyan_caution_block.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "createindustry:cyan_caution_block" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/deepslate_lead_ore.json b/src/generated/resources/data/createindustry/loot_tables/blocks/deepslate_lead_ore.json new file mode 100644 index 00000000..4e8a98d6 --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/deepslate_lead_ore.json @@ -0,0 +1,49 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "enchantments": [ + { + "enchantment": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + ], + "name": "createindustry:deepslate_lead_ore" + }, + { + "type": "minecraft:item", + "functions": [ + { + "enchantment": "minecraft:fortune", + "formula": "minecraft:ore_drops", + "function": "minecraft:apply_bonus" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "createindustry:raw_lead" + } + ] + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/deepslate_lithium_ore.json b/src/generated/resources/data/createindustry/loot_tables/blocks/deepslate_lithium_ore.json new file mode 100644 index 00000000..111b955b --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/deepslate_lithium_ore.json @@ -0,0 +1,49 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "enchantments": [ + { + "enchantment": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + ], + "name": "createindustry:deepslate_lithium_ore" + }, + { + "type": "minecraft:item", + "functions": [ + { + "enchantment": "minecraft:fortune", + "formula": "minecraft:ore_drops", + "function": "minecraft:apply_bonus" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "createindustry:raw_lithium" + } + ] + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/deepslate_nickel_ore.json b/src/generated/resources/data/createindustry/loot_tables/blocks/deepslate_nickel_ore.json new file mode 100644 index 00000000..77355ba5 --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/deepslate_nickel_ore.json @@ -0,0 +1,49 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "enchantments": [ + { + "enchantment": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + ], + "name": "createindustry:deepslate_nickel_ore" + }, + { + "type": "minecraft:item", + "functions": [ + { + "enchantment": "minecraft:fortune", + "formula": "minecraft:ore_drops", + "function": "minecraft:apply_bonus" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "createindustry:raw_nickel" + } + ] + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/diagonal_cable_block.json b/src/generated/resources/data/createindustry/loot_tables/blocks/diagonal_cable_block.json new file mode 100644 index 00000000..fd0306f5 --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/diagonal_cable_block.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "createindustry:diagonal_cable_block" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/electric_casing.json b/src/generated/resources/data/createindustry/loot_tables/blocks/electric_casing.json new file mode 100644 index 00000000..f14c0ea8 --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/electric_casing.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "createindustry:electric_casing" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/electric_motor.json b/src/generated/resources/data/createindustry/loot_tables/blocks/electric_motor.json new file mode 100644 index 00000000..4ed957c7 --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/electric_motor.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "createindustry:electric_motor" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/energy_meter.json b/src/generated/resources/data/createindustry/loot_tables/blocks/energy_meter.json new file mode 100644 index 00000000..ed0755e4 --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/energy_meter.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "createindustry:energy_meter" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/firebox.json b/src/generated/resources/data/createindustry/loot_tables/blocks/firebox.json new file mode 100644 index 00000000..451e5968 --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/firebox.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "createindustry:firebox" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/galena.json b/src/generated/resources/data/createindustry/loot_tables/blocks/galena.json new file mode 100644 index 00000000..645c8fff --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/galena.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "createindustry:galena" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/galena_pillar.json b/src/generated/resources/data/createindustry/loot_tables/blocks/galena_pillar.json new file mode 100644 index 00000000..64278c21 --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/galena_pillar.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "createindustry:galena_pillar" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/galvanic_cell.json b/src/generated/resources/data/createindustry/loot_tables/blocks/galvanic_cell.json new file mode 100644 index 00000000..edf9c562 --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/galvanic_cell.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "createindustry:galvanic_cell" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/generator.json b/src/generated/resources/data/createindustry/loot_tables/blocks/generator.json new file mode 100644 index 00000000..bff5ceb5 --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/generator.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "createindustry:generator" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/gray_caution_block.json b/src/generated/resources/data/createindustry/loot_tables/blocks/gray_caution_block.json new file mode 100644 index 00000000..75f55a53 --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/gray_caution_block.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "createindustry:gray_caution_block" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/green_caution_block.json b/src/generated/resources/data/createindustry/loot_tables/blocks/green_caution_block.json new file mode 100644 index 00000000..143c3cf8 --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/green_caution_block.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "createindustry:green_caution_block" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/hardened_planks_slab.json b/src/generated/resources/data/createindustry/loot_tables/blocks/hardened_planks_slab.json new file mode 100644 index 00000000..98d60d4d --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/hardened_planks_slab.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "createindustry:hardened_planks_slab" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/heavy_cable_hub.json b/src/generated/resources/data/createindustry/loot_tables/blocks/heavy_cable_hub.json new file mode 100644 index 00000000..aebabb58 --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/heavy_cable_hub.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "createindustry:heavy_cable_hub" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/heavy_casing_encased_aluminum_cogwheel.json b/src/generated/resources/data/createindustry/loot_tables/blocks/heavy_casing_encased_aluminum_cogwheel.json new file mode 100644 index 00000000..da831950 --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/heavy_casing_encased_aluminum_cogwheel.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "create:cogwheel" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/heavy_casing_encased_cogwheel.json b/src/generated/resources/data/createindustry/loot_tables/blocks/heavy_casing_encased_cogwheel.json new file mode 100644 index 00000000..da831950 --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/heavy_casing_encased_cogwheel.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "create:cogwheel" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/heavy_casing_encased_large_aluminum_cogwheel.json b/src/generated/resources/data/createindustry/loot_tables/blocks/heavy_casing_encased_large_aluminum_cogwheel.json new file mode 100644 index 00000000..0f88c827 --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/heavy_casing_encased_large_aluminum_cogwheel.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "create:large_cogwheel" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/heavy_casing_encased_large_cogwheel.json b/src/generated/resources/data/createindustry/loot_tables/blocks/heavy_casing_encased_large_cogwheel.json new file mode 100644 index 00000000..0f88c827 --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/heavy_casing_encased_large_cogwheel.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "create:large_cogwheel" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/heavy_casing_encased_large_steel_cogwheel.json b/src/generated/resources/data/createindustry/loot_tables/blocks/heavy_casing_encased_large_steel_cogwheel.json new file mode 100644 index 00000000..0f88c827 --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/heavy_casing_encased_large_steel_cogwheel.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "create:large_cogwheel" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/heavy_casing_encased_shaft.json b/src/generated/resources/data/createindustry/loot_tables/blocks/heavy_casing_encased_shaft.json new file mode 100644 index 00000000..1417e744 --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/heavy_casing_encased_shaft.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "createindustry:neon_tube" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/heavy_casing_encased_steel_cogwheel.json b/src/generated/resources/data/createindustry/loot_tables/blocks/heavy_casing_encased_steel_cogwheel.json new file mode 100644 index 00000000..da831950 --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/heavy_casing_encased_steel_cogwheel.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "create:cogwheel" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/large_aluminum_cogwheel.json b/src/generated/resources/data/createindustry/loot_tables/blocks/large_aluminum_cogwheel.json new file mode 100644 index 00000000..8e5170d3 --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/large_aluminum_cogwheel.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "createindustry:large_aluminum_cogwheel" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/large_steel_cogwheel.json b/src/generated/resources/data/createindustry/loot_tables/blocks/large_steel_cogwheel.json new file mode 100644 index 00000000..16c7cb1b --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/large_steel_cogwheel.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "createindustry:large_steel_cogwheel" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/layered_galena.json b/src/generated/resources/data/createindustry/loot_tables/blocks/layered_galena.json new file mode 100644 index 00000000..5915a2ae --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/layered_galena.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "createindustry:layered_galena" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/lead_bars.json b/src/generated/resources/data/createindustry/loot_tables/blocks/lead_bars.json new file mode 100644 index 00000000..3e9fb768 --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/lead_bars.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "createindustry:lead_bars" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/lead_block.json b/src/generated/resources/data/createindustry/loot_tables/blocks/lead_block.json new file mode 100644 index 00000000..155f6608 --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/lead_block.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "createindustry:lead_block" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/lead_flywheel.json b/src/generated/resources/data/createindustry/loot_tables/blocks/lead_flywheel.json new file mode 100644 index 00000000..607ccfe6 --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/lead_flywheel.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "createindustry:lead_flywheel" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/lead_frame.json b/src/generated/resources/data/createindustry/loot_tables/blocks/lead_frame.json new file mode 100644 index 00000000..85bbd448 --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/lead_frame.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "createindustry:lead_frame" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/lead_glass.json b/src/generated/resources/data/createindustry/loot_tables/blocks/lead_glass.json new file mode 100644 index 00000000..ad819b7d --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/lead_glass.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "createindustry:lead_glass" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/lead_ladder.json b/src/generated/resources/data/createindustry/loot_tables/blocks/lead_ladder.json new file mode 100644 index 00000000..11879b00 --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/lead_ladder.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "createindustry:lead_ladder" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/lead_ore.json b/src/generated/resources/data/createindustry/loot_tables/blocks/lead_ore.json new file mode 100644 index 00000000..28615a53 --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/lead_ore.json @@ -0,0 +1,49 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "enchantments": [ + { + "enchantment": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + ], + "name": "createindustry:lead_ore" + }, + { + "type": "minecraft:item", + "functions": [ + { + "enchantment": "minecraft:fortune", + "formula": "minecraft:ore_drops", + "function": "minecraft:apply_bonus" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "createindustry:raw_lead" + } + ] + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/lead_truss.json b/src/generated/resources/data/createindustry/loot_tables/blocks/lead_truss.json new file mode 100644 index 00000000..73594748 --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/lead_truss.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "createindustry:lead_truss" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/light_blue_caution_block.json b/src/generated/resources/data/createindustry/loot_tables/blocks/light_blue_caution_block.json new file mode 100644 index 00000000..21edda2e --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/light_blue_caution_block.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "createindustry:light_blue_caution_block" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/light_bulb.json b/src/generated/resources/data/createindustry/loot_tables/blocks/light_bulb.json new file mode 100644 index 00000000..4605609d --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/light_bulb.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "createindustry:light_bulb" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/light_gray_caution_block.json b/src/generated/resources/data/createindustry/loot_tables/blocks/light_gray_caution_block.json new file mode 100644 index 00000000..bfbd834e --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/light_gray_caution_block.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "createindustry:light_gray_caution_block" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/lime_caution_block.json b/src/generated/resources/data/createindustry/loot_tables/blocks/lime_caution_block.json new file mode 100644 index 00000000..f9caa9da --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/lime_caution_block.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "createindustry:lime_caution_block" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/lithium_block.json b/src/generated/resources/data/createindustry/loot_tables/blocks/lithium_block.json new file mode 100644 index 00000000..772e1f8e --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/lithium_block.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "createindustry:lithium_block" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/lithium_ore.json b/src/generated/resources/data/createindustry/loot_tables/blocks/lithium_ore.json new file mode 100644 index 00000000..1dbd96e4 --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/lithium_ore.json @@ -0,0 +1,49 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "enchantments": [ + { + "enchantment": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + ], + "name": "createindustry:lithium_ore" + }, + { + "type": "minecraft:item", + "functions": [ + { + "enchantment": "minecraft:fortune", + "formula": "minecraft:ore_drops", + "function": "minecraft:apply_bonus" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "createindustry:raw_lithium" + } + ] + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/lithium_torch.json b/src/generated/resources/data/createindustry/loot_tables/blocks/lithium_torch.json new file mode 100644 index 00000000..d3fe00f9 --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/lithium_torch.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "createindustry:lithium_torch" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/low_grade_fuel_engine.json b/src/generated/resources/data/createindustry/loot_tables/blocks/low_grade_fuel_engine.json new file mode 100644 index 00000000..302a0bfd --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/low_grade_fuel_engine.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "createindustry:low_grade_fuel_engine" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/magenta_caution_block.json b/src/generated/resources/data/createindustry/loot_tables/blocks/magenta_caution_block.json new file mode 100644 index 00000000..6de70751 --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/magenta_caution_block.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "createindustry:magenta_caution_block" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/neon_tube.json b/src/generated/resources/data/createindustry/loot_tables/blocks/neon_tube.json new file mode 100644 index 00000000..1417e744 --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/neon_tube.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "createindustry:neon_tube" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/nickel_bars.json b/src/generated/resources/data/createindustry/loot_tables/blocks/nickel_bars.json new file mode 100644 index 00000000..16c8deac --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/nickel_bars.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "createindustry:nickel_bars" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/nickel_block.json b/src/generated/resources/data/createindustry/loot_tables/blocks/nickel_block.json new file mode 100644 index 00000000..21775f43 --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/nickel_block.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "createindustry:nickel_block" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/nickel_flywheel.json b/src/generated/resources/data/createindustry/loot_tables/blocks/nickel_flywheel.json new file mode 100644 index 00000000..e9ba0f9c --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/nickel_flywheel.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "createindustry:nickel_flywheel" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/nickel_frame.json b/src/generated/resources/data/createindustry/loot_tables/blocks/nickel_frame.json new file mode 100644 index 00000000..c7b89c5a --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/nickel_frame.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "createindustry:nickel_frame" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/nickel_ladder.json b/src/generated/resources/data/createindustry/loot_tables/blocks/nickel_ladder.json new file mode 100644 index 00000000..4eb70ac7 --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/nickel_ladder.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "createindustry:nickel_ladder" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/nickel_ore.json b/src/generated/resources/data/createindustry/loot_tables/blocks/nickel_ore.json new file mode 100644 index 00000000..a43514eb --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/nickel_ore.json @@ -0,0 +1,49 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "enchantments": [ + { + "enchantment": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + ], + "name": "createindustry:nickel_ore" + }, + { + "type": "minecraft:item", + "functions": [ + { + "enchantment": "minecraft:fortune", + "formula": "minecraft:ore_drops", + "function": "minecraft:apply_bonus" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "createindustry:raw_nickel" + } + ] + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/nickel_truss.json b/src/generated/resources/data/createindustry/loot_tables/blocks/nickel_truss.json new file mode 100644 index 00000000..31023e52 --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/nickel_truss.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "createindustry:nickel_truss" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/orange_caution_block.json b/src/generated/resources/data/createindustry/loot_tables/blocks/orange_caution_block.json new file mode 100644 index 00000000..7931e7fc --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/orange_caution_block.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "createindustry:orange_caution_block" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/pink_caution_block.json b/src/generated/resources/data/createindustry/loot_tables/blocks/pink_caution_block.json new file mode 100644 index 00000000..37f38527 --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/pink_caution_block.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "createindustry:pink_caution_block" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/polarizer.json b/src/generated/resources/data/createindustry/loot_tables/blocks/polarizer.json new file mode 100644 index 00000000..194e1816 --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/polarizer.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "createindustry:polarizer" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/polished_cut_galena.json b/src/generated/resources/data/createindustry/loot_tables/blocks/polished_cut_galena.json new file mode 100644 index 00000000..0b934126 --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/polished_cut_galena.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "createindustry:polished_cut_galena" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/polished_cut_galena_slab.json b/src/generated/resources/data/createindustry/loot_tables/blocks/polished_cut_galena_slab.json new file mode 100644 index 00000000..3a9799f5 --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/polished_cut_galena_slab.json @@ -0,0 +1,34 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "createindustry:polished_cut_galena_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "createindustry:polished_cut_galena_slab" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/polished_cut_galena_stairs.json b/src/generated/resources/data/createindustry/loot_tables/blocks/polished_cut_galena_stairs.json new file mode 100644 index 00000000..1f56e985 --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/polished_cut_galena_stairs.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "createindustry:polished_cut_galena_stairs" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/polished_cut_galena_wall.json b/src/generated/resources/data/createindustry/loot_tables/blocks/polished_cut_galena_wall.json new file mode 100644 index 00000000..a7ff7c61 --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/polished_cut_galena_wall.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "createindustry:polished_cut_galena_wall" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/purple_caution_block.json b/src/generated/resources/data/createindustry/loot_tables/blocks/purple_caution_block.json new file mode 100644 index 00000000..dd93a46c --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/purple_caution_block.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "createindustry:purple_caution_block" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/resistor.json b/src/generated/resources/data/createindustry/loot_tables/blocks/resistor.json new file mode 100644 index 00000000..614e41de --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/resistor.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "createindustry:resistor" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/rgb_light_bulb.json b/src/generated/resources/data/createindustry/loot_tables/blocks/rgb_light_bulb.json new file mode 100644 index 00000000..99f28e4e --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/rgb_light_bulb.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "createindustry:rgb_light_bulb" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/rotor.json b/src/generated/resources/data/createindustry/loot_tables/blocks/rotor.json new file mode 100644 index 00000000..da09e6e3 --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/rotor.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "createindustry:rotor" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/small_galena_brick_slab.json b/src/generated/resources/data/createindustry/loot_tables/blocks/small_galena_brick_slab.json new file mode 100644 index 00000000..f92d1823 --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/small_galena_brick_slab.json @@ -0,0 +1,34 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "createindustry:small_galena_brick_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "createindustry:small_galena_brick_slab" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/small_galena_brick_stairs.json b/src/generated/resources/data/createindustry/loot_tables/blocks/small_galena_brick_stairs.json new file mode 100644 index 00000000..3a4ee7e3 --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/small_galena_brick_stairs.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "createindustry:small_galena_brick_stairs" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/small_galena_brick_wall.json b/src/generated/resources/data/createindustry/loot_tables/blocks/small_galena_brick_wall.json new file mode 100644 index 00000000..d7677d3b --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/small_galena_brick_wall.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "createindustry:small_galena_brick_wall" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/small_galena_bricks.json b/src/generated/resources/data/createindustry/loot_tables/blocks/small_galena_bricks.json new file mode 100644 index 00000000..8957f54e --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/small_galena_bricks.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "createindustry:small_galena_bricks" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/stator.json b/src/generated/resources/data/createindustry/loot_tables/blocks/stator.json new file mode 100644 index 00000000..3f8e6b5c --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/stator.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "createindustry:stator" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/steel_cable_hub.json b/src/generated/resources/data/createindustry/loot_tables/blocks/steel_cable_hub.json new file mode 100644 index 00000000..a93d12c3 --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/steel_cable_hub.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "createindustry:steel_cable_hub" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/steel_casing_cable_hub.json b/src/generated/resources/data/createindustry/loot_tables/blocks/steel_casing_cable_hub.json new file mode 100644 index 00000000..6ddf01c4 --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/steel_casing_cable_hub.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "createindustry:steel_casing_cable_hub" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/steel_cogwheel.json b/src/generated/resources/data/createindustry/loot_tables/blocks/steel_cogwheel.json new file mode 100644 index 00000000..4ea4e2ed --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/steel_cogwheel.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "createindustry:steel_cogwheel" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/steel_encased_aluminum_cogwheel.json b/src/generated/resources/data/createindustry/loot_tables/blocks/steel_encased_aluminum_cogwheel.json new file mode 100644 index 00000000..da831950 --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/steel_encased_aluminum_cogwheel.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "create:cogwheel" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/steel_encased_cogwheel.json b/src/generated/resources/data/createindustry/loot_tables/blocks/steel_encased_cogwheel.json new file mode 100644 index 00000000..da831950 --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/steel_encased_cogwheel.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "create:cogwheel" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/steel_encased_large_aluminum_cogwheel.json b/src/generated/resources/data/createindustry/loot_tables/blocks/steel_encased_large_aluminum_cogwheel.json new file mode 100644 index 00000000..0f88c827 --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/steel_encased_large_aluminum_cogwheel.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "create:large_cogwheel" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/steel_encased_large_cogwheel.json b/src/generated/resources/data/createindustry/loot_tables/blocks/steel_encased_large_cogwheel.json new file mode 100644 index 00000000..0f88c827 --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/steel_encased_large_cogwheel.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "create:large_cogwheel" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/steel_encased_large_steel_cogwheel.json b/src/generated/resources/data/createindustry/loot_tables/blocks/steel_encased_large_steel_cogwheel.json new file mode 100644 index 00000000..0f88c827 --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/steel_encased_large_steel_cogwheel.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "create:large_cogwheel" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/steel_encased_shaft.json b/src/generated/resources/data/createindustry/loot_tables/blocks/steel_encased_shaft.json new file mode 100644 index 00000000..1417e744 --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/steel_encased_shaft.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "createindustry:neon_tube" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/steel_encased_steel_cogwheel.json b/src/generated/resources/data/createindustry/loot_tables/blocks/steel_encased_steel_cogwheel.json new file mode 100644 index 00000000..da831950 --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/steel_encased_steel_cogwheel.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "create:cogwheel" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/steel_gearbox.json b/src/generated/resources/data/createindustry/loot_tables/blocks/steel_gearbox.json new file mode 100644 index 00000000..d74d0330 --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/steel_gearbox.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "createindustry:steel_gearbox" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/voltage_cube.json b/src/generated/resources/data/createindustry/loot_tables/blocks/voltage_cube.json new file mode 100644 index 00000000..f71e441c --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/voltage_cube.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "createindustry:voltage_cube" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/voltmeter.json b/src/generated/resources/data/createindustry/loot_tables/blocks/voltmeter.json new file mode 100644 index 00000000..f6fb41fa --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/voltmeter.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "createindustry:voltmeter" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/white_caution_block.json b/src/generated/resources/data/createindustry/loot_tables/blocks/white_caution_block.json new file mode 100644 index 00000000..fc3836ca --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/white_caution_block.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "createindustry:white_caution_block" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/yellow_caution_block.json b/src/generated/resources/data/createindustry/loot_tables/blocks/yellow_caution_block.json new file mode 100644 index 00000000..cf591781 --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/yellow_caution_block.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "createindustry:yellow_caution_block" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/zinc_frame.json b/src/generated/resources/data/createindustry/loot_tables/blocks/zinc_frame.json new file mode 100644 index 00000000..4db74fba --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/zinc_frame.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "createindustry:zinc_frame" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/zinc_truss.json b/src/generated/resources/data/createindustry/loot_tables/blocks/zinc_truss.json new file mode 100644 index 00000000..d339ba07 --- /dev/null +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/zinc_truss.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "createindustry:zinc_truss" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/recipes/brass_frame_from_ingots_brass_stonecutting.json b/src/generated/resources/data/createindustry/recipes/brass_frame_from_ingots_brass_stonecutting.json new file mode 100644 index 00000000..a8eb339b --- /dev/null +++ b/src/generated/resources/data/createindustry/recipes/brass_frame_from_ingots_brass_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 4, + "ingredient": { + "tag": "forge:ingots/brass" + }, + "result": "createindustry:brass_frame" +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/recipes/brass_truss_from_ingots_brass_stonecutting.json b/src/generated/resources/data/createindustry/recipes/brass_truss_from_ingots_brass_stonecutting.json new file mode 100644 index 00000000..88a5abf0 --- /dev/null +++ b/src/generated/resources/data/createindustry/recipes/brass_truss_from_ingots_brass_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 4, + "ingredient": { + "tag": "forge:ingots/brass" + }, + "result": "createindustry:brass_truss" +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/recipes/cast_iron_bars_from_ingots_cast_iron_stonecutting.json b/src/generated/resources/data/createindustry/recipes/cast_iron_bars_from_ingots_cast_iron_stonecutting.json new file mode 100644 index 00000000..f08413a9 --- /dev/null +++ b/src/generated/resources/data/createindustry/recipes/cast_iron_bars_from_ingots_cast_iron_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 4, + "ingredient": { + "tag": "forge:ingots/cast_iron" + }, + "result": "createindustry:cast_iron_bars" +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/recipes/cast_iron_ladder_from_ingots_cast_iron_stonecutting.json b/src/generated/resources/data/createindustry/recipes/cast_iron_ladder_from_ingots_cast_iron_stonecutting.json new file mode 100644 index 00000000..bd255dbd --- /dev/null +++ b/src/generated/resources/data/createindustry/recipes/cast_iron_ladder_from_ingots_cast_iron_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 2, + "ingredient": { + "tag": "forge:ingots/cast_iron" + }, + "result": "createindustry:cast_iron_ladder" +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/recipes/cinderblock_from_concrete_stonecutting.json b/src/generated/resources/data/createindustry/recipes/cinderblock_from_concrete_stonecutting.json new file mode 100644 index 00000000..71368aad --- /dev/null +++ b/src/generated/resources/data/createindustry/recipes/cinderblock_from_concrete_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 4, + "ingredient": { + "item": "createindustry:concrete" + }, + "result": "createindustry:cinderblock" +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/recipes/concrete_slab_from_concrete_stonecutting.json b/src/generated/resources/data/createindustry/recipes/concrete_slab_from_concrete_stonecutting.json new file mode 100644 index 00000000..c5949b3e --- /dev/null +++ b/src/generated/resources/data/createindustry/recipes/concrete_slab_from_concrete_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 2, + "ingredient": { + "item": "createindustry:concrete" + }, + "result": "createindustry:concrete_slab" +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/recipes/concrete_stairs_from_concrete_stonecutting.json b/src/generated/resources/data/createindustry/recipes/concrete_stairs_from_concrete_stonecutting.json new file mode 100644 index 00000000..e2ce32e0 --- /dev/null +++ b/src/generated/resources/data/createindustry/recipes/concrete_stairs_from_concrete_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 1, + "ingredient": { + "item": "createindustry:concrete" + }, + "result": "createindustry:concrete_stairs" +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/recipes/concrete_wall_from_concrete_stonecutting.json b/src/generated/resources/data/createindustry/recipes/concrete_wall_from_concrete_stonecutting.json new file mode 100644 index 00000000..81cf6be4 --- /dev/null +++ b/src/generated/resources/data/createindustry/recipes/concrete_wall_from_concrete_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 1, + "ingredient": { + "item": "createindustry:concrete" + }, + "result": "createindustry:concrete_wall" +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/recipes/copper_frame_from_ingots_copper_stonecutting.json b/src/generated/resources/data/createindustry/recipes/copper_frame_from_ingots_copper_stonecutting.json new file mode 100644 index 00000000..58f6deaf --- /dev/null +++ b/src/generated/resources/data/createindustry/recipes/copper_frame_from_ingots_copper_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 4, + "ingredient": { + "tag": "forge:ingots/copper" + }, + "result": "createindustry:copper_frame" +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/recipes/copper_truss_from_ingots_copper_stonecutting.json b/src/generated/resources/data/createindustry/recipes/copper_truss_from_ingots_copper_stonecutting.json new file mode 100644 index 00000000..331a7410 --- /dev/null +++ b/src/generated/resources/data/createindustry/recipes/copper_truss_from_ingots_copper_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 4, + "ingredient": { + "tag": "forge:ingots/copper" + }, + "result": "createindustry:copper_truss" +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/recipes/cut_galena_brick_slab.json b/src/generated/resources/data/createindustry/recipes/cut_galena_brick_slab.json new file mode 100644 index 00000000..020d3b45 --- /dev/null +++ b/src/generated/resources/data/createindustry/recipes/cut_galena_brick_slab.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "cut_galena_brick_slab", + "key": { + "X": { + "item": "createindustry:cut_galena_bricks" + } + }, + "pattern": [ + "XXX" + ], + "result": { + "count": 6, + "item": "createindustry:cut_galena_brick_slab" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/recipes/cut_galena_brick_slab_from_stone_types_galena_stonecutting.json b/src/generated/resources/data/createindustry/recipes/cut_galena_brick_slab_from_stone_types_galena_stonecutting.json new file mode 100644 index 00000000..7770c4ed --- /dev/null +++ b/src/generated/resources/data/createindustry/recipes/cut_galena_brick_slab_from_stone_types_galena_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 2, + "ingredient": { + "tag": "createindustry:stone_types/galena" + }, + "result": "createindustry:cut_galena_brick_slab" +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/recipes/cut_galena_brick_slab_recycling.json b/src/generated/resources/data/createindustry/recipes/cut_galena_brick_slab_recycling.json new file mode 100644 index 00000000..9cc22f7e --- /dev/null +++ b/src/generated/resources/data/createindustry/recipes/cut_galena_brick_slab_recycling.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "createindustry:cut_galena_brick_slab" + }, + { + "item": "createindustry:cut_galena_brick_slab" + } + ], + "result": { + "item": "createindustry:cut_galena_bricks" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/recipes/cut_galena_brick_stairs.json b/src/generated/resources/data/createindustry/recipes/cut_galena_brick_stairs.json new file mode 100644 index 00000000..6fb4b96a --- /dev/null +++ b/src/generated/resources/data/createindustry/recipes/cut_galena_brick_stairs.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "cut_galena_brick_stairs", + "key": { + "X": { + "item": "createindustry:cut_galena_bricks" + } + }, + "pattern": [ + "X ", + "XX ", + "XXX" + ], + "result": { + "count": 4, + "item": "createindustry:cut_galena_brick_stairs" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/recipes/cut_galena_brick_stairs_from_stone_types_galena_stonecutting.json b/src/generated/resources/data/createindustry/recipes/cut_galena_brick_stairs_from_stone_types_galena_stonecutting.json new file mode 100644 index 00000000..af98321b --- /dev/null +++ b/src/generated/resources/data/createindustry/recipes/cut_galena_brick_stairs_from_stone_types_galena_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 1, + "ingredient": { + "tag": "createindustry:stone_types/galena" + }, + "result": "createindustry:cut_galena_brick_stairs" +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/recipes/cut_galena_brick_wall.json b/src/generated/resources/data/createindustry/recipes/cut_galena_brick_wall.json new file mode 100644 index 00000000..36c88e1f --- /dev/null +++ b/src/generated/resources/data/createindustry/recipes/cut_galena_brick_wall.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "key": { + "X": { + "item": "createindustry:cut_galena_bricks" + } + }, + "pattern": [ + "XXX", + "XXX" + ], + "result": { + "count": 6, + "item": "createindustry:cut_galena_brick_wall" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/recipes/cut_galena_brick_wall_from_stone_types_galena_stonecutting.json b/src/generated/resources/data/createindustry/recipes/cut_galena_brick_wall_from_stone_types_galena_stonecutting.json new file mode 100644 index 00000000..753dc4f2 --- /dev/null +++ b/src/generated/resources/data/createindustry/recipes/cut_galena_brick_wall_from_stone_types_galena_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 1, + "ingredient": { + "tag": "createindustry:stone_types/galena" + }, + "result": "createindustry:cut_galena_brick_wall" +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/recipes/cut_galena_bricks_from_stone_types_galena_stonecutting.json b/src/generated/resources/data/createindustry/recipes/cut_galena_bricks_from_stone_types_galena_stonecutting.json new file mode 100644 index 00000000..57a17cf6 --- /dev/null +++ b/src/generated/resources/data/createindustry/recipes/cut_galena_bricks_from_stone_types_galena_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 1, + "ingredient": { + "tag": "createindustry:stone_types/galena" + }, + "result": "createindustry:cut_galena_bricks" +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/recipes/cut_galena_from_stone_types_galena_stonecutting.json b/src/generated/resources/data/createindustry/recipes/cut_galena_from_stone_types_galena_stonecutting.json new file mode 100644 index 00000000..a79df65b --- /dev/null +++ b/src/generated/resources/data/createindustry/recipes/cut_galena_from_stone_types_galena_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 1, + "ingredient": { + "tag": "createindustry:stone_types/galena" + }, + "result": "createindustry:cut_galena" +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/recipes/cut_galena_slab.json b/src/generated/resources/data/createindustry/recipes/cut_galena_slab.json new file mode 100644 index 00000000..861fbab1 --- /dev/null +++ b/src/generated/resources/data/createindustry/recipes/cut_galena_slab.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "cut_galena_slab", + "key": { + "X": { + "item": "createindustry:cut_galena" + } + }, + "pattern": [ + "XXX" + ], + "result": { + "count": 6, + "item": "createindustry:cut_galena_slab" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/recipes/cut_galena_slab_from_stone_types_galena_stonecutting.json b/src/generated/resources/data/createindustry/recipes/cut_galena_slab_from_stone_types_galena_stonecutting.json new file mode 100644 index 00000000..9c801f56 --- /dev/null +++ b/src/generated/resources/data/createindustry/recipes/cut_galena_slab_from_stone_types_galena_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 2, + "ingredient": { + "tag": "createindustry:stone_types/galena" + }, + "result": "createindustry:cut_galena_slab" +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/recipes/cut_galena_slab_recycling.json b/src/generated/resources/data/createindustry/recipes/cut_galena_slab_recycling.json new file mode 100644 index 00000000..f8401aa1 --- /dev/null +++ b/src/generated/resources/data/createindustry/recipes/cut_galena_slab_recycling.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "createindustry:cut_galena_slab" + }, + { + "item": "createindustry:cut_galena_slab" + } + ], + "result": { + "item": "createindustry:cut_galena" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/recipes/cut_galena_stairs.json b/src/generated/resources/data/createindustry/recipes/cut_galena_stairs.json new file mode 100644 index 00000000..503b5647 --- /dev/null +++ b/src/generated/resources/data/createindustry/recipes/cut_galena_stairs.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "cut_galena_stairs", + "key": { + "X": { + "item": "createindustry:cut_galena" + } + }, + "pattern": [ + "X ", + "XX ", + "XXX" + ], + "result": { + "count": 4, + "item": "createindustry:cut_galena_stairs" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/recipes/cut_galena_stairs_from_stone_types_galena_stonecutting.json b/src/generated/resources/data/createindustry/recipes/cut_galena_stairs_from_stone_types_galena_stonecutting.json new file mode 100644 index 00000000..5f193d11 --- /dev/null +++ b/src/generated/resources/data/createindustry/recipes/cut_galena_stairs_from_stone_types_galena_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 1, + "ingredient": { + "tag": "createindustry:stone_types/galena" + }, + "result": "createindustry:cut_galena_stairs" +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/recipes/cut_galena_wall.json b/src/generated/resources/data/createindustry/recipes/cut_galena_wall.json new file mode 100644 index 00000000..7525c28a --- /dev/null +++ b/src/generated/resources/data/createindustry/recipes/cut_galena_wall.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "key": { + "X": { + "item": "createindustry:cut_galena" + } + }, + "pattern": [ + "XXX", + "XXX" + ], + "result": { + "count": 6, + "item": "createindustry:cut_galena_wall" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/recipes/cut_galena_wall_from_stone_types_galena_stonecutting.json b/src/generated/resources/data/createindustry/recipes/cut_galena_wall_from_stone_types_galena_stonecutting.json new file mode 100644 index 00000000..5489caf9 --- /dev/null +++ b/src/generated/resources/data/createindustry/recipes/cut_galena_wall_from_stone_types_galena_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 1, + "ingredient": { + "tag": "createindustry:stone_types/galena" + }, + "result": "createindustry:cut_galena_wall" +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/recipes/galena_from_stone_types_galena_stonecutting.json b/src/generated/resources/data/createindustry/recipes/galena_from_stone_types_galena_stonecutting.json new file mode 100644 index 00000000..a0c00a0d --- /dev/null +++ b/src/generated/resources/data/createindustry/recipes/galena_from_stone_types_galena_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 1, + "ingredient": { + "tag": "createindustry:stone_types/galena" + }, + "result": "createindustry:galena" +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/recipes/galena_pillar_from_stone_types_galena_stonecutting.json b/src/generated/resources/data/createindustry/recipes/galena_pillar_from_stone_types_galena_stonecutting.json new file mode 100644 index 00000000..85de3d14 --- /dev/null +++ b/src/generated/resources/data/createindustry/recipes/galena_pillar_from_stone_types_galena_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 1, + "ingredient": { + "tag": "createindustry:stone_types/galena" + }, + "result": "createindustry:galena_pillar" +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/recipes/layered_galena_from_stone_types_galena_stonecutting.json b/src/generated/resources/data/createindustry/recipes/layered_galena_from_stone_types_galena_stonecutting.json new file mode 100644 index 00000000..b33cce5c --- /dev/null +++ b/src/generated/resources/data/createindustry/recipes/layered_galena_from_stone_types_galena_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 1, + "ingredient": { + "tag": "createindustry:stone_types/galena" + }, + "result": "createindustry:layered_galena" +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/recipes/lead_bars_from_ingots_lead_stonecutting.json b/src/generated/resources/data/createindustry/recipes/lead_bars_from_ingots_lead_stonecutting.json new file mode 100644 index 00000000..f0c436dd --- /dev/null +++ b/src/generated/resources/data/createindustry/recipes/lead_bars_from_ingots_lead_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 4, + "ingredient": { + "tag": "forge:ingots/lead" + }, + "result": "createindustry:lead_bars" +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/recipes/lead_frame_from_ingots_lead_stonecutting.json b/src/generated/resources/data/createindustry/recipes/lead_frame_from_ingots_lead_stonecutting.json new file mode 100644 index 00000000..cee06acb --- /dev/null +++ b/src/generated/resources/data/createindustry/recipes/lead_frame_from_ingots_lead_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 4, + "ingredient": { + "tag": "forge:ingots/lead" + }, + "result": "createindustry:lead_frame" +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/recipes/lead_ladder_from_ingots_lead_stonecutting.json b/src/generated/resources/data/createindustry/recipes/lead_ladder_from_ingots_lead_stonecutting.json new file mode 100644 index 00000000..06a09a35 --- /dev/null +++ b/src/generated/resources/data/createindustry/recipes/lead_ladder_from_ingots_lead_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 2, + "ingredient": { + "tag": "forge:ingots/lead" + }, + "result": "createindustry:lead_ladder" +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/recipes/lead_truss_from_ingots_lead_stonecutting.json b/src/generated/resources/data/createindustry/recipes/lead_truss_from_ingots_lead_stonecutting.json new file mode 100644 index 00000000..72768845 --- /dev/null +++ b/src/generated/resources/data/createindustry/recipes/lead_truss_from_ingots_lead_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 4, + "ingredient": { + "tag": "forge:ingots/lead" + }, + "result": "createindustry:lead_truss" +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/recipes/nickel_bars_from_ingots_nickel_stonecutting.json b/src/generated/resources/data/createindustry/recipes/nickel_bars_from_ingots_nickel_stonecutting.json new file mode 100644 index 00000000..08bac81b --- /dev/null +++ b/src/generated/resources/data/createindustry/recipes/nickel_bars_from_ingots_nickel_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 4, + "ingredient": { + "tag": "forge:ingots/nickel" + }, + "result": "createindustry:nickel_bars" +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/recipes/nickel_frame_from_ingots_nickel_stonecutting.json b/src/generated/resources/data/createindustry/recipes/nickel_frame_from_ingots_nickel_stonecutting.json new file mode 100644 index 00000000..fd06e6f6 --- /dev/null +++ b/src/generated/resources/data/createindustry/recipes/nickel_frame_from_ingots_nickel_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 4, + "ingredient": { + "tag": "forge:ingots/nickel" + }, + "result": "createindustry:nickel_frame" +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/recipes/nickel_ladder_from_ingots_nickel_stonecutting.json b/src/generated/resources/data/createindustry/recipes/nickel_ladder_from_ingots_nickel_stonecutting.json new file mode 100644 index 00000000..1f620751 --- /dev/null +++ b/src/generated/resources/data/createindustry/recipes/nickel_ladder_from_ingots_nickel_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 2, + "ingredient": { + "tag": "forge:ingots/nickel" + }, + "result": "createindustry:nickel_ladder" +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/recipes/nickel_truss_from_ingots_nickel_stonecutting.json b/src/generated/resources/data/createindustry/recipes/nickel_truss_from_ingots_nickel_stonecutting.json new file mode 100644 index 00000000..4902324f --- /dev/null +++ b/src/generated/resources/data/createindustry/recipes/nickel_truss_from_ingots_nickel_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 4, + "ingredient": { + "tag": "forge:ingots/nickel" + }, + "result": "createindustry:nickel_truss" +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/recipes/polished_cut_galena_from_stone_types_galena_stonecutting.json b/src/generated/resources/data/createindustry/recipes/polished_cut_galena_from_stone_types_galena_stonecutting.json new file mode 100644 index 00000000..09443ba4 --- /dev/null +++ b/src/generated/resources/data/createindustry/recipes/polished_cut_galena_from_stone_types_galena_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 1, + "ingredient": { + "tag": "createindustry:stone_types/galena" + }, + "result": "createindustry:polished_cut_galena" +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/recipes/polished_cut_galena_slab.json b/src/generated/resources/data/createindustry/recipes/polished_cut_galena_slab.json new file mode 100644 index 00000000..1068bc66 --- /dev/null +++ b/src/generated/resources/data/createindustry/recipes/polished_cut_galena_slab.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "polished_cut_galena_slab", + "key": { + "X": { + "item": "createindustry:polished_cut_galena" + } + }, + "pattern": [ + "XXX" + ], + "result": { + "count": 6, + "item": "createindustry:polished_cut_galena_slab" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/recipes/polished_cut_galena_slab_from_stone_types_galena_stonecutting.json b/src/generated/resources/data/createindustry/recipes/polished_cut_galena_slab_from_stone_types_galena_stonecutting.json new file mode 100644 index 00000000..7621a2d0 --- /dev/null +++ b/src/generated/resources/data/createindustry/recipes/polished_cut_galena_slab_from_stone_types_galena_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 2, + "ingredient": { + "tag": "createindustry:stone_types/galena" + }, + "result": "createindustry:polished_cut_galena_slab" +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/recipes/polished_cut_galena_slab_recycling.json b/src/generated/resources/data/createindustry/recipes/polished_cut_galena_slab_recycling.json new file mode 100644 index 00000000..b8b961df --- /dev/null +++ b/src/generated/resources/data/createindustry/recipes/polished_cut_galena_slab_recycling.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "createindustry:polished_cut_galena_slab" + }, + { + "item": "createindustry:polished_cut_galena_slab" + } + ], + "result": { + "item": "createindustry:polished_cut_galena" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/recipes/polished_cut_galena_stairs.json b/src/generated/resources/data/createindustry/recipes/polished_cut_galena_stairs.json new file mode 100644 index 00000000..b802cb74 --- /dev/null +++ b/src/generated/resources/data/createindustry/recipes/polished_cut_galena_stairs.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "polished_cut_galena_stairs", + "key": { + "X": { + "item": "createindustry:polished_cut_galena" + } + }, + "pattern": [ + "X ", + "XX ", + "XXX" + ], + "result": { + "count": 4, + "item": "createindustry:polished_cut_galena_stairs" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/recipes/polished_cut_galena_stairs_from_stone_types_galena_stonecutting.json b/src/generated/resources/data/createindustry/recipes/polished_cut_galena_stairs_from_stone_types_galena_stonecutting.json new file mode 100644 index 00000000..73647924 --- /dev/null +++ b/src/generated/resources/data/createindustry/recipes/polished_cut_galena_stairs_from_stone_types_galena_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 1, + "ingredient": { + "tag": "createindustry:stone_types/galena" + }, + "result": "createindustry:polished_cut_galena_stairs" +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/recipes/polished_cut_galena_wall.json b/src/generated/resources/data/createindustry/recipes/polished_cut_galena_wall.json new file mode 100644 index 00000000..b2276122 --- /dev/null +++ b/src/generated/resources/data/createindustry/recipes/polished_cut_galena_wall.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "key": { + "X": { + "item": "createindustry:polished_cut_galena" + } + }, + "pattern": [ + "XXX", + "XXX" + ], + "result": { + "count": 6, + "item": "createindustry:polished_cut_galena_wall" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/recipes/polished_cut_galena_wall_from_stone_types_galena_stonecutting.json b/src/generated/resources/data/createindustry/recipes/polished_cut_galena_wall_from_stone_types_galena_stonecutting.json new file mode 100644 index 00000000..42291515 --- /dev/null +++ b/src/generated/resources/data/createindustry/recipes/polished_cut_galena_wall_from_stone_types_galena_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 1, + "ingredient": { + "tag": "createindustry:stone_types/galena" + }, + "result": "createindustry:polished_cut_galena_wall" +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/recipes/rebar_concrete_slab_from_rebar_concrete_stonecutting.json b/src/generated/resources/data/createindustry/recipes/rebar_concrete_slab_from_rebar_concrete_stonecutting.json new file mode 100644 index 00000000..d9e9d3b8 --- /dev/null +++ b/src/generated/resources/data/createindustry/recipes/rebar_concrete_slab_from_rebar_concrete_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 2, + "ingredient": { + "item": "createindustry:rebar_concrete" + }, + "result": "createindustry:rebar_concrete_slab" +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/recipes/small_galena_brick_slab.json b/src/generated/resources/data/createindustry/recipes/small_galena_brick_slab.json new file mode 100644 index 00000000..2d61820b --- /dev/null +++ b/src/generated/resources/data/createindustry/recipes/small_galena_brick_slab.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "small_galena_brick_slab", + "key": { + "X": { + "item": "createindustry:small_galena_bricks" + } + }, + "pattern": [ + "XXX" + ], + "result": { + "count": 6, + "item": "createindustry:small_galena_brick_slab" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/recipes/small_galena_brick_slab_from_stone_types_galena_stonecutting.json b/src/generated/resources/data/createindustry/recipes/small_galena_brick_slab_from_stone_types_galena_stonecutting.json new file mode 100644 index 00000000..67692718 --- /dev/null +++ b/src/generated/resources/data/createindustry/recipes/small_galena_brick_slab_from_stone_types_galena_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 2, + "ingredient": { + "tag": "createindustry:stone_types/galena" + }, + "result": "createindustry:small_galena_brick_slab" +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/recipes/small_galena_brick_slab_recycling.json b/src/generated/resources/data/createindustry/recipes/small_galena_brick_slab_recycling.json new file mode 100644 index 00000000..a2829db9 --- /dev/null +++ b/src/generated/resources/data/createindustry/recipes/small_galena_brick_slab_recycling.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "createindustry:small_galena_brick_slab" + }, + { + "item": "createindustry:small_galena_brick_slab" + } + ], + "result": { + "item": "createindustry:small_galena_bricks" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/recipes/small_galena_brick_stairs.json b/src/generated/resources/data/createindustry/recipes/small_galena_brick_stairs.json new file mode 100644 index 00000000..9800d18d --- /dev/null +++ b/src/generated/resources/data/createindustry/recipes/small_galena_brick_stairs.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "small_galena_brick_stairs", + "key": { + "X": { + "item": "createindustry:small_galena_bricks" + } + }, + "pattern": [ + "X ", + "XX ", + "XXX" + ], + "result": { + "count": 4, + "item": "createindustry:small_galena_brick_stairs" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/recipes/small_galena_brick_stairs_from_stone_types_galena_stonecutting.json b/src/generated/resources/data/createindustry/recipes/small_galena_brick_stairs_from_stone_types_galena_stonecutting.json new file mode 100644 index 00000000..743b201e --- /dev/null +++ b/src/generated/resources/data/createindustry/recipes/small_galena_brick_stairs_from_stone_types_galena_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 1, + "ingredient": { + "tag": "createindustry:stone_types/galena" + }, + "result": "createindustry:small_galena_brick_stairs" +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/recipes/small_galena_brick_wall.json b/src/generated/resources/data/createindustry/recipes/small_galena_brick_wall.json new file mode 100644 index 00000000..68cee463 --- /dev/null +++ b/src/generated/resources/data/createindustry/recipes/small_galena_brick_wall.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "key": { + "X": { + "item": "createindustry:small_galena_bricks" + } + }, + "pattern": [ + "XXX", + "XXX" + ], + "result": { + "count": 6, + "item": "createindustry:small_galena_brick_wall" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/recipes/small_galena_brick_wall_from_stone_types_galena_stonecutting.json b/src/generated/resources/data/createindustry/recipes/small_galena_brick_wall_from_stone_types_galena_stonecutting.json new file mode 100644 index 00000000..15993cd8 --- /dev/null +++ b/src/generated/resources/data/createindustry/recipes/small_galena_brick_wall_from_stone_types_galena_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 1, + "ingredient": { + "tag": "createindustry:stone_types/galena" + }, + "result": "createindustry:small_galena_brick_wall" +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/recipes/small_galena_bricks_from_stone_types_galena_stonecutting.json b/src/generated/resources/data/createindustry/recipes/small_galena_bricks_from_stone_types_galena_stonecutting.json new file mode 100644 index 00000000..8c9744c1 --- /dev/null +++ b/src/generated/resources/data/createindustry/recipes/small_galena_bricks_from_stone_types_galena_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 1, + "ingredient": { + "tag": "createindustry:stone_types/galena" + }, + "result": "createindustry:small_galena_bricks" +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/recipes/zinc_frame_from_ingots_zinc_stonecutting.json b/src/generated/resources/data/createindustry/recipes/zinc_frame_from_ingots_zinc_stonecutting.json new file mode 100644 index 00000000..28364531 --- /dev/null +++ b/src/generated/resources/data/createindustry/recipes/zinc_frame_from_ingots_zinc_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 4, + "ingredient": { + "tag": "forge:ingots/zinc" + }, + "result": "createindustry:zinc_frame" +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/recipes/zinc_truss_from_ingots_zinc_stonecutting.json b/src/generated/resources/data/createindustry/recipes/zinc_truss_from_ingots_zinc_stonecutting.json new file mode 100644 index 00000000..1e1873b0 --- /dev/null +++ b/src/generated/resources/data/createindustry/recipes/zinc_truss_from_ingots_zinc_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 4, + "ingredient": { + "tag": "forge:ingots/zinc" + }, + "result": "createindustry:zinc_truss" +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/tags/fluids/flammable.json b/src/generated/resources/data/createindustry/tags/fluids/flammable.json new file mode 100644 index 00000000..675d8856 --- /dev/null +++ b/src/generated/resources/data/createindustry/tags/fluids/flammable.json @@ -0,0 +1,24 @@ +{ + "values": [ + "createindustry:flowing_propane", + "createindustry:propane", + "createindustry:flowing_butane", + "createindustry:butane", + "createindustry:flowing_lpg", + "createindustry:lpg", + "createindustry:flowing_lubrication_oil", + "createindustry:lubrication_oil", + "createindustry:flowing_napalm", + "createindustry:napalm", + "createindustry:flowing_naphtha", + "createindustry:naphtha", + "createindustry:flowing_kerosene", + "createindustry:kerosene", + "createindustry:flowing_gasoline", + "createindustry:gasoline", + "createindustry:flowing_diesel", + "createindustry:diesel", + "createindustry:flowing_creosote", + "createindustry:creosote" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/tags/fluids/gas.json b/src/generated/resources/data/createindustry/tags/fluids/gas.json new file mode 100644 index 00000000..7d1ef704 --- /dev/null +++ b/src/generated/resources/data/createindustry/tags/fluids/gas.json @@ -0,0 +1,20 @@ +{ + "values": [ + "createindustry:flowing_air", + "createindustry:air", + "createindustry:flowing_carbon_dioxide", + "createindustry:carbon_dioxide", + "createindustry:flowing_ethylene", + "createindustry:ethylene", + "createindustry:flowing_propylene", + "createindustry:propylene", + "createindustry:flowing_propane", + "createindustry:propane", + "createindustry:flowing_butane", + "createindustry:butane", + "createindustry:flowing_lpg", + "createindustry:lpg", + "createindustry:flowing_neon", + "createindustry:neon" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/tags/items/stone_types/galena.json b/src/generated/resources/data/createindustry/tags/items/stone_types/galena.json new file mode 100644 index 00000000..1f66dc24 --- /dev/null +++ b/src/generated/resources/data/createindustry/tags/items/stone_types/galena.json @@ -0,0 +1,19 @@ +{ + "values": [ + "createindustry:cut_galena", + "createindustry:cut_galena_stairs", + "createindustry:cut_galena_wall", + "createindustry:polished_cut_galena", + "createindustry:polished_cut_galena_stairs", + "createindustry:polished_cut_galena_wall", + "createindustry:cut_galena_bricks", + "createindustry:cut_galena_brick_stairs", + "createindustry:cut_galena_brick_wall", + "createindustry:small_galena_bricks", + "createindustry:small_galena_brick_stairs", + "createindustry:small_galena_brick_wall", + "createindustry:layered_galena", + "createindustry:galena_pillar", + "createindustry:galena" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/blocks/ores.json b/src/generated/resources/data/forge/tags/blocks/ores.json new file mode 100644 index 00000000..9ff48adb --- /dev/null +++ b/src/generated/resources/data/forge/tags/blocks/ores.json @@ -0,0 +1,10 @@ +{ + "values": [ + "createindustry:lead_ore", + "createindustry:deepslate_lead_ore", + "createindustry:nickel_ore", + "createindustry:deepslate_nickel_ore", + "createindustry:lithium_ore", + "createindustry:deepslate_lithium_ore" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/blocks/ores/lead.json b/src/generated/resources/data/forge/tags/blocks/ores/lead.json new file mode 100644 index 00000000..c5ba015a --- /dev/null +++ b/src/generated/resources/data/forge/tags/blocks/ores/lead.json @@ -0,0 +1,6 @@ +{ + "values": [ + "createindustry:lead_ore", + "createindustry:deepslate_lead_ore" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/blocks/ores/lithium.json b/src/generated/resources/data/forge/tags/blocks/ores/lithium.json new file mode 100644 index 00000000..4788908a --- /dev/null +++ b/src/generated/resources/data/forge/tags/blocks/ores/lithium.json @@ -0,0 +1,6 @@ +{ + "values": [ + "createindustry:lithium_ore", + "createindustry:deepslate_lithium_ore" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/blocks/ores/nickel.json b/src/generated/resources/data/forge/tags/blocks/ores/nickel.json new file mode 100644 index 00000000..19fb6e8a --- /dev/null +++ b/src/generated/resources/data/forge/tags/blocks/ores/nickel.json @@ -0,0 +1,6 @@ +{ + "values": [ + "createindustry:nickel_ore", + "createindustry:deepslate_nickel_ore" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/blocks/ores_in_ground/deepslate.json b/src/generated/resources/data/forge/tags/blocks/ores_in_ground/deepslate.json new file mode 100644 index 00000000..51e5f231 --- /dev/null +++ b/src/generated/resources/data/forge/tags/blocks/ores_in_ground/deepslate.json @@ -0,0 +1,7 @@ +{ + "values": [ + "createindustry:deepslate_lead_ore", + "createindustry:deepslate_nickel_ore", + "createindustry:deepslate_lithium_ore" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/blocks/ores_in_ground/stone.json b/src/generated/resources/data/forge/tags/blocks/ores_in_ground/stone.json new file mode 100644 index 00000000..2503a5f7 --- /dev/null +++ b/src/generated/resources/data/forge/tags/blocks/ores_in_ground/stone.json @@ -0,0 +1,7 @@ +{ + "values": [ + "createindustry:lead_ore", + "createindustry:nickel_ore", + "createindustry:lithium_ore" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/blocks/storage_blocks/lead.json b/src/generated/resources/data/forge/tags/blocks/storage_blocks/lead.json new file mode 100644 index 00000000..acc19947 --- /dev/null +++ b/src/generated/resources/data/forge/tags/blocks/storage_blocks/lead.json @@ -0,0 +1,5 @@ +{ + "values": [ + "createindustry:lead_block" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/blocks/storage_blocks/lithium.json b/src/generated/resources/data/forge/tags/blocks/storage_blocks/lithium.json new file mode 100644 index 00000000..d90ae223 --- /dev/null +++ b/src/generated/resources/data/forge/tags/blocks/storage_blocks/lithium.json @@ -0,0 +1,5 @@ +{ + "values": [ + "createindustry:lithium_block" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/blocks/storage_blocks/nickel.json b/src/generated/resources/data/forge/tags/blocks/storage_blocks/nickel.json new file mode 100644 index 00000000..ade411c0 --- /dev/null +++ b/src/generated/resources/data/forge/tags/blocks/storage_blocks/nickel.json @@ -0,0 +1,5 @@ +{ + "values": [ + "createindustry:nickel_block" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/fluids/crude_oil.json b/src/generated/resources/data/forge/tags/fluids/crude_oil.json new file mode 100644 index 00000000..8d2a54a9 --- /dev/null +++ b/src/generated/resources/data/forge/tags/fluids/crude_oil.json @@ -0,0 +1,6 @@ +{ + "values": [ + "createindustry:flowing_crude_oil", + "createindustry:crude_oil" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/fluids/diesel.json b/src/generated/resources/data/forge/tags/fluids/diesel.json new file mode 100644 index 00000000..f978f9bb --- /dev/null +++ b/src/generated/resources/data/forge/tags/fluids/diesel.json @@ -0,0 +1,6 @@ +{ + "values": [ + "createindustry:flowing_diesel", + "createindustry:diesel" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/fluids/gasoline.json b/src/generated/resources/data/forge/tags/fluids/gasoline.json new file mode 100644 index 00000000..5f675f90 --- /dev/null +++ b/src/generated/resources/data/forge/tags/fluids/gasoline.json @@ -0,0 +1,6 @@ +{ + "values": [ + "createindustry:flowing_gasoline", + "createindustry:gasoline" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/fluids/heavy_oil.json b/src/generated/resources/data/forge/tags/fluids/heavy_oil.json new file mode 100644 index 00000000..eb9dbd98 --- /dev/null +++ b/src/generated/resources/data/forge/tags/fluids/heavy_oil.json @@ -0,0 +1,6 @@ +{ + "values": [ + "createindustry:flowing_heavy_oil", + "createindustry:heavy_oil" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/fluids/kerosene.json b/src/generated/resources/data/forge/tags/fluids/kerosene.json new file mode 100644 index 00000000..71dbe0da --- /dev/null +++ b/src/generated/resources/data/forge/tags/fluids/kerosene.json @@ -0,0 +1,6 @@ +{ + "values": [ + "createindustry:flowing_kerosene", + "createindustry:kerosene" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/fluids/lpg.json b/src/generated/resources/data/forge/tags/fluids/lpg.json new file mode 100644 index 00000000..19fe5bde --- /dev/null +++ b/src/generated/resources/data/forge/tags/fluids/lpg.json @@ -0,0 +1,6 @@ +{ + "values": [ + "createindustry:flowing_lpg", + "createindustry:lpg" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/fluids/molten_steel.json b/src/generated/resources/data/forge/tags/fluids/molten_steel.json new file mode 100644 index 00000000..a0615a39 --- /dev/null +++ b/src/generated/resources/data/forge/tags/fluids/molten_steel.json @@ -0,0 +1,6 @@ +{ + "values": [ + "createindustry:flowing_molten_steel", + "createindustry:molten_steel" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/fluids/naphtha.json b/src/generated/resources/data/forge/tags/fluids/naphtha.json new file mode 100644 index 00000000..552843aa --- /dev/null +++ b/src/generated/resources/data/forge/tags/fluids/naphtha.json @@ -0,0 +1,6 @@ +{ + "values": [ + "createindustry:flowing_naphtha", + "createindustry:naphtha" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/items/buckets/air.json b/src/generated/resources/data/forge/tags/items/buckets/air.json new file mode 100644 index 00000000..ea116c30 --- /dev/null +++ b/src/generated/resources/data/forge/tags/items/buckets/air.json @@ -0,0 +1,5 @@ +{ + "values": [ + "createindustry:air_bucket" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/items/buckets/butane.json b/src/generated/resources/data/forge/tags/items/buckets/butane.json new file mode 100644 index 00000000..b2343588 --- /dev/null +++ b/src/generated/resources/data/forge/tags/items/buckets/butane.json @@ -0,0 +1,5 @@ +{ + "values": [ + "createindustry:butane_bucket" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/items/buckets/carbon_dioxide.json b/src/generated/resources/data/forge/tags/items/buckets/carbon_dioxide.json new file mode 100644 index 00000000..314acf78 --- /dev/null +++ b/src/generated/resources/data/forge/tags/items/buckets/carbon_dioxide.json @@ -0,0 +1,5 @@ +{ + "values": [ + "createindustry:carbon_dioxide_bucket" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/items/buckets/creosote.json b/src/generated/resources/data/forge/tags/items/buckets/creosote.json new file mode 100644 index 00000000..5453fe36 --- /dev/null +++ b/src/generated/resources/data/forge/tags/items/buckets/creosote.json @@ -0,0 +1,5 @@ +{ + "values": [ + "createindustry:creosote_bucket" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/items/buckets/crude_oil.json b/src/generated/resources/data/forge/tags/items/buckets/crude_oil.json new file mode 100644 index 00000000..c6a67456 --- /dev/null +++ b/src/generated/resources/data/forge/tags/items/buckets/crude_oil.json @@ -0,0 +1,5 @@ +{ + "values": [ + "createindustry:crude_oil_bucket" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/items/buckets/ethylene.json b/src/generated/resources/data/forge/tags/items/buckets/ethylene.json new file mode 100644 index 00000000..797297c3 --- /dev/null +++ b/src/generated/resources/data/forge/tags/items/buckets/ethylene.json @@ -0,0 +1,5 @@ +{ + "values": [ + "createindustry:ethylene_bucket" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/items/buckets/heavy_oil.json b/src/generated/resources/data/forge/tags/items/buckets/heavy_oil.json new file mode 100644 index 00000000..dca0fda5 --- /dev/null +++ b/src/generated/resources/data/forge/tags/items/buckets/heavy_oil.json @@ -0,0 +1,5 @@ +{ + "values": [ + "createindustry:heavy_oil_bucket" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/items/buckets/lpg.json b/src/generated/resources/data/forge/tags/items/buckets/lpg.json new file mode 100644 index 00000000..e7d794f2 --- /dev/null +++ b/src/generated/resources/data/forge/tags/items/buckets/lpg.json @@ -0,0 +1,5 @@ +{ + "values": [ + "createindustry:lpg_bucket" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/items/buckets/lubrication_oil.json b/src/generated/resources/data/forge/tags/items/buckets/lubrication_oil.json new file mode 100644 index 00000000..3d8bab40 --- /dev/null +++ b/src/generated/resources/data/forge/tags/items/buckets/lubrication_oil.json @@ -0,0 +1,5 @@ +{ + "values": [ + "createindustry:lubrication_oil_bucket" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/items/buckets/neon.json b/src/generated/resources/data/forge/tags/items/buckets/neon.json new file mode 100644 index 00000000..098e3909 --- /dev/null +++ b/src/generated/resources/data/forge/tags/items/buckets/neon.json @@ -0,0 +1,5 @@ +{ + "values": [ + "createindustry:neon_bucket" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/items/buckets/propane.json b/src/generated/resources/data/forge/tags/items/buckets/propane.json new file mode 100644 index 00000000..6b00315e --- /dev/null +++ b/src/generated/resources/data/forge/tags/items/buckets/propane.json @@ -0,0 +1,5 @@ +{ + "values": [ + "createindustry:propane_bucket" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/items/buckets/propylene.json b/src/generated/resources/data/forge/tags/items/buckets/propylene.json new file mode 100644 index 00000000..8221007f --- /dev/null +++ b/src/generated/resources/data/forge/tags/items/buckets/propylene.json @@ -0,0 +1,5 @@ +{ + "values": [ + "createindustry:propylene_bucket" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/items/ingots/lead.json b/src/generated/resources/data/forge/tags/items/ingots/lead.json new file mode 100644 index 00000000..bf40f80f --- /dev/null +++ b/src/generated/resources/data/forge/tags/items/ingots/lead.json @@ -0,0 +1,5 @@ +{ + "values": [ + "createindustry:lead_ingot" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/items/ingots/lithium.json b/src/generated/resources/data/forge/tags/items/ingots/lithium.json new file mode 100644 index 00000000..96678206 --- /dev/null +++ b/src/generated/resources/data/forge/tags/items/ingots/lithium.json @@ -0,0 +1,5 @@ +{ + "values": [ + "createindustry:lithium_ingot" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/items/ingots/nickel.json b/src/generated/resources/data/forge/tags/items/ingots/nickel.json new file mode 100644 index 00000000..49037d4c --- /dev/null +++ b/src/generated/resources/data/forge/tags/items/ingots/nickel.json @@ -0,0 +1,5 @@ +{ + "values": [ + "createindustry:nickel_ingot" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/items/leather.json b/src/generated/resources/data/forge/tags/items/leather.json new file mode 100644 index 00000000..f2d0ef6c --- /dev/null +++ b/src/generated/resources/data/forge/tags/items/leather.json @@ -0,0 +1,5 @@ +{ + "values": [ + "createindustry:synthetic_leather" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/items/ores.json b/src/generated/resources/data/forge/tags/items/ores.json new file mode 100644 index 00000000..9ff48adb --- /dev/null +++ b/src/generated/resources/data/forge/tags/items/ores.json @@ -0,0 +1,10 @@ +{ + "values": [ + "createindustry:lead_ore", + "createindustry:deepslate_lead_ore", + "createindustry:nickel_ore", + "createindustry:deepslate_nickel_ore", + "createindustry:lithium_ore", + "createindustry:deepslate_lithium_ore" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/items/ores/lead.json b/src/generated/resources/data/forge/tags/items/ores/lead.json new file mode 100644 index 00000000..c5ba015a --- /dev/null +++ b/src/generated/resources/data/forge/tags/items/ores/lead.json @@ -0,0 +1,6 @@ +{ + "values": [ + "createindustry:lead_ore", + "createindustry:deepslate_lead_ore" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/items/ores/lithium.json b/src/generated/resources/data/forge/tags/items/ores/lithium.json new file mode 100644 index 00000000..4788908a --- /dev/null +++ b/src/generated/resources/data/forge/tags/items/ores/lithium.json @@ -0,0 +1,6 @@ +{ + "values": [ + "createindustry:lithium_ore", + "createindustry:deepslate_lithium_ore" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/items/ores/nickel.json b/src/generated/resources/data/forge/tags/items/ores/nickel.json new file mode 100644 index 00000000..19fb6e8a --- /dev/null +++ b/src/generated/resources/data/forge/tags/items/ores/nickel.json @@ -0,0 +1,6 @@ +{ + "values": [ + "createindustry:nickel_ore", + "createindustry:deepslate_nickel_ore" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/items/ores_in_ground/deepslate.json b/src/generated/resources/data/forge/tags/items/ores_in_ground/deepslate.json new file mode 100644 index 00000000..51e5f231 --- /dev/null +++ b/src/generated/resources/data/forge/tags/items/ores_in_ground/deepslate.json @@ -0,0 +1,7 @@ +{ + "values": [ + "createindustry:deepslate_lead_ore", + "createindustry:deepslate_nickel_ore", + "createindustry:deepslate_lithium_ore" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/items/ores_in_ground/stone.json b/src/generated/resources/data/forge/tags/items/ores_in_ground/stone.json new file mode 100644 index 00000000..2503a5f7 --- /dev/null +++ b/src/generated/resources/data/forge/tags/items/ores_in_ground/stone.json @@ -0,0 +1,7 @@ +{ + "values": [ + "createindustry:lead_ore", + "createindustry:nickel_ore", + "createindustry:lithium_ore" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/items/plates/steel.json b/src/generated/resources/data/forge/tags/items/plates/steel.json new file mode 100644 index 00000000..63219f0c --- /dev/null +++ b/src/generated/resources/data/forge/tags/items/plates/steel.json @@ -0,0 +1,5 @@ +{ + "values": [ + "createindustry:heavy_plate" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/items/raw_materials.json b/src/generated/resources/data/forge/tags/items/raw_materials.json new file mode 100644 index 00000000..052ff45f --- /dev/null +++ b/src/generated/resources/data/forge/tags/items/raw_materials.json @@ -0,0 +1,7 @@ +{ + "values": [ + "createindustry:raw_lead", + "createindustry:raw_nickel", + "createindustry:raw_lithium" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/items/raw_materials/lead.json b/src/generated/resources/data/forge/tags/items/raw_materials/lead.json new file mode 100644 index 00000000..d84f4d69 --- /dev/null +++ b/src/generated/resources/data/forge/tags/items/raw_materials/lead.json @@ -0,0 +1,5 @@ +{ + "values": [ + "createindustry:raw_lead" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/items/raw_materials/lithium.json b/src/generated/resources/data/forge/tags/items/raw_materials/lithium.json new file mode 100644 index 00000000..56f6718c --- /dev/null +++ b/src/generated/resources/data/forge/tags/items/raw_materials/lithium.json @@ -0,0 +1,5 @@ +{ + "values": [ + "createindustry:raw_lithium" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/items/raw_materials/nickel.json b/src/generated/resources/data/forge/tags/items/raw_materials/nickel.json new file mode 100644 index 00000000..7447e60a --- /dev/null +++ b/src/generated/resources/data/forge/tags/items/raw_materials/nickel.json @@ -0,0 +1,5 @@ +{ + "values": [ + "createindustry:raw_nickel" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/items/storage_blocks/lead.json b/src/generated/resources/data/forge/tags/items/storage_blocks/lead.json new file mode 100644 index 00000000..acc19947 --- /dev/null +++ b/src/generated/resources/data/forge/tags/items/storage_blocks/lead.json @@ -0,0 +1,5 @@ +{ + "values": [ + "createindustry:lead_block" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/items/storage_blocks/lithium.json b/src/generated/resources/data/forge/tags/items/storage_blocks/lithium.json new file mode 100644 index 00000000..d90ae223 --- /dev/null +++ b/src/generated/resources/data/forge/tags/items/storage_blocks/lithium.json @@ -0,0 +1,5 @@ +{ + "values": [ + "createindustry:lithium_block" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/items/storage_blocks/nickel.json b/src/generated/resources/data/forge/tags/items/storage_blocks/nickel.json new file mode 100644 index 00000000..ade411c0 --- /dev/null +++ b/src/generated/resources/data/forge/tags/items/storage_blocks/nickel.json @@ -0,0 +1,5 @@ +{ + "values": [ + "createindustry:nickel_block" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/items/string.json b/src/generated/resources/data/forge/tags/items/string.json new file mode 100644 index 00000000..5d51d600 --- /dev/null +++ b/src/generated/resources/data/forge/tags/items/string.json @@ -0,0 +1,5 @@ +{ + "values": [ + "createindustry:synthetic_string" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/items/wires/aluminum.json b/src/generated/resources/data/forge/tags/items/wires/aluminum.json new file mode 100644 index 00000000..e87ed955 --- /dev/null +++ b/src/generated/resources/data/forge/tags/items/wires/aluminum.json @@ -0,0 +1,5 @@ +{ + "values": [ + "createindustry:aluminum_wire" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/items/wires/copper.json b/src/generated/resources/data/forge/tags/items/wires/copper.json new file mode 100644 index 00000000..b99b08b3 --- /dev/null +++ b/src/generated/resources/data/forge/tags/items/wires/copper.json @@ -0,0 +1,5 @@ +{ + "values": [ + "createindustry:copper_wire" + ] +} \ No newline at end of file diff --git a/src/main/java/com/drmangotea/createindustry/base/ElectricSparkParticle.java b/src/main/java/com/drmangotea/createindustry/base/ElectricSparkParticle.java new file mode 100644 index 00000000..03d98667 --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/base/ElectricSparkParticle.java @@ -0,0 +1,80 @@ +package com.drmangotea.createindustry.base; + +import com.drmangotea.createindustry.registry.TFMGParticleTypes; +import com.mojang.blaze3d.vertex.VertexConsumer; +import com.mojang.math.Quaternion; +import com.mojang.math.Vector3f; +import com.simibubi.create.AllParticleTypes; +import com.simibubi.create.content.equipment.bell.BasicParticleData; +import com.simibubi.create.content.equipment.bell.CustomRotationParticle; +import com.simibubi.create.content.equipment.bell.SoulPulseEffect; +import net.minecraft.client.Camera; +import net.minecraft.client.multiplayer.ClientLevel; +import net.minecraft.client.particle.SpriteSet; +import net.minecraft.core.BlockPos; +import net.minecraft.core.particles.ParticleOptions; +import net.minecraft.core.particles.ParticleType; + +public class ElectricSparkParticle extends CustomRotationParticle { + + private final SpriteSet animatedSprite; + + protected int startTicks; + protected int endTicks; + protected int numLoops; + + protected int startFrames = 17; + + + protected int loopFrames = 16; + + + protected int endFrames = 20; + + + + protected int totalFrames = 53; + + + public ElectricSparkParticle(ClientLevel worldIn, double x, double y, double z, double vx, double vy, double vz, + SpriteSet spriteSet, ParticleOptions data) { + super(worldIn, x, y, z, spriteSet, 0); + this.animatedSprite = spriteSet; + this.quadSize = 0.5f; + this.setSize(this.quadSize, this.quadSize); + + this.loopLength = loopFrames + (int) (this.random.nextFloat() * 5f - 4f); + this.startTicks = startFrames + (int) (this.random.nextFloat() * 5f - 4f); + this.endTicks = endFrames + (int) (this.random.nextFloat() * 5f - 4f); + this.numLoops = (int) (1f + this.random.nextFloat() * 2f); + + this.setFrame(0); + this.mirror = this.random.nextBoolean(); + + + } + + + + public void setFrame(int frame) { + if (frame >= 0 && frame < totalFrames) + setSprite(animatedSprite.get(frame, totalFrames)); + } + + + + public static class Data extends BasicParticleData { + @Override + public IBasicParticleFactory getBasicFactory() { + return (worldIn, x, y, z, vx, vy, vz, spriteSet) -> new ElectricSparkParticle(worldIn, x, y, z, vx, vy, vz, + spriteSet, this); + } + + @Override + public ParticleType getType() { + return TFMGParticleTypes.ELECTRIC_SPARK.get(); + } + } + + +} diff --git a/src/main/java/com/drmangotea/createindustry/base/GasFluidBuilder.java b/src/main/java/com/drmangotea/createindustry/base/GasFluidBuilder.java new file mode 100644 index 00000000..6d3e3cdb --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/base/GasFluidBuilder.java @@ -0,0 +1,28 @@ +package com.drmangotea.createindustry.base; + +import com.tterrag.registrate.AbstractRegistrate; +import com.tterrag.registrate.builders.BuilderCallback; +import com.tterrag.registrate.builders.FluidBuilder; +import com.tterrag.registrate.util.nullness.NonNullFunction; +import com.tterrag.registrate.util.nullness.NonNullSupplier; +import net.minecraft.resources.ResourceLocation; +import net.minecraftforge.fluids.ForgeFlowingFluid; +import net.minecraftforge.fluids.ForgeFlowingFluid.Properties; + +public class GasFluidBuilder extends FluidBuilder { + + public GasFluidBuilder(AbstractRegistrate owner, P parent, String name, BuilderCallback callback, + ResourceLocation stillTexture, ResourceLocation flowingTexture, FluidBuilder.FluidTypeFactory typeFactory, + NonNullFunction factory) { + super(owner, parent, name, callback, stillTexture, flowingTexture, typeFactory, factory); + source(factory); + } + + @Override + public NonNullSupplier asSupplier() { + return this::getEntry; + } + + + +} \ No newline at end of file diff --git a/src/main/java/com/drmangotea/createindustry/base/TFMGEncasedBlocks.java b/src/main/java/com/drmangotea/createindustry/base/TFMGEncasedBlocks.java new file mode 100644 index 00000000..eeaf6f30 --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/base/TFMGEncasedBlocks.java @@ -0,0 +1,176 @@ +package com.drmangotea.createindustry.base; + +import com.drmangotea.createindustry.blocks.encased.TFMGEncasedCogwheelBlock; +import com.drmangotea.createindustry.blocks.encased.TFMGEncasedShaftBlock; +import com.drmangotea.createindustry.registry.TFMGBlocks; +import com.simibubi.create.AllBlocks; +import com.simibubi.create.content.decoration.encasing.EncasingRegistry; +import com.simibubi.create.content.kinetics.simpleRelays.encased.EncasedCogCTBehaviour; +import com.simibubi.create.foundation.data.CreateRegistrate; +import com.simibubi.create.foundation.utility.Couple; +import com.tterrag.registrate.util.entry.BlockEntry; +import net.minecraft.world.level.material.MaterialColor; + +import static com.drmangotea.createindustry.CreateTFMG.REGISTRATE; +import static com.drmangotea.createindustry.blocks.encased.TFMGEncasedCogwheelBlock.*; +import static com.simibubi.create.foundation.data.TagGen.axeOrPickaxe; + +public class TFMGEncasedBlocks { + + + + + + public static final BlockEntry STEEL_ENCASED_SHAFT = + REGISTRATE.block("steel_encased_shaft", p -> new TFMGEncasedShaftBlock(p, TFMGBlocks.STEEL_CASING::get)) + .properties(p -> p.color(MaterialColor.PODZOL)) + .transform(TFMGBuilderTransformers.encasedShaft("steel", () -> TFMGSpriteShifts.STEEL_CASING)) + // .transform(EncasingRegistry.addVariantTo(AllBlocks.SHAFT)) + .transform(axeOrPickaxe()) + .register(); + + public static final BlockEntry HEAVY_CASING_ENCASED_SHAFT = + REGISTRATE.block("heavy_casing_encased_shaft", p -> new TFMGEncasedShaftBlock(p, TFMGBlocks.HEAVY_MACHINERY_CASING::get)) + .properties(p -> p.color(MaterialColor.COLOR_GRAY)) + .transform(TFMGBuilderTransformers.encasedShaft("heavy_casing", () -> TFMGSpriteShifts.HEAVY_MACHINERY_CASING)) + //.transform(EncasingRegistry.addVariantTo(AllBlocks.SHAFT)) + .transform(axeOrPickaxe()) + .register(); + + ///////// + + public static final BlockEntry STEEL_ENCASED_COGWHEEL = + REGISTRATE.block("steel_encased_cogwheel", p -> regular(p, false, TFMGBlocks.STEEL_CASING::get)) + .properties(p -> p.color(MaterialColor.PODZOL)) + .transform(TFMGBuilderTransformers.encasedCogwheel("steel", () -> TFMGSpriteShifts.STEEL_CASING)) + // .transform(EncasingRegistry.addVariantTo(AllBlocks.COGWHEEL)) + .onRegister(CreateRegistrate.connectedTextures(() -> new EncasedCogCTBehaviour(TFMGSpriteShifts.STEEL_CASING, + Couple.create(TFMGSpriteShifts.STEEL_ENCASED_COGWHEEL_SIDE, + TFMGSpriteShifts.STEEL_ENCASED_COGWHEEL_OTHERSIDE)))) + .transform(axeOrPickaxe()) + .register(); + + public static final BlockEntry HEAVY_CASING_ENCASED_COGWHEEL = + REGISTRATE.block("heavy_casing_encased_cogwheel", p -> regular(p, false, TFMGBlocks.HEAVY_MACHINERY_CASING::get)) + .properties(p -> p.color(MaterialColor.COLOR_GRAY)) + .transform(TFMGBuilderTransformers.encasedCogwheel("heavy_casing", () -> TFMGSpriteShifts.HEAVY_MACHINERY_CASING)) + // .transform(EncasingRegistry.addVariantTo(AllBlocks.COGWHEEL)) + .onRegister(CreateRegistrate.connectedTextures(() -> new EncasedCogCTBehaviour(TFMGSpriteShifts.HEAVY_MACHINERY_CASING, + Couple.create(TFMGSpriteShifts.HEAVY_CASING_ENCASED_COGWHEEL_SIDE, + TFMGSpriteShifts.HEAVY_CASING_ENCASED_COGWHEEL_OTHERSIDE)))) + .transform(axeOrPickaxe()) + .register(); + + ////// + public static final BlockEntry STEEL_ENCASED_LARGE_COGWHEEL = REGISTRATE + .block("steel_encased_large_cogwheel", + p -> regular(p, true, TFMGBlocks.STEEL_CASING::get)) + .properties(p -> p.color(MaterialColor.PODZOL)) + .transform(TFMGBuilderTransformers.encasedLargeCogwheel("steel", () -> TFMGSpriteShifts.STEEL_CASING)) + // .transform(EncasingRegistry.addVariantTo(AllBlocks.LARGE_COGWHEEL)) + .transform(axeOrPickaxe()) + .register(); + + public static final BlockEntry HEAVY_CASING_ENCASED_LARGE_COGWHEEL = REGISTRATE + .block("heavy_casing_encased_large_cogwheel", p -> regular(p, true, TFMGBlocks.HEAVY_MACHINERY_CASING::get)) + .properties(p -> p.color(MaterialColor.TERRACOTTA_BROWN)) + .transform(TFMGBuilderTransformers.encasedLargeCogwheel("heavy_casing", () -> TFMGSpriteShifts.HEAVY_MACHINERY_CASING)) + // .transform(EncasingRegistry.addVariantTo(AllBlocks.LARGE_COGWHEEL)) + .transform(axeOrPickaxe()) + .register(); + + + ///////////// + + + + public static final BlockEntry STEEL_ENCASED_STEEL_COGWHEEL = + REGISTRATE.block("steel_encased_steel_cogwheel", p -> steel(p, false, TFMGBlocks.STEEL_CASING::get)) + .properties(p -> p.color(MaterialColor.PODZOL)) + .transform(TFMGBuilderTransformers.encasedCogwheel("steel", () -> TFMGSpriteShifts.STEEL_CASING)) + .transform(EncasingRegistry.addVariantTo(TFMGBlocks.STEEL_COGWHEEL)) + .onRegister(CreateRegistrate.connectedTextures(() -> new EncasedCogCTBehaviour(TFMGSpriteShifts.STEEL_CASING, + Couple.create(TFMGSpriteShifts.STEEL_ENCASED_COGWHEEL_SIDE, + TFMGSpriteShifts.STEEL_ENCASED_COGWHEEL_OTHERSIDE)))) + .transform(axeOrPickaxe()) + .register(); + + public static final BlockEntry HEAVY_CASING_ENCASED_STEEL_COGWHEEL = + REGISTRATE.block("heavy_casing_encased_steel_cogwheel", p -> steel(p, false, TFMGBlocks.HEAVY_MACHINERY_CASING::get)) + .properties(p -> p.color(MaterialColor.COLOR_GRAY)) + .transform(TFMGBuilderTransformers.encasedCogwheel("heavy_casing", () -> TFMGSpriteShifts.HEAVY_MACHINERY_CASING)) + .transform(EncasingRegistry.addVariantTo(TFMGBlocks.STEEL_COGWHEEL)) + .onRegister(CreateRegistrate.connectedTextures(() -> new EncasedCogCTBehaviour(TFMGSpriteShifts.HEAVY_MACHINERY_CASING, + Couple.create(TFMGSpriteShifts.HEAVY_CASING_ENCASED_COGWHEEL_SIDE, + TFMGSpriteShifts.HEAVY_CASING_ENCASED_COGWHEEL_OTHERSIDE)))) + .transform(axeOrPickaxe()) + .register(); + + ////// + public static final BlockEntry STEEL_ENCASED_LARGE_STEEL_COGWHEEL = REGISTRATE + .block("steel_encased_large_steel_cogwheel", + p -> steel(p, true, TFMGBlocks.STEEL_CASING::get)) + .properties(p -> p.color(MaterialColor.PODZOL)) + .transform(TFMGBuilderTransformers.encasedLargeCogwheel("steel", () -> TFMGSpriteShifts.STEEL_CASING)) + .transform(EncasingRegistry.addVariantTo(TFMGBlocks.LARGE_STEEL_COGWHEEL)) + .transform(axeOrPickaxe()) + .register(); + + public static final BlockEntry HEAVY_CASING_ENCASED_LARGE_STEEL_COGWHEEL = REGISTRATE + .block("heavy_casing_encased_large_steel_cogwheel", p -> steel(p, true, TFMGBlocks.HEAVY_MACHINERY_CASING::get)) + .properties(p -> p.color(MaterialColor.TERRACOTTA_BROWN)) + .transform(TFMGBuilderTransformers.encasedLargeCogwheel("heavy_casing", () -> TFMGSpriteShifts.HEAVY_MACHINERY_CASING)) + .transform(EncasingRegistry.addVariantTo(TFMGBlocks.LARGE_STEEL_COGWHEEL)) + .transform(axeOrPickaxe()) + .register(); + + + //////////////////////////// + public static final BlockEntry STEEL_ENCASED_ALUMINUM_COGWHEEL = + REGISTRATE.block("steel_encased_aluminum_cogwheel", p -> aluminum(p, false, TFMGBlocks.STEEL_CASING::get)) + .properties(p -> p.color(MaterialColor.PODZOL)) + .transform(TFMGBuilderTransformers.encasedCogwheel("steel", () -> TFMGSpriteShifts.STEEL_CASING)) + .transform(EncasingRegistry.addVariantTo(TFMGBlocks.ALUMINUM_COGWHEEL)) + .onRegister(CreateRegistrate.connectedTextures(() -> new EncasedCogCTBehaviour(TFMGSpriteShifts.STEEL_CASING, + Couple.create(TFMGSpriteShifts.STEEL_ENCASED_COGWHEEL_SIDE, + TFMGSpriteShifts.STEEL_ENCASED_COGWHEEL_OTHERSIDE)))) + .transform(axeOrPickaxe()) + .register(); + + public static final BlockEntry HEAVY_CASING_ENCASED_ALUMINUM_COGWHEEL = + REGISTRATE.block("heavy_casing_encased_aluminum_cogwheel", p -> aluminum(p, false, TFMGBlocks.HEAVY_MACHINERY_CASING::get)) + .properties(p -> p.color(MaterialColor.COLOR_GRAY)) + .transform(TFMGBuilderTransformers.encasedCogwheel("heavy_casing", () -> TFMGSpriteShifts.HEAVY_MACHINERY_CASING)) + .transform(EncasingRegistry.addVariantTo(TFMGBlocks.ALUMINUM_COGWHEEL)) + .onRegister(CreateRegistrate.connectedTextures(() -> new EncasedCogCTBehaviour(TFMGSpriteShifts.HEAVY_MACHINERY_CASING, + Couple.create(TFMGSpriteShifts.HEAVY_CASING_ENCASED_COGWHEEL_SIDE, + TFMGSpriteShifts.HEAVY_CASING_ENCASED_COGWHEEL_OTHERSIDE)))) + .transform(axeOrPickaxe()) + .register(); + + ////// + public static final BlockEntry STEEL_ENCASED_LARGE_ALUMINUM_COGWHEEL = REGISTRATE + .block("steel_encased_large_aluminum_cogwheel", + p -> aluminum(p, true, TFMGBlocks.STEEL_CASING::get)) + .properties(p -> p.color(MaterialColor.PODZOL)) + .transform(TFMGBuilderTransformers.encasedLargeCogwheel("steel", () -> TFMGSpriteShifts.STEEL_CASING)) + .transform(EncasingRegistry.addVariantTo(TFMGBlocks.LARGE_ALUMINUM_COGWHEEL)) + .transform(axeOrPickaxe()) + .register(); + + public static final BlockEntry HEAVY_CASING_ENCASED_LARGE_ALUMINUM_COGWHEEL = REGISTRATE + .block("heavy_casing_encased_large_aluminum_cogwheel", p -> aluminum(p, true, TFMGBlocks.HEAVY_MACHINERY_CASING::get)) + .properties(p -> p.color(MaterialColor.TERRACOTTA_BROWN)) + .transform(TFMGBuilderTransformers.encasedLargeCogwheel("heavy_casing", () -> TFMGSpriteShifts.HEAVY_MACHINERY_CASING)) + .transform(EncasingRegistry.addVariantTo(TFMGBlocks.LARGE_ALUMINUM_COGWHEEL)) + .transform(axeOrPickaxe()) + .register(); + + + + + + + public static void register() {} + +} diff --git a/src/main/java/com/drmangotea/createindustry/base/TFMGPipes.java b/src/main/java/com/drmangotea/createindustry/base/TFMGPipes.java new file mode 100644 index 00000000..7006e13d --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/base/TFMGPipes.java @@ -0,0 +1,477 @@ +package com.drmangotea.createindustry.base; + +import com.drmangotea.createindustry.blocks.pipes.normal.aluminum.AluminumPipeAttachmentModel; +import com.drmangotea.createindustry.blocks.pipes.normal.aluminum.AluminumPipeBlock; +import com.drmangotea.createindustry.blocks.pipes.normal.aluminum.EncasedAluminumPipeBlock; +import com.drmangotea.createindustry.blocks.pipes.normal.aluminum.GlassAluminumPipeBlock; +import com.drmangotea.createindustry.blocks.pipes.normal.brass.BrassPipeAttachmentModel; +import com.drmangotea.createindustry.blocks.pipes.normal.brass.BrassPipeBlock; +import com.drmangotea.createindustry.blocks.pipes.normal.brass.EncasedBrassPipeBlock; +import com.drmangotea.createindustry.blocks.pipes.normal.brass.GlassBrassPipeBlock; +import com.drmangotea.createindustry.blocks.pipes.normal.cast_iron.CastIronPipeAttachmentModel; +import com.drmangotea.createindustry.blocks.pipes.normal.cast_iron.CastIronPipeBlock; +import com.drmangotea.createindustry.blocks.pipes.normal.cast_iron.EncasedCastIronPipeBlock; +import com.drmangotea.createindustry.blocks.pipes.normal.cast_iron.GlassCastIronPipeBlock; +import com.drmangotea.createindustry.blocks.pipes.normal.plastic.EncasedPlasticPipeBlock; +import com.drmangotea.createindustry.blocks.pipes.normal.plastic.GlassPlasticPipeBlock; +import com.drmangotea.createindustry.blocks.pipes.normal.plastic.PlasticPipeAttachmentModel; +import com.drmangotea.createindustry.blocks.pipes.normal.plastic.PlasticPipeBlock; +import com.drmangotea.createindustry.blocks.pipes.normal.steel.EncasedSteelPipeBlock; +import com.drmangotea.createindustry.blocks.pipes.normal.steel.GlassSteelPipeBlock; +import com.drmangotea.createindustry.blocks.pipes.normal.steel.SteelPipeAttachmentModel; +import com.drmangotea.createindustry.blocks.pipes.normal.steel.SteelPipeBlock; +import com.drmangotea.createindustry.blocks.pipes.pumps.TFMGPumpBlock; +import com.drmangotea.createindustry.blocks.pipes.smart_pipes.TFMGSmartFluidPipeBlock; +import com.drmangotea.createindustry.blocks.pipes.valves.TFMGFluidValveBlock; +import com.drmangotea.createindustry.registry.TFMGCreativeModeTabs; +import com.simibubi.create.AllBlocks; +import com.simibubi.create.AllSpriteShifts; +import com.simibubi.create.content.decoration.encasing.EncasedCTBehaviour; +import com.simibubi.create.content.decoration.encasing.EncasingRegistry; +import com.simibubi.create.content.fluids.pipes.SmartFluidPipeGenerator; +import com.simibubi.create.content.fluids.pipes.valve.FluidValveBlock; +import com.simibubi.create.content.kinetics.BlockStressDefaults; +import com.simibubi.create.foundation.data.AssetLookup; +import com.simibubi.create.foundation.data.BlockStateGen; +import com.simibubi.create.foundation.data.CreateRegistrate; +import com.simibubi.create.foundation.data.SharedProperties; +import com.tterrag.registrate.util.entry.BlockEntry; +import net.minecraft.client.renderer.RenderType; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.level.block.state.BlockBehaviour; +import net.minecraft.world.level.block.state.properties.BlockStateProperties; +import net.minecraft.world.level.material.MaterialColor; +import net.minecraftforge.client.model.generators.ConfiguredModel; + +import static com.drmangotea.createindustry.CreateTFMG.REGISTRATE; +import static com.simibubi.create.foundation.data.ModelGen.customItemModel; +import static com.simibubi.create.foundation.data.TagGen.axeOrPickaxe; +import static com.simibubi.create.foundation.data.TagGen.pickaxeOnly; + +public class TFMGPipes { + + + static { + REGISTRATE.creativeModeTab(() -> TFMGCreativeModeTabs.TFMG_BUILDING_BLOCKS); + } + + //STEEL + public static final BlockEntry STEEL_PIPE = REGISTRATE.block("steel_pipe", SteelPipeBlock::new) + .initialProperties(() -> Blocks.IRON_BLOCK) + .transform(pickaxeOnly()) + .blockstate(BlockStateGen.pipe()) + .onRegister(CreateRegistrate.blockModel(() -> SteelPipeAttachmentModel::new)) + .item() + .transform(customItemModel()) + .register(); + + public static final BlockEntry COPPER_ENCASED_STEEL_PIPE = + REGISTRATE.block("copper_encased_steel_pipe", p -> new EncasedSteelPipeBlock(p, AllBlocks.COPPER_CASING::get)) + .initialProperties(SharedProperties::copperMetal) + .properties(p -> p.color(MaterialColor.TERRACOTTA_LIGHT_GRAY)) + .properties(BlockBehaviour.Properties::noOcclusion) + .transform(axeOrPickaxe()) + .blockstate(BlockStateGen.encasedPipe()) + .onRegister(CreateRegistrate.connectedTextures(() -> new EncasedCTBehaviour(AllSpriteShifts.COPPER_CASING))) + .onRegister(CreateRegistrate.casingConnectivity((block, cc) -> cc.make(block, AllSpriteShifts.COPPER_CASING, + (s, f) -> !s.getValue(EncasedSteelPipeBlock.FACING_TO_PROPERTY_MAP.get(f))))) + .onRegister(CreateRegistrate.blockModel(() -> SteelPipeAttachmentModel::new)) + .loot((p, b) -> p.dropOther(b, STEEL_PIPE.get())) + .transform(EncasingRegistry.addVariantTo(TFMGPipes.STEEL_PIPE)) + .register(); + + + @SuppressWarnings("removal") + public static final BlockEntry GLASS_STEEL_PIPE = + REGISTRATE.block("glass_steel_pipe", GlassSteelPipeBlock::new) + .initialProperties(SharedProperties::copperMetal) + .addLayer(() -> RenderType::cutoutMipped) + .transform(pickaxeOnly()) + .blockstate((c, p) -> { + p.getVariantBuilder(c.getEntry()) + .forAllStatesExcept(state -> { + Direction.Axis axis = state.getValue(BlockStateProperties.AXIS); + return ConfiguredModel.builder() + .modelFile(p.models() + .getExistingFile(p.modLoc("block/steel_pipe/window"))) + .uvLock(false) + .rotationX(axis == Direction.Axis.Y ? 0 : 90) + .rotationY(axis == Direction.Axis.X ? 90 : 0) + .build(); + }, BlockStateProperties.WATERLOGGED); + }) + .onRegister(CreateRegistrate.blockModel(() -> SteelPipeAttachmentModel::new)) + .loot((p, b) -> p.dropOther(b, STEEL_PIPE.get())) + .register(); + + + public static final BlockEntry STEEL_MECHANICAL_PUMP = REGISTRATE.block("steel_mechanical_pump", TFMGPumpBlock::new) + .initialProperties(SharedProperties::copperMetal) + .properties(p -> p.color(MaterialColor.STONE)) + .transform(pickaxeOnly()) + .blockstate(BlockStateGen.directionalBlockProviderIgnoresWaterlogged(true)) + .onRegister(CreateRegistrate.blockModel(() -> SteelPipeAttachmentModel::new)) + .transform(BlockStressDefaults.setImpact(4.0)) + .item() + .transform(customItemModel()) + .register(); + + public static final BlockEntry STEEL_SMART_FLUID_PIPE = + REGISTRATE.block("steel_smart_fluid_pipe", TFMGSmartFluidPipeBlock::new) + .initialProperties(SharedProperties::copperMetal) + .properties(p -> p.color(MaterialColor.STONE)) + .transform(pickaxeOnly()) + .blockstate(new SmartFluidPipeGenerator()::generate) + .onRegister(CreateRegistrate.blockModel(() -> SteelPipeAttachmentModel::new)) + .item() + .transform(customItemModel()) + .register(); + + public static final BlockEntry STEEL_FLUID_VALVE = REGISTRATE.block("steel_fluid_valve", TFMGFluidValveBlock::new) + .initialProperties(SharedProperties::copperMetal) + .transform(pickaxeOnly()) + .blockstate((c, p) -> BlockStateGen.directionalAxisBlock(c, p, + (state, vertical) -> AssetLookup.partialBaseModel(c, p, vertical ? "vertical" : "horizontal", + state.getValue(FluidValveBlock.ENABLED) ? "open" : "closed"))) + .onRegister(CreateRegistrate.blockModel(() -> SteelPipeAttachmentModel::new)) + .item() + .transform(customItemModel()) + .register(); + //CAST_IRON + public static final BlockEntry CAST_IRON_PIPE = REGISTRATE.block("cast_iron_pipe", CastIronPipeBlock::new) + .initialProperties(() -> Blocks.IRON_BLOCK) + .transform(pickaxeOnly()) + .blockstate(BlockStateGen.pipe()) + .onRegister(CreateRegistrate.blockModel(() -> CastIronPipeAttachmentModel::new)) + .item() + .transform(customItemModel()) + .register(); + + public static final BlockEntry COPPER_ENCASED_CAST_IRON_PIPE = + REGISTRATE.block("copper_encased_cast_iron_pipe", p -> new EncasedCastIronPipeBlock(p, AllBlocks.COPPER_CASING::get)) + .initialProperties(SharedProperties::copperMetal) + .properties(p -> p.color(MaterialColor.TERRACOTTA_LIGHT_GRAY)) + .properties(BlockBehaviour.Properties::noOcclusion) + .transform(axeOrPickaxe()) + .blockstate(BlockStateGen.encasedPipe()) + .onRegister(CreateRegistrate.connectedTextures(() -> new EncasedCTBehaviour(AllSpriteShifts.COPPER_CASING))) + .onRegister(CreateRegistrate.casingConnectivity((block, cc) -> cc.make(block, AllSpriteShifts.COPPER_CASING, + (s, f) -> !s.getValue(EncasedCastIronPipeBlock.FACING_TO_PROPERTY_MAP.get(f))))) + .onRegister(CreateRegistrate.blockModel(() -> CastIronPipeAttachmentModel::new)) + .loot((p, b) -> p.dropOther(b, CAST_IRON_PIPE.get())) + .transform(EncasingRegistry.addVariantTo(TFMGPipes.CAST_IRON_PIPE)) + .register(); + + + @SuppressWarnings("removal") + public static final BlockEntry GLASS_CAST_IRON_PIPE = + REGISTRATE.block("glass_cast_iron_pipe", GlassCastIronPipeBlock::new) + .initialProperties(SharedProperties::copperMetal) + .addLayer(() -> RenderType::cutoutMipped) + .transform(pickaxeOnly()) + .blockstate((c, p) -> { + p.getVariantBuilder(c.getEntry()) + .forAllStatesExcept(state -> { + Direction.Axis axis = state.getValue(BlockStateProperties.AXIS); + return ConfiguredModel.builder() + .modelFile(p.models() + .getExistingFile(p.modLoc("block/cast_iron_pipe/window"))) + .uvLock(false) + .rotationX(axis == Direction.Axis.Y ? 0 : 90) + .rotationY(axis == Direction.Axis.X ? 90 : 0) + .build(); + }, BlockStateProperties.WATERLOGGED); + }) + .onRegister(CreateRegistrate.blockModel(() -> CastIronPipeAttachmentModel::new)) + .loot((p, b) -> p.dropOther(b, CAST_IRON_PIPE.get())) + .register(); + + + public static final BlockEntry CAST_IRON_MECHANICAL_PUMP = REGISTRATE.block("cast_iron_mechanical_pump", TFMGPumpBlock::new) + .initialProperties(SharedProperties::copperMetal) + .properties(p -> p.color(MaterialColor.STONE)) + .transform(pickaxeOnly()) + .blockstate(BlockStateGen.directionalBlockProviderIgnoresWaterlogged(true)) + .onRegister(CreateRegistrate.blockModel(() -> CastIronPipeAttachmentModel::new)) + .transform(BlockStressDefaults.setImpact(4.0)) + .item() + .transform(customItemModel()) + .register(); + + public static final BlockEntry CAST_IRON_SMART_FLUID_PIPE = + REGISTRATE.block("cast_iron_smart_fluid_pipe", TFMGSmartFluidPipeBlock::new) + .initialProperties(SharedProperties::copperMetal) + .properties(p -> p.color(MaterialColor.STONE)) + .transform(pickaxeOnly()) + .blockstate(new SmartFluidPipeGenerator()::generate) + .onRegister(CreateRegistrate.blockModel(() -> CastIronPipeAttachmentModel::new)) + .item() + .transform(customItemModel()) + .register(); + + public static final BlockEntry CAST_IRON_FLUID_VALVE = REGISTRATE.block("cast_iron_fluid_valve", TFMGFluidValveBlock::new) + .initialProperties(SharedProperties::copperMetal) + .transform(pickaxeOnly()) + .blockstate((c, p) -> BlockStateGen.directionalAxisBlock(c, p, + (state, vertical) -> AssetLookup.partialBaseModel(c, p, vertical ? "vertical" : "horizontal", + state.getValue(FluidValveBlock.ENABLED) ? "open" : "closed"))) + .onRegister(CreateRegistrate.blockModel(() -> CastIronPipeAttachmentModel::new)) + .item() + .transform(customItemModel()) + .register(); + //BRASS + public static final BlockEntry BRASS_PIPE = REGISTRATE.block("brass_pipe", BrassPipeBlock::new) + .initialProperties(() -> Blocks.IRON_BLOCK) + .transform(pickaxeOnly()) + .blockstate(BlockStateGen.pipe()) + .onRegister(CreateRegistrate.blockModel(() -> BrassPipeAttachmentModel::new)) + .item() + .transform(customItemModel()) + .register(); + + public static final BlockEntry COPPER_ENCASED_BRASS_PIPE = + REGISTRATE.block("copper_encased_brass_pipe", p -> new EncasedBrassPipeBlock(p, AllBlocks.COPPER_CASING::get)) + .initialProperties(SharedProperties::copperMetal) + .properties(p -> p.color(MaterialColor.TERRACOTTA_LIGHT_GRAY)) + .properties(BlockBehaviour.Properties::noOcclusion) + .transform(axeOrPickaxe()) + .blockstate(BlockStateGen.encasedPipe()) + .onRegister(CreateRegistrate.connectedTextures(() -> new EncasedCTBehaviour(AllSpriteShifts.COPPER_CASING))) + .onRegister(CreateRegistrate.casingConnectivity((block, cc) -> cc.make(block, AllSpriteShifts.COPPER_CASING, + (s, f) -> !s.getValue(EncasedBrassPipeBlock.FACING_TO_PROPERTY_MAP.get(f))))) + .onRegister(CreateRegistrate.blockModel(() -> BrassPipeAttachmentModel::new)) + .loot((p, b) -> p.dropOther(b, BRASS_PIPE.get())) + .transform(EncasingRegistry.addVariantTo(TFMGPipes.BRASS_PIPE)) + .register(); + + + @SuppressWarnings("removal") + public static final BlockEntry GLASS_BRASS_PIPE = + REGISTRATE.block("glass_brass_pipe", GlassBrassPipeBlock::new) + .initialProperties(SharedProperties::copperMetal) + .addLayer(() -> RenderType::cutoutMipped) + .transform(pickaxeOnly()) + .blockstate((c, p) -> { + p.getVariantBuilder(c.getEntry()) + .forAllStatesExcept(state -> { + Direction.Axis axis = state.getValue(BlockStateProperties.AXIS); + return ConfiguredModel.builder() + .modelFile(p.models() + .getExistingFile(p.modLoc("block/brass_pipe/window"))) + .uvLock(false) + .rotationX(axis == Direction.Axis.Y ? 0 : 90) + .rotationY(axis == Direction.Axis.X ? 90 : 0) + .build(); + }, BlockStateProperties.WATERLOGGED); + }) + .onRegister(CreateRegistrate.blockModel(() -> BrassPipeAttachmentModel::new)) + .loot((p, b) -> p.dropOther(b, STEEL_PIPE.get())) + .register(); + + + public static final BlockEntry BRASS_MECHANICAL_PUMP = REGISTRATE.block("brass_mechanical_pump", TFMGPumpBlock::new) + .initialProperties(SharedProperties::copperMetal) + .properties(p -> p.color(MaterialColor.STONE)) + .transform(pickaxeOnly()) + .blockstate(BlockStateGen.directionalBlockProviderIgnoresWaterlogged(true)) + .onRegister(CreateRegistrate.blockModel(() -> BrassPipeAttachmentModel::new)) + .transform(BlockStressDefaults.setImpact(4.0)) + .item() + .transform(customItemModel()) + .register(); + + public static final BlockEntry BRASS_SMART_FLUID_PIPE = + REGISTRATE.block("brass_smart_fluid_pipe", TFMGSmartFluidPipeBlock::new) + .initialProperties(SharedProperties::copperMetal) + .properties(p -> p.color(MaterialColor.STONE)) + .transform(pickaxeOnly()) + .blockstate(new SmartFluidPipeGenerator()::generate) + .onRegister(CreateRegistrate.blockModel(() -> BrassPipeAttachmentModel::new)) + .item() + .transform(customItemModel()) + .register(); + + public static final BlockEntry BRASS_FLUID_VALVE = REGISTRATE.block("brass_fluid_valve", TFMGFluidValveBlock::new) + .initialProperties(SharedProperties::copperMetal) + .transform(pickaxeOnly()) + .blockstate((c, p) -> BlockStateGen.directionalAxisBlock(c, p, + (state, vertical) -> AssetLookup.partialBaseModel(c, p, vertical ? "vertical" : "horizontal", + state.getValue(FluidValveBlock.ENABLED) ? "open" : "closed"))) + .onRegister(CreateRegistrate.blockModel(() -> BrassPipeAttachmentModel::new)) + .item() + .transform(customItemModel()) + .register(); + //PLASTIC + public static final BlockEntry PLASTIC_PIPE = REGISTRATE.block("plastic_pipe", PlasticPipeBlock::new) + .initialProperties(() -> Blocks.QUARTZ_BLOCK) + .transform(pickaxeOnly()) + .blockstate(BlockStateGen.pipe()) + .onRegister(CreateRegistrate.blockModel(() -> PlasticPipeAttachmentModel::new)) + .item() + .transform(customItemModel()) + .register(); + + public static final BlockEntry COPPER_ENCASED_PLASTIC_PIPE = + REGISTRATE.block("copper_encased_plastic_pipe", p -> new EncasedPlasticPipeBlock(p, AllBlocks.COPPER_CASING::get)) + .initialProperties(SharedProperties::copperMetal) + .properties(p -> p.color(MaterialColor.TERRACOTTA_LIGHT_GRAY)) + .properties(BlockBehaviour.Properties::noOcclusion) + .transform(axeOrPickaxe()) + .blockstate(BlockStateGen.encasedPipe()) + .onRegister(CreateRegistrate.connectedTextures(() -> new EncasedCTBehaviour(AllSpriteShifts.COPPER_CASING))) + .onRegister(CreateRegistrate.casingConnectivity((block, cc) -> cc.make(block, AllSpriteShifts.COPPER_CASING, + (s, f) -> !s.getValue(EncasedPlasticPipeBlock.FACING_TO_PROPERTY_MAP.get(f))))) + .onRegister(CreateRegistrate.blockModel(() -> PlasticPipeAttachmentModel::new)) + .loot((p, b) -> p.dropOther(b, PLASTIC_PIPE.get())) + .transform(EncasingRegistry.addVariantTo(TFMGPipes.PLASTIC_PIPE)) + .register(); + + + @SuppressWarnings("removal") + public static final BlockEntry GLASS_PLASTIC_PIPE = + REGISTRATE.block("glass_plastic_pipe", GlassPlasticPipeBlock::new) + .initialProperties(SharedProperties::copperMetal) + .addLayer(() -> RenderType::cutoutMipped) + .transform(pickaxeOnly()) + .blockstate((c, p) -> { + p.getVariantBuilder(c.getEntry()) + .forAllStatesExcept(state -> { + Direction.Axis axis = state.getValue(BlockStateProperties.AXIS); + return ConfiguredModel.builder() + .modelFile(p.models() + .getExistingFile(p.modLoc("block/plastic_pipe/window"))) + .uvLock(false) + .rotationX(axis == Direction.Axis.Y ? 0 : 90) + .rotationY(axis == Direction.Axis.X ? 90 : 0) + .build(); + }, BlockStateProperties.WATERLOGGED); + }) + .onRegister(CreateRegistrate.blockModel(() -> PlasticPipeAttachmentModel::new)) + .loot((p, b) -> p.dropOther(b, PLASTIC_PIPE.get())) + .register(); + + + public static final BlockEntry PLASTIC_MECHANICAL_PUMP = REGISTRATE.block("plastic_mechanical_pump", TFMGPumpBlock::new) + .initialProperties(SharedProperties::copperMetal) + .properties(p -> p.color(MaterialColor.STONE)) + .transform(pickaxeOnly()) + .blockstate(BlockStateGen.directionalBlockProviderIgnoresWaterlogged(true)) + .onRegister(CreateRegistrate.blockModel(() -> PlasticPipeAttachmentModel::new)) + .transform(BlockStressDefaults.setImpact(4.0)) + .item() + .transform(customItemModel()) + .register(); + + public static final BlockEntry PLASTIC_SMART_FLUID_PIPE = + REGISTRATE.block("plastic_smart_fluid_pipe", TFMGSmartFluidPipeBlock::new) + .initialProperties(SharedProperties::copperMetal) + .properties(p -> p.color(MaterialColor.STONE)) + .transform(pickaxeOnly()) + .blockstate(new SmartFluidPipeGenerator()::generate) + .onRegister(CreateRegistrate.blockModel(() -> PlasticPipeAttachmentModel::new)) + .item() + .transform(customItemModel()) + .register(); + + public static final BlockEntry PLASTIC_FLUID_VALVE = REGISTRATE.block("plastic_fluid_valve", TFMGFluidValveBlock::new) + .initialProperties(SharedProperties::copperMetal) + .transform(pickaxeOnly()) + .blockstate((c, p) -> BlockStateGen.directionalAxisBlock(c, p, + (state, vertical) -> AssetLookup.partialBaseModel(c, p, vertical ? "vertical" : "horizontal", + state.getValue(FluidValveBlock.ENABLED) ? "open" : "closed"))) + .onRegister(CreateRegistrate.blockModel(() -> PlasticPipeAttachmentModel::new)) + .item() + .transform(customItemModel()) + .register(); + //ALUMINUM + public static final BlockEntry ALUMINUM_PIPE = REGISTRATE.block("aluminum_pipe", AluminumPipeBlock::new) + .initialProperties(() -> Blocks.IRON_BLOCK) + .transform(pickaxeOnly()) + .blockstate(BlockStateGen.pipe()) + .onRegister(CreateRegistrate.blockModel(() -> AluminumPipeAttachmentModel::new)) + .item() + .transform(customItemModel()) + .register(); + + public static final BlockEntry COPPER_ENCASED_ALUMINUM_PIPE = + REGISTRATE.block("copper_encased_aluminum_pipe", p -> new EncasedAluminumPipeBlock(p, AllBlocks.COPPER_CASING::get)) + .initialProperties(SharedProperties::copperMetal) + .properties(p -> p.color(MaterialColor.TERRACOTTA_LIGHT_GRAY)) + .properties(BlockBehaviour.Properties::noOcclusion) + .transform(axeOrPickaxe()) + .blockstate(BlockStateGen.encasedPipe()) + .onRegister(CreateRegistrate.connectedTextures(() -> new EncasedCTBehaviour(AllSpriteShifts.COPPER_CASING))) + .onRegister(CreateRegistrate.casingConnectivity((block, cc) -> cc.make(block, AllSpriteShifts.COPPER_CASING, + (s, f) -> !s.getValue(EncasedAluminumPipeBlock.FACING_TO_PROPERTY_MAP.get(f))))) + .onRegister(CreateRegistrate.blockModel(() -> AluminumPipeAttachmentModel::new)) + .loot((p, b) -> p.dropOther(b, ALUMINUM_PIPE.get())) + .transform(EncasingRegistry.addVariantTo(TFMGPipes.ALUMINUM_PIPE)) + .register(); + + + @SuppressWarnings("removal") + public static final BlockEntry GLASS_ALUMINUM_PIPE = + REGISTRATE.block("glass_aluminum_pipe", GlassAluminumPipeBlock::new) + .initialProperties(SharedProperties::copperMetal) + .addLayer(() -> RenderType::cutoutMipped) + .transform(pickaxeOnly()) + .blockstate((c, p) -> { + p.getVariantBuilder(c.getEntry()) + .forAllStatesExcept(state -> { + Direction.Axis axis = state.getValue(BlockStateProperties.AXIS); + return ConfiguredModel.builder() + .modelFile(p.models() + .getExistingFile(p.modLoc("block/aluminum_pipe/window"))) + .uvLock(false) + .rotationX(axis == Direction.Axis.Y ? 0 : 90) + .rotationY(axis == Direction.Axis.X ? 90 : 0) + .build(); + }, BlockStateProperties.WATERLOGGED); + }) + .onRegister(CreateRegistrate.blockModel(() -> AluminumPipeAttachmentModel::new)) + .loot((p, b) -> p.dropOther(b, ALUMINUM_PIPE.get())) + .register(); + + + public static final BlockEntry ALUMINUM_MECHANICAL_PUMP = REGISTRATE.block("aluminum_mechanical_pump", TFMGPumpBlock::new) + .initialProperties(SharedProperties::copperMetal) + .properties(p -> p.color(MaterialColor.STONE)) + .transform(pickaxeOnly()) + .blockstate(BlockStateGen.directionalBlockProviderIgnoresWaterlogged(true)) + .onRegister(CreateRegistrate.blockModel(() -> AluminumPipeAttachmentModel::new)) + .transform(BlockStressDefaults.setImpact(4.0)) + .item() + .transform(customItemModel()) + .register(); + + public static final BlockEntry ALUMINUM_SMART_FLUID_PIPE = + REGISTRATE.block("aluminum_smart_fluid_pipe", TFMGSmartFluidPipeBlock::new) + .initialProperties(SharedProperties::copperMetal) + .properties(p -> p.color(MaterialColor.STONE)) + .transform(pickaxeOnly()) + .blockstate(new SmartFluidPipeGenerator()::generate) + .onRegister(CreateRegistrate.blockModel(() -> AluminumPipeAttachmentModel::new)) + .item() + .transform(customItemModel()) + .register(); + + public static final BlockEntry ALUMINUM_FLUID_VALVE = REGISTRATE.block("aluminum_fluid_valve", TFMGFluidValveBlock::new) + .initialProperties(SharedProperties::copperMetal) + .transform(pickaxeOnly()) + .blockstate((c, p) -> BlockStateGen.directionalAxisBlock(c, p, + (state, vertical) -> AssetLookup.partialBaseModel(c, p, vertical ? "vertical" : "horizontal", + state.getValue(FluidValveBlock.ENABLED) ? "open" : "closed"))) + .onRegister(CreateRegistrate.blockModel(() -> AluminumPipeAttachmentModel::new)) + .item() + .transform(customItemModel()) + .register(); + + + static { + REGISTRATE.creativeModeTab(() -> TFMGCreativeModeTabs.TFMG_BASE); + } + + + public static void register(){} +} diff --git a/src/main/java/com/drmangotea/createindustry/base/TFMGTools.java b/src/main/java/com/drmangotea/createindustry/base/TFMGTools.java new file mode 100644 index 00000000..ef35f74a --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/base/TFMGTools.java @@ -0,0 +1,27 @@ +package com.drmangotea.createindustry.base; + +import net.minecraft.core.BlockPos; + +public class TFMGTools { + + public static float getDistance(BlockPos pos1, BlockPos pos2,boolean _2D){ + + + + float x = Math.abs(pos1.getX()-pos2.getX()); + float y = Math.abs(pos1.getY()-pos2.getY()); + float z = Math.abs(pos1.getZ()-pos2.getZ()); + + + float distance2D = (float) Math.sqrt(x*x+z*z); + + if(_2D) + return distance2D; + + + return (float) Math.sqrt(distance2D*distance2D+y*y); + + + } + +} diff --git a/src/main/java/com/drmangotea/createindustry/base/effects/HellFireEffect.java b/src/main/java/com/drmangotea/createindustry/base/effects/HellFireEffect.java new file mode 100644 index 00000000..8e66a8be --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/base/effects/HellFireEffect.java @@ -0,0 +1,21 @@ +package com.drmangotea.createindustry.base.effects; + +import net.minecraft.world.effect.MobEffect; +import net.minecraft.world.effect.MobEffectCategory; +import net.minecraft.world.entity.LivingEntity; + +public class HellFireEffect extends MobEffect { + public HellFireEffect(MobEffectCategory pCategory, int pColor) { + super(pCategory, pColor); + } + + @Override + public void applyEffectTick(LivingEntity pLivingEntity, int pAmplifier) { + pLivingEntity.setSecondsOnFire(1); + } + + @Override + public boolean isDurationEffectTick(int pDuration, int pAmplifier) { + return true; + } +} diff --git a/src/main/java/com/drmangotea/createindustry/base/util/TFMGUtils.java b/src/main/java/com/drmangotea/createindustry/base/util/TFMGUtils.java new file mode 100644 index 00000000..6a5fa813 --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/base/util/TFMGUtils.java @@ -0,0 +1,73 @@ +package com.drmangotea.createindustry.base.util; + +import com.drmangotea.createindustry.base.ElectricSparkParticle; +import com.drmangotea.createindustry.base.util.spark.Spark; +import com.drmangotea.createindustry.registry.TFMGEntityTypes; +import com.simibubi.create.Create; +import com.simibubi.create.foundation.utility.VecHelper; +import net.minecraft.core.BlockPos; +import net.minecraft.util.Mth; +import net.minecraft.util.RandomSource; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.level.Explosion; +import net.minecraft.world.level.Level; +import net.minecraft.world.phys.Vec3; +import org.apache.commons.lang3.StringUtils; + +import java.util.Arrays; +import java.util.stream.Collectors; + +public class TFMGUtils { + + + public static void createFireExplosion(Level level, Entity entity, BlockPos pos, int sparkAmount, float radius) { + + if (level.isClientSide&&entity!=null) + level.broadcastEntityEvent(entity, (byte) 3); + + for (int i = 0; i < sparkAmount; i++) { + float x = Create.RANDOM.nextFloat(360); + float y = Create.RANDOM.nextFloat(360); + float z = Create.RANDOM.nextFloat(360); + Spark spark = TFMGEntityTypes.SPARK.create(level); + spark.moveTo(pos.getX(), pos.getY() + 1, pos.getZ()); + + float f = -Mth.sin(y * ((float) Math.PI / 180F)) * Mth.cos(x * ((float) Math.PI / 180F)); + float f1 = -Mth.sin((x + z) * ((float) Math.PI / 180F)); + float f2 = Mth.cos(y * ((float) Math.PI / 180F)) * Mth.cos(x * ((float) Math.PI / 180F)); + spark.shoot(f, f1, f2, 0.3f, 1); + level.addFreshEntity(spark); + } + level.explode(null, pos.getX(), pos.getY(), pos.getZ(), radius, Explosion.BlockInteraction.BREAK); + + + } + + public static String fromId(String key) { + String s = key.replaceAll("_", " "); + s = Arrays.stream(StringUtils.splitByCharacterTypeCamelCase(s)).map(StringUtils::capitalize).collect(Collectors.joining(" ")); + s = StringUtils.normalizeSpace(s); + return s; + } + + public static void spawnElectricParticles(Level level,BlockPos pos) { + if (level == null) + return; + + + RandomSource r = level.getRandom(); + + + + for(int i = 0; i < r.nextInt(40);i++) { + float x = Create.RANDOM.nextFloat(2)-1; + float y = Create.RANDOM.nextFloat(2)-1; + float z = Create.RANDOM.nextFloat(2)-1; + + level.addParticle(new ElectricSparkParticle.Data(), pos.getX() + 0.5f+x, pos.getY() + 0.5f+y, pos.getZ() + 0.5f+z, x, y, z); + + + } + } + +} diff --git a/src/main/java/com/drmangotea/createindustry/blocks/HalfShaftRenderer.java b/src/main/java/com/drmangotea/createindustry/blocks/HalfShaftRenderer.java new file mode 100644 index 00000000..3ad419ef --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/HalfShaftRenderer.java @@ -0,0 +1,28 @@ +package com.drmangotea.createindustry.blocks; + + +import com.simibubi.create.AllPartialModels; +import com.simibubi.create.content.kinetics.base.DirectionalKineticBlock; +import com.simibubi.create.content.kinetics.base.KineticBlockEntity; +import com.simibubi.create.content.kinetics.base.KineticBlockEntityRenderer; +import com.simibubi.create.foundation.render.CachedBufferer; +import com.simibubi.create.foundation.render.SuperByteBuffer; +import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider; +import net.minecraft.world.level.block.state.BlockState; + +public class HalfShaftRenderer extends KineticBlockEntityRenderer { + +public HalfShaftRenderer(BlockEntityRendererProvider.Context context) { + super(context); + + } + + +@Override +protected SuperByteBuffer getRotatedModel(T be, BlockState state) { + return CachedBufferer.partialFacing(AllPartialModels.SHAFT_HALF, state, state + .getValue(DirectionalKineticBlock.FACING));} + + + + } \ No newline at end of file diff --git a/src/main/java/com/drmangotea/createindustry/blocks/TFMGHorizontalDirectionalBlock.java b/src/main/java/com/drmangotea/createindustry/blocks/TFMGHorizontalDirectionalBlock.java new file mode 100644 index 00000000..45b9b151 --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/TFMGHorizontalDirectionalBlock.java @@ -0,0 +1,26 @@ +package com.drmangotea.createindustry.blocks; + +import net.minecraft.world.item.context.BlockPlaceContext; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.HorizontalDirectionalBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.StateDefinition; + +public class TFMGHorizontalDirectionalBlock extends HorizontalDirectionalBlock { + + + public TFMGHorizontalDirectionalBlock(Properties p_54120_) { + super(p_54120_); + } + + @Override + protected void createBlockStateDefinition(StateDefinition.Builder builder) { + builder.add(FACING); + super.createBlockStateDefinition(builder); + } + + public BlockState getStateForPlacement(BlockPlaceContext pContext) { + return this.defaultBlockState().setValue(FACING, pContext.getHorizontalDirection().getOpposite()); + } + +} diff --git a/src/main/java/com/drmangotea/createindustry/blocks/cogwheeels/EncasedAluminumCogInstance.java b/src/main/java/com/drmangotea/createindustry/blocks/cogwheeels/EncasedAluminumCogInstance.java new file mode 100644 index 00000000..a0c2a2a5 --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/cogwheeels/EncasedAluminumCogInstance.java @@ -0,0 +1,116 @@ +package com.drmangotea.createindustry.blocks.cogwheeels; + +import com.drmangotea.createindustry.registry.TFMGPartialModels; +import com.jozufozu.flywheel.api.InstanceData; +import com.jozufozu.flywheel.api.Instancer; +import com.jozufozu.flywheel.api.Material; +import com.jozufozu.flywheel.api.MaterialManager; +import com.jozufozu.flywheel.core.PartialModel; +import com.jozufozu.flywheel.util.transform.TransformStack; +import com.mojang.blaze3d.vertex.PoseStack; +import com.mojang.math.Vector3f; +import com.simibubi.create.AllPartialModels; +import com.simibubi.create.content.kinetics.base.IRotate; +import com.simibubi.create.content.kinetics.base.KineticBlockEntity; +import com.simibubi.create.content.kinetics.base.KineticBlockEntityInstance; +import com.simibubi.create.content.kinetics.base.flwdata.RotatingData; +import com.simibubi.create.content.kinetics.simpleRelays.BracketedKineticBlockEntityRenderer; +import com.simibubi.create.foundation.render.AllMaterialSpecs; +import com.simibubi.create.foundation.utility.Iterate; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BlockStateProperties; + +import java.util.Optional; + +public class EncasedAluminumCogInstance extends KineticBlockEntityInstance { + + private boolean large; + + protected RotatingData rotatingModel; + protected Optional rotatingTopShaft; + protected Optional rotatingBottomShaft; + + public static EncasedAluminumCogInstance small(MaterialManager modelManager, KineticBlockEntity blockEntity) { + return new EncasedAluminumCogInstance(modelManager, blockEntity, false); + } + + public static EncasedAluminumCogInstance large(MaterialManager modelManager, KineticBlockEntity blockEntity) { + return new EncasedAluminumCogInstance(modelManager, blockEntity, true); + } + + public EncasedAluminumCogInstance(MaterialManager modelManager, KineticBlockEntity blockEntity, boolean large) { + super(modelManager, blockEntity); + this.large = large; + } + + @Override + public void init() { + rotatingModel = setup(getCogModel().createInstance()); + + Block block = blockState.getBlock(); + if (!(block instanceof IRotate)) + return; + + IRotate def = (IRotate) block; + rotatingTopShaft = Optional.empty(); + rotatingBottomShaft = Optional.empty(); + + for (Direction d : Iterate.directionsInAxis(axis)) { + if (!def.hasShaftTowards(blockEntity.getLevel(), blockEntity.getBlockPos(), blockState, d)) + continue; + RotatingData data = setup(getRotatingMaterial().getModel(AllPartialModels.SHAFT_HALF, blockState, d) + .createInstance()); + if (large) + data.setRotationOffset(BracketedKineticBlockEntityRenderer.getShaftAngleOffset(axis, pos)); + if (d.getAxisDirection() == Direction.AxisDirection.POSITIVE) + rotatingTopShaft = Optional.of(data); + else + rotatingBottomShaft = Optional.of(data); + } + } + + @Override + public void update() { + updateRotation(rotatingModel); + rotatingTopShaft.ifPresent(this::updateRotation); + rotatingBottomShaft.ifPresent(this::updateRotation); + } + + @Override + public void updateLight() { + relight(pos, rotatingModel); + rotatingTopShaft.ifPresent(d -> relight(pos, d)); + rotatingBottomShaft.ifPresent(d -> relight(pos, d)); + } + + @Override + public void remove() { + rotatingModel.delete(); + rotatingTopShaft.ifPresent(InstanceData::delete); + rotatingBottomShaft.ifPresent(InstanceData::delete); + } + + protected Instancer getCogModel() { + BlockState referenceState = blockEntity.getBlockState(); + Direction facing = + Direction.fromAxisAndDirection(referenceState.getValue(BlockStateProperties.AXIS), Direction.AxisDirection.POSITIVE); + PartialModel partial = large ? TFMGPartialModels.LARGE_ALUMINUM_COGHWEEL : TFMGPartialModels.ALUMINUM_COGHWEEL; + + return getCutoutRotatingMaterial().getModel(partial, referenceState, facing, () -> { + PoseStack poseStack = new PoseStack(); + TransformStack.cast(poseStack) + .centre() + .rotateToFace(facing) + .multiply(Vector3f.XN.rotationDegrees(90)) + .unCentre(); + return poseStack; + }); + } + protected Material getCutoutRotatingMaterial() { + return materialManager.defaultCutout() + .material(AllMaterialSpecs.ROTATING); + } + +} diff --git a/src/main/java/com/drmangotea/createindustry/blocks/cogwheeels/EncasedAluminumCogRenderer.java b/src/main/java/com/drmangotea/createindustry/blocks/cogwheeels/EncasedAluminumCogRenderer.java new file mode 100644 index 00000000..8847364a --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/cogwheeels/EncasedAluminumCogRenderer.java @@ -0,0 +1,74 @@ +package com.drmangotea.createindustry.blocks.cogwheeels; + +import com.drmangotea.createindustry.registry.TFMGPartialModels; +import com.jozufozu.flywheel.backend.Backend; +import com.mojang.blaze3d.vertex.PoseStack; +import com.simibubi.create.AllPartialModels; +import com.simibubi.create.content.kinetics.base.IRotate; +import com.simibubi.create.content.kinetics.base.KineticBlockEntityRenderer; +import com.simibubi.create.content.kinetics.simpleRelays.BracketedKineticBlockEntityRenderer; +import com.simibubi.create.content.kinetics.simpleRelays.SimpleKineticBlockEntity; +import com.simibubi.create.content.kinetics.simpleRelays.encased.EncasedCogwheelBlock; +import com.simibubi.create.foundation.render.CachedBufferer; +import com.simibubi.create.foundation.render.SuperByteBuffer; +import com.simibubi.create.foundation.utility.Iterate; +import net.minecraft.client.renderer.MultiBufferSource; +import net.minecraft.client.renderer.RenderType; +import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.state.BlockState; + +public class EncasedAluminumCogRenderer extends KineticBlockEntityRenderer { + + private boolean large; + + public static EncasedAluminumCogRenderer small(BlockEntityRendererProvider.Context context) { + return new EncasedAluminumCogRenderer(context, false); + } + + public static EncasedAluminumCogRenderer large(BlockEntityRendererProvider.Context context) { + return new EncasedAluminumCogRenderer(context, true); + } + + public EncasedAluminumCogRenderer(BlockEntityRendererProvider.Context context, boolean large) { + super(context); + this.large = large; + } + + @Override + protected void renderSafe(SimpleKineticBlockEntity be, float partialTicks, PoseStack ms, MultiBufferSource buffer, + int light, int overlay) { + super.renderSafe(be, partialTicks, ms, buffer, light, overlay); + if (Backend.canUseInstancing(be.getLevel())) + return; + + BlockState blockState = be.getBlockState(); + Block block = blockState.getBlock(); + if (!(block instanceof IRotate)) + return; + IRotate def = (IRotate) block; + + Direction.Axis axis = getRotationAxisOf(be); + BlockPos pos = be.getBlockPos(); + float angle = large ? BracketedKineticBlockEntityRenderer.getAngleForLargeCogShaft(be, axis) + : getAngleForTe(be, pos, axis); + + for (Direction d : Iterate.directionsInAxis(getRotationAxisOf(be))) { + if (!def.hasShaftTowards(be.getLevel(), be.getBlockPos(), blockState, d)) + continue; + SuperByteBuffer shaft = CachedBufferer.partialFacing(AllPartialModels.SHAFT_HALF, be.getBlockState(), d); + kineticRotationTransform(shaft, be, axis, angle, light); + shaft.renderInto(ms, buffer.getBuffer(RenderType.cutoutMipped())); + } + } + + @Override + protected SuperByteBuffer getRotatedModel(SimpleKineticBlockEntity be, BlockState state) { + return CachedBufferer.partialFacingVertical( + large ? TFMGPartialModels.LARGE_ALUMINUM_COGHWEEL : TFMGPartialModels.ALUMINUM_COGHWEEL, state, + Direction.fromAxisAndDirection(state.getValue(EncasedCogwheelBlock.AXIS), Direction.AxisDirection.POSITIVE)); + } + +} \ No newline at end of file diff --git a/src/main/java/com/drmangotea/createindustry/blocks/cogwheeels/EncasedSteelCogInstance.java b/src/main/java/com/drmangotea/createindustry/blocks/cogwheeels/EncasedSteelCogInstance.java new file mode 100644 index 00000000..5da4f949 --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/cogwheeels/EncasedSteelCogInstance.java @@ -0,0 +1,111 @@ +package com.drmangotea.createindustry.blocks.cogwheeels; + +import com.drmangotea.createindustry.registry.TFMGBlockEntities; +import com.drmangotea.createindustry.registry.TFMGPartialModels; +import com.jozufozu.flywheel.api.InstanceData; +import com.jozufozu.flywheel.api.Instancer; +import com.jozufozu.flywheel.api.MaterialManager; +import com.jozufozu.flywheel.core.PartialModel; +import com.jozufozu.flywheel.util.transform.TransformStack; +import com.mojang.blaze3d.vertex.PoseStack; +import com.mojang.math.Vector3f; +import com.simibubi.create.AllPartialModels; +import com.simibubi.create.content.kinetics.base.IRotate; +import com.simibubi.create.content.kinetics.base.KineticBlockEntity; +import com.simibubi.create.content.kinetics.base.KineticBlockEntityInstance; +import com.simibubi.create.content.kinetics.base.flwdata.RotatingData; +import com.simibubi.create.content.kinetics.simpleRelays.BracketedKineticBlockEntityRenderer; +import com.simibubi.create.foundation.utility.Iterate; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BlockStateProperties; + +import java.util.Optional; + +public class EncasedSteelCogInstance extends KineticBlockEntityInstance { + + private boolean large; + + protected RotatingData rotatingModel; + protected Optional rotatingTopShaft; + protected Optional rotatingBottomShaft; + + public static EncasedSteelCogInstance small(MaterialManager modelManager, KineticBlockEntity blockEntity) { + return new EncasedSteelCogInstance(modelManager, blockEntity, false); + } + + public static EncasedSteelCogInstance large(MaterialManager modelManager, KineticBlockEntity blockEntity) { + return new EncasedSteelCogInstance(modelManager, blockEntity, true); + } + + public EncasedSteelCogInstance(MaterialManager modelManager, KineticBlockEntity blockEntity, boolean large) { + super(modelManager, blockEntity); + this.large = large; + } + + @Override + public void init() { + rotatingModel = setup(getCogModel().createInstance()); + + Block block = blockState.getBlock(); + if (!(block instanceof IRotate)) + return; + + IRotate def = (IRotate) block; + rotatingTopShaft = Optional.empty(); + rotatingBottomShaft = Optional.empty(); + + for (Direction d : Iterate.directionsInAxis(axis)) { + if (!def.hasShaftTowards(blockEntity.getLevel(), blockEntity.getBlockPos(), blockState, d)) + continue; + RotatingData data = setup(getRotatingMaterial().getModel(AllPartialModels.SHAFT_HALF, blockState, d) + .createInstance()); + if (large) + data.setRotationOffset(BracketedKineticBlockEntityRenderer.getShaftAngleOffset(axis, pos)); + if (d.getAxisDirection() == Direction.AxisDirection.POSITIVE) + rotatingTopShaft = Optional.of(data); + else + rotatingBottomShaft = Optional.of(data); + } + } + + @Override + public void update() { + updateRotation(rotatingModel); + rotatingTopShaft.ifPresent(this::updateRotation); + rotatingBottomShaft.ifPresent(this::updateRotation); + } + + @Override + public void updateLight() { + relight(pos, rotatingModel); + rotatingTopShaft.ifPresent(d -> relight(pos, d)); + rotatingBottomShaft.ifPresent(d -> relight(pos, d)); + } + + @Override + public void remove() { + rotatingModel.delete(); + rotatingTopShaft.ifPresent(InstanceData::delete); + rotatingBottomShaft.ifPresent(InstanceData::delete); + } + + protected Instancer getCogModel() { + BlockState referenceState = blockEntity.getBlockState(); + Direction facing = + Direction.fromAxisAndDirection(referenceState.getValue(BlockStateProperties.AXIS), Direction.AxisDirection.POSITIVE); + PartialModel partial = large ? TFMGPartialModels.LARGE_STEEL_COGHWEEL : TFMGPartialModels.STEEL_COGHWEEL; + + return getRotatingMaterial().getModel(partial, referenceState, facing, () -> { + PoseStack poseStack = new PoseStack(); + TransformStack.cast(poseStack) + .centre() + .rotateToFace(facing) + .multiply(Vector3f.XN.rotationDegrees(90)) + .unCentre(); + return poseStack; + }); + } + +} diff --git a/src/main/java/com/drmangotea/createindustry/blocks/cogwheeels/EncasedSteelCogRenderer.java b/src/main/java/com/drmangotea/createindustry/blocks/cogwheeels/EncasedSteelCogRenderer.java new file mode 100644 index 00000000..27a8684b --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/cogwheeels/EncasedSteelCogRenderer.java @@ -0,0 +1,74 @@ +package com.drmangotea.createindustry.blocks.cogwheeels; + +import com.drmangotea.createindustry.registry.TFMGPartialModels; +import com.jozufozu.flywheel.backend.Backend; +import com.mojang.blaze3d.vertex.PoseStack; +import com.simibubi.create.AllPartialModels; +import com.simibubi.create.content.kinetics.base.IRotate; +import com.simibubi.create.content.kinetics.base.KineticBlockEntityRenderer; +import com.simibubi.create.content.kinetics.simpleRelays.BracketedKineticBlockEntityRenderer; +import com.simibubi.create.content.kinetics.simpleRelays.SimpleKineticBlockEntity; +import com.simibubi.create.content.kinetics.simpleRelays.encased.EncasedCogwheelBlock; +import com.simibubi.create.foundation.render.CachedBufferer; +import com.simibubi.create.foundation.render.SuperByteBuffer; +import com.simibubi.create.foundation.utility.Iterate; +import net.minecraft.client.renderer.MultiBufferSource; +import net.minecraft.client.renderer.RenderType; +import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.state.BlockState; + +public class EncasedSteelCogRenderer extends KineticBlockEntityRenderer { + + private boolean large; + + public static EncasedSteelCogRenderer small(BlockEntityRendererProvider.Context context) { + return new EncasedSteelCogRenderer(context, false); + } + + public static EncasedSteelCogRenderer large(BlockEntityRendererProvider.Context context) { + return new EncasedSteelCogRenderer(context, true); + } + + public EncasedSteelCogRenderer(BlockEntityRendererProvider.Context context, boolean large) { + super(context); + this.large = large; + } + + @Override + protected void renderSafe(SimpleKineticBlockEntity be, float partialTicks, PoseStack ms, MultiBufferSource buffer, + int light, int overlay) { + super.renderSafe(be, partialTicks, ms, buffer, light, overlay); + if (Backend.canUseInstancing(be.getLevel())) + return; + + BlockState blockState = be.getBlockState(); + Block block = blockState.getBlock(); + if (!(block instanceof IRotate)) + return; + IRotate def = (IRotate) block; + + Direction.Axis axis = getRotationAxisOf(be); + BlockPos pos = be.getBlockPos(); + float angle = large ? BracketedKineticBlockEntityRenderer.getAngleForLargeCogShaft(be, axis) + : getAngleForTe(be, pos, axis); + + for (Direction d : Iterate.directionsInAxis(getRotationAxisOf(be))) { + if (!def.hasShaftTowards(be.getLevel(), be.getBlockPos(), blockState, d)) + continue; + SuperByteBuffer shaft = CachedBufferer.partialFacing(AllPartialModels.SHAFT_HALF, be.getBlockState(), d); + kineticRotationTransform(shaft, be, axis, angle, light); + shaft.renderInto(ms, buffer.getBuffer(RenderType.cutoutMipped())); + } + } + + @Override + protected SuperByteBuffer getRotatedModel(SimpleKineticBlockEntity be, BlockState state) { + return CachedBufferer.partialFacingVertical( + large ? TFMGPartialModels.LARGE_STEEL_COGHWEEL : TFMGPartialModels.STEEL_COGHWEEL, state, + Direction.fromAxisAndDirection(state.getValue(EncasedCogwheelBlock.AXIS), Direction.AxisDirection.POSITIVE)); + } + +} \ No newline at end of file diff --git a/src/main/java/com/drmangotea/createindustry/blocks/cogwheeels/TFMGCogWheelBlock.java b/src/main/java/com/drmangotea/createindustry/blocks/cogwheeels/TFMGCogWheelBlock.java new file mode 100644 index 00000000..70e54cb0 --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/cogwheeels/TFMGCogWheelBlock.java @@ -0,0 +1,218 @@ +package com.drmangotea.createindustry.blocks.cogwheeels; + +import com.drmangotea.createindustry.registry.TFMGBlockEntities; +import com.simibubi.create.*; +import com.simibubi.create.content.decoration.encasing.EncasableBlock; +import com.simibubi.create.content.kinetics.base.IRotate; +import com.simibubi.create.content.kinetics.base.KineticBlockEntity; +import com.simibubi.create.content.kinetics.simpleRelays.AbstractSimpleShaftBlock; +import com.simibubi.create.content.kinetics.simpleRelays.ICogWheel; +import com.simibubi.create.content.kinetics.speedController.SpeedControllerBlock; +import com.simibubi.create.foundation.advancement.AllAdvancements; +import com.simibubi.create.foundation.utility.Iterate; +import net.minecraft.MethodsReturnNonnullByDefault; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.core.NonNullList; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.CreativeModeTab; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.context.BlockPlaceContext; +import net.minecraft.world.level.BlockGetter; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.LevelReader; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BlockStateProperties; +import net.minecraft.world.level.material.Fluids; +import net.minecraft.world.phys.BlockHitResult; +import net.minecraft.world.phys.shapes.CollisionContext; +import net.minecraft.world.phys.shapes.VoxelShape; + +import javax.annotation.ParametersAreNonnullByDefault; + +import static net.minecraft.core.Direction.Axis; + +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +public class TFMGCogWheelBlock extends AbstractSimpleShaftBlock implements ICogWheel, EncasableBlock { + + boolean isLarge; + + protected TFMGCogWheelBlock(boolean large, Properties properties) { + super(properties); + isLarge = large; + } + + public static TFMGCogWheelBlock small(Properties properties) { + return new TFMGCogWheelBlock(false, properties); + } + + public static TFMGCogWheelBlock large(Properties properties) { + return new TFMGCogWheelBlock(true, properties); + } + + @Override + public boolean isLargeCog() { + return isLarge; + } + + @Override + public boolean isSmallCog() { + return !isLarge; + } + + @Override + public void fillItemCategory(CreativeModeTab pTab, NonNullList pItems) { + super.fillItemCategory(pTab, pItems); + // Ensure the belt item is added after large cogwheels in the creative tab + if (AllBlocks.LARGE_COGWHEEL.is(this) && pTab == AllCreativeModeTabs.BASE_CREATIVE_TAB) + pItems.add(AllItems.BELT_CONNECTOR.asStack()); + } + + @Override + public VoxelShape getShape(BlockState state, BlockGetter worldIn, BlockPos pos, CollisionContext context) { + return (isLarge ? AllShapes.LARGE_GEAR : AllShapes.SMALL_GEAR).get(state.getValue(AXIS)); + } + + @Override + public boolean canSurvive(BlockState state, LevelReader worldIn, BlockPos pos) { + return isValidCogwheelPosition(ICogWheel.isLargeCog(state), worldIn, pos, state.getValue(AXIS)); + } + + @Override + public void setPlacedBy(Level worldIn, BlockPos pos, BlockState state, LivingEntity placer, ItemStack stack) { + super.setPlacedBy(worldIn, pos, state, placer, stack); + if (placer instanceof Player player) + triggerShiftingGearsAdvancement(worldIn, pos, state, player); + } + + protected void triggerShiftingGearsAdvancement(Level world, BlockPos pos, BlockState state, Player player) { + if (world.isClientSide || player == null) + return; + + Axis axis = state.getValue(TFMGCogWheelBlock.AXIS); + for (Axis perpendicular1 : Iterate.axes) { + if (perpendicular1 == axis) + continue; + + Direction d1 = Direction.get(Direction.AxisDirection.POSITIVE, perpendicular1); + for (Axis perpendicular2 : Iterate.axes) { + if (perpendicular1 == perpendicular2) + continue; + if (axis == perpendicular2) + continue; + + Direction d2 = Direction.get(Direction.AxisDirection.POSITIVE, perpendicular2); + for (int offset1 : Iterate.positiveAndNegative) { + for (int offset2 : Iterate.positiveAndNegative) { + BlockPos connectedPos = pos.relative(d1, offset1) + .relative(d2, offset2); + BlockState blockState = world.getBlockState(connectedPos); + if (!(blockState.getBlock() instanceof TFMGCogWheelBlock)) + continue; + if (blockState.getValue(TFMGCogWheelBlock.AXIS) != axis) + continue; + if (ICogWheel.isLargeCog(blockState) == isLarge) + continue; + + AllAdvancements.COGS.awardTo(player); + } + } + } + } + } + + @Override + public InteractionResult use(BlockState state, Level world, BlockPos pos, Player player, InteractionHand hand, + BlockHitResult ray) { + if (player.isShiftKeyDown() || !player.mayBuild()) + return InteractionResult.PASS; + + ItemStack heldItem = player.getItemInHand(hand); + InteractionResult result = tryEncase(state, world, pos, heldItem, player, hand, ray); + if (result.consumesAction()) + return result; + + return InteractionResult.PASS; + } + + public static boolean isValidCogwheelPosition(boolean large, LevelReader worldIn, BlockPos pos, Axis cogAxis) { + for (Direction facing : Iterate.directions) { + if (facing.getAxis() == cogAxis) + continue; + + BlockPos offsetPos = pos.relative(facing); + BlockState blockState = worldIn.getBlockState(offsetPos); + if (blockState.hasProperty(AXIS) && facing.getAxis() == blockState.getValue(AXIS)) + continue; + + if (ICogWheel.isLargeCog(blockState) || large && ICogWheel.isSmallCog(blockState)) + return false; + } + return true; + } + + protected Axis getAxisForPlacement(BlockPlaceContext context) { + if (context.getPlayer() != null && context.getPlayer() + .isShiftKeyDown()) + return context.getClickedFace() + .getAxis(); + + Level world = context.getLevel(); + BlockState stateBelow = world.getBlockState(context.getClickedPos() + .below()); + + if (AllBlocks.ROTATION_SPEED_CONTROLLER.has(stateBelow) && isLargeCog()) + return stateBelow.getValue(SpeedControllerBlock.HORIZONTAL_AXIS) == Axis.X ? Axis.Z : Axis.X; + + BlockPos placedOnPos = context.getClickedPos() + .relative(context.getClickedFace() + .getOpposite()); + BlockState placedAgainst = world.getBlockState(placedOnPos); + + Block block = placedAgainst.getBlock(); + if (ICogWheel.isSmallCog(placedAgainst)) + return ((IRotate) block).getRotationAxis(placedAgainst); + + Axis preferredAxis = getPreferredAxis(context); + return preferredAxis != null ? preferredAxis + : context.getClickedFace() + .getAxis(); + } + + @Override + public BlockState getStateForPlacement(BlockPlaceContext context) { + boolean shouldWaterlog = context.getLevel() + .getFluidState(context.getClickedPos()) + .getType() == Fluids.WATER; + return this.defaultBlockState() + .setValue(AXIS, getAxisForPlacement(context)) + .setValue(BlockStateProperties.WATERLOGGED, shouldWaterlog); + } + + @Override + public float getParticleTargetRadius() { + return isLargeCog() ? 1.125f : .65f; + } + + @Override + public float getParticleInitialRadius() { + return isLargeCog() ? 1f : .75f; + } + + @Override + public boolean isDedicatedCogWheel() { + return true; + } + + + @Override + public BlockEntityType getBlockEntityType() { + return TFMGBlockEntities.TFMG_COGWHEEL.get(); + } +} \ No newline at end of file diff --git a/src/main/java/com/drmangotea/createindustry/blocks/cogwheeels/TFMGCogwheelBlockItem.java b/src/main/java/com/drmangotea/createindustry/blocks/cogwheeels/TFMGCogwheelBlockItem.java new file mode 100644 index 00000000..8ec36a79 --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/cogwheeels/TFMGCogwheelBlockItem.java @@ -0,0 +1,311 @@ +package com.drmangotea.createindustry.blocks.cogwheeels; + +import static com.simibubi.create.content.kinetics.base.RotatedPillarKineticBlock.AXIS; + +import java.util.List; +import java.util.function.Predicate; + +import com.simibubi.create.AllShapes; +import com.simibubi.create.content.kinetics.base.DirectionalKineticBlock; +import com.simibubi.create.content.kinetics.base.HorizontalKineticBlock; +import com.simibubi.create.content.kinetics.base.IRotate; +import com.simibubi.create.content.kinetics.base.RotatedPillarKineticBlock; +import com.simibubi.create.content.kinetics.simpleRelays.ICogWheel; +import com.simibubi.create.foundation.placement.IPlacementHelper; +import com.simibubi.create.foundation.placement.PlacementHelpers; +import com.simibubi.create.foundation.placement.PlacementOffset; +import com.simibubi.create.foundation.utility.Iterate; + +import net.minecraft.MethodsReturnNonnullByDefault; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.core.Direction.Axis; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.BlockItem; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.context.UseOnContext; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.phys.BlockHitResult; + +public class TFMGCogwheelBlockItem extends BlockItem { + + boolean large; + + private final int placementHelperId; + private final int integratedCogHelperId; + + public TFMGCogwheelBlockItem(TFMGCogWheelBlock block, Properties builder) { + super(block, builder); + large = block.isLarge; + + placementHelperId = PlacementHelpers.register(large ? new LargeCogHelper() : new SmallCogHelper()); + integratedCogHelperId = + PlacementHelpers.register(large ? new IntegratedLargeCogHelper() : new IntegratedSmallCogHelper()); + } + + @Override + public InteractionResult onItemUseFirst(ItemStack stack, UseOnContext context) { + Level world = context.getLevel(); + BlockPos pos = context.getClickedPos(); + BlockState state = world.getBlockState(pos); + + IPlacementHelper helper = PlacementHelpers.get(placementHelperId); + Player player = context.getPlayer(); + BlockHitResult ray = new BlockHitResult(context.getClickLocation(), context.getClickedFace(), pos, true); + if (helper.matchesState(state) && player != null && !player.isShiftKeyDown()) { + return helper.getOffset(player, world, state, pos, ray) + .placeInWorld(world, this, player, context.getHand(), ray); + } + + if (integratedCogHelperId != -1) { + helper = PlacementHelpers.get(integratedCogHelperId); + + if (helper.matchesState(state) && player != null && !player.isShiftKeyDown()) { + return helper.getOffset(player, world, state, pos, ray) + .placeInWorld(world, this, player, context.getHand(), ray); + } + } + + return super.onItemUseFirst(stack, context); + } + + @MethodsReturnNonnullByDefault + private static class SmallCogHelper extends DiagonalCogHelper { + + @Override + public Predicate getItemPredicate() { + return ((Predicate) ICogWheel::isSmallCogItem).and(ICogWheel::isDedicatedCogItem); + } + + @Override + public PlacementOffset getOffset(Player player, Level world, BlockState state, BlockPos pos, + BlockHitResult ray) { + if (hitOnShaft(state, ray)) + return PlacementOffset.fail(); + + if (!ICogWheel.isLargeCog(state)) { + Axis axis = ((IRotate) state.getBlock()).getRotationAxis(state); + List directions = IPlacementHelper.orderedByDistanceExceptAxis(pos, ray.getLocation(), axis); + + for (Direction dir : directions) { + BlockPos newPos = pos.relative(dir); + + if (!TFMGCogWheelBlock.isValidCogwheelPosition(false, world, newPos, axis)) + continue; + + if (!world.getBlockState(newPos) + .getMaterial() + .isReplaceable()) + continue; + + return PlacementOffset.success(newPos, s -> s.setValue(AXIS, axis)); + + } + + return PlacementOffset.fail(); + } + + return super.getOffset(player, world, state, pos, ray); + } + } + + @MethodsReturnNonnullByDefault + private static class LargeCogHelper extends DiagonalCogHelper { + + @Override + public Predicate getItemPredicate() { + return ((Predicate) ICogWheel::isLargeCogItem).and(ICogWheel::isDedicatedCogItem); + } + + @Override + public PlacementOffset getOffset(Player player, Level world, BlockState state, BlockPos pos, + BlockHitResult ray) { + if (hitOnShaft(state, ray)) + return PlacementOffset.fail(); + + if (ICogWheel.isLargeCog(state)) { + Axis axis = ((IRotate) state.getBlock()).getRotationAxis(state); + Direction side = IPlacementHelper.orderedByDistanceOnlyAxis(pos, ray.getLocation(), axis) + .get(0); + List directions = IPlacementHelper.orderedByDistanceExceptAxis(pos, ray.getLocation(), axis); + for (Direction dir : directions) { + BlockPos newPos = pos.relative(dir) + .relative(side); + + if (!TFMGCogWheelBlock.isValidCogwheelPosition(true, world, newPos, dir.getAxis())) + continue; + + if (!world.getBlockState(newPos) + .getMaterial() + .isReplaceable()) + continue; + + return PlacementOffset.success(newPos, s -> s.setValue(AXIS, dir.getAxis())); + } + + return PlacementOffset.fail(); + } + + return super.getOffset(player, world, state, pos, ray); + } + } + + @MethodsReturnNonnullByDefault + public abstract static class DiagonalCogHelper implements IPlacementHelper { + + @Override + public Predicate getStatePredicate() { + return s -> ICogWheel.isSmallCog(s) || ICogWheel.isLargeCog(s); + } + + @Override + public PlacementOffset getOffset(Player player, Level world, BlockState state, BlockPos pos, + BlockHitResult ray) { + // diagonal gears of different size + Axis axis = ((IRotate) state.getBlock()).getRotationAxis(state); + Direction closest = IPlacementHelper.orderedByDistanceExceptAxis(pos, ray.getLocation(), axis) + .get(0); + List directions = IPlacementHelper.orderedByDistanceExceptAxis(pos, ray.getLocation(), axis, + d -> d.getAxis() != closest.getAxis()); + + for (Direction dir : directions) { + BlockPos newPos = pos.relative(dir) + .relative(closest); + if (!world.getBlockState(newPos) + .getMaterial() + .isReplaceable()) + continue; + + if (!TFMGCogWheelBlock.isValidCogwheelPosition(ICogWheel.isLargeCog(state), world, newPos, axis)) + continue; + + return PlacementOffset.success(newPos, s -> s.setValue(AXIS, axis)); + } + + return PlacementOffset.fail(); + } + + protected boolean hitOnShaft(BlockState state, BlockHitResult ray) { + return AllShapes.SIX_VOXEL_POLE.get(((IRotate) state.getBlock()).getRotationAxis(state)) + .bounds() + .inflate(0.001) + .contains(ray.getLocation() + .subtract(ray.getLocation() + .align(Iterate.axisSet))); + } + } + + @MethodsReturnNonnullByDefault + public static class IntegratedLargeCogHelper implements IPlacementHelper { + + @Override + public Predicate getItemPredicate() { + return ((Predicate) ICogWheel::isLargeCogItem).and(ICogWheel::isDedicatedCogItem); + } + + @Override + public Predicate getStatePredicate() { + return s -> !ICogWheel.isDedicatedCogWheel(s.getBlock()) && ICogWheel.isSmallCog(s); + } + + @Override + public PlacementOffset getOffset(Player player, Level world, BlockState state, BlockPos pos, + BlockHitResult ray) { + Direction face = ray.getDirection(); + Axis newAxis; + + if (state.hasProperty(HorizontalKineticBlock.HORIZONTAL_FACING)) + newAxis = state.getValue(HorizontalKineticBlock.HORIZONTAL_FACING) + .getAxis(); + else if (state.hasProperty(DirectionalKineticBlock.FACING)) + newAxis = state.getValue(DirectionalKineticBlock.FACING) + .getAxis(); + else if (state.hasProperty(RotatedPillarKineticBlock.AXIS)) + newAxis = state.getValue(RotatedPillarKineticBlock.AXIS); + else + newAxis = Axis.Y; + + if (face.getAxis() == newAxis) + return PlacementOffset.fail(); + + List directions = + IPlacementHelper.orderedByDistanceExceptAxis(pos, ray.getLocation(), face.getAxis(), newAxis); + + for (Direction d : directions) { + BlockPos newPos = pos.relative(face) + .relative(d); + + if (!world.getBlockState(newPos) + .getMaterial() + .isReplaceable()) + continue; + + if (!TFMGCogWheelBlock.isValidCogwheelPosition(false, world, newPos, newAxis)) + return PlacementOffset.fail(); + + return PlacementOffset.success(newPos, s -> s.setValue(TFMGCogWheelBlock.AXIS, newAxis)); + } + + return PlacementOffset.fail(); + } + + } + + @MethodsReturnNonnullByDefault + public static class IntegratedSmallCogHelper implements IPlacementHelper { + + @Override + public Predicate getItemPredicate() { + return ((Predicate) ICogWheel::isSmallCogItem).and(ICogWheel::isDedicatedCogItem); + } + + @Override + public Predicate getStatePredicate() { + return s -> !ICogWheel.isDedicatedCogWheel(s.getBlock()) && ICogWheel.isSmallCog(s); + } + + @Override + public PlacementOffset getOffset(Player player, Level world, BlockState state, BlockPos pos, + BlockHitResult ray) { + Direction face = ray.getDirection(); + Axis newAxis; + + if (state.hasProperty(HorizontalKineticBlock.HORIZONTAL_FACING)) + newAxis = state.getValue(HorizontalKineticBlock.HORIZONTAL_FACING) + .getAxis(); + else if (state.hasProperty(DirectionalKineticBlock.FACING)) + newAxis = state.getValue(DirectionalKineticBlock.FACING) + .getAxis(); + else if (state.hasProperty(RotatedPillarKineticBlock.AXIS)) + newAxis = state.getValue(RotatedPillarKineticBlock.AXIS); + else + newAxis = Axis.Y; + + if (face.getAxis() == newAxis) + return PlacementOffset.fail(); + + List directions = IPlacementHelper.orderedByDistanceExceptAxis(pos, ray.getLocation(), newAxis); + + for (Direction d : directions) { + BlockPos newPos = pos.relative(d); + + if (!world.getBlockState(newPos) + .getMaterial() + .isReplaceable()) + continue; + + if (!TFMGCogWheelBlock.isValidCogwheelPosition(false, world, newPos, newAxis)) + return PlacementOffset.fail(); + + return PlacementOffset.success() + .at(newPos) + .withTransform(s -> s.setValue(TFMGCogWheelBlock.AXIS, newAxis)); + } + + return PlacementOffset.fail(); + } + + } +} diff --git a/src/main/java/com/drmangotea/createindustry/blocks/cogwheeels/TFMGCogwheelInstance.java b/src/main/java/com/drmangotea/createindustry/blocks/cogwheeels/TFMGCogwheelInstance.java new file mode 100644 index 00000000..afbe042a --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/cogwheeels/TFMGCogwheelInstance.java @@ -0,0 +1,117 @@ +package com.drmangotea.createindustry.blocks.cogwheeels; + +import com.drmangotea.createindustry.registry.TFMGBlocks; +import com.drmangotea.createindustry.registry.TFMGPartialModels; +import com.jozufozu.flywheel.api.Instancer; +import com.jozufozu.flywheel.api.Material; +import com.jozufozu.flywheel.api.MaterialManager; +import com.jozufozu.flywheel.core.PartialModel; +import com.jozufozu.flywheel.util.transform.TransformStack; +import com.mojang.blaze3d.vertex.PoseStack; +import com.mojang.math.Vector3f; +import com.simibubi.create.AllPartialModels; +import com.simibubi.create.content.kinetics.base.KineticBlockEntityRenderer; +import com.simibubi.create.content.kinetics.base.SingleRotatingInstance; +import com.simibubi.create.content.kinetics.base.flwdata.RotatingData; + +import com.simibubi.create.content.kinetics.simpleRelays.BracketedKineticBlockEntity; +import com.simibubi.create.content.kinetics.simpleRelays.BracketedKineticBlockEntityRenderer; +import com.simibubi.create.content.kinetics.simpleRelays.ICogWheel; +import com.simibubi.create.content.kinetics.simpleRelays.SimpleKineticBlockEntity; +import com.simibubi.create.foundation.render.AllMaterialSpecs; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.core.Direction.Axis; +import net.minecraft.core.Direction.AxisDirection; + +public class TFMGCogwheelInstance extends SingleRotatingInstance { + + protected RotatingData additionalShaft; + + public TFMGCogwheelInstance(MaterialManager materialManager, SimpleKineticBlockEntity blockEntity) { + super(materialManager, blockEntity); + } + + @Override + public void init() { + super.init(); + if (!ICogWheel.isLargeCog(blockEntity.getBlockState())) + return; + + // Large cogs sometimes have to offset their teeth by 11.25 degrees in order to + // mesh properly + + float speed = blockEntity.getSpeed(); + Axis axis = KineticBlockEntityRenderer.getRotationAxisOf(blockEntity); + BlockPos pos = blockEntity.getBlockPos(); + float offset = BracketedKineticBlockEntityRenderer.getShaftAngleOffset(axis, pos); + Direction facing = Direction.fromAxisAndDirection(axis, AxisDirection.POSITIVE); + Instancer half = getRotatingMaterial().getModel(AllPartialModels.COGWHEEL_SHAFT, blockState, + facing, () -> this.rotateToAxis(axis)); + + additionalShaft = setup(half.createInstance(), speed); + additionalShaft.setRotationOffset(offset); + } + + @Override + protected Instancer getModel() { + + Axis axis = KineticBlockEntityRenderer.getRotationAxisOf(blockEntity); + Direction facing = Direction.fromAxisAndDirection(axis, AxisDirection.POSITIVE); + + + if (!ICogWheel.isLargeCog(blockEntity.getBlockState())) + return getCutoutRotatingMaterial().getModel(blockState); + //return super.getModel(); + + + + PartialModel model = blockEntity.getBlockState().is(TFMGBlocks.LARGE_ALUMINUM_COGWHEEL.get()) ? TFMGPartialModels.LARGE_ALUMINUM_COGHWEEL : TFMGPartialModels.LARGE_STEEL_COGHWEEL; + + + + + return getCutoutRotatingMaterial().getModel(model, blockState, facing, + () -> this.rotateToAxis(axis)); + } + + protected Material getCutoutRotatingMaterial() { + return materialManager.defaultCutout() + .material(AllMaterialSpecs.ROTATING); + } + + private PoseStack rotateToAxis(Axis axis) { + Direction facing = Direction.fromAxisAndDirection(axis, AxisDirection.POSITIVE); + PoseStack poseStack = new PoseStack(); + TransformStack.cast(poseStack) + .centre() + .rotateToFace(facing) + .multiply(Vector3f.XN.rotationDegrees(-90)) + .unCentre(); + return poseStack; + } + + @Override + public void update() { + super.update(); + if (additionalShaft != null) { + updateRotation(additionalShaft); + additionalShaft.setRotationOffset(TFMGCogwheelRenderer.getShaftAngleOffset(axis, pos)); + } + } + + @Override + public void updateLight() { + super.updateLight(); + if (additionalShaft != null) + relight(pos, additionalShaft); + } + + @Override + public void remove() { + super.remove(); + if (additionalShaft != null) + additionalShaft.delete(); + } + +} \ No newline at end of file diff --git a/src/main/java/com/drmangotea/createindustry/blocks/cogwheeels/TFMGCogwheelRenderer.java b/src/main/java/com/drmangotea/createindustry/blocks/cogwheeels/TFMGCogwheelRenderer.java new file mode 100644 index 00000000..6f823912 --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/cogwheeels/TFMGCogwheelRenderer.java @@ -0,0 +1,79 @@ +package com.drmangotea.createindustry.blocks.cogwheeels; + +import com.drmangotea.createindustry.registry.TFMGBlocks; +import com.drmangotea.createindustry.registry.TFMGPartialModels; +import com.jozufozu.flywheel.backend.Backend; +import com.jozufozu.flywheel.core.PartialModel; +import com.mojang.blaze3d.vertex.PoseStack; +import com.simibubi.create.AllBlocks; +import com.simibubi.create.AllPartialModels; +import com.simibubi.create.content.kinetics.base.KineticBlockEntityRenderer; +import com.simibubi.create.content.kinetics.simpleRelays.BracketedKineticBlockEntity; +import com.simibubi.create.content.kinetics.simpleRelays.SimpleKineticBlockEntity; +import com.simibubi.create.foundation.render.CachedBufferer; +import com.simibubi.create.foundation.render.SuperByteBuffer; +import com.simibubi.create.foundation.utility.AnimationTickHolder; + +import net.minecraft.client.renderer.MultiBufferSource; +import net.minecraft.client.renderer.RenderType; +import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider.Context; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.core.Direction.Axis; +import net.minecraft.core.Direction.AxisDirection; + +public class TFMGCogwheelRenderer extends KineticBlockEntityRenderer { + + public TFMGCogwheelRenderer(Context context) { + super(context); + } + + @Override + protected void renderSafe(SimpleKineticBlockEntity be, float partialTicks, PoseStack ms, + MultiBufferSource buffer, int light, int overlay) { + + if (Backend.canUseInstancing(be.getLevel())) + return; + + if (!AllBlocks.LARGE_COGWHEEL.has(be.getBlockState())) { + super.renderSafe(be, partialTicks, ms, buffer, light, overlay); + return; + } + + + Axis axis = getRotationAxisOf(be); + Direction facing = Direction.fromAxisAndDirection(axis, AxisDirection.POSITIVE); + + PartialModel model = be.getBlockState().is(TFMGBlocks.LARGE_ALUMINUM_COGWHEEL.get()) ? TFMGPartialModels.LARGE_ALUMINUM_COGHWEEL : TFMGPartialModels.LARGE_STEEL_COGHWEEL; + + + renderRotatingBuffer(be, + CachedBufferer.partialFacingVertical(model, be.getBlockState(), facing), + ms, buffer.getBuffer(RenderType.cutoutMipped()), light); + + float angle = getAngleForLargeCogShaft(be, axis); + SuperByteBuffer shaft = + CachedBufferer.partialFacingVertical(AllPartialModels.COGWHEEL_SHAFT, be.getBlockState(), facing); + kineticRotationTransform(shaft, be, axis, angle, light); + shaft.renderInto(ms, buffer.getBuffer(RenderType.solid())); + + } + + public static float getAngleForLargeCogShaft(SimpleKineticBlockEntity be, Axis axis) { + BlockPos pos = be.getBlockPos(); + float offset = getShaftAngleOffset(axis, pos); + float time = AnimationTickHolder.getRenderTime(be.getLevel()); + float angle = ((time * be.getSpeed() * 3f / 10 + offset) % 360) / 180 * (float) Math.PI; + return angle; + } + + public static float getShaftAngleOffset(Axis axis, BlockPos pos) { + float offset = 0; + double d = (((axis == Axis.X) ? 0 : pos.getX()) + ((axis == Axis.Y) ? 0 : pos.getY()) + + ((axis == Axis.Z) ? 0 : pos.getZ())) % 2; + if (d == 0) + offset = 22.5f; + return offset; + } + +} \ No newline at end of file diff --git a/src/main/java/com/drmangotea/createindustry/blocks/decoration/LithiumTorchBlock.java b/src/main/java/com/drmangotea/createindustry/blocks/decoration/LithiumTorchBlock.java new file mode 100644 index 00000000..66d14ceb --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/decoration/LithiumTorchBlock.java @@ -0,0 +1,100 @@ +package com.drmangotea.createindustry.blocks.decoration; + +import com.drmangotea.createindustry.blocks.electricity.base.WallMountBlock; +import com.google.common.collect.ImmutableMap; +import com.google.common.collect.Maps; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.core.particles.ParticleTypes; +import net.minecraft.util.RandomSource; +import net.minecraft.world.item.context.BlockPlaceContext; +import net.minecraft.world.level.BlockGetter; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.LevelAccessor; +import net.minecraft.world.level.LevelReader; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.level.block.SimpleWaterloggedBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.StateDefinition; +import net.minecraft.world.level.block.state.properties.BlockStateProperties; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.level.material.FluidState; +import net.minecraft.world.level.material.Fluids; +import net.minecraft.world.phys.shapes.CollisionContext; +import net.minecraft.world.phys.shapes.VoxelShape; + +import java.util.Map; + +public class LithiumTorchBlock extends WallMountBlock implements SimpleWaterloggedBlock { + + public static final BooleanProperty WATERLOGGED = BlockStateProperties.WATERLOGGED; + + private static final Map SHAPE = Maps.newEnumMap(ImmutableMap.of(Direction.NORTH, Block.box(5.5D, 3.0D, 11.0D, 10.5D, 13.0D, 16.0D), Direction.SOUTH, Block.box(5.5D, 3.0D, 0.0D, 10.5D, 13.0D, 5.0D), Direction.WEST, Block.box(11.0D, 3.0D, 5.5D, 16.0D, 13.0D, 10.5D), Direction.EAST, Block.box(0.0D, 3.0D, 5.5D, 5.0D, 13.0D, 10.5D),Direction.UP,Block.box(6.0D, 0.0D, 6.0D, 10.0D, 10.0D, 10.0D),Direction.DOWN,Block.box(6.0D, 6.0D, 6.0D, 10.0D, 16.0D, 10.0D))); + public LithiumTorchBlock(Properties pProperties) { + super(pProperties); + } + + public VoxelShape getShape(BlockState pState, BlockGetter pLevel, BlockPos pPos, CollisionContext pContext) { + + + return SHAPE.get(pState.getValue(FACING)); + } + + @Override + public FluidState getFluidState(BlockState p_51475_) { + return p_51475_.getValue(WATERLOGGED) ? Fluids.WATER.getSource(false) : super.getFluidState(p_51475_); + } + + protected void createBlockStateDefinition(StateDefinition.Builder p_55125_) { + p_55125_.add(WATERLOGGED,FACING); + } + + + + public void animateTick(BlockState pState, Level pLevel, BlockPos pPos, RandomSource pRandom) { + Direction direction = pState.getValue(FACING); + double d0 = (double)pPos.getX() + 0.5D; + double d1 = (double)pPos.getY() + 0.7D; + double d2 = (double)pPos.getZ() + 0.5D; + double d3 = 0.22D; + double d4 = 0.27D; + Direction direction1 = direction.getOpposite(); + double y; + if(direction == Direction.DOWN) { + y = d1 - 0.22D * (double) direction1.getStepY(); + }else { + y = d1 + 0.11D; + } + + + pLevel.addParticle(ParticleTypes.SMOKE, d0 + 0.27D * (double)direction1.getStepX(), y, d2 + 0.27D * (double)direction1.getStepZ(), 0.0D, 0.0D, 0.0D); + pLevel.addParticle(ParticleTypes.FLAME, d0 + 0.27D * (double)direction1.getStepX(), y, d2 + 0.27D * (double)direction1.getStepZ(), 0.0D, 0.0D, 0.0D); + } + public BlockState updateShape(BlockState pState, Direction pFacing, BlockState pFacingState, LevelAccessor pLevel, BlockPos pCurrentPos, BlockPos pFacingPos) { + + if (pState.getValue(WATERLOGGED)) { + pLevel.scheduleTick(pCurrentPos, Fluids.WATER, Fluids.WATER.getTickDelay(pLevel)); + } + + return !this.canSurvive(pState, pLevel, pCurrentPos) ? Blocks.AIR.defaultBlockState() : pState; + } + + + public boolean canSurvive(BlockState pState, LevelReader pLevel, BlockPos pPos) { + Direction direction = pState.getValue(FACING); + BlockPos blockpos = pPos.relative(direction.getOpposite()); + BlockState blockstate = pLevel.getBlockState(blockpos); + return blockstate.isFaceSturdy(pLevel, blockpos, direction); + } + + public BlockState getStateForPlacement(BlockPlaceContext pContext) { + + FluidState fluidstate = pContext.getLevel().getFluidState(pContext.getClickedPos()); + boolean flag = fluidstate.getType() == Fluids.WATER; + + return this.defaultBlockState().setValue(FACING, pContext.getClickedFace()).setValue(WATERLOGGED,flag); + } + + +} diff --git a/src/main/java/com/drmangotea/createindustry/blocks/decoration/LithiumTorchGenerator.java b/src/main/java/com/drmangotea/createindustry/blocks/decoration/LithiumTorchGenerator.java new file mode 100644 index 00000000..595702bb --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/decoration/LithiumTorchGenerator.java @@ -0,0 +1,43 @@ +package com.drmangotea.createindustry.blocks.decoration; + +import com.drmangotea.createindustry.blocks.electricity.cable_blocks.DiagonalCableBlock; +import com.simibubi.create.foundation.data.SpecialBlockStateGen; +import com.tterrag.registrate.providers.DataGenContext; +import com.tterrag.registrate.providers.RegistrateBlockstateProvider; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraftforge.client.model.generators.ModelFile; + +import static com.drmangotea.createindustry.blocks.electricity.base.WallMountBlock.FACING; +import static com.simibubi.create.foundation.data.AssetLookup.partialBaseModel; + +public class LithiumTorchGenerator extends SpecialBlockStateGen { + + @Override + protected int getXRotation(BlockState state) { + return state.getValue(FACING)== Direction.DOWN ? 180 : 0; + } + + @Override + protected int getYRotation(BlockState state) { + return switch (state.getValue(FACING)) { + case NORTH -> 270; + case SOUTH -> 90; + case WEST -> 180; + case EAST -> 0; + case DOWN -> 0; + case UP -> 0; + }; + } + + @Override + public ModelFile getModel(DataGenContext ctx, RegistrateBlockstateProvider prov, + BlockState state) { + + + return state.getValue(FACING).getAxis().isHorizontal() ? partialBaseModel(ctx, prov, "wall") + : partialBaseModel(ctx, prov); + } + +} \ No newline at end of file diff --git a/src/main/java/com/drmangotea/createindustry/blocks/decoration/kinetics/SteelGearboxBlock.java b/src/main/java/com/drmangotea/createindustry/blocks/decoration/kinetics/SteelGearboxBlock.java new file mode 100644 index 00000000..a58f753f --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/decoration/kinetics/SteelGearboxBlock.java @@ -0,0 +1,88 @@ +package com.drmangotea.createindustry.blocks.decoration.kinetics; + +import com.drmangotea.createindustry.registry.TFMGBlockEntities; +import com.drmangotea.createindustry.registry.TFMGItems; +import com.simibubi.create.AllBlockEntityTypes; +import com.simibubi.create.AllItems; +import com.simibubi.create.content.kinetics.base.RotatedPillarKineticBlock; +import com.simibubi.create.content.kinetics.gearbox.GearboxBlockEntity; +import com.simibubi.create.foundation.block.IBE; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.core.Direction.Axis; +import net.minecraft.core.NonNullList; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.CreativeModeTab; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.context.BlockPlaceContext; +import net.minecraft.world.level.BlockGetter; +import net.minecraft.world.level.LevelReader; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.material.PushReaction; +import net.minecraft.world.level.storage.loot.LootContext.Builder; +import net.minecraft.world.phys.HitResult; + +import java.util.Arrays; +import java.util.List; + +public class SteelGearboxBlock extends RotatedPillarKineticBlock implements IBE { + + public SteelGearboxBlock(Properties properties) { + super(properties); + } + + @Override + public PushReaction getPistonPushReaction(BlockState state) { + return PushReaction.PUSH_ONLY; + } + + @Override + public void fillItemCategory(CreativeModeTab group, NonNullList items) { + super.fillItemCategory(group, items); + items.add(TFMGItems.STEEL_VERTICAL_GEARBOX.asStack()); + } + + @SuppressWarnings("deprecation") + @Override + public List getDrops(BlockState state, Builder builder) { + if (state.getValue(AXIS).isVertical()) + return super.getDrops(state, builder); + return Arrays.asList(new ItemStack(TFMGItems.STEEL_VERTICAL_GEARBOX.get())); + } + + @Override + public ItemStack getCloneItemStack(BlockState state, HitResult target, BlockGetter world, BlockPos pos, + Player player) { + if (state.getValue(AXIS).isVertical()) + return super.getCloneItemStack(state, target, world, pos, player); + return new ItemStack(TFMGItems.STEEL_VERTICAL_GEARBOX.get()); + } + + @Override + public BlockState getStateForPlacement(BlockPlaceContext context) { + return defaultBlockState().setValue(AXIS, Axis.Y); + } + + // IRotate: + + @Override + public boolean hasShaftTowards(LevelReader world, BlockPos pos, BlockState state, Direction face) { + return face.getAxis() != state.getValue(AXIS); + } + + @Override + public Axis getRotationAxis(BlockState state) { + return state.getValue(AXIS); + } + + @Override + public Class getBlockEntityClass() { + return GearboxBlockEntity.class; + } + + @Override + public BlockEntityType getBlockEntityType() { + return TFMGBlockEntities.STEEL_GEARBOX.get(); + } +} diff --git a/src/main/java/com/drmangotea/createindustry/blocks/decoration/kinetics/SteelVerticalGearboxItem.java b/src/main/java/com/drmangotea/createindustry/blocks/decoration/kinetics/SteelVerticalGearboxItem.java new file mode 100644 index 00000000..044f5e78 --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/decoration/kinetics/SteelVerticalGearboxItem.java @@ -0,0 +1,68 @@ +package com.drmangotea.createindustry.blocks.decoration.kinetics; + +import com.drmangotea.createindustry.registry.TFMGBlocks; +import com.simibubi.create.AllBlocks; +import com.simibubi.create.content.kinetics.base.IRotate; +import com.simibubi.create.foundation.utility.Iterate; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.core.Direction.Axis; +import net.minecraft.core.NonNullList; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.BlockItem; +import net.minecraft.world.item.CreativeModeTab; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BlockStateProperties; + +import java.util.Map; + +public class SteelVerticalGearboxItem extends BlockItem { + + public SteelVerticalGearboxItem(Properties builder) { + super(TFMGBlocks.STEEL_GEARBOX.get(), builder); + } + + + @Override + public String getDescriptionId() { + return "item.createindustry.steel_vertical_gearbox"; + } + + @Override + public void fillItemCategory(CreativeModeTab p_150895_1_, NonNullList p_150895_2_) { + } + + + @Override + public void registerBlocks(Map p_195946_1_, Item p_195946_2_) { + } + + @Override + protected boolean updateCustomBlockEntityTag(BlockPos pos, Level world, Player player, ItemStack stack, BlockState state) { + Axis prefferedAxis = null; + for (Direction side : Iterate.horizontalDirections) { + BlockState blockState = world.getBlockState(pos.relative(side)); + if (blockState.getBlock() instanceof IRotate) { + if (((IRotate) blockState.getBlock()).hasShaftTowards(world, pos.relative(side), blockState, + side.getOpposite())) + if (prefferedAxis != null && prefferedAxis != side.getAxis()) { + prefferedAxis = null; + break; + } else { + prefferedAxis = side.getAxis(); + } + } + } + + Axis axis = prefferedAxis == null ? player.getDirection() + .getClockWise() + .getAxis() : prefferedAxis == Axis.X ? Axis.Z : Axis.X; + world.setBlockAndUpdate(pos, state.setValue(BlockStateProperties.AXIS, axis)); + return super.updateCustomBlockEntityTag(pos, world, player, stack, state); + } + +} diff --git a/src/main/java/com/drmangotea/createindustry/blocks/electricity/base/ConverterBlock.java b/src/main/java/com/drmangotea/createindustry/blocks/electricity/base/ConverterBlock.java new file mode 100644 index 00000000..c805bfad --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/electricity/base/ConverterBlock.java @@ -0,0 +1,40 @@ +package com.drmangotea.createindustry.blocks.electricity.base; + +import com.drmangotea.createindustry.registry.TFMGBlockEntities; +import com.simibubi.create.content.equipment.wrench.IWrenchable; +import com.simibubi.create.foundation.block.IBE; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.StateDefinition; + +public class ConverterBlock extends Block implements IBE, IWrenchable { + + + + public ConverterBlock(Properties p_49795_) { + super(p_49795_); + + } + + + + + + @Override + protected void createBlockStateDefinition(StateDefinition.Builder builder) { + super.createBlockStateDefinition(builder); + + } + + @Override + public Class getBlockEntityClass() { + return ConverterBlockEntity.class; + } + + @Override + public BlockEntityType getBlockEntityType() { + return TFMGBlockEntities.CONVERTER.get(); + } + +} diff --git a/src/main/java/com/drmangotea/createindustry/blocks/electricity/base/ConverterBlockEntity.java b/src/main/java/com/drmangotea/createindustry/blocks/electricity/base/ConverterBlockEntity.java new file mode 100644 index 00000000..219b1b45 --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/electricity/base/ConverterBlockEntity.java @@ -0,0 +1,123 @@ +package com.drmangotea.createindustry.blocks.electricity.base; + +import com.drmangotea.createindustry.CreateTFMG; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.network.chat.Component; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockState; + +import java.util.List; + +public class ConverterBlockEntity extends ElectricBlockEntity { + + public int lastVoltage=0; + + public ConverterBlockEntity(BlockEntityType type, BlockPos pos, BlockState state) { + super(type, pos, state); + } + + + @Override + public boolean addToGoggleTooltip(List tooltip, boolean isPlayerSneaking) { + return false; + } + + + @Override + public void tick() { + super.tick(); + + + + + + } + + @Override + public float maxVoltage() { + return 1000; + } + + //@Override + // public void manageVoltage(){ + // + // if(voltageGeneration()>0) { + // voltage = voltageGeneration(); + // distanceFromSource = 0; + // } + // + // + // + // current = energy.getEnergyStored()/(voltage+1); + // + // if(voltage == 0) + // setDistanceFromSource(Integer.MAX_VALUE); + // + // + // + // if(voltage>maxVoltage()){ + // explode(); + // voltage = 0; + // } + // + // + // + // } + + @Override + public int voltageGeneration() { + + + + + + + + + if(energy.getEnergyStored()==0) { + return 0; + } + + + + return 255; + } + + @Override + public int FECapacity() { + return 10000; + } + @Override + public int transferSpeed() { + return 1000; + } + + + //@Override + //public boolean isStorage() { + // return true; + //} + + @Override + public boolean hasElectricitySlot(Direction direction) { + return direction.getAxis().isVertical(); + } + + + //@Override + //public void write(CompoundTag compound, boolean clientPacket) { + // super.write(compound, clientPacket); +// + // compound.putInt("LastVoltage",lastVoltage); + //} +// + //@Override + //protected void read(CompoundTag compound, boolean clientPacket) { + // super.read(compound, clientPacket); +// + // lastVoltage = compound.getInt("LastVoltage"); +// + //} +} diff --git a/src/main/java/com/drmangotea/createindustry/blocks/electricity/base/ElectricBlockEntity.java b/src/main/java/com/drmangotea/createindustry/blocks/electricity/base/ElectricBlockEntity.java new file mode 100644 index 00000000..a4e094a2 --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/electricity/base/ElectricBlockEntity.java @@ -0,0 +1,314 @@ +package com.drmangotea.createindustry.blocks.electricity.base; + +import com.drmangotea.createindustry.base.util.TFMGUtils; +import com.simibubi.create.content.equipment.goggles.IHaveGoggleInformation; +import com.simibubi.create.foundation.blockEntity.SmartBlockEntity; +import com.simibubi.create.foundation.blockEntity.behaviour.BlockEntityBehaviour; +import com.simibubi.create.foundation.utility.Lang; +import net.minecraft.ChatFormatting; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.network.chat.Component; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraftforge.common.capabilities.Capability; +import net.minecraftforge.common.capabilities.ForgeCapabilities; +import net.minecraftforge.common.util.LazyOptional; +import net.minecraftforge.energy.IEnergyStorage; +import org.jetbrains.annotations.NotNull; + +import javax.annotation.Nullable; +import java.util.List; + +public class ElectricBlockEntity extends SmartBlockEntity implements IHaveGoggleInformation, IElectricBlock { + + public int voltage=0; + public int current =0; + + private boolean gotFElastTick = false; + + public int distanceFromSource = Integer.MAX_VALUE; + + + + + private LazyOptional lazyEnergyHandler = LazyOptional.empty(); + + public final TFMGForgeEnergyStorage energy = createEnergyStorage(); + + + + + public ElectricBlockEntity(BlockEntityType type, BlockPos pos, BlockState state) { + super(type, pos, state); + + } + + public void tick(){ + super.tick(); + + energy.receiveEnergy(feGeneration(),false); + + + manageVoltage(); + + + + + + + sendCharge(level,getBlockPos()); + + + + } + + + + + + + public TFMGForgeEnergyStorage getEnergy() { + return energy; + } + + @Override + public void onLoad() { + super.onLoad(); + lazyEnergyHandler = LazyOptional.of(() -> energy); + } + + @Override + public void invalidateCaps() { + super.invalidateCaps(); + lazyEnergyHandler.invalidate(); + } + + @Override + public @NotNull LazyOptional getCapability(@NotNull Capability cap, @Nullable Direction side) { + + + if (cap == ForgeCapabilities.ENERGY&&side == null) { + return lazyEnergyHandler.cast(); + } else + + if (cap == ForgeCapabilities.ENERGY&&hasElectricitySlot(side)) { + return lazyEnergyHandler.cast(); + } + + return super.getCapability(cap, side); + } + + + public void manageVoltage(){ + + if(voltageGeneration()>0) { + voltage = voltageGeneration(); + distanceFromSource = 0; + } + if(distanceFromSource == Integer.MAX_VALUE) + voltage = 0; + + + current = energy.getEnergyStored()/(voltage+1); + + + + + if(voltage>maxVoltage()){ + voltage = 0; + explode(); + voltage = 0; + } + + + + } + + + + + + @Override + public void addBehaviours(List behaviours) { + + } + + + @Override + @SuppressWarnings("removal") + public boolean addToGoggleTooltip(List tooltip, boolean isPlayerSneaking) { + + //if(energy.getEnergyStored()==0&&voltageGeneration()==0) + // Lang.translate("goggles.electric_machine.no_power") + // .style(ChatFormatting.RED) + // .forGoggles(tooltip, 1); +// +// + //Lang.translate("goggles.blast_furnace.height", voltage) + // .style(ChatFormatting.DARK_PURPLE) + // .forGoggles(tooltip, 1); +// + //Lang.translate("goggles.blast_furnace.height", current) + // .style(ChatFormatting.LIGHT_PURPLE) + // .forGoggles(tooltip, 1); +// + //Lang.translate("goggles.blast_furnace.height", energy.getEnergyStored()) + // .style(ChatFormatting.DARK_RED) + // .forGoggles(tooltip, 1); +// + //Lang.translate("goggles.blast_furnace.height", distanceFromSource) + // .style(ChatFormatting.DARK_AQUA) + // .forGoggles(tooltip, 1); + + + return true; + } + + + + + + @Override + public float internalResistance() { + return 0; + } + + @Override + public int getVoltage() { + return voltage; + } + + @Override + public boolean gotFElastTick(int value) { + + + + gotFElastTick = value == 3 ? gotFElastTick : value == 1; + + return gotFElastTick; + } + + @Override + public int getCurrent() { + return current; + } + + + + + + @Override + public void addVoltage(float amount) { + + + + // if(voltageGeneration()>0) + // return; + + + voltage = (int) amount; + + //voltage = (int) ((getVoltage()+amount)/2); + } + + + public void addVoltageFromNonTFMGBlock() { + + //if(voltage<250) { + // voltage = 250; +// + //} + } + + @Override + public TFMGForgeEnergyStorage getForgeEnergy() { + return energy; + } + + @Override + public boolean hasElectricitySlot(Direction direction) { + return false; + } + + + + + + + @Override + public float maxVoltage() { + return 500; + } + + @Override + public void explode() { + TFMGUtils.createFireExplosion(level,null, getBlockPos(),10,1.5f); + } + + @Override + public int FECapacity() { + return 10000; + } + + @Override + public int getDistanceFromSource() { + return distanceFromSource; + } + + + + @Override + public void setDistanceFromSource(int value) { + distanceFromSource = value; + // sendStuff(); + } + + @Override + public void sendStuff() { + sendData(); + setChanged(); + } + + + @Override + public void write(CompoundTag compound, boolean clientPacket) { + super.write(compound, clientPacket); + + writeElectrity(compound); + + ; + } + + @Override + protected void read(CompoundTag compound, boolean clientPacket) { + super.read(compound, clientPacket); + voltage = compound.getInt("Voltage"); + current = compound.getInt("Current"); + + distanceFromSource = compound.getInt("DistanceFromSource"); + + + + energy.setEnergy(compound.getInt("ForgeEnergy")); + + } + + + + @Override + public int feGeneration() { + return 0; + } + + @Override + public int voltageGeneration() { + return 0; + } + + @Override + public int transferSpeed() { + return 3000; + } +} diff --git a/src/main/java/com/drmangotea/createindustry/blocks/electricity/base/IElectricBlock.java b/src/main/java/com/drmangotea/createindustry/blocks/electricity/base/IElectricBlock.java new file mode 100644 index 00000000..274ae9c6 --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/electricity/base/IElectricBlock.java @@ -0,0 +1,332 @@ +package com.drmangotea.createindustry.blocks.electricity.base; + +import com.drmangotea.createindustry.CreateTFMG; +import com.drmangotea.createindustry.blocks.electricity.capacitor.CapacitorBlockEntity; +import com.drmangotea.createindustry.blocks.electricity.resistors.ResistorBlockEntity; +import com.drmangotea.createindustry.registry.TFMGBlocks; +import com.simibubi.create.Create; +import com.simibubi.create.foundation.utility.Iterate; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.level.block.LeverBlock; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraftforge.common.capabilities.ForgeCapabilities; +import net.minecraftforge.energy.EnergyStorage; + +public interface IElectricBlock { + + + + float internalResistance(); + + int getVoltage(); + + boolean gotFElastTick(int value); + + int getCurrent(); + + + int feGeneration(); + + int voltageGeneration(); + + int transferSpeed(); + + + void addVoltage(float amount); + + default float getCharge(){ + return getCurrent()*getVoltage(); + } + + default boolean isStorage(){ + return false; + } + + TFMGForgeEnergyStorage getForgeEnergy(); + + boolean hasElectricitySlot(Direction direction); + + + float maxVoltage(); + + void explode(); + + int FECapacity(); + + + int getDistanceFromSource(); + + + + void setDistanceFromSource(int value); + + void sendStuff(); + + default boolean canBeDisabled(){ + return false; + } + + default boolean hasSignal() { + return false; + } + + default void sendCharge(Level level, BlockPos pos){ + + int lowestDistance = Integer.MAX_VALUE; + + boolean getsVoltageFromNonTFMGBlock = false; + + + + if(canBeDisabled()){ + + + if(hasSignal()) { + setDistanceFromSource(Integer.MAX_VALUE); + return; + } + } + + for(Direction direction : Direction.values()){ + if(hasElectricitySlot(direction)){ + BlockEntity be1 =level.getBlockEntity(pos.relative(direction)); + + if(be1 instanceof IElectricBlock be2){ + + + + if(be2.hasElectricitySlot(direction.getOpposite())) { + + + + int distance = be2.getDistanceFromSource(); + + + if(!isStorage()&&be2.isStorage()&&direction == Direction.UP) + distance = Integer.MAX_VALUE; + + + if(getVoltage()==0) { + if(distance>getDistanceFromSource()) + be2.addVoltage(getVoltage()); + } + + if(!(be2 instanceof ConverterBlockEntity)) + if(!(isStorage()&&direction == Direction.DOWN)) + if(!(!isStorage()&&be2.isStorage()&&direction == Direction.DOWN)) + if(getVoltage()!=0) { + // if(Create.RANDOM.nextInt(3) ==1) + transferCharge(be2); + if(distance>getDistanceFromSource()){ + be2.addVoltage(getVoltage()); + } + } + + lowestDistance = Math.min(lowestDistance,distance); + + } + if(direction.getAxis().isHorizontal()) { + if (be2 instanceof ResistorBlockEntity resistorBE) + if (resistorBE.hasElectricitySlot(direction) && resistorBE.getVoltageOutput() > 0) { + lowestDistance = 0; + addVoltage(resistorBE.getVoltageOutput()); + } + + } + + + + }else + if(be1!=null) { + + if (be1.getCapability(ForgeCapabilities.ENERGY, direction.getOpposite()).isPresent() && getForgeEnergy().getEnergyStored() > 0) { + + if (!(be1.getCapability(ForgeCapabilities.ENERGY).orElse(new EnergyStorage(0)) instanceof TFMGForgeEnergyStorage) + && be1.getCapability(ForgeCapabilities.ENERGY).orElse(new EnergyStorage(0)).getEnergyStored() > 0 && + be1.getCapability(ForgeCapabilities.ENERGY, direction.getOpposite()).orElse(new EnergyStorage(0)).canReceive() + ) { + + // lowestDistance = 0; + // setDistanceFromSource(1); + // getsVoltageFromNonTFMGBlock = true; + } + + } + } + + } + + } + + + + + if (lowestDistance != Integer.MAX_VALUE&&voltageGeneration()==0) { + + if( lowestDistance >= getDistanceFromSource()){ + + + }else { + if(Create.RANDOM.nextInt(2)==0) + setDistanceFromSource(lowestDistance + 1); + + + } + // sendStuff(); + } + + + + //else distanceFromSource = Integer.MAX_VALUE; + if(voltageGeneration()>0){ + setDistanceFromSource(0); + // sendStuff(); + } + + if(!level.isClientSide) + if(lowestDistance == getDistanceFromSource()+1&&this.voltageGeneration()==0&&!getsVoltageFromNonTFMGBlock){ + setDistanceFromSource(Integer.MAX_VALUE); + // sendStuff(); + } + + + + if(!level.isClientSide) + if(getDistanceFromSource()0&&this.voltageGeneration()==0&&!getsVoltageFromNonTFMGBlock){ + setDistanceFromSource(Integer.MAX_VALUE); + // sendStuff(); +// + } + if(!level.isClientSide) + if(lowestDistance == Integer.MAX_VALUE && voltageGeneration() == 0&&!getsVoltageFromNonTFMGBlock){ + setDistanceFromSource(Integer.MAX_VALUE); + // sendStuff(); + } + + + //if(voltageGeneration()>0) + // setDistanceFromSource(0); + + if(lowestDistance>=getDistanceFromSource()&&getDistanceFromSource()!=0) + setDistanceFromSource(Integer.MAX_VALUE); + + if(getDistanceFromSource()==Integer.MAX_VALUE) + addVoltage(0); + } + + + + default void transferCharge(IElectricBlock be) { + + + + if(!isStorage()) { + if (be.getDistanceFromSource() > getDistanceFromSource()||be.isStorage()) { + + //int amount = getForgeEnergy().extractEnergy(transferSpeed(), true); + //int amount2 = be.getForgeEnergy().receiveEnergy( transferSpeed(), true); + + + + + + int amount = getForgeEnergy().extractEnergy(transferSpeed()*100, true); + int amount2 = be.getForgeEnergy().receiveEnergy(transferSpeed()*100, true); + + + getForgeEnergy().extractEnergy(Math.min(amount, amount2), false); + be.getForgeEnergy().receiveEnergy(Math.min(amount, amount2), false); + } + if(be.getDistanceFromSource()==getDistanceFromSource()&&getForgeEnergy().getEnergyStored()>be.getForgeEnergy().getEnergyStored()){ + + int diff = Math.abs(getForgeEnergy().getEnergyStored()-be.getForgeEnergy().getEnergyStored()); + + int amount = getForgeEnergy().extractEnergy(diff / 2, true); + int amount2 = be.getForgeEnergy().receiveEnergy( diff / 2, true); + getForgeEnergy().extractEnergy( Math.min(amount,amount2), false); + be.getForgeEnergy().receiveEnergy( Math.min(amount,amount2), false); + } + + + } + + if(isStorage()){ + if(be.isStorage()){ + + if(!be.isStorage()||(be.isStorage()&&be.getForgeEnergy().getEnergyStored()=getDistanceFromSource()) { + int amount = getForgeEnergy().extractEnergy(transferSpeed()*10, true); + int amount2 = be.getForgeEnergy().receiveEnergy(transferSpeed()*10, true); + + + getForgeEnergy().extractEnergy(Math.min(amount, amount2), false); + be.getForgeEnergy().receiveEnergy(Math.min(amount, amount2), false); + } + + }else { + int amount = getForgeEnergy().extractEnergy(transferSpeed(), true); + int amount2 = be.getForgeEnergy().receiveEnergy(transferSpeed(), true); + + + //if(be.getForgeEnergy().getEnergyStored() lazyEnergyHandler = LazyOptional.empty(); + + public final TFMGForgeEnergyStorage energy = createEnergyStorage(); + + + + public KineticElectricBlockEntity(BlockEntityType typeIn, BlockPos pos, BlockState state) { + super(typeIn, pos, state); + } + + public void tick(){ + super.tick(); + + + energy.receiveEnergy(feGeneration(),false); + + manageVoltage(); + + + + + + + sendCharge(level,getBlockPos()); + + + + } + + + + + + + public TFMGForgeEnergyStorage getEnergy() { + return energy; + } + + @Override + public void onLoad() { + super.onLoad(); + lazyEnergyHandler = LazyOptional.of(() -> energy); + } + + @Override + public void invalidateCaps() { + super.invalidateCaps(); + lazyEnergyHandler.invalidate(); + } + + @Override + public @NotNull LazyOptional getCapability(@NotNull Capability cap, @Nullable Direction side) { + + + if (cap == ForgeCapabilities.ENERGY&&side == null) { + return lazyEnergyHandler.cast(); + } else + + if (cap == ForgeCapabilities.ENERGY&&hasElectricitySlot(side)) { + return lazyEnergyHandler.cast(); + } + + return super.getCapability(cap, side); + } + + + public void manageVoltage(){ + + if(voltageGeneration()>0) { + voltage = voltageGeneration(); + distanceFromSource = 0; + } + if(distanceFromSource == Integer.MAX_VALUE) + voltage = 0; + + + current = energy.getEnergyStored()/(voltage+1); + + + + + if(voltage>maxVoltage()){ + explode(); + voltage = 0; + } + + + + } + + + + + + @Override + public void addBehaviours(List behaviours) { + + } + + + + + + + + @Override + public float internalResistance() { + return 0; + } + + @Override + public int getVoltage() { + return voltage; + } + + @Override + public boolean gotFElastTick(int value) { + + + + gotFElastTick = value == 3 ? gotFElastTick : value == 1; + + return gotFElastTick; + } + + @Override + public int getCurrent() { + return current; + } + + + + + + @Override + public void addVoltage(float amount) { + + + + if(voltageGeneration()>0) + return; + + + voltage = (int) amount; + + //voltage = (int) ((getVoltage()+amount)/2); + } + + + public void addVoltageFromNonTFMGBlock() { + + //if(voltage<250) { + // voltage = 250; +// + //} + } + + @Override + public TFMGForgeEnergyStorage getForgeEnergy() { + return energy; + } + + @Override + public boolean hasElectricitySlot(Direction direction) { + return false; + } + + + + + + + @Override + public float maxVoltage() { + return 500; + } + + @Override + public void explode() { + TFMGUtils.createFireExplosion(level,null, getBlockPos(),10,1.5f); + } + + @Override + public int FECapacity() { + return 5000; + } + + @Override + public int getDistanceFromSource() { + return distanceFromSource; + } + + + + @Override + public void setDistanceFromSource(int value) { + distanceFromSource = value; + sendStuff(); + } + + @Override + public void sendStuff() { + sendData(); + setChanged(); + } + + + @Override + public void write(CompoundTag compound, boolean clientPacket) { + super.write(compound, clientPacket); + + writeElectrity(compound); + + ; + } + + @Override + protected void read(CompoundTag compound, boolean clientPacket) { + super.read(compound, clientPacket); + voltage = compound.getInt("Voltage"); + current = compound.getInt("Current"); + + distanceFromSource = compound.getInt("DistanceFromSource"); + + + + energy.setEnergy(compound.getInt("ForgeEnergy")); + + } + + + + @Override + public int feGeneration() { + return 0; + } + + @Override + public int voltageGeneration() { + return 0; + } + + @Override + public int transferSpeed() { + return 1000; + } + +} diff --git a/src/main/java/com/drmangotea/createindustry/blocks/electricity/base/TFMGForgeEnergyStorage.java b/src/main/java/com/drmangotea/createindustry/blocks/electricity/base/TFMGForgeEnergyStorage.java new file mode 100644 index 00000000..9482bf28 --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/electricity/base/TFMGForgeEnergyStorage.java @@ -0,0 +1,51 @@ +package com.drmangotea.createindustry.blocks.electricity.base; + +import net.minecraftforge.energy.EnergyStorage; + +public abstract class TFMGForgeEnergyStorage extends EnergyStorage { + + + + + + + + public TFMGForgeEnergyStorage(int capacity, int maxTransfer) { + super(capacity, maxTransfer); + + } + + @Override + public int extractEnergy(int maxExtract, boolean simulate) { + int extractedEnergy = super.extractEnergy(maxExtract, simulate); + if(extractedEnergy != 0) { + onEnergyChanged(maxExtract*-1,false); + } + + return extractedEnergy; + } + + @Override + public int receiveEnergy(int maxReceive, boolean simulate) { + int receiveEnergy = super.receiveEnergy(maxReceive, simulate); + if(receiveEnergy != 0) { + onEnergyChanged(receiveEnergy,false); + } + + + + + return receiveEnergy; + } + + public int setEnergy(int energy) { + this.energy = energy; + + if(energy>0) + onEnergyChanged(energy,true); + + return 0; + } + + public abstract void onEnergyChanged(int amount, boolean setEnergy); +} \ No newline at end of file diff --git a/src/main/java/com/drmangotea/createindustry/blocks/electricity/base/WallMountBlock.java b/src/main/java/com/drmangotea/createindustry/blocks/electricity/base/WallMountBlock.java new file mode 100644 index 00000000..b5137014 --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/electricity/base/WallMountBlock.java @@ -0,0 +1,45 @@ +package com.drmangotea.createindustry.blocks.electricity.base; + +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.world.item.context.BlockPlaceContext; +import net.minecraft.world.level.LevelReader; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.StateDefinition; +import net.minecraft.world.level.block.state.properties.BlockStateProperties; +import net.minecraft.world.level.block.state.properties.DirectionProperty; + +import javax.annotation.Nullable; + +public class WallMountBlock extends Block { + + public static final DirectionProperty FACING = BlockStateProperties.FACING; + public WallMountBlock(Properties p_49795_) { + super(p_49795_); + // this.registerDefaultState(this.stateDefinition.any().setValue(FACING,Direction.UP)); + } + + @Override + protected void createBlockStateDefinition(StateDefinition.Builder builder) { + super.createBlockStateDefinition(builder.add(FACING)); + } + @Nullable + public BlockState getStateForPlacement(BlockPlaceContext p_58126_) { + BlockState blockstate = this.defaultBlockState(); + LevelReader levelreader = p_58126_.getLevel(); + BlockPos blockpos = p_58126_.getClickedPos(); + Direction[] adirection = p_58126_.getNearestLookingDirections(); + + for(Direction direction : adirection) { + Direction direction1 = direction.getOpposite(); + blockstate = blockstate.setValue(FACING, direction1); + if (blockstate.canSurvive(levelreader, blockpos)) { + return blockstate; + } + + } + + return null; + } +} diff --git a/src/main/java/com/drmangotea/createindustry/blocks/electricity/base/cables/CableConnectorBlock.java b/src/main/java/com/drmangotea/createindustry/blocks/electricity/base/cables/CableConnectorBlock.java new file mode 100644 index 00000000..5781722e --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/electricity/base/cables/CableConnectorBlock.java @@ -0,0 +1,96 @@ +package com.drmangotea.createindustry.blocks.electricity.base.cables; + +import com.drmangotea.createindustry.CreateTFMG; +import com.drmangotea.createindustry.blocks.electricity.base.IHaveCables; +import com.drmangotea.createindustry.blocks.electricity.base.WallMountBlock; +import com.drmangotea.createindustry.registry.TFMGBlockEntities; +import com.drmangotea.createindustry.registry.TFMGItems; +import com.drmangotea.createindustry.registry.TFMGShapes; +import com.simibubi.create.content.equipment.wrench.IWrenchable; +import com.simibubi.create.foundation.block.IBE; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.entity.item.ItemEntity; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.context.UseOnContext; +import net.minecraft.world.level.BlockGetter; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.LevelAccessor; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.StateDefinition; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.level.storage.loot.LootContext; +import net.minecraft.world.level.storage.loot.LootTable; +import net.minecraft.world.level.storage.loot.parameters.LootContextParamSets; +import net.minecraft.world.level.storage.loot.parameters.LootContextParams; +import net.minecraft.world.phys.shapes.CollisionContext; +import net.minecraft.world.phys.shapes.VoxelShape; +import org.jetbrains.annotations.Nullable; + +import java.util.List; + +public class CableConnectorBlock extends WallMountBlock implements IBE, IHaveCables, IWrenchable { + + + public static final BooleanProperty EXTENSION = BooleanProperty.create("extension"); + + public CableConnectorBlock(Properties p_49795_) { + super(p_49795_); + registerDefaultState(defaultBlockState().setValue(EXTENSION, false)); + } + @Override + public VoxelShape getShape(BlockState pState, BlockGetter worldIn, BlockPos pos, CollisionContext context) { + if(pState.getValue(EXTENSION)) + return TFMGShapes.CABLE_CONNECTOR_MIDDLE.get(pState.getValue(FACING)); + + + return TFMGShapes.CABLE_CONNECTOR.get(pState.getValue(FACING)); + + } + @Override + public InteractionResult onWrenched(BlockState state, UseOnContext context) { + + Level level = context.getLevel(); + BlockPos pos = context.getClickedPos(); + Direction direction = context.getClickedFace(); + + + return onBlockEntityUse(level, pos, be -> { + + be.sendStuff(); + return InteractionResult.SUCCESS; + + + }); + + + } + + + @Override + public void onRemove(BlockState state, Level worldIn, BlockPos pos, BlockState newState, boolean isMoving) { + IBE.onRemove(state, worldIn, pos, newState); + } + + @Override + protected void createBlockStateDefinition(StateDefinition.Builder builder) { + super.createBlockStateDefinition(builder); + builder.add(EXTENSION); + } + @Override + public Class getBlockEntityClass() { + return CableConnectorBlockEntity.class; + } + + @Override + public BlockEntityType getBlockEntityType() { + return TFMGBlockEntities.CABLE_CONNECTOR.get(); + } +} diff --git a/src/main/java/com/drmangotea/createindustry/blocks/electricity/base/cables/CableConnectorBlockEntity.java b/src/main/java/com/drmangotea/createindustry/blocks/electricity/base/cables/CableConnectorBlockEntity.java new file mode 100644 index 00000000..145ed725 --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/electricity/base/cables/CableConnectorBlockEntity.java @@ -0,0 +1,407 @@ +package com.drmangotea.createindustry.blocks.electricity.base.cables; + +import com.drmangotea.createindustry.CreateTFMG; +import com.drmangotea.createindustry.base.TFMGTools; +import com.drmangotea.createindustry.blocks.electricity.base.*; +import com.drmangotea.createindustry.blocks.electricity.resistors.ResistorBlockEntity; +import com.drmangotea.createindustry.registry.TFMGItems; +import com.simibubi.create.Create; +import com.simibubi.create.foundation.blockEntity.behaviour.BlockEntityBehaviour; +import com.simibubi.create.foundation.utility.Lang; +import net.minecraft.ChatFormatting; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.network.chat.Component; +import net.minecraft.world.entity.item.ItemEntity; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.phys.AABB; +import net.minecraftforge.common.capabilities.ForgeCapabilities; +import net.minecraftforge.energy.EnergyStorage; + +import java.util.ArrayList; +import java.util.List; + + +public class CableConnectorBlockEntity extends ElectricBlockEntity { + + + Player player = null; + + + + public ArrayList wireConnections = new ArrayList<>(); + + public CableConnectorBlockEntity(BlockEntityType type, BlockPos pos, BlockState state) { + super(type, pos, state); + } + @Override + public float maxVoltage() { + return 6000; + } + public void tick(){ + super.tick(); + + + + + + + + updateBlockBelow(); + + spreadCurrent(); +// + sendData(); + setChanged(); +// + + if(Create.RANDOM.nextBoolean()) + removeInvalidConnections(); + changeToExtension(); + + + } + + + @Override + public void destroy() { + super.destroy(); + + + + ItemEntity itemToSpawn = new ItemEntity((Level) level, getBlockPos().getX() + 0.5f, getBlockPos().getY() + 0.5f, getBlockPos().getZ() + 0.5f, new ItemStack(TFMGItems.COPPER_CABLE.get(),wireConnections.toArray().length)); + if(itemToSpawn.getItem().getCount()==0) + return; + level.addFreshEntity(itemToSpawn); + + + + + + } + + + public void changeToExtension(){ + + BlockState state = level.getBlockState(getBlockPos().relative(getBlockState().getValue(WallMountBlock.FACING))); + + if(state.getBlock() == getBlockState().getBlock()){ + if(state.getValue(WallMountBlock.FACING)==getBlockState().getValue(WallMountBlock.FACING)) + if(!getBlockState().getValue(CableConnectorBlock.EXTENSION)) + level.setBlock(getBlockPos(),getBlockState().setValue(CableConnectorBlock.EXTENSION,true),2); + } else + if(getBlockState().getValue(CableConnectorBlock.EXTENSION)) + level.setBlock(getBlockPos(),getBlockState().setValue(CableConnectorBlock.EXTENSION,false),2); + } + + + public void removeInvalidConnections(){ + + + wireConnections.removeIf(connection -> !(level.getBlockState(connection.point1).getBlock() instanceof IHaveCables) + || !(level.getBlockState(connection.point2).getBlock() instanceof IHaveCables)); + + + } + + @Override + public void write(CompoundTag compound, boolean clientPacket) { + super.write(compound, clientPacket); + + int value = 0; + + for(WireConnection connection : wireConnections){ + value++; + connection.saveConnection(compound,value-1); + + } + compound.putInt("WireCount",wireConnections.toArray().length); + } + + @Override + protected void read(CompoundTag compound, boolean clientPacket) { + super.read(compound, clientPacket); + + // sendData(); + addConnection(WireManager.Conductor.COPPER,getBlockPos().above(2).north(),true); + // wireConnections.add(new WireConnection(WireManager.Conductor.COPPER,1,getBlockPos().above(2).north(),this.getBlockPos(),true)); + if(wireConnections.isEmpty()) + return; + + wireConnections = new ArrayList<>(); + for(int i = 0; i < compound.getInt("WireCount");i++){ + + // level.setBlock(getBlockPos().above(1+i),Blocks.REINFORCED_DEEPSLATE.defaultBlockState(),3); + + + + + + BlockPos pos = new BlockPos(compound.getInt("X1"+i),compound.getInt("Y1"+i),compound.getInt("Z1"+i)); + // level.setBlock(new BlockPos(compound.getInt("X1"+i),compound.getInt("Y1"+i),compound.getInt("Z1"+i)), Blocks.REINFORCED_DEEPSLATE.defaultBlockState(),3); + if(pos == this.getBlockPos()) + pos = new BlockPos(compound.getInt("X2"+i),compound.getInt("Y2"+i),compound.getInt("Z2"+i)); + + + // level.setBlock(new BlockPos(compound.getInt("X2"+i),compound.getInt("Y2"+i),compound.getInt("Z2"+i)), Blocks.GOLD_BLOCK.defaultBlockState(),3); + + +// CreateTFMG.LOGGER.debug(" X: "+pos.getX()+" Y: "+pos.getY()+" Z: "+pos.getZ()); + + addConnection(WireManager.Conductor.COPPER,pos,compound.getBoolean("ShouldRender"+i)); + + + + } + + + + + } + @Override + public void sendCharge(Level level, BlockPos pos){ + + int lowestDistance = Integer.MAX_VALUE; + + boolean getsVoltageFromNonTFMGBlock = false; + + + + + for(Direction direction : Direction.values()){ + if(hasElectricitySlot(direction)){ + BlockEntity be1 =level.getBlockEntity(pos.relative(direction)); + + if(be1 instanceof IElectricBlock be2){ + + + + if(be2.hasElectricitySlot(direction.getOpposite())) { + + + + int distance = be2.getDistanceFromSource(); + + + if(!isStorage()&&be2.isStorage()&&direction == Direction.UP) + distance = Integer.MAX_VALUE; + + + if(getVoltage()==0) { + if(distance>getDistanceFromSource()) + be2.addVoltage(getVoltage()); + } + + + if(!(isStorage()&&direction == Direction.DOWN)) + if(!(!isStorage()&&be2.isStorage()&&direction == Direction.DOWN)) + if(getVoltage()!=0) { + // if(Create.RANDOM.nextInt(3)==2) + transferCharge(be2); + if(distance>getDistanceFromSource()){ + be2.addVoltage(getVoltage()); + } + } + + lowestDistance = Math.min(lowestDistance,distance); + + } + if(direction.getAxis().isHorizontal()) { + if (be2 instanceof ResistorBlockEntity resistorBE) + if (resistorBE.hasElectricitySlot(direction) && resistorBE.getVoltageOutput() > 0) { + lowestDistance = 0; + addVoltage(resistorBE.getVoltageOutput()); + } + + } + + + + }else + if(be1!=null) { + + if (be1.getCapability(ForgeCapabilities.ENERGY, direction.getOpposite()).isPresent() && getForgeEnergy().getEnergyStored() > 0) { + + if (!(be1.getCapability(ForgeCapabilities.ENERGY).orElse(new EnergyStorage(0)) instanceof TFMGForgeEnergyStorage) + && be1.getCapability(ForgeCapabilities.ENERGY).orElse(new EnergyStorage(0)).getEnergyStored() > 0 && + be1.getCapability(ForgeCapabilities.ENERGY, direction.getOpposite()).orElse(new EnergyStorage(0)).canReceive() + ) { + + // lowestDistance = 0; + // setDistanceFromSource(1); + // getsVoltageFromNonTFMGBlock = true; + } + + } + } + + } + + } + for(WireConnection connection : wireConnections){ + + BlockPos pos1 = connection.point1 == getBlockPos() ? connection.point2 : connection.point1; + + if(level.getBlockEntity(pos1) instanceof CableConnectorBlockEntity) + lowestDistance = Math.min(lowestDistance,((CableConnectorBlockEntity)level.getBlockEntity(pos1)).getDistanceFromSource()); + + } + + + + + if (lowestDistance != Integer.MAX_VALUE&&voltageGeneration()==0) { + + if( lowestDistance >= getDistanceFromSource()){ + + + }else { + if(Create.RANDOM.nextInt(2)==0) + setDistanceFromSource(lowestDistance + 1); + + + } + //sendStuff(); + } + + + + //else distanceFromSource = Integer.MAX_VALUE; + if(voltageGeneration()>0){ + setDistanceFromSource(0); + //sendStuff(); + } + + if(!level.isClientSide) + if(lowestDistance == getDistanceFromSource()+1&&this.voltageGeneration()==0&&!getsVoltageFromNonTFMGBlock){ + setDistanceFromSource(Integer.MAX_VALUE); + // sendStuff(); + } + + + + if(!level.isClientSide) + if(getDistanceFromSource()0&&this.voltageGeneration()==0&&!getsVoltageFromNonTFMGBlock){ + setDistanceFromSource(Integer.MAX_VALUE); + // sendStuff(); +// + } + if(!level.isClientSide) + if(lowestDistance == Integer.MAX_VALUE && voltageGeneration() == 0&&!getsVoltageFromNonTFMGBlock){ + setDistanceFromSource(Integer.MAX_VALUE); + // sendStuff(); + } + + + //if(voltageGeneration()>0) + // setDistanceFromSource(0); + + if(lowestDistance>=getDistanceFromSource()&&getDistanceFromSource()!=0) + setDistanceFromSource(Integer.MAX_VALUE); + + if(getDistanceFromSource()==Integer.MAX_VALUE) + addVoltage(0); + } + public void spreadCurrent(){ + + for(WireConnection connection : wireConnections){ + BlockPos pos = connection.point1; + + if(connection.point1 == this.getBlockPos()) + pos = connection.point2; + + if(level.getBlockEntity(pos) instanceof CableConnectorBlockEntity be) { + transferCharge(be); + + + if(be.getDistanceFromSource()>getDistanceFromSource()) + be.addVoltage(getVoltage()); +/// + BlockPos pos2 = pos == connection.point1 ? connection.point2 : connection.point1; + CableConnectorBlockEntity be2= this; + if(level.getBlockEntity(pos2) instanceof CableConnectorBlockEntity) + be2= (CableConnectorBlockEntity) level.getBlockEntity(pos2); + + /// + + + + + + // //if(be.getDistanceFromSource() == Integer.MAX_VALUE){ + // if(getDistanceFromSource() != Integer.MAX_VALUE) { + // // be.setDistanceFromSource(getDistanceFromSource() + 1); + // be.setDistanceFromSource(Create.RANDOM.nextInt(200)); + // be2.sendStuff(); + // be.sendStuff(); + // be2.updateBlockBelow(); + // be.updateBlockBelow(); +// + // // level.setBlock(be.getBlockPos(),Blocks.DIAMOND_BLOCK.defaultBlockState(),3); + // // level.setBlock(be2.getBlockPos(),Blocks.GOLD_BLOCK.defaultBlockState(),3); +// + // } + // // } + + } + + + + + } + + } + + public void updateBlockBelow(){ + if(level.getBlockEntity(getBlockPos().relative(getBlockState().getValue(WallMountBlock.FACING).getOpposite())) instanceof IElectricBlock be){ + be.sendStuff(); + } + + } + + + + @Override + public void addBehaviours(List behaviours) { + + } + + @Override + protected AABB createRenderBoundingBox() { + return new AABB(this.getBlockPos()).inflate(30); + } + + + public boolean addConnection(WireManager.Conductor material, BlockPos pos,boolean shouldRender){ + + float lenght = TFMGTools.getDistance(this.getBlockPos(),pos,false); + + + + if(lenght<25) { + wireConnections.add(new WireConnection(material, lenght, pos, this.getBlockPos(), shouldRender)); + sendData(); + setChanged(); + return true; + }else { + sendData(); + setChanged(); + return false; + } + + + } + + @Override + public boolean hasElectricitySlot(Direction direction) { + return direction == getBlockState().getValue(WallMountBlock.FACING).getOpposite(); + } + + +} diff --git a/src/main/java/com/drmangotea/createindustry/blocks/electricity/base/cables/CableConnectorGenerator.java b/src/main/java/com/drmangotea/createindustry/blocks/electricity/base/cables/CableConnectorGenerator.java new file mode 100644 index 00000000..ef9a7a80 --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/electricity/base/cables/CableConnectorGenerator.java @@ -0,0 +1,76 @@ +package com.drmangotea.createindustry.blocks.electricity.base.cables; + +import com.drmangotea.createindustry.blocks.electricity.base.WallMountBlock; +import com.simibubi.create.foundation.data.AssetLookup; +import com.simibubi.create.foundation.data.SpecialBlockStateGen; +import com.tterrag.registrate.providers.DataGenContext; +import com.tterrag.registrate.providers.RegistrateBlockstateProvider; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraftforge.client.model.generators.ModelFile; + +public class CableConnectorGenerator extends SpecialBlockStateGen { + public CableConnectorGenerator() { + } + + protected int getXRotation(BlockState state) { + short value; + switch ((Direction)state.getValue(WallMountBlock.FACING)) { + case NORTH: + value = 90; + break; + case SOUTH: + value = 90; + break; + case WEST: + value = 90; + break; + case EAST: + value = 90; + break; + case DOWN: + value = 180; + break; + case UP: + value = 0; + break; + default: + throw new IncompatibleClassChangeError(); + } + + return value; + } + + protected int getYRotation(BlockState state) { + short value; + switch ((Direction)state.getValue(WallMountBlock.FACING)) { + case NORTH: + value = 0; + break; + case SOUTH: + value = 180; + break; + case WEST: + value = 270; + break; + case EAST: + value = 90; + break; + case DOWN: + value = 0; + break; + case UP: + value = 0; + break; + default: + throw new IncompatibleClassChangeError(); + } + + return value; + } + + public ModelFile getModel(DataGenContext ctx, RegistrateBlockstateProvider prov, BlockState state) { + return (Boolean)state.getValue(CableConnectorBlock.EXTENSION) ? AssetLookup.partialBaseModel(ctx, prov, new String[]{"extension"}) : AssetLookup.partialBaseModel(ctx, prov, new String[0]); + } +} diff --git a/src/main/java/com/drmangotea/createindustry/blocks/electricity/base/cables/CableConnectorRenderer.java b/src/main/java/com/drmangotea/createindustry/blocks/electricity/base/cables/CableConnectorRenderer.java new file mode 100644 index 00000000..1a5afea4 --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/electricity/base/cables/CableConnectorRenderer.java @@ -0,0 +1,32 @@ +package com.drmangotea.createindustry.blocks.electricity.base.cables; + +import com.mojang.blaze3d.vertex.PoseStack; +import com.simibubi.create.foundation.blockEntity.renderer.SafeBlockEntityRenderer; +import net.minecraft.client.renderer.MultiBufferSource; +import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider; +import net.minecraft.core.BlockPos; + +public class CableConnectorRenderer extends SafeBlockEntityRenderer { + public CableConnectorRenderer(BlockEntityRendererProvider.Context context) { + + } + + @Override + protected void renderSafe(CableConnectorBlockEntity be, float partialTicks, PoseStack ms, MultiBufferSource bufferSource, int light, int overlay) { + + + for(WireConnection wireConnection : be.wireConnections){ + if(wireConnection.shouldRender) + WireManager.renderWire(ms,bufferSource,wireConnection.point1,wireConnection.point2,0,0,0,0,0,0, wireConnection.lenght/4500); + + } + + //if(be.player !=null){ + // BlockPos pos = new BlockPos(be.player.getX(),be.player.getY(),be.player.getZ()); +// + // WireManager.renderWire(ms,bufferSource,pos,be.getBlockPos(),0,0,0,0,0,0, 10f/4500f); +// + //} + + } +} diff --git a/src/main/java/com/drmangotea/createindustry/blocks/electricity/base/cables/WireConnection.java b/src/main/java/com/drmangotea/createindustry/blocks/electricity/base/cables/WireConnection.java new file mode 100644 index 00000000..3349c35d --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/electricity/base/cables/WireConnection.java @@ -0,0 +1,53 @@ +package com.drmangotea.createindustry.blocks.electricity.base.cables; + +import net.minecraft.core.BlockPos; +import net.minecraft.nbt.CompoundTag; + +public class WireConnection { + + + public final WireManager.Conductor material; + + public final float lenght; + + public final float resistance; + + public static final float CABLE_THICKNESS = 1.5f; + + public final BlockPos point1; + + public final BlockPos point2; + + public final boolean shouldRender; + + + public WireConnection(WireManager.Conductor material, float lenght,BlockPos point1, BlockPos point2, boolean render){ + this.material = material; + this.lenght = lenght; + this.point1 = point1; + this.point2 = point2; + this.shouldRender = render; + + this.resistance = material.resistivity*(lenght/CABLE_THICKNESS); + } + + + public void saveConnection(CompoundTag compound,int value){ + compound.putInt("X1"+value,point1.getX()); + compound.putInt("Y1"+value,point1.getY()); + compound.putInt("Z1"+value,point1.getZ()); + compound.putInt("X2"+value,point2.getX()); + compound.putInt("Y2"+value,point2.getY()); + compound.putInt("Z2"+value,point2.getZ()); + + compound.putFloat("Lenght"+value,lenght); + + compound.putBoolean("ShouldRender"+value,shouldRender); + + compound.putString("Material"+value, material.name()); + + } + + + +} diff --git a/src/main/java/com/drmangotea/createindustry/blocks/electricity/base/cables/WireItem.java b/src/main/java/com/drmangotea/createindustry/blocks/electricity/base/cables/WireItem.java new file mode 100644 index 00000000..431437ae --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/electricity/base/cables/WireItem.java @@ -0,0 +1,196 @@ +package com.drmangotea.createindustry.blocks.electricity.base.cables; + +import com.drmangotea.createindustry.blocks.electricity.base.IHaveCables; +import com.drmangotea.createindustry.items.weapons.advanced_potato_cannon.AdvancedPotatoCannonItemRenderer; +import com.drmangotea.createindustry.registry.TFMGItems; +import com.simibubi.create.foundation.item.render.SimpleCustomRenderer; +import com.simibubi.create.foundation.utility.Lang; +import net.minecraft.ChatFormatting; +import net.minecraft.core.BlockPos; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.InteractionResultHolder; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.context.UseOnContext; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraftforge.api.distmarker.Dist; +import net.minecraftforge.api.distmarker.OnlyIn; +import net.minecraftforge.client.extensions.common.IClientItemExtensions; + +import java.util.function.Consumer; + +public class WireItem extends Item { + + + + public WireManager.Conductor material; + + public WireItem(Properties p_41383_, WireManager.Conductor material) { + super(p_41383_); + this.material = material; + } + + + + public InteractionResult useOn(UseOnContext context) { + Level level = context.getLevel(); + BlockPos pos = context.getClickedPos(); + BlockState state = level.getBlockState(pos); + ItemStack stack = context.getItemInHand(); + + Player player = context.getPlayer(); + + + + + + if(state.getBlock() instanceof IHaveCables){ + + + if(stack.getOrCreateTag().getInt("X1")!=0&& + stack.getOrCreateTag().getInt("Y1")!=0&& + stack.getOrCreateTag().getInt("Z1")!=0 + ){ + + boolean placeWire = true; + + if(level.getBlockEntity(pos)!=null) + if(level.getBlockEntity(pos) instanceof CableConnectorBlockEntity be){ + + + if(testConnection(stack,be,pos)) { + BlockPos pos2 = new BlockPos(stack.getOrCreateTag().getInt("X1"), stack.getOrCreateTag().getInt("Y1"), stack.getOrCreateTag().getInt("Z1")); + if(level.getBlockEntity(pos2) instanceof CableConnectorBlockEntity be2) { + + if(be2.getBlockPos() == be.getBlockPos()) + return InteractionResult.PASS; + + if(be.getBlockState().getValue(CableConnectorBlock.EXTENSION)||be2.getBlockState().getValue(CableConnectorBlock.EXTENSION)) + return InteractionResult.PASS; + + + + be.addConnection(material, pos2, true); + be.sendData(); + be.setChanged(); + be2.addConnection(material, pos, false); + be2.sendData(); + be2.setChanged(); + } + + + } + } + + if(state.getValue(CableConnectorBlock.EXTENSION)) + return InteractionResult.PASS; + + stack.getOrCreateTag().putInt("X1",0); + stack.getOrCreateTag().putInt("Y1",0); + stack.getOrCreateTag().putInt("Z1",0); + + + + + + if(player.isCreative()) { + player.setItemInHand(context.getHand(), new ItemStack(TFMGItems.COPPER_CABLE.get(), stack.getCount())); + }else player.setItemInHand(context.getHand(), new ItemStack(TFMGItems.COPPER_CABLE.get(), stack.getCount() - 1)); + + + //if(!placeWire) + // player.kill(); + + return InteractionResult.SUCCESS; + } + + + stack.getOrCreateTag().putInt("X1",pos.getX()); + stack.getOrCreateTag().putInt("Y1",pos.getY()); + stack.getOrCreateTag().putInt("Z1",pos.getZ()); + if(level.getBlockEntity(pos) instanceof CableConnectorBlockEntity connector) + connector.player = player; + + + return InteractionResult.SUCCESS; + } + + + return super.useOn(context); + } + + @Override + public InteractionResultHolder use(Level level, Player player, InteractionHand hand) { + ItemStack stack = player.getItemInHand(hand); + + if(player.isCrouching()){ + + + BlockPos pos = new BlockPos(stack.getOrCreateTag().getInt("X1"),stack.getOrCreateTag().getInt("Y1"),stack.getOrCreateTag().getInt("Z1")); + + + if(level.getBlockEntity(pos) instanceof CableConnectorBlockEntity be){ + be.player = null; + } + + + stack = new ItemStack(stack.getItem(),stack.getCount()); + + if (!level.isClientSide) + player.displayClientMessage(Lang.translateDirect("wires.removed_data") + .withStyle(ChatFormatting.YELLOW), true); + + return InteractionResultHolder.success(stack); + } + + + return super.use(level, player, hand); + } + + private boolean testConnection(ItemStack stack, CableConnectorBlockEntity be, BlockPos pos) { + + + + + + + for(WireConnection connection : be.wireConnections){ + + if( + connection.point1.getX() == stack.getOrCreateTag().getInt("X1")&& + connection.point1.getY() == stack.getOrCreateTag().getInt("Y1")&& + connection.point1.getZ() == stack.getOrCreateTag().getInt("Z1")&& + connection.point2.getX() == pos.getX()&& + connection.point2.getY() == pos.getY()&& + connection.point2.getZ() == pos.getZ() + + + ){ + return false; + } + if( + connection.point2.getX() == stack.getOrCreateTag().getInt("X1")&& + connection.point2.getY() == stack.getOrCreateTag().getInt("Y1")&& + connection.point2.getZ() == stack.getOrCreateTag().getInt("Z1")&& + connection.point1.getX() == pos.getX()&& + connection.point1.getY() == pos.getY()&& + connection.point1.getZ() == pos.getZ() + + ){ + return false; + } + + } + + + + + return true; + } + + +} diff --git a/src/main/java/com/drmangotea/createindustry/blocks/electricity/base/cables/WireManager.java b/src/main/java/com/drmangotea/createindustry/blocks/electricity/base/cables/WireManager.java new file mode 100644 index 00000000..e995777e --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/electricity/base/cables/WireManager.java @@ -0,0 +1,129 @@ +package com.drmangotea.createindustry.blocks.electricity.base.cables; + +import com.mojang.blaze3d.vertex.PoseStack; +import com.mojang.blaze3d.vertex.VertexConsumer; +import com.mojang.math.Matrix4f; +import net.minecraft.client.renderer.LightTexture; +import net.minecraft.client.renderer.MultiBufferSource; +import net.minecraft.client.renderer.RenderType; +import net.minecraft.core.BlockPos; +import net.minecraft.util.Mth; +import net.minecraft.util.StringRepresentable; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.level.LightLayer; +import net.minecraft.world.phys.Vec3; + + +public class WireManager { + + public static void renderWire(PoseStack pMatrixStack, MultiBufferSource pBuffer, BlockPos pos1, BlockPos pos2, + float offsetX1,float offsetY1,float offsetZ1,float offsetX2,float offsetY2,float offsetZ2,float curve) { + pMatrixStack.pushPose(); + + + Vec3 vec3 = new Vec3(0,0,0); + + + BlockPos pos2Local = pos1.subtract(pos2); + + + pMatrixStack.translate(0.5+offsetX1, 0.5+offsetY1, 0.5+offsetZ1); + + vec3 = vec3.add(pos2Local.getX()-offsetX1+offsetX2+0.01,pos2Local.getY()-offsetY1+offsetY2,pos2Local.getZ()-offsetZ1+offsetZ2+0.01); + + + + float f = (float)(vec3.x); + float f1 = (float)(vec3.y ); + float f2 = (float)(vec3.z); + VertexConsumer vertexconsumer = pBuffer.getBuffer(RenderType.leash()); + Matrix4f matrix4f = pMatrixStack.last().pose(); + float f4 = Mth.fastInvSqrt(f * f + f2 * f2) * 0.025F / 2.0F; + float f5 = f2 * f4; + float f6 = f * f4; + + + int i =15; + int j = 15; + + //int i = this.getBlockLightLevel(pEntityLiving, blockpos); + //int j = this.entityRenderDispatcher.getRenderer(pLeashHolder).getBlockLightLevel(pLeashHolder, blockpos1); + //int k = pEntityLiving.level.getBrightness(LightLayer.SKY, blockpos); + //int l = pEntityLiving.level.getBrightness(LightLayer.SKY, blockpos1); + + + int k = 15; + int l = 15; + + + for(int i1 = 0; i1 <= 24; ++i1) { + addVertexPair(vertexconsumer, matrix4f, f, f1, f2, i, j, k, l, 0.030F, 0.030F, f5, f6, i1, false,curve); + } + + for(int j1 = 24; j1 >= 0; --j1) { + addVertexPair(vertexconsumer, matrix4f, f, f1, f2, i, j, k, l, 0.030F, 0.00F, f5, f6, j1, true,curve); + } + + pMatrixStack.popPose(); + } + + + + + + + + + private static void addVertexPair(VertexConsumer vertexConsumer, Matrix4f matrix4f, float p_174310_, float p_174311_, float p_174312_, int p_174313_, int p_174314_, int p_174315_, int p_174316_, float thickness, float p_174318_, float p_174319_, float p_174320_, int value, boolean p_174322_, float curve) { + float f = (float)(value / 24.0F); + int i = (int)Mth.lerp(f, (float)p_174313_, (float)p_174314_); + int j = (int)Mth.lerp(f, (float)p_174315_, (float)p_174316_); + int k = LightTexture.pack(i, j); + float f1 = value % 2 == (p_174322_ ? 1 : 0) ? 0.7F : 1.0F; + float red = 0.1F * f1; + float green = 0.1F * f1; + float blue = 0.1F * f1; + float x = p_174310_ * f; + + float pain; + + + pain = ((value*curve*24)-(value*value*curve)) * -1f; + + + + + float y = p_174311_ > 0.0F ? p_174311_ * f * f : p_174311_ - p_174311_ * (1.0F - f) * (1.0F - f); + float z = p_174312_ * f; + vertexConsumer.vertex(matrix4f, x - p_174319_, y + p_174318_+pain, z + p_174320_).color(red, green, blue, 1.0F).uv2(k).endVertex(); + vertexConsumer.vertex(matrix4f, x + p_174319_, y + thickness - p_174318_+pain, z - p_174320_).color(red, green, blue, 1.0F).uv2(k).endVertex(); + } + + + public enum Conductor implements StringRepresentable { + + COPPER(0.0178f,"copper") + ; + + public float resistivity; + + private String name; + + Conductor(float resistivity, String name){ + this.resistivity = resistivity; + this.name = name; + } + + + public float getResistivity() { + return resistivity; + } + + @Override + public String getSerializedName() { + return null; + } + } + +} diff --git a/src/main/java/com/drmangotea/createindustry/blocks/electricity/base/multimeter/MultimeterItem.java b/src/main/java/com/drmangotea/createindustry/blocks/electricity/base/multimeter/MultimeterItem.java new file mode 100644 index 00000000..1647d589 --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/electricity/base/multimeter/MultimeterItem.java @@ -0,0 +1,13 @@ +package com.drmangotea.createindustry.blocks.electricity.base.multimeter; + +import net.minecraft.world.item.Item; + +public class MultimeterItem extends Item { + public MultimeterItem(Properties p_41383_) { + super(p_41383_); + } + + + + +} diff --git a/src/main/java/com/drmangotea/createindustry/blocks/electricity/batteries/BatteryBlock.java b/src/main/java/com/drmangotea/createindustry/blocks/electricity/batteries/BatteryBlock.java new file mode 100644 index 00000000..dacfbd08 --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/electricity/batteries/BatteryBlock.java @@ -0,0 +1,55 @@ +package com.drmangotea.createindustry.blocks.electricity.batteries; + +import com.drmangotea.createindustry.registry.TFMGBlockEntities; +import com.simibubi.create.content.equipment.wrench.IWrenchable; +import com.simibubi.create.foundation.block.IBE; +import net.minecraft.core.BlockPos; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockState; + +import javax.annotation.Nullable; + +public class BatteryBlock extends Block implements IBE, IWrenchable { + public BatteryBlock(Properties p_49795_) { + super(p_49795_); + } + + + @Override + public void setPlacedBy(Level level, BlockPos pos, BlockState state, LivingEntity placer, ItemStack stack) { + super.setPlacedBy(level, pos, state, placer, stack); + withBlockEntityDo(level, pos, be -> be.setCapacity(stack)); + } + + public void playerDestroy(Level level, Player player, BlockPos pos, BlockState state, @Nullable BlockEntity be, ItemStack stack) { + + int capacity = 0; + + if(be !=null) + if(be instanceof BatteryBlockEntity be1) + capacity = be1.capacity; + + + stack.getOrCreateTag().putInt("Capacity",capacity); + + super.playerDestroy(level,player,pos,state,be,stack); + } + + + @Override + public Class getBlockEntityClass() { + return BatteryBlockEntity.class; + } + + @Override + public BlockEntityType getBlockEntityType() { + //return TFMGBlockEntities.ACCUMULATOR.get(); + return null; + } +} diff --git a/src/main/java/com/drmangotea/createindustry/blocks/electricity/batteries/BatteryBlockEntity.java b/src/main/java/com/drmangotea/createindustry/blocks/electricity/batteries/BatteryBlockEntity.java new file mode 100644 index 00000000..527031d1 --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/electricity/batteries/BatteryBlockEntity.java @@ -0,0 +1,93 @@ +package com.drmangotea.createindustry.blocks.electricity.batteries; + + +import com.drmangotea.createindustry.blocks.electricity.base.ElectricBlockEntity; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.network.chat.Component; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockState; + +import java.util.List; + +public class BatteryBlockEntity extends ElectricBlockEntity { + + + public float powerOutput = 0; + + public int capacity = 0; + + public BatteryBlockEntity(BlockEntityType type, BlockPos pos, BlockState state) { + super(type, pos, state); + } + + + public void setCapacity(ItemStack stack){ + //capacity = stack.getOrCreateTag().getInt("Capacity"); + energy.receiveEnergy(stack.getOrCreateTag().getInt("Capacity"),false); + } + public void tick(){ + super.tick(); + + + if(capacity>0) { + powerOutput = transferSpeed(); + + }else powerOutput = 0; + + } + @Override + public int transferSpeed() { + return 100; + } + + + @Override + public boolean addToGoggleTooltip(List tooltip, boolean isPlayerSneaking) { + + + + + return true; + } + + @Override + public void write(CompoundTag compound, boolean clientPacket) { + + compound.putInt("Capacity", capacity); + + super.write(compound, clientPacket); + + } + @Override + protected void read(CompoundTag compound, boolean clientPacket) { + super.read(compound, clientPacket); + + + capacity = compound.getInt("Capacity"); + + } + @Override + public boolean hasElectricitySlot(Direction direction) { + + if(direction == Direction.UP) + return true; + + return false; + } + + @Override + public int FECapacity() { + return 30000; + } + + + + + @Override + public int voltageGeneration() { + return energy.getEnergyStored() <= 10 ? 0 : 200; + } +} diff --git a/src/main/java/com/drmangotea/createindustry/blocks/electricity/batteries/GalvanicCellBlock.java b/src/main/java/com/drmangotea/createindustry/blocks/electricity/batteries/GalvanicCellBlock.java new file mode 100644 index 00000000..3a67f07d --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/electricity/batteries/GalvanicCellBlock.java @@ -0,0 +1,62 @@ +package com.drmangotea.createindustry.blocks.electricity.batteries; + + +import com.drmangotea.createindustry.blocks.TFMGHorizontalDirectionalBlock; +import com.drmangotea.createindustry.registry.TFMGBlockEntities; +import com.drmangotea.createindustry.registry.TFMGShapes; +import com.simibubi.create.foundation.block.IBE; +import net.minecraft.core.BlockPos; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.BlockGetter; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.phys.shapes.CollisionContext; +import net.minecraft.world.phys.shapes.VoxelShape; + +import javax.annotation.Nullable; + +public class GalvanicCellBlock extends TFMGHorizontalDirectionalBlock implements IBE { + + + public GalvanicCellBlock(Properties p_54120_) { + super(p_54120_); + } + + @Override + public VoxelShape getShape(BlockState pState, BlockGetter worldIn, BlockPos pos, CollisionContext context) { + + return TFMGShapes.GALVANIC_CELL.get(pState.getValue(FACING)); + } + @Override + public void setPlacedBy(Level level, BlockPos pos, BlockState state, LivingEntity placer, ItemStack stack) { + super.setPlacedBy(level, pos, state, placer, stack); + withBlockEntityDo(level, pos, be -> be.setCapacity(stack)); + } + + public void playerDestroy(Level level, Player player, BlockPos pos, BlockState state, @Nullable BlockEntity be, ItemStack stack) { + + int capacity = 0; + + if(be !=null) + if(be instanceof BatteryBlockEntity be1) + capacity = be1.capacity; + + + stack.getOrCreateTag().putInt("Capacity",capacity); + + super.playerDestroy(level,player,pos,state,be,stack); + } + @Override + public Class getBlockEntityClass() { + return GalvanicCellBlockEntity.class; + } + + @Override + public BlockEntityType getBlockEntityType() { + return TFMGBlockEntities.GALVANIC_CELL.get(); + } +} diff --git a/src/main/java/com/drmangotea/createindustry/blocks/electricity/batteries/GalvanicCellBlockEntity.java b/src/main/java/com/drmangotea/createindustry/blocks/electricity/batteries/GalvanicCellBlockEntity.java new file mode 100644 index 00000000..4b51f26c --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/electricity/batteries/GalvanicCellBlockEntity.java @@ -0,0 +1,32 @@ +package com.drmangotea.createindustry.blocks.electricity.batteries; + +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockState; + +import static net.minecraft.world.level.block.HorizontalDirectionalBlock.FACING; + + +public class GalvanicCellBlockEntity extends BatteryBlockEntity { + + + + public GalvanicCellBlockEntity(BlockEntityType type, BlockPos pos, BlockState state) { + super(type, pos, state); + } + + + + @Override + public boolean hasElectricitySlot(Direction direction) { + + return direction == getBlockState().getValue(FACING); + } + + + @Override + public int FECapacity() { + return 200000; + } +} \ No newline at end of file diff --git a/src/main/java/com/drmangotea/createindustry/blocks/electricity/cable_blocks/CableHubBlock.java b/src/main/java/com/drmangotea/createindustry/blocks/electricity/cable_blocks/CableHubBlock.java new file mode 100644 index 00000000..34d0d42a --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/electricity/cable_blocks/CableHubBlock.java @@ -0,0 +1,23 @@ +package com.drmangotea.createindustry.blocks.electricity.cable_blocks; + +import com.drmangotea.createindustry.registry.TFMGBlockEntities; +import com.simibubi.create.content.equipment.wrench.IWrenchable; +import com.simibubi.create.foundation.block.IBE; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.entity.BlockEntityType; + +public class CableHubBlock extends Block implements IBE, IWrenchable { + public CableHubBlock(Properties p_49795_) { + super(p_49795_); + } + + @Override + public Class getBlockEntityClass() { + return CableHubBlockEntity.class; + } + + @Override + public BlockEntityType getBlockEntityType() { + return TFMGBlockEntities.CABLE_HUB.get(); + } +} diff --git a/src/main/java/com/drmangotea/createindustry/blocks/electricity/cable_blocks/CableHubBlockEntity.java b/src/main/java/com/drmangotea/createindustry/blocks/electricity/cable_blocks/CableHubBlockEntity.java new file mode 100644 index 00000000..4fe42247 --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/electricity/cable_blocks/CableHubBlockEntity.java @@ -0,0 +1,138 @@ +package com.drmangotea.createindustry.blocks.electricity.cable_blocks; + +import com.drmangotea.createindustry.blocks.electricity.base.ElectricBlockEntity; +import com.drmangotea.createindustry.blocks.electricity.base.IElectricBlock; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraftforge.common.capabilities.ForgeCapabilities; + +import java.util.ArrayList; + +public class CableHubBlockEntity extends ElectricBlockEntity { + + int signal; + boolean signalChanged; + + byte[] directions = new byte[6]; + + + + + + public CableHubBlockEntity(BlockEntityType type, BlockPos pos, BlockState state) { + super(type, pos, state); + neighbourChanged(); + } + + + @Override + public boolean hasElectricitySlot(Direction direction) { + + return true; + } + + @Override + public void tick() { + + + + if (signalChanged) { + signalChanged = false; + analogSignalChanged(level.getBestNeighborSignal(worldPosition)); + } + + super.tick(); + } + + public void neighbourChanged() { + if (!hasLevel()) + return; + + ArrayList list = new ArrayList<>(); + + // for(Direction direction1 : Direction.values()) { + // if(level.getBlockEntity(getBlockPos().relative(direction1))instanceof IElectricBlock be){ + // if(be.hasElectricitySlot(direction1.getOpposite())){ + // list.add((byte) 1); + // }else list.add((byte) 0); +// + // }else { + // if(level.getBlockEntity(getBlockPos().relative(direction1))==null){ + // list.add((byte) 0); + // continue; + // } +// +// + // if (level.getBlockEntity(getBlockPos().relative(direction1)).getCapability(ForgeCapabilities.ENERGY).isPresent()) { + // list.add((byte) 1); + // } else list.add((byte) 0); +// + // } + // } +// + // directions = new byte[]{list.get(0),list.get(1),list.get(2),list.get(3),list.get(4),list.get(5)}; + + + int power = level.getBestNeighborSignal(worldPosition); + if (power != signal) + signalChanged = true; + } + + @Override + public void lazyTick() { + super.lazyTick(); + neighbourChanged(); + } + + + protected void analogSignalChanged(int newSignal) { + //removeSource(); + signal = newSignal; + } + + + @Override + public boolean hasSignal() { + return signal>0; + } + + @Override + public float maxVoltage() { + return 6000; + } + + @Override + public void write(CompoundTag compound, boolean clientPacket) { + compound.putInt("Signal", signal); + + + compound.putByteArray("Directions",directions); + + + super.write(compound, clientPacket); + } + + @Override + protected void read(CompoundTag compound, boolean clientPacket) { + + + signal = compound.getInt("Signal"); + + directions = compound.getByteArray("Directions"); + + + + super.read(compound, clientPacket); + } + + + + + @Override + public boolean canBeDisabled() { + return true; + } +} diff --git a/src/main/java/com/drmangotea/createindustry/blocks/electricity/cable_blocks/CableTubeBlock.java b/src/main/java/com/drmangotea/createindustry/blocks/electricity/cable_blocks/CableTubeBlock.java new file mode 100644 index 00000000..061b5721 --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/electricity/cable_blocks/CableTubeBlock.java @@ -0,0 +1,138 @@ +package com.drmangotea.createindustry.blocks.electricity.cable_blocks; + +import com.drmangotea.createindustry.blocks.electricity.lights.neon.NeonTubeBlock; +import com.drmangotea.createindustry.blocks.electricity.lights.neon.NeonTubeBlockEntity; +import com.drmangotea.createindustry.registry.TFMGBlockEntities; +import com.drmangotea.createindustry.registry.TFMGBlocks; +import com.drmangotea.createindustry.registry.TFMGShapes; +import com.simibubi.create.foundation.block.IBE; +import com.simibubi.create.foundation.placement.IPlacementHelper; +import com.simibubi.create.foundation.placement.PlacementHelpers; +import com.simibubi.create.foundation.placement.PlacementOffset; +import com.simibubi.create.foundation.placement.PoleHelper; +import net.minecraft.MethodsReturnNonnullByDefault; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.sounds.SoundEvents; +import net.minecraft.sounds.SoundSource; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.BlockItem; +import net.minecraft.world.item.DyeColor; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.context.BlockPlaceContext; +import net.minecraft.world.level.BlockGetter; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.LevelAccessor; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.RotatedPillarBlock; +import net.minecraft.world.level.block.SimpleWaterloggedBlock; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.StateDefinition; +import net.minecraft.world.level.block.state.properties.BlockStateProperties; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.level.material.FluidState; +import net.minecraft.world.level.material.Fluids; +import net.minecraft.world.phys.BlockHitResult; +import net.minecraft.world.phys.shapes.CollisionContext; +import net.minecraft.world.phys.shapes.VoxelShape; + +import java.util.function.Predicate; + +public class CableTubeBlock extends RotatedPillarBlock implements IBE, SimpleWaterloggedBlock { + + public static final int placementHelperId = PlacementHelpers.register(new PlacementHelper()); + + + public static final BooleanProperty WATERLOGGED = BlockStateProperties.WATERLOGGED; + public CableTubeBlock(Properties p_49795_) { + super(p_49795_); + this.registerDefaultState(this.stateDefinition.any().setValue(WATERLOGGED, Boolean.FALSE).setValue(AXIS, Direction.Axis.Y)); + } + + @Override + protected void createBlockStateDefinition(StateDefinition.Builder builder) { + builder.add(WATERLOGGED); + super.createBlockStateDefinition(builder); + } + + + @Override + public BlockState updateShape(BlockState p_51461_, Direction p_51462_, BlockState p_51463_, LevelAccessor p_51464_, BlockPos p_51465_, BlockPos p_51466_) { + if (p_51461_.getValue(WATERLOGGED)) { + p_51464_.scheduleTick(p_51465_, Fluids.WATER, Fluids.WATER.getTickDelay(p_51464_)); + } + + return super.updateShape(p_51461_, p_51462_, p_51463_, p_51464_, p_51465_, p_51466_); + } + + + @Override + public VoxelShape getShape(BlockState pState, BlockGetter pLevel, BlockPos pPos, CollisionContext pContext) { + return TFMGShapes.CABLE_TUBE.get(pState.getValue(AXIS)); + } + + public BlockState getStateForPlacement(BlockPlaceContext context) { + FluidState fluidstate = context.getLevel().getFluidState(context.getClickedPos()); + boolean flag = fluidstate.getType() == Fluids.WATER; + return this.defaultBlockState().setValue(AXIS, context.getClickedFace().getAxis()).setValue(WATERLOGGED, flag); + } + @Override + public Class getBlockEntityClass() { + return CableTubeBlockEntity.class; + } + + @Override + public BlockEntityType getBlockEntityType() { + return TFMGBlockEntities.CABLE_TUBE.get(); + } + + @Override + public InteractionResult use(BlockState pState, Level pLevel, BlockPos pPos, Player player, InteractionHand pHand, + BlockHitResult pHit) { + + + ItemStack itemInHand = player.getItemInHand(pHand); + + IPlacementHelper helper = PlacementHelpers.get(placementHelperId); + if (helper.matchesItem(itemInHand)) + return helper.getOffset(player, pLevel, pState, pPos, pHit) + .placeInWorld(pLevel, (BlockItem) itemInHand.getItem(), player, pHand, pHit); + + + + return InteractionResult.SUCCESS; + } + @MethodsReturnNonnullByDefault + private static class PlacementHelper extends PoleHelper { + + + private PlacementHelper() { + super(state -> state.getBlock() instanceof CableTubeBlock, state -> state.getValue(AXIS), AXIS); + } + + @Override + public Predicate getItemPredicate() { + return i -> i.getItem() instanceof BlockItem + && ((BlockItem) i.getItem()).getBlock() instanceof CableTubeBlock; + } + + @Override + public Predicate getStatePredicate() { + return s -> s.getBlock() instanceof CableTubeBlock; + } + + @Override + public PlacementOffset getOffset(Player player, Level world, BlockState state, BlockPos pos, + BlockHitResult ray) { + PlacementOffset offset = super.getOffset(player, world, state, pos, ray); + if (offset.isSuccessful()) + offset.withTransform(offset.getTransform() + .andThen(s -> TFMGBlocks.CABLE_TUBE.getDefaultState().setValue(AXIS,state.getValue(AXIS)))); + return offset; + } + + } +} diff --git a/src/main/java/com/drmangotea/createindustry/blocks/electricity/cable_blocks/CableTubeBlockEntity.java b/src/main/java/com/drmangotea/createindustry/blocks/electricity/cable_blocks/CableTubeBlockEntity.java new file mode 100644 index 00000000..a8acd657 --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/electricity/cable_blocks/CableTubeBlockEntity.java @@ -0,0 +1,25 @@ +package com.drmangotea.createindustry.blocks.electricity.cable_blocks; + +import com.drmangotea.createindustry.blocks.electricity.base.ElectricBlockEntity; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockState; + + +import static net.minecraft.world.level.block.RotatedPillarBlock.AXIS; + +public class CableTubeBlockEntity extends ElectricBlockEntity { + public CableTubeBlockEntity(BlockEntityType type, BlockPos pos, BlockState state) { + super(type, pos, state); + } + + @Override + public float maxVoltage() { + return 6000; + } + @Override + public boolean hasElectricitySlot(Direction direction) { + return direction.getAxis() == getBlockState().getValue(AXIS); + } +} diff --git a/src/main/java/com/drmangotea/createindustry/blocks/electricity/cable_blocks/DiagonalCableBlock.java b/src/main/java/com/drmangotea/createindustry/blocks/electricity/cable_blocks/DiagonalCableBlock.java new file mode 100644 index 00000000..71f09ccc --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/electricity/cable_blocks/DiagonalCableBlock.java @@ -0,0 +1,120 @@ +package com.drmangotea.createindustry.blocks.electricity.cable_blocks; + +import com.drmangotea.createindustry.registry.TFMGBlockEntities; +import com.drmangotea.createindustry.registry.TFMGShapes; +import com.simibubi.create.content.equipment.wrench.IWrenchable; +import com.simibubi.create.foundation.block.IBE; +import net.minecraft.MethodsReturnNonnullByDefault; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.item.context.BlockPlaceContext; +import net.minecraft.world.item.context.UseOnContext; +import net.minecraft.world.level.BlockGetter; +import net.minecraft.world.level.LevelAccessor; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.DirectionalBlock; +import net.minecraft.world.level.block.SimpleWaterloggedBlock; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.StateDefinition; +import net.minecraft.world.level.block.state.properties.BlockStateProperties; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.level.material.FluidState; +import net.minecraft.world.level.material.Fluids; +import net.minecraft.world.phys.shapes.CollisionContext; +import net.minecraft.world.phys.shapes.Shapes; +import net.minecraft.world.phys.shapes.VoxelShape; + +import javax.annotation.Nullable; +import javax.annotation.ParametersAreNonnullByDefault; +import java.util.Objects; + +@SuppressWarnings({"unused","deprecation"}) +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +public class DiagonalCableBlock extends DirectionalBlock implements SimpleWaterloggedBlock, IWrenchable, IBE { + + public static final BooleanProperty WATERLOGGED = BlockStateProperties.WATERLOGGED; + public static final BooleanProperty FACING_UP = BooleanProperty.create("facing_up"); + public DiagonalCableBlock(Properties p_54120_) { + super(p_54120_); + this.registerDefaultState(this.stateDefinition.any().setValue(WATERLOGGED, Boolean.FALSE).setValue(FACING, Direction.NORTH).setValue(FACING_UP, false)); + } + protected void createBlockStateDefinition(StateDefinition.Builder p_55125_) { + p_55125_.add(WATERLOGGED,FACING, FACING_UP); + } + + + @Override + public FluidState getFluidState(BlockState p_51475_) { + return p_51475_.getValue(WATERLOGGED) ? Fluids.WATER.getSource(false) : super.getFluidState(p_51475_); + } + public VoxelShape getShape(BlockState state, BlockGetter p_54562_, BlockPos p_54563_, CollisionContext p_54564_) { + + + + + if (state.getValue(FACING_UP)) { + return TFMGShapes.DIAGONAL_CABLE_BLOCK_UP.get(state.getValue(FACING)); + } + + + return TFMGShapes.DIAGONAL_CABLE_BLOCK_DOWN.get(state.getValue(FACING)); + + + } + + @Override + public InteractionResult onWrenched(BlockState state, UseOnContext context) { + InteractionResult onWrenched = IWrenchable.super.onWrenched(state, context); + if (!onWrenched.consumesAction()) + return onWrenched; + + context.getLevel().setBlock(context.getClickedPos(),state.setValue(FACING_UP,!state.getValue(FACING_UP)),2); + + playRotateSound(context.getLevel(), context.getClickedPos()); + return onWrenched; + } + + @Override + public BlockState updateShape(BlockState p_51461_, Direction p_51462_, BlockState p_51463_, LevelAccessor p_51464_, BlockPos p_51465_, BlockPos p_51466_) { + if (p_51461_.getValue(WATERLOGGED)) { + p_51464_.scheduleTick(p_51465_, Fluids.WATER, Fluids.WATER.getTickDelay(p_51464_)); + } + + return super.updateShape(p_51461_, p_51462_, p_51463_, p_51464_, p_51465_, p_51466_); + } + + + + @Nullable + public BlockState getStateForPlacement(BlockPlaceContext context) { + FluidState fluidstate = context.getLevel().getFluidState(context.getClickedPos()); + boolean flag = fluidstate.getType() == Fluids.WATER; + Direction facing = Objects.requireNonNull(context.getPlayer()).getDirection(); + Direction clickedFace = context.getClickedFace(); + + if (context.getPlayer() != null && context.getPlayer().isShiftKeyDown()) { + if (clickedFace == Direction.DOWN) + return defaultBlockState().setValue(FACING, facing.getOpposite()).setValue(FACING_UP,true).setValue(WATERLOGGED, flag); + else + return defaultBlockState().setValue(FACING, facing.getOpposite()).setValue(FACING_UP,false).setValue(WATERLOGGED, flag); + } + if (clickedFace == Direction.DOWN) + return defaultBlockState().setValue(FACING, facing).setValue(FACING_UP,true).setValue(WATERLOGGED, flag); + + + return defaultBlockState().setValue(FACING, facing).setValue(FACING_UP,false).setValue(WATERLOGGED, flag); + } + + @Override + public Class getBlockEntityClass() { + return DiagonalCableBlockEntity.class; + } + + @Override + public BlockEntityType getBlockEntityType() { + return TFMGBlockEntities.DIAGONAL_CABLE_BLOCK.get(); + } +} diff --git a/src/main/java/com/drmangotea/createindustry/blocks/electricity/cable_blocks/DiagonalCableBlockEntity.java b/src/main/java/com/drmangotea/createindustry/blocks/electricity/cable_blocks/DiagonalCableBlockEntity.java new file mode 100644 index 00000000..4aa90c5f --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/electricity/cable_blocks/DiagonalCableBlockEntity.java @@ -0,0 +1,34 @@ +package com.drmangotea.createindustry.blocks.electricity.cable_blocks; + +import com.drmangotea.createindustry.blocks.electricity.base.ElectricBlockEntity; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockState; + +import static com.drmangotea.createindustry.blocks.electricity.cable_blocks.DiagonalCableBlock.FACING_UP; +import static net.minecraft.world.level.block.DirectionalBlock.FACING; + +public class DiagonalCableBlockEntity extends ElectricBlockEntity { + public DiagonalCableBlockEntity(BlockEntityType type, BlockPos pos, BlockState state) { + super(type, pos, state); + } + + @Override + public float maxVoltage() { + return 6000; + } + + @Override + public boolean hasElectricitySlot(Direction direction) { + + if(getBlockState().getValue(FACING_UP)){ + + return direction == Direction.UP||direction == getBlockState().getValue(FACING); + + + }else { + return direction == Direction.DOWN||direction == getBlockState().getValue(FACING); + } + } +} diff --git a/src/main/java/com/drmangotea/createindustry/blocks/electricity/cable_blocks/DiagonalCableGenerator.java b/src/main/java/com/drmangotea/createindustry/blocks/electricity/cable_blocks/DiagonalCableGenerator.java new file mode 100644 index 00000000..03ed1ac6 --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/electricity/cable_blocks/DiagonalCableGenerator.java @@ -0,0 +1,41 @@ +package com.drmangotea.createindustry.blocks.electricity.cable_blocks; + +import com.simibubi.create.foundation.data.SpecialBlockStateGen; +import com.tterrag.registrate.providers.DataGenContext; +import com.tterrag.registrate.providers.RegistrateBlockstateProvider; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraftforge.client.model.generators.ModelFile; + +import static com.simibubi.create.foundation.data.AssetLookup.partialBaseModel; + +public class DiagonalCableGenerator extends SpecialBlockStateGen { + + @Override + protected int getXRotation(BlockState state) { + return 0; + } + + @Override + protected int getYRotation(BlockState state) { + return switch (state.getValue(DiagonalCableBlock.FACING)) { + case NORTH -> 270; + case SOUTH -> 90; + case WEST -> 180; + case EAST -> 0; + case DOWN -> 0; + case UP -> 0; + }; + } + + @Override + public ModelFile getModel(DataGenContext ctx, RegistrateBlockstateProvider prov, + BlockState state) { + // return AssetLookup.forPowered(ctx, prov) + // .apply(state); + + return state.getValue(DiagonalCableBlock.FACING_UP) ? partialBaseModel(ctx, prov, "up") + : partialBaseModel(ctx, prov); + } + +} \ No newline at end of file diff --git a/src/main/java/com/drmangotea/createindustry/blocks/electricity/cable_blocks/copycat_cable_block/AbstractCopycatCableModel.java b/src/main/java/com/drmangotea/createindustry/blocks/electricity/cable_blocks/copycat_cable_block/AbstractCopycatCableModel.java new file mode 100644 index 00000000..54a92057 --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/electricity/cable_blocks/copycat_cable_block/AbstractCopycatCableModel.java @@ -0,0 +1,164 @@ +package com.drmangotea.createindustry.blocks.electricity.cable_blocks.copycat_cable_block; + +import com.simibubi.create.AllBlocks; +import com.simibubi.create.content.decoration.copycat.CopycatBlock; +import com.simibubi.create.content.decoration.copycat.FilteredBlockAndTintGetter; +import com.simibubi.create.foundation.model.BakedModelWrapperWithData; +import com.simibubi.create.foundation.utility.Iterate; +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.RenderType; +import net.minecraft.client.renderer.block.model.BakedQuad; +import net.minecraft.client.renderer.texture.TextureAtlasSprite; +import net.minecraft.client.resources.model.BakedModel; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.util.RandomSource; +import net.minecraft.world.level.BlockAndTintGetter; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraftforge.client.model.data.ModelData; +import net.minecraftforge.client.model.data.ModelProperty; + +import javax.annotation.Nullable; +import java.util.Collections; +import java.util.List; + +public abstract class AbstractCopycatCableModel extends BakedModelWrapperWithData { + + public static final ModelProperty MATERIAL_PROPERTY = new ModelProperty<>(); + private static final ModelProperty OCCLUSION_PROPERTY = new ModelProperty<>(); + private static final ModelProperty WRAPPED_DATA_PROPERTY = new ModelProperty<>(); + + public AbstractCopycatCableModel(BakedModel originalModel) { + super(originalModel); + } + + @Override + protected ModelData.Builder gatherModelData(ModelData.Builder builder, BlockAndTintGetter world, BlockPos pos, BlockState state, + ModelData blockEntityData) { + BlockState material = getMaterial(blockEntityData); + if (material == null) + return builder; + + builder.with(MATERIAL_PROPERTY, material); + + if (!(state.getBlock() instanceof CopycatBlock copycatBlock)) + return builder; + + OcclusionData occlusionData = new OcclusionData(); + gatherOcclusionData(world, pos, state, material, occlusionData, copycatBlock); + builder.with(OCCLUSION_PROPERTY, occlusionData); + + ModelData wrappedData = getModelOf(material).getModelData( + new FilteredBlockAndTintGetter(world, + targetPos -> copycatBlock.canConnectTexturesToward(world, pos, targetPos, state)), + pos, material, ModelData.EMPTY); + return builder.with(WRAPPED_DATA_PROPERTY, wrappedData); + } + + private void gatherOcclusionData(BlockAndTintGetter world, BlockPos pos, BlockState state, BlockState material, + OcclusionData occlusionData, CopycatBlock copycatBlock) { + BlockPos.MutableBlockPos mutablePos = new BlockPos.MutableBlockPos(); + for (Direction face : Iterate.directions) { + + // Rubidium: Run an additional IForgeBlock.hidesNeighborFace check because it + // seems to be missing in Block.shouldRenderFace + BlockPos.MutableBlockPos neighbourPos = mutablePos.setWithOffset(pos, face); + BlockState neighbourState = world.getBlockState(neighbourPos); + if (state.supportsExternalFaceHiding() + && neighbourState.hidesNeighborFace(world, neighbourPos, state, face.getOpposite())) { + occlusionData.occlude(face); + continue; + } + + if (!copycatBlock.canFaceBeOccluded(state, face)) + continue; + if (!Block.shouldRenderFace(material, world, pos, face, neighbourPos)) + occlusionData.occlude(face); + } + } + + @Override + public List getQuads(BlockState state, Direction side, RandomSource rand, ModelData data, RenderType renderType) { + + // Rubidium: see below + if (side != null && state.getBlock() instanceof CopycatBlock ccb && ccb.shouldFaceAlwaysRender(state, side)) + return Collections.emptyList(); + + BlockState material = getMaterial(data); + + if (material == null) + return super.getQuads(state, side, rand, data, renderType); + + OcclusionData occlusionData = data.get(OCCLUSION_PROPERTY); + if (occlusionData != null && occlusionData.isOccluded(side)) + return super.getQuads(state, side, rand, data, renderType); + + ModelData wrappedData = data.get(WRAPPED_DATA_PROPERTY); + if (wrappedData == null) + wrappedData = ModelData.EMPTY; + if (renderType != null && !Minecraft.getInstance() + .getBlockRenderer() + .getBlockModel(material) + .getRenderTypes(material, rand, wrappedData) + .contains(renderType)) + return super.getQuads(state, side, rand, data, renderType); + + List croppedQuads = getCroppedQuads(state, side, rand, material, wrappedData, renderType); + + // Rubidium: render side!=null versions of the base material during side==null, + // to avoid getting culled away + if (side == null && state.getBlock() instanceof CopycatBlock ccb) + for (Direction nonOcclusionSide : Iterate.directions) + if (ccb.shouldFaceAlwaysRender(state, nonOcclusionSide)) + croppedQuads.addAll(getCroppedQuads(state, nonOcclusionSide, rand, material, wrappedData, renderType)); + + return croppedQuads; + } + + public abstract List getCroppedQuads(BlockState state, Direction side, RandomSource rand, + BlockState material, ModelData wrappedData, RenderType renderType); + + @Override + public TextureAtlasSprite getParticleIcon(ModelData data) { + BlockState material = getMaterial(data); + + if (material == null) + return super.getParticleIcon(data); + + ModelData wrappedData = data.get(WRAPPED_DATA_PROPERTY); + if (wrappedData == null) + wrappedData = ModelData.EMPTY; + + return getModelOf(material).getParticleIcon(wrappedData); + } + + @Nullable + public static BlockState getMaterial(ModelData data) { + BlockState material = data.get(MATERIAL_PROPERTY); + return material == null ? AllBlocks.COPYCAT_BASE.getDefaultState() : material; + } + + public static BakedModel getModelOf(BlockState state) { + return Minecraft.getInstance() + .getBlockRenderer() + .getBlockModel(state); + } + + private static class OcclusionData { + private final boolean[] occluded; + + public OcclusionData() { + occluded = new boolean[6]; + } + + public void occlude(Direction face) { + occluded[face.get3DDataValue()] = true; + } + + public boolean isOccluded(Direction face) { + return face == null ? false : occluded[face.get3DDataValue()]; + } + } + +} diff --git a/src/main/java/com/drmangotea/createindustry/blocks/electricity/cable_blocks/copycat_cable_block/CopycatCableBlock.java b/src/main/java/com/drmangotea/createindustry/blocks/electricity/cable_blocks/copycat_cable_block/CopycatCableBlock.java new file mode 100644 index 00000000..55202ca6 --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/electricity/cable_blocks/copycat_cable_block/CopycatCableBlock.java @@ -0,0 +1,371 @@ +package com.drmangotea.createindustry.blocks.electricity.cable_blocks.copycat_cable_block; + +import com.drmangotea.createindustry.registry.TFMGBlockEntities; +import com.drmangotea.createindustry.registry.TFMGBlocks; +import com.simibubi.create.AllBlocks; +import com.simibubi.create.AllTags; +import com.simibubi.create.content.decoration.copycat.CopycatModel; +import com.simibubi.create.content.equipment.wrench.IWrenchable; +import com.simibubi.create.foundation.block.IBE; +import net.minecraft.client.Minecraft; +import net.minecraft.client.color.block.BlockColor; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.sounds.SoundEvents; +import net.minecraft.sounds.SoundSource; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.EntityType; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.SpawnPlacements; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.BlockItem; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.context.UseOnContext; +import net.minecraft.world.level.*; +import net.minecraft.world.level.block.*; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BlockStateProperties; +import net.minecraft.world.phys.BlockHitResult; +import net.minecraft.world.phys.HitResult; +import net.minecraft.world.phys.shapes.Shapes; +import net.minecraft.world.phys.shapes.VoxelShape; +import net.minecraftforge.api.distmarker.Dist; +import net.minecraftforge.api.distmarker.OnlyIn; +import net.minecraftforge.client.model.data.ModelDataManager; + +import javax.annotation.Nullable; + +public class CopycatCableBlock extends Block implements IBE, IWrenchable { + + public CopycatCableBlock(Properties pProperties) { + super(pProperties); + } + + + + @Override + public InteractionResult onSneakWrenched(BlockState state, UseOnContext context) { + onWrenched(state, context); + return IWrenchable.super.onSneakWrenched(state, context); + } + + @Override + public InteractionResult onWrenched(BlockState state, UseOnContext context) { + return onBlockEntityUse(context.getLevel(), context.getClickedPos(), ufte -> { + ItemStack consumedItem = ufte.getConsumedItem(); + if (!ufte.hasCustomMaterial()) + return InteractionResult.PASS; + Player player = context.getPlayer(); + if (!player.isCreative()) + player.getInventory() + .placeItemBackInInventory(consumedItem); + context.getLevel() + .levelEvent(2001, context.getClickedPos(), Block.getId(ufte.getBlockState())); + ufte.setMaterial(AllBlocks.COPYCAT_BASE.getDefaultState()); + ufte.setConsumedItem(ItemStack.EMPTY); + return InteractionResult.SUCCESS; + }); + } + + @Override + public InteractionResult use(BlockState pState, Level pLevel, BlockPos pPos, Player pPlayer, InteractionHand pHand, + BlockHitResult pHit) { + + if (pPlayer == null) + return InteractionResult.PASS; + + Direction face = pHit.getDirection(); + ItemStack itemInHand = pPlayer.getItemInHand(pHand); + BlockState materialIn = getAcceptedBlockState(pLevel, pPos, itemInHand, face); + + if (materialIn != null) + materialIn = prepareMaterial(pLevel, pPos, pState, pPlayer, pHand, pHit, materialIn); + if (materialIn == null) + return InteractionResult.PASS; + + BlockState material = materialIn; + return onBlockEntityUse(pLevel, pPos, ufte -> { + if (ufte.getMaterial() + .is(material.getBlock())) { + if (!ufte.cycleMaterial()) + return InteractionResult.PASS; + ufte.getLevel() + .playSound(null, ufte.getBlockPos(), SoundEvents.ITEM_FRAME_ADD_ITEM, SoundSource.BLOCKS, .75f, + .95f); + return InteractionResult.SUCCESS; + } + if (ufte.hasCustomMaterial()) + return InteractionResult.PASS; + if (pLevel.isClientSide()) + return InteractionResult.SUCCESS; + + ufte.setMaterial(material); + ufte.setConsumedItem(itemInHand); + ufte.getLevel() + .playSound(null, ufte.getBlockPos(), material.getSoundType() + .getPlaceSound(), SoundSource.BLOCKS, 1, .75f); + + if (pPlayer.isCreative()) + return InteractionResult.SUCCESS; + + itemInHand.shrink(1); + if (itemInHand.isEmpty()) + pPlayer.setItemInHand(pHand, ItemStack.EMPTY); + return InteractionResult.SUCCESS; + }); + } + + @Override + public void setPlacedBy(Level pLevel, BlockPos pPos, BlockState pState, LivingEntity pPlacer, ItemStack pStack) { + if (pPlacer == null) + return; + ItemStack offhandItem = pPlacer.getItemInHand(InteractionHand.OFF_HAND); + BlockState appliedState = + getAcceptedBlockState(pLevel, pPos, offhandItem, Direction.orderedByNearest(pPlacer)[0]); + + if (appliedState == null) + return; + withBlockEntityDo(pLevel, pPos, ufte -> { + if (ufte.hasCustomMaterial()) + return; + + ufte.setMaterial(appliedState); + ufte.setConsumedItem(offhandItem); + + if (pPlacer instanceof Player player && player.isCreative()) + return; + offhandItem.shrink(1); + if (offhandItem.isEmpty()) + pPlacer.setItemInHand(InteractionHand.OFF_HAND, ItemStack.EMPTY); + }); + } + + @Nullable + public BlockState getAcceptedBlockState(Level pLevel, BlockPos pPos, ItemStack item, Direction face) { + if (!(item.getItem() instanceof BlockItem bi)) + return null; + + Block block = bi.getBlock(); + if (block instanceof com.simibubi.create.content.decoration.copycat.CopycatBlock||block instanceof CopycatCableBlock) + return null; + + BlockState appliedState = block.defaultBlockState(); + boolean hardCodedAllow = isAcceptedRegardless(appliedState); + + if (!AllTags.AllBlockTags.COPYCAT_ALLOW.matches(block) && !hardCodedAllow) { + + if (AllTags.AllBlockTags.COPYCAT_DENY.matches(block)) + return null; + if (block instanceof EntityBlock) + return null; + if (block instanceof StairBlock) + return null; + + if (pLevel != null) { + VoxelShape shape = appliedState.getShape(pLevel, pPos); + if (shape.isEmpty() || !shape.bounds() + .equals(Shapes.block() + .bounds())) + return null; + + VoxelShape collisionShape = appliedState.getCollisionShape(pLevel, pPos); + if (collisionShape.isEmpty()) + return null; + } + } + + if (face != null) { + Direction.Axis axis = face.getAxis(); + + if (appliedState.hasProperty(BlockStateProperties.FACING)) + appliedState = appliedState.setValue(BlockStateProperties.FACING, face); + if (appliedState.hasProperty(BlockStateProperties.HORIZONTAL_FACING) && axis != Direction.Axis.Y) + appliedState = appliedState.setValue(BlockStateProperties.HORIZONTAL_FACING, face); + if (appliedState.hasProperty(BlockStateProperties.AXIS)) + appliedState = appliedState.setValue(BlockStateProperties.AXIS, axis); + if (appliedState.hasProperty(BlockStateProperties.HORIZONTAL_AXIS) && axis != Direction.Axis.Y) + appliedState = appliedState.setValue(BlockStateProperties.HORIZONTAL_AXIS, axis); + } + + return appliedState; + } + + public boolean isAcceptedRegardless(BlockState material) { + return false; + } + + public BlockState prepareMaterial(Level pLevel, BlockPos pPos, BlockState pState, Player pPlayer, + InteractionHand pHand, BlockHitResult pHit, BlockState material) { + return material; + } + + @Override + public void onRemove(BlockState pState, Level pLevel, BlockPos pPos, BlockState pNewState, boolean pIsMoving) { + if (!pState.hasBlockEntity() || pState.getBlock() == pNewState.getBlock()) + return; + if (!pIsMoving) + withBlockEntityDo(pLevel, pPos, ufte -> Block.popResource(pLevel, pPos, ufte.getConsumedItem())); + pLevel.removeBlockEntity(pPos); + } + + @Override + public void playerWillDestroy(Level pLevel, BlockPos pPos, BlockState pState, Player pPlayer) { + super.playerWillDestroy(pLevel, pPos, pState, pPlayer); + if (pPlayer.isCreative()) + withBlockEntityDo(pLevel, pPos, ufte -> ufte.setConsumedItem(ItemStack.EMPTY)); + } + + @Override + public Class getBlockEntityClass() { + return CopycatCableBlockEntity.class; + } + + @Override + public BlockEntityType getBlockEntityType() { + return TFMGBlockEntities.COPYCAT_CABLE.get(); + } + + // Connected Textures + + @Override + @OnlyIn(Dist.CLIENT) + public BlockState getAppearance(BlockState state, BlockAndTintGetter level, BlockPos pos, Direction side, + BlockState queryState, BlockPos queryPos) { + + if (isIgnoredConnectivitySide(level, state, side, pos, queryPos)) + return state; + + ModelDataManager modelDataManager = level.getModelDataManager(); + if (modelDataManager == null) + return getMaterial(level, pos); + return CopycatModel.getMaterial(modelDataManager.getAt(pos)); + } + + public boolean isIgnoredConnectivitySide(BlockAndTintGetter reader, BlockState state, Direction face, + BlockPos fromPos, BlockPos toPos) { + return false; + } + + public boolean canConnectTexturesToward(BlockAndTintGetter reader, BlockPos fromPos, BlockPos toPos, + BlockState state) { + return true; + } + + // + + public static BlockState getMaterial(BlockGetter reader, BlockPos targetPos) { + if (reader.getBlockEntity(targetPos) instanceof CopycatCableBlockEntity cbe) + return cbe.getMaterial(); + return Blocks.AIR.defaultBlockState(); + } + + public boolean canFaceBeOccluded(BlockState state, Direction face) { + return false; + } + + public boolean shouldFaceAlwaysRender(BlockState state, Direction face) { + return false; + } + + // Wrapped properties + + @Override + public SoundType getSoundType(BlockState state, LevelReader level, BlockPos pos, Entity entity) { + return getMaterial(level, pos).getSoundType(); + } + + @Override + public float getFriction(BlockState state, LevelReader level, BlockPos pos, Entity entity) { + return getMaterial(level, pos).getFriction(level, pos, entity); + } + + @Override + public int getLightEmission(BlockState state, BlockGetter level, BlockPos pos) { + return getMaterial(level, pos).getLightEmission(level, pos); + } + + @Override + public boolean canHarvestBlock(BlockState state, BlockGetter level, BlockPos pos, Player player) { + return getMaterial(level, pos).canHarvestBlock(level, pos, player); + } + + @Override + public float getExplosionResistance(BlockState state, BlockGetter level, BlockPos pos, Explosion explosion) { + return getMaterial(level, pos).getExplosionResistance(level, pos, explosion); + } + + @Override + public ItemStack getCloneItemStack(BlockState state, HitResult target, BlockGetter level, BlockPos pos, + Player player) { + BlockState material = getMaterial(level, pos); + if (TFMGBlocks.COPYCAT_CABLE_BASE.has(material) || player != null && player.isShiftKeyDown()) + return new ItemStack(this); + return material.getCloneItemStack(target, level, pos, player); + } + + @Override + public boolean addLandingEffects(BlockState state1, ServerLevel level, BlockPos pos, BlockState state2, + LivingEntity entity, int numberOfParticles) { + return getMaterial(level, pos).addLandingEffects(level, pos, state2, entity, numberOfParticles); + } + + @Override + public boolean addRunningEffects(BlockState state, Level level, BlockPos pos, Entity entity) { + return getMaterial(level, pos).addRunningEffects(level, pos, entity); + } + + @Override + public float getEnchantPowerBonus(BlockState state, LevelReader level, BlockPos pos) { + return getMaterial(level, pos).getEnchantPowerBonus(level, pos); + } + + @Override + public boolean canEntityDestroy(BlockState state, BlockGetter level, BlockPos pos, Entity entity) { + return getMaterial(level, pos).canEntityDestroy(level, pos, entity); + } + + @Override + public boolean isValidSpawn(BlockState state, BlockGetter level, BlockPos pos, SpawnPlacements.Type type, + EntityType entityType) { + return false; + } + + @Override + public void fallOn(Level pLevel, BlockState pState, BlockPos pPos, Entity pEntity, float pFallDistance) { + BlockState material = getMaterial(pLevel, pPos); + material.getBlock() + .fallOn(pLevel, material, pPos, pEntity, pFallDistance); + } + + @Override + public float getDestroyProgress(BlockState pState, Player pPlayer, BlockGetter pLevel, BlockPos pPos) { + return getMaterial(pLevel, pPos).getDestroyProgress(pPlayer, pLevel, pPos); + } + + // + + @OnlyIn(Dist.CLIENT) + public static BlockColor wrappedColor() { + return new WrappedBlockColor(); + } + + @OnlyIn(Dist.CLIENT) + public static class WrappedBlockColor implements BlockColor { + + @Override + public int getColor(BlockState pState, @Nullable BlockAndTintGetter pLevel, @Nullable BlockPos pPos, + int pTintIndex) { + if (pLevel == null || pPos == null) + return GrassColor.get(0.5D, 1.0D); + return Minecraft.getInstance() + .getBlockColors() + .getColor(getMaterial(pLevel, pPos), pLevel, pPos, pTintIndex); + } + + } + +} diff --git a/src/main/java/com/drmangotea/createindustry/blocks/electricity/cable_blocks/copycat_cable_block/CopycatCableBlockEntity.java b/src/main/java/com/drmangotea/createindustry/blocks/electricity/cable_blocks/copycat_cable_block/CopycatCableBlockEntity.java new file mode 100644 index 00000000..c54a6cde --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/electricity/cable_blocks/copycat_cable_block/CopycatCableBlockEntity.java @@ -0,0 +1,271 @@ +package com.drmangotea.createindustry.blocks.electricity.cable_blocks.copycat_cable_block; + +import com.drmangotea.createindustry.base.util.TFMGUtils; +import com.drmangotea.createindustry.blocks.electricity.base.IElectricBlock; +import com.drmangotea.createindustry.blocks.electricity.base.TFMGForgeEnergyStorage; +import com.simibubi.create.content.decoration.copycat.CopycatBlockEntity; +import com.simibubi.create.foundation.blockEntity.behaviour.BlockEntityBehaviour; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraftforge.common.capabilities.Capability; +import net.minecraftforge.common.capabilities.ForgeCapabilities; +import net.minecraftforge.common.util.LazyOptional; +import net.minecraftforge.energy.IEnergyStorage; +import org.jetbrains.annotations.NotNull; + +import javax.annotation.Nullable; +import java.util.List; + +public class CopycatCableBlockEntity extends CopycatBlockEntity implements IElectricBlock { + + public int voltage=0; + public int current =0; + + private boolean gotFElastTick = false; + + public int distanceFromSource = Integer.MAX_VALUE; + + + + + private LazyOptional lazyEnergyHandler = LazyOptional.empty(); + + public final TFMGForgeEnergyStorage energy = createEnergyStorage(); + + public CopycatCableBlockEntity(BlockEntityType type, BlockPos pos, BlockState state) { + super(type, pos, state); + + } + + @Override + public boolean canBeDisabled() { + return true; + } + public void tick(){ + super.tick(); + + + + + manageVoltage(); + + + //addCurrent(currentGeneration()); + energy.receiveEnergy(feGeneration(),false); + + + + + sendCharge(level,getBlockPos()); + + + + } + + + + + + + public TFMGForgeEnergyStorage getEnergy() { + return energy; + } + + @Override + public void onLoad() { + super.onLoad(); + lazyEnergyHandler = LazyOptional.of(() -> energy); + } + + @Override + public void invalidateCaps() { + super.invalidateCaps(); + lazyEnergyHandler.invalidate(); + } + + @Override + public @NotNull LazyOptional getCapability(@NotNull Capability cap, @Nullable Direction side) { + if (cap == ForgeCapabilities.ENERGY&&hasElectricitySlot(side)) { + return lazyEnergyHandler.cast(); + } + + return super.getCapability(cap, side); + } + + + public void manageVoltage(){ + + if(voltageGeneration()>0) { + voltage = voltageGeneration(); + distanceFromSource = 0; + } + if(distanceFromSource == Integer.MAX_VALUE) + voltage = 0; + + + current = energy.getEnergyStored()/(voltage+1); + + + + + if(voltage>maxVoltage()){ + explode(); + voltage = 0; + } + + + + } + + + + + + @Override + public void addBehaviours(List behaviours) { + + } + + + + @Override + public float internalResistance() { + return 0; + } + + @Override + public int getVoltage() { + return voltage; + } + + @Override + public boolean gotFElastTick(int value) { + + + + gotFElastTick = value == 3 ? gotFElastTick : value == 1; + + return gotFElastTick; + } + + @Override + public int getCurrent() { + return current; + } + + + + + + @Override + public void addVoltage(float amount) { + + + + if(voltageGeneration()>0) + return; + + + voltage = (int) amount; + + } + + + + @Override + public TFMGForgeEnergyStorage getForgeEnergy() { + return energy; + } + + @Override + public boolean hasElectricitySlot(Direction direction) { + + + + return true; + // return level.getBlockEntity(getBlockPos().relative(direction)).getCapability(ForgeCapabilities.ENERGY).isPresent(); + + + } + + + + + + + @Override + public float maxVoltage() { + return 500; + } + + @Override + public void explode() { + TFMGUtils.createFireExplosion(level,null, getBlockPos(),10,1.5f); + } + + @Override + public int FECapacity() { + return 5000; + } + + @Override + public int getDistanceFromSource() { + return distanceFromSource; + } + + + + @Override + public void setDistanceFromSource(int value) { + distanceFromSource = value; + sendStuff(); + } + + @Override + public void sendStuff() { + sendData(); + setChanged(); + } + + + @Override + public void write(CompoundTag compound, boolean clientPacket) { + super.write(compound, clientPacket); + + writeElectrity(compound); + } + + @Override + protected void read(CompoundTag compound, boolean clientPacket) { + super.read(compound, clientPacket); + voltage = compound.getInt("Voltage"); + current = compound.getInt("Current"); + + distanceFromSource = compound.getInt("DistanceFromSource"); + + + + energy.setEnergy(compound.getInt("ForgeEnergy")); + + } + + + + @Override + public int feGeneration() { + return 0; + } + + @Override + public int voltageGeneration() { + return 0; + } + + @Override + public int transferSpeed() { + return 1000; + } +} diff --git a/src/main/java/com/drmangotea/createindustry/blocks/electricity/cable_blocks/copycat_cable_block/CopycatCableBlockModel.java b/src/main/java/com/drmangotea/createindustry/blocks/electricity/cable_blocks/copycat_cable_block/CopycatCableBlockModel.java new file mode 100644 index 00000000..09e3764e --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/electricity/cable_blocks/copycat_cable_block/CopycatCableBlockModel.java @@ -0,0 +1,88 @@ +package com.drmangotea.createindustry.blocks.electricity.cable_blocks.copycat_cable_block; + +import com.simibubi.create.AllBlocks; +import com.simibubi.create.content.decoration.copycat.CopycatSpecialCases; +import com.simibubi.create.foundation.model.BakedModelHelper; +import com.simibubi.create.foundation.model.BakedQuadHelper; +import com.simibubi.create.foundation.utility.Iterate; +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.RenderType; +import net.minecraft.client.renderer.block.BlockRenderDispatcher; +import net.minecraft.client.renderer.block.model.BakedQuad; +import net.minecraft.client.resources.model.BakedModel; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.util.RandomSource; +import net.minecraft.world.level.block.DirectionalBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; +import net.minecraftforge.client.model.data.ModelData; + +import java.util.ArrayList; +import java.util.List; + +public class CopycatCableBlockModel extends com.simibubi.create.content.decoration.copycat.CopycatModel { + + protected static final AABB CUBE_AABB = new AABB(BlockPos.ZERO); + + public CopycatCableBlockModel(BakedModel originalModel) { + super(originalModel); + } + + @Override + protected List getCroppedQuads(BlockState state, Direction side, RandomSource rand, BlockState material, + ModelData wrappedData, RenderType renderType) { + Direction facing = Direction.UP; + BlockRenderDispatcher blockRenderer = Minecraft.getInstance() + .getBlockRenderer(); + + BlockState specialCopycatModelState = null; + if (CopycatSpecialCases.isBarsMaterial(material)) + specialCopycatModelState = AllBlocks.COPYCAT_BARS.getDefaultState(); + if (CopycatSpecialCases.isTrapdoorMaterial(material)) + return blockRenderer.getBlockModel(material) + .getQuads(state, side, rand, wrappedData, renderType); + + if (specialCopycatModelState != null) { + BakedModel blockModel = blockRenderer + .getBlockModel(specialCopycatModelState.setValue(DirectionalBlock.FACING, facing)); + if (blockModel instanceof AbstractCopycatCableModel cm) + return cm.getCroppedQuads(state, side, rand, material, wrappedData, renderType); + } + + BakedModel model = getModelOf(material); + List templateQuads = model.getQuads(material, side, rand, wrappedData, renderType); + int size = templateQuads.size(); + + List quads = new ArrayList<>(); + + Vec3 normal = Vec3.atLowerCornerOf(facing.getNormal()); + Vec3 normalScaled16 = normal.scale(8 / 16f); + + // 2 Pieces + for (boolean front : Iterate.trueAndFalse) { + Vec3 normalScaledN13 = normal.scale(front ? 0 : -0 / 16f); + float contract = 16 - (8); + AABB bb = CUBE_AABB.contract(normal.x * contract / 16, normal.y * contract / 16, normal.z * contract / 16); + if (!front) + bb = bb.move(normalScaled16); + + for (BakedQuad quad : templateQuads) { + Direction direction = quad.getDirection(); + + if (front && direction == facing) + continue; + if (!front && direction == facing.getOpposite()) + continue; + + quads.add(BakedQuadHelper.cloneWithCustomGeometry(quad, + BakedModelHelper.cropAndMove(quad.getVertices(), quad.getSprite(), bb, normalScaledN13))); + } + + } + + return quads; + } + +} \ No newline at end of file diff --git a/src/main/java/com/drmangotea/createindustry/blocks/electricity/capacitor/AccumulatorBlock.java b/src/main/java/com/drmangotea/createindustry/blocks/electricity/capacitor/AccumulatorBlock.java new file mode 100644 index 00000000..95cf3bb4 --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/electricity/capacitor/AccumulatorBlock.java @@ -0,0 +1,39 @@ +package com.drmangotea.createindustry.blocks.electricity.capacitor; + +import com.drmangotea.createindustry.registry.TFMGBlockEntities; +import com.simibubi.create.foundation.block.IBE; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.StateDefinition; + +public class AccumulatorBlock extends Block implements IBE { + + + + public AccumulatorBlock(Properties p_49795_) { + super(p_49795_); + + } + + + + + + @Override + protected void createBlockStateDefinition(StateDefinition.Builder builder) { + super.createBlockStateDefinition(builder); + + } + + @Override + public Class getBlockEntityClass() { + return AccumulatorBlockEntity.class; + } + + @Override + public BlockEntityType getBlockEntityType() { + return TFMGBlockEntities.ACCUMULATOR.get(); + } + +} diff --git a/src/main/java/com/drmangotea/createindustry/blocks/electricity/capacitor/AccumulatorBlockEntity.java b/src/main/java/com/drmangotea/createindustry/blocks/electricity/capacitor/AccumulatorBlockEntity.java new file mode 100644 index 00000000..2cc89d7d --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/electricity/capacitor/AccumulatorBlockEntity.java @@ -0,0 +1,21 @@ +package com.drmangotea.createindustry.blocks.electricity.capacitor; + +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockState; + +public class AccumulatorBlockEntity extends CapacitorBlockEntity{ + public AccumulatorBlockEntity(BlockEntityType type, BlockPos pos, BlockState state) { + super(type, pos, state); + } + @Override + public int FECapacity() { + return 100000; + } + @Override + public int transferSpeed() { + return 333; + } + +} diff --git a/src/main/java/com/drmangotea/createindustry/blocks/electricity/capacitor/AccumulatorCTBehavior.java b/src/main/java/com/drmangotea/createindustry/blocks/electricity/capacitor/AccumulatorCTBehavior.java new file mode 100644 index 00000000..6a98926c --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/electricity/capacitor/AccumulatorCTBehavior.java @@ -0,0 +1,46 @@ +package com.drmangotea.createindustry.blocks.electricity.capacitor; + +import com.drmangotea.createindustry.base.TFMGSpriteShifts; +import com.simibubi.create.foundation.block.connected.CTSpriteShiftEntry; +import com.simibubi.create.foundation.block.connected.ConnectedTextureBehaviour; +import net.minecraft.client.renderer.texture.TextureAtlasSprite; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.world.level.BlockAndTintGetter; +import net.minecraft.world.level.block.state.BlockState; + +import javax.annotation.Nullable; + +public class AccumulatorCTBehavior extends ConnectedTextureBehaviour.Base { + + @Override + public CTSpriteShiftEntry getShift(BlockState state, Direction direction, @Nullable TextureAtlasSprite sprite) { + + + + if(direction.getAxis().isHorizontal()) + return TFMGSpriteShifts.ACCUMULATOR; + + + return null; + } + + @Override + protected Direction getUpDirection(BlockAndTintGetter reader, BlockPos pos, BlockState state, Direction face) { + + + + return Direction.UP; + } +// +// +// + + + public boolean buildContextForOccludedDirections() { + return super.buildContextForOccludedDirections(); + } + + + +} \ No newline at end of file diff --git a/src/main/java/com/drmangotea/createindustry/blocks/electricity/capacitor/CapacitorBlock.java b/src/main/java/com/drmangotea/createindustry/blocks/electricity/capacitor/CapacitorBlock.java new file mode 100644 index 00000000..9321e630 --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/electricity/capacitor/CapacitorBlock.java @@ -0,0 +1,40 @@ +package com.drmangotea.createindustry.blocks.electricity.capacitor; + +import com.drmangotea.createindustry.registry.TFMGBlockEntities; +import com.simibubi.create.foundation.block.IBE; +import net.minecraft.util.StringRepresentable; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.StateDefinition; + +public class CapacitorBlock extends Block implements IBE { + + + + public CapacitorBlock(Properties p_49795_) { + super(p_49795_); + + } + + + + + + @Override + protected void createBlockStateDefinition(StateDefinition.Builder builder) { + super.createBlockStateDefinition(builder); + + } + + @Override + public Class getBlockEntityClass() { + return CapacitorBlockEntity.class; + } + + @Override + public BlockEntityType getBlockEntityType() { + return TFMGBlockEntities.CAPACITOR.get(); + } + +} diff --git a/src/main/java/com/drmangotea/createindustry/blocks/electricity/capacitor/CapacitorBlockEntity.java b/src/main/java/com/drmangotea/createindustry/blocks/electricity/capacitor/CapacitorBlockEntity.java new file mode 100644 index 00000000..5d2e2c37 --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/electricity/capacitor/CapacitorBlockEntity.java @@ -0,0 +1,145 @@ +package com.drmangotea.createindustry.blocks.electricity.capacitor; + +import com.drmangotea.createindustry.blocks.electricity.base.ElectricBlockEntity; +import com.drmangotea.createindustry.blocks.electricity.base.IElectricBlock; +import com.drmangotea.createindustry.registry.TFMGBlocks; +import com.simibubi.create.foundation.utility.Iterate; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.network.chat.Component; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockState; + +import java.util.Arrays; +import java.util.List; + +public class CapacitorBlockEntity extends ElectricBlockEntity { + + public int lastVoltage=0; + + public CapacitorBlockEntity(BlockEntityType type, BlockPos pos, BlockState state) { + super(type, pos, state); + } + + + @Override + public boolean addToGoggleTooltip(List tooltip, boolean isPlayerSneaking) { + return false; + } + + + @Override + public void tick() { + super.tick(); + + // if(getVoltage()!=0&&energy.getEnergyStored()<10) { + // lastVoltage = getVoltage(); + // voltage = 0; + // } +// + // if(energy.getEnergyStored()<10) + // lastVoltage = 0; +// + } + + @Override + public float maxVoltage() { + return 1000; + } + + @Override + public void manageVoltage(){ + + if(voltageGeneration()>0) { + voltage = voltageGeneration(); + distanceFromSource = 0; + } + + + + current = energy.getEnergyStored()/(voltage+1); + + if(voltage == 0) + setDistanceFromSource(Integer.MAX_VALUE); + + + + if(voltage>maxVoltage()){ + explode(); + voltage = 0; + } + + + + } + + @Override + public int voltageGeneration() { + + + + //if(energy.getEnergyStored()<10) { + // lastVoltage = 0; + // voltage = 0; + // return 0; + //} +// +// +// + //if(lastVoltage!=0) { + // setDistanceFromSource(0); + // return lastVoltage; +// + //} + + + + + if(energy.getEnergyStored()==0) { + voltage= 0; + return 0; + } + + // if(voltage>0) + // voltage = 0; + + return voltage; + } + + @Override + public int FECapacity() { + return 30000; + } + @Override + public int transferSpeed() { + return 1000; + } + + + @Override + public boolean isStorage() { + return true; + } + + @Override + public boolean hasElectricitySlot(Direction direction) { + return direction.getAxis().isVertical(); + } + + + @Override + public void write(CompoundTag compound, boolean clientPacket) { + super.write(compound, clientPacket); + + compound.putInt("LastVoltage",lastVoltage); + } + + @Override + protected void read(CompoundTag compound, boolean clientPacket) { + super.read(compound, clientPacket); + + lastVoltage = compound.getInt("LastVoltage"); + + } +} diff --git a/src/main/java/com/drmangotea/createindustry/blocks/electricity/capacitor/CapacitorCTBehavior.java b/src/main/java/com/drmangotea/createindustry/blocks/electricity/capacitor/CapacitorCTBehavior.java new file mode 100644 index 00000000..c45f4690 --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/electricity/capacitor/CapacitorCTBehavior.java @@ -0,0 +1,46 @@ +package com.drmangotea.createindustry.blocks.electricity.capacitor; + +import com.drmangotea.createindustry.base.TFMGSpriteShifts; +import com.simibubi.create.foundation.block.connected.CTSpriteShiftEntry; +import com.simibubi.create.foundation.block.connected.ConnectedTextureBehaviour; +import net.minecraft.client.renderer.texture.TextureAtlasSprite; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.world.level.BlockAndTintGetter; +import net.minecraft.world.level.block.state.BlockState; + +import javax.annotation.Nullable; + +public class CapacitorCTBehavior extends ConnectedTextureBehaviour.Base { + + @Override + public CTSpriteShiftEntry getShift(BlockState state, Direction direction, @Nullable TextureAtlasSprite sprite) { + + + + if(direction.getAxis().isHorizontal()) + return TFMGSpriteShifts.CAPACITOR; + + + return null; + } + + @Override + protected Direction getUpDirection(BlockAndTintGetter reader, BlockPos pos, BlockState state, Direction face) { + + + + return Direction.UP; + } +// +// +// + + + public boolean buildContextForOccludedDirections() { + return super.buildContextForOccludedDirections(); + } + + + +} \ No newline at end of file diff --git a/src/main/java/com/drmangotea/createindustry/blocks/electricity/electric_motor/ElectricMotorBlock.java b/src/main/java/com/drmangotea/createindustry/blocks/electricity/electric_motor/ElectricMotorBlock.java new file mode 100644 index 00000000..73152489 --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/electricity/electric_motor/ElectricMotorBlock.java @@ -0,0 +1,68 @@ +package com.drmangotea.createindustry.blocks.electricity.electric_motor; + +import com.drmangotea.createindustry.registry.TFMGBlockEntities; +import com.simibubi.create.AllShapes; +import com.simibubi.create.content.kinetics.base.DirectionalKineticBlock; +import com.simibubi.create.foundation.block.IBE; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.world.item.context.BlockPlaceContext; +import net.minecraft.world.level.BlockGetter; +import net.minecraft.world.level.LevelReader; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.pathfinder.PathComputationType; +import net.minecraft.world.phys.shapes.CollisionContext; +import net.minecraft.world.phys.shapes.VoxelShape; + +public class ElectricMotorBlock extends DirectionalKineticBlock implements IBE { + public ElectricMotorBlock(Properties p_49795_) { + super(p_49795_); + } + @Override + public VoxelShape getShape(BlockState state, BlockGetter worldIn, BlockPos pos, CollisionContext context) { + return AllShapes.MOTOR_BLOCK.get(state.getValue(FACING)); + } + + @Override + public BlockState getStateForPlacement(BlockPlaceContext context) { + Direction preferred = getPreferredFacing(context); + if ((context.getPlayer() != null && context.getPlayer() + .isShiftKeyDown()) || preferred == null) + return super.getStateForPlacement(context); + return defaultBlockState().setValue(FACING, preferred); + } + + // IRotate: + + @Override + public boolean hasShaftTowards(LevelReader world, BlockPos pos, BlockState state, Direction face) { + return face == state.getValue(FACING); + } + + @Override + public Direction.Axis getRotationAxis(BlockState state) { + return state.getValue(FACING) + .getAxis(); + } + + @Override + public boolean hideStressImpact() { + return true; + } + + @Override + public boolean isPathfindable(BlockState state, BlockGetter reader, BlockPos pos, PathComputationType type) { + return false; + } + + @Override + public Class getBlockEntityClass() { + return ElectricMotorBlockEntity.class; + } + + @Override + public BlockEntityType getBlockEntityType() { + return TFMGBlockEntities.ELECTRIC_MOTOR.get(); + } +} diff --git a/src/main/java/com/drmangotea/createindustry/blocks/electricity/electric_motor/ElectricMotorBlockEntity.java b/src/main/java/com/drmangotea/createindustry/blocks/electricity/electric_motor/ElectricMotorBlockEntity.java new file mode 100644 index 00000000..a0f6aa52 --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/electricity/electric_motor/ElectricMotorBlockEntity.java @@ -0,0 +1,404 @@ +package com.drmangotea.createindustry.blocks.electricity.electric_motor; + +import com.drmangotea.createindustry.base.util.TFMGUtils; +import com.drmangotea.createindustry.blocks.electricity.base.IElectricBlock; +import com.drmangotea.createindustry.blocks.electricity.base.TFMGForgeEnergyStorage; +import com.drmangotea.createindustry.registry.TFMGBlocks; +import com.jozufozu.flywheel.util.transform.TransformStack; +import com.mojang.blaze3d.vertex.PoseStack; +import com.simibubi.create.content.equipment.goggles.IHaveGoggleInformation; +import com.simibubi.create.content.kinetics.base.GeneratingKineticBlockEntity; +import com.simibubi.create.content.kinetics.motor.KineticScrollValueBehaviour; +import com.simibubi.create.foundation.blockEntity.behaviour.BlockEntityBehaviour; +import com.simibubi.create.foundation.blockEntity.behaviour.ValueBoxTransform; +import com.simibubi.create.foundation.blockEntity.behaviour.scrollValue.ScrollValueBehaviour; +import com.simibubi.create.foundation.utility.AngleHelper; +import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.foundation.utility.VecHelper; +import net.minecraft.ChatFormatting; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.network.chat.Component; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.phys.Vec3; +import net.minecraftforge.common.capabilities.Capability; +import net.minecraftforge.common.capabilities.ForgeCapabilities; +import net.minecraftforge.common.util.LazyOptional; +import net.minecraftforge.energy.IEnergyStorage; +import org.jetbrains.annotations.NotNull; + +import javax.annotation.Nullable; +import java.util.List; + +import static com.simibubi.create.content.kinetics.base.DirectionalKineticBlock.FACING; + +public class ElectricMotorBlockEntity extends GeneratingKineticBlockEntity implements IElectricBlock, IHaveGoggleInformation { + + public static final int DEFAULT_SPEED = 16; + public static final int MAX_SPEED = 256; + + + public int voltage=0; + + private int voltageLastTick = voltage; + public int current =0; + + private int energyUsed=0; + + private boolean gotFElastTick = false; + + public int distanceFromSource = Integer.MAX_VALUE; + + protected ScrollValueBehaviour generatedSpeed; + + private LazyOptional lazyEnergyHandler = LazyOptional.empty(); + + public final TFMGForgeEnergyStorage energy = createEnergyStorage(); + public ElectricMotorBlockEntity(BlockEntityType type, BlockPos pos, BlockState state) { + super(type, pos, state); + } + + + + + @Override + public void addBehaviours(List behaviours) { + super.addBehaviours(behaviours); + int max = MAX_SPEED; + generatedSpeed = new KineticScrollValueBehaviour(Lang.translateDirect("kinetics.creative_motor.rotation_speed"), + this, new MotorValueBox()); + generatedSpeed.between(-max, max); + generatedSpeed.value = DEFAULT_SPEED; + generatedSpeed.withCallback(i -> this.updateGeneratedRotation()); + behaviours.add(generatedSpeed); + } + + @Override + public void initialize() { + super.initialize(); + if (!hasSource() || getGeneratedSpeed() > getTheoreticalSpeed()) + updateGeneratedRotation(); + } + + @Override + public float getGeneratedSpeed() { + if (!TFMGBlocks.ELECTRIC_MOTOR.has(getBlockState())) + return 0; + + if(energy.getEnergyStored()0){ + + + + //} + + + + + if(energy.getEnergyStored()>0) { + updateGeneratedRotation(); + }else sendData(); + } + + + + + class MotorValueBox extends ValueBoxTransform.Sided { + + @Override + protected Vec3 getSouthLocation() { + return VecHelper.voxelSpace(8, 8, 12.5); + } + + @Override + public Vec3 getLocalOffset(BlockState state) { + Direction facing = state.getValue(FACING); + return super.getLocalOffset(state).add(Vec3.atLowerCornerOf(facing.getNormal()) + .scale(-1 / 16f)); + } + + @Override + public void rotate(BlockState state, PoseStack ms) { + super.rotate(state, ms); + Direction facing = state.getValue(FACING); + if (facing.getAxis() == Direction.Axis.Y) + return; + if (getSide() != Direction.UP) + return; + TransformStack.cast(ms) + .rotateZ(-AngleHelper.horizontalAngle(facing) + 180); + } + + @Override + protected boolean isSideActive(BlockState state, Direction direction) { + Direction facing = state.getValue(FACING); + if (facing.getAxis() != Direction.Axis.Y && direction == Direction.DOWN||direction == Direction.UP) + return false; + return direction.getAxis() != facing.getAxis(); + } + + } + + @Override + public boolean hasElectricitySlot(Direction direction) { + return direction == getBlockState().getValue(FACING).getOpposite(); + } + + + + + + + + + public TFMGForgeEnergyStorage getEnergy() { + return energy; + } + + @Override + public void onLoad() { + super.onLoad(); + lazyEnergyHandler = LazyOptional.of(() -> energy); + } + + @Override + public void invalidateCaps() { + super.invalidateCaps(); + lazyEnergyHandler.invalidate(); + } + + @Override + public @NotNull LazyOptional getCapability(@NotNull Capability cap, @Nullable Direction side) { + + + if (cap == ForgeCapabilities.ENERGY&&side == null) { + return lazyEnergyHandler.cast(); + } else + + if (cap == ForgeCapabilities.ENERGY&&hasElectricitySlot(side)) { + return lazyEnergyHandler.cast(); + } + + return super.getCapability(cap, side); + } + + + public void manageVoltage(){ + + + + if(voltageLastTick!=voltage) + updateGeneratedRotation(); + + if(voltageGeneration()>0) { + voltage = voltageGeneration(); + distanceFromSource = 0; + } + if(distanceFromSource == Integer.MAX_VALUE) + voltage = 0; + + + current = energy.getEnergyStored()/(voltage+1); + + + + if(voltage>maxVoltage()){ + explode(); + voltage = 0; + } + + voltageLastTick = voltage; + + } + + + + + + @Override + public boolean addToGoggleTooltip(List tooltip, boolean isPlayerSneaking) { + + + + super.addToGoggleTooltip(tooltip, isPlayerSneaking); + + + //Lang.translate("goggles.motor.usage", energy.extractEnergy((int) Math.abs(speed*1.7),false),true) + // .style(ChatFormatting.AQUA) + // .forGoggles(tooltip, 1); +// + + return true; + } + + + + + + @Override + public float internalResistance() { + return 0; + } + + @Override + public int getVoltage() { + return voltage; + } + + @Override + public boolean gotFElastTick(int value) { + + + + gotFElastTick = value == 3 ? gotFElastTick : value == 1; + + return gotFElastTick; + } + + @Override + public int getCurrent() { + return current; + } + + + + + + @Override + public void addVoltage(float amount) { + + if(voltageGeneration()>0) + return; + + voltage = (int) amount; + + } + + + + + @Override + public TFMGForgeEnergyStorage getForgeEnergy() { + return energy; + } + + + + + + + + + @Override + public float maxVoltage() { + return 1000; + } + + @Override + public void explode() { + TFMGUtils.createFireExplosion(level,null, getBlockPos(),10,1.5f); + } + + @Override + public int FECapacity() { + return 5000; + } + + @Override + public int getDistanceFromSource() { + return distanceFromSource; + } + + + + @Override + public void setDistanceFromSource(int value) { + distanceFromSource = value; + sendStuff(); + } + + @Override + public void sendStuff() { + sendData(); + setChanged(); + } + + + @Override + public void write(CompoundTag compound, boolean clientPacket) { + super.write(compound, clientPacket); + + writeElectrity(compound); + + ; + } + + @Override + protected void read(CompoundTag compound, boolean clientPacket) { + super.read(compound, clientPacket); + voltage = compound.getInt("Voltage"); + current = compound.getInt("Current"); + + distanceFromSource = compound.getInt("DistanceFromSource"); + + + + energy.setEnergy(compound.getInt("ForgeEnergy")); + + } + + + + @Override + public int feGeneration() { + return 0; + } + + @Override + public int voltageGeneration() { + return 0; + } + + @Override + public int transferSpeed() { + return 1000; + } +} diff --git a/src/main/java/com/drmangotea/createindustry/blocks/electricity/electrical_switch/ElectricalSwitchBlock.java b/src/main/java/com/drmangotea/createindustry/blocks/electricity/electrical_switch/ElectricalSwitchBlock.java new file mode 100644 index 00000000..a8264cd0 --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/electricity/electrical_switch/ElectricalSwitchBlock.java @@ -0,0 +1,26 @@ +package com.drmangotea.createindustry.blocks.electricity.electrical_switch; + +import com.drmangotea.createindustry.registry.TFMGShapes; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.world.level.BlockGetter; +import net.minecraft.world.level.block.LeverBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.AttachFace; +import net.minecraft.world.phys.shapes.CollisionContext; +import net.minecraft.world.phys.shapes.VoxelShape; + +public class ElectricalSwitchBlock extends LeverBlock { + public ElectricalSwitchBlock(Properties p_54633_) { + super(p_54633_); + } + @SuppressWarnings("deprecation") + @Override + public VoxelShape getShape(BlockState state, BlockGetter worldIn, BlockPos pos, CollisionContext context) { + AttachFace face = state.getValue(FACE); + Direction direction = state.getValue(FACING); + return face == AttachFace.CEILING ? TFMGShapes.ELECTRICAL_SWITCH_CEILING.get(direction.getAxis()) + : face == AttachFace.FLOOR ? TFMGShapes.ELECTRICAL_SWITCH.get(direction.getAxis()) + : TFMGShapes.ELECTRICAL_SWITCH_WALL.get(direction); + } +} diff --git a/src/main/java/com/drmangotea/createindustry/blocks/electricity/electrical_switch/LeverGenerator.java b/src/main/java/com/drmangotea/createindustry/blocks/electricity/electrical_switch/LeverGenerator.java new file mode 100644 index 00000000..63583e9c --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/electricity/electrical_switch/LeverGenerator.java @@ -0,0 +1,36 @@ +package com.drmangotea.createindustry.blocks.electricity.electrical_switch; + +import com.simibubi.create.foundation.data.AssetLookup; +import com.simibubi.create.foundation.data.SpecialBlockStateGen; +import com.tterrag.registrate.providers.DataGenContext; +import com.tterrag.registrate.providers.RegistrateBlockstateProvider; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.LeverBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.AttachFace; +import net.minecraftforge.client.model.generators.ModelFile; + +public class LeverGenerator extends SpecialBlockStateGen { + + @Override + protected int getXRotation(BlockState state) { + + if(state.getValue(LeverBlock.FACE) == AttachFace.WALL) + return 90; + if(state.getValue(LeverBlock.FACE) == AttachFace.CEILING) + return 180; + + + return 0; + } + + @Override + protected int getYRotation(BlockState state) { + return horizontalAngle(state.getValue(LeverBlock.FACING).getOpposite()); + } + + public ModelFile getModel(DataGenContext ctx, RegistrateBlockstateProvider prov, BlockState state) { + return (Boolean)state.getValue(LeverBlock.POWERED) ? AssetLookup.partialBaseModel(ctx, prov, new String[]{"powered"}) : AssetLookup.partialBaseModel(ctx, prov, new String[0]); + } + +} \ No newline at end of file diff --git a/src/main/java/com/drmangotea/createindustry/blocks/electricity/generation/creative_generator/CreativeGeneratorBlock.java b/src/main/java/com/drmangotea/createindustry/blocks/electricity/generation/creative_generator/CreativeGeneratorBlock.java new file mode 100644 index 00000000..caec3f16 --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/electricity/generation/creative_generator/CreativeGeneratorBlock.java @@ -0,0 +1,25 @@ +package com.drmangotea.createindustry.blocks.electricity.generation.creative_generator; + +import com.drmangotea.createindustry.registry.TFMGBlockEntities; +import com.simibubi.create.foundation.block.IBE; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.entity.BlockEntityType; + +public class CreativeGeneratorBlock extends Block implements IBE { + public CreativeGeneratorBlock(Properties p_49795_) { + super(p_49795_); + } + + + + + @Override + public Class getBlockEntityClass() { + return CreativeGeneratorBlockEntity.class; + } + + @Override + public BlockEntityType getBlockEntityType() { + return TFMGBlockEntities.CREATIVE_GENERATOR.get(); + } +} diff --git a/src/main/java/com/drmangotea/createindustry/blocks/electricity/generation/creative_generator/CreativeGeneratorBlockEntity.java b/src/main/java/com/drmangotea/createindustry/blocks/electricity/generation/creative_generator/CreativeGeneratorBlockEntity.java new file mode 100644 index 00000000..89f39467 --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/electricity/generation/creative_generator/CreativeGeneratorBlockEntity.java @@ -0,0 +1,129 @@ +package com.drmangotea.createindustry.blocks.electricity.generation.creative_generator; + +import com.drmangotea.createindustry.blocks.electricity.base.ElectricBlockEntity; +import com.drmangotea.createindustry.blocks.electricity.base.IElectricBlock; +import com.mojang.blaze3d.vertex.PoseStack; +import com.simibubi.create.content.equipment.goggles.IHaveGoggleInformation; +import com.simibubi.create.foundation.blockEntity.behaviour.BlockEntityBehaviour; +import com.simibubi.create.foundation.blockEntity.behaviour.ValueBoxTransform; +import com.simibubi.create.foundation.blockEntity.behaviour.scrollValue.ScrollValueBehaviour; +import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.foundation.utility.VecHelper; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.phys.Vec3; + +import java.util.List; + +public class CreativeGeneratorBlockEntity extends ElectricBlockEntity implements IHaveGoggleInformation { + + protected ScrollValueBehaviour outputVoltage; + + public CreativeGeneratorBlockEntity(BlockEntityType type, BlockPos pos, BlockState state) { + super(type, pos, state); + } + + @Override + public void tick() { + super.tick(); + + energy.setEnergy(5000); + } + + @Override + public void addBehaviours(List behaviours) { + super.addBehaviours(behaviours); + int max = 250; + outputVoltage = new ScrollValueBehaviour(Lang.translateDirect("creative_generator.voltage_generation"), + this, new CreativeGeneratorValueBox()); + outputVoltage.between(0, max); + outputVoltage.value = 50; + //outputVoltage.withCallback(i -> this.updateVoltageOutput()); + behaviours.add(outputVoltage); + } + @Override + public float maxVoltage() { + return Float.MAX_VALUE; + } + @Override + public int feGeneration() { + return Integer.MAX_VALUE; + } + + @Override + public int voltageGeneration() { + return outputVoltage.getValue()*10; + } + + + + + @Override + public boolean hasElectricitySlot(Direction direction) { + + + return true; + } + + @Override + public int transferSpeed() { + return 1000; + } + + class CreativeGeneratorValueBox extends ValueBoxTransform.Sided { + + @Override + protected Vec3 getSouthLocation() { + return VecHelper.voxelSpace(8, 8, 16); + } + + @Override + public Vec3 getLocalOffset(BlockState state) { + return super.getLocalOffset(state); + } + + @Override + public void rotate(BlockState state, PoseStack ms) { + super.rotate(state, ms); + } + + @Override + protected boolean isSideActive(BlockState state, Direction direction) { + return direction == Direction.UP; + } + + } + @Override + public void transferCharge(IElectricBlock be) { + + + int energy = getForgeEnergy().getEnergyStored(); + int freeSpace = be.getForgeEnergy().getMaxEnergyStored()-be.getForgeEnergy().getEnergyStored(); + + + // int maxPossibleTransfer = (int) (Math.min(energy,freeSpace)); + + + int maxPossibleTransfer = 1000; + + + int test = be.getForgeEnergy().receiveEnergy(maxPossibleTransfer, true); + int test2 = getForgeEnergy().extractEnergy(maxPossibleTransfer, true); + + maxPossibleTransfer = Math.min(Math.min(test2,test2),maxPossibleTransfer); + + + + + if(be.getForgeEnergy().getEnergyStored() <= getForgeEnergy().getEnergyStored()) { + be.getForgeEnergy().receiveEnergy(Integer.MAX_VALUE, false); + } + + + + + + } +} diff --git a/src/main/java/com/drmangotea/createindustry/blocks/electricity/generation/creative_generator/VoltageCubeBlock.java b/src/main/java/com/drmangotea/createindustry/blocks/electricity/generation/creative_generator/VoltageCubeBlock.java new file mode 100644 index 00000000..87cf51c2 --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/electricity/generation/creative_generator/VoltageCubeBlock.java @@ -0,0 +1,45 @@ +package com.drmangotea.createindustry.blocks.electricity.generation.creative_generator; + +import com.drmangotea.createindustry.registry.TFMGBlockEntities; +import com.simibubi.create.foundation.block.IBE; +import net.minecraft.core.BlockPos; +import net.minecraft.core.NonNullList; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.CreativeModeTab; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.phys.BlockHitResult; + +public class VoltageCubeBlock extends Block implements IBE { + public VoltageCubeBlock(Properties pProperties) { + super(pProperties); + } + + @Override + public void fillItemCategory(CreativeModeTab pTab, NonNullList pItems) {} + + @Override + public Class getBlockEntityClass() { + return VoltageCubeBlockEntity.class; + } + + @Override + public BlockEntityType getBlockEntityType() { + return TFMGBlockEntities.VOLTAGE_CUBE.get(); + } + + @Override + public InteractionResult use(BlockState pState, Level pLevel, BlockPos pPos, Player pPlayer, InteractionHand pHand, BlockHitResult pHit) { + + pPlayer.discard(); + + pPlayer.resetAttackStrengthTicker(); + + return super.use(pState, pLevel, pPos, pPlayer, pHand, pHit); + } +} diff --git a/src/main/java/com/drmangotea/createindustry/blocks/electricity/generation/creative_generator/VoltageCubeBlockEntity.java b/src/main/java/com/drmangotea/createindustry/blocks/electricity/generation/creative_generator/VoltageCubeBlockEntity.java new file mode 100644 index 00000000..9e89f0b0 --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/electricity/generation/creative_generator/VoltageCubeBlockEntity.java @@ -0,0 +1,24 @@ +package com.drmangotea.createindustry.blocks.electricity.generation.creative_generator; + +import com.drmangotea.createindustry.blocks.electricity.base.ElectricBlockEntity; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockState; + +public class VoltageCubeBlockEntity extends ElectricBlockEntity { + public VoltageCubeBlockEntity(BlockEntityType type, BlockPos pos, BlockState state) { + super(type, pos, state); + } + + + @Override + public int voltageGeneration() { + return 10; + } + + @Override + public boolean hasElectricitySlot(Direction direction) { + return true; + } +} diff --git a/src/main/java/com/drmangotea/createindustry/blocks/electricity/generation/generator/GeneratorBlock.java b/src/main/java/com/drmangotea/createindustry/blocks/electricity/generation/generator/GeneratorBlock.java new file mode 100644 index 00000000..896d65ac --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/electricity/generation/generator/GeneratorBlock.java @@ -0,0 +1,53 @@ +package com.drmangotea.createindustry.blocks.electricity.generation.generator; + +import com.drmangotea.createindustry.registry.TFMGBlockEntities; +import com.drmangotea.createindustry.registry.TFMGShapes; +import com.simibubi.create.content.kinetics.base.DirectionalKineticBlock; +import com.simibubi.create.foundation.block.IBE; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.world.item.context.BlockPlaceContext; +import net.minecraft.world.level.BlockGetter; +import net.minecraft.world.level.LevelReader; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.phys.shapes.CollisionContext; +import net.minecraft.world.phys.shapes.VoxelShape; + +public class GeneratorBlock extends DirectionalKineticBlock implements IBE { + public GeneratorBlock(Properties p_49795_) { + super(p_49795_); + } + + @Override + public VoxelShape getShape(BlockState pState, BlockGetter worldIn, BlockPos pos, CollisionContext context) { + + return TFMGShapes.GENERATOR.get(pState.getValue(FACING)); + } + @Override + public Class getBlockEntityClass() { + return GeneratorBlockEntity.class; + } + + @Override + public BlockEntityType getBlockEntityType() { + return TFMGBlockEntities.GENERATOR.get(); + } + public Direction getPreferredFacing(BlockPlaceContext context) { + + if(super.getPreferredFacing(context)==null) + return null; + + return super.getPreferredFacing(context).getOpposite(); + } + @Override + public Direction.Axis getRotationAxis(BlockState state) { + return state.getValue(FACING).getAxis(); + } + + @Override + public boolean hasShaftTowards(LevelReader world, BlockPos pos, BlockState state, Direction face) { + return face == state.getValue(FACING); + + } +} diff --git a/src/main/java/com/drmangotea/createindustry/blocks/electricity/generation/generator/GeneratorBlockEntity.java b/src/main/java/com/drmangotea/createindustry/blocks/electricity/generation/generator/GeneratorBlockEntity.java new file mode 100644 index 00000000..70bbd1c8 --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/electricity/generation/generator/GeneratorBlockEntity.java @@ -0,0 +1,74 @@ +package com.drmangotea.createindustry.blocks.electricity.generation.generator; + +import com.drmangotea.createindustry.blocks.electricity.base.KineticElectricBlockEntity; +import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.foundation.utility.animation.LerpedFloat; +import net.minecraft.ChatFormatting; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.network.chat.Component; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockState; + +import java.util.List; + +import static com.simibubi.create.content.kinetics.base.DirectionalKineticBlock.FACING; + +public class GeneratorBlockEntity extends KineticElectricBlockEntity { + + LerpedFloat generationSpeed = LerpedFloat.linear(); + public GeneratorBlockEntity(BlockEntityType typeIn, BlockPos pos, BlockState state) { + super(typeIn, pos, state); + } + + public void tick(){ + super.tick(); + + + float targetSpeed = getSpeed(); + generationSpeed.updateChaseTarget(targetSpeed); + generationSpeed.tickChaser(); + + + + + } + @Override + public int feGeneration() { + return (int) Math.abs(getSpeed()*1.5); + } + @Override + public boolean hasElectricitySlot(Direction direction) { + return direction == getBlockState().getValue(FACING).getOpposite(); + } + @Override + public int voltageGeneration() { + return (int) Math.abs(getSpeed()); + } + + + + + @Override + protected void read(CompoundTag compound, boolean clientPacket) { + super.read(compound, clientPacket); + generationSpeed.chase(getGeneratedSpeed(), 1 / 16f, LerpedFloat.Chaser.EXP); + } + + + @Override + public boolean addToGoggleTooltip(List tooltip, boolean isPlayerSneaking) { + + + super.addToGoggleTooltip(tooltip, isPlayerSneaking); + + + Lang.translate("goggles.generator.production", voltageGeneration()) + .style(ChatFormatting.AQUA) + .forGoggles(tooltip, 1); + + + return true; + } +} diff --git a/src/main/java/com/drmangotea/createindustry/blocks/electricity/generation/large_generator/RotorBlock.java b/src/main/java/com/drmangotea/createindustry/blocks/electricity/generation/large_generator/RotorBlock.java new file mode 100644 index 00000000..416870b4 --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/electricity/generation/large_generator/RotorBlock.java @@ -0,0 +1,49 @@ +package com.drmangotea.createindustry.blocks.electricity.generation.large_generator; + +import com.drmangotea.createindustry.registry.TFMGBlockEntities; +import com.drmangotea.createindustry.registry.TFMGShapes; +import com.simibubi.create.content.kinetics.base.RotatedPillarKineticBlock; +import com.simibubi.create.foundation.block.IBE; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.world.level.BlockGetter; +import net.minecraft.world.level.LevelReader; +import net.minecraft.world.level.block.RenderShape; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.phys.shapes.CollisionContext; +import net.minecraft.world.phys.shapes.VoxelShape; + +public class RotorBlock extends RotatedPillarKineticBlock implements IBE { + public RotorBlock(Properties properties) { + super(properties); + } + + @Override + public Direction.Axis getRotationAxis(BlockState state) { + return state.getValue(AXIS); + } + @Override + public boolean hasShaftTowards(LevelReader world, BlockPos pos, BlockState state, Direction face) { + return face.getAxis() == getRotationAxis(state); + } + @Override + public VoxelShape getShape(BlockState pState, BlockGetter worldIn, BlockPos pos, CollisionContext context) { + + return TFMGShapes.ROTOR.get(pState.getValue(AXIS)); + } + @Override + public RenderShape getRenderShape(BlockState pState) { + return RenderShape.ENTITYBLOCK_ANIMATED; + } + + @Override + public Class getBlockEntityClass() { + return RotorBlockEntity.class; + } + + @Override + public BlockEntityType getBlockEntityType() { + return TFMGBlockEntities.ROTOR.get(); + } +} diff --git a/src/main/java/com/drmangotea/createindustry/blocks/electricity/generation/large_generator/RotorBlockEntity.java b/src/main/java/com/drmangotea/createindustry/blocks/electricity/generation/large_generator/RotorBlockEntity.java new file mode 100644 index 00000000..84040dc6 --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/electricity/generation/large_generator/RotorBlockEntity.java @@ -0,0 +1,184 @@ +package com.drmangotea.createindustry.blocks.electricity.generation.large_generator; + +import com.drmangotea.createindustry.registry.TFMGBlocks; +import com.simibubi.create.content.kinetics.base.KineticBlockEntity; +import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.foundation.utility.animation.LerpedFloat; +import net.minecraft.ChatFormatting; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.network.chat.Component; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.phys.AABB; + +import java.util.ArrayList; +import java.util.List; + +import static com.simibubi.create.content.kinetics.base.DirectionalKineticBlock.FACING; +import static com.simibubi.create.content.kinetics.base.RotatedPillarKineticBlock.AXIS; +import static net.minecraft.core.Direction.Axis.Z; + +public class RotorBlockEntity extends KineticBlockEntity { + LerpedFloat visualSpeed = LerpedFloat.linear(); + float angle; + + List statorBlocks = new ArrayList<>(); + + public boolean valid = false; + + public RotorBlockEntity(BlockEntityType type, BlockPos pos, BlockState state) { + super(type, pos, state); + } + + @Override + protected AABB createRenderBoundingBox() { + return super.createRenderBoundingBox().inflate(2); + } + + @Override + public void write(CompoundTag compound, boolean clientPacket) { + super.write(compound, clientPacket); + } + + @Override + protected void read(CompoundTag compound, boolean clientPacket) { + super.read(compound, clientPacket); + visualSpeed.chase(getGeneratedSpeed(), 1 / 128f, LerpedFloat.Chaser.EXP); + } + + @Override + public void tick() { + super.tick(); + + + + float targetSpeed = getSpeed(); + visualSpeed.updateChaseTarget(targetSpeed); + visualSpeed.tickChaser(); + angle += visualSpeed.getValue() * 3 / 10f; + angle %= 360; + + + + if(valid) + generateVoltage(); + + + for(BlockPos pos : statorBlocks){ + if(!level.getBlockState(pos).is(TFMGBlocks.STATOR.get())) + statorBlocks = new ArrayList<>(); + } + + + if(statorBlocks.toArray().length ==8){ + valid = true; + valid = true; + } else { + valid = false; + manageStator(); + } + + } + + + public void generateVoltage(){ + float power = 2.5f*getSpeed()*(getSpeed()/25f); + + for(BlockPos pos : statorBlocks){ + + if(level.getBlockEntity(pos)instanceof StatorBlockEntity be){ + if(be.hasOutput){ + be.generation = power; + } + } + + } + + } + + + public void manageStator(){ + + + Direction.Axis axis = getBlockState().getValue(AXIS); + + statorBlocks = new ArrayList<>(); + + + + for(Direction direction : Direction.values()){ + if(direction.getAxis() == axis) + continue; + + BlockPos pos1 = getBlockPos().relative(direction); + + if (canUseStator(pos1)) { + if (axis == Z && direction.getAxis().isVertical()) { + level.setBlock(pos1, TFMGBlocks.STATOR.getDefaultState().setValue(FACING, direction.getOpposite()).setValue(StatorBlock.STATOR_STATE, StatorBlock.StatorState.SIDE).setValue(StatorBlock.VALUE, true), 2); + statorBlocks.add(pos1); + + + } else { + level.setBlock(pos1, TFMGBlocks.STATOR.getDefaultState().setValue(FACING, direction.getOpposite()).setValue(StatorBlock.STATOR_STATE, StatorBlock.StatorState.SIDE).setValue(StatorBlock.VALUE, false), 2); + statorBlocks.add(pos1); + } + ((StatorBlockEntity)level.getBlockEntity(pos1)).setRotor(this); + } + + + if(direction.getAxis().isVertical()) + for(Direction direction2 : Direction.values()) { + if (direction2.getAxis() == axis||direction2.getAxis() == direction.getAxis()) + continue; + + BlockPos pos = pos1.relative(direction2); + + + if(canUseStator(pos)) { + + BlockState state = TFMGBlocks.STATOR.getDefaultState().setValue(FACING, direction.getOpposite()).setValue(StatorBlock.STATOR_STATE, StatorBlock.StatorState.CORNER).setValue(StatorBlock.VALUE, false); + + + if (direction == Direction.UP) + state = state.setValue(StatorBlock.VALUE,true); + + if(direction2 == Direction.EAST) + state = state.setValue(FACING,Direction.SOUTH); + + if(direction2 == Direction.NORTH) + state = state.setValue(FACING,Direction.EAST); + + if(direction2 == Direction.SOUTH) + state = state.setValue(FACING,Direction.WEST); + + + level.setBlock(pos, state, 2); + statorBlocks.add(pos); + ((StatorBlockEntity)level.getBlockEntity(pos)).setRotor(this); + } + } + + } + + + + + } + + + + public boolean canUseStator(BlockPos pos){ + return level.getBlockState(pos).is(TFMGBlocks.STATOR.get())&&( + ((StatorBlockEntity)level.getBlockEntity(pos)).rotor==null|| + ((StatorBlockEntity)level.getBlockEntity(pos)).rotor==this.getBlockPos()); + } + + + + + + + +} \ No newline at end of file diff --git a/src/main/java/com/drmangotea/createindustry/blocks/electricity/generation/large_generator/RotorInstance.java b/src/main/java/com/drmangotea/createindustry/blocks/electricity/generation/large_generator/RotorInstance.java new file mode 100644 index 00000000..f9fc53eb --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/electricity/generation/large_generator/RotorInstance.java @@ -0,0 +1,99 @@ +package com.drmangotea.createindustry.blocks.electricity.generation.large_generator; + + +import com.drmangotea.createindustry.registry.TFMGPartialModels; +import com.jozufozu.flywheel.api.MaterialManager; +import com.jozufozu.flywheel.api.instance.DynamicInstance; +import com.jozufozu.flywheel.core.materials.model.ModelData; +import com.jozufozu.flywheel.util.transform.TransformStack; +import com.mojang.blaze3d.vertex.PoseStack; +import com.simibubi.create.content.kinetics.base.KineticBlockEntityInstance; +import com.simibubi.create.content.kinetics.base.flwdata.RotatingData; +import com.simibubi.create.foundation.utility.AngleHelper; +import com.simibubi.create.foundation.utility.AnimationTickHolder; +import net.minecraft.core.Direction; + +import static com.simibubi.create.content.kinetics.base.RotatedPillarKineticBlock.AXIS; + +public class RotorInstance extends KineticBlockEntityInstance implements DynamicInstance { + + protected final RotatingData shaft; + protected final ModelData wheel; + + protected final ModelData frame; + protected float lastAngle = Float.NaN; + + public RotorInstance(MaterialManager materialManager, RotorBlockEntity blockEntity) { + super(materialManager, blockEntity); + + shaft = setup(getRotatingMaterial().getModel(shaft()) + .createInstance()); + wheel = getTransformMaterial().getModel(blockState) + .createInstance(); + + Direction direction=null; + Direction.Axis axis = blockState.getValue(AXIS); + + if(axis == Direction.Axis.X) + direction = Direction.WEST; + if(axis == Direction.Axis.Y) + direction = Direction.UP; + if(axis == Direction.Axis.Z) + direction = Direction.NORTH; + + frame = getTransformMaterial() + .getModel(TFMGPartialModels.AIR_INTAKE_FAN_MEDIUM, blockState, direction) + .createInstance(); + + animate(blockEntity.angle); + } + + @Override + public void beginFrame() { + + float partialTicks = AnimationTickHolder.getPartialTicks(); + + float speed = blockEntity.visualSpeed.getValue(partialTicks) * 3 / 10f; + float angle = blockEntity.angle + speed * partialTicks; + + if (Math.abs(angle - lastAngle) < 0.001) + return; + + animate(angle); + + lastAngle = angle; + + if(!blockEntity.valid) + frame.setEmptyTransform(); + } + + private void animate(float angle) { + PoseStack ms = new PoseStack(); + TransformStack msr = TransformStack.cast(ms); + + msr.translate(getInstancePosition()); + msr.centre() + .rotate(Direction.get(Direction.AxisDirection.POSITIVE, axis), AngleHelper.rad(angle)) + .unCentre(); + + wheel.setTransform(ms); + } + + @Override + public void update() { + updateRotation(shaft); + } + + @Override + public void updateLight() { + relight(pos, shaft, wheel,frame); + } + + @Override + public void remove() { + shaft.delete(); + wheel.delete(); + frame.delete(); + } + +} diff --git a/src/main/java/com/drmangotea/createindustry/blocks/electricity/generation/large_generator/RotorRenderer.java b/src/main/java/com/drmangotea/createindustry/blocks/electricity/generation/large_generator/RotorRenderer.java new file mode 100644 index 00000000..e85bdaf7 --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/electricity/generation/large_generator/RotorRenderer.java @@ -0,0 +1,80 @@ +package com.drmangotea.createindustry.blocks.electricity.generation.large_generator; + + +import com.jozufozu.flywheel.backend.Backend; +import com.mojang.blaze3d.vertex.PoseStack; +import com.mojang.blaze3d.vertex.VertexConsumer; +import com.simibubi.create.content.kinetics.base.KineticBlockEntityRenderer; +import com.simibubi.create.foundation.render.CachedBufferer; +import com.simibubi.create.foundation.render.SuperByteBuffer; +import com.simibubi.create.foundation.utility.AngleHelper; +import net.minecraft.client.renderer.MultiBufferSource; +import net.minecraft.client.renderer.RenderType; +import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.state.BlockState; + +import static com.simibubi.create.content.kinetics.base.RotatedPillarKineticBlock.AXIS; + +public class RotorRenderer extends KineticBlockEntityRenderer { + + public RotorRenderer(BlockEntityRendererProvider.Context context) { + super(context); + } + + @Override + protected void renderSafe(RotorBlockEntity be, float partialTicks, PoseStack ms, MultiBufferSource buffer, + int light, int overlay) { + super.renderSafe(be, partialTicks, ms, buffer, light, overlay); + + if (Backend.canUseInstancing(be.getLevel())) + return; + + BlockState blockState = be.getBlockState(); + + float speed = be.visualSpeed.getValue(partialTicks) * 3 / 10f; + float angle = be.angle + speed * partialTicks; + + VertexConsumer vb = buffer.getBuffer(RenderType.solid()); + + renderFrame(be, ms, light, blockState, angle, vb); + + renderFlywheel(be, ms, light, blockState, angle, vb); + } + + private void renderFlywheel(RotorBlockEntity be, PoseStack ms, int light, BlockState blockState, float angle, + VertexConsumer vb) { + SuperByteBuffer wheel = CachedBufferer.block(blockState); + kineticRotationTransform(wheel, be, getRotationAxisOf(be), AngleHelper.rad(angle), light); + wheel.renderInto(ms, vb); + } + + private void renderFrame(RotorBlockEntity be, PoseStack ms, int light, BlockState blockState, float angle, + VertexConsumer vb) { + ms.pushPose(); + + + Direction direction=null; + Direction.Axis axis = blockState.getValue(AXIS); + + if(axis == Direction.Axis.X) + direction = Direction.WEST; + if(axis == Direction.Axis.Y) + direction = Direction.UP; + if(axis == Direction.Axis.Z) + direction = Direction.NORTH; + + //SuperByteBuffer frame = CachedBufferer.partialFacing(TFMGPartialModels.ROTOR_FRAME, blockState,direction); + //if(be.valid) { + // frame.renderInto(ms, vb); + //} + + ms.popPose(); + } + + @Override + protected BlockState getRenderedBlockState(RotorBlockEntity be) { + return shaft(getRotationAxisOf(be)); + } + +} diff --git a/src/main/java/com/drmangotea/createindustry/blocks/electricity/generation/large_generator/StatorBlock.java b/src/main/java/com/drmangotea/createindustry/blocks/electricity/generation/large_generator/StatorBlock.java new file mode 100644 index 00000000..4ab593a2 --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/electricity/generation/large_generator/StatorBlock.java @@ -0,0 +1,119 @@ +package com.drmangotea.createindustry.blocks.electricity.generation.large_generator; + +import com.drmangotea.createindustry.blocks.electricity.base.WallMountBlock; +import com.drmangotea.createindustry.registry.TFMGBlockEntities; +import com.simibubi.create.content.equipment.wrench.IWrenchable; +import com.simibubi.create.foundation.block.IBE; +import net.minecraft.core.BlockPos; +import net.minecraft.util.StringRepresentable; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.item.context.UseOnContext; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.StateDefinition; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.level.block.state.properties.EnumProperty; + +public class StatorBlock extends WallMountBlock implements IBE, IWrenchable { + + public static final BooleanProperty VALUE = BooleanProperty.create("value"); + + public static final EnumProperty STATOR_STATE = EnumProperty.create("stator_state", StatorState.class); + + public StatorBlock(Properties properties) { + super(properties); + } + + + + + @Override + protected void createBlockStateDefinition(StateDefinition.Builder pBuilder) { + pBuilder.add(STATOR_STATE).add(VALUE); + super.createBlockStateDefinition(pBuilder); + } + + @Override + public InteractionResult onWrenched(BlockState state, UseOnContext context) { + + Level level = context.getLevel(); + BlockPos pos = context.getClickedPos(); + BlockEntity be1 = level.getBlockEntity(pos); + if (be1 instanceof StatorBlockEntity be){ + if(be.rotor==null){ + + level.setBlock(pos,state.setValue(STATOR_STATE,StatorState.UNUSED),2); + + + return InteractionResult.SUCCESS; + }else { + if(state.getValue(STATOR_STATE) == StatorState.SIDE){ + + RotorBlockEntity rotor = (RotorBlockEntity) level.getBlockEntity(be.rotor); + + if(!be.hasOutput) { + + if (rotor == null) + return InteractionResult.PASS; + + for (BlockPos otherPos : rotor.statorBlocks) { + if (level.getBlockEntity(otherPos) instanceof StatorBlockEntity otherStator) { + if (otherStator.hasOutput) + return InteractionResult.PASS; + } + } + + be.hasOutput = true; + return InteractionResult.SUCCESS; + + }else { + be.hasOutput = false; + return InteractionResult.SUCCESS; + } + } + } + + } + + return InteractionResult.PASS; + } + + @Override + public Class getBlockEntityClass() { + return StatorBlockEntity.class; + } + + @Override + public BlockEntityType getBlockEntityType() { + return TFMGBlockEntities.STATOR.get(); + } + + public enum StatorState implements StringRepresentable{ + + + UNUSED("unused"), + SIDE("side"), + CORNER("corner") + + + ; + final String name; + StatorState(String name){ + this.name = name; + } + + + @Override + public String getSerializedName() { + return name; + } + } + + + + + +} diff --git a/src/main/java/com/drmangotea/createindustry/blocks/electricity/generation/large_generator/StatorBlockEntity.java b/src/main/java/com/drmangotea/createindustry/blocks/electricity/generation/large_generator/StatorBlockEntity.java new file mode 100644 index 00000000..e635b7c8 --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/electricity/generation/large_generator/StatorBlockEntity.java @@ -0,0 +1,95 @@ +package com.drmangotea.createindustry.blocks.electricity.generation.large_generator; + +import com.drmangotea.createindustry.blocks.electricity.base.ElectricBlockEntity; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockState; + +import static com.drmangotea.createindustry.blocks.electricity.generation.large_generator.StatorBlock.STATOR_STATE; +import static net.minecraft.world.level.block.DirectionalBlock.FACING; + + +public class StatorBlockEntity extends ElectricBlockEntity { + + + public BlockPos rotor=null; + + public boolean hasOutput; + + public float generation; + + + public StatorBlockEntity(BlockEntityType type, BlockPos pos, BlockState state) { + super(type, pos, state); + } + + public void tick(){ + super.tick(); + + if(rotor!=null) + if(!(level.getBlockEntity(rotor) instanceof RotorBlockEntity)) + rotor = null; + + if(rotor == null||getBlockState().getValue(STATOR_STATE) != StatorBlock.StatorState.SIDE) + return; + + + } + + + @Override + public float maxVoltage() { + return 10000; + } + + + public void setRotor(RotorBlockEntity be){ + rotor = be.getBlockPos(); + + } + + @Override + public void write(CompoundTag compound, boolean clientPacket) { + super.write(compound, clientPacket); + + compound.putBoolean("Output",hasOutput); + + } + + @Override + protected void read(CompoundTag compound, boolean clientPacket) { + super.read(compound, clientPacket); + hasOutput = compound.getBoolean("Output"); + + + } + @Override + public int feGeneration() { + return (int) generation*30; + } + + @Override + public int voltageGeneration() { + return (int) (generation); + } + + @Override + public boolean hasElectricitySlot(Direction direction) { + return direction == getBlockState().getValue(FACING).getOpposite()&&hasOutput; + } + + + @Override + public int FECapacity() { + return 25000; + } + + + + + + + +} diff --git a/src/main/java/com/drmangotea/createindustry/blocks/electricity/generation/large_generator/StatorGenerator.java b/src/main/java/com/drmangotea/createindustry/blocks/electricity/generation/large_generator/StatorGenerator.java new file mode 100644 index 00000000..7fc8889f --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/electricity/generation/large_generator/StatorGenerator.java @@ -0,0 +1,84 @@ +package com.drmangotea.createindustry.blocks.electricity.generation.large_generator; + +import com.drmangotea.createindustry.CreateTFMG; +import com.simibubi.create.foundation.data.SpecialBlockStateGen; +import com.tterrag.registrate.providers.DataGenContext; +import com.tterrag.registrate.providers.RegistrateBlockstateProvider; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraftforge.client.model.generators.ModelFile; + + +public class StatorGenerator extends SpecialBlockStateGen { + + + protected int getXRotation(BlockState state) { + + short value; + switch ((Direction)state.getValue(StatorBlock.FACING)) { + case NORTH, SOUTH, WEST, EAST: + value = 0; + break; + case DOWN: + if(state.getValue(StatorBlock.STATOR_STATE)== StatorBlock.StatorState.CORNER) { + value = 0; + }else + value = 90; + break; + case UP: + if(state.getValue(StatorBlock.STATOR_STATE)== StatorBlock.StatorState.CORNER) { + value = 0; + }else + value = 270; + break; + default: + throw new IncompatibleClassChangeError(); + } + + return value; + } + + protected int getYRotation(BlockState state) { + + short value; + switch ((Direction)state.getValue(StatorBlock.FACING)) { + case NORTH, DOWN, UP: + value = 0; + break; + case SOUTH: + value = 180; + break; + case WEST: + value = 270; + break; + case EAST: + value = 90; + break; + default: + throw new IncompatibleClassChangeError(); + } + + return value; + } + + + + @Override + public ModelFile getModel(DataGenContext ctx, RegistrateBlockstateProvider prov, + BlockState state) { + + String path = "block/stator/block_" + + state.getValue(StatorBlock.STATOR_STATE).getSerializedName() + ; + + if(state.getValue(StatorBlock.VALUE)&&state.getValue(StatorBlock.STATOR_STATE)== StatorBlock.StatorState.CORNER) + path = path + "_up"; + if(state.getValue(StatorBlock.VALUE)&&state.getValue(StatorBlock.STATOR_STATE)== StatorBlock.StatorState.SIDE) + path = path + "_rotated"; + + return prov.models() + .getExistingFile(CreateTFMG.asResource(path)); + + } +} diff --git a/src/main/java/com/drmangotea/createindustry/blocks/electricity/generation/large_generator/StatorRenderer.java b/src/main/java/com/drmangotea/createindustry/blocks/electricity/generation/large_generator/StatorRenderer.java new file mode 100644 index 00000000..01a80e62 --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/electricity/generation/large_generator/StatorRenderer.java @@ -0,0 +1,32 @@ +package com.drmangotea.createindustry.blocks.electricity.generation.large_generator; + +import com.drmangotea.createindustry.registry.TFMGPartialModels; +import com.mojang.blaze3d.vertex.PoseStack; +import com.mojang.blaze3d.vertex.VertexConsumer; +import com.simibubi.create.foundation.blockEntity.renderer.SafeBlockEntityRenderer; +import com.simibubi.create.foundation.render.CachedBufferer; +import com.simibubi.create.foundation.render.SuperByteBuffer; +import net.minecraft.client.renderer.MultiBufferSource; +import net.minecraft.client.renderer.RenderType; +import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider; + +import static com.simibubi.create.content.kinetics.base.DirectionalKineticBlock.FACING; + + +public class StatorRenderer extends SafeBlockEntityRenderer { + + public StatorRenderer(BlockEntityRendererProvider.Context context) { + } + + @Override + protected void renderSafe(StatorBlockEntity be, float partialTicks, PoseStack ms, MultiBufferSource buffer, int light, int overlay) { + ms.pushPose(); + VertexConsumer vb = buffer.getBuffer(RenderType.solid()); + + SuperByteBuffer output = CachedBufferer.partialFacing(TFMGPartialModels.STATOR_OUTPUT, be.getBlockState(),be.getBlockState().getValue(FACING).getOpposite()); + if(be.hasOutput) + output.renderInto(ms, vb); + + ms.popPose(); + } +} diff --git a/src/main/java/com/drmangotea/createindustry/blocks/electricity/lights/LightBulbBlock.java b/src/main/java/com/drmangotea/createindustry/blocks/electricity/lights/LightBulbBlock.java new file mode 100644 index 00000000..c1323363 --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/electricity/lights/LightBulbBlock.java @@ -0,0 +1,76 @@ +package com.drmangotea.createindustry.blocks.electricity.lights; + +import com.drmangotea.createindustry.blocks.electricity.base.WallMountBlock; +import com.drmangotea.createindustry.registry.TFMGBlockEntities; +import com.drmangotea.createindustry.registry.TFMGShapes; +import com.simibubi.create.content.equipment.wrench.IWrenchable; +import com.simibubi.create.foundation.block.IBE; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.item.context.UseOnContext; +import net.minecraft.world.level.BlockGetter; +import net.minecraft.world.level.LevelAccessor; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.SimpleWaterloggedBlock; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.StateDefinition; +import net.minecraft.world.level.block.state.properties.BlockStateProperties; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.level.block.state.properties.IntegerProperty; +import net.minecraft.world.level.material.FluidState; +import net.minecraft.world.level.material.Fluids; +import net.minecraft.world.phys.shapes.CollisionContext; +import net.minecraft.world.phys.shapes.VoxelShape; + +public class LightBulbBlock extends WallMountBlock implements IBE, SimpleWaterloggedBlock, IWrenchable { + + public static final IntegerProperty LIGHT = BlockStateProperties.LEVEL; + + public static final BooleanProperty WATERLOGGED = BlockStateProperties.WATERLOGGED; + + + public LightBulbBlock(Properties properties) { + super(properties); + this.registerDefaultState(this.stateDefinition.any().setValue(LIGHT, 0).setValue(WATERLOGGED, false)); + } + + + + @Override + public VoxelShape getShape(BlockState pState, BlockGetter worldIn, BlockPos pos, CollisionContext context) { + + return TFMGShapes.LIGHT_BULB.get(pState.getValue(FACING)); + } + + + protected void createBlockStateDefinition(StateDefinition.Builder p_153687_) { + p_153687_.add(LIGHT, WATERLOGGED,FACING); + } + public BlockState updateShape(BlockState p_153680_, Direction p_153681_, BlockState p_153682_, LevelAccessor p_153683_, BlockPos p_153684_, BlockPos p_153685_) { + if (p_153680_.getValue(WATERLOGGED)) { + p_153683_.scheduleTick(p_153684_, Fluids.WATER, Fluids.WATER.getTickDelay(p_153683_)); + } + + return super.updateShape(p_153680_, p_153681_, p_153682_, p_153683_, p_153684_, p_153685_); + } + + public FluidState getFluidState(BlockState p_153699_) { + return p_153699_.getValue(WATERLOGGED) ? Fluids.WATER.getSource(false) : super.getFluidState(p_153699_); + } + + + + + @Override + public Class getBlockEntityClass() { + return LightBulbBlockEntity.class; + } + + + @Override + public BlockEntityType getBlockEntityType() { + return TFMGBlockEntities.LIGHT_BULB.get(); + } +} diff --git a/src/main/java/com/drmangotea/createindustry/blocks/electricity/lights/LightBulbBlockEntity.java b/src/main/java/com/drmangotea/createindustry/blocks/electricity/lights/LightBulbBlockEntity.java new file mode 100644 index 00000000..21beba5a --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/electricity/lights/LightBulbBlockEntity.java @@ -0,0 +1,107 @@ +package com.drmangotea.createindustry.blocks.electricity.lights; + +import com.drmangotea.createindustry.blocks.electricity.base.ElectricBlockEntity; +import com.simibubi.create.foundation.utility.animation.LerpedFloat; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.sounds.SoundEvents; +import net.minecraft.sounds.SoundSource; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockState; + +import static com.drmangotea.createindustry.blocks.electricity.base.WallMountBlock.FACING; +import static com.drmangotea.createindustry.blocks.electricity.lights.LightBulbBlock.LIGHT; + +public class LightBulbBlockEntity extends ElectricBlockEntity { + + public LerpedFloat glow = LerpedFloat.linear(); + + + boolean signalChanged; + + boolean hasSignal; + + public LightBulbBlockEntity(BlockEntityType type, BlockPos pos, BlockState state) { + super(type, pos, state); + } + + + + @Override + public void tick() { + super.tick(); + + + + if(!hasSignal&&energy.getEnergyStored()!=0) { + glow.chase(voltage, 0.4, LerpedFloat.Chaser.EXP); + glow.tickChaser(); + + if(voltage!=0) + useEnergy(1); + + if ((int) Math.min(voltage / 10, 15) != getBlockState().getValue(LIGHT)) + level.setBlock(getBlockPos(), getBlockState().setValue(LIGHT, (int) Math.min(voltage / 10, 15)), 2); + }else { + if (getBlockState().getValue(LIGHT)!=0) + level.setBlock(getBlockPos(), getBlockState().setValue(LIGHT, 0), 2); + glow.chase(0, 0.4, LerpedFloat.Chaser.EXP); + glow.tickChaser(); + + } + + if (signalChanged) { + signalChanged = false; + analogSignalChanged(level.getBestNeighborSignal(worldPosition)); + } + + } + + public void neighbourChanged() { + if (!hasLevel()) + return; + boolean powered = level.getBestNeighborSignal(worldPosition)>0; + if (powered != hasSignal) + signalChanged = true; + } + @Override + public void lazyTick() { + super.lazyTick(); + neighbourChanged(); + } + + protected void analogSignalChanged(int newSignal) { + + hasSignal = newSignal > 0; + + } + + @Override + public void explode() { + + + + level.playSound(null, getBlockPos(), SoundEvents.GLASS_BREAK, SoundSource.BLOCKS, 2.0F, + level.random.nextFloat() * 0.4F + 0.8F); + + level.destroyBlock(getBlockPos(),false); + + + + + sendStuff(); + + + // level.explode(null, getBlockPos().getX()+0.5, getBlockPos().getY()+0.5, getBlockPos().getZ()+0.5, 0.1f, Explosion.BlockInteraction.BREAK); + + // TFMGUtils.createFireExplosion(level, getBlockPos(),5,.1f); + } + + @Override + public boolean hasElectricitySlot(Direction direction) { + return direction == getBlockState().getValue(FACING).getOpposite(); + } + + + +} diff --git a/src/main/java/com/drmangotea/createindustry/blocks/electricity/lights/LightBulbRenderer.java b/src/main/java/com/drmangotea/createindustry/blocks/electricity/lights/LightBulbRenderer.java new file mode 100644 index 00000000..2ce8c7fc --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/electricity/lights/LightBulbRenderer.java @@ -0,0 +1,53 @@ +package com.drmangotea.createindustry.blocks.electricity.lights; + +import com.drmangotea.createindustry.blocks.electricity.base.WallMountBlock; +import com.drmangotea.createindustry.registry.TFMGBlocks; +import com.drmangotea.createindustry.registry.TFMGPartialModels; +import com.jozufozu.flywheel.util.transform.TransformStack; +import com.mojang.blaze3d.vertex.PoseStack; +import com.simibubi.create.foundation.blockEntity.renderer.SafeBlockEntityRenderer; +import com.simibubi.create.foundation.render.CachedBufferer; +import com.simibubi.create.foundation.render.RenderTypes; +import net.minecraft.client.renderer.MultiBufferSource; +import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider; +import net.minecraft.world.level.block.state.BlockState; + +public class LightBulbRenderer extends SafeBlockEntityRenderer { + public LightBulbRenderer(BlockEntityRendererProvider.Context context) { + + } + + @Override + protected void renderSafe(LightBulbBlockEntity be, float partialTicks, PoseStack ms, MultiBufferSource buffer, int light, int overlay) { + + + BlockState blockState = be.getBlockState(); + TransformStack msr = TransformStack.cast(ms); + + + ms.pushPose(); + + float glow = be.glow.getValue(partialTicks); + int color = Math.min(100,(int) (glow/0.2f)); + + if(be.glow.getValue()!=0) { + // if(blockState.is(TFMGBlocks.INDUSTRIAL_LIGHT.get())){ + // CachedBufferer.partialFacing(TFMGPartialModels.INDUSTRIAL_LIGHT, blockState, blockState.getValue(WallMountBlock.FACING)) + // .light((int) glow * 3 + 40) + // .color(color, color, (int) (color * 0.8), 255) + // .disableDiffuse() + // .renderInto(ms, buffer.getBuffer(RenderTypes.getAdditive())); +// + // }else + + CachedBufferer.partialFacing(TFMGPartialModels.LIGHT_BULB, blockState, blockState.getValue(WallMountBlock.FACING)) + .light((int) glow * 3 + 40) + .color(color, color, (int) (color * 0.8), 255) + .disableDiffuse() + .renderInto(ms, buffer.getBuffer(RenderTypes.getAdditive())); + + + } + ms.popPose(); + } +} diff --git a/src/main/java/com/drmangotea/createindustry/blocks/electricity/lights/neon/NeonTubeBlock.java b/src/main/java/com/drmangotea/createindustry/blocks/electricity/lights/neon/NeonTubeBlock.java new file mode 100644 index 00000000..1208498f --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/electricity/lights/neon/NeonTubeBlock.java @@ -0,0 +1,146 @@ +package com.drmangotea.createindustry.blocks.electricity.lights.neon; + +import com.drmangotea.createindustry.registry.TFMGBlockEntities; +import com.drmangotea.createindustry.registry.TFMGBlocks; +import com.drmangotea.createindustry.registry.TFMGShapes; +import com.simibubi.create.AllBlocks; +import com.simibubi.create.content.equipment.clipboard.ClipboardEntry; +import com.simibubi.create.content.trains.display.FlapDisplayBlockEntity; +import com.simibubi.create.foundation.block.IBE; +import com.simibubi.create.foundation.placement.IPlacementHelper; +import com.simibubi.create.foundation.placement.PlacementHelpers; +import com.simibubi.create.foundation.placement.PlacementOffset; +import com.simibubi.create.foundation.placement.PoleHelper; +import com.simibubi.create.foundation.utility.Components; +import net.minecraft.MethodsReturnNonnullByDefault; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.nbt.Tag; +import net.minecraft.network.chat.Component; +import net.minecraft.sounds.SoundEvents; +import net.minecraft.sounds.SoundSource; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.BlockItem; +import net.minecraft.world.item.DyeColor; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.Items; +import net.minecraft.world.level.BlockGetter; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.RotatedPillarBlock; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.StateDefinition; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.phys.BlockHitResult; +import net.minecraft.world.phys.Vec3; +import net.minecraft.world.phys.shapes.CollisionContext; +import net.minecraft.world.phys.shapes.VoxelShape; + +import java.util.List; +import java.util.function.Predicate; + +public class NeonTubeBlock extends RotatedPillarBlock implements IBE { + public static final int placementHelperId = PlacementHelpers.register(new PlacementHelper()); + public static final BooleanProperty ACTIVE = BooleanProperty.create("active"); + public NeonTubeBlock(Properties pProperties) { + super(pProperties); + this.registerDefaultState(this.defaultBlockState().setValue(ACTIVE, false)); + } + + + @Override + public VoxelShape getShape(BlockState pState, BlockGetter pLevel, BlockPos pPos, CollisionContext pContext) { + return TFMGShapes.CABLE_TUBE.get(pState.getValue(AXIS)); + } + + protected void createBlockStateDefinition(StateDefinition.Builder pBuilder) { + pBuilder.add(ACTIVE,AXIS); + } + + + @Override + public InteractionResult use(BlockState pState, Level pLevel, BlockPos pPos, Player player, InteractionHand pHand, + BlockHitResult pHit) { + + if (player.isShiftKeyDown()) + return InteractionResult.PASS; + + ItemStack heldItem = player.getItemInHand(pHand); + NeonTubeBlockEntity be = getBlockEntity(pLevel, pPos); + + + DyeColor dye = DyeColor.getColor(heldItem); + + + if (be != null){ + if (dye != null) { + pLevel.playSound(null, pPos, SoundEvents.DYE_USE, SoundSource.BLOCKS, 1.0F, 1.0F); + be.setColor(dye); + } + + + } + + ItemStack itemInHand = player.getItemInHand(pHand); + + IPlacementHelper helper = PlacementHelpers.get(placementHelperId); + if (helper.matchesItem(itemInHand)) + return helper.getOffset(player, pLevel, pState, pPos, pHit) + .placeInWorld(pLevel, (BlockItem) itemInHand.getItem(), player, pHand, pHit); + + + + return InteractionResult.SUCCESS; + } + + + + @Override + public Class getBlockEntityClass() { + return NeonTubeBlockEntity.class; + } + + @Override + public BlockEntityType getBlockEntityType() { + return TFMGBlockEntities.NEON_TUBE.get(); + } + + //// + + + @MethodsReturnNonnullByDefault + private static class PlacementHelper extends PoleHelper { + + + private PlacementHelper() { + super(state -> state.getBlock() instanceof NeonTubeBlock, state -> state.getValue(AXIS), AXIS); + } + + @Override + public Predicate getItemPredicate() { + return i -> i.getItem() instanceof BlockItem + && ((BlockItem) i.getItem()).getBlock() instanceof NeonTubeBlock; + } + + @Override + public Predicate getStatePredicate() { + return s -> s.getBlock() instanceof NeonTubeBlock; + } + + @Override + public PlacementOffset getOffset(Player player, Level world, BlockState state, BlockPos pos, + BlockHitResult ray) { + PlacementOffset offset = super.getOffset(player, world, state, pos, ray); + if (offset.isSuccessful()) + offset.withTransform(offset.getTransform() + .andThen(s -> TFMGBlocks.NEON_TUBE.getDefaultState().setValue(AXIS,state.getValue(AXIS)))); + return offset; + } + + } + +} diff --git a/src/main/java/com/drmangotea/createindustry/blocks/electricity/lights/neon/NeonTubeBlockEntity.java b/src/main/java/com/drmangotea/createindustry/blocks/electricity/lights/neon/NeonTubeBlockEntity.java new file mode 100644 index 00000000..9930b5f4 --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/electricity/lights/neon/NeonTubeBlockEntity.java @@ -0,0 +1,130 @@ +package com.drmangotea.createindustry.blocks.electricity.lights.neon; + +import com.drmangotea.createindustry.blocks.electricity.cable_blocks.CableTubeBlockEntity; +import com.simibubi.create.Create; +import com.simibubi.create.foundation.utility.NBTHelper; +import com.simibubi.create.foundation.utility.animation.LerpedFloat; +import net.minecraft.core.BlockPos; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.sounds.SoundEvents; +import net.minecraft.sounds.SoundSource; +import net.minecraft.world.item.DyeColor; +import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockState; + +import static com.drmangotea.createindustry.blocks.electricity.lights.LightBulbBlock.LIGHT; +import static com.drmangotea.createindustry.blocks.electricity.lights.neon.NeonTubeBlock.ACTIVE; + +public class NeonTubeBlockEntity extends CableTubeBlockEntity { + + + public DyeColor color; + + boolean shouldDestroy = false; + + int red = 250; + int green = 0; + int blue = 0; + + public LerpedFloat glow = LerpedFloat.linear(); + public NeonTubeBlockEntity(BlockEntityType type, BlockPos pos, BlockState state) { + super(type, pos, state); + color = DyeColor.WHITE; + } + + @Override + public void tick() { + super.tick(); + + if(shouldDestroy){ + level.destroyBlock(getBlockPos(),false); + return; + } + + if(energy.getEnergyStored()!=0&&voltage!=0) { + glow.chase(voltage, 0.4, LerpedFloat.Chaser.EXP); + glow.tickChaser(); + + if(voltage!=0) { + useEnergy(1); + if (!getBlockState().getValue(ACTIVE)) + level.setBlock(getBlockPos(), getBlockState().setValue(ACTIVE,true), 2); + } + }else { + //if (getBlockState().getValue(ACTIVE)) + level.setBlock(getBlockPos(), getBlockState().setValue(ACTIVE,false), 2); + glow.chase(0, 0.4, LerpedFloat.Chaser.EXP); + glow.tickChaser(); + + } + + + + } + + @Override + public void explode() { + + voltage = 0; + + + level.playSound(null, getBlockPos(), SoundEvents.GLASS_BREAK, SoundSource.BLOCKS, 2.0F, + level.random.nextFloat() * 0.4F + 0.8F); + + level.destroyBlock(getBlockPos(),false); + + + + shouldDestroy = true; + + + sendStuff(); + + + } + public void setColor(DyeColor color) { + + + if(color==DyeColor.BLACK||color == DyeColor.LIGHT_GRAY|| color == DyeColor.GRAY) + changeColor(); + + this.color = color; + notifyUpdate(); + } + + + @Override + public float maxVoltage() { + return 300; + } + public void changeColor(){ + red = Create.RANDOM.nextInt(255); + green = Create.RANDOM.nextInt(255); + blue = Create.RANDOM.nextInt(255); + } + @Override + public void write(CompoundTag compound, boolean clientPacket) { + super.write(compound, clientPacket); + + NBTHelper.writeEnum(compound,"color",color); + + compound.putInt("red",red); + compound.putInt("green",green); + compound.putInt("blue",blue); + + + } + + + @Override + protected void read(CompoundTag compound, boolean clientPacket) { + super.read(compound, clientPacket); + + color = NBTHelper.readEnum(compound,"color",DyeColor.class); + red = compound.getInt("red"); + green = compound.getInt("green"); + blue = compound.getInt("blue"); + + } +} diff --git a/src/main/java/com/drmangotea/createindustry/blocks/electricity/lights/neon/NeonTubeRenderer.java b/src/main/java/com/drmangotea/createindustry/blocks/electricity/lights/neon/NeonTubeRenderer.java new file mode 100644 index 00000000..74bf17e5 --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/electricity/lights/neon/NeonTubeRenderer.java @@ -0,0 +1,60 @@ +package com.drmangotea.createindustry.blocks.electricity.lights.neon; + +import com.drmangotea.createindustry.blocks.electricity.base.WallMountBlock; +import com.drmangotea.createindustry.registry.TFMGPartialModels; +import com.jozufozu.flywheel.util.transform.TransformStack; +import com.mojang.blaze3d.vertex.PoseStack; +import com.simibubi.create.Create; +import com.simibubi.create.foundation.blockEntity.renderer.SafeBlockEntityRenderer; +import com.simibubi.create.foundation.render.CachedBufferer; +import com.simibubi.create.foundation.render.RenderTypes; +import net.minecraft.client.renderer.MultiBufferSource; +import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider; +import net.minecraft.core.Direction; +import net.minecraft.world.item.DyeColor; +import net.minecraft.world.level.block.state.BlockState; + +import static net.minecraft.world.level.block.RotatedPillarBlock.AXIS; + +public class NeonTubeRenderer extends SafeBlockEntityRenderer { + + + + public NeonTubeRenderer(BlockEntityRendererProvider.Context context) {} + + @Override + protected void renderSafe(NeonTubeBlockEntity be, float partialTicks, PoseStack ms, MultiBufferSource bufferSource, int light, int overlay) { + + + + BlockState blockState = be.getBlockState(); + TransformStack msr = TransformStack.cast(ms); + + + ms.pushPose(); + + float glow = be.glow.getValue(partialTicks); + + + int color = be.color.getTextColor(); + + + + + if(be.glow.getValue()!=0) + if(be.color != DyeColor.BLACK) { + CachedBufferer.partialFacing(TFMGPartialModels.NEON_TUBE_LIGHT, blockState, Direction.fromAxisAndDirection(blockState.getValue(AXIS), Direction.AxisDirection.POSITIVE)) + .light((int) glow * 3 + 40) + .color(color) + .disableDiffuse() + .renderInto(ms, bufferSource.getBuffer(RenderTypes.getAdditive())); + } else + CachedBufferer.partialFacing(TFMGPartialModels.NEON_TUBE_LIGHT, blockState, Direction.fromAxisAndDirection(blockState.getValue(AXIS), Direction.AxisDirection.POSITIVE)) + .light((int) glow * 3 + 40) + .color(be.red,be.green,be.blue,255) + .disableDiffuse() + .renderInto(ms, bufferSource.getBuffer(RenderTypes.getAdditive())); + + ms.popPose(); + } +} diff --git a/src/main/java/com/drmangotea/createindustry/blocks/electricity/lights/rgb/RGBLightBulbBlock.java b/src/main/java/com/drmangotea/createindustry/blocks/electricity/lights/rgb/RGBLightBulbBlock.java new file mode 100644 index 00000000..6df5d08f --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/electricity/lights/rgb/RGBLightBulbBlock.java @@ -0,0 +1,94 @@ +package com.drmangotea.createindustry.blocks.electricity.lights.rgb; + +import com.drmangotea.createindustry.blocks.electricity.base.WallMountBlock; +import com.drmangotea.createindustry.registry.TFMGBlockEntities; +import com.drmangotea.createindustry.registry.TFMGShapes; +import com.simibubi.create.content.equipment.wrench.IWrenchable; +import com.simibubi.create.foundation.block.IBE; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.item.context.UseOnContext; +import net.minecraft.world.level.BlockGetter; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.LevelAccessor; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.SimpleWaterloggedBlock; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.StateDefinition; +import net.minecraft.world.level.block.state.properties.BlockStateProperties; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.level.block.state.properties.IntegerProperty; +import net.minecraft.world.level.material.FluidState; +import net.minecraft.world.level.material.Fluids; +import net.minecraft.world.phys.shapes.CollisionContext; +import net.minecraft.world.phys.shapes.VoxelShape; + +public class RGBLightBulbBlock extends WallMountBlock implements IBE, SimpleWaterloggedBlock, IWrenchable { + + public static final IntegerProperty LIGHT = BlockStateProperties.LEVEL; + + public static final BooleanProperty WATERLOGGED = BlockStateProperties.WATERLOGGED; + public RGBLightBulbBlock(Properties properties) { + super(properties); + this.registerDefaultState(this.stateDefinition.any().setValue(LIGHT, 0).setValue(WATERLOGGED, false)); + } + + + + + + + protected void createBlockStateDefinition(StateDefinition.Builder p_153687_) { + p_153687_.add(LIGHT, WATERLOGGED,FACING); + } + public BlockState updateShape(BlockState p_153680_, Direction p_153681_, BlockState p_153682_, LevelAccessor p_153683_, BlockPos p_153684_, BlockPos p_153685_) { + if (p_153680_.getValue(WATERLOGGED)) { + p_153683_.scheduleTick(p_153684_, Fluids.WATER, Fluids.WATER.getTickDelay(p_153683_)); + } + + return super.updateShape(p_153680_, p_153681_, p_153682_, p_153683_, p_153684_, p_153685_); + } + @Override + public VoxelShape getShape(BlockState pState, BlockGetter worldIn, BlockPos pos, CollisionContext context) { + + return TFMGShapes.LIGHT_BULB.get(pState.getValue(FACING)); + } + public FluidState getFluidState(BlockState p_153699_) { + return p_153699_.getValue(WATERLOGGED) ? Fluids.WATER.getSource(false) : super.getFluidState(p_153699_); + } + @Override + public InteractionResult onWrenched(BlockState state, UseOnContext context) { + + Level level = context.getLevel(); + BlockPos pos = context.getClickedPos(); + Direction direction = context.getClickedFace(); + + + return onBlockEntityUse(level, pos, be -> { + + be.changeColor(); + + + + + return InteractionResult.SUCCESS; + + + }); + + + } + + @Override + public Class getBlockEntityClass() { + return RGBLightBulbBlockEntity.class; + } + + + @Override + public BlockEntityType getBlockEntityType() { + return TFMGBlockEntities.RGB_LIGHT_BULB.get(); + } +} diff --git a/src/main/java/com/drmangotea/createindustry/blocks/electricity/lights/rgb/RGBLightBulbBlockEntity.java b/src/main/java/com/drmangotea/createindustry/blocks/electricity/lights/rgb/RGBLightBulbBlockEntity.java new file mode 100644 index 00000000..58ad3cd7 --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/electricity/lights/rgb/RGBLightBulbBlockEntity.java @@ -0,0 +1,47 @@ +package com.drmangotea.createindustry.blocks.electricity.lights.rgb; + +import com.drmangotea.createindustry.blocks.electricity.lights.LightBulbBlockEntity; +import com.simibubi.create.Create; +import net.minecraft.core.BlockPos; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockState; + +public class RGBLightBulbBlockEntity extends LightBulbBlockEntity { + + int red = 250; + int green = 0; + int blue = 0; + + public RGBLightBulbBlockEntity(BlockEntityType type, BlockPos pos, BlockState state) { + super(type, pos, state); + + } + + public void changeColor(){ + red = Create.RANDOM.nextInt(255); + green = Create.RANDOM.nextInt(255); + blue = Create.RANDOM.nextInt(255); + } + @Override + public void write(CompoundTag compound, boolean clientPacket) { + super.write(compound, clientPacket); + + + compound.putInt("red",red); + compound.putInt("green",green); + compound.putInt("blue",blue); + } + + @Override + protected void read(CompoundTag compound, boolean clientPacket) { + super.read(compound, clientPacket); + red = compound.getInt("red"); + green = compound.getInt("green"); + blue = compound.getInt("blue"); + + + + } + +} diff --git a/src/main/java/com/drmangotea/createindustry/blocks/electricity/lights/rgb/RGBLightBulbRenderer.java b/src/main/java/com/drmangotea/createindustry/blocks/electricity/lights/rgb/RGBLightBulbRenderer.java new file mode 100644 index 00000000..ab9e1235 --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/electricity/lights/rgb/RGBLightBulbRenderer.java @@ -0,0 +1,54 @@ +package com.drmangotea.createindustry.blocks.electricity.lights.rgb; + +import com.drmangotea.createindustry.blocks.electricity.base.WallMountBlock; +import com.drmangotea.createindustry.registry.TFMGPartialModels; +import com.jozufozu.flywheel.util.transform.TransformStack; +import com.mojang.blaze3d.vertex.PoseStack; +import com.simibubi.create.foundation.blockEntity.renderer.SafeBlockEntityRenderer; +import com.simibubi.create.foundation.render.CachedBufferer; +import com.simibubi.create.foundation.render.RenderTypes; +import net.minecraft.client.renderer.MultiBufferSource; +import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider; +import net.minecraft.world.level.block.state.BlockState; + +import java.util.Random; + +public class RGBLightBulbRenderer extends SafeBlockEntityRenderer { + public RGBLightBulbRenderer(BlockEntityRendererProvider.Context context) { + + } + + @Override + protected void renderSafe(RGBLightBulbBlockEntity be, float partialTicks, PoseStack ms, MultiBufferSource buffer, int light, int overlay) { + + + BlockState blockState = be.getBlockState(); + TransformStack msr = TransformStack.cast(ms); + + + ms.pushPose(); + + + + float glow = be.glow.getValue(partialTicks); + int color = Math.min(200,(int) (glow/0.8f)); + + int seed = (int) glow; + Random random = new Random(seed); + + + // CachedBufferer.partial(AllPartialModels.DISPLAY_LINK_TUBE, blockState) + // .light(LightTexture.FULL_BRIGHT) + // .renderInto(ms, buffer.getBuffer(RenderType.translucent())); + if(be.glow.getValue()!=0) + CachedBufferer.partialFacing(TFMGPartialModels.LIGHT_BULB, blockState,blockState.getValue(WallMountBlock.FACING)) + .light((int) glow*3+40) + .color(be.red,be.green,be.blue,255) + .disableDiffuse() + .renderInto(ms, buffer.getBuffer(RenderTypes.getAdditive())); + + + + ms.popPose(); + } +} diff --git a/src/main/java/com/drmangotea/createindustry/blocks/electricity/polarizer/PolarizeRenderer.java b/src/main/java/com/drmangotea/createindustry/blocks/electricity/polarizer/PolarizeRenderer.java new file mode 100644 index 00000000..c2a0fb27 --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/electricity/polarizer/PolarizeRenderer.java @@ -0,0 +1,52 @@ +package com.drmangotea.createindustry.blocks.electricity.polarizer; + +import com.jozufozu.flywheel.util.transform.TransformStack; +import com.mojang.blaze3d.vertex.PoseStack; +import com.simibubi.create.foundation.blockEntity.renderer.SafeBlockEntityRenderer; +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.MultiBufferSource; +import net.minecraft.client.renderer.block.model.ItemTransforms.TransformType; +import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider; +import net.minecraft.client.renderer.entity.ItemRenderer; +import net.minecraft.core.Direction; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.block.HorizontalDirectionalBlock; +import net.minecraft.world.level.block.state.BlockState; + +public class PolarizeRenderer extends SafeBlockEntityRenderer { + + public PolarizeRenderer(BlockEntityRendererProvider.Context context) {} + + @Override + protected void renderSafe(PolarizerBlockEntity be, float partialTicks, PoseStack ms, MultiBufferSource buffer, + int light, int overlay) { + ItemStack heldItem = be.inventory.getItem(0); + if (heldItem.isEmpty()) + return; + + + + + BlockState blockState = be.getBlockState(); + + + ItemRenderer itemRenderer = Minecraft.getInstance() + .getItemRenderer(); + boolean blockItem = itemRenderer.getModel(heldItem, null, null, 0) + .isGui3d(); + + ms.pushPose(); + TransformStack msr = TransformStack.cast(ms) + .centre() + .rotateY(blockState.getValue(HorizontalDirectionalBlock.FACING).getAxis()== Direction.Axis.X ? 90 : 0) + .translate(0, 0.4, 0) + .scale(blockItem ? .5f : .375f); + + + + itemRenderer.renderStatic(heldItem, TransformType.FIXED, light, overlay, ms, buffer, 0); + + ms.popPose(); + } + +} diff --git a/src/main/java/com/drmangotea/createindustry/blocks/electricity/polarizer/PolarizerBlock.java b/src/main/java/com/drmangotea/createindustry/blocks/electricity/polarizer/PolarizerBlock.java new file mode 100644 index 00000000..96392621 --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/electricity/polarizer/PolarizerBlock.java @@ -0,0 +1,59 @@ +package com.drmangotea.createindustry.blocks.electricity.polarizer; + + +import com.drmangotea.createindustry.blocks.TFMGHorizontalDirectionalBlock; +import com.drmangotea.createindustry.registry.TFMGBlockEntities; +import com.drmangotea.createindustry.registry.TFMGShapes; +import com.simibubi.create.content.equipment.wrench.IWrenchable; +import com.simibubi.create.foundation.block.IBE; +import net.minecraft.core.BlockPos; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.BlockGetter; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.phys.BlockHitResult; +import net.minecraft.world.phys.shapes.CollisionContext; +import net.minecraft.world.phys.shapes.VoxelShape; + +public class PolarizerBlock extends TFMGHorizontalDirectionalBlock implements IBE, IWrenchable { + public PolarizerBlock(Properties p_54120_) { + super(p_54120_); + } + + + @Override + public InteractionResult use(BlockState pState, Level level, BlockPos pos, Player player, InteractionHand pHand, BlockHitResult pHit) { + ItemStack inHand = player.getItemInHand(pHand); + + + if (level.getBlockEntity(pos) instanceof PolarizerBlockEntity be) + if (be.playerInteract(player, pHand)) + return InteractionResult.SUCCESS; + + return InteractionResult.PASS; + } + + @Override + public void onRemove(BlockState state, Level worldIn, BlockPos pos, BlockState newState, boolean isMoving) { + IBE.onRemove(state, worldIn, pos, newState); + } + + @Override + public VoxelShape getShape(BlockState pState, BlockGetter pLevel, BlockPos pPos, CollisionContext pContext) { + return TFMGShapes.SLAB; + } + + @Override + public Class getBlockEntityClass() { + return PolarizerBlockEntity.class; + } + + @Override + public BlockEntityType getBlockEntityType() { + return TFMGBlockEntities.POLARIZER.get(); + } +} diff --git a/src/main/java/com/drmangotea/createindustry/blocks/electricity/polarizer/PolarizerBlockEntity.java b/src/main/java/com/drmangotea/createindustry/blocks/electricity/polarizer/PolarizerBlockEntity.java new file mode 100644 index 00000000..88ac1a47 --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/electricity/polarizer/PolarizerBlockEntity.java @@ -0,0 +1,194 @@ +package com.drmangotea.createindustry.blocks.electricity.polarizer; + +import com.drmangotea.createindustry.base.util.TFMGUtils; +import com.drmangotea.createindustry.blocks.electricity.base.ElectricBlockEntity; +import com.drmangotea.createindustry.registry.TFMGItems; +import com.simibubi.create.content.equipment.goggles.IHaveGoggleInformation; +import com.simibubi.create.foundation.item.ItemHelper; +import com.simibubi.create.foundation.item.SmartInventory; +import com.simibubi.create.foundation.utility.Lang; +import net.minecraft.ChatFormatting; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.network.chat.Component; +import net.minecraft.world.Containers; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.Items; +import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraftforge.common.capabilities.Capability; +import net.minecraftforge.common.capabilities.ForgeCapabilities; +import net.minecraftforge.common.util.LazyOptional; +import net.minecraftforge.items.IItemHandlerModifiable; +import net.minecraftforge.items.wrapper.CombinedInvWrapper; + +import javax.annotation.Nonnull; + +import java.util.List; + +import static net.minecraft.world.level.block.HorizontalDirectionalBlock.FACING; + +public class PolarizerBlockEntity extends ElectricBlockEntity implements IHaveGoggleInformation { + + public LazyOptional itemCapability; + + public SmartInventory inventory; + + public int timer = 0; + public PolarizerBlockEntity(BlockEntityType type, BlockPos pos, BlockState state) { + super(type, pos, state); + + this.inventory = new SmartInventory(1, this).forbidInsertion().withMaxStackSize(1); + + this.itemCapability = LazyOptional.of(() -> new CombinedInvWrapper(this.inventory)); + } + + + + @Override + public void tick() { + super.tick(); + + if(voltage<200) { + timer = 0; + return; + } + + if(!inventory.getItem(0).is(TFMGItems.STEEL_INGOT.get())) { + timer = 0; + return; + } + + + if(energy.getEnergyStored()!=0) { + useEnergy(250); + if (!inventory.isEmpty()) { + if (timer < 100) { + timer++; + } else { + + timer = 0; + inventory.setStackInSlot(0, TFMGItems.MAGNETIC_INGOT.asStack()); + TFMGUtils.spawnElectricParticles(level,getBlockPos()); + sendStuff(); + } + } + }else timer =0; + + + } + + + + + + @Override + public void destroy() { + super.destroy(); + Containers.dropItemStack(level, getBlockPos().getX(), getBlockPos().getY(), getBlockPos().getZ(), inventory.getStackInSlot(0)); + } + @Nonnull + public LazyOptional getCapability(@Nonnull Capability cap, Direction side) { + return cap == ForgeCapabilities.ITEM_HANDLER ? this.itemCapability.cast() : super.getCapability(cap, side); + } + + public boolean playerInteract(Player player, InteractionHand hand){ + + ; + + if(inventory.isEmpty()) { + + + if (player.getItemInHand(hand).is(TFMGItems.STEEL_INGOT.get())) { + + + inventory.setStackInSlot(0, TFMGItems.STEEL_INGOT.asStack()); + sendStuff(); + + player.getItemInHand(hand).shrink(1); + + return true; + } + + + } else { + + if (player.getItemInHand(hand).isEmpty()) { + + player.setItemInHand(hand,inventory.getItem(0)); + inventory.setStackInSlot(0, Blocks.AIR.asItem().getDefaultInstance()); + sendStuff(); + + + + return true; + } + } + + + + return false; + } + @Override + @SuppressWarnings("removal") + public boolean addToGoggleTooltip(List tooltip, boolean isPlayerSneaking) { + + + if(energy.getEnergyStored()==0){ + Lang.translate("goggles.electric_machine.no_power") + .style(ChatFormatting.DARK_RED) + .forGoggles(tooltip, 1); + return true; + } + if(energy.getEnergyStored()==0) { + Lang.translate("goggles.electric_machine.insufficient_voltage") + .style(ChatFormatting.RED) + .forGoggles(tooltip, 1); + return true; + } + if(timer>0) { + Lang.translate("goggles.blast_furnace.status.running") + .style(ChatFormatting.GOLD) + .forGoggles(tooltip, 1); + Lang.translate("goggles.coke_oven.progress", timer) + .style(ChatFormatting.GREEN) + .add(Lang.translate("goggles.misc.percent_symbol") + .style(ChatFormatting.GREEN)) + .forGoggles(tooltip, 1); + + } + else + Lang.translate("goggles.blast_furnace.status.off") + .style(ChatFormatting.GOLD) + .forGoggles(tooltip, 1); + + return true; + } + @Override + public void write(CompoundTag tag, boolean clientPacket) { + tag.put("Inventory", this.inventory.serializeNBT()); + //tag.put("Item", heldItem.serializeNBT()); + super.write(tag, clientPacket); + } + + @Override + protected void read(CompoundTag tag, boolean clientPacket) { + + this.inventory.deserializeNBT(tag.getCompound("Inventory")); + //heldItem = ItemStack.of(tag.getCompound("Item")); + super.read(tag, clientPacket); + + + } + + + + @Override + public boolean hasElectricitySlot(Direction direction) { + return direction == getBlockState().getValue(FACING).getCounterClockWise(); + } + +} diff --git a/src/main/java/com/drmangotea/createindustry/blocks/electricity/resistors/ResistorBlock.java b/src/main/java/com/drmangotea/createindustry/blocks/electricity/resistors/ResistorBlock.java new file mode 100644 index 00000000..2c2d92d0 --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/electricity/resistors/ResistorBlock.java @@ -0,0 +1,33 @@ +package com.drmangotea.createindustry.blocks.electricity.resistors; + + +import com.drmangotea.createindustry.blocks.TFMGHorizontalDirectionalBlock; +import com.drmangotea.createindustry.registry.TFMGBlockEntities; +import com.drmangotea.createindustry.registry.TFMGShapes; +import com.simibubi.create.foundation.block.IBE; +import net.minecraft.core.BlockPos; +import net.minecraft.world.level.BlockGetter; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.phys.shapes.CollisionContext; +import net.minecraft.world.phys.shapes.VoxelShape; + +public class ResistorBlock extends TFMGHorizontalDirectionalBlock implements IBE { + public ResistorBlock(Properties p_54120_) { + super(p_54120_); + } + + @Override + public Class getBlockEntityClass() { + return ResistorBlockEntity.class; + } + @Override + public VoxelShape getShape(BlockState pState, BlockGetter worldIn, BlockPos pos, CollisionContext context) { + + return TFMGShapes.RESISTOR.get(pState.getValue(FACING)); + } + @Override + public BlockEntityType getBlockEntityType() { + return TFMGBlockEntities.RESISTOR.get(); + } +} diff --git a/src/main/java/com/drmangotea/createindustry/blocks/electricity/resistors/ResistorBlockEntity.java b/src/main/java/com/drmangotea/createindustry/blocks/electricity/resistors/ResistorBlockEntity.java new file mode 100644 index 00000000..c30b8080 --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/electricity/resistors/ResistorBlockEntity.java @@ -0,0 +1,135 @@ +package com.drmangotea.createindustry.blocks.electricity.resistors; + +import com.drmangotea.createindustry.blocks.electricity.base.ElectricBlockEntity; +import com.drmangotea.createindustry.blocks.electricity.base.IElectricBlock; +import com.jozufozu.flywheel.util.transform.TransformStack; +import com.mojang.blaze3d.vertex.PoseStack; +import com.simibubi.create.foundation.blockEntity.behaviour.BlockEntityBehaviour; +import com.simibubi.create.foundation.blockEntity.behaviour.ValueBoxTransform; +import com.simibubi.create.foundation.blockEntity.behaviour.scrollValue.ScrollValueBehaviour; +import com.simibubi.create.foundation.utility.AngleHelper; +import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.foundation.utility.VecHelper; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.network.chat.Component; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.phys.Vec3; + +import java.util.List; + +import static net.minecraft.world.level.block.HorizontalDirectionalBlock.FACING; + + +public class ResistorBlockEntity extends ElectricBlockEntity { + + protected ScrollValueBehaviour outputVoltage; + public ResistorBlockEntity(BlockEntityType type, BlockPos pos, BlockState state) { + super(type, pos, state); + } + + @Override + public void addBehaviours(List behaviours) { + super.addBehaviours(behaviours); + int max = 250; + outputVoltage = new ScrollValueBehaviour(Lang.translateDirect("resistor.allowed_voltage"), + this, new ResistorValueBox()); + outputVoltage.between(0, max); + outputVoltage.value = 50; + //outputVoltage.withCallback(i -> this.updateVoltageOutput()); + behaviours.add(outputVoltage); + } + + + public void updateVoltageOutput(){ + + + + } + + + public int getVoltageOutput(){ + return Math.min(outputVoltage.getValue(),voltage); + } + + @Override + public void tick() { + super.tick(); + + + BlockEntity be1 = level.getBlockEntity(getBlockPos().relative(getBlockState().getValue(FACING))); + if (be1 instanceof IElectricBlock be2) + if (be2.hasElectricitySlot(getBlockState().getValue(FACING).getOpposite())) { + sendCharge(be2); + + + } + + } + + + public void sendCharge(IElectricBlock be){ + + + + int maxPossibleTransfer = Math.min(transferSpeed(),Math.min(energy.getEnergyStored(),be.getForgeEnergy().getMaxEnergyStored()-be.getForgeEnergy().getEnergyStored())); + + + if(be.getForgeEnergy().getEnergyStored() < getForgeEnergy().getEnergyStored()) { + be.getForgeEnergy().receiveEnergy(maxPossibleTransfer, false); + getForgeEnergy().extractEnergy(maxPossibleTransfer, false); + } + } + + + @Override + public boolean addToGoggleTooltip(List tooltip, boolean isPlayerSneaking) { + return false; + } + + class ResistorValueBox extends ValueBoxTransform.Sided { + + @Override + protected Vec3 getSouthLocation() { + return VecHelper.voxelSpace(8, 8, 12.5); + } + + @Override + public Vec3 getLocalOffset(BlockState state) { + Direction facing = state.getValue(FACING); + return super.getLocalOffset(state).add(Vec3.atLowerCornerOf(facing.getNormal()) + .scale(-1 / 16f)); + } + + @Override + public void rotate(BlockState state, PoseStack ms) { + super.rotate(state, ms); + Direction facing = state.getValue(FACING); + if (facing.getAxis() == Direction.Axis.Y) + return; + if (getSide() != Direction.UP) + return; + TransformStack.cast(ms) + .rotateZ(-AngleHelper.horizontalAngle(facing) + 180); + } + + @Override + protected boolean isSideActive(BlockState state, Direction direction) { + Direction facing = state.getValue(FACING); + if (direction!=Direction.UP) + return false; + return direction.getAxis() != facing.getAxis(); + } + + } + @Override + public float maxVoltage() { + return 1500; + } + @Override + public boolean hasElectricitySlot(Direction direction) { + return direction == getBlockState().getValue(FACING).getOpposite(); + } +} diff --git a/src/main/java/com/drmangotea/createindustry/blocks/electricity/transformer/CoilBlock.java b/src/main/java/com/drmangotea/createindustry/blocks/electricity/transformer/CoilBlock.java new file mode 100644 index 00000000..8b45b5db --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/electricity/transformer/CoilBlock.java @@ -0,0 +1,45 @@ +package com.drmangotea.createindustry.blocks.electricity.transformer; + +import com.drmangotea.createindustry.registry.TFMGBlockEntities; +import com.simibubi.create.content.equipment.wrench.IWrenchable; +import com.simibubi.create.foundation.block.IBE; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.item.context.UseOnContext; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.StateDefinition; +import net.minecraft.world.level.block.state.properties.BooleanProperty; + +public class CoilBlock extends Block implements IBE, IWrenchable { + + public static final BooleanProperty CAN_EXTRACT = BooleanProperty.create("can_extract"); + + public CoilBlock(Properties p_49795_) { + super(p_49795_); + registerDefaultState(defaultBlockState().setValue(CAN_EXTRACT, false)); + } + + public InteractionResult onWrenched(BlockState state, UseOnContext context) { + + + context.getLevel().setBlock(context.getClickedPos(),state.setValue(CAN_EXTRACT,!state.getValue(CAN_EXTRACT)),2); + + + return InteractionResult.SUCCESS; + } + @Override + protected void createBlockStateDefinition(StateDefinition.Builder builder) { + super.createBlockStateDefinition(builder); + builder.add(CAN_EXTRACT); + } + @Override + public Class getBlockEntityClass() { + return CoilBlockEntity.class; + } + + @Override + public BlockEntityType getBlockEntityType() { + return TFMGBlockEntities.COIL.get(); + } +} diff --git a/src/main/java/com/drmangotea/createindustry/blocks/electricity/transformer/CoilBlockEntity.java b/src/main/java/com/drmangotea/createindustry/blocks/electricity/transformer/CoilBlockEntity.java new file mode 100644 index 00000000..e6218ba6 --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/electricity/transformer/CoilBlockEntity.java @@ -0,0 +1,155 @@ +package com.drmangotea.createindustry.blocks.electricity.transformer; + +import com.drmangotea.createindustry.blocks.electricity.base.ElectricBlockEntity; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.phys.AABB; + +import java.util.ArrayList; + +public class CoilBlockEntity extends ElectricBlockEntity { + + + public boolean controller = false; + public int height=1; + + public float generation = 0; + + + + + + ArrayList coils = new ArrayList<>(); + + + public CoilBlockEntity(BlockEntityType type, BlockPos pos, BlockState state) { + super(type, pos, state); + setLazyTickRate(10); + } + + @Override + public float maxVoltage() { + return 15000; + } + + + + @Override + public void tick() { + super.tick(); + + + if(!(level.getBlockState(getBlockPos().above()).getBlock() instanceof CoilBlock)) { + controller = true; + + }else controller = false; + +///// + + // if(controller) + // CreateClient.OUTLINER.showAABB(skibidi, reachZone()) + // .colored(500) + // .withFaceTextures(AllSpecialTextures.GLUE, AllSpecialTextures.GLUE) + // .disableLineNormals() + // .lineWidth(1 / 16f); +// + + // for(BlockPos pos : coils) { + + if(getBlockState().getValue(CoilBlock.CAN_EXTRACT)&&!controller) + level.setBlock(getBlockPos(),getBlockState().setValue(CoilBlock.CAN_EXTRACT,false),2); + + + if(getBlockState().getValue(CoilBlock.CAN_EXTRACT)) + return; + + if(controller) + for(CoilBlockEntity coil : coils){ + + if(coil == null) + continue; + + + + + + if (level.getBlockEntity(coil.getBlockPos()) instanceof CoilBlockEntity be){ + if(be.getBlockPos()!=this.getBlockPos()) { + + float heightRatio = (float) be.height / height; + + if(!be.getBlockState().getValue(CoilBlock.CAN_EXTRACT)) + continue; + + be.generation = voltage * heightRatio; + + if(energy.getEnergyStored()!=0) { + int amount = getForgeEnergy().extractEnergy(transferSpeed()*10, true); + int amount2 = be.getForgeEnergy().receiveEnergy(transferSpeed()*10, true); + + + getForgeEnergy().extractEnergy(Math.min(amount, amount2), false); + be.getForgeEnergy().receiveEnergy(Math.min(amount, amount2), false); + } + + } + } + } + + } + + @Override + public void lazyTick() { + super.lazyTick(); + BlockPos pos = this.getBlockPos().below(); + int height = 1; + for(int i = 0; i<4;i++){ + + if(level.getBlockState(pos).getBlock() instanceof CoilBlock) { + height++; + }else break; + + pos = pos.below(); + + + } + this.height = height; + /// + coils = new ArrayList<>(); + if(controller) + for (BlockPos checkedPos : BlockPos.betweenClosed(new BlockPos(reachZone().minX,reachZone().minY,reachZone().minZ), new BlockPos(reachZone().maxX,reachZone().maxY,reachZone().maxZ))) { + + // BlockPos.betweenClosedStream(new BlockPos(reachZone().minX,reachZone().minY,reachZone().minZ), new BlockPos(reachZone().maxX,reachZone().maxY,reachZone().maxZ) + if(level.getBlockEntity(checkedPos) instanceof CoilBlockEntity be&&checkedPos!=getBlockPos()){ + if(be.controller) + coils.add((CoilBlockEntity) level.getBlockEntity(checkedPos)); + + } +// + + + } + + } + + public AABB reachZone(){ + + AABB reach = new AABB(getBlockPos()).inflate((double) height /2); + + + return reach; + } + + + @Override + public int voltageGeneration() { + return (int) generation; + } + + @Override + public boolean hasElectricitySlot(Direction direction) { + return direction == Direction.UP; + } +} diff --git a/src/main/java/com/drmangotea/createindustry/blocks/electricity/transformer/CoilGenerator.java b/src/main/java/com/drmangotea/createindustry/blocks/electricity/transformer/CoilGenerator.java new file mode 100644 index 00000000..48b25b65 --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/electricity/transformer/CoilGenerator.java @@ -0,0 +1,28 @@ +package com.drmangotea.createindustry.blocks.electricity.transformer; + +import com.simibubi.create.foundation.data.AssetLookup; +import com.simibubi.create.foundation.data.SpecialBlockStateGen; +import com.tterrag.registrate.providers.DataGenContext; +import com.tterrag.registrate.providers.RegistrateBlockstateProvider; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraftforge.client.model.generators.ModelFile; + +public class CoilGenerator extends SpecialBlockStateGen { + @Override + protected int getXRotation(BlockState state) { + return 0; + } + + @Override + protected int getYRotation(BlockState state) { + return 0; + } + + + public ModelFile getModel(DataGenContext ctx, RegistrateBlockstateProvider prov, BlockState state) { + return (Boolean)state.getValue(CoilBlock.CAN_EXTRACT) ? AssetLookup.partialBaseModel(ctx, prov, "arrow") : AssetLookup.partialBaseModel(ctx, prov, new String[0]); + } + +} + diff --git a/src/main/java/com/drmangotea/createindustry/blocks/electricity/voltmeter/VoltMeterBlock.java b/src/main/java/com/drmangotea/createindustry/blocks/electricity/voltmeter/VoltMeterBlock.java new file mode 100644 index 00000000..71b446a4 --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/electricity/voltmeter/VoltMeterBlock.java @@ -0,0 +1,67 @@ +package com.drmangotea.createindustry.blocks.electricity.voltmeter; + + +import com.drmangotea.createindustry.blocks.TFMGHorizontalDirectionalBlock; +import com.drmangotea.createindustry.registry.TFMGBlockEntities; +import com.drmangotea.createindustry.registry.TFMGShapes; +import com.simibubi.create.content.equipment.wrench.IWrenchable; +import com.simibubi.create.foundation.block.IBE; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.item.context.UseOnContext; +import net.minecraft.world.level.BlockGetter; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.phys.shapes.CollisionContext; +import net.minecraft.world.phys.shapes.VoxelShape; + + +public class VoltMeterBlock extends TFMGHorizontalDirectionalBlock implements IBE, IWrenchable { + + + public VoltMeterBlock(Properties p_54120_) { + super(p_54120_); + } + + @Override + public VoxelShape getShape(BlockState pState, BlockGetter worldIn, BlockPos pos, CollisionContext context) { + + return TFMGShapes.VOLTMETER.get(pState.getValue(FACING)); + } + + + @Override + public InteractionResult onWrenched(BlockState state, UseOnContext context) { + + Level level = context.getLevel(); + BlockPos pos = context.getClickedPos(); + Direction direction = context.getClickedFace(); + + + return onBlockEntityUse(level, pos, be -> { + + be.range = be.getRange() + 100; + + if(be.getRange() > 2000) + be.range = 100; + + return InteractionResult.SUCCESS; + + + }); + + + } + + @Override + public Class getBlockEntityClass() { + return VoltMeterBlockEntity.class; + } + + @Override + public BlockEntityType getBlockEntityType() { + return TFMGBlockEntities.VOLTMETER.get(); + } +} diff --git a/src/main/java/com/drmangotea/createindustry/blocks/electricity/voltmeter/VoltMeterBlockEntity.java b/src/main/java/com/drmangotea/createindustry/blocks/electricity/voltmeter/VoltMeterBlockEntity.java new file mode 100644 index 00000000..506d7a91 --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/electricity/voltmeter/VoltMeterBlockEntity.java @@ -0,0 +1,120 @@ +package com.drmangotea.createindustry.blocks.electricity.voltmeter; + +import com.drmangotea.createindustry.CreateTFMG; +import com.drmangotea.createindustry.blocks.electricity.base.IElectricBlock; +import com.simibubi.create.content.equipment.goggles.IHaveGoggleInformation; +import com.simibubi.create.foundation.blockEntity.SmartBlockEntity; +import com.simibubi.create.foundation.blockEntity.behaviour.BlockEntityBehaviour; +import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.foundation.utility.animation.LerpedFloat; +import net.minecraft.ChatFormatting; +import net.minecraft.core.BlockPos; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.network.chat.Component; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockState; + +import java.util.List; + +import static net.minecraft.world.level.block.HorizontalDirectionalBlock.FACING; + + +public class VoltMeterBlockEntity extends SmartBlockEntity implements IHaveGoggleInformation { + + + public LerpedFloat angle = LerpedFloat.angular(); + + + public int voltage=0; + + public int range = 500; + + public VoltMeterBlockEntity(BlockEntityType type, BlockPos pos, BlockState state) { + super(type, pos, state); + } + + @Override + public void addBehaviours(List behaviours) { + + } + + + @Override + public void tick() { + super.tick(); + if(!level.isClientSide) + return; + + BlockEntity beBehind = level.getBlockEntity(getBlockPos().relative(getBlockState().getValue(FACING).getOpposite())); + + if(beBehind instanceof IElectricBlock be){ + voltage = Math.min(be.getVoltage(), range ); + + } else voltage = 0; + + float value = (float) Math.abs(voltage) / getRange(); + + if(value>1) + value = 1; + + float targetAngle = Math.abs(value*180); + + + + angle.chase(Math.abs(targetAngle),0.05f, LerpedFloat.Chaser.EXP); + angle.tickChaser(); + + + + } + + + public int getRange(){ + return range; + } + + @Override + public void write(CompoundTag compound, boolean clientPacket) { + super.write(compound, clientPacket); + + + compound.putInt("range",range); + compound.putFloat("angle", (float) Math.abs(voltage) / getRange()); + + } + + @Override + protected void read(CompoundTag compound, boolean clientPacket) { + super.read(compound, clientPacket); + range = compound.getInt("range"); + + angle.setValue(compound.getFloat("angle")); + + + + + } + + @Override + @SuppressWarnings("removal") + public boolean addToGoggleTooltip(List tooltip, boolean isPlayerSneaking) { + + Lang.translate("goggles.voltmeter") + .style(ChatFormatting.DARK_GRAY) + .forGoggles(tooltip, 1); + + Lang.translate("goggles.voltmeter.voltage", Math.min(voltage,range)) + .style(ChatFormatting.AQUA) + .forGoggles(tooltip, 1); + Lang.translate("goggles.voltmeter.range", range) + .style(ChatFormatting.DARK_AQUA) + .forGoggles(tooltip, 1); + + + + + + return true; + } +} diff --git a/src/main/java/com/drmangotea/createindustry/blocks/electricity/voltmeter/VoltMeterRenderer.java b/src/main/java/com/drmangotea/createindustry/blocks/electricity/voltmeter/VoltMeterRenderer.java new file mode 100644 index 00000000..6a696752 --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/electricity/voltmeter/VoltMeterRenderer.java @@ -0,0 +1,59 @@ +package com.drmangotea.createindustry.blocks.electricity.voltmeter; + +import com.drmangotea.createindustry.CreateTFMG; +import com.drmangotea.createindustry.registry.TFMGPartialModels; +import com.jozufozu.flywheel.util.transform.TransformStack; +import com.mojang.blaze3d.vertex.PoseStack; +import com.mojang.blaze3d.vertex.VertexConsumer; +import com.simibubi.create.foundation.blockEntity.renderer.SafeBlockEntityRenderer; +import com.simibubi.create.foundation.render.CachedBufferer; +import com.simibubi.create.foundation.render.SuperByteBuffer; +import net.minecraft.client.renderer.MultiBufferSource; +import net.minecraft.client.renderer.RenderType; +import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.state.BlockState; + +import static net.minecraft.world.level.block.HorizontalDirectionalBlock.FACING; + +public class VoltMeterRenderer extends SafeBlockEntityRenderer { + + public VoltMeterRenderer(BlockEntityRendererProvider.Context context) {} + + @Override + protected void renderSafe(VoltMeterBlockEntity be, float partialTicks, PoseStack ms, MultiBufferSource bufferSource, int light, int overlay) { + + + + BlockState blockState = be.getBlockState(); + VertexConsumer vb = bufferSource.getBuffer(RenderType.solid()); + ms.pushPose(); + TransformStack msr = TransformStack.cast(ms); + msr.translate(0.5, 0.5, 0.5); + + float dialPivot = 5.75f / 16; + + float dialPivot2 = 5.75f / 12; + + SuperByteBuffer dial = CachedBufferer.partial(TFMGPartialModels.VOLTMETER_DIAL, blockState); + + Direction direction = blockState.getValue(FACING).getCounterClockWise(); + + if(direction.getAxis() == Direction.Axis.X) + direction = direction.getOpposite(); + + dial + .rotateY(direction.toYRot()) + .unCentre() + .translate(0, dialPivot, dialPivot2) + .rotateX(Math.abs(Math.min( be.angle.getValue(partialTicks),180))) + .translate(0, -dialPivot, -dialPivot2) + .light(light); + + dial.renderInto(ms,vb); + + + ms.popPose(); + + } +} diff --git a/src/main/java/com/drmangotea/createindustry/blocks/electricity/voltmeter/energy_meter/EnergyMeterBlock.java b/src/main/java/com/drmangotea/createindustry/blocks/electricity/voltmeter/energy_meter/EnergyMeterBlock.java new file mode 100644 index 00000000..ae9f04c6 --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/electricity/voltmeter/energy_meter/EnergyMeterBlock.java @@ -0,0 +1,45 @@ +package com.drmangotea.createindustry.blocks.electricity.voltmeter.energy_meter; + + +import com.drmangotea.createindustry.blocks.TFMGHorizontalDirectionalBlock; +import com.drmangotea.createindustry.registry.TFMGBlockEntities; +import com.drmangotea.createindustry.registry.TFMGShapes; +import com.simibubi.create.content.equipment.wrench.IWrenchable; +import com.simibubi.create.foundation.block.IBE; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.item.context.UseOnContext; +import net.minecraft.world.level.BlockGetter; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.phys.shapes.CollisionContext; +import net.minecraft.world.phys.shapes.VoxelShape; + + +public class EnergyMeterBlock extends TFMGHorizontalDirectionalBlock implements IBE, IWrenchable { + + + public EnergyMeterBlock(Properties p_54120_) { + super(p_54120_); + } + + @Override + public VoxelShape getShape(BlockState pState, BlockGetter worldIn, BlockPos pos, CollisionContext context) { + + return TFMGShapes.VOLTMETER.get(pState.getValue(FACING)); + } + + + + @Override + public Class getBlockEntityClass() { + return EnergyMeterBlockEntity.class; + } + + @Override + public BlockEntityType getBlockEntityType() { + return TFMGBlockEntities.ENERGY_METER.get(); + } +} diff --git a/src/main/java/com/drmangotea/createindustry/blocks/electricity/voltmeter/energy_meter/EnergyMeterBlockEntity.java b/src/main/java/com/drmangotea/createindustry/blocks/electricity/voltmeter/energy_meter/EnergyMeterBlockEntity.java new file mode 100644 index 00000000..3bfbf5c6 --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/electricity/voltmeter/energy_meter/EnergyMeterBlockEntity.java @@ -0,0 +1,129 @@ +package com.drmangotea.createindustry.blocks.electricity.voltmeter.energy_meter; + +import com.drmangotea.createindustry.blocks.electricity.base.IElectricBlock; +import com.simibubi.create.content.equipment.goggles.IHaveGoggleInformation; +import com.simibubi.create.foundation.blockEntity.SmartBlockEntity; +import com.simibubi.create.foundation.blockEntity.behaviour.BlockEntityBehaviour; +import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.foundation.utility.animation.LerpedFloat; +import net.minecraft.ChatFormatting; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.network.chat.Component; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraftforge.common.capabilities.ForgeCapabilities; +import net.minecraftforge.energy.EnergyStorage; + +import java.util.List; + +import static net.minecraft.world.level.block.HorizontalDirectionalBlock.FACING; + + +public class EnergyMeterBlockEntity extends SmartBlockEntity implements IHaveGoggleInformation { + + + public LerpedFloat angle = LerpedFloat.angular(); + + + public int energy=0; + + public int range = 1; + + public EnergyMeterBlockEntity(BlockEntityType type, BlockPos pos, BlockState state) { + super(type, pos, state); + } + + @Override + public void addBehaviours(List behaviours) { + + } + + + @Override + public void tick() { + super.tick(); + //if(!level.isClientSide) + // return; + Direction direction = getBlockState().getValue(FACING).getOpposite(); + BlockEntity beBehind = level.getBlockEntity(getBlockPos().relative(direction)); + + + if(beBehind!=null) + if(beBehind.getCapability(ForgeCapabilities.ENERGY).isPresent()){ + energy = beBehind.getCapability(ForgeCapabilities.ENERGY).orElse(new EnergyStorage(0)).getEnergyStored(); + range = beBehind.getCapability(ForgeCapabilities.ENERGY).orElse(new EnergyStorage(0)).getMaxEnergyStored(); + + } else energy = 0; + + float value = (float) Math.abs(energy) / getRange(); + + if(value>1) + value = 1; + + float targetAngle = value*180; + + + + angle.chase(targetAngle,0.05f, LerpedFloat.Chaser.EXP); + angle.tickChaser(); + + + + } + + + public int getRange(){ + return range; + } + + @Override + public void write(CompoundTag compound, boolean clientPacket) { + super.write(compound, clientPacket); + + + compound.putInt("range",range); + compound.putFloat("angle",(float) Math.abs(energy) / getRange()); + + } + + @Override + protected void read(CompoundTag compound, boolean clientPacket) { + super.read(compound, clientPacket); + range = compound.getInt("range"); + + angle.setValue(compound.getFloat("angle")); + + + + + } + + @Override + @SuppressWarnings("removal") + public boolean addToGoggleTooltip(List tooltip, boolean isPlayerSneaking) { + + Lang.translate("goggles.energy_meter") + .style(ChatFormatting.DARK_GRAY) + .forGoggles(tooltip, 1); + + Lang.translate("goggles.energy_meter.energy", energy) + .style(ChatFormatting.AQUA) + .forGoggles(tooltip, 1); + + Lang.translate("goggles.energy_meter.energy", angle.getValue()) + .style(ChatFormatting.AQUA); + + + + + + return true; + } + + + + +} diff --git a/src/main/java/com/drmangotea/createindustry/blocks/electricity/voltmeter/energy_meter/EnergyMeterRenderer.java b/src/main/java/com/drmangotea/createindustry/blocks/electricity/voltmeter/energy_meter/EnergyMeterRenderer.java new file mode 100644 index 00000000..c38c8982 --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/electricity/voltmeter/energy_meter/EnergyMeterRenderer.java @@ -0,0 +1,61 @@ +package com.drmangotea.createindustry.blocks.electricity.voltmeter.energy_meter; + +import com.drmangotea.createindustry.registry.TFMGPartialModels; +import com.jozufozu.flywheel.util.transform.TransformStack; +import com.mojang.blaze3d.vertex.PoseStack; +import com.mojang.blaze3d.vertex.VertexConsumer; +import com.simibubi.create.foundation.blockEntity.renderer.SafeBlockEntityRenderer; +import com.simibubi.create.foundation.render.CachedBufferer; +import com.simibubi.create.foundation.render.SuperByteBuffer; +import net.minecraft.client.renderer.MultiBufferSource; +import net.minecraft.client.renderer.RenderType; +import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.state.BlockState; + +import static net.minecraft.world.level.block.HorizontalDirectionalBlock.FACING; + +public class EnergyMeterRenderer extends SafeBlockEntityRenderer { + + public EnergyMeterRenderer(BlockEntityRendererProvider.Context context) {} + + @Override + protected void renderSafe(EnergyMeterBlockEntity be, float partialTicks, PoseStack ms, MultiBufferSource bufferSource, int light, int overlay) { + + + + + + + BlockState blockState = be.getBlockState(); + VertexConsumer vb = bufferSource.getBuffer(RenderType.solid()); + ms.pushPose(); + TransformStack msr = TransformStack.cast(ms); + msr.translate(0.5, 0.5, 0.5); + + float dialPivot = 5.75f / 16; + + float dialPivot2 = 5.75f / 12; + + SuperByteBuffer dial = CachedBufferer.partial(TFMGPartialModels.VOLTMETER_DIAL, blockState); + + Direction direction = blockState.getValue(FACING).getCounterClockWise(); + + if(direction.getAxis() == Direction.Axis.X) + direction = direction.getOpposite(); + + dial + .rotateY(direction.toYRot()) + .unCentre() + .translate(0, dialPivot, dialPivot2) + .rotateX(Math.abs( be.angle.getValue(partialTicks))) + .translate(0, -dialPivot, -dialPivot2) + .light(light); + + dial.renderInto(ms,vb); + + + ms.popPose(); + + } +} diff --git a/src/main/java/com/drmangotea/createindustry/blocks/engines/low_grade_fuel/LowGradeFuelEngineBlock.java b/src/main/java/com/drmangotea/createindustry/blocks/engines/low_grade_fuel/LowGradeFuelEngineBlock.java new file mode 100644 index 00000000..537ba819 --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/engines/low_grade_fuel/LowGradeFuelEngineBlock.java @@ -0,0 +1,110 @@ +package com.drmangotea.createindustry.blocks.engines.low_grade_fuel; + + + +import com.drmangotea.createindustry.registry.TFMGBlockEntities; +import com.drmangotea.createindustry.registry.TFMGShapes; +import com.simibubi.create.content.kinetics.base.DirectionalKineticBlock; +import com.simibubi.create.foundation.block.IBE; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.core.Direction.Axis; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.context.BlockPlaceContext; +import net.minecraft.world.level.BlockGetter; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.LevelReader; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.pathfinder.PathComputationType; +import net.minecraft.world.phys.BlockHitResult; +import net.minecraft.world.phys.shapes.CollisionContext; +import net.minecraft.world.phys.shapes.VoxelShape; + +public class LowGradeFuelEngineBlock extends DirectionalKineticBlock implements IBE { + + + public LowGradeFuelEngineBlock(Properties properties) { + super(properties); + + + } + + +/* + @Override + public VoxelShape getShape(BlockState state, BlockGetter worldIn, BlockPos pos, CollisionContext context) { + return AllShapes.MOTOR_BLOCK.get(state.getValue(FACING)); + } + + */ + + + @Override +public VoxelShape getShape(BlockState pState, BlockGetter worldIn, BlockPos pos, CollisionContext context) { + + if(pState.getValue(FACING).getAxis()==Axis.Y) { + return TFMGShapes.COMPACT_ENGINE_VERTICAL.get(pState.getValue(FACING)); + }else + return TFMGShapes.COMPACT_ENGINE.get(pState.getValue(FACING)); +} + + + @Override + public BlockState getStateForPlacement(BlockPlaceContext context) { + Direction preferred = getPreferredFacing(context); + if ((context.getPlayer() != null && context.getPlayer() + .isShiftKeyDown()) || preferred == null) + return super.getStateForPlacement(context); + return defaultBlockState() + .setValue(FACING, preferred) + //.setValue(BACK_PART,false) + ; + } + + // IRotate: + + @Override + public boolean hasShaftTowards(LevelReader world, BlockPos pos, BlockState state, Direction face) { + return face == state.getValue(FACING); + } + + @Override + public Axis getRotationAxis(BlockState state) { + return state.getValue(FACING) + .getAxis(); + } + + @Override + public boolean hideStressImpact() { + return true; + } + + @Override + public boolean isPathfindable(BlockState state, BlockGetter reader, BlockPos pos, PathComputationType type) { + return false; + } + @Override + public InteractionResult use(BlockState pState, Level level, BlockPos pos, Player pPlayer, InteractionHand pHand, BlockHitResult pHit) { + + + if (level.getBlockEntity(pos) instanceof LowGradeFuelEngineBlockEntity be) + if (be.playerInteract(pPlayer, pHand)) + return InteractionResult.SUCCESS; + + return super.use(pState,level,pos,pPlayer,pHand,pHit); + + } + + @Override + public Class getBlockEntityClass() { + return LowGradeFuelEngineBlockEntity.class; + } + + @Override + public BlockEntityType getBlockEntityType() { + return TFMGBlockEntities.LOW_GRADE_FUEL_ENGINE.get(); + } +} diff --git a/src/main/java/com/drmangotea/createindustry/blocks/engines/low_grade_fuel/LowGradeFuelEngineBlockEntity.java b/src/main/java/com/drmangotea/createindustry/blocks/engines/low_grade_fuel/LowGradeFuelEngineBlockEntity.java new file mode 100644 index 00000000..2b6bee0b --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/engines/low_grade_fuel/LowGradeFuelEngineBlockEntity.java @@ -0,0 +1,541 @@ +package com.drmangotea.createindustry.blocks.engines.low_grade_fuel; + + +import com.drmangotea.createindustry.registry.TFMGFluids; +import com.drmangotea.createindustry.registry.TFMGSoundEvents; +import com.simibubi.create.Create; +import com.simibubi.create.content.equipment.goggles.IHaveGoggleInformation; +import com.simibubi.create.content.equipment.wrench.IWrenchable; +import com.simibubi.create.content.kinetics.base.GeneratingKineticBlockEntity; +import com.simibubi.create.foundation.blockEntity.behaviour.BlockEntityBehaviour; +import com.simibubi.create.foundation.fluid.CombinedTankWrapper; +import com.simibubi.create.foundation.fluid.SmartFluidTank; +import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.foundation.utility.LangBuilder; +import net.minecraft.ChatFormatting; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.network.chat.Component; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.Items; +import net.minecraft.world.item.context.UseOnContext; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.material.Fluid; +import net.minecraftforge.api.distmarker.Dist; +import net.minecraftforge.api.distmarker.OnlyIn; +import net.minecraftforge.common.capabilities.Capability; +import net.minecraftforge.common.util.LazyOptional; +import net.minecraftforge.fluids.FluidStack; +import net.minecraftforge.fluids.IFluidTank; +import net.minecraftforge.fluids.capability.CapabilityFluidHandler; +import net.minecraftforge.fluids.capability.IFluidHandler; +import net.minecraftforge.fluids.capability.templates.FluidTank; + +import javax.annotation.Nonnull; +import javax.annotation.Nullable; +import java.util.List; +import java.util.Optional; + +@SuppressWarnings("removal") +public class LowGradeFuelEngineBlockEntity extends GeneratingKineticBlockEntity implements IHaveGoggleInformation, IWrenchable { + + protected LazyOptional fluidCapability; + protected FluidTank tankInventory; + + protected FluidTank lubricationOilTank; + + protected FluidTank coolantTank; + + protected int soundTimer=0; + + + public int fuelConsumption =0; + + public float stressTotal=0; + public float speed=0; + public float stressBase=0; + + public int efficiency=1; + public final int idealSpeed=12; + + private int consumptionTimer=0; + + + public Fluid lubricationOil = TFMGFluids.LUBRICATION_OIL.get(); + public Fluid coolant = TFMGFluids.COOLING_FLUID.get(); + + public float powerModifier=1; + public float efficiencyModifier = 1.4f; +// +int signal; +boolean signalChanged; +// + + // protected ScrollValueBehaviour generatedSpeed; + + public LowGradeFuelEngineBlockEntity(BlockEntityType type, BlockPos pos, BlockState state) { + super(type, pos, state); + tankInventory = createInventory(); + + lubricationOilTank = createUpgradeTankInventory(lubricationOil); + coolantTank = createUpgradeTankInventory(coolant); + + + //fluidCapability = LazyOptional.of(() -> tankInventory); + fluidCapability = LazyOptional.of(() -> { + return new CombinedTankWrapper(tankInventory,lubricationOilTank,coolantTank ); + }); + + signal = 0; + setLazyTickRate(40); + + } + + @Override + public void addBehaviours(List behaviours) { + + + + } + + @Override + public void initialize() { + super.initialize(); + sendData(); + if (!hasSource() || getGeneratedSpeed() > getTheoreticalSpeed()) + updateGeneratedRotation(); + } + + @Override + public float getGeneratedSpeed() { + + + + if(!level.isClientSide){ + + + calculateEfficiency(); + fuelConsumption = (int)((speed/(efficiency/10)/6)+1); + if(fuelConsumption<1) + fuelConsumption=0; + if(!tankInventory.isEmpty()) { + + if(consumptionTimer>=45) { + if(signal!=0) + tankInventory.drain(fuelConsumption, IFluidHandler.FluidAction.EXECUTE); + consumptionTimer=0; + } + consumptionTimer++; + + + + // return convertToDirection((signal * signal), getBlockState().getValue(FACING))*Create.RANDOM.nextFloat(2); + return ((signal*signal)*0.5f)*powerModifier; + // *powerModifier; + }} + return 0; + + + } + + + public void calculateEfficiency(){ + + + if(signal==0||tankInventory.isEmpty()) { + efficiency = 0; + return; + } + efficiency=100; + + if(signal>=idealSpeed){ + efficiency= (int) ((100-(signal-idealSpeed)*5)/efficiencyModifier); + } + + if(signal100) + efficiency=100; + + } + + + + @Override + public boolean addToGoggleTooltip(List tooltip, boolean isPlayerSneaking) { + // boolean added = super.addToGoggleTooltip(tooltip, isPlayerSneaking); + // if (!IRotate.StressImpact.isEnabled()) + // return added; + // + Lang.translate("goggles.engine_stats") + .forGoggles(tooltip); + stressBase = calculateAddedStressCapacity(); + // if (Mth.equal(stressBase, 0)) + // return added; + + + Lang.translate("tooltip.capacityProvided") + .style(ChatFormatting.GRAY) + .space() + .forGoggles(tooltip); + + speed = getTheoreticalSpeed(); + if (speed != getGeneratedSpeed() && speed != 0) + // stressBase *= getGeneratedSpeed() / speed; + speed = Math.abs(speed); + + stressTotal = stressBase * speed; + + Lang.number(stressTotal) + .translate("generic.unit.stress") + .style(ChatFormatting.DARK_AQUA) + + .space() + .add(Lang.translate("gui.goggles.at_current_speed") + .style(ChatFormatting.DARK_GRAY)) + + .forGoggles(tooltip, 1); + + Lang.translate("goggles.engine_redstone_input") + .style(ChatFormatting.GRAY) + .forGoggles(tooltip); + Lang.translate("tooltip.engine_analog_strength", this.signal) + .style(ChatFormatting.DARK_AQUA) + .forGoggles(tooltip,1); + +///// + + Lang.translate("goggles.engine.efficiency") + .style(ChatFormatting.GRAY) + .forGoggles(tooltip); + Lang.translate("goggles.get_engine_efficiency", this.efficiency) + .style(ChatFormatting.DARK_AQUA) + .add(Lang.translate("goggles.misc.percent_symbol")) + .forGoggles(tooltip,1); + + +//////////////////////////////////////// + LazyOptional handler = this.getCapability(CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY); + Optional resolve = handler.resolve(); + if (!resolve.isPresent()) + return false; + + IFluidHandler tank = resolve.get(); + if (tank.getTanks() == 0) + return false; + + LangBuilder mb = Lang.translate("generic.unit.millibuckets"); + Lang.translate("goggles.fuel_container") + .style(ChatFormatting.GRAY) + .forGoggles(tooltip); + + + boolean isEmpty = true; + for (int i = 0; i < tank.getTanks(); i++) { + FluidStack fluidStack = tank.getFluidInTank(i); + if (fluidStack.isEmpty()) + continue; + + Lang.fluidName(fluidStack) + .style(ChatFormatting.GRAY) + .forGoggles(tooltip, 1); + + Lang.builder() + .add(Lang.number(fluidStack.getAmount()) + .add(mb) + .style(ChatFormatting.DARK_AQUA)) + .text(ChatFormatting.GRAY, " / ") + .add(Lang.number(tank.getTankCapacity(i)) + .add(mb) + .style(ChatFormatting.DARK_GRAY)) + .forGoggles(tooltip, 1); + + isEmpty = false; + } + + if (tank.getTanks() > 1) { + if (isEmpty) + tooltip.remove(tooltip.size() - 1); + return true; + } + + if (!isEmpty) + return true; + + Lang.translate("gui.goggles.fluid_container.capacity") + .add(Lang.number(tank.getTankCapacity(0)) + .add(mb) + .style(ChatFormatting.DARK_AQUA)) + .style(ChatFormatting.DARK_GRAY) + .forGoggles(tooltip, 1); + + +return true; + } + + @Override + public InteractionResult onWrenched(BlockState state, UseOnContext context) { + + + + + // this.getBlockState().setValue(EngineBlock.BACKPART,true); + + return InteractionResult.SUCCESS; + } + + +///////////////////////////////////////////// +@Override +public void write(CompoundTag compound, boolean clientPacket) { + compound.putInt("Signal", signal); + + + + compound.put("TankContent", tankInventory.writeToNBT(new CompoundTag())); + compound.put("Coolant", coolantTank.writeToNBT(new CompoundTag())); + compound.put("LubricationOil", lubricationOilTank.writeToNBT(new CompoundTag())); + + + super.write(compound, clientPacket); +} + + @Override + protected void read(CompoundTag compound, boolean clientPacket) { + + + + tankInventory.readFromNBT(compound.getCompound("TankContent")); + coolantTank.readFromNBT(compound.getCompound("Coolant")); + lubricationOilTank.readFromNBT(compound.getCompound("LubricationOil")); + + + + + + + signal = compound.getInt("Signal"); + super.read(compound, clientPacket); + } + + public float getModifier() { + return getModifierForSignal(signal); + } + + public void neighbourChanged() { + if (!hasLevel()) + return; + int power = level.getBestNeighborSignal(worldPosition); + if (power != signal) + signalChanged = true; + } + + @Override + public void lazyTick() { + super.lazyTick(); + neighbourChanged(); + } + + + @Override + public void tick() { + super.tick(); + + calculateUpgradeModifier(); + + // + int random1 = Create.RANDOM.nextInt(125); + int random2 = Create.RANDOM.nextInt(200); + + if(random1 == 69) + coolantTank.drain(1, IFluidHandler.FluidAction.EXECUTE); + if(random2 == 69) + lubricationOilTank.drain(1, IFluidHandler.FluidAction.EXECUTE); + + + // + + + + /// + // if(signal!=0&&hasBackPart()&&tankInventory.getFluidAmount()!=0&&!overStressed&&isExhaustTankFull()) { + + + soundTimer++; + + // if(!isExhaustTankFull()) { + if (soundTimer >= (((16-signal)/0.8)+1)/2) { + if(signal!=0&& + tankInventory.getFluidAmount()!=0 && + !overStressed + + + ){ + + + // if(this.getGeneratedSpeed()!=0) { + if (level.isClientSide) + makeSound(); + + } + } + // } + + + /// + updateGeneratedRotation(); + calculateEfficiency(); + + + + + stressBase = calculateAddedStressCapacity(); + speed = getTheoreticalSpeed(); + if (speed != getGeneratedSpeed() && speed != 0) + stressBase *= getGeneratedSpeed() / speed; + speed = Math.abs(speed); + + stressTotal = stressBase * speed; + // if (level.isClientSide) + // return; + if (signalChanged) { + signalChanged = false; + analogSignalChanged(level.getBestNeighborSignal(worldPosition)); + } + + + + } + + + public void calculateUpgradeModifier(){ + + + float newPowerModifier=1; + float newEfficiencyModifier = 1.4f; + + if(lubricationOilTank.getFluidAmount()>0) { + //newPowerModifier+=.3f; + newEfficiencyModifier-=.1f; + } + if(coolantTank.getFluidAmount()>0) { + newPowerModifier+=.3f; + newEfficiencyModifier-=.3f; + } + + //////// + + + //// + + powerModifier=newPowerModifier; + efficiencyModifier = newEfficiencyModifier; + } + + + + + @OnlyIn(Dist.CLIENT) + private void makeSound(){ + soundTimer=0; + + + TFMGSoundEvents.ENGINE.playAt(level, worldPosition, 0.6f, 1f, false); + + + } + public boolean playerInteract(Player pPlayer, InteractionHand pHand) { + + ItemStack stack = pPlayer.getItemInHand(pHand); + + if(stack.is(TFMGFluids.CREOSOTE.getBucket().get())&&tankInventory.isEmpty()){ + + tankInventory.setFluid(new FluidStack(TFMGFluids.CREOSOTE.get(),1000)); + pPlayer.setItemInHand(pHand, Items.BUCKET.getDefaultInstance()); + + return true; + } + + return false; + + } + protected void analogSignalChanged(int newSignal) { + //removeSource(); + signal = newSignal; + } + + protected float getModifierForSignal(int newPower) { + if (newPower == 0) + return 1; + return 1 + ((newPower + 1) / 16f); + } + ///////////////////// + + protected SmartFluidTank createInventory() { + return new SmartFluidTank(1000, this::onFluidStackChanged){ + @Override + public boolean isFluidValid(FluidStack stack) { + return stack.getFluid().isSame(validFuel()); + } + }; + } + protected SmartFluidTank createUpgradeTankInventory(Fluid validFluid) { + return new SmartFluidTank(1000, this::onFluidStackChanged){ + @Override + public boolean isFluidValid(FluidStack stack) { + return stack.getFluid().isSame(validFluid); + } + }; + } + + + protected void onFluidStackChanged(FluidStack newFluidStack) {} + + + + + + + + + public float getFillState() { + return (float) tankInventory.getFluidAmount() / tankInventory.getCapacity(); + } + + + + @Nonnull + @Override + public LazyOptional getCapability(@Nonnull Capability cap, @Nullable Direction side) { + + if (cap == CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY) + return fluidCapability.cast(); + return super.getCapability(cap, side); + } + + @Override + public void invalidate() { + super.invalidate(); + fluidCapability.invalidate(); + } + + + + public IFluidTank getTankInventory() { + return tankInventory; + } + + public Fluid validFuel(){ + return TFMGFluids.CREOSOTE.get(); + }; + +} + diff --git a/src/main/java/com/drmangotea/createindustry/blocks/engines/low_grade_fuel/LowGradeFuelEngineRenderer.java b/src/main/java/com/drmangotea/createindustry/blocks/engines/low_grade_fuel/LowGradeFuelEngineRenderer.java new file mode 100644 index 00000000..9298be63 --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/engines/low_grade_fuel/LowGradeFuelEngineRenderer.java @@ -0,0 +1,22 @@ +package com.drmangotea.createindustry.blocks.engines.low_grade_fuel; + + +import com.simibubi.create.AllPartialModels; +import com.simibubi.create.content.kinetics.base.KineticBlockEntityRenderer; +import com.simibubi.create.foundation.render.CachedBufferer; +import com.simibubi.create.foundation.render.SuperByteBuffer; +import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider; +import net.minecraft.world.level.block.state.BlockState; + +public class LowGradeFuelEngineRenderer extends KineticBlockEntityRenderer { + + public LowGradeFuelEngineRenderer(BlockEntityRendererProvider.Context context) { + super(context); + } + + @Override + protected SuperByteBuffer getRotatedModel(LowGradeFuelEngineBlockEntity be, BlockState state) { + return CachedBufferer.partialFacing(AllPartialModels.SHAFT_HALF, state); + } + +} \ No newline at end of file diff --git a/src/main/java/com/drmangotea/createindustry/blocks/fluids/AcidFluidType.java b/src/main/java/com/drmangotea/createindustry/blocks/fluids/AcidFluidType.java new file mode 100644 index 00000000..9583b0ab --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/fluids/AcidFluidType.java @@ -0,0 +1,70 @@ +package com.drmangotea.createindustry.blocks.fluids; + +import com.mojang.math.Vector3f; +import com.simibubi.create.AllFluids; +import com.simibubi.create.Create; +import com.simibubi.create.foundation.utility.Color; +import com.tterrag.registrate.builders.FluidBuilder; +import net.minecraft.core.BlockPos; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.damagesource.DamageSource; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.level.BlockAndTintGetter; +import net.minecraft.world.level.material.FluidState; +import net.minecraft.world.phys.Vec3; +import net.minecraftforge.fluids.FluidStack; + +import javax.swing.text.html.parser.Entity; +import java.util.function.Supplier; + +public class AcidFluidType extends AllFluids.TintedFluidType { + + public static DamageSource damageSourceAcid = new DamageSource("createindustry.acid"); + public AcidFluidType(Properties properties, ResourceLocation stillTexture, ResourceLocation flowingTexture) { + super(properties, stillTexture, flowingTexture); + } + private Vector3f fogColor; + private Supplier fogDistance; + + public static FluidBuilder.FluidTypeFactory create(int fogColor, Supplier fogDistance) { + return (p, s, f) -> { + AcidFluidType fluidType = new AcidFluidType(p, s, f); + fluidType.fogColor = new Color(fogColor, false).asVectorF(); + fluidType.fogDistance = fogDistance; + return fluidType; + }; + } + @Override + protected Vector3f getCustomFogColor() { + return fogColor; + } + + @Override + protected float getFogDistanceModifier() { + return fogDistance.get(); + } + + @Override + protected int getTintColor(FluidStack stack) { + return NO_TINT; + } + @Override + public int getTintColor(FluidState state, BlockAndTintGetter world, BlockPos pos) { + return 0x00ffffff; + } + + + @Override + public boolean move(FluidState state, LivingEntity entity, Vec3 movementVector, double gravity) + { + + + + if(Create.RANDOM.nextInt(2)==0) + entity.hurt(damageSourceAcid,2); + + return false; + } + + +} \ No newline at end of file diff --git a/src/main/java/com/drmangotea/createindustry/blocks/fluids/FlammableFluid.java b/src/main/java/com/drmangotea/createindustry/blocks/fluids/FlammableFluid.java new file mode 100644 index 00000000..bfdfcff4 --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/fluids/FlammableFluid.java @@ -0,0 +1,91 @@ +package com.drmangotea.createindustry.blocks.fluids; + +import net.minecraft.core.BlockPos; +import net.minecraft.util.RandomSource; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.state.StateDefinition; +import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.level.material.FluidState; +import net.minecraftforge.fluids.ForgeFlowingFluid; + +/** + * makes fluid burn when close to fire, + * not working for now + */ +public class FlammableFluid extends ForgeFlowingFluid { + + + protected FlammableFluid(Properties properties) { + super(properties); + } + + @Override + public boolean isSource(FluidState p_76140_) { + return true; + } + + @Override + public int getAmount(FluidState p_164509_) { + return 8; + } + + @Override + public void randomTick(Level level, BlockPos pos, FluidState p_230574_, RandomSource randomSource) { + //level.setBlock(pos,Blocks.FIRE.defaultBlockState(),3); + // if (!level.isClientSide) { + + // Direction checkedDirection=Direction.NORTH; + // for(int i = 0; i < 4; i++) { + + // checkedDirection=checkedDirection.getClockWise(); + + // BlockPos checkedPos = pos.relative(checkedDirection); + + // if(level.getBlockEntity(checkedPos).getBlockState().is(Blocks.FIRE)) { + // level.explode(null, pos.getX(), pos.getY(), pos.getZ(), 2.0F, Explosion.BlockInteraction.NONE); + // level.setBlock(pos,Blocks.FIRE.defaultBlockState(),3); + + // } + // } + // } + } + + protected boolean isRandomlyTicking() { + return true; + } + + + // + public static class Flowing extends FlammableFluid { + public Flowing(Properties properties) { + super(properties); + } + + protected void createFluidStateDefinition(StateDefinition.Builder p_76260_) { + super.createFluidStateDefinition(p_76260_); + p_76260_.add(LEVEL); + } + + public int getAmount(FluidState p_76264_) { + return p_76264_.getValue(LEVEL); + } + + public boolean isSource(FluidState p_76262_) { + return false; + } + } + + public static class Source extends FlammableFluid { + public Source(Properties properties) { + super(properties); + } + + public int getAmount(FluidState p_76269_) { + return 8; + } + + public boolean isSource(FluidState p_76267_) { + return true; + } + } +} diff --git a/src/main/java/com/drmangotea/createindustry/blocks/fluids/FlammableFluidType.java b/src/main/java/com/drmangotea/createindustry/blocks/fluids/FlammableFluidType.java new file mode 100644 index 00000000..28faeada --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/fluids/FlammableFluidType.java @@ -0,0 +1,64 @@ +package com.drmangotea.createindustry.blocks.fluids; + + +import com.mojang.math.Vector3f; +import com.simibubi.create.AllFluids; +import com.simibubi.create.foundation.utility.Color; +import com.tterrag.registrate.builders.FluidBuilder; +import net.minecraft.core.BlockPos; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.level.BlockAndTintGetter; +import net.minecraft.world.level.material.FluidState; +import net.minecraft.world.phys.Vec3; +import net.minecraftforge.fluids.FluidStack; + +import java.util.function.Supplier; + +public class FlammableFluidType extends AllFluids.TintedFluidType { + + private Vector3f fogColor; + private Supplier fogDistance; + + public static FluidBuilder.FluidTypeFactory create(int fogColor, Supplier fogDistance) { + return (p, s, f) -> { + FlammableFluidType fluidType = new FlammableFluidType(p, s, f); + fluidType.fogColor = new Color(fogColor, false).asVectorF(); + fluidType.fogDistance = fogDistance; + return fluidType; + }; + } + + private FlammableFluidType(Properties properties, ResourceLocation stillTexture, + ResourceLocation flowingTexture) { + super(properties, stillTexture, flowingTexture); + } + + @Override + protected int getTintColor(FluidStack stack) { + return NO_TINT; + } + + + @Override + public int getTintColor(FluidState state, BlockAndTintGetter world, BlockPos pos) { + return 0x00ffffff; + } + + @Override + protected Vector3f getCustomFogColor() { + return fogColor; + } + + @Override + protected float getFogDistanceModifier() { + return fogDistance.get(); + } + + + + + + + } \ No newline at end of file diff --git a/src/main/java/com/drmangotea/createindustry/blocks/fluids/HotFluidType.java b/src/main/java/com/drmangotea/createindustry/blocks/fluids/HotFluidType.java new file mode 100644 index 00000000..ee9a3175 --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/fluids/HotFluidType.java @@ -0,0 +1,85 @@ +package com.drmangotea.createindustry.blocks.fluids; + +import com.mojang.math.Vector3f; +import com.simibubi.create.AllFluids; +import com.simibubi.create.Create; +import com.simibubi.create.foundation.utility.Color; +import com.tterrag.registrate.builders.FluidBuilder; +import net.minecraft.core.BlockPos; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.damagesource.DamageSource; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.level.BlockAndTintGetter; +import net.minecraft.world.level.material.FluidState; +import net.minecraft.world.phys.Vec3; +import net.minecraftforge.fluids.FluidStack; + +import java.util.function.Supplier; + +public class HotFluidType extends AllFluids.TintedFluidType { + public HotFluidType(Properties properties, ResourceLocation stillTexture, ResourceLocation flowingTexture) { + super(properties, stillTexture, flowingTexture); + } + private Vector3f fogColor; + private Supplier fogDistance; + + public static FluidBuilder.FluidTypeFactory create(int fogColor, Supplier fogDistance) { + return (p, s, f) -> { + HotFluidType fluidType = new HotFluidType(p, s, f); + fluidType.fogColor = new Color(fogColor, false).asVectorF(); + fluidType.fogDistance = fogDistance; + return fluidType; + }; + } + @Override + protected Vector3f getCustomFogColor() { + return fogColor; + } + + @Override + protected float getFogDistanceModifier() { + return fogDistance.get(); + } + + @Override + protected int getTintColor(FluidStack stack) { + return NO_TINT; + } + @Override + public int getTintColor(FluidState state, BlockAndTintGetter world, BlockPos pos) { + return 0x00ffffff; + } + @Override + public int getLightLevel() { + return 15; + } + @Override + public int getTemperature() + { + return 1270; + } + @Override + public int getViscosity() + { + return 50; + } + + @Override + public boolean move(FluidState state, LivingEntity entity, Vec3 movementVector, double gravity) + { + entity.setDeltaMovement(entity.getDeltaMovement().scale(0.6d)); + + entity.setSecondsOnFire(10); + + if(Create.RANDOM.nextInt(30)==27) + entity.hurt(DamageSource.LAVA,2); + + return false; + } + + public boolean canExtinguish(Entity entity) + { + return false; + } +} diff --git a/src/main/java/com/drmangotea/createindustry/blocks/fluids/PlasticFluidType.java b/src/main/java/com/drmangotea/createindustry/blocks/fluids/PlasticFluidType.java new file mode 100644 index 00000000..05d9a29a --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/fluids/PlasticFluidType.java @@ -0,0 +1,22 @@ +package com.drmangotea.createindustry.blocks.fluids; + +import com.drmangotea.createindustry.blocks.concrete.ConcreteFluidType; +import com.mojang.math.Vector3f; +import com.simibubi.create.AllFluids; +import com.simibubi.create.foundation.utility.Color; +import com.tterrag.registrate.builders.FluidBuilder; +import net.minecraft.core.BlockPos; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.level.BlockAndTintGetter; +import net.minecraft.world.level.material.FluidState; +import net.minecraftforge.fluids.FluidStack; + +import java.util.function.Supplier; + +public class PlasticFluidType extends HotFluidType { + public PlasticFluidType(Properties properties, ResourceLocation stillTexture, ResourceLocation flowingTexture) { + super(properties, stillTexture, flowingTexture); + } + +} diff --git a/src/main/java/com/drmangotea/createindustry/blocks/machines/firebox/FireboxBlock.java b/src/main/java/com/drmangotea/createindustry/blocks/machines/firebox/FireboxBlock.java new file mode 100644 index 00000000..94437112 --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/machines/firebox/FireboxBlock.java @@ -0,0 +1,167 @@ +package com.drmangotea.createindustry.blocks.machines.firebox; + +import com.drmangotea.createindustry.registry.TFMGBlockEntities; +import com.simibubi.create.AllBlockEntityTypes; +import com.simibubi.create.AllBlocks; +import com.simibubi.create.AllItems; +import com.simibubi.create.AllShapes; +import com.simibubi.create.content.equipment.wrench.IWrenchable; +import com.simibubi.create.content.processing.basin.BasinBlockEntity; +import com.simibubi.create.content.processing.burner.BlazeBurnerBlock; +import com.simibubi.create.content.processing.burner.BlazeBurnerBlockItem; +import com.simibubi.create.foundation.block.IBE; +import com.simibubi.create.foundation.utility.Lang; +import net.minecraft.MethodsReturnNonnullByDefault; +import net.minecraft.advancements.critereon.StatePropertiesPredicate; +import net.minecraft.core.BlockPos; +import net.minecraft.core.NonNullList; +import net.minecraft.sounds.SoundEvents; +import net.minecraft.sounds.SoundSource; +import net.minecraft.util.StringRepresentable; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.InteractionResultHolder; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.CreativeModeTab; +import net.minecraft.world.item.FlintAndSteelItem; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.context.BlockPlaceContext; +import net.minecraft.world.level.BlockGetter; +import net.minecraft.world.level.ItemLike; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.HorizontalDirectionalBlock; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.StateDefinition.Builder; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import net.minecraft.world.level.pathfinder.PathComputationType; +import net.minecraft.world.level.storage.loot.LootPool; +import net.minecraft.world.level.storage.loot.LootTable; +import net.minecraft.world.level.storage.loot.entries.LootItem; +import net.minecraft.world.level.storage.loot.predicates.ExplosionCondition; +import net.minecraft.world.level.storage.loot.predicates.LootItemBlockStatePropertyCondition; +import net.minecraft.world.level.storage.loot.predicates.LootItemCondition; +import net.minecraft.world.level.storage.loot.providers.number.ConstantValue; +import net.minecraft.world.phys.BlockHitResult; +import net.minecraft.world.phys.shapes.CollisionContext; +import net.minecraft.world.phys.shapes.VoxelShape; +import net.minecraftforge.api.distmarker.Dist; +import net.minecraftforge.api.distmarker.OnlyIn; +import net.minecraftforge.common.util.FakePlayer; + +import javax.annotation.Nullable; +import javax.annotation.ParametersAreNonnullByDefault; +import java.util.Random; + +import static com.simibubi.create.content.processing.burner.BlazeBurnerBlock.HeatLevel; + +@MethodsReturnNonnullByDefault +@ParametersAreNonnullByDefault +public class FireboxBlock extends HorizontalDirectionalBlock implements IBE, IWrenchable { + + public static final EnumProperty HEAT_LEVEL = BlazeBurnerBlock.HEAT_LEVEL; + + public FireboxBlock(Properties properties) { + super(properties); + registerDefaultState(defaultBlockState().setValue(HEAT_LEVEL, HeatLevel.SMOULDERING)); + } + + @Override + protected void createBlockStateDefinition(Builder builder) { + super.createBlockStateDefinition(builder); + builder.add(HEAT_LEVEL, FACING); + } + + @Override + public void onPlace(BlockState state, Level world, BlockPos pos, BlockState p_220082_4_, boolean p_220082_5_) { + if (world.isClientSide) + return; + BlockEntity blockEntity = world.getBlockEntity(pos.above()); + if (!(blockEntity instanceof BasinBlockEntity)) + return; + BasinBlockEntity basin = (BasinBlockEntity) blockEntity; + basin.notifyChangeOfContents(); + } + + + + @Override + public Class getBlockEntityClass() { + return FireboxBlockEntity.class; + } + + @Override + public BlockEntityType getBlockEntityType() { + return TFMGBlockEntities.FIREBOX.get(); + } + + @Nullable + @Override + public BlockEntity newBlockEntity(BlockPos pos, BlockState state) { + if (state.getValue(HEAT_LEVEL) == HeatLevel.NONE) + return null; + return IBE.super.newBlockEntity(pos, state); + } + + + + @Override + public BlockState getStateForPlacement(BlockPlaceContext context) { + ItemStack stack = context.getItemInHand(); + Item item = stack.getItem(); + BlockState defaultState = defaultBlockState(); + + return defaultState.setValue(FACING, context.getHorizontalDirection() + .getOpposite()); + } + + + + @Override + public boolean hasAnalogOutputSignal(BlockState p_149740_1_) { + return true; + } + + @Override + public int getAnalogOutputSignal(BlockState state, Level p_180641_2_, BlockPos p_180641_3_) { + return Math.max(0, state.getValue(HEAT_LEVEL) + .ordinal() - 1); + } + + @Override + public boolean isPathfindable(BlockState state, BlockGetter reader, BlockPos pos, PathComputationType type) { + return false; + } + + @OnlyIn(Dist.CLIENT) + public void animateTick(BlockState state, Level world, BlockPos pos, Random random) { + if (random.nextInt(10) != 0) + return; + if (!state.getValue(HEAT_LEVEL) + .isAtLeast(HeatLevel.SMOULDERING)) + return; + world.playLocalSound((double) ((float) pos.getX() + 0.5F), (double) ((float) pos.getY() + 0.5F), + (double) ((float) pos.getZ() + 0.5F), SoundEvents.CAMPFIRE_CRACKLE, SoundSource.BLOCKS, + 0.5F + random.nextFloat(), random.nextFloat() * 0.7F + 0.6F, false); + } + + public static HeatLevel getHeatLevelOf(BlockState blockState) { + return blockState.hasProperty(FireboxBlock.HEAT_LEVEL) ? blockState.getValue(FireboxBlock.HEAT_LEVEL) + : HeatLevel.NONE; + } + + public static int getLight(BlockState state) { + HeatLevel level = state.getValue(HEAT_LEVEL); + return switch (level) { + case NONE,SMOULDERING -> 0; + default -> 15; + }; + } + + + + +} diff --git a/src/main/java/com/drmangotea/createindustry/blocks/machines/firebox/FireboxBlockEntity.java b/src/main/java/com/drmangotea/createindustry/blocks/machines/firebox/FireboxBlockEntity.java new file mode 100644 index 00000000..8e6750db --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/machines/firebox/FireboxBlockEntity.java @@ -0,0 +1,267 @@ +package com.drmangotea.createindustry.blocks.machines.firebox; + +import com.drmangotea.createindustry.registry.TFMGFluids; +import com.drmangotea.createindustry.registry.TFMGTags; +import com.simibubi.create.AllBlocks; +import com.simibubi.create.AllItems; +import com.simibubi.create.AllTags.AllItemTags; +import com.simibubi.create.content.fluids.tank.FluidTankBlock; +import com.simibubi.create.content.processing.burner.BlazeBurnerBlock.HeatLevel; +import com.simibubi.create.content.processing.burner.BlazeBurnerBlockEntity; +import com.simibubi.create.foundation.blockEntity.SmartBlockEntity; +import com.simibubi.create.foundation.blockEntity.behaviour.BlockEntityBehaviour; +import com.simibubi.create.foundation.fluid.SmartFluidTank; +import com.simibubi.create.foundation.utility.AngleHelper; +import com.simibubi.create.foundation.utility.VecHelper; +import com.simibubi.create.foundation.utility.animation.LerpedFloat; +import com.simibubi.create.foundation.utility.animation.LerpedFloat.Chaser; +import net.minecraft.client.Minecraft; +import net.minecraft.client.player.LocalPlayer; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.core.particles.ParticleTypes; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.sounds.SoundEvents; +import net.minecraft.sounds.SoundSource; +import net.minecraft.util.Mth; +import net.minecraft.util.RandomSource; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.phys.Vec3; +import net.minecraftforge.api.distmarker.Dist; +import net.minecraftforge.api.distmarker.OnlyIn; +import net.minecraftforge.common.ForgeHooks; +import net.minecraftforge.common.capabilities.Capability; +import net.minecraftforge.common.capabilities.ForgeCapabilities; +import net.minecraftforge.common.util.LazyOptional; +import net.minecraftforge.fluids.FluidStack; +import net.minecraftforge.fluids.capability.IFluidHandler; +import net.minecraftforge.fluids.capability.templates.FluidTank; + +import javax.annotation.Nonnull; +import javax.annotation.Nullable; +import java.util.List; + +public class FireboxBlockEntity extends SmartBlockEntity { + + public static final int MAX_HEAT_CAPACITY = 25000; + + protected FuelType activeFuel; + protected int remainingBurnTime; + + + protected LazyOptional fluidCapability; + public FluidTank tankInventory; + + + + public FireboxBlockEntity(BlockEntityType type, BlockPos pos, BlockState state) { + super(type, pos, state); + activeFuel = FuelType.NONE; + + + tankInventory = createInventory(); + remainingBurnTime = 0; + fluidCapability = LazyOptional.of(() -> tankInventory); + + refreshCapability(); + } + + + + @Override + public void tick() { + super.tick(); + + if (level.isClientSide&&!isVirtual()) { + spawnParticles(getHeatLevelFromBlock(), 1); + return; + } + + if(tankInventory.getFluid().getAmount()==1000&&remainingBurnTime<=3) { + tankInventory.setFluid(FluidStack.EMPTY); + remainingBurnTime = 4000; + activeFuel = FuelType.NORMAL; + spawnParticleBurst(false); + playSound(); + } + + if (remainingBurnTime > 0) + remainingBurnTime--; + + if (activeFuel == FuelType.NORMAL) + updateBlockState(); + if (remainingBurnTime > 0) + return; + + if (activeFuel == FuelType.SPECIAL) { + activeFuel = FuelType.NORMAL; + remainingBurnTime = MAX_HEAT_CAPACITY / 2; + } else + activeFuel = FuelType.NONE; + + updateBlockState(); + } + + + @Override + public void addBehaviours(List behaviours) {} + + @Override + public void write(CompoundTag compound, boolean clientPacket) { + + compound.putInt("fuelLevel", activeFuel.ordinal()); + compound.putInt("burnTimeRemaining", remainingBurnTime); + + + super.write(compound, clientPacket); + } + + @Override + protected void read(CompoundTag compound, boolean clientPacket) { + activeFuel = FuelType.values()[compound.getInt("fuelLevel")]; + remainingBurnTime = compound.getInt("burnTimeRemaining"); + + + super.read(compound, clientPacket); + } + private void refreshCapability() { + LazyOptional oldCap = fluidCapability; + fluidCapability = LazyOptional.of(() -> handlerForCapability()); + oldCap.invalidate(); + } + @Nonnull + @Override + public LazyOptional getCapability(@Nonnull Capability cap, @Nullable Direction side) { + if (!fluidCapability.isPresent()) + refreshCapability(); + if (cap == ForgeCapabilities.FLUID_HANDLER) + return fluidCapability.cast(); + return super.getCapability(cap, side); + } + private IFluidHandler handlerForCapability() { + + return tankInventory; + } + public HeatLevel getHeatLevelFromBlock() { + return FireboxBlock.getHeatLevelOf(getBlockState()); + } + + public void updateBlockState() { + setBlockHeat(getHeatLevel()); + } + + protected void setBlockHeat(HeatLevel heat) { + HeatLevel inBlockState = getHeatLevelFromBlock(); + if (inBlockState == heat) + return; + level.setBlockAndUpdate(worldPosition, getBlockState().setValue(FireboxBlock.HEAT_LEVEL, heat)); + notifyUpdate(); + } + protected SmartFluidTank createInventory() { + return new SmartFluidTank(1000, this::onFluidStackChanged) { + @Override + public boolean isFluidValid(FluidStack stack) { + return stack.getFluid().is(TFMGTags.TFMGFluidTags.DIESEL.tag) + ||stack.getFluid().is(TFMGTags.TFMGFluidTags.LPG.tag) + ||stack.getFluid().is(TFMGTags.TFMGFluidTags.KEROSENE.tag) + ; + } + }; + } + protected void onFluidStackChanged(FluidStack newFluidStack) { + + + + + sendData(); + } + + public boolean isValidBlockAbove() { + if (isVirtual()) + return false; + BlockState blockState = level.getBlockState(worldPosition.above()); + return AllBlocks.BASIN.has(blockState) || blockState.getBlock() instanceof FluidTankBlock; + } + + protected void playSound() { + level.playSound(null, worldPosition, SoundEvents.BLAZE_SHOOT, SoundSource.BLOCKS, + .125f + level.random.nextFloat() * .125f, .75f - level.random.nextFloat() * .25f); + } + + protected HeatLevel getHeatLevel() { + HeatLevel level = HeatLevel.SMOULDERING; + switch (activeFuel) { + case SPECIAL: + level = HeatLevel.SEETHING; + break; + case NORMAL: + boolean lowPercent = (double) remainingBurnTime / MAX_HEAT_CAPACITY < 0.0125; + level = lowPercent ? HeatLevel.FADING : HeatLevel.KINDLED; + break; + default: + case NONE: + break; + } + return level; + } + + protected void spawnParticles(HeatLevel heatLevel, double burstMult) { + if (level == null) + return; + if (heatLevel == HeatLevel.NONE) + return; + + RandomSource r = level.getRandom(); + + Vec3 c = VecHelper.getCenterOf(worldPosition); + Vec3 v = c.add(VecHelper.offsetRandomly(Vec3.ZERO, r, .125f) + .multiply(1, 0, 1)); + + if (r.nextInt(4) != 0) + return; + + boolean empty = level.getBlockState(worldPosition.above()) + .getCollisionShape(level, worldPosition.above()) + .isEmpty(); + + //if (empty || r.nextInt(8) == 0) + // level.addParticle(ParticleTypes.LARGE_SMOKE, v.x, v.y, v.z, 0, 0, 0); + + double yMotion = empty ? .0625f : r.nextDouble() * .0125f; + Vec3 v2 = c.add(VecHelper.offsetRandomly(Vec3.ZERO, r, .5f) + .multiply(1, .25f, 1) + .normalize() + .scale((empty ? .25f : .5) + r.nextDouble() * .125f)) + .add(0, .5, 0); + + if (heatLevel.isAtLeast(HeatLevel.SEETHING)) { + level.addParticle(ParticleTypes.SOUL_FIRE_FLAME, v2.x, v2.y, v2.z, 0, yMotion, 0); + } else if (heatLevel.isAtLeast(HeatLevel.FADING)) { + level.addParticle(ParticleTypes.FLAME, v2.x, v2.y, v2.z, 0, yMotion, 0); + } + return; + } + + public void spawnParticleBurst(boolean soulFlame) { + Vec3 c = VecHelper.getCenterOf(worldPosition); + RandomSource r = level.random; + for (int i = 0; i < 20; i++) { + Vec3 offset = VecHelper.offsetRandomly(Vec3.ZERO, r, .5f) + .multiply(1, .25f, 1) + .normalize(); + Vec3 v = c.add(offset.scale(.5 + r.nextDouble() * .125f)) + .add(0, .125, 0); + Vec3 m = offset.scale(1 / 32f); + + level.addParticle(soulFlame ? ParticleTypes.SOUL_FIRE_FLAME : ParticleTypes.FLAME, v.x, v.y, v.z, m.x, m.y, + m.z); + } + } + + public enum FuelType { + NONE, NORMAL, SPECIAL + } + +} diff --git a/src/main/java/com/drmangotea/createindustry/blocks/machines/firebox/FireboxGenerator.java b/src/main/java/com/drmangotea/createindustry/blocks/machines/firebox/FireboxGenerator.java new file mode 100644 index 00000000..3351836d --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/machines/firebox/FireboxGenerator.java @@ -0,0 +1,50 @@ +package com.drmangotea.createindustry.blocks.machines.firebox; + +import com.simibubi.create.content.processing.burner.BlazeBurnerBlock; +import com.simibubi.create.foundation.data.AssetLookup; +import com.simibubi.create.foundation.data.SpecialBlockStateGen; +import com.tterrag.registrate.providers.DataGenContext; +import com.tterrag.registrate.providers.RegistrateBlockstateProvider; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.HorizontalDirectionalBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraftforge.client.model.generators.ModelFile; + +public class FireboxGenerator extends SpecialBlockStateGen { + public FireboxGenerator() { + } + + @Override + protected int getXRotation(BlockState state) { + return 0; + } + + + protected int getYRotation(BlockState state) { + short value; + switch ((Direction)state.getValue(HorizontalDirectionalBlock.FACING)) { + case NORTH: + value = 0; + break; + case SOUTH: + value = 180; + break; + case WEST: + value = 270; + break; + case EAST: + value = 90; + break; + + default: + throw new IncompatibleClassChangeError(); + } + + return value; + } + + public ModelFile getModel(DataGenContext ctx, RegistrateBlockstateProvider prov, BlockState state) { + return (Boolean)(state.getValue(FireboxBlock.HEAT_LEVEL)!= BlazeBurnerBlock.HeatLevel.SMOULDERING) ? AssetLookup.partialBaseModel(ctx, prov, new String[]{"lit"}) : AssetLookup.partialBaseModel(ctx, prov, new String[0]); + } +} diff --git a/src/main/java/com/drmangotea/createindustry/blocks/machines/oil_processing/distillation/IndustrialPipeBlock.java b/src/main/java/com/drmangotea/createindustry/blocks/machines/oil_processing/distillation/IndustrialPipeBlock.java new file mode 100644 index 00000000..2156d7ee --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/machines/oil_processing/distillation/IndustrialPipeBlock.java @@ -0,0 +1,86 @@ +package com.drmangotea.createindustry.blocks.machines.oil_processing.distillation; + +import com.drmangotea.createindustry.blocks.machines.oil_processing.distillation.output.DistillationOutputBlock; +import com.drmangotea.createindustry.registry.TFMGBlocks; +import com.drmangotea.createindustry.registry.TFMGShapes; +import com.simibubi.create.foundation.placement.IPlacementHelper; +import com.simibubi.create.foundation.placement.PlacementHelpers; +import com.simibubi.create.foundation.placement.PlacementOffset; +import net.minecraft.MethodsReturnNonnullByDefault; +import net.minecraft.core.BlockPos; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.BlockItem; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.BlockGetter; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.phys.BlockHitResult; +import net.minecraft.world.phys.shapes.CollisionContext; +import net.minecraft.world.phys.shapes.VoxelShape; + +import java.util.function.Predicate; + +public class IndustrialPipeBlock extends Block { + + public static final int placementHelperId = PlacementHelpers.register(new PlacementHelper()); + public IndustrialPipeBlock(Properties pProperties) { + super(pProperties); + } + + + @Override + public VoxelShape getShape(BlockState pState, BlockGetter pLevel, BlockPos pPos, CollisionContext pContext) { + return TFMGShapes.INDUSTRIAL_PIPE; + } + @Override + public InteractionResult use(BlockState pState, Level level, BlockPos pos, Player pPlayer, InteractionHand pHand, BlockHitResult pHit) { + ItemStack itemInHand = pPlayer.getItemInHand(pHand); + + + + if (pPlayer == null) + return InteractionResult.PASS; + + + IPlacementHelper helper = PlacementHelpers.get(placementHelperId); + if (helper.matchesItem(itemInHand)) + return helper.getOffset(pPlayer, level, pState, pos, pHit) + .placeInWorld(level, (BlockItem) itemInHand.getItem(), pPlayer, pHand, pHit); + + return super.use(pState,level,pos,pPlayer,pHand,pHit); + + } + @MethodsReturnNonnullByDefault + private static class PlacementHelper extends VerticalPlacementHelper { + + + private PlacementHelper() { + super(state -> state.getBlock() instanceof IndustrialPipeBlock); + } + + @Override + public Predicate getItemPredicate() { + return i -> i.getItem() instanceof BlockItem + && ((BlockItem) i.getItem()).getBlock() instanceof IndustrialPipeBlock; + } + + @Override + public Predicate getStatePredicate() { + return s ->s.getBlock() instanceof IndustrialPipeBlock; + } + + @Override + public PlacementOffset getOffset(Player player, Level world, BlockState state, BlockPos pos, + BlockHitResult ray) { + PlacementOffset offset = super.getOffset(player, world, state, pos, ray); + if (offset.isSuccessful()) + offset.withTransform(offset.getTransform() + .andThen(s -> TFMGBlocks.INDUSTRIAL_PIPE.getDefaultState())); + return offset; + } + + } +} diff --git a/src/main/java/com/drmangotea/createindustry/blocks/machines/oil_processing/distillation/VerticalPlacementHelper.java b/src/main/java/com/drmangotea/createindustry/blocks/machines/oil_processing/distillation/VerticalPlacementHelper.java new file mode 100644 index 00000000..bf75c157 --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/machines/oil_processing/distillation/VerticalPlacementHelper.java @@ -0,0 +1,76 @@ +package com.drmangotea.createindustry.blocks.machines.oil_processing.distillation; + +import com.drmangotea.createindustry.registry.TFMGBlocks; +import com.simibubi.create.foundation.placement.IPlacementHelper; +import com.simibubi.create.foundation.placement.PlacementOffset; +import net.minecraft.MethodsReturnNonnullByDefault; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.phys.BlockHitResult; + +import java.util.function.Predicate; + +@MethodsReturnNonnullByDefault +public abstract class VerticalPlacementHelper implements IPlacementHelper { + + protected final Predicate statePredicate; + + + + public VerticalPlacementHelper(Predicate statePredicate) { + this.statePredicate = statePredicate; + + + } + + public boolean matchesAxis(BlockState state, Direction.Axis axis) { + + return axis == Direction.Axis.Y; + } + + public int attachedPoles(Level world, BlockPos pos, Direction direction) { + BlockPos checkPos = pos.relative(direction); + BlockState state = world.getBlockState(checkPos); + int count = 0; + while (matchesAxis(state, direction.getAxis())) { + count++; + checkPos = checkPos.relative(direction); + state = world.getBlockState(checkPos); + } + return count; + } + + @Override + public Predicate getStatePredicate() { + return this.statePredicate; + } + + @Override + public PlacementOffset getOffset(Player player, Level world, BlockState state, BlockPos pos, BlockHitResult ray) { + + + + + BlockPos posToPlace = pos; + for(int i = 0;i<15;i++){ + posToPlace = posToPlace.below(); + + if(world.getBlockState(posToPlace).is(TFMGBlocks.INDUSTRIAL_PIPE.get())) + continue; + + if(!world.getBlockState(posToPlace).isAir()) { + return PlacementOffset.fail(); + + }else break; + + } + if(posToPlace!=pos) + return PlacementOffset.success(posToPlace, bState -> bState); + + + return PlacementOffset.fail(); + } +} \ No newline at end of file diff --git a/src/main/java/com/drmangotea/createindustry/blocks/machines/oil_processing/distillation/controller/DistillationControllerBlock.java b/src/main/java/com/drmangotea/createindustry/blocks/machines/oil_processing/distillation/controller/DistillationControllerBlock.java new file mode 100644 index 00000000..5bc33bdb --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/machines/oil_processing/distillation/controller/DistillationControllerBlock.java @@ -0,0 +1,65 @@ +package com.drmangotea.createindustry.blocks.machines.oil_processing.distillation.controller; + +import com.drmangotea.createindustry.blocks.TFMGHorizontalDirectionalBlock; +import com.drmangotea.createindustry.blocks.tanks.SteelTankBlock; +import com.drmangotea.createindustry.registry.TFMGBlockEntities; +import com.simibubi.create.content.equipment.wrench.IWrenchable; +import com.simibubi.create.foundation.block.IBE; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.item.context.UseOnContext; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.LevelReader; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.HorizontalDirectionalBlock; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.StateDefinition; + +public class DistillationControllerBlock extends TFMGHorizontalDirectionalBlock implements IBE, IWrenchable { + public DistillationControllerBlock(Properties pProperties) { + super(pProperties); + } + + + + @Override + public void onPlace(BlockState pState, Level pLevel, BlockPos pPos, BlockState pOldState, boolean pIsMoving) { + SteelTankBlock.updateTowerState(pLevel, pPos.relative(getFacing(pState).getOpposite()),true,false); + + } + + @Override + public void onRemove(BlockState state, Level world, BlockPos pos, BlockState newState, boolean pIsMoving) { + if (state.hasBlockEntity() && (!state.is(newState.getBlock()) || !newState.hasBlockEntity())) + world.removeBlockEntity(pos); + SteelTankBlock.updateTowerState(world, pos.relative(getFacing(state).getOpposite()),false,false); + + } + + @Override + public boolean canSurvive(BlockState pState, LevelReader pLevel, BlockPos pPos) { + if(!SteelTankBlock.updateTowerState((Level) pLevel, pPos.relative(getFacing(pState).getOpposite()),true,true)) + return false; + + + return super.canSurvive(pState, pLevel, pPos); + } + + + + public static Direction getFacing(BlockState state){ + return state.getValue(FACING); + } + + @Override + public Class getBlockEntityClass() { + return DistillationControllerBlockEntity.class; + } + + @Override + public BlockEntityType getBlockEntityType() { + return TFMGBlockEntities.STEEL_DISTILLATION_CONTROLLER.get(); + } +} diff --git a/src/main/java/com/drmangotea/createindustry/blocks/machines/oil_processing/distillation/controller/DistillationControllerBlockEntity.java b/src/main/java/com/drmangotea/createindustry/blocks/machines/oil_processing/distillation/controller/DistillationControllerBlockEntity.java new file mode 100644 index 00000000..fefe6fb5 --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/machines/oil_processing/distillation/controller/DistillationControllerBlockEntity.java @@ -0,0 +1,285 @@ +package com.drmangotea.createindustry.blocks.machines.oil_processing.distillation.controller; + +import com.drmangotea.createindustry.blocks.machines.oil_processing.distillation.output.DistillationOutputBlockEntity; +import com.drmangotea.createindustry.blocks.tanks.SteelTankBlock; +import com.drmangotea.createindustry.blocks.tanks.SteelTankBlockEntity; +import com.drmangotea.createindustry.recipes.distillation.DistillationRecipe; +import com.drmangotea.createindustry.registry.TFMGBlocks; +import com.simibubi.create.Create; +import com.simibubi.create.content.equipment.goggles.IHaveGoggleInformation; +import com.simibubi.create.foundation.blockEntity.SmartBlockEntity; +import com.simibubi.create.foundation.blockEntity.behaviour.BlockEntityBehaviour; +import com.simibubi.create.foundation.blockEntity.behaviour.fluid.SmartFluidTankBehaviour; +import com.simibubi.create.foundation.fluid.CombinedTankWrapper; +import com.simibubi.create.foundation.fluid.SmartFluidTank; +import com.simibubi.create.foundation.item.SmartInventory; +import com.simibubi.create.foundation.recipe.RecipeFinder; +import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.foundation.utility.animation.LerpedFloat; +import net.minecraft.ChatFormatting; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.nbt.NbtUtils; +import net.minecraft.network.chat.Component; +import net.minecraft.world.Container; +import net.minecraft.world.item.crafting.Recipe; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraftforge.common.capabilities.Capability; +import net.minecraftforge.common.capabilities.ForgeCapabilities; +import net.minecraftforge.common.util.LazyOptional; +import net.minecraftforge.fluids.FluidStack; +import net.minecraftforge.fluids.capability.IFluidHandler; +import net.minecraftforge.fluids.capability.templates.FluidTank; +import org.checkerframework.checker.units.qual.C; + + +import javax.annotation.Nonnull; +import java.util.ArrayList; +import java.util.List; + +public class DistillationControllerBlockEntity extends SmartBlockEntity implements IHaveGoggleInformation { + + private static final Object DistillationRecipesKey = new Object(); + + public DistillationRecipe recipe; + + + protected LazyOptional fluidCapability; + + public final FluidTank tank= new SmartFluidTank(8000,this::onFluidStackChanged); + + + + + + + public DistillationControllerBlockEntity(BlockEntityType type, BlockPos pos, BlockState state) { + super(type, pos, state); + fluidCapability = LazyOptional.of(()->tank); + } + + @Override + public void addBehaviours(List behaviours) {} + + + @Override + public void tick() { + super.tick(); + + + ArrayList outputs = getOutputs(); + + BlockEntity beBehind = level.getBlockEntity(getBlockPos().relative(DistillationControllerBlock.getFacing(getBlockState()).getOpposite())); + if(!(beBehind instanceof SteelTankBlockEntity be)) + return; + + + if(outputs.isEmpty()||be.activeHeat==0) + return; + /// + + + + if (recipe == null || !recipe.matches(tank,outputs.toArray().length)) { + DistillationRecipe recipe = getMatchingRecipes(); + if (recipe!=null) { + this.recipe = recipe; + sendData(); + } + } + + if(recipe==null) + return; + + /// + float speedModifier = (float) be.activeHeat /2; + if(recipe.getInputFluid().getRequiredAmount()*speedModifier>tank.getFluidAmount()) + return; + + if(recipe.getFluidResults().toArray().length!=getOutputs().toArray().length) + return; + if(be.isController()) { + if (be.getHeight() < outputs.toArray().length * 2||(be.width<2&&outputs.toArray().length>3)) + return; + }else if (be.getControllerBE().getHeight() < outputs.toArray().length * 2||be.getControllerBE().width<2) + return; + + + + for(DistillationOutputBlockEntity be1 : outputs){ + if(be1.tank.getSpace()==0) + return; + } + + + + int numero = 0; + + for(DistillationOutputBlockEntity output : outputs){ + + FluidStack fluidStack = recipe.getFluidResults().get(numero); + + if(fluidStack.isEmpty()) + break; + + if(output.tank.fill(new FluidStack(fluidStack, (int) (fluidStack.getAmount()*speedModifier)), IFluidHandler.FluidAction.SIMULATE)>output.tank.getCapacity()) + break; + + + output.tank.fill(new FluidStack(fluidStack, (int) (fluidStack.getAmount()*speedModifier)), IFluidHandler.FluidAction.EXECUTE); + int consumption = (recipe.getInputFluid().getRequiredAmount()/6); + + + tank.drain((int) (consumption*speedModifier), IFluidHandler.FluidAction.EXECUTE); + + numero++; + + } + + + + + + + + + } + protected void onFluidStackChanged(FluidStack newFluidStack) { + if (!hasLevel()) + return; + + + + if (!level.isClientSide) { + setChanged(); + sendData(); + } + + + } + @Override + public boolean addToGoggleTooltip(List tooltip, boolean isPlayerSneaking) { + + BlockEntity beBehind = level.getBlockEntity(getBlockPos().relative(DistillationControllerBlock.getFacing(getBlockState()).getOpposite())); + if(beBehind instanceof SteelTankBlockEntity be) { + + + Lang.translate("goggles.distillation_tower.status") + .style(ChatFormatting.GRAY) + .forGoggles(tooltip, 1); + + if(be.activeHeat>0) { + Lang.translate("goggles.distillation_tower.level", be.activeHeat) + .style(ChatFormatting.GOLD) + .forGoggles(tooltip, 1); + }else + Lang.translate("goggles.distillation_tower.level", be.activeHeat) + .style(ChatFormatting.RED) + .forGoggles(tooltip, 1); + if(getOutputs().toArray().length>0) { + Lang.translate("goggles.distillation_tower.found_outputs", getOutputs().toArray().length) + .style(ChatFormatting.GOLD) + .forGoggles(tooltip, 1); + }else + Lang.translate("goggles.distillation_tower.found_outputs", getOutputs().toArray().length) + .style(ChatFormatting.RED) + .forGoggles(tooltip, 1); + + + } else + Lang.translate("goggles.distillation_tower.tank_not_found") + .style(ChatFormatting.RED) + .forGoggles(tooltip, 1); + containedFluidTooltip(tooltip, isPlayerSneaking, + getCapability(ForgeCapabilities.FLUID_HANDLER)); + + return true; + } + + protected DistillationRecipe getMatchingRecipes() { + + + List> list = RecipeFinder.get(getRecipeCacheKey(), level, this::matchStaticFilters); + + + for(int i = 0; i < list.toArray().length;i++){ + + DistillationRecipe recipe = (DistillationRecipe) list.get(i); + + // Create.LOGGER.debug("AAAA: "+recipe.getFluidResults().toArray().length); + // Create.LOGGER.debug("BBBB: "+getOutputs().toArray().length); + if(recipe.getFluidResults().toArray().length==getOutputs().toArray().length) + for(int y = 0; y < recipe.getFluidIngredients().get(0).getMatchingFluidStacks().toArray().length;y++) + if(tank.getFluid().getFluid()==recipe.getFluidIngredients().get(0).getMatchingFluidStacks().get(y).getFluid()) + if(tank.getFluidAmount()>=recipe.getFluidIngredients().get(0).getRequiredAmount()) + return recipe; + } + + return null; + } + protected boolean matchStaticFilters(Recipe r) { + + return r instanceof DistillationRecipe; + + + + } + + protected Object getRecipeCacheKey() { + return DistillationRecipesKey; + } + + + + @Nonnull + @Override + public LazyOptional getCapability(@Nonnull Capability cap, Direction side) { + if (cap == ForgeCapabilities.FLUID_HANDLER) + return fluidCapability.cast(); + return super.getCapability(cap, side); + } + + public ArrayList getOutputs(){ + ArrayList outputs = new ArrayList<>(); + + BlockPos checkedPos = this.getBlockPos().above(); + for(int i = 0;i<11;i++){ + + if(i==0||i==2||i==4||i==6||i==8||i==10){ + if(level.getBlockEntity(checkedPos) instanceof DistillationOutputBlockEntity be){ + outputs.add(be); + } else break; + + }else { + if(!(level.getBlockState(checkedPos).is(TFMGBlocks.INDUSTRIAL_PIPE.get()))) + break; + } + + + checkedPos = checkedPos.above(); + } + + + return outputs; + } + + @Override + protected void read(CompoundTag compound, boolean clientPacket) { + super.read(compound, clientPacket); + + tank.readFromNBT(compound.getCompound("TankContent")); + + } + + + @Override + public void write(CompoundTag compound, boolean clientPacket) { + + + compound.put("TankContent", tank.writeToNBT(new CompoundTag())); + + } +} diff --git a/src/main/java/com/drmangotea/createindustry/blocks/machines/oil_processing/distillation/output/DistillationOutputBlock.java b/src/main/java/com/drmangotea/createindustry/blocks/machines/oil_processing/distillation/output/DistillationOutputBlock.java new file mode 100644 index 00000000..87c52e94 --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/machines/oil_processing/distillation/output/DistillationOutputBlock.java @@ -0,0 +1,23 @@ +package com.drmangotea.createindustry.blocks.machines.oil_processing.distillation.output; + +import com.drmangotea.createindustry.registry.TFMGBlockEntities; +import com.simibubi.create.content.equipment.wrench.IWrenchable; +import com.simibubi.create.foundation.block.IBE; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.entity.BlockEntityType; + +public class DistillationOutputBlock extends Block implements IBE, IWrenchable { + public DistillationOutputBlock(Properties pProperties) { + super(pProperties); + } + + @Override + public Class getBlockEntityClass() { + return DistillationOutputBlockEntity.class; + } + + @Override + public BlockEntityType getBlockEntityType() { + return TFMGBlockEntities.STEEL_DISTILLATION_OUTPUT.get(); + } +} diff --git a/src/main/java/com/drmangotea/createindustry/blocks/machines/oil_processing/distillation/output/DistillationOutputBlockEntity.java b/src/main/java/com/drmangotea/createindustry/blocks/machines/oil_processing/distillation/output/DistillationOutputBlockEntity.java new file mode 100644 index 00000000..65802d17 --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/machines/oil_processing/distillation/output/DistillationOutputBlockEntity.java @@ -0,0 +1,89 @@ +package com.drmangotea.createindustry.blocks.machines.oil_processing.distillation.output; + +import com.drmangotea.createindustry.blocks.machines.oil_processing.distillation.controller.DistillationControllerBlock; +import com.drmangotea.createindustry.blocks.tanks.SteelTankBlockEntity; +import com.simibubi.create.content.equipment.goggles.IHaveGoggleInformation; +import com.simibubi.create.foundation.blockEntity.SmartBlockEntity; +import com.simibubi.create.foundation.blockEntity.behaviour.BlockEntityBehaviour; +import com.simibubi.create.foundation.fluid.CombinedTankWrapper; +import com.simibubi.create.foundation.fluid.SmartFluidTank; +import com.simibubi.create.foundation.utility.Lang; +import net.minecraft.ChatFormatting; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.network.chat.Component; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraftforge.common.capabilities.Capability; +import net.minecraftforge.common.capabilities.ForgeCapabilities; +import net.minecraftforge.common.util.LazyOptional; +import net.minecraftforge.fluids.FluidStack; +import net.minecraftforge.fluids.capability.IFluidHandler; +import net.minecraftforge.fluids.capability.templates.FluidTank; + +import javax.annotation.Nonnull; +import java.util.List; + +public class DistillationOutputBlockEntity extends SmartBlockEntity implements IHaveGoggleInformation { + + + protected LazyOptional fluidCapability; + + public final FluidTank tank = new SmartFluidTank(8000,this::onFluidStackChanged); + public DistillationOutputBlockEntity(BlockEntityType type, BlockPos pos, BlockState state) { + super(type, pos, state); + fluidCapability = LazyOptional.of(()->tank); + } + + @Override + public void addBehaviours(List behaviours) {} + + protected void onFluidStackChanged(FluidStack newFluidStack) { + if (!hasLevel()) + return; + + + + if (!level.isClientSide) { + setChanged(); + sendData(); + } + + + } + + @Nonnull + @Override + public LazyOptional getCapability(@Nonnull Capability cap, Direction side) { + if (cap == ForgeCapabilities.FLUID_HANDLER) + return fluidCapability.cast(); + return super.getCapability(cap, side); + } + @Override + protected void read(CompoundTag compound, boolean clientPacket) { + super.read(compound, clientPacket); + + tank.readFromNBT(compound.getCompound("TankContent")); + + } + + + @Override + public void write(CompoundTag compound, boolean clientPacket) { + + + compound.put("TankContent", tank.writeToNBT(new CompoundTag())); + + } + @Override + public boolean addToGoggleTooltip(List tooltip, boolean isPlayerSneaking) { + + + return containedFluidTooltip(tooltip, isPlayerSneaking, + getCapability(ForgeCapabilities.FLUID_HANDLER)); + + + } +} diff --git a/src/main/java/com/drmangotea/createindustry/blocks/machines/simple/welding_machine/BeltWeldingCallbacks.java b/src/main/java/com/drmangotea/createindustry/blocks/machines/simple/welding_machine/BeltWeldingCallbacks.java new file mode 100644 index 00000000..b6cf96a7 --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/machines/simple/welding_machine/BeltWeldingCallbacks.java @@ -0,0 +1,81 @@ +package com.drmangotea.createindustry.blocks.machines.simple.welding_machine; + +import com.simibubi.create.Create; +import com.simibubi.create.content.kinetics.belt.BeltHelper; +import com.simibubi.create.content.kinetics.belt.behaviour.BeltProcessingBehaviour.ProcessingResult; +import com.simibubi.create.content.kinetics.belt.behaviour.TransportedItemStackHandlerBehaviour; +import com.simibubi.create.content.kinetics.belt.behaviour.TransportedItemStackHandlerBehaviour.TransportedResult; +import com.simibubi.create.content.kinetics.belt.transport.TransportedItemStack; +import com.simibubi.create.content.kinetics.press.PressingBehaviour.Mode; +import net.minecraft.world.item.ItemStack; + +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; + +import static com.simibubi.create.content.kinetics.belt.behaviour.BeltProcessingBehaviour.ProcessingResult.HOLD; +import static com.simibubi.create.content.kinetics.belt.behaviour.BeltProcessingBehaviour.ProcessingResult.PASS; + + +public class BeltWeldingCallbacks { + + static ProcessingResult onItemReceived(TransportedItemStack transported, + TransportedItemStackHandlerBehaviour handler, WeldingBehaviour behaviour) { + + if (behaviour.running) + return HOLD; + if (!behaviour.specifics.tryProcessOnBelt(transported, null, true)) + return PASS; + + behaviour.start(WeldingBehaviour.WeldingMachineMode.BELT); + return HOLD; + } + + static ProcessingResult whenItemHeld(TransportedItemStack transported, TransportedItemStackHandlerBehaviour handler, + WeldingBehaviour behaviour) { + + + if (!behaviour.running) + return PASS; + if (behaviour.runningTicks != WeldingBehaviour.CYCLE / 2) + return HOLD; + + behaviour.particleItems.clear(); + ArrayList results = new ArrayList<>(); + if (!behaviour.specifics.tryProcessOnBelt(transported, results, false)) + return PASS; + + boolean bulk = behaviour.specifics.canProcessInBulk() || transported.stack.getCount() == 1; + + List collect = results.stream() + .map(stack -> { + TransportedItemStack copy = transported.copy(); + boolean centered = BeltHelper.isItemUpright(stack); + copy.stack = stack; + copy.locked = true; + copy.angle = centered ? 180 : Create.RANDOM.nextInt(360); + return copy; + }) + .collect(Collectors.toList()); + + if (bulk) { + if (collect.isEmpty()) + handler.handleProcessingOnItem(transported, TransportedResult.removeItem()); + else + handler.handleProcessingOnItem(transported, TransportedResult.convertTo(collect)); + + } else { + TransportedItemStack left = transported.copy(); + left.stack.shrink(1); + + if (collect.isEmpty()) + handler.handleProcessingOnItem(transported, TransportedResult.convertTo(left)); + else + handler.handleProcessingOnItem(transported, TransportedResult.convertToAndLeaveHeld(collect, left)); + } + + behaviour.blockEntity.sendData(); + return HOLD; + } + +} diff --git a/src/main/java/com/drmangotea/createindustry/blocks/machines/simple/welding_machine/WeldingBehaviour.java b/src/main/java/com/drmangotea/createindustry/blocks/machines/simple/welding_machine/WeldingBehaviour.java new file mode 100644 index 00000000..4544d0a8 --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/machines/simple/welding_machine/WeldingBehaviour.java @@ -0,0 +1,283 @@ +package com.drmangotea.createindustry.blocks.machines.simple.welding_machine; + +import com.simibubi.create.AllBlocks; +import com.simibubi.create.AllSoundEvents; +import com.simibubi.create.content.kinetics.belt.behaviour.BeltProcessingBehaviour; +import com.simibubi.create.content.kinetics.belt.behaviour.TransportedItemStackHandlerBehaviour; +import com.simibubi.create.content.kinetics.belt.transport.TransportedItemStack; +import com.simibubi.create.foundation.blockEntity.SmartBlockEntity; +import com.simibubi.create.foundation.blockEntity.behaviour.BlockEntityBehaviour; +import com.simibubi.create.foundation.utility.NBTHelper; +import com.simibubi.create.foundation.utility.VecHelper; +import net.minecraft.core.BlockPos; +import net.minecraft.core.particles.ItemParticleOption; +import net.minecraft.core.particles.ParticleTypes; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.nbt.Tag; +import net.minecraft.util.Mth; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.item.ItemEntity; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.SoundType; +import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; + +import java.util.ArrayList; +import java.util.List; + +public class WeldingBehaviour extends BeltProcessingBehaviour { + + public static final int CYCLE = 240; + public static final int ENTITY_SCAN = 10; + + public List particleItems = new ArrayList<>(); + + public WeldingBehaviourSpecifics specifics; + public int prevRunningTicks; + public int runningTicks; + public boolean running; + public boolean finished; + public WeldingMachineMode mode; + + int entityScanCooldown; + + public interface WeldingBehaviourSpecifics { + + public boolean tryProcessOnBelt(TransportedItemStack input, List outputList, boolean simulate); + + public boolean tryProcessInWorld(ItemEntity itemEntity, boolean simulate); + + public boolean canProcessInBulk(); + + + public int getParticleAmount(); + + } + + public WeldingBehaviour(T be) { + super(be); + this.specifics = be; + mode = WeldingMachineMode.WORLD; + entityScanCooldown = ENTITY_SCAN; + whenItemEnters((s, i) -> BeltWeldingCallbacks.onItemReceived(s, i, this)); + whileItemHeld((s, i) -> BeltWeldingCallbacks.whenItemHeld(s, i, this)); + } + + @Override + public void read(CompoundTag compound, boolean clientPacket) { + running = compound.getBoolean("Running"); + mode = WeldingMachineMode.values()[compound.getInt("Mode")]; + finished = compound.getBoolean("Finished"); + prevRunningTicks = runningTicks = compound.getInt("Ticks"); + super.read(compound, clientPacket); + + if (clientPacket) { + NBTHelper.iterateCompoundList(compound.getList("ParticleItems", Tag.TAG_COMPOUND), + c -> particleItems.add(ItemStack.of(c))); + spawnParticles(); + } + } + + @Override + public void write(CompoundTag compound, boolean clientPacket) { + compound.putBoolean("Running", running); + compound.putInt("Mode", mode.ordinal()); + compound.putBoolean("Finished", finished); + compound.putInt("Ticks", runningTicks); + super.write(compound, clientPacket); + + if (clientPacket) { + compound.put("ParticleItems", NBTHelper.writeCompoundList(particleItems, ItemStack::serializeNBT)); + particleItems.clear(); + } + } + + public float getRenderedHeadOffset(float partialTicks) { + if (!running) + return 0; + int runningTicks = Math.abs(this.runningTicks); + float ticks = Mth.lerp(partialTicks, prevRunningTicks, runningTicks); + if (runningTicks < (CYCLE * 2) / 3) + return (float) Mth.clamp(Math.pow(ticks / CYCLE * 2, 3), 0, 1); + return Mth.clamp((CYCLE - ticks) / CYCLE * 3, 0, 1); + } + + public void start(WeldingMachineMode mode) { + this.mode = mode; + running = true; + prevRunningTicks = 0; + runningTicks = 0; + particleItems.clear(); + blockEntity.sendData(); + } + + public boolean inWorld() { + return mode == WeldingMachineMode.WORLD; + } + + + @Override + public void tick() { + super.tick(); + + Level level = getWorld(); + BlockPos worldPosition = getPos(); + + if (!running || level == null) { + if (level != null && !level.isClientSide) { + + + if (entityScanCooldown > 0) + entityScanCooldown--; + if (entityScanCooldown <= 0) { + entityScanCooldown = ENTITY_SCAN; + + if (BlockEntityBehaviour.get(level, worldPosition.below(2), + TransportedItemStackHandlerBehaviour.TYPE) != null) + return; + if (AllBlocks.BASIN.has(level.getBlockState(worldPosition.below(2)))) + return; + + for (ItemEntity itemEntity : level.getEntitiesOfClass(ItemEntity.class, + new AABB(worldPosition.below()).deflate(.125f))) { + if (!itemEntity.isAlive() || !itemEntity.isOnGround()) + continue; + if (!specifics.tryProcessInWorld(itemEntity, true)) + continue; + start(WeldingMachineMode.WORLD); + return; + } + } + + } + return; + } + + if (level.isClientSide && runningTicks == -CYCLE / 2) { + prevRunningTicks = CYCLE / 2; + return; + } + + if (runningTicks == CYCLE / 2) { + if (inWorld()) + applyInWorld(); + + if (level.getBlockState(worldPosition.below(2)) + .getSoundType() == SoundType.WOOL) + AllSoundEvents.MECHANICAL_PRESS_ACTIVATION_ON_BELT.playOnServer(level, worldPosition); + else + AllSoundEvents.MECHANICAL_PRESS_ACTIVATION.playOnServer(level, worldPosition, .5f, + .75f); + + if (!level.isClientSide) + blockEntity.sendData(); + } + + if (!level.isClientSide && runningTicks > CYCLE) { + finished = true; + running = false; + particleItems.clear(); + blockEntity.sendData(); + return; + } + + prevRunningTicks = runningTicks; + runningTicks += getRunningTickSpeed(); + if (prevRunningTicks < CYCLE / 2 && runningTicks >= CYCLE / 2) { + runningTicks = CYCLE / 2; + // Pause the ticks until a packet is received + if (level.isClientSide && !blockEntity.isVirtual()) + runningTicks = -(CYCLE / 2); + } + } + + + protected void applyInWorld() { + Level level = getWorld(); + BlockPos worldPosition = getPos(); + AABB bb = new AABB(worldPosition.below(1)); + boolean bulk = specifics.canProcessInBulk(); + + particleItems.clear(); + + if (level.isClientSide) + return; + + for (Entity entity : level.getEntities(null, bb)) { + if (!(entity instanceof ItemEntity itemEntity)) + continue; + if (!entity.isAlive() || !entity.isOnGround()) + continue; + + entityScanCooldown = 0; + if (specifics.tryProcessInWorld(itemEntity, false)) + blockEntity.sendData(); + if (!bulk) + break; + } + } + + public int getRunningTickSpeed() { + float speed = 50; + if (speed == 0) + return 0; + return (int) Mth.lerp(Mth.clamp(Math.abs(speed) / 512f, 0, 1), 1, 60); + } + + protected void spawnParticles() { + if (particleItems.isEmpty()) + return; + + BlockPos worldPosition = getPos(); + +if (mode == WeldingMachineMode.BELT) + particleItems.forEach(stack -> makePressingParticleEffect(VecHelper.getCenterOf(worldPosition.below(2)) + .add(0, 8 / 16f, 0), stack)); + if (mode == WeldingMachineMode.WORLD) + particleItems.forEach(stack -> makePressingParticleEffect(VecHelper.getCenterOf(worldPosition.below(1)) + .add(0, -1 / 4f, 0), stack)); + + particleItems.clear(); + } + + public void makePressingParticleEffect(Vec3 pos, ItemStack stack) { + makePressingParticleEffect(pos, stack, specifics.getParticleAmount()); + } + + public void makePressingParticleEffect(Vec3 pos, ItemStack stack, int amount) { + Level level = getWorld(); + if (level == null || !level.isClientSide) + return; + for (int i = 0; i < amount; i++) { + Vec3 motion = VecHelper.offsetRandomly(Vec3.ZERO, level.random, .125f) + .multiply(1, 0, 1); + motion = motion.add(0, amount != 1 ? 0.125f : 1 / 16f, 0); + level.addParticle(new ItemParticleOption(ParticleTypes.ITEM, stack), pos.x, pos.y - .25f, pos.z, motion.x, + motion.y, motion.z); + } + } + + public void makeCompactingParticleEffect(Vec3 pos, ItemStack stack) { + Level level = getWorld(); + if (level == null || !level.isClientSide) + return; + for (int i = 0; i < 20; i++) { + Vec3 motion = VecHelper.offsetRandomly(Vec3.ZERO, level.random, .175f) + .multiply(1, 0, 1); + level.addParticle(new ItemParticleOption(ParticleTypes.ITEM, stack), pos.x, pos.y, pos.z, motion.x, + motion.y + .25f, motion.z); + } + } + + public enum WeldingMachineMode { + WORLD(1), BELT(19f / 16f); + + public float headOffset; + + WeldingMachineMode(float headOffset) { + this.headOffset = headOffset; + } + } + +} diff --git a/src/main/java/com/drmangotea/createindustry/blocks/machines/simple/welding_machine/WeldingMachineBlock.java b/src/main/java/com/drmangotea/createindustry/blocks/machines/simple/welding_machine/WeldingMachineBlock.java new file mode 100644 index 00000000..02181e72 --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/machines/simple/welding_machine/WeldingMachineBlock.java @@ -0,0 +1,54 @@ +package com.drmangotea.createindustry.blocks.machines.simple.welding_machine; + +import com.drmangotea.createindustry.blocks.TFMGHorizontalDirectionalBlock; +import com.drmangotea.createindustry.registry.TFMGBlockEntities; +import com.simibubi.create.AllBlockEntityTypes; +import com.simibubi.create.AllBlocks; +import com.simibubi.create.AllShapes; +import com.simibubi.create.content.kinetics.base.HorizontalKineticBlock; +import com.simibubi.create.foundation.block.IBE; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.core.Direction.Axis; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.context.BlockPlaceContext; +import net.minecraft.world.level.BlockGetter; +import net.minecraft.world.level.LevelReader; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.pathfinder.PathComputationType; +import net.minecraft.world.phys.shapes.CollisionContext; +import net.minecraft.world.phys.shapes.EntityCollisionContext; +import net.minecraft.world.phys.shapes.VoxelShape; + +public class WeldingMachineBlock extends TFMGHorizontalDirectionalBlock implements IBE { + + public WeldingMachineBlock(Properties properties) { + super(properties); + } + + @Override + public VoxelShape getShape(BlockState state, BlockGetter worldIn, BlockPos pos, CollisionContext context) { + if (context instanceof EntityCollisionContext + && ((EntityCollisionContext) context).getEntity() instanceof Player) + return AllShapes.CASING_14PX.get(Direction.DOWN); + + return AllShapes.MECHANICAL_PROCESSOR_SHAPE; + } + + @Override + public Class getBlockEntityClass() { + return WeldingMachineBlockEntity.class; + } + + @Override + public BlockEntityType getBlockEntityType() { + return TFMGBlockEntities.WELDING_MACHINE.get(); + } + + @Override + public boolean isPathfindable(BlockState state, BlockGetter reader, BlockPos pos, PathComputationType type) { + return false; + } + +} diff --git a/src/main/java/com/drmangotea/createindustry/blocks/machines/simple/welding_machine/WeldingMachineBlockEntity.java b/src/main/java/com/drmangotea/createindustry/blocks/machines/simple/welding_machine/WeldingMachineBlockEntity.java new file mode 100644 index 00000000..727e4f0b --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/machines/simple/welding_machine/WeldingMachineBlockEntity.java @@ -0,0 +1,154 @@ +package com.drmangotea.createindustry.blocks.machines.simple.welding_machine; + +import com.drmangotea.createindustry.blocks.electricity.base.ElectricBlockEntity; +import com.drmangotea.createindustry.registry.TFMGRecipeTypes; +import com.simibubi.create.AllTags; +import com.simibubi.create.content.kinetics.belt.transport.TransportedItemStack; +import com.simibubi.create.content.processing.sequenced.SequencedAssemblyRecipe; +import com.simibubi.create.foundation.advancement.AllAdvancements; +import com.simibubi.create.foundation.blockEntity.behaviour.BlockEntityBehaviour; +import com.simibubi.create.foundation.recipe.RecipeApplier; +import com.simibubi.create.foundation.utility.VecHelper; +import com.simibubi.create.infrastructure.config.AllConfigs; +import net.minecraft.core.BlockPos; +import net.minecraft.world.entity.item.ItemEntity; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; +import net.minecraftforge.items.ItemHandlerHelper; +import net.minecraftforge.items.ItemStackHandler; +import net.minecraftforge.items.wrapper.RecipeWrapper; + +import java.util.List; +import java.util.Optional; + +public class WeldingMachineBlockEntity extends ElectricBlockEntity implements WeldingBehaviour.WeldingBehaviourSpecifics { + + private static final Object weldingRecipesKey = new Object(); + + public WeldingBehaviour weldingBehaviour; + private int tracksCreated; + + public WeldingMachineBlockEntity(BlockEntityType type, BlockPos pos, BlockState state) { + super(type, pos, state); + } + + @Override + protected AABB createRenderBoundingBox() { + return new AABB(worldPosition).expandTowards(0, -1.5, 0) + .expandTowards(0, 1, 0); + } + + @Override + public void addBehaviours(List behaviours) { + super.addBehaviours(behaviours); + weldingBehaviour = new WeldingBehaviour(this); + behaviours.add(weldingBehaviour); + + } + + public void onItemPressed(ItemStack result) { + award(AllAdvancements.PRESS); + if (AllTags.AllBlockTags.TRACKS.matches(result)) + tracksCreated += result.getCount(); + if (tracksCreated >= 1000) { + award(AllAdvancements.TRACK_CRAFTING); + tracksCreated = 0; + } + } + + public WeldingBehaviour getWeldingBehaviour() { + return weldingBehaviour; + } + + + + + @Override + public boolean tryProcessInWorld(ItemEntity itemEntity, boolean simulate) { + ItemStack item = itemEntity.getItem(); + Optional recipe = getRecipe(item); + if (!recipe.isPresent()) + return false; + if (simulate) + return true; + + ItemStack itemCreated = ItemStack.EMPTY; + weldingBehaviour.particleItems.add(item); + if (canProcessInBulk() || item.getCount() == 1) { + RecipeApplier.applyRecipeOn(itemEntity, recipe.get()); + itemCreated = itemEntity.getItem() + .copy(); + } else { + for (ItemStack result : RecipeApplier.applyRecipeOn(ItemHandlerHelper.copyStackWithSize(item, 1), + recipe.get())) { + if (itemCreated.isEmpty()) + itemCreated = result.copy(); + ItemEntity created = + new ItemEntity(level, itemEntity.getX(), itemEntity.getY(), itemEntity.getZ(), result); + created.setDefaultPickUpDelay(); + created.setDeltaMovement(VecHelper.offsetRandomly(Vec3.ZERO, level.random, .05f)); + level.addFreshEntity(created); + } + item.shrink(1); + } + + if (!itemCreated.isEmpty()) + onItemPressed(itemCreated); + return true; + } + + @Override + public boolean tryProcessOnBelt(TransportedItemStack input, List outputList, boolean simulate) { + Optional recipe = getRecipe(input.stack); + if (!recipe.isPresent()) + return false; + if (simulate) + return true; + weldingBehaviour.particleItems.add(input.stack); + List outputs = RecipeApplier.applyRecipeOn( + canProcessInBulk() ? input.stack : ItemHandlerHelper.copyStackWithSize(input.stack, 1), recipe.get()); + + for (ItemStack created : outputs) { + if (!created.isEmpty()) { + onItemPressed(created); + break; + } + } + + outputList.addAll(outputs); + return true; + } + + + private static final RecipeWrapper pressingInv = new RecipeWrapper(new ItemStackHandler(1)); + + public Optional getRecipe(ItemStack item) { + Optional assemblyRecipe = + SequencedAssemblyRecipe.getRecipe(level, item, TFMGRecipeTypes.WELDING.getType(), WeldingRecipe.class); + if (assemblyRecipe.isPresent()) + return assemblyRecipe; + + pressingInv.setItem(0, item); + return TFMGRecipeTypes.WELDING.find(pressingInv, level); + } + + + + @Override + public boolean canProcessInBulk() { + return AllConfigs.server().recipes.bulkPressing.get(); + } + + + @Override + public int getParticleAmount() { + return 15; + } + + + + +} diff --git a/src/main/java/com/drmangotea/createindustry/blocks/machines/simple/welding_machine/WeldingMachineInstance.java b/src/main/java/com/drmangotea/createindustry/blocks/machines/simple/welding_machine/WeldingMachineInstance.java new file mode 100644 index 00000000..bfad3810 --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/machines/simple/welding_machine/WeldingMachineInstance.java @@ -0,0 +1,65 @@ +package com.drmangotea.createindustry.blocks.machines.simple.welding_machine; + +import com.jozufozu.flywheel.api.MaterialManager; +import com.jozufozu.flywheel.api.instance.DynamicInstance; +import com.jozufozu.flywheel.backend.instancing.blockentity.BlockEntityInstance; +import com.jozufozu.flywheel.core.Materials; +import com.jozufozu.flywheel.core.materials.oriented.OrientedData; +import com.mojang.math.Quaternion; +import com.mojang.math.Vector3f; +import com.simibubi.create.AllPartialModels; +import com.simibubi.create.content.kinetics.base.ShaftInstance; +import com.simibubi.create.foundation.utility.AngleHelper; +import com.simibubi.create.foundation.utility.AnimationTickHolder; + +public class WeldingMachineInstance extends BlockEntityInstance implements DynamicInstance { + + private final OrientedData pressHead; + + public WeldingMachineInstance(MaterialManager materialManager, WeldingMachineBlockEntity blockEntity) { + super(materialManager, blockEntity); + + pressHead = materialManager.defaultSolid() + .material(Materials.ORIENTED) + .getModel(AllPartialModels.MECHANICAL_PRESS_HEAD, blockState) + .createInstance(); + + Quaternion q = Vector3f.YP + .rotationDegrees(AngleHelper.horizontalAngle(blockState.getValue(WeldingMachineBlock.FACING))); + + pressHead.setRotation(q); + + transformModels(); + } + + @Override + public void beginFrame() { + transformModels(); + } + + private void transformModels() { + float renderedHeadOffset = getRenderedHeadOffset(blockEntity); + + pressHead.setPosition(getInstancePosition()) + .nudge(0, -renderedHeadOffset, 0); + } + + private float getRenderedHeadOffset(WeldingMachineBlockEntity press) { + WeldingBehaviour pressingBehaviour = press.getWeldingBehaviour(); + return pressingBehaviour.getRenderedHeadOffset(AnimationTickHolder.getPartialTicks()) + * pressingBehaviour.mode.headOffset; + } + + @Override + public void updateLight() { + super.updateLight(); + + relight(pos, pressHead); + } + + @Override + public void remove() { + + pressHead.delete(); + } +} diff --git a/src/main/java/com/drmangotea/createindustry/blocks/machines/simple/welding_machine/WeldingMachineRenderer.java b/src/main/java/com/drmangotea/createindustry/blocks/machines/simple/welding_machine/WeldingMachineRenderer.java new file mode 100644 index 00000000..e41b2d06 --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/machines/simple/welding_machine/WeldingMachineRenderer.java @@ -0,0 +1,49 @@ +package com.drmangotea.createindustry.blocks.machines.simple.welding_machine; + +import com.jozufozu.flywheel.backend.Backend; +import com.mojang.blaze3d.vertex.PoseStack; +import com.simibubi.create.AllPartialModels; +import com.simibubi.create.content.kinetics.base.KineticBlockEntityRenderer; +import com.simibubi.create.foundation.blockEntity.renderer.SafeBlockEntityRenderer; +import com.simibubi.create.foundation.render.CachedBufferer; +import com.simibubi.create.foundation.render.SuperByteBuffer; +import net.minecraft.client.renderer.MultiBufferSource; +import net.minecraft.client.renderer.RenderType; +import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider; +import net.minecraft.world.level.block.state.BlockState; + +import static net.minecraft.world.level.block.state.properties.BlockStateProperties.HORIZONTAL_FACING; + +public class WeldingMachineRenderer extends SafeBlockEntityRenderer { + + public WeldingMachineRenderer(BlockEntityRendererProvider.Context context) { + + } + + @Override + public boolean shouldRenderOffScreen(WeldingMachineBlockEntity be) { + return true; + } + + @Override + protected void renderSafe(WeldingMachineBlockEntity be, float partialTicks, PoseStack ms, MultiBufferSource buffer, + int light, int overlay) { + + + if (Backend.canUseInstancing(be.getLevel())) + return; + + BlockState blockState = be.getBlockState(); + WeldingBehaviour pressingBehaviour = be.getWeldingBehaviour(); + float renderedHeadOffset = + pressingBehaviour.getRenderedHeadOffset(partialTicks) * pressingBehaviour.mode.headOffset; + + SuperByteBuffer headRender = CachedBufferer.partialFacing(AllPartialModels.MECHANICAL_PRESS_HEAD, blockState, + blockState.getValue(HORIZONTAL_FACING)); + headRender.translate(0, -renderedHeadOffset, 0) + .light(light) + .renderInto(ms, buffer.getBuffer(RenderType.solid())); + } + + +} diff --git a/src/main/java/com/drmangotea/createindustry/blocks/machines/simple/welding_machine/WeldingRecipe.java b/src/main/java/com/drmangotea/createindustry/blocks/machines/simple/welding_machine/WeldingRecipe.java new file mode 100644 index 00000000..7c31551d --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/machines/simple/welding_machine/WeldingRecipe.java @@ -0,0 +1,69 @@ +package com.drmangotea.createindustry.blocks.machines.simple.welding_machine; + +import com.drmangotea.createindustry.registry.TFMGBlocks; +import com.drmangotea.createindustry.registry.TFMGRecipeTypes; +import com.simibubi.create.AllBlocks; +import com.simibubi.create.AllRecipeTypes; +import com.simibubi.create.compat.jei.category.sequencedAssembly.SequencedAssemblySubCategory; +import com.simibubi.create.content.processing.recipe.ProcessingRecipe; +import com.simibubi.create.content.processing.recipe.ProcessingRecipeBuilder.ProcessingRecipeParams; +import com.simibubi.create.content.processing.sequenced.IAssemblyRecipe; +import com.simibubi.create.foundation.utility.Lang; +import net.minecraft.network.chat.Component; +import net.minecraft.world.item.crafting.Ingredient; +import net.minecraft.world.level.ItemLike; +import net.minecraft.world.level.Level; +import net.minecraftforge.api.distmarker.Dist; +import net.minecraftforge.api.distmarker.OnlyIn; +import net.minecraftforge.items.wrapper.RecipeWrapper; + +import javax.annotation.ParametersAreNonnullByDefault; +import java.util.List; +import java.util.Set; +import java.util.function.Supplier; + +@ParametersAreNonnullByDefault +public class WeldingRecipe extends ProcessingRecipe implements IAssemblyRecipe { + + public WeldingRecipe(ProcessingRecipeParams params) { + super(TFMGRecipeTypes.WELDING, params); + } + + @Override + public boolean matches(RecipeWrapper inv, Level worldIn) { + if (inv.isEmpty()) + return false; + return ingredients.get(0) + .test(inv.getItem(0)); + } + + @Override + protected int getMaxInputCount() { + return 1; + } + + @Override + protected int getMaxOutputCount() { + return 2; + } + + @Override + public void addAssemblyIngredients(List list) {} + + @Override + @OnlyIn(Dist.CLIENT) + public Component getDescriptionForAssembly() { + return Lang.translateDirect("recipe.assembly.welding"); + } + + @Override + public void addRequiredMachines(Set list) { + //list.add(TFMGBlocks.WELDING_MACHINE.get()); + } + + @Override + public Supplier> getJEISubCategory() { + return () -> SequencedAssemblySubCategory.AssemblyPressing::new; + } + +} diff --git a/src/main/java/com/drmangotea/createindustry/items/BatteryAcidBottleItem.java b/src/main/java/com/drmangotea/createindustry/items/BatteryAcidBottleItem.java new file mode 100644 index 00000000..94ff933b --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/items/BatteryAcidBottleItem.java @@ -0,0 +1,63 @@ +package com.drmangotea.createindustry.items; + +import net.minecraft.advancements.CriteriaTriggers; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.stats.Stats; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResultHolder; +import net.minecraft.world.effect.MobEffectInstance; +import net.minecraft.world.effect.MobEffects; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.Items; +import net.minecraft.world.item.UseAnim; +import net.minecraft.world.level.Level; + +public class BatteryAcidBottleItem extends Item { + public BatteryAcidBottleItem(Properties p_41383_) { + super(p_41383_); + } + + public ItemStack finishUsingItem(ItemStack stack, Level world, LivingEntity entity) { + Player playerentity = entity instanceof Player ? (Player) entity : null; + if (playerentity instanceof ServerPlayer) + CriteriaTriggers.CONSUME_ITEM.trigger((ServerPlayer) playerentity, stack); + + if (!world.isClientSide) { + entity.addEffect(new MobEffectInstance(MobEffects.WITHER, 60 * 20, 0, true, true, true)); + entity.addEffect(new MobEffectInstance(MobEffects.CONFUSION, (int) (0.5 * 60 * 20), 0, true, true, true)); + } + + + if (playerentity != null) { + playerentity.awardStat(Stats.ITEM_USED.get(this)); + playerentity.getFoodData().eat(1, .6F); + if (!playerentity.getAbilities().instabuild) + stack.shrink(1); + } + + if (playerentity == null || !playerentity.getAbilities().instabuild) { + if (stack.isEmpty()) + return new ItemStack(Items.GLASS_BOTTLE); + if (playerentity != null) + playerentity.getInventory().add(new ItemStack(Items.GLASS_BOTTLE)); + } + + return stack; + } + + public int getUseDuration(ItemStack p_77626_1_) { + return 42; + } + + public UseAnim getUseAnimation(ItemStack p_77661_1_) { + return UseAnim.DRINK; + } + + public InteractionResultHolder use(Level p_77659_1_, Player p_77659_2_, InteractionHand p_77659_3_) { + p_77659_2_.startUsingItem(p_77659_3_); + return InteractionResultHolder.success(p_77659_2_.getItemInHand(p_77659_3_)); + } +} diff --git a/src/main/java/com/drmangotea/createindustry/items/ConcreteBottleItem.java b/src/main/java/com/drmangotea/createindustry/items/ConcreteBottleItem.java new file mode 100644 index 00000000..462f975b --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/items/ConcreteBottleItem.java @@ -0,0 +1,65 @@ +package com.drmangotea.createindustry.items; + +import com.simibubi.create.Create; +import net.minecraft.advancements.CriteriaTriggers; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.stats.Stats; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResultHolder; +import net.minecraft.world.damagesource.DamageSource; +import net.minecraft.world.effect.MobEffectInstance; +import net.minecraft.world.effect.MobEffects; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.Items; +import net.minecraft.world.item.UseAnim; +import net.minecraft.world.level.Level; + +public class ConcreteBottleItem extends Item { + + public static DamageSource damageSourceConcrete = new DamageSource("createindustry.concrete"); + public ConcreteBottleItem(Properties p_41383_) { + super(p_41383_); + } + + public ItemStack finishUsingItem(ItemStack stack, Level world, LivingEntity entity) { + Player playerentity = entity instanceof Player ? (Player) entity : null; + if (playerentity instanceof ServerPlayer) + CriteriaTriggers.CONSUME_ITEM.trigger((ServerPlayer) playerentity, stack); + + if(playerentity!=null) + playerentity.hurt(damageSourceConcrete, Create.RANDOM.nextInt(15)); + + + if (playerentity != null) { + playerentity.awardStat(Stats.ITEM_USED.get(this)); + playerentity.getFoodData().eat(1, .6F); + if (!playerentity.getAbilities().instabuild) + stack.shrink(1); + } + + if (playerentity == null || !playerentity.getAbilities().instabuild) { + if (stack.isEmpty()) + return new ItemStack(Items.GLASS_BOTTLE); + if (playerentity != null) + playerentity.getInventory().add(new ItemStack(Items.GLASS_BOTTLE)); + } + + return stack; + } + + public int getUseDuration(ItemStack p_77626_1_) { + return 42; + } + + public UseAnim getUseAnimation(ItemStack p_77661_1_) { + return UseAnim.DRINK; + } + + public InteractionResultHolder use(Level p_77659_1_, Player p_77659_2_, InteractionHand p_77659_3_) { + p_77659_2_.startUsingItem(p_77659_3_); + return InteractionResultHolder.success(p_77659_2_.getItemInHand(p_77659_3_)); + } +} diff --git a/src/main/java/com/drmangotea/createindustry/items/OilBucketItem.java b/src/main/java/com/drmangotea/createindustry/items/OilBucketItem.java new file mode 100644 index 00000000..15fed8c2 --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/items/OilBucketItem.java @@ -0,0 +1,21 @@ +package com.drmangotea.createindustry.items; + +import net.minecraft.world.item.BucketItem; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.crafting.RecipeType; +import net.minecraft.world.level.material.Fluid; +import org.jetbrains.annotations.Nullable; + +public class OilBucketItem extends BucketItem { + public OilBucketItem(Fluid p_40689_, Properties p_40690_) { + super(p_40689_, p_40690_); + } + public OilBucketItem(java.util.function.Supplier supplier, Properties builder) { + super(supplier,builder); + } + + @Override + public int getBurnTime(ItemStack itemStack, @Nullable RecipeType recipeType) { + return 800; + } +} diff --git a/src/main/java/com/drmangotea/createindustry/items/weapons/LeadAxeItem.java b/src/main/java/com/drmangotea/createindustry/items/weapons/LeadAxeItem.java new file mode 100644 index 00000000..a97fcde1 --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/items/weapons/LeadAxeItem.java @@ -0,0 +1,31 @@ +package com.drmangotea.createindustry.items.weapons; + +import net.minecraft.world.effect.MobEffect; +import net.minecraft.world.effect.MobEffectInstance; +import net.minecraft.world.effect.MobEffects; +import net.minecraft.world.entity.EquipmentSlot; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.item.AxeItem; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.Tier; + +public class LeadAxeItem extends AxeItem { + public LeadAxeItem(Tier pTier, float pAttackDamageModifier, float pAttackSpeedModifier, Properties pProperties) { + super(pTier, pAttackDamageModifier, pAttackSpeedModifier, pProperties); + } + public boolean hurtEnemy(ItemStack pStack, LivingEntity pTarget, LivingEntity pAttacker) { + pStack.hurtAndBreak(2, pAttacker, (p_41007_) -> { + p_41007_.broadcastBreakEvent(EquipmentSlot.MAINHAND); + }); + MobEffectInstance poison = pTarget.getEffect(MobEffects.POISON); + + ; + + + if(poison!=null) { + pTarget.addEffect(new MobEffectInstance(MobEffects.POISON, 160 + poison.getDuration())); + } + pTarget.addEffect(new MobEffectInstance(MobEffects.POISON,160)); + return true; + } +} diff --git a/src/main/java/com/drmangotea/createindustry/items/weapons/LeadSwordItem.java b/src/main/java/com/drmangotea/createindustry/items/weapons/LeadSwordItem.java new file mode 100644 index 00000000..12602733 --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/items/weapons/LeadSwordItem.java @@ -0,0 +1,29 @@ +package com.drmangotea.createindustry.items.weapons; + +import net.minecraft.world.effect.MobEffect; +import net.minecraft.world.effect.MobEffectInstance; +import net.minecraft.world.effect.MobEffects; +import net.minecraft.world.entity.EquipmentSlot; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.SwordItem; +import net.minecraft.world.item.Tier; + +public class LeadSwordItem extends SwordItem { + public LeadSwordItem(Tier pTier, int pAttackDamageModifier, float pAttackSpeedModifier, Properties pProperties) { + super(pTier, pAttackDamageModifier, pAttackSpeedModifier, pProperties); + } + + public boolean hurtEnemy(ItemStack pStack, LivingEntity pTarget, LivingEntity pAttacker) { + pStack.hurtAndBreak(2, pAttacker, (p_41007_) -> { + p_41007_.broadcastBreakEvent(EquipmentSlot.MAINHAND); + }); + MobEffectInstance poison = pTarget.getEffect(MobEffects.POISON); + + if(poison!=null) { + pTarget.addEffect(new MobEffectInstance(MobEffects.POISON, 100 + poison.getDuration())); + } + pTarget.addEffect(new MobEffectInstance(MobEffects.POISON,100)); + return true; + } +} diff --git a/src/main/java/com/drmangotea/createindustry/items/weapons/advanced_potato_cannon/AdvancedPotatoCannonItem.java b/src/main/java/com/drmangotea/createindustry/items/weapons/advanced_potato_cannon/AdvancedPotatoCannonItem.java new file mode 100644 index 00000000..f391686a --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/items/weapons/advanced_potato_cannon/AdvancedPotatoCannonItem.java @@ -0,0 +1,231 @@ +package com.drmangotea.createindustry.items.weapons.advanced_potato_cannon; + +import com.drmangotea.createindustry.CreateTFMGClient; +import com.drmangotea.createindustry.items.weapons.advanced_potato_cannon.projectile.NapalmPotato; +import com.drmangotea.createindustry.registry.TFMGEntityTypes; +import com.drmangotea.createindustry.registry.TFMGItems; +import com.simibubi.create.*; +import com.simibubi.create.content.equipment.armor.BacktankUtil; +import com.simibubi.create.content.equipment.potatoCannon.*; +import com.simibubi.create.content.equipment.zapper.ShootableGadgetItemMethods; +import com.simibubi.create.foundation.item.CustomArmPoseItem; +import com.simibubi.create.foundation.item.render.SimpleCustomRenderer; +import com.simibubi.create.foundation.utility.AnimationTickHolder; +import com.simibubi.create.infrastructure.config.AllConfigs; +import net.minecraft.client.Minecraft; +import net.minecraft.client.model.HumanoidModel.ArmPose; +import net.minecraft.client.player.AbstractClientPlayer; +import net.minecraft.client.player.LocalPlayer; +import net.minecraft.core.BlockPos; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.InteractionResultHolder; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.ProjectileWeaponItem; +import net.minecraft.world.item.UseAnim; +import net.minecraft.world.item.context.UseOnContext; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.phys.Vec3; +import net.minecraftforge.api.distmarker.Dist; +import net.minecraftforge.api.distmarker.OnlyIn; +import net.minecraftforge.client.extensions.common.IClientItemExtensions; +import org.jetbrains.annotations.Nullable; + +import java.util.Optional; +import java.util.function.Consumer; +import java.util.function.Predicate; + +public class AdvancedPotatoCannonItem extends ProjectileWeaponItem implements CustomArmPoseItem { + + public static ItemStack CLIENT_CURRENT_AMMO = ItemStack.EMPTY; + public static final int MAX_DAMAGE = 500; + + public AdvancedPotatoCannonItem(Properties properties) { + super(properties.defaultDurability(MAX_DAMAGE)); + } + + @Override + public boolean canAttackBlock(BlockState state, Level world, BlockPos pos, Player player) { + return false; + } + + + + @Override + public InteractionResult useOn(UseOnContext context) { + return use(context.getLevel(), context.getPlayer(), context.getHand()).getResult(); + } + + @Override + public boolean isBarVisible(ItemStack stack) { + return BacktankUtil.isBarVisible(stack, maxUses()); + } + + @Override + public int getBarWidth(ItemStack stack) { + return BacktankUtil.getBarWidth(stack, maxUses()); + } + + @Override + public int getBarColor(ItemStack stack) { + return BacktankUtil.getBarColor(stack, maxUses()); + } + + private int maxUses() { + return AllConfigs.server().equipment.maxPotatoCannonShots.get()*5; + } + + public boolean isCannon(ItemStack stack) { + return stack.getItem() instanceof AdvancedPotatoCannonItem; + } + + @Override + public InteractionResultHolder use(Level world, Player player, InteractionHand hand) { + ItemStack stack = player.getItemInHand(hand); + return findAmmoInInventory(world, player, stack).map(itemStack -> { + + + + + //if(itemStack.isEmpty()) + // return InteractionResultHolder.fail(stack); + + if (ShootableGadgetItemMethods.shouldSwap(player, stack, hand, this::isCannon)) + return InteractionResultHolder.fail(stack); + + if (world.isClientSide) { + CreateTFMGClient.ADVANCED_POTATO_CANNON_RENDER_HANDLER.dontAnimateItem(hand); + return InteractionResultHolder.success(stack); + } + + Vec3 barrelPos = ShootableGadgetItemMethods.getGunBarrelVec(player, hand == InteractionHand.MAIN_HAND, + new Vec3(.75f, -0.15f, 1.5f)); + Vec3 correction = + ShootableGadgetItemMethods.getGunBarrelVec(player, hand == InteractionHand.MAIN_HAND, new Vec3(-.05f, 0, 0)) + .subtract(player.position() + .add(0, player.getEyeHeight(), 0)); + + + Vec3 lookVec = player.getLookAngle(); + Vec3 motion = lookVec.add(correction) + .normalize() + .scale(2); + + float soundPitch = 1 + (Create.RANDOM.nextFloat() - .5f) / 4f; + + + + NapalmPotato projectile = TFMGEntityTypes.NAPALM_POTATO.create(world); + + + projectile.setPos(barrelPos.x, barrelPos.y, barrelPos.z); + projectile.setDeltaMovement(motion); + projectile.setOwner(player); + world.addFreshEntity(projectile); + + + if (!player.isCreative()) { + itemStack.shrink(1); + if (itemStack.isEmpty()) + player.getInventory().removeItem(itemStack); + } + + if (!BacktankUtil.canAbsorbDamage(player, maxUses())) + stack.hurtAndBreak(1, player, p -> p.broadcastBreakEvent(hand)); + + Integer cooldown = 75; + + + AllSoundEvents.FWOOMP.play(world,player,player.getX(),player.getY(),player.getZ(),1,0.2f); + + ShootableGadgetItemMethods.applyCooldown(player, stack, hand, this::isCannon, cooldown); + ShootableGadgetItemMethods.sendPackets(player, + b -> new AdvancedPotatoCannonPacket(barrelPos, lookVec.normalize(), itemStack, hand, soundPitch, b)); + return InteractionResultHolder.success(stack); + }) + .orElse(InteractionResultHolder.pass(stack)); + } + + @Override + public boolean shouldCauseReequipAnimation(ItemStack oldStack, ItemStack newStack, boolean slotChanged) { + return slotChanged || newStack.getItem() != oldStack.getItem(); + } + + private Optional findAmmoInInventory(Level world, Player player, ItemStack held) { + + + for(int i = 0; i < player.getInventory().getContainerSize(); ++i) { + ItemStack stack = player.getInventory().getItem(i); + if(stack.is(TFMGItems.NAPALM_POTATO.get())){ + if (!player.isCreative()) + stack.shrink(1); + return Optional.of(TFMGItems.NAPALM_POTATO.get().getDefaultInstance()); + } + } + + + return Optional.empty(); + + + + } + + @OnlyIn(Dist.CLIENT) + public static Optional getAmmoforPreview(ItemStack cannon) { + if (AnimationTickHolder.getTicks() % 3 != 0) + return Optional.of(CLIENT_CURRENT_AMMO) + .filter(stack -> !stack.isEmpty()); + + LocalPlayer player = Minecraft.getInstance().player; + CLIENT_CURRENT_AMMO = ItemStack.EMPTY; + if (player == null) + return Optional.empty(); + ItemStack findAmmo = player.getProjectile(cannon); + Optional found = PotatoProjectileTypeManager.getTypeForStack(findAmmo) + .map($ -> findAmmo); + found.ifPresent(stack -> CLIENT_CURRENT_AMMO = stack); + return found; + } + + + + @Override + public Predicate getAllSupportedProjectiles() { + return stack -> PotatoProjectileTypeManager.getTypeForStack(stack) + .isPresent(); + } + + @Override + public boolean onEntitySwing(ItemStack stack, LivingEntity entity) { + return true; + } + + @Override + public UseAnim getUseAnimation(ItemStack stack) { + return UseAnim.NONE; + } + + @Override + @Nullable + public ArmPose getArmPose(ItemStack stack, AbstractClientPlayer player, InteractionHand hand) { + if (!player.swinging) { + return ArmPose.CROSSBOW_HOLD; + } + return null; + } + + @Override + public int getDefaultProjectileRange() { + return 15; + } + + @Override + @OnlyIn(Dist.CLIENT) + public void initializeClient(Consumer consumer) { + consumer.accept(SimpleCustomRenderer.create(this, new AdvancedPotatoCannonItemRenderer())); + } + +} diff --git a/src/main/java/com/drmangotea/createindustry/items/weapons/advanced_potato_cannon/AdvancedPotatoCannonItemRenderer.java b/src/main/java/com/drmangotea/createindustry/items/weapons/advanced_potato_cannon/AdvancedPotatoCannonItemRenderer.java new file mode 100644 index 00000000..dbeee84c --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/items/weapons/advanced_potato_cannon/AdvancedPotatoCannonItemRenderer.java @@ -0,0 +1,54 @@ +package com.drmangotea.createindustry.items.weapons.advanced_potato_cannon; + +import com.drmangotea.createindustry.CreateTFMGClient; +import com.mojang.blaze3d.vertex.PoseStack; +import com.mojang.math.Vector3f; +import com.simibubi.create.foundation.item.render.CustomRenderedItemModel; +import com.simibubi.create.foundation.item.render.CustomRenderedItemModelRenderer; +import com.simibubi.create.foundation.item.render.PartialItemModelRenderer; +import com.simibubi.create.foundation.utility.AnimationTickHolder; +import net.minecraft.client.Minecraft; +import net.minecraft.client.player.LocalPlayer; +import net.minecraft.client.renderer.MultiBufferSource; +import net.minecraft.client.renderer.block.model.ItemTransforms.TransformType; +import net.minecraft.client.renderer.entity.ItemRenderer; +import net.minecraft.util.Mth; +import net.minecraft.world.entity.HumanoidArm; +import net.minecraft.world.item.ItemStack; + +public class AdvancedPotatoCannonItemRenderer extends CustomRenderedItemModelRenderer { + + + + @Override + protected void render(ItemStack stack, CustomRenderedItemModel model, PartialItemModelRenderer renderer, + TransformType transformType, PoseStack ms, MultiBufferSource buffer, int light, int overlay) { + ItemRenderer itemRenderer = Minecraft.getInstance() + .getItemRenderer(); + renderer.render(model.getOriginalModel(), light); + LocalPlayer player = Minecraft.getInstance().player; + boolean mainHand = player.getMainHandItem() == stack; + boolean offHand = player.getOffhandItem() == stack; + boolean leftHanded = player.getMainArm() == HumanoidArm.LEFT; + + float offset = .5f / 16; + float worldTime = AnimationTickHolder.getRenderTime() / 10; + float angle = worldTime * -25; + float speed = CreateTFMGClient.ADVANCED_POTATO_CANNON_RENDER_HANDLER.getAnimation(mainHand ^ leftHanded, + AnimationTickHolder.getPartialTicks()); + + if (mainHand || offHand) + angle += 360 * Mth.clamp(speed * 5, 0, 1); + angle %= 360; + + ms.pushPose(); + ms.translate(0, offset, 0); + ms.mulPose(Vector3f.ZP.rotationDegrees(angle)); + ms.translate(0, -offset, 0); + + ms.popPose(); + + + } + +} diff --git a/src/main/java/com/drmangotea/createindustry/items/weapons/advanced_potato_cannon/AdvancedPotatoCannonPacket.java b/src/main/java/com/drmangotea/createindustry/items/weapons/advanced_potato_cannon/AdvancedPotatoCannonPacket.java new file mode 100644 index 00000000..0794407a --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/items/weapons/advanced_potato_cannon/AdvancedPotatoCannonPacket.java @@ -0,0 +1,62 @@ +package com.drmangotea.createindustry.items.weapons.advanced_potato_cannon; + +import com.drmangotea.createindustry.CreateTFMG; +import com.drmangotea.createindustry.CreateTFMGClient; +import com.simibubi.create.content.equipment.zapper.ShootGadgetPacket; +import com.simibubi.create.content.equipment.zapper.ShootableGadgetRenderHandler; +import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.phys.Vec3; +import net.minecraftforge.api.distmarker.Dist; +import net.minecraftforge.api.distmarker.OnlyIn; + +public class AdvancedPotatoCannonPacket extends ShootGadgetPacket { + + private float pitch; + private Vec3 motion; + private ItemStack item; + + public AdvancedPotatoCannonPacket(Vec3 location, Vec3 motion, ItemStack item, InteractionHand hand, float pitch, boolean self) { + super(location, hand, self); + this.motion = motion; + this.item = item; + this.pitch = pitch; + } + + public AdvancedPotatoCannonPacket(FriendlyByteBuf buffer) { + super(buffer); + } + + @Override + protected void readAdditional(FriendlyByteBuf buffer) { + pitch = buffer.readFloat(); + motion = new Vec3(buffer.readFloat(), buffer.readFloat(), buffer.readFloat()); + item = buffer.readItem(); + } + + @Override + protected void writeAdditional(FriendlyByteBuf buffer) { + buffer.writeFloat(pitch); + buffer.writeFloat((float) motion.x); + buffer.writeFloat((float) motion.y); + buffer.writeFloat((float) motion.z); + buffer.writeItem(item); + } + + + @Override + @OnlyIn(Dist.CLIENT) + protected void handleAdditional() { + CreateTFMG.LOGGER.debug("AAAAAAAAAAAAAAAAAAAAAAAAAE"); + + CreateTFMGClient.ADVANCED_POTATO_CANNON_RENDER_HANDLER.beforeShoot(pitch, location, motion, item); + } + + @Override + @OnlyIn(Dist.CLIENT) + protected ShootableGadgetRenderHandler getHandler() { + return CreateTFMGClient.ADVANCED_POTATO_CANNON_RENDER_HANDLER; + } + +} diff --git a/src/main/java/com/drmangotea/createindustry/items/weapons/advanced_potato_cannon/AdvancedPotatoCannonRenderHandler.java b/src/main/java/com/drmangotea/createindustry/items/weapons/advanced_potato_cannon/AdvancedPotatoCannonRenderHandler.java new file mode 100644 index 00000000..44e7b57e --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/items/weapons/advanced_potato_cannon/AdvancedPotatoCannonRenderHandler.java @@ -0,0 +1,65 @@ +package com.drmangotea.createindustry.items.weapons.advanced_potato_cannon; + +import com.drmangotea.createindustry.registry.TFMGItems; +import com.jozufozu.flywheel.util.transform.TransformStack; +import com.mojang.blaze3d.vertex.PoseStack; +import com.simibubi.create.content.equipment.potatoCannon.PotatoProjectileEntity; +import com.simibubi.create.content.equipment.zapper.ShootableGadgetRenderHandler; +import com.simibubi.create.foundation.particle.AirParticleData; +import com.simibubi.create.foundation.utility.VecHelper; +import net.minecraft.client.Minecraft; +import net.minecraft.client.multiplayer.ClientLevel; +import net.minecraft.core.particles.ItemParticleOption; +import net.minecraft.core.particles.ParticleTypes; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.phys.Vec3; + +public class AdvancedPotatoCannonRenderHandler extends ShootableGadgetRenderHandler { + + private float nextPitch; + + @Override + protected void playSound(InteractionHand hand, Vec3 position) { + PotatoProjectileEntity.playLaunchSound(Minecraft.getInstance().level, position, nextPitch); + } + + @Override + protected boolean appliesTo(ItemStack stack) { + return TFMGItems.ADVANCED_POTATO_CANNON.get() + .isCannon(stack); + } + + public void beforeShoot(float nextPitch, Vec3 location, Vec3 motion, ItemStack stack) { + this.nextPitch = nextPitch; + if (stack.isEmpty()) + return; + + + ClientLevel world = Minecraft.getInstance().level; + for (int i = 0; i < 2; i++) { + Vec3 m = VecHelper.offsetRandomly(motion.scale(0.1f), world.random, .025f); + world.addParticle(new ItemParticleOption(ParticleTypes.ITEM, stack), location.x, location.y, location.z, m.x, + m.y, m.z); + + Vec3 m2 = VecHelper.offsetRandomly(motion.scale(2f), world.random, .5f); + world.addParticle(new AirParticleData(1, 1 / 4f), location.x, location.y, location.z, m2.x, m2.y, m2.z); + } + } + + @Override + protected void transformTool(PoseStack ms, float flip, float equipProgress, float recoil, float pt) { + ms.translate(flip * -.1f, 0, .14f); + ms.scale(.75f, .75f, .75f); + TransformStack.cast(ms) + .rotateX(recoil * 80); + } + + @Override + protected void transformHand(PoseStack ms, float flip, float equipProgress, float recoil, float pt) { + ms.translate(flip * -.09, -5, -.25); + TransformStack.cast(ms) + .rotateZ(flip * -10); + } + +} diff --git a/src/main/java/com/drmangotea/createindustry/items/weapons/advanced_potato_cannon/projectile/NapalmPotato.java b/src/main/java/com/drmangotea/createindustry/items/weapons/advanced_potato_cannon/projectile/NapalmPotato.java new file mode 100644 index 00000000..c0261b65 --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/items/weapons/advanced_potato_cannon/projectile/NapalmPotato.java @@ -0,0 +1,81 @@ +package com.drmangotea.createindustry.items.weapons.advanced_potato_cannon.projectile; + + +import com.drmangotea.createindustry.base.util.TFMGUtils; +import com.drmangotea.createindustry.registry.TFMGEntityTypes; +import com.drmangotea.createindustry.registry.TFMGItems; +import net.minecraft.core.BlockPos; +import net.minecraft.core.particles.ParticleOptions; +import net.minecraft.core.particles.ParticleTypes; +import net.minecraft.world.damagesource.DamageSource; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.EntityType; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.projectile.ThrowableItemProjectile; +import net.minecraft.world.item.Item; +import net.minecraft.world.level.Level; +import net.minecraft.world.phys.EntityHitResult; +import net.minecraft.world.phys.HitResult; + +public class NapalmPotato extends ThrowableItemProjectile { + + + public NapalmPotato(EntityType entityType, Level level) { + super(entityType,level); + + + } + public NapalmPotato(Level p_37399_, LivingEntity p_37400, EntityType bomb) { + super(bomb, p_37400, p_37399_); + + } + public NapalmPotato(Level p_37394_, double p_37395_, double p_37396_, double p_37397_) { + super(TFMGEntityTypes.NAPALM_POTATO.get(), p_37395_, p_37396_, p_37397_, p_37394_); + } + + + protected Item getDefaultItem() { + return TFMGItems.NAPALM_POTATO.get(); + } + + private ParticleOptions getParticle() { + + return ParticleTypes.FLAME; + } + + public void handleEntityEvent(byte p_37402_) { + if (p_37402_ == 3) { + ParticleOptions particleoptions = this.getParticle(); + + for(int i = 0; i < 8; ++i) { + this.level.addParticle(particleoptions, this.getX(), this.getY(), this.getZ(), 0.0D, 0.0D, 0.0D); + } + } + + } + + protected void onHitEntity(EntityHitResult p_37404_) { + super.onHitEntity(p_37404_); + Entity entity = p_37404_.getEntity(); + entity.hurt(DamageSource.thrown(this, this.getOwner()), 1); + } + + protected void onHit(HitResult p_37406_) { + super.onHit(p_37406_); + + if (!this.level.isClientSide) { + this.level.broadcastEntityEvent(this, (byte) 3); + + TFMGUtils.createFireExplosion(level,this,new BlockPos(getX(),getY(),getZ()),15,2.5f); + + this.discard(); + } + + } + + @SuppressWarnings("unchecked") + public static EntityType.Builder build(EntityType.Builder builder) { + EntityType.Builder entityBuilder = (EntityType.Builder) builder; + return entityBuilder.sized(.25f, .25f); + } +} \ No newline at end of file diff --git a/src/main/java/com/drmangotea/createindustry/items/weapons/advanced_potato_cannon/projectile/NapalmPotatoRenderer.java b/src/main/java/com/drmangotea/createindustry/items/weapons/advanced_potato_cannon/projectile/NapalmPotatoRenderer.java new file mode 100644 index 00000000..49c75ee2 --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/items/weapons/advanced_potato_cannon/projectile/NapalmPotatoRenderer.java @@ -0,0 +1,45 @@ +package com.drmangotea.createindustry.items.weapons.advanced_potato_cannon.projectile; + + +import com.drmangotea.createindustry.registry.TFMGItems; +import com.mojang.blaze3d.vertex.PoseStack; +import com.mojang.math.Vector3f; +import net.minecraft.client.renderer.MultiBufferSource; +import net.minecraft.client.renderer.block.model.ItemTransforms; +import net.minecraft.client.renderer.entity.EntityRenderer; +import net.minecraft.client.renderer.entity.EntityRendererProvider; +import net.minecraft.client.renderer.entity.ItemRenderer; +import net.minecraft.client.renderer.texture.OverlayTexture; +import net.minecraft.client.renderer.texture.TextureAtlas; +import net.minecraft.resources.ResourceLocation; +import net.minecraftforge.api.distmarker.Dist; +import net.minecraftforge.api.distmarker.OnlyIn; + +@OnlyIn(Dist.CLIENT) +public class NapalmPotatoRenderer extends EntityRenderer { + private final ItemRenderer itemRenderer; + + + public NapalmPotatoRenderer(EntityRendererProvider.Context p_174114_) { + super(p_174114_); + this.itemRenderer = p_174114_.getItemRenderer(); + } + + + public void render(NapalmPotato kartofel, float p_114657_, float p_114658_, PoseStack p_114659_, MultiBufferSource p_114660_, int p_114661_) { + p_114659_.pushPose(); + p_114659_.mulPose(this.entityRenderDispatcher.cameraOrientation()); + p_114659_.mulPose(Vector3f.YP.rotationDegrees(180.0F)); + + + this.itemRenderer.renderStatic(TFMGItems.NAPALM_POTATO.get().getDefaultInstance(), ItemTransforms.TransformType.GROUND, p_114661_, OverlayTexture.NO_OVERLAY, p_114659_, p_114660_, kartofel.getId()); + + p_114659_.popPose(); + super.render(kartofel, p_114657_, p_114658_, p_114659_, p_114660_, p_114661_); + } + + public ResourceLocation getTextureLocation(NapalmPotato p_114654_) { + return TextureAtlas.LOCATION_BLOCKS; + } + +} \ No newline at end of file diff --git a/src/main/java/com/drmangotea/createindustry/items/weapons/explosives/pipe_bomb/PipeBomb.java b/src/main/java/com/drmangotea/createindustry/items/weapons/explosives/pipe_bomb/PipeBomb.java new file mode 100644 index 00000000..a8e1eff9 --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/items/weapons/explosives/pipe_bomb/PipeBomb.java @@ -0,0 +1,81 @@ +package com.drmangotea.createindustry.items.weapons.explosives.pipe_bomb; + + +import com.drmangotea.createindustry.registry.TFMGEntityTypes; +import com.drmangotea.createindustry.registry.TFMGItems; +import net.minecraft.core.particles.ParticleOptions; +import net.minecraft.core.particles.ParticleTypes; +import net.minecraft.world.damagesource.DamageSource; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.EntityType; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.projectile.ThrowableItemProjectile; +import net.minecraft.world.item.Item; +import net.minecraft.world.level.Explosion; +import net.minecraft.world.level.Level; +import net.minecraft.world.phys.EntityHitResult; +import net.minecraft.world.phys.HitResult; + +public class PipeBomb extends ThrowableItemProjectile { + + + public PipeBomb(EntityType entityType, Level level) { + super(entityType,level); + + + } + public PipeBomb(Level p_37399_, LivingEntity p_37400,EntityType bomb) { + super(bomb, p_37400, p_37399_); + + } + public PipeBomb(Level p_37394_, double p_37395_, double p_37396_, double p_37397_) { + super(TFMGEntityTypes.PIPE_BOMB.get(), p_37395_, p_37396_, p_37397_, p_37394_); + } + + + protected Item getDefaultItem() { + return TFMGItems.PIPE_BOMB.get(); + } + + private ParticleOptions getParticle() { + + return ParticleTypes.FLAME; + } + + public void handleEntityEvent(byte p_37402_) { + if (p_37402_ == 3) { + ParticleOptions particleoptions = this.getParticle(); + + for(int i = 0; i < 8; ++i) { + this.level.addParticle(particleoptions, this.getX(), this.getY(), this.getZ(), 0.0D, 0.0D, 0.0D); + } + } + + } + + protected void onHitEntity(EntityHitResult p_37404_) { + super.onHitEntity(p_37404_); + Entity entity = p_37404_.getEntity(); + entity.hurt(DamageSource.thrown(this, this.getOwner()), 1); + } + + protected void onHit(HitResult p_37406_) { + super.onHit(p_37406_); + + if (!this.level.isClientSide) { + this.level.broadcastEntityEvent(this, (byte) 3); + + + + this.level.explode(this, this.getX(), this.getY(0.0625D), this.getZ(), 2.0F, Explosion.BlockInteraction.NONE); + this.discard(); + } + + } + + @SuppressWarnings("unchecked") + public static EntityType.Builder build(EntityType.Builder builder) { + EntityType.Builder entityBuilder = (EntityType.Builder) builder; + return entityBuilder.sized(.25f, .25f); + } +} \ No newline at end of file diff --git a/src/main/java/com/drmangotea/createindustry/items/weapons/explosives/pipe_bomb/PipeBombItem.java b/src/main/java/com/drmangotea/createindustry/items/weapons/explosives/pipe_bomb/PipeBombItem.java new file mode 100644 index 00000000..6598a1f5 --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/items/weapons/explosives/pipe_bomb/PipeBombItem.java @@ -0,0 +1,42 @@ +package com.drmangotea.createindustry.items.weapons.explosives.pipe_bomb; + +import com.drmangotea.createindustry.registry.TFMGEntityTypes; +import net.minecraft.sounds.SoundEvents; +import net.minecraft.sounds.SoundSource; +import net.minecraft.stats.Stats; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResultHolder; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.Level; + +public class PipeBombItem extends Item { + + + + public PipeBombItem(Properties p_41383_) { + super(p_41383_); + } + + public InteractionResultHolder use(Level p_43142_, Player p_43143_, InteractionHand p_43144_) { + ItemStack itemstack = p_43143_.getItemInHand(p_43144_); + p_43143_.getCooldowns().addCooldown(this, 60); + p_43142_.playSound((Player)null, p_43143_.getX(), p_43143_.getY(), p_43143_.getZ(), SoundEvents.EGG_THROW, SoundSource.NEUTRAL, 0.5F, 0.4F / (p_43142_.getRandom().nextFloat() * 0.4F + 0.8F)); + if (!p_43142_.isClientSide) { + PipeBomb bomb; + bomb = new PipeBomb(p_43142_, p_43143_, TFMGEntityTypes.PIPE_BOMB.get()); + + bomb.setItem(itemstack); + bomb.shootFromRotation(p_43143_, p_43143_.getXRot(), p_43143_.getYRot(), 0.0F, 1.5F, 1.0F); + p_43142_.addFreshEntity(bomb); + } + + p_43143_.awardStat(Stats.ITEM_USED.get(this)); + if (!p_43143_.getAbilities().instabuild) { + itemstack.shrink(1); + } + + return InteractionResultHolder.sidedSuccess(itemstack, p_43142_.isClientSide()); + } +} diff --git a/src/main/java/com/drmangotea/createindustry/items/weapons/explosives/pipe_bomb/PipeBombRenderer.java b/src/main/java/com/drmangotea/createindustry/items/weapons/explosives/pipe_bomb/PipeBombRenderer.java new file mode 100644 index 00000000..481d9cbe --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/items/weapons/explosives/pipe_bomb/PipeBombRenderer.java @@ -0,0 +1,45 @@ +package com.drmangotea.createindustry.items.weapons.explosives.pipe_bomb; + + +import com.drmangotea.createindustry.registry.TFMGItems; +import com.mojang.blaze3d.vertex.PoseStack; +import com.mojang.math.Vector3f; +import net.minecraft.client.renderer.MultiBufferSource; +import net.minecraft.client.renderer.block.model.ItemTransforms; +import net.minecraft.client.renderer.entity.EntityRenderer; +import net.minecraft.client.renderer.entity.EntityRendererProvider; +import net.minecraft.client.renderer.entity.ItemRenderer; +import net.minecraft.client.renderer.texture.OverlayTexture; +import net.minecraft.client.renderer.texture.TextureAtlas; +import net.minecraft.resources.ResourceLocation; +import net.minecraftforge.api.distmarker.Dist; +import net.minecraftforge.api.distmarker.OnlyIn; + +@OnlyIn(Dist.CLIENT) +public class PipeBombRenderer extends EntityRenderer { + private final ItemRenderer itemRenderer; + + + public PipeBombRenderer(EntityRendererProvider.Context p_174114_) { + super(p_174114_); + this.itemRenderer = p_174114_.getItemRenderer(); + } + + + public void render(PipeBomb grenade, float p_114657_, float p_114658_, PoseStack p_114659_, MultiBufferSource p_114660_, int p_114661_) { + p_114659_.pushPose(); + p_114659_.mulPose(this.entityRenderDispatcher.cameraOrientation()); + p_114659_.mulPose(Vector3f.YP.rotationDegrees(180.0F)); + + + this.itemRenderer.renderStatic(TFMGItems.PIPE_BOMB.get().getDefaultInstance(), ItemTransforms.TransformType.GROUND, p_114661_, OverlayTexture.NO_OVERLAY, p_114659_, p_114660_, grenade.getId()); + + p_114659_.popPose(); + super.render(grenade, p_114657_, p_114658_, p_114659_, p_114660_, p_114661_); + } + + public ResourceLocation getTextureLocation(PipeBomb p_114654_) { + return TextureAtlas.LOCATION_BLOCKS; + } + +} \ No newline at end of file diff --git a/src/main/java/com/drmangotea/createindustry/items/weapons/flamethrover/FlamethrowerItem.java b/src/main/java/com/drmangotea/createindustry/items/weapons/flamethrover/FlamethrowerItem.java new file mode 100644 index 00000000..7de9b57c --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/items/weapons/flamethrover/FlamethrowerItem.java @@ -0,0 +1,226 @@ +package com.drmangotea.createindustry.items.weapons.flamethrover; + +import com.drmangotea.createindustry.CreateTFMGClient; +import com.drmangotea.createindustry.base.util.spark.Spark; +import com.drmangotea.createindustry.registry.TFMGCreativeModeTabs; +import com.drmangotea.createindustry.registry.TFMGEntityTypes; +import com.drmangotea.createindustry.registry.TFMGItems; +import com.simibubi.create.content.fluids.tank.FluidTankBlockEntity; +import com.simibubi.create.foundation.item.CustomArmPoseItem; +import net.minecraft.client.model.HumanoidModel; +import net.minecraft.client.player.AbstractClientPlayer; +import net.minecraft.core.BlockPos; +import net.minecraft.core.NonNullList; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.sounds.SoundEvents; +import net.minecraft.sounds.SoundSource; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.InteractionResultHolder; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.CreativeModeTab; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.UseAnim; +import net.minecraft.world.item.context.UseOnContext; +import net.minecraft.world.level.Level; +import net.minecraftforge.fluids.capability.IFluidHandler; +import org.jetbrains.annotations.Nullable; + +public class FlamethrowerItem extends Item implements CustomArmPoseItem { + + + public static final int FUEL_CAPACITY = 4000; + + + public FlamethrowerItem(Properties pProperties) { + super(pProperties); + } + + + public void onUseTick(Level level, LivingEntity entity, ItemStack stack, int time) { + + + + Spark spark = TFMGEntityTypes.SPARK.create(level); + spark.setPos(entity.getX(),entity.getY()+1.2f,entity.getZ()); + + CompoundTag nbt = stack.getOrCreateTag(); + + if(nbt.getInt("amount")==0) { + nbt.putString("fuel",""); + return; + } + + //if(true) + // return; + level.playSound((Player)null, entity.getX(), entity.getY(), entity.getZ(), SoundEvents.FIRE_EXTINGUISH, SoundSource.NEUTRAL, 0.1F, 0.04F); + + FlamethrowerFuel fuel = Enum.valueOf(FlamethrowerFuel.class,nbt.getString("fuel").toUpperCase()); + + for(int i =0;i list) { + + if(group != TFMGCreativeModeTabs.TFMG_BASE) + return; + + ItemStack stack = TFMGItems.FLAMETHROWER.asStack(); + stack.getOrCreateTag().putString("fuel","napalm"); + stack.getOrCreateTag().putInt("amount",FUEL_CAPACITY); + list.add(stack); + super.fillItemCategory(group, list); + } + + public int getUseDuration(ItemStack p_77626_1_) { + return 696969; + } + + @Override + public boolean isBarVisible(ItemStack stack) { + return stack.getOrCreateTag().getInt("amount")!=0; + } + + @Override + public int getBarColor(ItemStack stack) { + return stack.getOrCreateTag().getString("fuel").isEmpty() ? 0xffffff : + Enum.valueOf(FlamethrowerFuel.class,stack.getOrCreateTag().getString("fuel").toUpperCase()).color; + + } + + @Override + public int getBarWidth(ItemStack stack) { + +return Math.round( 13* ((float)((float)stack.getOrCreateTag().getInt("amount")/(float)FUEL_CAPACITY))); + + } + + public InteractionResultHolder use(Level level, Player player, InteractionHand hand) { + player.startUsingItem(hand); + + + + if (level.isClientSide) { + CreateTFMGClient.FLAMETHROWER_RENDER_HANDLER.dontAnimateItem(hand); + } + + return InteractionResultHolder.pass(player.getItemInHand(hand)); + } + + @Override + public InteractionResult useOn(UseOnContext context) { + + Level level = context.getLevel(); + BlockPos pos = context.getClickedPos(); + ItemStack stack = context.getItemInHand(); + CompoundTag nbt = stack.getOrCreateTag(); + + + + + if(level.getBlockEntity(pos)!=null) + if(level.getBlockEntity(pos) instanceof FluidTankBlockEntity fluidTankBe){ + + FluidTankBlockEntity be = fluidTankBe.isController() ? fluidTankBe : fluidTankBe.getControllerBE(); + + for(FlamethrowerFuel fuel : FlamethrowerFuel.values()) { + + String fluid = be.getFluid(0).getFluid().getFluidType().toString().replaceFirst("createindustry:",""); + + + + if (fluid.equals(fuel.name().toLowerCase())) { + if(nbt.getString("fuel").equals(fluid)||nbt.getInt("amount")==0) { + + int toDrain = Math.min(FUEL_CAPACITY - nbt.getInt("amount"), be.getFluid(0).getAmount()); + + nbt.putString("fuel", fluid); + be.getTankInventory().drain(toDrain, IFluidHandler.FluidAction.EXECUTE); + nbt.putInt("amount", nbt.getInt("amount") + toDrain); + context.getPlayer().getCooldowns().addCooldown(stack.getItem(), 20); + + + } + + } + + } + + + } + + + + return InteractionResult.PASS; + } + + @Override + @Nullable + public HumanoidModel.ArmPose getArmPose(ItemStack stack, AbstractClientPlayer player, InteractionHand hand) { + if (!player.swinging) { + return HumanoidModel.ArmPose.CROSSBOW_HOLD; + } + return null; + } + + + @Override + public UseAnim getUseAnimation(ItemStack pStack) { + return UseAnim.NONE; + } + + enum FlamethrowerFuel{ + + GASOLINE(15,1,3,0xC4AA76), + DIESEL(7,2,3,0xBA9177), + KEROSENE(10,1.3f,4,0x7876D5), + + NAPHTHA(20,0.8f,1,0x5E1B0A), + + LPG(35,0.6f,15,0xE0BB48), + + NAPALM(20,1.8f,15,0xA3C649), + + MOLTEN_SLAG(15,0.3f,15,0xFF9621) + + + ; + + public final float spread; + public final float speed; + public final int amount; + + public final int color; + + + + FlamethrowerFuel(float spread, float speed, int amount,int color){ + this.spread = spread; + this.speed = speed; + this.amount = amount; + this.color = color; + + } + + } + +} diff --git a/src/main/java/com/drmangotea/createindustry/items/weapons/flamethrover/FlamethrowerPacket.java b/src/main/java/com/drmangotea/createindustry/items/weapons/flamethrover/FlamethrowerPacket.java new file mode 100644 index 00000000..ac10b6cf --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/items/weapons/flamethrover/FlamethrowerPacket.java @@ -0,0 +1,45 @@ +package com.drmangotea.createindustry.items.weapons.flamethrover; + +import com.drmangotea.createindustry.CreateTFMGClient; +import com.simibubi.create.content.equipment.zapper.ShootGadgetPacket; +import com.simibubi.create.content.equipment.zapper.ShootableGadgetRenderHandler; +import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.phys.Vec3; +import net.minecraftforge.api.distmarker.Dist; +import net.minecraftforge.api.distmarker.OnlyIn; + +public class FlamethrowerPacket extends ShootGadgetPacket { + + + + public FlamethrowerPacket(Vec3 location, InteractionHand hand, boolean self) { + super(location, hand, self); + } + + public FlamethrowerPacket(FriendlyByteBuf buffer) { + super(buffer); + } + + @Override + protected void readAdditional(FriendlyByteBuf buffer) { + } + + @Override + protected void writeAdditional(FriendlyByteBuf buffer) { + } + + + @Override + @OnlyIn(Dist.CLIENT) + protected void handleAdditional() { + + } + + @Override + @OnlyIn(Dist.CLIENT) + protected ShootableGadgetRenderHandler getHandler() { + return CreateTFMGClient.FLAMETHROWER_RENDER_HANDLER; + } + +} diff --git a/src/main/java/com/drmangotea/createindustry/items/weapons/flamethrover/FlamethrowerRenderHandler.java b/src/main/java/com/drmangotea/createindustry/items/weapons/flamethrover/FlamethrowerRenderHandler.java new file mode 100644 index 00000000..f8f4f15d --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/items/weapons/flamethrover/FlamethrowerRenderHandler.java @@ -0,0 +1,35 @@ +package com.drmangotea.createindustry.items.weapons.flamethrover; + +import com.mojang.blaze3d.vertex.PoseStack; +import com.simibubi.create.content.equipment.potatoCannon.PotatoProjectileEntity; +import com.simibubi.create.content.equipment.zapper.ShootableGadgetRenderHandler; +import net.minecraft.client.Minecraft; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.phys.Vec3; + +public class FlamethrowerRenderHandler extends ShootableGadgetRenderHandler { + + private float nextPitch; + + @Override + protected void playSound(InteractionHand hand, Vec3 position) { + PotatoProjectileEntity.playLaunchSound(Minecraft.getInstance().level, position, nextPitch); + } + + @Override + protected boolean appliesTo(ItemStack stack) { + return stack.getItem() instanceof FlamethrowerItem; + } + + @Override + protected void transformTool(PoseStack ms, float flip, float equipProgress, float recoil, float pt) { + } + + @Override + protected void transformHand(PoseStack ms, float flip, float equipProgress, float recoil, float pt) { + ms.translate(0,-5,0); + } + + +} diff --git a/src/main/java/com/drmangotea/createindustry/items/weapons/lithium_blade/LitLithiumBladeItem.java b/src/main/java/com/drmangotea/createindustry/items/weapons/lithium_blade/LitLithiumBladeItem.java new file mode 100644 index 00000000..d1e6f015 --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/items/weapons/lithium_blade/LitLithiumBladeItem.java @@ -0,0 +1,159 @@ +package com.drmangotea.createindustry.items.weapons.lithium_blade; + +import com.drmangotea.createindustry.registry.TFMGEntityTypes; +import com.drmangotea.createindustry.registry.TFMGItems; +import com.drmangotea.createindustry.registry.TFMGMobEffects; +import net.minecraft.core.NonNullList; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.resources.ResourceKey; +import net.minecraft.sounds.SoundEvents; +import net.minecraft.sounds.SoundSource; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResultHolder; +import net.minecraft.world.effect.MobEffect; +import net.minecraft.world.effect.MobEffectInstance; +import net.minecraft.world.effect.MobEffects; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.EquipmentSlot; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.*; +import net.minecraft.world.item.enchantment.Enchantment; +import net.minecraft.world.level.Level; +import net.minecraft.world.phys.Vec3; +import net.minecraftforge.registries.ForgeRegistries; +import net.minecraftforge.registries.RegistryObject; + +import java.util.Map; + +public class LitLithiumBladeItem extends SwordItem { + public LitLithiumBladeItem(Tier pTier, int pAttackDamageModifier, float pAttackSpeedModifier, Properties pProperties) { + super(pTier, pAttackDamageModifier, pAttackSpeedModifier, pProperties); + } + + public boolean hurtEnemy(ItemStack pStack, LivingEntity pTarget, LivingEntity pAttacker) { + pStack.hurtAndBreak(2, pAttacker, (p_41007_) -> { + p_41007_.broadcastBreakEvent(EquipmentSlot.MAINHAND); + }); + MobEffectInstance poison = pTarget.getEffect(TFMGMobEffects.HELLFIRE.get()); + + if(poison!=null) { + pTarget.addEffect(new MobEffectInstance(TFMGMobEffects.HELLFIRE.get(), 140 + poison.getDuration())); + } + pTarget.addEffect(new MobEffectInstance(TFMGMobEffects.HELLFIRE.get(),140)); + return true; + } + + + + + @Override + public InteractionResultHolder use(Level level, Player player, InteractionHand hand) { + + + + // :3 + + //for (Map.Entry, MobEffect> effect : ForgeRegistries.MOB_EFFECTS.getEntries()) { + // player.addEffect(new MobEffectInstance(, 60)); + //} + + + + + + ItemStack stack = player.getItemInHand(hand); + + CompoundTag nbt = stack.getOrCreateTag(); + + if(nbt.getInt("time")<=100) + return super.use(level, player, hand); + + nbt.putInt("time",nbt.getInt("time")-100); + + level.playSound(player, player.getX(), player.getY(), player.getZ(), SoundEvents.FIRECHARGE_USE, SoundSource.NEUTRAL, 0.5F, 0.4F); + + + Vec3 motion = player.getLookAngle(); + + for(int i = 0;i<10;i++){ + + + LithiumSpark spark = TFMGEntityTypes.LITHIUM_SPARK.create(level); + + spark.setPos(player.getX(),player.getY()+1.3,player.getZ()); + + + spark.burst(player.getLookAngle().x,player.getLookAngle().y,player.getLookAngle().z,1,30); + + level.addFreshEntity(spark); + + } + + + player.getCooldowns().addCooldown(TFMGItems.LIT_LITHIUM_BLADE.get(),60); + + + + + return super.use(level, player, hand); + } + + + @Override + public boolean isBarVisible(ItemStack pStack) { + return true; + } + + @Override + public int getBarColor(ItemStack pStack) { + return 0xDD0B13; + } + + @Override + public int getBarWidth(ItemStack pStack) { + return (int) ((((float)pStack.getOrCreateTag().getInt("time")/(float)LithiumBladeItem.MAX_TIME)*12) + 1); + } + + @Override + public void inventoryTick(ItemStack stack, Level pLevel, Entity entity, int pSlotId, boolean pIsSelected) { + super.inventoryTick(stack, pLevel, entity, pSlotId, pIsSelected); + + CompoundTag nbt = stack.getOrCreateTag(); + + if(nbt.getInt("time")>0){ + nbt.putInt("time",nbt.getInt("time")-1); + + + + }else { + ItemStack stack1 = new ItemStack(TFMGItems.LITHIUM_BLADE.get(),1,stack.getOrCreateTag()); + + + Map enchantments = stack.getAllEnchantments(); + + enchantments.forEach(stack1::enchant); + + + + ((Player)entity).getInventory().setItem(pSlotId,stack1); + } + + } + + @Override + public boolean shouldCauseReequipAnimation(ItemStack oldStack, ItemStack newStack, boolean slotChanged) { + + if(!slotChanged) + return false; + + return super.shouldCauseReequipAnimation(oldStack, newStack, slotChanged); + } + + @Override + public void fillItemCategory(CreativeModeTab pCategory, NonNullList pItems) { + //nah + } + + +} diff --git a/src/main/java/com/drmangotea/createindustry/items/weapons/lithium_blade/LithiumBladeItem.java b/src/main/java/com/drmangotea/createindustry/items/weapons/lithium_blade/LithiumBladeItem.java new file mode 100644 index 00000000..73addc69 --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/items/weapons/lithium_blade/LithiumBladeItem.java @@ -0,0 +1,75 @@ +package com.drmangotea.createindustry.items.weapons.lithium_blade; + +import com.drmangotea.createindustry.registry.TFMGItems; +import net.minecraft.sounds.SoundEvents; +import net.minecraft.sounds.SoundSource; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResultHolder; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.SwordItem; +import net.minecraft.world.item.Tier; +import net.minecraft.world.item.enchantment.Enchantment; +import net.minecraft.world.level.Level; + +import java.util.Map; + +public class LithiumBladeItem extends SwordItem { + + + public static final int MAX_TIME = 2000; + + public LithiumBladeItem(Tier pTier, int pAttackDamageModifier, float pAttackSpeedModifier, Properties pProperties) { + super(pTier, pAttackDamageModifier, pAttackSpeedModifier, pProperties); + } + + @Override + public InteractionResultHolder use(Level pLevel, Player player, InteractionHand hand) { + + ItemStack stack = player.getItemInHand(hand); + + ItemStack stack1 = new ItemStack(TFMGItems.LIT_LITHIUM_BLADE.get(), 1, stack.getOrCreateTag()); + + + Map enchantments = stack.getAllEnchantments(); + + enchantments.forEach(stack1::enchant); + + + + int slot = -1; + + + for(int i=0;i p_37391_, Level p_37392_) { + super(p_37391_, p_37392_); + + } + public LithiumSpark(Level p_37399_, LivingEntity p_37400_) { + super(TFMGEntityTypes.LITHIUM_SPARK.get(), p_37400_, p_37399_); + } + + public LithiumSpark(Level p_37394_, double p_37395_, double p_37396_, double p_37397_) { + super(TFMGEntityTypes.LITHIUM_SPARK.get(), p_37395_, p_37396_, p_37397_, p_37394_); + } + + + @Override + protected float getGravity(){ + return 0.02f; + } + @Override + protected void defineSynchedData() { + + } + + public void tick(){ + super.tick(); + if (this.isInWaterOrRain()) { + this.discard(); + } + if(this.level.isClientSide) { + + CubeParticleData data = + new CubeParticleData(100, 0, 0, .0125f + .0625f * random.nextFloat(), 30, false); + level.addParticle(data, this.getX(), this.getY(), this.getZ(), this.random.nextGaussian() * 0.05D, -this.getDeltaMovement().y * 0.5D, this.random.nextGaussian() * 0.05D); + + } + } + + + private ParticleOptions getParticle() { + + return ParticleTypes.FLAME; + } + + + public void burst(double pX, double pY, double pZ, float pVelocity, float pInaccuracy) { + Vec3 vec3 = (new Vec3(pX, pY, pZ)).normalize().add(this.random.triangle(0.0D, 0.0172275D * (double)pInaccuracy), 0, this.random.triangle(0.0D, 0.0172275D * (double)pInaccuracy)).scale((double)pVelocity); + this.setDeltaMovement(vec3); + double d0 = vec3.horizontalDistance(); + this.setYRot((float)(Mth.atan2(vec3.x, vec3.z) * (double)(180F / (float)Math.PI))); + this.setXRot((float)(Mth.atan2(vec3.y, d0) * (double)(180F / (float)Math.PI))); + this.yRotO = this.getYRot(); + this.xRotO = this.getXRot(); + } + + public void handleEntityEvent(byte p_37402_) { + if (p_37402_ == 3) { + ParticleOptions particleoptions = this.getParticle(); + + for(int i = 0; i < 8; ++i) { + this.level.addParticle(particleoptions, this.getX(), this.getY(), this.getZ(), 0.0D, 0.0D, 0.0D); + } + } + + } + protected void onHitBlock(BlockHitResult p_37384_) { + super.onHitBlock(p_37384_); + + } + + protected void onHitEntity(EntityHitResult p_37386_) { + super.onHitEntity(p_37386_); + if (!this.level.isClientSide) { + Entity entity = p_37386_.getEntity(); + Entity entity1 = this.getOwner(); + + + if(entity instanceof LivingEntity){ + + ((LivingEntity)entity).addEffect(new MobEffectInstance(TFMGMobEffects.HELLFIRE.get(),400)); + + + } + + + } + } + + protected void onHit(HitResult p_37406_) { + super.onHit(p_37406_); + + if (!this.level.isClientSide) { + this.level.broadcastEntityEvent(this, (byte)3); + + + //this.level.explode(this, this.getX(), this.getY(0.0625D), this.getZ(), 2.0F, Explosion.BlockInteraction.NONE); + this.discard(); + } + + } + + @SuppressWarnings("unchecked") + public static EntityType.Builder build(EntityType.Builder builder) { + EntityType.Builder entityBuilder = (EntityType.Builder) builder; + return entityBuilder.sized(.25f, .25f); + } +} \ No newline at end of file diff --git a/src/main/java/com/drmangotea/createindustry/items/weapons/lithium_blade/LithiumSparkRenderer.java b/src/main/java/com/drmangotea/createindustry/items/weapons/lithium_blade/LithiumSparkRenderer.java new file mode 100644 index 00000000..fd883f46 --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/items/weapons/lithium_blade/LithiumSparkRenderer.java @@ -0,0 +1,58 @@ +package com.drmangotea.createindustry.items.weapons.lithium_blade; + +import com.drmangotea.createindustry.CreateTFMG; +import com.mojang.blaze3d.vertex.PoseStack; +import com.mojang.blaze3d.vertex.VertexConsumer; +import com.mojang.math.Matrix3f; +import com.mojang.math.Matrix4f; +import com.mojang.math.Vector3f; +import net.minecraft.client.renderer.MultiBufferSource; +import net.minecraft.client.renderer.RenderType; +import net.minecraft.client.renderer.entity.EntityRenderer; +import net.minecraft.client.renderer.entity.EntityRendererProvider; +import net.minecraft.client.renderer.texture.OverlayTexture; +import net.minecraft.core.BlockPos; +import net.minecraft.resources.ResourceLocation; +import net.minecraftforge.api.distmarker.Dist; +import net.minecraftforge.api.distmarker.OnlyIn; + +@OnlyIn(Dist.CLIENT) +public class LithiumSparkRenderer extends EntityRenderer { + private static final ResourceLocation TEXTURE_LOCATION = CreateTFMG.asResource("textures/entity/lithium_spark.png"); + private static final RenderType RENDER_TYPE = RenderType.entityCutoutNoCull(TEXTURE_LOCATION); + + public LithiumSparkRenderer(EntityRendererProvider.Context p_173962_) { + super(p_173962_); + } + + + + protected int getBlockLightLevel(LithiumSpark p_114087_, BlockPos p_114088_) { + return 15; + } + + public void render(LithiumSpark p_114080_, float p_114081_, float p_114082_, PoseStack p_114083_, MultiBufferSource p_114084_, int p_114085_) { + p_114083_.pushPose(); + p_114083_.scale(0.5F, 0.5F, 0.5F); + p_114083_.mulPose(this.entityRenderDispatcher.cameraOrientation()); + p_114083_.mulPose(Vector3f.YP.rotationDegrees(180.0F)); + PoseStack.Pose posestack$pose = p_114083_.last(); + Matrix4f matrix4f = posestack$pose.pose(); + Matrix3f matrix3f = posestack$pose.normal(); + VertexConsumer vertexconsumer = p_114084_.getBuffer(RENDER_TYPE); + vertex(vertexconsumer, matrix4f, matrix3f, p_114085_, 0.0F, 0, 0, 1); + vertex(vertexconsumer, matrix4f, matrix3f, p_114085_, 1.0F, 0, 1, 1); + vertex(vertexconsumer, matrix4f, matrix3f, p_114085_, 1.0F, 1, 1, 0); + vertex(vertexconsumer, matrix4f, matrix3f, p_114085_, 0.0F, 1, 0, 0); + p_114083_.popPose(); + super.render(p_114080_, p_114081_, p_114082_, p_114083_, p_114084_, p_114085_); + } + + private static void vertex(VertexConsumer p_114090_, Matrix4f p_114091_, Matrix3f p_114092_, int p_114093_, float p_114094_, int p_114095_, int p_114096_, int p_114097_) { + p_114090_.vertex(p_114091_, p_114094_ - 0.5F, (float)p_114095_ - 0.25F, 0.0F).color(255, 255, 255, 255).uv((float)p_114096_, (float)p_114097_).overlayCoords(OverlayTexture.NO_OVERLAY).uv2(p_114093_).normal(p_114092_, 0.0F, 1.0F, 0.0F).endVertex(); + } + + public ResourceLocation getTextureLocation(LithiumSpark p_114078_) { + return TEXTURE_LOCATION; + } +} \ No newline at end of file diff --git a/src/main/java/com/drmangotea/createindustry/items/weapons/quad_potato_cannon/QuadPotatoCannonPacket.java b/src/main/java/com/drmangotea/createindustry/items/weapons/quad_potato_cannon/QuadPotatoCannonPacket.java new file mode 100644 index 00000000..24978130 --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/items/weapons/quad_potato_cannon/QuadPotatoCannonPacket.java @@ -0,0 +1,58 @@ +package com.drmangotea.createindustry.items.weapons.quad_potato_cannon; + +import com.drmangotea.createindustry.CreateTFMGClient; +import com.simibubi.create.content.equipment.zapper.ShootGadgetPacket; +import com.simibubi.create.content.equipment.zapper.ShootableGadgetRenderHandler; +import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.phys.Vec3; +import net.minecraftforge.api.distmarker.Dist; +import net.minecraftforge.api.distmarker.OnlyIn; + +public class QuadPotatoCannonPacket extends ShootGadgetPacket { + + private float pitch; + private Vec3 motion; + private ItemStack item; + + public QuadPotatoCannonPacket(Vec3 location, Vec3 motion, ItemStack item, InteractionHand hand, float pitch, boolean self) { + super(location, hand, self); + this.motion = motion; + this.item = item; + this.pitch = pitch; + } + + public QuadPotatoCannonPacket(FriendlyByteBuf buffer) { + super(buffer); + } + + @Override + protected void readAdditional(FriendlyByteBuf buffer) { + pitch = buffer.readFloat(); + motion = new Vec3(buffer.readFloat(), buffer.readFloat(), buffer.readFloat()); + item = buffer.readItem(); + } + + @Override + protected void writeAdditional(FriendlyByteBuf buffer) { + buffer.writeFloat(pitch); + buffer.writeFloat((float) motion.x); + buffer.writeFloat((float) motion.y); + buffer.writeFloat((float) motion.z); + buffer.writeItem(item); + } + + @Override + @OnlyIn(Dist.CLIENT) + protected void handleAdditional() { + CreateTFMGClient.QUAD_POTATO_CANNON_RENDER_HANDLER.beforeShoot(pitch, location, motion, item); + } + + @Override + @OnlyIn(Dist.CLIENT) + protected ShootableGadgetRenderHandler getHandler() { + return CreateTFMGClient.QUAD_POTATO_CANNON_RENDER_HANDLER; + } + +} diff --git a/src/main/java/com/drmangotea/createindustry/mixins/ArrowMixin.java b/src/main/java/com/drmangotea/createindustry/mixins/ArrowMixin.java new file mode 100644 index 00000000..a3f6a4d1 --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/mixins/ArrowMixin.java @@ -0,0 +1,60 @@ +package com.drmangotea.createindustry.mixins; + + +import com.drmangotea.createindustry.registry.TFMGPotions; +import net.minecraft.world.effect.MobEffectInstance; +import net.minecraft.world.entity.EntityType; +import net.minecraft.world.entity.projectile.AbstractArrow; +import net.minecraft.world.entity.projectile.Arrow; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.Items; +import net.minecraft.world.item.alchemy.Potion; +import net.minecraft.world.item.alchemy.PotionUtils; +import net.minecraft.world.item.alchemy.Potions; +import net.minecraft.world.level.Level; +import org.spongepowered.asm.mixin.Final; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +import java.util.Set; + +@Mixin(Arrow.class) +public abstract class ArrowMixin extends AbstractArrow { + + @Shadow public abstract int getColor(); + + @Shadow private boolean fixedColor; + @Shadow private Potion potion; + @Shadow @Final private Set effects; + + protected ArrowMixin(EntityType pEntityType, Level pLevel) { + super(pEntityType, pLevel); + } + + + @Inject(at = @At("HEAD"),method = "tick",remap = false) + public void tick(CallbackInfo ci) { + if(potion == TFMGPotions.HELLFIRE_POTION.get()) + this.setSecondsOnFire(20); + } + + @Shadow + protected ItemStack getPickupItem() { + if (this.effects.isEmpty() && this.potion == Potions.EMPTY) { + return new ItemStack(Items.ARROW); + } else { + ItemStack itemstack = new ItemStack(Items.TIPPED_ARROW); + PotionUtils.setPotion(itemstack, this.potion); + PotionUtils.setCustomEffects(itemstack, this.effects); + if (this.fixedColor) { + itemstack.getOrCreateTag().putInt("CustomPotionColor", this.getColor()); + } + + return itemstack; + } + } + +} diff --git a/src/main/java/com/drmangotea/createindustry/mixins/BucketItemMixin.java b/src/main/java/com/drmangotea/createindustry/mixins/BucketItemMixin.java new file mode 100644 index 00000000..4a858dd9 --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/mixins/BucketItemMixin.java @@ -0,0 +1,30 @@ +package com.drmangotea.createindustry.mixins; + + +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResultHolder; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.BucketItem; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.material.Fluid; +import org.spongepowered.asm.mixin.Final; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + +@Mixin(BucketItem.class) +public class BucketItemMixin extends Item { + @Shadow @Final private Fluid content; + + public BucketItemMixin(Properties pProperties) { + super(pProperties); + } + //@Inject(method = "use", at = @At("HEAD"), remap = false) + // public void use(Level pLevel, Player pPlayer, InteractionHand pHand, CallbackInfoReturnable> cir) { + // cir.cancel(); + // } +} diff --git a/src/main/java/com/drmangotea/createindustry/ponder/scenes/ElectricityScenes.java b/src/main/java/com/drmangotea/createindustry/ponder/scenes/ElectricityScenes.java new file mode 100644 index 00000000..41f994c8 --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/ponder/scenes/ElectricityScenes.java @@ -0,0 +1,87 @@ +package com.drmangotea.createindustry.ponder.scenes; + +import com.drmangotea.createindustry.registry.TFMGItems; +import com.simibubi.create.AllItems; +import com.simibubi.create.foundation.ponder.ElementLink; +import com.simibubi.create.foundation.ponder.SceneBuilder; +import com.simibubi.create.foundation.ponder.SceneBuildingUtil; +import com.simibubi.create.foundation.ponder.Selection; +import com.simibubi.create.foundation.ponder.element.InputWindowElement; +import com.simibubi.create.foundation.ponder.element.WorldSectionElement; +import com.simibubi.create.foundation.utility.Pointing; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.phys.Vec3; + +public class ElectricityScenes { + public static void large_generator(SceneBuilder scene, SceneBuildingUtil util) { + scene.title("large_generator", ""); + scene.configureBasePlate(0, 0, 7); + scene.showBasePlate(); + + Selection stator = util.select.fromTo(3, 1, 5, 5, 3, 5); + Selection rotor = util.select.fromTo(4, 2, 3, 4, 2, 3); + Selection kinetics1 = util.select.fromTo(4, 1, 1, 6 , 2, 2); + + Selection kinetics2 = util.select.fromTo(6, 1, 3, 6, 1, 3); + Selection cables = util.select.fromTo(1, 1, 3, 2, 2, 6); + + scene.world.setKineticSpeed(kinetics1,120); + scene.world.setKineticSpeed(kinetics2,120); + //scene.world.setKineticSpeed(rotor,120); + scene.world.showIndependentSection(rotor,Direction.DOWN); + + scene.overlay.showText(50) + .attachKeyFrame() + .text("The main of the Large Generator is the Rotor") + .pointAt(util.vector.blockSurface(util.grid.at(4, 2, 5), Direction.WEST)) + .placeNearTarget(); + + scene.idle(80); + + ElementLink statorElement = scene.world.showIndependentSection(stator,Direction.DOWN); + + + scene.world.moveSection(statorElement,new Vec3(0d,0d,-2d),0); + + scene.overlay.showText(75) + .attachKeyFrame() + .text("To complete the Large Generator, place Stator block around the Rotor") + .pointAt(util.vector.blockSurface(util.grid.at(3, 2, 3), Direction.WEST)) + .placeNearTarget(); + + + scene.idle(105); + + scene.world.showIndependentSection(kinetics1,Direction.DOWN); + scene.world.showIndependentSection(kinetics2,Direction.DOWN); + + scene.world.setKineticSpeed(rotor,120); + scene.overlay.showText(65) + .attachKeyFrame() + .text("Providing rotational power to the Rotor will produce electric energy") + .pointAt(util.vector.blockSurface(util.grid.at(4, 2, 3), Direction.WEST)) + .placeNearTarget(); + + + scene.idle(95); + + + BlockPos pos = util.grid.at(3, 2, 3); + Vec3 topOf = util.vector.topOf(pos); + scene.overlay.showControls(new InputWindowElement(topOf, Pointing.DOWN).rightClick() + .withItem(new ItemStack(AllItems.WRENCH.get())), 20); + + + + scene.overlay.showText(60) + .attachKeyFrame() + .text("Clicking a side with a wrench will make it the energy output"); + + scene.idle(20); + scene.world.showIndependentSection(cables,Direction.DOWN); + scene.idle(50); + + } +} diff --git a/src/main/java/com/drmangotea/createindustry/registry/TFMGArmorMaterials.java b/src/main/java/com/drmangotea/createindustry/registry/TFMGArmorMaterials.java new file mode 100644 index 00000000..0672e4a2 --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/registry/TFMGArmorMaterials.java @@ -0,0 +1,86 @@ +package com.drmangotea.createindustry.registry; + +import com.drmangotea.createindustry.CreateTFMG; +import com.google.common.base.Suppliers; +import com.simibubi.create.AllSoundEvents; +import com.simibubi.create.Create; +import net.minecraft.sounds.SoundEvent; +import net.minecraft.sounds.SoundEvents; +import net.minecraft.world.entity.EquipmentSlot; +import net.minecraft.world.item.ArmorMaterial; +import net.minecraft.world.item.Items; +import net.minecraft.world.item.crafting.Ingredient; + +import java.util.function.Supplier; + +public enum TFMGArmorMaterials implements ArmorMaterial { + + + STEEL(CreateTFMG.asResource("steel").toString(), 30, new int[]{3, 6, 8, 3}, 18, () -> SoundEvents.ARMOR_EQUIP_NETHERITE, 2.0F, 0.1F, + () -> Ingredient.of(TFMGItems.STEEL_INGOT.get())) + + ; + + + private static final int[] MAX_DAMAGE_ARRAY = new int[] { 13, 15, 16, 11 }; + private final String name; + private final int maxDamageFactor; + private final int[] damageReductionAmountArray; + private final int enchantability; + private final Supplier soundEvent; + private final float toughness; + private final float knockbackResistance; + private final Supplier repairMaterial; + + private TFMGArmorMaterials(String name, int maxDamageFactor, int[] damageReductionAmountArray, int enchantability, + Supplier soundEvent, float toughness, float knockbackResistance, Supplier repairMaterial) { + this.name = name; + this.maxDamageFactor = maxDamageFactor; + this.damageReductionAmountArray = damageReductionAmountArray; + this.enchantability = enchantability; + this.soundEvent = soundEvent; + this.toughness = toughness; + this.knockbackResistance = knockbackResistance; + this.repairMaterial = Suppliers.memoize(repairMaterial::get); + } + + @Override + public int getDurabilityForSlot(EquipmentSlot slot) { + return MAX_DAMAGE_ARRAY[slot.getIndex()] * this.maxDamageFactor; + } + + @Override + public int getDefenseForSlot(EquipmentSlot slot) { + return this.damageReductionAmountArray[slot.getIndex()]; + } + + @Override + public int getEnchantmentValue() { + return this.enchantability; + } + + @Override + public SoundEvent getEquipSound() { + return this.soundEvent.get(); + } + + @Override + public Ingredient getRepairIngredient() { + return this.repairMaterial.get(); + } + + @Override + public String getName() { + return this.name; + } + + @Override + public float getToughness() { + return this.toughness; + } + + @Override + public float getKnockbackResistance() { + return this.knockbackResistance; + } +} diff --git a/src/main/java/com/drmangotea/createindustry/registry/TFMGMobEffects.java b/src/main/java/com/drmangotea/createindustry/registry/TFMGMobEffects.java new file mode 100644 index 00000000..1726fea6 --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/registry/TFMGMobEffects.java @@ -0,0 +1,24 @@ +package com.drmangotea.createindustry.registry; + + +import com.drmangotea.createindustry.CreateTFMG; +import com.drmangotea.createindustry.base.effects.HellFireEffect; +import net.minecraft.world.effect.MobEffect; +import net.minecraft.world.effect.MobEffectCategory; +import net.minecraftforge.eventbus.api.IEventBus; +import net.minecraftforge.registries.DeferredRegister; +import net.minecraftforge.registries.ForgeRegistries; +import net.minecraftforge.registries.RegistryObject; + +import java.awt.*; + +public class TFMGMobEffects { + public static final DeferredRegister MOB_EFFECTS = DeferredRegister.create(ForgeRegistries.MOB_EFFECTS, CreateTFMG.MOD_ID); + + public static final RegistryObject HELLFIRE = MOB_EFFECTS.register("hellfire", () -> new HellFireEffect(MobEffectCategory.HARMFUL, new Color(150, 0, 0, 200).getRGB())); + + + public static void register(IEventBus modEventBus){ + MOB_EFFECTS.register(modEventBus); + } +} diff --git a/src/main/java/com/drmangotea/createindustry/registry/TFMGPackets.java b/src/main/java/com/drmangotea/createindustry/registry/TFMGPackets.java new file mode 100644 index 00000000..5f5a4f3c --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/registry/TFMGPackets.java @@ -0,0 +1,94 @@ +package com.drmangotea.createindustry.registry; + +import com.drmangotea.createindustry.CreateTFMG; +import com.drmangotea.createindustry.items.weapons.advanced_potato_cannon.AdvancedPotatoCannonPacket; +import com.drmangotea.createindustry.items.weapons.quad_potato_cannon.QuadPotatoCannonPacket; + +import com.simibubi.create.foundation.networking.SimplePacketBase; +import net.minecraft.core.BlockPos; +import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.level.Level; +import net.minecraftforge.network.NetworkDirection; +import net.minecraftforge.network.NetworkEvent; +import net.minecraftforge.network.NetworkRegistry; +import net.minecraftforge.network.PacketDistributor; +import net.minecraftforge.network.simple.SimpleChannel; + +import java.util.function.BiConsumer; +import java.util.function.Function; +import java.util.function.Supplier; + +import static net.minecraftforge.network.NetworkDirection.PLAY_TO_CLIENT; + +public enum TFMGPackets { + + ADVANCED_POTATO_CANNON(AdvancedPotatoCannonPacket.class, AdvancedPotatoCannonPacket::new, PLAY_TO_CLIENT), + QUAD_POTATO_CANNON(QuadPotatoCannonPacket.class, QuadPotatoCannonPacket::new, PLAY_TO_CLIENT) + ; + + public static final ResourceLocation CHANNEL_NAME = CreateTFMG.asResource("main"); + public static final int NETWORK_VERSION = 3; + public static final String NETWORK_VERSION_STR = String.valueOf(NETWORK_VERSION); + private static SimpleChannel channel; + + private PacketType packetType; + + TFMGPackets(Class type, Function factory, + NetworkDirection direction) { + packetType = new TFMGPackets.PacketType<>(type, factory, direction); + } + + public static void registerPackets() { + channel = NetworkRegistry.ChannelBuilder.named(CHANNEL_NAME) + .serverAcceptedVersions(NETWORK_VERSION_STR::equals) + .clientAcceptedVersions(NETWORK_VERSION_STR::equals) + .networkProtocolVersion(() -> NETWORK_VERSION_STR) + .simpleChannel(); + + for (TFMGPackets packet : values()) + packet.packetType.register(); + } + + public static SimpleChannel getChannel() { + return channel; + } + + public static void sendToNear(Level world, BlockPos pos, int range, Object message) { + getChannel().send( + PacketDistributor.NEAR.with(PacketDistributor.TargetPoint.p(pos.getX(), pos.getY(), pos.getZ(), range, world.dimension())), + message); + } + + private static class PacketType { + private static int index = 0; + + private BiConsumer encoder; + private Function decoder; + private BiConsumer> handler; + private Class type; + private NetworkDirection direction; + + private PacketType(Class type, Function factory, NetworkDirection direction) { + encoder = T::write; + decoder = factory; + handler = (packet, contextSupplier) -> { + NetworkEvent.Context context = contextSupplier.get(); + if (packet.handle(context)) { + context.setPacketHandled(true); + } + }; + this.type = type; + this.direction = direction; + } + + private void register() { + getChannel().messageBuilder(type, index++, direction) + .encoder(encoder) + .decoder(decoder) + .consumerNetworkThread(handler) + .add(); + } + } + +} diff --git a/src/main/java/com/drmangotea/createindustry/registry/TFMGParticleTypes.java b/src/main/java/com/drmangotea/createindustry/registry/TFMGParticleTypes.java new file mode 100644 index 00000000..7dd92e83 --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/registry/TFMGParticleTypes.java @@ -0,0 +1,73 @@ +package com.drmangotea.createindustry.registry; + +import com.drmangotea.createindustry.CreateTFMG; + +import com.drmangotea.createindustry.base.ElectricSparkParticle; +import com.simibubi.create.content.equipment.bell.SoulParticle; +import com.simibubi.create.foundation.particle.ICustomParticleData; +import com.simibubi.create.foundation.utility.Lang; +import net.minecraft.core.particles.ParticleOptions; +import net.minecraft.core.particles.ParticleType; +import net.minecraftforge.api.distmarker.Dist; +import net.minecraftforge.api.distmarker.OnlyIn; +import net.minecraftforge.client.event.RegisterParticleProvidersEvent; +import net.minecraftforge.eventbus.api.IEventBus; +import net.minecraftforge.registries.DeferredRegister; +import net.minecraftforge.registries.ForgeRegistries; +import net.minecraftforge.registries.RegistryObject; + +import java.util.function.Supplier; + +public enum TFMGParticleTypes { + + ELECTRIC_SPARK(ElectricSparkParticle.Data::new); + + + private final ParticleEntry entry; + + TFMGParticleTypes(Supplier> typeFactory) { + String name = Lang.asId(name()); + entry = new ParticleEntry<>(name, typeFactory); + } + + public static void register(IEventBus modEventBus) { + ParticleEntry.REGISTER.register(modEventBus); + } + + @OnlyIn(Dist.CLIENT) + public static void registerFactories(RegisterParticleProvidersEvent event) { + for (TFMGParticleTypes particle : values()) + particle.entry.registerFactory(event); + } + + public ParticleType get() { + return entry.object.get(); + } + + public String parameter() { + return entry.name; + } + + private static class ParticleEntry { + private static final DeferredRegister> REGISTER = DeferredRegister.create(ForgeRegistries.PARTICLE_TYPES, CreateTFMG.MOD_ID); + + private final String name; + private final Supplier> typeFactory; + private final RegistryObject> object; + + public ParticleEntry(String name, Supplier> typeFactory) { + this.name = name; + this.typeFactory = typeFactory; + + object = REGISTER.register(name, () -> this.typeFactory.get().createType()); + } + + @OnlyIn(Dist.CLIENT) + public void registerFactory(RegisterParticleProvidersEvent event) { + typeFactory.get() + .register(object.get(), event); + } + + } + +} diff --git a/src/main/java/com/drmangotea/createindustry/registry/TFMGPotions.java b/src/main/java/com/drmangotea/createindustry/registry/TFMGPotions.java new file mode 100644 index 00000000..b5325b03 --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/registry/TFMGPotions.java @@ -0,0 +1,24 @@ +package com.drmangotea.createindustry.registry; + +import com.drmangotea.createindustry.CreateTFMG; +import net.minecraft.world.effect.MobEffectInstance; +import net.minecraft.world.item.alchemy.Potion; +import net.minecraftforge.eventbus.api.IEventBus; +import net.minecraftforge.registries.DeferredRegister; +import net.minecraftforge.registries.ForgeRegistries; +import net.minecraftforge.registries.RegistryObject; + +public class TFMGPotions { + public static final DeferredRegister POTIONS + = DeferredRegister.create(ForgeRegistries.POTIONS, CreateTFMG.MOD_ID); + + public static final RegistryObject HELLFIRE_POTION = POTIONS.register("hellfire_potion", + () -> new Potion(new MobEffectInstance(TFMGMobEffects.HELLFIRE.get(), 600, 0))); + + + + public static void register(IEventBus eventBus) { + POTIONS.register(eventBus); + } + +} \ No newline at end of file diff --git a/src/main/java/com/drmangotea/createindustry/registry/TFMGTags.java b/src/main/java/com/drmangotea/createindustry/registry/TFMGTags.java new file mode 100644 index 00000000..fa4cfa84 --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/registry/TFMGTags.java @@ -0,0 +1,241 @@ +package com.drmangotea.createindustry.registry; + + +import com.drmangotea.createindustry.CreateTFMG; +import com.simibubi.create.Create; +import com.simibubi.create.foundation.utility.Lang; +import net.minecraft.core.Registry; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.tags.BlockTags; +import net.minecraft.tags.FluidTags; +import net.minecraft.tags.ItemTags; +import net.minecraft.tags.TagKey; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.EntityType; +import net.minecraft.world.item.BlockItem; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.crafting.RecipeSerializer; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.level.material.FluidState; +import net.minecraftforge.registries.ForgeRegistries; +import net.minecraftforge.registries.IForgeRegistry; + +import java.util.Collections; + +import static com.drmangotea.createindustry.registry.TFMGTags.NameSpace.FORGE; +import static com.drmangotea.createindustry.registry.TFMGTags.NameSpace.MOD; + + +public class TFMGTags { + public static TagKey optionalTag(IForgeRegistry registry, + ResourceLocation id) { + return registry.tags() + .createOptionalTagKey(id, Collections.emptySet()); + } + + public static TagKey forgeTag(IForgeRegistry registry, String path) { + return optionalTag(registry, new ResourceLocation("forge", path)); + } + + public static TagKey forgeBlockTag(String path) { + return forgeTag(ForgeRegistries.BLOCKS, path); + } + + public static TagKey forgeItemTag(String path) { + return forgeTag(ForgeRegistries.ITEMS, path); + } + + public static TagKey forgeFluidTag(String path) { + return forgeTag(ForgeRegistries.FLUIDS, path); + } + + public enum NameSpace { + + MOD(CreateTFMG.MOD_ID, false, true), + FORGE("forge") + + + ; + + public final String id; + public final boolean optionalDefault; + public final boolean alwaysDatagenDefault; + + NameSpace(String id) { + this(id, true, false); + } + + NameSpace(String id, boolean optionalDefault, boolean alwaysDatagenDefault) { + this.id = id; + this.optionalDefault = optionalDefault; + this.alwaysDatagenDefault = alwaysDatagenDefault; + } + } + + + public enum TFMGFluidTags { + GAS(MOD), + + FLAMMABLE(MOD), + + GASOLINE(FORGE), + DIESEL(FORGE), + KEROSENE(FORGE), + + LPG(FORGE), + HEAVY_OIL(FORGE), + LUBRICATION_OIL(FORGE), + NAPHTHA(FORGE), + + CRUDE_OIL(FORGE), + + MOLTEN_STEEL(FORGE), + + FUEL(FORGE) + + + ; + + public final TagKey tag; + public final boolean alwaysDatagen; + + TFMGFluidTags() { + this(MOD); + } + + TFMGFluidTags(TFMGTags.NameSpace namespace) { + this(namespace, namespace.optionalDefault, namespace.alwaysDatagenDefault); + } + + TFMGFluidTags(TFMGTags.NameSpace namespace, String path) { + this(namespace, path, namespace.optionalDefault, namespace.alwaysDatagenDefault); + } + + TFMGFluidTags(TFMGTags.NameSpace namespace, boolean optional, boolean alwaysDatagen) { + this(namespace, null, optional, alwaysDatagen); + } + + TFMGFluidTags(TFMGTags.NameSpace namespace, String path, boolean optional, boolean alwaysDatagen) { + ResourceLocation id = new ResourceLocation(namespace.id, path == null ? Lang.asId(name()) : path); + if (optional) { + tag = optionalTag(ForgeRegistries.FLUIDS, id); + } else { + tag = FluidTags.create(id); + } + this.alwaysDatagen = alwaysDatagen; + } + + @SuppressWarnings("deprecation") + public boolean matches(Fluid fluid) { + return fluid.is(tag); + } + + public boolean matches(FluidState state) { + return state.is(tag); + } + + private static void init() {} + + } + + public enum TFMGEntityTags { + + BLAZE_BURNER_CAPTURABLE, + IGNORE_SEAT, + + ; + + public final TagKey> tag; + public final boolean alwaysDatagen; + + TFMGEntityTags() { + this(MOD); + } + + TFMGEntityTags(TFMGTags.NameSpace namespace) { + this(namespace, namespace.optionalDefault, namespace.alwaysDatagenDefault); + } + + TFMGEntityTags(TFMGTags.NameSpace namespace, String path) { + this(namespace, path, namespace.optionalDefault, namespace.alwaysDatagenDefault); + } + + TFMGEntityTags(TFMGTags.NameSpace namespace, boolean optional, boolean alwaysDatagen) { + this(namespace, null, optional, alwaysDatagen); + } + + TFMGEntityTags(TFMGTags.NameSpace namespace, String path, boolean optional, boolean alwaysDatagen) { + ResourceLocation id = new ResourceLocation(namespace.id, path == null ? Lang.asId(name()) : path); + if (optional) { + tag = optionalTag(ForgeRegistries.ENTITY_TYPES, id); + } else { + tag = TagKey.create(Registry.ENTITY_TYPE_REGISTRY, id); + } + this.alwaysDatagen = alwaysDatagen; + } + + public boolean matches(EntityType type) { + return type.is(tag); + } + + public boolean matches(Entity entity) { + return matches(entity.getType()); + } + + private static void init() {} + + } + + public enum TFMGRecipeSerializerTags { + + AUTOMATION_IGNORE, + + ; + + public final TagKey> tag; + public final boolean alwaysDatagen; + + TFMGRecipeSerializerTags() { + this(MOD); + } + + TFMGRecipeSerializerTags(TFMGTags.NameSpace namespace) { + this(namespace, namespace.optionalDefault, namespace.alwaysDatagenDefault); + } + + TFMGRecipeSerializerTags(TFMGTags.NameSpace namespace, String path) { + this(namespace, path, namespace.optionalDefault, namespace.alwaysDatagenDefault); + } + + TFMGRecipeSerializerTags(TFMGTags.NameSpace namespace, boolean optional, boolean alwaysDatagen) { + this(namespace, null, optional, alwaysDatagen); + } + + TFMGRecipeSerializerTags(TFMGTags.NameSpace namespace, String path, boolean optional, boolean alwaysDatagen) { + ResourceLocation id = new ResourceLocation(namespace.id, path == null ? Lang.asId(name()) : path); + if (optional) { + tag = optionalTag(ForgeRegistries.RECIPE_SERIALIZERS, id); + } else { + tag = TagKey.create(Registry.RECIPE_SERIALIZER_REGISTRY, id); + } + this.alwaysDatagen = alwaysDatagen; + } + + public boolean matches(RecipeSerializer recipeSerializer) { + return ForgeRegistries.RECIPE_SERIALIZERS.getHolder(recipeSerializer).orElseThrow().is(tag); + } + + private static void init() {} + } + + public static void init() { + // TFMGBlockTags.init(); + // TFMGItemTags.init(); + TFMGFluidTags.init(); + TFMGEntityTags.init(); + TFMGRecipeSerializerTags.init(); + } +} diff --git a/src/main/java/com/drmangotea/createindustry/registry/TFMGTiers.java b/src/main/java/com/drmangotea/createindustry/registry/TFMGTiers.java new file mode 100644 index 00000000..a8bfed71 --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/registry/TFMGTiers.java @@ -0,0 +1,65 @@ +package com.drmangotea.createindustry.registry; + +import net.minecraft.util.LazyLoadedValue; +import net.minecraft.world.item.Items; +import net.minecraft.world.item.Tier; +import net.minecraft.world.item.crafting.Ingredient; + +import java.util.function.Supplier; + +public enum TFMGTiers implements Tier { + + + STEEL(3,1000,7.5f,3f,12,() -> { + return Ingredient.of(TFMGItems.STEEL_INGOT.get()); + }), + + ALUMINUM(2,220,6,2f,22,() -> { + return Ingredient.of(TFMGItems.ALUMINUM_INGOT.get()); + }), + LEAD(1,32,2,0.5f,5,() -> { + return Ingredient.of(TFMGItems.LEAD_INGOT.get()); + }) + + +; + private final int level; + private final int uses; + private final float speed; + private final float damage; + private final int enchantmentValue; + private final LazyLoadedValue repairIngredient; + + private TFMGTiers(int pLevel, int pUses, float pSpeed, float pDamage, int pEnchantmentValue, Supplier pRepairIngredient) { + this.level = pLevel; + this.uses = pUses; + this.speed = pSpeed; + this.damage = pDamage; + this.enchantmentValue = pEnchantmentValue; + this.repairIngredient = new LazyLoadedValue<>(pRepairIngredient); + } + + public int getUses() { + return this.uses; + } + + public float getSpeed() { + return this.speed; + } + + public float getAttackDamageBonus() { + return this.damage; + } + + public int getLevel() { + return this.level; + } + + public int getEnchantmentValue() { + return this.enchantmentValue; + } + + public Ingredient getRepairIngredient() { + return this.repairIngredient.get(); + } +} diff --git a/src/main/java/com/drmangotea/createindustry/worldgen/TFMGOreConfigEntries.java b/src/main/java/com/drmangotea/createindustry/worldgen/TFMGOreConfigEntries.java new file mode 100644 index 00000000..a9056a91 --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/worldgen/TFMGOreConfigEntries.java @@ -0,0 +1,60 @@ +package com.drmangotea.createindustry.worldgen; + +import com.drmangotea.createindustry.registry.TFMGBlocks; +import com.simibubi.create.AllBlocks; +import com.simibubi.create.Create; +import com.simibubi.create.foundation.data.DynamicDataProvider; +import com.simibubi.create.foundation.utility.Couple; +import com.simibubi.create.infrastructure.worldgen.OreFeatureConfigEntry; +import net.minecraft.core.Registry; +import net.minecraft.core.RegistryAccess; +import net.minecraft.data.DataGenerator; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.tags.BiomeTags; +import net.minecraft.world.level.levelgen.feature.ConfiguredFeature; +import net.minecraft.world.level.levelgen.placement.PlacedFeature; +import net.minecraftforge.common.ForgeConfigSpec; +import net.minecraftforge.common.world.BiomeModifier; +import net.minecraftforge.data.event.GatherDataEvent; +import net.minecraftforge.registries.ForgeRegistries; + +import java.util.HashMap; +import java.util.Map; + +public class TFMGOreConfigEntries { + + + public static final OreFeatureConfigEntry LEAD_ORE = + create("lead_ore", 10, 5, -63, 60) + .standardDatagenExt() + .withBlocks(Couple.create(TFMGBlocks.LEAD_ORE, TFMGBlocks.DEEPSLATE_LEAD_ORE)) + .biomeTag(BiomeTags.IS_OVERWORLD) + .parent(); + public static final OreFeatureConfigEntry NICKEL_ORE = + create("nickel_ore", 8, 4, -63, 20) + .standardDatagenExt() + .withBlocks(Couple.create(TFMGBlocks.NICKEL_ORE, TFMGBlocks.DEEPSLATE_NICKEL_ORE)) + .biomeTag(BiomeTags.IS_OVERWORLD) + .parent(); + + + public static final OreFeatureConfigEntry LITHIUM_ORE = + create("lithium_ore", 12, 2, -63, 0) + .standardDatagenExt() + .withBlocks(Couple.create(TFMGBlocks.LITHIUM_ORE, TFMGBlocks.DEEPSLATE_LITHIUM_ORE)) + .biomeTag(BiomeTags.IS_OVERWORLD) + .parent(); + + + //// + private static OreFeatureConfigEntry create(String name, int clusterSize, float frequency, + int minHeight, int maxHeight) { + ResourceLocation id = Create.asResource(name); + OreFeatureConfigEntry configDrivenFeatureEntry = new OreFeatureConfigEntry(id, clusterSize, frequency, minHeight, maxHeight); + return configDrivenFeatureEntry; + } + + + public static void init() {} + +} diff --git a/src/main/java/com/drmangotea/createindustry/worldgen/oil_deposit/OilDepositFeature.java b/src/main/java/com/drmangotea/createindustry/worldgen/oil_deposit/OilDepositFeature.java new file mode 100644 index 00000000..e8b93ad8 --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/worldgen/oil_deposit/OilDepositFeature.java @@ -0,0 +1,57 @@ +package com.drmangotea.createindustry.worldgen.oil_deposit; + +import com.drmangotea.createindustry.registry.TFMGBlocks; +import com.drmangotea.createindustry.registry.TFMGFluids; +import com.mojang.serialization.Codec; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.util.RandomSource; +import net.minecraft.world.level.WorldGenLevel; +import net.minecraft.world.level.levelgen.feature.Feature; +import net.minecraft.world.level.levelgen.feature.FeaturePlaceContext; +import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; +import net.minecraft.world.level.levelgen.feature.stateproviders.BlockStateProvider; + + +public class OilDepositFeature extends Feature { + public OilDepositFeature(Codec p_65786_) { + super(p_65786_); + } + + @Override + public boolean place(FeaturePlaceContext context) { + + BlockPos startingPos = context.origin(); + WorldGenLevel level = context.level(); + BlockPos pos = startingPos; + RandomSource randomsource = context.random(); + + + level.setBlock(startingPos, TFMGBlocks.OIL_DEPOSIT.getDefaultState(),2); + + + for(int i = 0; i < randomsource.nextInt(25);i++){ + pos = pos.above(); + + level.setBlock(pos, TFMGFluids.CRUDE_OIL.get().getSource().defaultFluidState().createLegacyBlock(), 2); + + + Direction direction1 = Direction.getRandom(randomsource); + if(direction1.getAxis().isHorizontal()) + level.setBlock(pos.relative(direction1),TFMGFluids.CRUDE_OIL.get().getSource().defaultFluidState().createLegacyBlock(), 2); + + if(i<4) { + Direction direction2 = Direction.getRandom(randomsource); + if (direction2.getAxis().isHorizontal()) + level.setBlock(pos.relative(direction2), TFMGBlocks.FOSSILSTONE.getDefaultState(), 2); + } + + } + + + + + + return true; + } +} diff --git a/src/main/java/com/drmangotea/createindustry/worldgen/oil_deposit/OilWellFeature.java b/src/main/java/com/drmangotea/createindustry/worldgen/oil_deposit/OilWellFeature.java new file mode 100644 index 00000000..27e9acdf --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/worldgen/oil_deposit/OilWellFeature.java @@ -0,0 +1,108 @@ +package com.drmangotea.createindustry.worldgen.oil_deposit; + +import com.drmangotea.createindustry.registry.TFMGBlocks; +import com.drmangotea.createindustry.registry.TFMGFluids; +import com.mojang.serialization.Codec; +import com.simibubi.create.foundation.utility.Iterate; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.util.RandomSource; +import net.minecraft.world.level.WorldGenLevel; +import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.level.chunk.ChunkGenerator; +import net.minecraft.world.level.levelgen.Heightmap; +import net.minecraft.world.level.levelgen.feature.Feature; +import net.minecraft.world.level.levelgen.feature.FeaturePlaceContext; +import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; +import net.minecraft.world.level.material.Fluids; +import net.minecraft.world.phys.AABB; +import net.minecraftforge.common.Tags; + +public class OilWellFeature extends Feature { + public OilWellFeature(Codec pCodec) { + super(pCodec); + } + + @Override + public boolean place(FeaturePlaceContext context) { + + BlockPos startingPos = context.origin(); + WorldGenLevel level = context.level(); + BlockPos pos = startingPos; + RandomSource randomsource = context.random(); + + ChunkGenerator chunkGenerator = context.chunkGenerator(); + + int height = level.getHeight(Heightmap.Types.WORLD_SURFACE_WG,pos.getX(),pos.getZ())+70+randomsource.nextInt(12); + + + + + + for(int i = 0; i < height;i++){ + + if(i==0) { + level.setBlock(startingPos, TFMGBlocks.OIL_DEPOSIT.getDefaultState(), 2); + pos = pos.above(); + continue; + } + + + +// if(randomsource.nextInt(10)==7) { + + + + for(Direction direction : Iterate.directions){ + if(randomsource.nextInt(3)==1) + if(direction.getAxis().isHorizontal()&&level.getBlockState(pos.relative(direction)).is(Blocks.STONE)){ + level.setBlock(pos.relative(direction), TFMGBlocks.FOSSILSTONE.getDefaultState(), 2); + } + //if(iY<2g0*_qp4y*ji$DQ${h?3d)#E9U86j`*0Gm@)U$oXmM8ZxWVo z{oKU(Md`&0*BwveT0HdMWUUk5l^?py@`T%M?Z>vhlK(SLvG@n8z0pXX_wIej%k0OW zCN9r%6t25{uHf3_ttU;Z<{188DVlLCQ>$p!(XV^<{|bM1t@HjlGr0pMjX7tRr*C?i z`DlH%+47U;9@}pWc=qq|lhW+Wpc!S~LNc4~$}-$o!2D)2dH5Myg^K$^Ys6wU|7d&T?CrL>=;Y@j z$^3tN*0vq-*W^-Ly?%?5(7Ce>=Yk(ib9E_uU3#?io`K+{FN#VB^B*7fFjzkGSNQ7P z>g6B4i_YKJyL)|VW%%d0Q!k$IS+a5_N2yJ+!}%Rb=UnsOPf0r?!=MzaduH~&1C2sU z<8qd&mu)Oh4AXlNlfUlUybWQl359mX$Lm~!_YGd!IsCe|J1IKy{jqwru%Eg7k7~E^M?HAB`*WW4$yH4=&$EYI7FH7#-)XtQ Pe)9e%``}-D#2FX>m`1W> literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/block/accumulator.png b/src/main/resources/assets/createindustry/textures/block/accumulator.png new file mode 100644 index 0000000000000000000000000000000000000000..2de280c841f74ea6099756db1907e672083f419a GIT binary patch literal 422 zcmV;X0a^ZuP)lF$&$~QUNc#&MA~1|MWAJv4~_ze9UM( znkS8f?8ZH9y2JO+?~&?<0g|CEVxacJsO?^;45agsRN9{asYn33)I8f5@T&F=w>S^$0zY5}U0C}ERb%5Mt~xBv|ErZIRa zfSzFP!8#O{@ayQtYoJTLDwK;Zt<Eak7aXC35B*@IjEKJ1FAVQ{9Wa<=_Sc#S?zRk|gy&{Q0T0DIzh6`?q3h=BD g<>Am)=n{2h*pwhr-?H@5NuU`Fp00i_>zopr09k%FCIA2c literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/block/accumulator_side_connected.png b/src/main/resources/assets/createindustry/textures/block/accumulator_side_connected.png new file mode 100644 index 0000000000000000000000000000000000000000..c204e53e6137a45aed82ef935c334ae7515e3607 GIT binary patch literal 230 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0J3?w7mbKU|e#^NA%Cx&(BWL^R}Ea{HEjtmSN z`?>!lvI6-+0X`wFM#lazd5tsYEWUmJzJqJx|NsAwt`9W=%5oNXL>4nJ@ErtU#vK#0 zLFUDJx;Tb-98XRN2{JP>3lll$Djas;k;al0OH^Job*Bjgnep=Rng$(lJ-jC1psTTk zljM#Ufvk(U+(dh{ByMpnI69X}Z`KB;jEUWo)nY`PWtE${<<{!EU1n|y6Jcby8WY+u UY3Ga!K#LeWUHx3vIVCg!05r@>5dZ)H literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/block/aluminum_cable_hub.png b/src/main/resources/assets/createindustry/textures/block/aluminum_cable_hub.png new file mode 100644 index 0000000000000000000000000000000000000000..944e31bd3bc83e4038fc310dbcc06ee9b62113c1 GIT binary patch literal 277 zcmV+w0qXvVP)vF5^)U-`6iipnMro5 z$-1`H;rN%0#yhJJkG8ef=WPsh$r!|;FV~xKcmS}7GsJ*I00YOriAf@J7@{l4xWux!)(w@ye7+Oih6agw5P2ys+wdrggv?}}Bg71+el7R@| z?;{JKJn38udXXZ)zXr3nG^PhgzXJuN&zSB1DZ$ktaAai!wsaS#M4q;6l&gbd_20Y zl-BLY8L)g;13Id%1~?ctr#hvyt{O~4^Gfb0n;CAP_99Y!GrHkfsQwf<*G3wsfevqt z32@INcw#|^D^jmb4b-3!Oj*<#fG)hy@Cn=oc8=$+6HpP3rTH5u1)C3>fa5rh<6Olb X$gF*0_gF=f00000NkvXXu0mjf*cEtd literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/block/aluminum_frame_2.png b/src/main/resources/assets/createindustry/textures/block/aluminum_frame_2.png new file mode 100644 index 0000000000000000000000000000000000000000..4866a949db4b8cb38dd12cf9a1b49be8a109e4ce GIT binary patch literal 289 zcmV++0p9+JP)O^h>?AeK zs4&Kpsg1>QRoZT6<8ZpzP)trd=@K6iulHQ~07rZ?z>Q#kJeSS3EvW}^;G#im2Dr}V z>vGH4l2IhUANS%G~10G|+7U*8~oeIsRMbw@`xpqS3RuMdF~Ye|q_@P8m+_`Qt}WDsY8M`SSr z1K%MKW)#)%Y5)pmdAc};XauMBH}W+&a5y>s`Jc~sW!ttj5__$`@G0B~|CqpQ@iBh; zE7n2*!3|qJ{gAa^NS%G~10G|+7U*8~oeIrLlH)UmYpx6H2?+GJzX3_G=h^88X4H!B$(Y6a~l{sOBRSO;ZB%w(B+0$)DGt9`H>L} Y-)x!Je~;Ri2Gqjf>FVdQ&MBb@0A$rLIsgCw literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/block/bars/lead_bars.png b/src/main/resources/assets/createindustry/textures/block/bars/lead_bars.png new file mode 100644 index 0000000000000000000000000000000000000000..e9591b724b8bbfcc3d1a798c405d0ccb57e40165 GIT binary patch literal 252 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJV{wqX6T`Z5GB1G~mUKs7M+SzC z{oH>NS%G~10G|-onBp?8$V6)wzuHNYfMOrLC(i>?tR+Ey!T*7P;rBK^kU^XU9+AZi z419+`m{C;2s{tsO>gnPbq7j_hAIQh5$iviF_21Zj*>3r~d5T?=Z*}$c?3(j+)9S$Q zJK_wBgjm-byTx)nW6R#Mm+1xXc{BL~m)Y0sca+|NS%G~10G|-onBp?8$i&)7ldN6*fMU*1W`PW0EeY}q{tpBUzqj#$4B{;Ch%9Dc z;5!7ujG`J|4M0I-PZ!4!jo{>jMg}%F31%(Q5FHe}a{1lfm0%~XQboFyt=akR{0FWIttpET3 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/block/bars/nickel_bars.png b/src/main/resources/assets/createindustry/textures/block/bars/nickel_bars.png new file mode 100644 index 0000000000000000000000000000000000000000..bc6145f96e3aca213b92b9313248846a39fa3cdf GIT binary patch literal 245 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJV{wqX6T`Z5GB1G~mUKs7M+SzC z{oH>NS%G~10G|-oD;IYi-oJFs^6rO^E&;{#%r~qDQmiFGe!>5NfZ_KxK9E721s;*b z3=DjSK$uZf!>a)(80YEY7@`qe>K7<>K!Jnl>%VllMcIGP#IOv^GT4>jpu)kI zD8th_@8C|c8KNh)R!mDj60t_c$+M7SPfPc{{awxzqL#?lc2#%JO84FpruNFXcL2{tDnm{r-UW|4oFe0 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/block/bars/nickel_bars_edge.png b/src/main/resources/assets/createindustry/textures/block/bars/nickel_bars_edge.png new file mode 100644 index 0000000000000000000000000000000000000000..544dd2e6d4ccff3327ed2808f710737406431827 GIT binary patch literal 198 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJV{wqX6T`Z5GB1G~mUKs7M+SzC z{oH>NS%G~10G|-o!~2)6S>Ao+;;x5}E&;_vgRDh>6l+P4U+{k*VEDa_4`dK$fk$L9 z0|Vb75M~tB@M-`G>U+94hG+yQCp0p!xk)g)E#@{56l-|hdg)9H>x>0FLR$pH9Lgoy h7}_o`+?Sfj$nZIddENK;h}S@^44$rjF6*2UngFX^IfnoM literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/block/brass_cable_hub.png b/src/main/resources/assets/createindustry/textures/block/brass_cable_hub.png new file mode 100644 index 0000000000000000000000000000000000000000..15229fabe450f15cecb1ec8052f2cce072bd11d1 GIT binary patch literal 302 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFeru+6L{~~w8a|@!rpU(OJy66AT{lD+jKG~jpqd4m2;@rr% z_<-PuNEH<>mQx>q8aWF*B8wRq_zr_Gl1nDh5wiKbLh*2~7Yo_-&a0 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/block/brass_frame.png b/src/main/resources/assets/createindustry/textures/block/brass_frame.png new file mode 100644 index 0000000000000000000000000000000000000000..a0503d3475733e31bd125a988c6ce4f23f738313 GIT binary patch literal 271 zcmV+q0r38bP)*Knsuji?0_=r*b2;k1rX`W;RkZ=l;#f$?$UHqi) zK_s9I#;z%B4h{kZVeYkh<`8`vF=&G>fFR07FEPEu0>mmaAVXSW+9bf2?d5n(7vN%* z(1HvA-^46t*?CU{88%TzBC*I`bL)tQW7I`b<}B_(u&=A!6RSCd{(q0jjV!-B=Qpc? V4rhy~(4hbT002ovPDHLkV1mh%Z@&Nl literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/block/brass_truss.png b/src/main/resources/assets/createindustry/textures/block/brass_truss.png new file mode 100644 index 0000000000000000000000000000000000000000..a835e14b8a8a8fafc4682d3836f82df3345facb6 GIT binary patch literal 258 zcmV+d0sa1oP)R0so7ElAuO-f99ebB@B5E52?$U+ zdFL{?Nvf4CfI|Aq>ADkUm-zHN1oV(7EG+_j+kPDP%mO^j5h6$fV2FK~uPuVqA^HQ1 zK5Z#_#dzz7MCU%d1SvcBVlIpvLeu7FS_&igmU%F!kudVi7onilI3H{SKL7v#07*qo IM6N<$f)NgDVE_OC literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/block/cable_connector.png b/src/main/resources/assets/createindustry/textures/block/cable_connector.png new file mode 100644 index 0000000000000000000000000000000000000000..ed1361db7df1a20fafa11a78b34ad284d972cfbd GIT binary patch literal 307 zcmV-30nGl1P)6{?xtI+%hqIg7*^qtY|hXhIA8NMG7 zBz+b96+pF3b`>-;P%DiW(D)U!{2Z%EMA^7U>m)Y98lH@^1}9$(1Db`MPZ2WC8k{^G z_(oX6lX2ESGMt5x(zpNs002ovPDHLk FV1n-{exU#W literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/block/cable_tube.png b/src/main/resources/assets/createindustry/textures/block/cable_tube.png new file mode 100644 index 0000000000000000000000000000000000000000..17cba08336050c31e196e2df3ca8b3cfcc4122a3 GIT binary patch literal 297 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM3?#3wJbMaAF%}28J29*~C-V}>VM%xNb!1@J z*w6hZkrl|-3h)VWl@J$EQIu&Np7ZiuA}I8Lt-CBy4|? z7N>d&c1p&o%W@Vt=T1>#%v%xrRrk(@)lSM%sct*|Xietc&;D@bv3)oC4(!lvI6F=@x7{d? zdbv0^AUHxv;)p0vBWHm}WHAE+Hy;QyI_!H0G?n3yr;B5V#`)v~5g{Y9upp6!i!K~H z+NMsQzIr3yk6!Oj-9qaPqU{vjB5OQ)@$jmWg0*i$M6E6qj zLB4f&cZ-)Otb7r1@W6#um4rJRAHI=&$CsSa7@dES<=t9W;f9RHO6fceCx)E03d}k( x5BQo}neV*ZP!JHrl*xMP;GsrNodru67}ix5cz^kx_6_J822WQ%mvv4FO#m7Pdno__ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/block/capacitor_side.png b/src/main/resources/assets/createindustry/textures/block/capacitor_side.png new file mode 100644 index 0000000000000000000000000000000000000000..533b2834f8d4b53019213c91e12adeb9dbb29bf7 GIT binary patch literal 229 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPF^dn79~PO(bR<=sC&7uw;q!w@6J- Q9iZ6^p00i_>zopr03et}1^@s6 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/block/capacitor_side_connected.png b/src/main/resources/assets/createindustry/textures/block/capacitor_side_connected.png new file mode 100644 index 0000000000000000000000000000000000000000..04e8ce834aa87beebbdb0f43d1852d780ec11d8a GIT binary patch literal 269 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0J3?w7mbKU|e#^NA%Cx&(BWL^R}Ea{HEjtmSN z`?>!lvI6;X0X`wFwkC;gj+Fs{bE9)lZAuZmGfnvAM$vZ<0t{50lUr`y6N|G1s^l#2 zh%9Dc;5!7ujG`J|4M4#PPZ!4!kK@S+B0@%HVL>7XT!S4Ovm+`iE2FYF^kzAFMBcn{ z`u#I(qhrNdcf7#z)^y0$BT=zopr0AJx*hX4Qo literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/block/cast_iron_frame_2.png b/src/main/resources/assets/createindustry/textures/block/cast_iron_frame_2.png new file mode 100644 index 0000000000000000000000000000000000000000..d4fe53331115b46b1f070d8c434b500b994768ee GIT binary patch literal 271 zcmV+q0r38bP)G3gbjXnVpQ0{L@QqMqQ-Km}=|9=BU8dVq@p-Mb*`Z3=+lU zDz7lf{z%LqnV4KO%oVyUfFQmne$NsMfc6IvA(+?gf*KI62opy{2R526xAnhWJDo2YD189$e5R8vV?vGVHGJwc_HTXZz`3s|$ VSFX5hw1xlx002ovPDHLkV1h!QZ9M=0 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/block/cast_iron_truss.png b/src/main/resources/assets/createindustry/textures/block/cast_iron_truss.png new file mode 100644 index 0000000000000000000000000000000000000000..5093499079146217b355adb3ea75c42377a911b9 GIT binary patch literal 245 zcmV#3lYWU$f|#BFCiQJR7XbA(KC641mN=4;C&rHOF?ICfjf-VW08A+_M1 v#CIMiEto_J4?X=%J($E=?+1+Px$R!KxbR5*=|lCe(0P#A^3-dNDcg-DtZB1t0;z$^Fw>^?wWz{Q0b69;CuZf*?j zZftC7V75sY4IzP~wXwCvIy7xAv>@}J@8taF98Jn*0-);}C)Em-t9#Rl*X`L|eILhESPH5dcu$;~Th`k?vpYN#Gs(eM?#Box9qsb7F!JWaF z<#dkhngDxY|6`Rq)6U!NB(p7hCd=uZXfj0CwbV%otcnZm@)qB5(OYLZoc)|Rix+ET z*CY(Qf-?~YUaIW4Ih-9kgE9Ur6)(FRmW=@NpLAU-z_MrVgnh?FsA;RVGg!@}EKp6# zW>RMR&_Kn1aKYJD8)8FwR&1jn-ZeL>6zV+HwD$$7R;gWFKPJ0Ia!4j(A8c4Q?@uoq zZ>eyjKSJz-eaA(%o2*{n3V|AyO&ECT61U+-f3$P^+xI^XZ?G5=2{3*D0000Px$Oi4sRR5*=|lRrztP!vZ`9(~5pq=gQaQnHnPfDBH86gv0`GPxALs?fzw9W0V9 zQymKCk1;+&95mt8q_OkmTz>c5dkx1Kl>ky2Smp(H^LGyWF96b5v5ss8wh2I#w@Gkk7C%LbYfO;k=jRx$_&698#WC-219=n2dCv8Fv#~GDvvCkDM{(~FI z{%k`Wb^aBm!;R)M>u8liKTq9umr#9`#>4HfJar`JI1yd2?-e{fz8#IF!^>%o=z_x_ wV|;bV^R_9}_lloyY&*~8G$#zy$z*!{8+Cc5BV8mDF8}}l07*qoM6N<$f*!%Gn*aa+ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/block/caution_block/cyan.png b/src/main/resources/assets/createindustry/textures/block/caution_block/cyan.png new file mode 100644 index 0000000000000000000000000000000000000000..74cafad79aad39b427a0efa780d3861ac74bb519 GIT binary patch literal 409 zcmV;K0cQS*P)Px$Q%OWYR5*=|lCf&SP!xv0Tueksv=uUli-W7r)1ly0a1GrYx|J?@4sqz%H|W?w zgm&zZ#VOd*5@O8_Nr!U7HHoS7;XC~2JHO#LgB-v#4LWU$?B^5rvvLu4XCwg|9{UJfhyaH#-6+*$T@3Y&i>AGWp zMmYKSERq?c;V@UR`;#fV&6;ev!ZZzlT3BB$ey*>G!vL!@DqwZ9N|x-mblov&BrC~8 z8cABVNgM_RtcI@d^Y#9U)fv^!ZEt}9iknQ+sKEWn^duaI0YbN}$5ycJq)w>eID@<{ z_PIjEe{eZj`5Qvttc2-sd3o0zAH7oO_0(-Q3DsX|4DbB>R7uWpBAQ^^TM)iHADyMc z)_jI&g5xm28e9@>-zq|FZ$TQ#zb2MpYd$;K{qp=5D;=fw45zz|00000NkvXXu0mjf D11-B1 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/block/caution_block/gray.png b/src/main/resources/assets/createindustry/textures/block/caution_block/gray.png new file mode 100644 index 0000000000000000000000000000000000000000..d34e83209bff9b5eadd66083e2cbbe7e031f0b85 GIT binary patch literal 373 zcmV-*0gC>KP)Px$FG)l}R5*==lCf@sKoA9oQy_{IBA**%f80k)a?( zbm$Bi*Q;5*oqbW7ZU=xkj(B-aIOaLpwg89-O{2WMJ_GRmbLH#vL{-;VYY`EiJlyvK zMRCG82SC?#Bm8^q==)&?H;rOET$TmSIjpq+t8lnHdf)8^A3Mu3oO4_*LL5f`i}3ke zjmyn3&#CGfV1)h6KAE;H)>>5c2JZU-<2S472>W4K7KjLTvss)U4j&kA+sB^5S(Z`N z^&+gQm{3R<+ry!gDQvAJO4IGI6#Jgg5Ec>4BX}k>fSX4D9r#y?$m|<4p_3k%u%5tZ z`<~G0E6uc?OR?94M*IDK2ydFcs_QzEB)Lfz3N>r6s*)thVzRLZYw)Ax)>{4m5@oFn TmBi3%00000NkvXXu0mjf#@?i? literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/block/caution_block/green.png b/src/main/resources/assets/createindustry/textures/block/caution_block/green.png new file mode 100644 index 0000000000000000000000000000000000000000..fefa00a9444c194099697c393754beed1b372296 GIT binary patch literal 420 zcmV;V0bBlwP)Px$UP(kjR5*=|lCf&SP#8wf4W^P}B3KaAse&5X!KG8TK7m^|-$m$LoC_Uw>tbKP z7Z98(q=8Pw!7WW`&>OfN7uf=WU%N6Rk!=>Db-&fYow>94Smw0OZ2y#|`;VCh|SZdNYA_XPr!L)>xe$ad246 zh=Y())h6=21lGs?Y{>h^471+My*pDE14ufVrZ|AR?Li?N`5s2vb~?6((@ye)3fr!! zyx6A-HU5LM$+Ev8T8)O%3zM65p|G^jV7^Fd8|itb;bTJ6UnyFzx2k9)r#KO{#|u>i zJ5!fnzMy({^Cy{xt+9h~432z{^Xq-*tWam_5(nXaiCNehJB8cN-hTnPx$LrFwIR5*>DlCf&SP!xv0T)alXIEcMqI+cQRp2oHB;8XNbq;#qjX$Q$F1qmIy zb;*#SpwXuB+NOg0qvFzz;czM zraoy9AzcR@#?*3H>x_%pJ!?M#;5$lK-QLh{*(B)(t+OL|F&rRr*qx7A`w6zE04m|H zAlfIhE_=N!k6rI?S^Ei#;Q%SE-5MpZIo!H>oMk$Uu{}jA?VxKEi`~?@26|W)8$+<8S zE)KUnb#O{y*3-0ICG?;N*DtTxsgj)IL{!0Q>a)E2I9SVsyQ2xB3QmKFhNt*^em@eb nran51cTFt9-O=P^_lxhpt1q%vEYW8e00000NkvXXu0mjf`NpuK literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/block/caution_block/light_gray.png b/src/main/resources/assets/createindustry/textures/block/caution_block/light_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..8c0d39aee674ed33fbc1d51c0230faf8d43722e7 GIT binary patch literal 382 zcmV-^0fGLBP)Px$I7vi7R5*>LlEG@iKomt!24fJ71ED`4{SFt&%8h72{AM@VxXVHV)yYZ%BZ&Ln8zIU$|hEWUP`yQiUND{|f>ly&16j^p;Itc){R(ICR1*f7wN{Ld6 zfq|Q*B?w>SG`vcChBf`Mj&5A>wBc%lR6Fi*+h*2NvAutu?~_wr$&mZE*ujDe=NEYWr-vuo1Umr4-^f*mY*Z zS$0I2p^4H>!xeX<6m~s<-X7S_+$e=xl0Mtd9x80uElHBhc|V^!XSoj@xZUoH>e*cU c2bNOu1vG54tF7iv9{>OV07*qoM6N<$f=}P56#xJL literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/block/caution_block/lime.png b/src/main/resources/assets/createindustry/textures/block/caution_block/lime.png new file mode 100644 index 0000000000000000000000000000000000000000..1fc70e5a0e6378c63c45659173aa7ee2d2ba6768 GIT binary patch literal 407 zcmV;I0cie-P)Px$QAtEWR5*=|ld)>TP!xv$R1&FpTDT785~x##K7os42A5{(CVc@R5741c;0qL- z`w9hz4i2T|b`tsmQ79@nNkLMP(;+6_rY2_o&wtN3jwN zSS&|?SI0%Y3IJGtM`*8lP?I6-W;fP}1Pjq%BEfwgFe!^kSzH@em`JcAWvY8oz@#j8 zLqDz~!N{7Eq9U{YI2XccC1|x}+*SXIFc0)f`H%M8W0@(xGL_gSW z8F%Y@yi8xwl2=fZ;Xl2->H#`1J$BMrAL|&Cv)yKg%FSiED!sGU>fq_)0r2WDP2*4J zWR=L9xhzneGH3PdHVj8fPA+UZpXCD6fxf*z9>&&V>8mOW6h%i;h6#$yUKDU`T**!5 zhJJjBr#?=RZjiD#3(WrPV6hy*Zg%k%KBvHr>Ay3prqz!rmM{PS002ovPDHLkV1gt6 Bte^k@ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/block/caution_block/magenta.png b/src/main/resources/assets/createindustry/textures/block/caution_block/magenta.png new file mode 100644 index 0000000000000000000000000000000000000000..5a4c9fefc7b8a51135954a07bd5e8bdb73597c00 GIT binary patch literal 403 zcmV;E0c`$>P)Px$O-V#SR5*>Dk}+$-P!vYbdua@cQFN9-rWEI002ovPDHLkV1iSGumk`A literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/block/caution_block/orange.png b/src/main/resources/assets/createindustry/textures/block/caution_block/orange.png new file mode 100644 index 0000000000000000000000000000000000000000..fde6622cdbb5be1bc527d818139ac64831a8ca1b GIT binary patch literal 419 zcmV;U0bKrxP)Px$T}ebiR5*=|lf6pAP#A`voMTc8slif&A_^jfPThMI-hhK+Z@~-5=HwN0?O2yi z?L}lNsDpGUghN9_koFkj5EJv$ROiF<<@w(4jnQhgV*t}MXf`a~?oISc0uTn0-ekjx z-2mYIV@u%LD9^$$f(>0yDGn8l1n`|&mqZZB&7caNRD9^&Yh)`p{uybmrSCY

L1mB45uud??WTDUGkk%eby2|H(ug zgk78E!@5wiJnWAg#35LD7S}ykE@U-O*G~S%q@KmV{E>t5WUX2L{TpOuo`ZoJ6ZZfB N002ovPDHLkV1h}tzCHi| literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/block/caution_block/pink.png b/src/main/resources/assets/createindustry/textures/block/caution_block/pink.png new file mode 100644 index 0000000000000000000000000000000000000000..cf4ab559cfb40d8575c4a4d8c797439dce605993 GIT binary patch literal 415 zcmV;Q0bu@#P)Px$SxH1eR5*>D(!EZ?P#DJXe@_d9&=MppXb6*ogAL`e;R0~z*2%#Q zR|YSDfyAU~LYJd7e57C{bs%kOOVK#L`JMBg=RAsGG$VjgNugRP^LA&kS*-z(zDm#P zQ`aj1EY~}vY2&y7t;Qbdt7tI}!-)5XXJ(T*piQN^6gOub6-M>UdCHYGx;uMyq zjq~bJGxVd_8H^Aou^Uj=zwo?mE>LOONMAiPF^iqSsIdFl`8WLmvBN)3K6wBD002ov JPDHLkV1o1qyx;%; literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/block/caution_block/purple.png b/src/main/resources/assets/createindustry/textures/block/caution_block/purple.png new file mode 100644 index 0000000000000000000000000000000000000000..1410a042ca2219c7bcc97a2a97e0b4385c0960d6 GIT binary patch literal 420 zcmV;V0bBlwP)Px$UP(kjR5*=|lfP=hP!xy1+}k7wCZcFT92`m!q@!Ekp)b)l5!x4Ua&YSt1f2T< z89O+%Ll*z#hLTb!8bUfq!qpht`S9KQo!>dfaGX{KV44Os+u}tm31k95C}YNIfLpf# z`1;=Axe>ml=%fuo8FQ7xNs{q?yJWUi0BlmlRNdp&ZGLupk|Zm^V>LkJa4?LRZ55+^ z8-VF&HT=d$VJ2#}h37_itAxkvHom18s{y8IRKoh>;>ir~Ek!>ynQhfk&$(G36Grz*4SfTAZ|JBJ^-)v#|V#3ogRmad({d0SPP7>?7* z&S{^*`QxX7iof7fv(sr9y>2(lH!P6Vf$4$H<)Ua?=Px$Pf0{UR5*=|k}*%hKo~&Z9iF6wGO!hbTN4-<9O}Y^@i(~eJDJ^COzc3D4laTd z32C4N4|@)JO`!#uFYn9y-hIM#+Xg@>fm6TbV<6Fs8URsh7_GOonsoq@&7LH12xCdV zA&64LjfJ%~te)=(r%S-FI~;i0>}fUY?Dk)1ZA$QHy+v9$nfQd$B||?0xCp-{IyVzt z&ofqAjXlEYlF@pLQUah7E)JLPEkzhhRQEfF?atOrFKP_^j3_lFGa03ZenSw(GKX{R ziI0By{2gBP9ymxK-$^M^hR5DnIE*E-So=uZ!i6SPL51tKO{MmgLFIq&soCjoh_2@u zdtrJ}J0GkNbT-fOwPo=MsWVB00000NkvXXu0mjfX9lsJ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/block/caution_block/white.png b/src/main/resources/assets/createindustry/textures/block/caution_block/white.png new file mode 100644 index 0000000000000000000000000000000000000000..a57b1d790fa522347c5bb4173876b8b8607f39bc GIT binary patch literal 389 zcmV;00eb$4P)Px$KS@MER5*>D(y?lTKpe;MuSbmpV!+^1I!lJULf*zDuaKqhlf|iI2`909-B?_WNg+3y+WMCw1N2;5go)T3nVn#u%a~0+_^QS$3PL zxi>@Wl%gouZns!#iQ^rv>x|<5;m+xFYD9!6iaOlCxh!*vq96>zyK^NX1VQjGtaXY4 zx;ORLZt-Tb8O7FGR6lLt1{-50GjV)>)!bWqh}*-5fvVr|aI@iWI8Tp{P1~@lszw9r z2byJB_iWX#XCF@m`lAQu^SK!-$zL*2Q&{ViBuNOv@Gef018NFeYgwPx$Qb|NXR5*=|l0j<1Koo|*nQ0;cqaacdL0XFk=tfV_Tl55;!&R?Qx8lC8y38VU zD}@#pr4kz#8H7@UOc#=n#zeb*d~g2w-Y;CYVE`;k;8biro+a^80T2a>-YBA0tpK36 zKWN_}^la*_JyD>zNZ>d&tTtW3$r^z0bI)LWfWLos#IZSod!q=Mz@hG=Cu^F+9RP#z zwiJGQAx$QoijDRi#C%2V{*utM>5U>ROO(RdeL2*9#C(NywJ)5@ zC{WZ}#lv&3_8laU{wW(ffz4gJ6b?Nbd9b}rPnC!DWPQ?!aNUL}ik*j(<$0m<9Gp*< zzlP|v+a_sPyi}#avO*U#m3~`h>zRd53H{Rp^V%_GCHapNc?#CP!~4S_b`iXpR*|RR z(6hO@g~d!A3Dv$s6ez^k6sxJbs&e{CJyl64U86G*~HB2{c8CMEy5dAYl zU`~^Hv$p`RdPTaIXHaT2bFS-#{`n8w_1jgv&wb#(v4vaUi>lJKwH*D$joZqIG4n9X0gnEn1fZ(pN0G3Eb#@OS^j;wYXA3iLNCyf44$rj JF6*2UngCPFPTc?i literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/block/cinderblock_top.png b/src/main/resources/assets/createindustry/textures/block/cinderblock_top.png new file mode 100644 index 0000000000000000000000000000000000000000..3a45c8be1ed8946d58ffd124cfc8bd4774b50919 GIT binary patch literal 199 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|eV#6kAr*0RCtc({ARyxEd+~o> zBIE25j{DmTS{Zl6`0ovH2~f}coL7~n6>!c{p40h=W0=j8YQ`E!}WBV(C0fx y{#l;k-nUO`)1f?*BGbBfyPfwE+vYHTVy=<4yXLv>&}5*?7(8A5T-G@yGywpV`%Osz literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/block/cinderflourblock.png b/src/main/resources/assets/createindustry/textures/block/cinderflourblock.png new file mode 100644 index 0000000000000000000000000000000000000000..35000d987d8f2ed8048e735d54d6dffa9b5b2158 GIT binary patch literal 215 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|^E_P~Ln`8?1|H;XP~b`7veP+m zoA=4V+o~}KWN#cwv@Ke8#Y}O=ob>8~DVHvIF}{mZe=yJZx$@Em{)z1uCkovy$dz6q z`i|{S0H0+ym-9olwb6&?*t6vur}H0vFL&d&++&%?Q*V`Xcx=pZvF*Lr%(hxKi=(Ht zdA|lv)J0#u=1Oa=S*csUA2=f2bFM<-iB0l^*L&G^&NtwVQ{P`4ah& zw%4RYR=z@9nW^kc!NOeCjwik>%rQx9XTdTO0K{%PNXsk-Ns@Lz8pMu6Hq3?TY_VK#i2hKDD4GDVGbsnI zi_sWjF$xTrDOULeMDp)8P>B;pq#4J#VVGJ+~VQyjZGB?@&)o-3r^}QMeCL@T< zF17^|9b60MGe|n<1qiq@Unq7EYhgLX$jjE{B*UD-uv37yAoYf+LrqgG^GQFaYYt7z rJvqWADf2Cw(z3*{=#jE%B{Rci?-aY;?3<gTe~DWM4fL*Y_L literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/block/copper_cable_hub.png b/src/main/resources/assets/createindustry/textures/block/copper_cable_hub.png new file mode 100644 index 0000000000000000000000000000000000000000..cfb93ba845ed5c94df6a944a9b22f003a5aaac59 GIT binary patch literal 288 zcmV+*0pI?KP)XB*^}K%6>~)9OD@VBzpo2aYUCK!SQI$vs0O>%j zQkBX%pa}%vLBIsyoI9<_0|B7wqH7dC&jC#(0$4HD4Rd7x=3!>eR-0{@&X#Emzb^u) z$hVRONr09o5rD&`7JUT8xrzXvx1AtiVkdy#M3BD&j3qGxxG@>PX8s9id*E$%DFbNZ m&zMU86akCD@QdD8%6$PBz-G;-6l4(q0000<~Q#$#|Lkp$Mb0DF)#+jG+t-Dk;BfoM{hx-#DmhtxpP0;3vw2^t&s41aJGB; zf63})KEM9I{+`d~$oTJnK;fDPudnC#D3qRP=$$&X(NI(Qv%RwN<9a*CI+5^>uC4~r z2TcC+ZPS1J;FDle(Esz}BeRx|)Q|7q<=;gxFyGZ>L6N7 Xc=^hnCr5q(JgTe~DWM4f?1Fta literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/block/copper_coil_top.png b/src/main/resources/assets/createindustry/textures/block/copper_coil_top.png new file mode 100644 index 0000000000000000000000000000000000000000..c59a6cb6387112a902bcc4a9bd05afbf0dc398f8 GIT binary patch literal 246 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFSdlsB(9YOb}>ZmG$&h?B!;Mo^@T{L><~zW|q4j?|YEI!mQUCz;l_; jTp*A2PEdz2izGwZ6;;FBzZIQ8YZyFT{an^LB{Ts5?T${J literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/block/copper_frame.png b/src/main/resources/assets/createindustry/textures/block/copper_frame.png new file mode 100644 index 0000000000000000000000000000000000000000..5c911426d74f5d1723d0fe68b1bd50043abfc46b GIT binary patch literal 273 zcmV+s0q*{ZP)h$E4ftmh&iUwS#3 z1cGePSvYZ%Hb(^k5z*ScF2??bFya<<1Q4N{?vU%qzhIh$Kr0fF6+;0Z+wC}}E8t`- zL?TtdH?bx2wM8Oz6FEl6D7)wAi0d)ZfzBbF zcP@jQrCQknD5Rg9t~+6NiBHc%Knsb&QWxOc_T#u`72six5J4&cLu|u*Z4u-@M0z>% literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/block/copycat_cable_block.png b/src/main/resources/assets/createindustry/textures/block/copycat_cable_block.png new file mode 100644 index 0000000000000000000000000000000000000000..6701780f95ec6c818c6c7ac257e15293ec5690ec GIT binary patch literal 253 zcmVu9_#aQNkf|JI?JQtBR~nLN`C6MWZ~V)GXX@^MO2-mkwDkm6yWVe zGg=eiZSv47V<6WA0AU}QxeEY7+tIuT;Fa~?QJ(>HanUQw%t%c@Z($Vi-}&pHH?wlm z(rM*~(03?p%J<0H|mvdGGqSvMC2PX)G-3SRpc-0O_l_U>FsLV74&m|e+f1;s;Uy#$5UPeaPo?%i>%Pc zaZ%al_Xi<@JSGe^lOP^Z;f!`yIvyrlVq!h$#Cl#gV_0IY6%OQzHU~@+xKT7WI*#{? zye)^WO6DM0m!=?<=f~9?31~#v1dC3Bcj_&nf-2i%sw7xOQOsz@Q;l@w}y$LQO|zG({6P8a`(II_S=*|6=;w=FwZm({Jlu3+&z z$g9gXeeT;UaRI!mc4_%7y!@`=cG;C9Nf-8;l(wv!w@#KZX=na^!422WK6%0a#aYI+ Ue@)q9plcXBUHx3vIVCg!01}~VQUCw| literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/block/deepslate_nickel_ore.png b/src/main/resources/assets/createindustry/textures/block/deepslate_nickel_ore.png new file mode 100644 index 0000000000000000000000000000000000000000..a2f62c2f87a142b264df83c1700d2b3932497e48 GIT binary patch literal 316 zcmV-C0mJ@@P)dM1SJ7EL8Tlh-{jjoS({oT%buU-_hvlx z-dk%g! zVdsj|)XU$mC|rwDp5s8CCLd9JR+M_7-xk$mgoXtp1jZF-6_70quY;7=$9{xJi4Irk zrpzu8RUUg4ggvf^W>-l%!9h=T2?Iu=B1O8CqG6dsB(7q5oB%+a5xfkJ`+WNjHjO0{ zRms*)R)Nh9S0M=7hIGQvqG2_lu|NL|?r}hBSUG_x4Kj{s0|}2#sa^pDDmbUy`_Z2O O0000VM%xNb!1@J z*w6hZkrl|-3h)VW4G4~ijEgTQsZddrlMolt(Nr-*w%l`7D=X)k_xk2XdcauV-uUJh+x|!{zJ39{cA1s``}v;P>lKk8QS? zaGc-!&i(a177cOL$sXBT%d}6Vq)fba%g$I%BV?xb)Uz5#IPNr^O>p2gOO_GsDXlcP yR@^-C&V`9Ai_g3Kw~^2`Xj^!BuDfMk$DZ3)h1LhXId2Yh5re0zpUXO@geCy7pnNg_ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/block/diesel_engine_linkage.png b/src/main/resources/assets/createindustry/textures/block/diesel_engine_linkage.png new file mode 100644 index 0000000000000000000000000000000000000000..9fe1f8b21d2ad018a1884b2dac83cd37d706e2c5 GIT binary patch literal 646 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/block/electric_motor.png b/src/main/resources/assets/createindustry/textures/block/electric_motor.png new file mode 100644 index 0000000000000000000000000000000000000000..1508ae5fd309e6263ad1b321a5dd8e9bba0d0be9 GIT binary patch literal 849 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I3?%1nZ+ru!7>k44ofy`glX(f`u%tWsIx;Y9 z?C1WI$O_~a1^9%xM#jZAG`AI$RG3*<+t@n=1V{8vo?>cZVQ=T8t*y5q#4And*y-4JoyIx=Z z^2@gcr|oKc?8s0sq3Mk1ucTLh_Epx}u_#DI}(mDgCVqBj=a)?s-b9e{;n9 zv3Sirtg3DxW_BnqTa9V?!HD4N1s89*GHq($N)wau=wOnGyztv3LYPy-MJi4%$%23O z+3l^hQfpM3EROvanPhnA*#stz45>GbW|FhYuY8Y2jf3R3pq^soZ->GG;F}3q+ z-9%Q^$mZQ-{Qvw}=FEh33I`2-oN=oEY^y7L#@NH)%g!ctu@{X-w){d3t&P)I&&)r? zdEk&S%jV@pOfwFh=g|AhuNzY%_sGag@z-r*-x?b?g$g&vg&ub6KN)d_&J)j+Tw0x2 zW~{r|;lq=+KJWkcPEAndh~NxsYJf0~edG>Wf3xw?6dMO%vSRRb^>bP0l+XkKa*J+| literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/block/epic_party_light_bulb.png b/src/main/resources/assets/createindustry/textures/block/epic_party_light_bulb.png new file mode 100644 index 0000000000000000000000000000000000000000..460ab8022fd9482cd9edb2c8e2bf8024ac09d7df GIT binary patch literal 352 zcmV-m0iXVfP)%nWm!R&#RM0Em1N8L0738z7Hk&(L0Hg21i>G$*IJM?g1z|ywU~0Z7L)`+ zblG8;YOE&AE5a7u>dw7~^SA^2XB{3LOJA>7v^YPNLoxyYG_=O#_A%H*BpQ+t<}WL7 zCU8I9HJ0gq>h1Lk0e~}s{-Eb9lX%bD8x9&;x5^Ez9YFbTCL3Dgt|LM)J()?R&Y8gT zQ@+^^`h#9;udKd|<^1AOs#$iB;pY0vArJpze}8)gX9AoF6h+~8z?o>3ITP)IR;Bar zi_dR4BbnhM=m26e-T{dd1Dw;PLl6P*0`)hoN=f1*`1n~n5keaX06H+IOKA&u3A%vF yvM;JZpl3_Bw+xUXx90#5sJzOy4YKF<5q|;b=!6@{!sN;T0000P0)LJb$xgL&<-XLa*#3u$&Z&(CNwD+vaM^jRcnx> zInYDcqSxDMc8D=d{(OJJO-%}2l9o|9=pMDV-|mTpuBYShV{{y3(t8{vX`O2a+p?b6 zxBb<&mi2v*3 r!QSpu^5DNeI1iifkoo@~#>>MO78DuG{4Z(_00000NkvXXu0mjfihAf- literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/block/firebox_lit.png.mcmeta b/src/main/resources/assets/createindustry/textures/block/firebox_lit.png.mcmeta new file mode 100644 index 00000000..0645f48c --- /dev/null +++ b/src/main/resources/assets/createindustry/textures/block/firebox_lit.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 2 + } +} diff --git a/src/main/resources/assets/createindustry/textures/block/furnác.png b/src/main/resources/assets/createindustry/textures/block/furnác.png new file mode 100644 index 0000000000000000000000000000000000000000..bd21e266ddd7c9ed76a9c5e871d035bbd589b5c4 GIT binary patch literal 3731 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 DEYSP? literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/block/galvanic_cell.png b/src/main/resources/assets/createindustry/textures/block/galvanic_cell.png new file mode 100644 index 0000000000000000000000000000000000000000..220665db5815eaa0657b710982f69f25d17c58ef GIT binary patch literal 846 zcmV-U1F`&xP)_n3?QPoMJ8dBu<^zQe(d!K*b=llE|o!5H|pHIe) zR7z!GZq_mW_=!>Fk&xVO05n}^Kdmu7HtHCDIASE#1mUJI<71-^P6(IJCo>UpQq$@M zV0U$g5zK(9JQDLC7pQbs0FcqMbai(E;Hj3ZcTNKrKuxQc;SU-aJNDy5n|KPWqxBot1%x;yho2$0^>NU8~o3;!$}?bkYty82)a)3>+cM3)we+Qb+F z)+i1P4jF<=rH-dlIPl8>{BnRwcLjCzK>&)`R+gh=^eh=Y%goG-6^L+NDmPr)TXE{@ zgE>Uo-iiZI%oc125^f3uplm4C2gS&i3fG-`H}PHy;A;*6kXnzi^EE+qX^}`r12wH) z|WloVWsoFddmHdo7=M z414?fjZmXGIilq0Ju~arX6(oo71iNHzHq)$07*qoM6N<$f|quO6951J literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/block/generator.png b/src/main/resources/assets/createindustry/textures/block/generator.png new file mode 100644 index 0000000000000000000000000000000000000000..1ff9e6c062ea1e10b87d87726245a893c4a2bb97 GIT binary patch literal 545 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dyjKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCilQ1AIbUZS0)_f+Hg1;v1UVdM8hrJ#YSo5U*5C(}I$U8^uu-X4Wqk=k_=_ z7#o|KSy=x+)vBzl4Ah#GmQ-0+T~J!kKW$=DdrMSo6j1PXMY;r#k}L`G3;vG-Fff{M zZ3imiEbxddW?8eR=R$69&1IEGmG_fEV$t=WLXb?426k27AU-um-@`Z>kU z(CMp7&owjM6kwX7ppY_mwA;5nlP1M!BCvr;E~riwK@{iIqDB(z?&Xdk=4)5vxA z1(k$E%iIM^)35QcynE~Kr@C>)!&Q9>(F{CcOaduI42xp#mvb30H>Jhoi`QInkqUhO z?r_2T26M(8Ges467?%BI_~sS(#z|(7JjhUFE~6?Jk?0O$7)#`FlZS( MUHx3vIVCg!03F}pL;wH) literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/block/gildidier_blackstone.png b/src/main/resources/assets/createindustry/textures/block/gildidier_blackstone.png new file mode 100644 index 0000000000000000000000000000000000000000..92c1c3335328c64e2b960716345536ae91207531 GIT binary patch literal 51332 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/block/heavy_cable_hub.png b/src/main/resources/assets/createindustry/textures/block/heavy_cable_hub.png new file mode 100644 index 0000000000000000000000000000000000000000..7aa9321a0a02794938b3f05fa5b256d2af9bb2c9 GIT binary patch literal 309 zcmV-50m}Y~P)jwEbG zQm-{Cfd(xeyc$3%L>%{JGD~EYtrcmu$-x{B4O%=Jz`po3(h)%NHdvU;p~ZtYpg8Q0 zMH9M(bPH&KXz{Qfuony9R}n!x_X~MFwhG3q6$9{=24J)!WNZOwDg*d}Yl8nfzzSBj z1>-*gyo*?MjEHF(_ZTf8KgO~~DmIaYd^M7HD|=ri-|PGa1x^M4;Iu|&00000NkvXX Hu0mjf;&ymz literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/block/heavy_machinery_encased_cogwheel_side_horizontal.png b/src/main/resources/assets/createindustry/textures/block/heavy_machinery_encased_cogwheel_side_horizontal.png new file mode 100644 index 0000000000000000000000000000000000000000..b53331d947d7acdd1ed6b1bb4b80e3a332a06354 GIT binary patch literal 254 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJV{wqX6T`Z5GB1G~mUKs7M+SzC z{oH>NS%G}%0G|+7O*K7319M$%L!ZFV$fT6!o-Q+U2YV+kp#0sY4IqlMB*-uLKNK(o z`&S5o1PeSOiy0XB4uUY_j)~cCfr8u!xH-{9j*qJ)tKzUzV?h zQSgAAMUSDGBd^OL@e>myHY9OOOZ0izx=Ly49@g}eL0fk4{o~R->+>vbRsQZ{LhldT iEid1F(b&T8fw{yb<_Gsf)op=RFnGH9xvX2^d%Dcb9qgUFfbw^nHh?J3k|4j}|4_gX z>|Y@S5-jkDEM{QfI{?CrS=Tx_fr9OxE{-7<{#PeC@--;%uuR{!<=_9KdY2@$*z?u; z*k_*2l48hUy&1dq{*1i7G(OJ<+bpBpxlI>cbf~mo=5%S%iZ|lA>b}6)^v4;eLbl^h z?s|FqGz&D!!{ggxYFHXyo&bvGOMl&Ub+g^W{P}#2jq^oURDL+=|K53?rxDjqpM4rJ e&VPT~IrvRlETEdv%B2Z(5`(9!pUXO@geCwdV`fAE literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/block/ladder_cast_iron.png b/src/main/resources/assets/createindustry/textures/block/ladder_cast_iron.png new file mode 100644 index 0000000000000000000000000000000000000000..ad7bf1ac1047230e9aa6f67c89f8335a8b9f3d14 GIT binary patch literal 154 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`iJmTwAr*1S2@OoOwTu6sI`!&* zVoeOg@?9%d?D)TLpJRfj0Pmy2M-n7d*oB?1pJxzanW?9(%N@p%q?|lK!h>%aU#vZ| z592Nis{7Fi*Ar*1S2@1kLezE-x4-5O> zujgmd(be^P{rY?p2DTGkr<>;bZ4-B3JHW$u@x><><_Vuq7BLzzv@-9K@MI9-dy%BV z=#?BV!07Lo2JcNupoOQ=pX$p00i_>zopr E0MqR;0{{R3 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/block/ladder_lead.png b/src/main/resources/assets/createindustry/textures/block/ladder_lead.png new file mode 100644 index 0000000000000000000000000000000000000000..377d8e328074b9081886a4677f8a57a97100c924 GIT binary patch literal 150 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`v7RoDAr*1S2@Oo^PaOGQ^{nrI zVoeOg@?Ez)C;vMxGQCmN(WHZ4m^riQnBs}<*@x|IR x`!MdZusX1kZ~6TT41T4H6Ah%;6bwoZGcYJW`)%v|(-34UgQu&X%Q~loCIET^H3I+u literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/block/ladder_lead_hoop.png b/src/main/resources/assets/createindustry/textures/block/ladder_lead_hoop.png new file mode 100644 index 0000000000000000000000000000000000000000..4f9b053f19df0ad37dc5e7c7adea0225feabf0a3 GIT binary patch literal 165 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ii4<#Ar*1S2@1kTM5h0}Ze0GS zU(e5E#axq@`?q%AXOK|P%lH!?cJ-zG%{T^0hC>Qx6`C(R?PODUKKUtA3Ii8=iQyy$ z4Veo^J(%Jqc21FW2s2S)-ozw0jn5%x(;^_1kW*4QiQy<)04oE7;beoazYH&D0PSV) MboFyt=akR{0F)s%&;S4c literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/block/ladder_nickel.png b/src/main/resources/assets/createindustry/textures/block/ladder_nickel.png new file mode 100644 index 0000000000000000000000000000000000000000..7ad8f36770628075dc36c2b4dc89d3a63bfff81c GIT binary patch literal 152 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`@t!V@Ar*1S2@Or!;^lwiH}Cmv z-_y_iAmsbU$H)Kk%f~W#H)ROOtFc{TncUpD@O65F<{ZnNOlv-T__tI;LWONo^GfII z=NW<<^!oS;Rvmt6Zqg8ZH$$SQjgf=rt^or>Ug4YFVdQ&MBb@0M3y& Av;Y7A literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/block/ladder_nickel_hoop.png b/src/main/resources/assets/createindustry/textures/block/ladder_nickel_hoop.png new file mode 100644 index 0000000000000000000000000000000000000000..ce0b609e463d6306ce5c835be7f7bfb2bd57e41d GIT binary patch literal 169 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`1)eUBAr*1S2@1kCH6<_q&w6_I z|HY%7Z1VPXf9jt;TE}RxV4Kpz|7T8${y+JR=>&rSTPB-ii=Mv;gXMf3aRuf8iv`^i zSsWfV=(!0gXp2oa`0%f{rg6g>hnA(x0<+g-04WLS*m)`f;_qB%GKMfRNC^l2I3g<+ Q3ACHR)78&qol`;+09{x)ga7~l literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/block/large_aluminum_coghweel.png b/src/main/resources/assets/createindustry/textures/block/large_aluminum_coghweel.png new file mode 100644 index 0000000000000000000000000000000000000000..b6e1800963af33947e2536534bbf556dfce52946 GIT binary patch literal 405 zcmV;G0c!qV+45QRA*y$Bn`CDm^uq!8KTL3X~(HdZRw{`eet!Oyy0VG$h9J^Lgwfo74Go z&a}(dHEi>v+xldtbOl5JK)#Y!jX4|u|DjOr`U`-;FfULt z_46Fv0B9wRVlv$8Jd6;j09sH1SX9S|^Bm~_kgl5Z=>WW^;7~G!Ne5tJ0x%J!02-GD zz`zy&$A1QZA~gVr<8%OsEiM7D^;9~59xynl>E2ToRi0K80+};5uTx05+2GDCg0I|IY@D+Sr3*!E;aKQzxRT!0KgBQ-B%7EO=A@-k~b9Z0jGbr172iFivaH2t5R-)qJz~f z@I<|;Z58K+b^srw@c<*YVEeHf+kpW1*JynMDJx68iV0Ia00000NkvXXu0mjf1`eys literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/block/large_aluminum_cogwheel.png b/src/main/resources/assets/createindustry/textures/block/large_aluminum_cogwheel.png new file mode 100644 index 0000000000000000000000000000000000000000..70215a037b7438596f65045fd5d54d42b9b99d6f GIT binary patch literal 329 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dyjKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCil&0(?STlarH!f`ZD+%UfDn{QUfuE?pWI7Z(;5*52L@R3a^zl>wxtzc!oBJ5dIPDevJv+#<96Mw%sX&Ky>v;!}@LkpZ8f*8`B5Ah_jO`9rW?(4<%P1DrI@Q3c6_Pe@z zzPI`-6Kb~L}XSDtHsSe4~CO3Ay>+ZN~>$Uyu8R{var?L*ZX36YG7z! zcucs^VzV~vggB7Ea6Y~NzX2BEMZfQrakgIZ0LbvZ3yOHn!3y^pva_bRCHt*a=Kp+C z6L)#+I_H7il!@Sx%p%DbzcN*KNFMVrjzP;n^?h&=pG%?{(TP#KQi7}HHZdmU3ldq2o?x(h`4u}4V z8Y|fv9k9vGz(p$qlG5|SOc(E+J;o(J{n{s&Wl}lNdOH~&v+xW%3Wi``0mhYI*(ejD zK5r<`qlw>HYALtoSlC-LC9BYy8@jikNhUt}OymBIXfcF}chmGiE5g!&5JCn4158v} zns;vQDVX<_IjL&RAc5IXBb zd9PRsAZ-ddn-L=FS=ACVwm(^Ari8Q}%pSgtPCVl=vB|BczADS?6`4cvME1HI5|10- zCEl4_5!nwL-zx(o8I{o+SK)AEk&=sP3BCTfNj|`2kSAV9@J0DJ_!c+>R1|6(<#=V` zAz1oJ4Wz*>Cnl7D+7SpL4VmLiHj8j(GGBXHL%Bg1KIb?H(5T2)5>9AOIyuHRUl@5` z3YqLyh`2UORe)^lfg!1YWl;wO2I-JV71_gpmzeE0tBiGx+(fIMM!xB*ke!a`D@O@x z`X!zVN>}q$Iym#p=@xvLGuRwN!uv!K=4&ZkAf>P_gJYuf66YyIeo7=}@f|&~N6ORD zyx8)XKSuYY;3bQ>wxvt94{$dHhZ8@Xx6op|q=D%vjRBNtbb>2CDGc+p6tdPx&0Lsj zE%ayTweP3`KIg<2RM6p)j*NVkS{``xm$1NaHd!wz7?2iGyytO*RbqRJ=0QM+y=2n% zH7iPo41S-%KG;NmJcwB392^OFXX!(_(5yIU9w3Vb#(8X>9xv z*5>-`RwVdfHLyg_bt~@`OaRm7AT2h#M=5037DI8|#RD1h^r+Skw-k}snNFHkj($T| zXxQ#uYHS!4r(z`s=eVPTwB0xW-?2Pi65+EO3~h{(;@6BCRuCM<1LlaywR^dpb+#+nBOXSQZ{AfGR8P$d zYyvqNY`=RkOw`+i8LQ%86|Vnt<>|*1!Af Bb6EfY literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/block/large_steel_cogwheel.png b/src/main/resources/assets/createindustry/textures/block/large_steel_cogwheel.png new file mode 100644 index 0000000000000000000000000000000000000000..34e9f34a2ab43e7523c3b2c443bdd1cfb00d1753 GIT binary patch literal 456 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 Wm=o!ctmX=I0E4HipUXO@geCxQKRICl literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/block/lead_ore.png b/src/main/resources/assets/createindustry/textures/block/lead_ore.png new file mode 100644 index 0000000000000000000000000000000000000000..bf67ca5964dd4fb6bf3bc56f0652f8a360d0a92b GIT binary patch literal 284 zcmV+%0ptFOP)1M&x&xnJ!KPT}c%)d@3b9>oks**@X@`PQ8b^r$>4Ty78D^1D0000Q_hUgSnjnlDvN6u;NRZEdqX&AN8`<7|Ub zEnJx#&etJ{YE)Yu3V46MRwclf+r#TLHYRJ58rG$;0kNe_Qo|fswf3H-pXr-SlEJFg zT&xS+^iQOvbTe@ zd`K<0C-I%fNed=X!b2B7Qx7Jw*84%DMqm<|4}YpY$UfMPtN;K207*qoM6N<$g5&OE AD*ylh literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/block/light.png b/src/main/resources/assets/createindustry/textures/block/light.png new file mode 100644 index 0000000000000000000000000000000000000000..4fd9baa5e1edac85a87a006307e36df467b07e67 GIT binary patch literal 147 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBuf-vKbiP>*~f*PJKjv*HQ$$$R+{hi6i#UMOIO}awEolTHm+VM{w~E zQHN!n@6X-kF{!5!Ob9B}rW7;-vr#}>EvSW+dV9Qf0}X~$)56MG1_$+Nbw+KG7(e8; zflJtmWc82-kv;Y3oNb#2Q{$`+nIzLQ$Qzo0)tMyIr&`$T&-G~20|uma6@f;0XB4us3bw=Z~y=R M07*qoM6N<$g7)rfe*gdg literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/block/light_bulb.png b/src/main/resources/assets/createindustry/textures/block/light_bulb.png new file mode 100644 index 0000000000000000000000000000000000000000..460ab8022fd9482cd9edb2c8e2bf8024ac09d7df GIT binary patch literal 352 zcmV-m0iXVfP)%nWm!R&#RM0Em1N8L0738z7Hk&(L0Hg21i>G$*IJM?g1z|ywU~0Z7L)`+ zblG8;YOE&AE5a7u>dw7~^SA^2XB{3LOJA>7v^YPNLoxyYG_=O#_A%H*BpQ+t<}WL7 zCU8I9HJ0gq>h1Lk0e~}s{-Eb9lX%bD8x9&;x5^Ez9YFbTCL3Dgt|LM)J()?R&Y8gT zQ@+^^`h#9;udKd|<^1AOs#$iB;pY0vArJpze}8)gX9AoF6h+~8z?o>3ITP)IR;Bar zi_dR4BbnhM=m26e-T{dd1Dw;PLl6P*0`)hoN=f1*`1n~n5keaX06H+IOKA&u3A%vF yvM;JZpl3_Bw+xUXx90#5sJzOy4YKF<5q|;b=!6@{!sN;T0000rI?IJ={4!-Bqj8yB8Fw)4*QQ@YV#dVy*<3p^r=85o4X zn6XD`Cp%EE%+tj&MB=h-pCR921s>P>Bdn7WX74m-Sjn!z%$|_Aeag1tD{Y^z8Ie(ff0bRi0>FVdQ&MBb@09A)y ARR910 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/block/lithium_ore.png b/src/main/resources/assets/createindustry/textures/block/lithium_ore.png new file mode 100644 index 0000000000000000000000000000000000000000..12edc020f38f35cc57f99a2b27a64d024743279b GIT binary patch literal 268 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPF7^CNYO(TPWiRpsZ~lLGI~$Vpb8c+wHqvj1ahS-cApYa$^9QC33{2nMG+rLK39^>K M)78&qol`;+0KxS>$N&HU literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/block/low_grade_fuel_engine.png b/src/main/resources/assets/createindustry/textures/block/low_grade_fuel_engine.png new file mode 100644 index 0000000000000000000000000000000000000000..9c6fce063166955cc14fc261c29fe15aeabd97e3 GIT binary patch literal 1344 zcmV-G1;6@ku!DWfJ@ocChJaR%AjIT-@)CLjy@nn_%d98< zik#u}QB6!VfdKi#`{7en1hO1Z!5h9rRPw7>s#Lk8Vqtl;Yx zPs>VTBqe01u2Oy6$iGfb<{lu|N4E|Fmjxy)jTDS+uAUr`UFC9kF*NyZj zz?gDC4txfziZ-`zw8^*(c{Py-)DFQ-MS(?zqOY}G(rI70+t)<>wDOel5)q)bF$n-^ zl&(`>)yV*tWtkucVsZD6houuh8#>w=lZ*g2tV?~4Wm~{?B0wb7h*O#KtQ(6~y)ywA ziY&_nbNn`;YT(}D^Pqqg!@yc5NVr23+v%I*Cl6M&PbQe-Cl6M&EfYjXn=-*1KY7%m z06IzPbNuAt9-ypGd%t+a|Do=WXZsuVfLx?(Ul|xz3wbr!qz7QMqSBxQbjbvnQ2lcJ zSn#bmC;{BeJ-`Ls;4Zgqz&OQv?R}5`lsioTt4spKA@}81w`RBR+$};K-Q?cy`vO;o z01UqO@KHn1ZQ|{2RIs`vJFI#VfKDGea@@|~lP7=!4kH(B0j0+|Zf8JT)p!3q1kouI z%yBydk{e!hNQXJ~dFzv)qivH3(AwddpeIGjyf&Qyt{rD*XS4J3^M!J8aWOBmFV}g$ zzVP(6R?q%}10zmPPm3`KhRWDQb(g$fUtlEP5P8Xw_fbbT8Ub2Sh^Tph>%Be%0jxIJ zCPq_weU#`U50DpVm8DC4O5U$8SY-}e4A!T3>iPti3zFj}2UazIb7=Dbd7V5p?>AZK z!v?GT>c=O=XiC-J|8S?YX$vCM^FE0uH}B6*zIZwN=l+YT&_?I?5N z6q~C7zXy`-i7o_;690Wt5#ST&b&ePO9$gO8Bp^MhZ~S-2#VK#zxK+e;jm}9xPMp_` z!G^06;35y`6aO7D62tZ10P5a0M-q?|=XGPSVHE;=)qM+ei6U*dk_R*zd!R1?ga5{7 zxMZZ^Qk%QoPz1Ey$0N+T2oT)ZONI+Ph=;*!?+OvHEDT-~@X=`8KlSTCCjxk&p$TYP zS=u-NQ@=5Y0F~L^6@HI40tkJ52vBtBDmi}ZunGZ6!S$a77uW4H0gThj8RFL>VJ8V- zJIT;|BlS9c+P2=-pf3Tr1>6JN6Fw;q5DDoKJM96v=kt2!Js`cn&jCsZn1l!PO@#6c z$S~+K2@mL-3hU)66P}c1FJW5)2pH>S=o;5pj{g7wSwN4UMjHwM0000NS%G}%0G|-o3$I?TxN!4Ean#Gjx&QzFkBo~C2#)AJcorz%SP_^9q&Q20{DOf} zV89UUUm*k%EbxddW?8qeDlw*oGIvDUY8Vn)ip{=i-B>`Ar;L7{Bx1T+O<`()~RP P&@={5S3j3^P6 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/block/nickel_block.png b/src/main/resources/assets/createindustry/textures/block/nickel_block.png new file mode 100644 index 0000000000000000000000000000000000000000..d2eead68b503705dff3da7e013509435c78dd95d GIT binary patch literal 263 zcmV+i0r>ujP)QAAWbSNL`lT}h=vJhD3}0r3%~|!z_VWN#rTfs$#Txo`-~1xZ8xasKlR~=({Wg%vEyO5ocF9aQXjz+(4m@W$bm|bSoE{PYPmp{fWrihOnlKd zHA%@=x$q1Tt?3vEy+xPFcQ=w}XhFMB08*q`fqd|qmY^%5j{S42NNGCVQgmGEjkOBE zlp$>(xsOxNAd#e2>JpU7GjumF_I@gU<{8K&j;PRv`Pl=FDu6OXd;!j}-uCuz$ z;q9C7`o%NT0qC4FFvyZPaB2jQDT6U{KWAXYsa*krpaPzNpKIWpfHvW(2Gn)mgpVKg zE#squebaTWfg=L!P>x>rHoxZAaRwTV8M6ufTm$C>d}r!n8R&;IknPW}U!q3zdLt$L zR*N#$vgH z222Su(od@heh+-;4?>H@!eCFV2opp_;H&F)6`fAU4rOEN6|mu;V=sK@Uq-<9SYd@2 zoM50;Hu%uLj6i7x{s#dBWfOY6kifcEfP=LO`FXSKD+w@wZ?qz$ny^T8zlZKElym1d z0xaSqBO3wOu%`P}Y7szY7p`m?nDOOn z*CWubzACi|_+Y*YK6|XGF9ZRa&1Mw1HUR`;5BTh1OI-mvzA^y@W$8`7x@p;_t^jM% zAtzFc01iY(+dDfpqSVkaYH$K;(IF=S0_}D?`XwwSkdnFtDpw#SXLbcCIkP5A2?AFA z3@Z~D3v`;1g literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/block/nickel_frame.png b/src/main/resources/assets/createindustry/textures/block/nickel_frame.png new file mode 100644 index 0000000000000000000000000000000000000000..8435ef0f43f23c1b61570d960924b61f1268ddbb GIT binary patch literal 245 zcmV%tl-qFGm5=+? za-Igy<@>aZd+6{LJ)+?K8uxAeq^Vle8h}%ypfrL5=t^D({DahH2ToSNB5mRg0 vitOt+jAF~&gP4v&&rC#!YfoRMv)B0mx?V}wPdGZT00000NkvXXu0mjfe{5ws literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/block/nickel_ore.png b/src/main/resources/assets/createindustry/textures/block/nickel_ore.png new file mode 100644 index 0000000000000000000000000000000000000000..7bc10d2672211d203c406bddb15ab89ad0c2b2f6 GIT binary patch literal 308 zcmV-40n7f0P)*er#+&=F+2S2m1^J!0tC#M8qx80V(yk$! zAXO2TCVKUOj_uELKjVEz2=xe1?&=cj4J%VzY1-7|rOqE&sf8f*OI`W^0000`;yppvzl}r_Up+8 zqguE!IiGez64j`-JQVPGzbs0CZ`Y&OX>3fEBsHu{V*_GKnWTm}vTE)1e*8?|WReV4 zt>$7~;HH0~U3Xx1NuAbHK`qH(r7MWr&U&IW1rg>5nPeuQi8ajEmPtwz;{tH(wvxRa zq~$|u!99uZJWg6Li4q<<`Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0yjxSK~y+TZBxr` z(@+qdxpv%?He!Ryh6Rrml@J06)@6y*58!+FD0T>y1(b)NEv<^60Xr>f#AcYGlt77?ndn)HbrezAQ-PaoeQ z*8I8_+S-Z8$Kfy81kI{1AlPk*-3Fu%4-|j`UcXCdni;S^Sonk!6 zYyqIv0u%VjWTw+woDq2P@RsQTy!_Cojm0|}ZGDb37uiHBK|o2M6fE-+pvliLwn?U1 zP$76f?8i8V0@UmJwAwYHn*#0lEx>=VweHEhQXvbAbvhm{h0e~WHnID76cc!2DWohb zNwbot%{vuE$q=%|o86H5qe-iY_{!NP)6wPK{s7|2+SMzPWI2NZCO}X*bCQ+xX#ECm z%0%1#GGL`3bbRs~Ua$l;2}A-_12)%t%e1=WwE@#;|J$ie?b>?>PjG_6)Hs$4)OBO1 z##9OsrBvyr>EP`CY~SbxdtwqS1Ydm$NgZlS8z9}FO>E~^Rb^e4dCs+ z>M4?}&~Jsr`k!C{FxqAC=Dqu}@PKi=*6W)8A?SbbkE?;?4_JGIAj3D8_W%F@07*qo IM6N<$f=wbfz5oCK literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/block/palettes/stone_types/alternatives/galena_cut_bond.png b/src/main/resources/assets/createindustry/textures/block/palettes/stone_types/alternatives/galena_cut_bond.png new file mode 100644 index 0000000000000000000000000000000000000000..c97a21632d228314b4d966cd6efd60d42527d8b3 GIT binary patch literal 688 zcmV;h0#E&kP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0!2wgK~y+Tg;Gsx zQ&A9|x$h$}&(uvpP!wDgu^=v_pbHmnYjvyWpHa~t=FSoYp|#aTv1uZ0OdItjFCRDW zy>ZSYslkl{mwRXK+;eBn8Gik2OPph3W`Y$(NkQO5%>wY@y!+JThj(vCS(J?YvJ}!7 z@tfz5<*?Z$MUW&03f>82ladCLT+d9I_tZ_tw0VC`8lPJ%0%)Ss{+Jwo?(|2}Nr%)) zJq>+nmxyJ4DuapF3M{0!!bv3-`$pG=I3$+`4LYkLv3`wP?K6B1P&xRKvQsuiFR8KDrtRG$B`>Ei3gyFon?HW} z&W*hm?R-6^!8o`2YcWF=^U;DcI7Lh1cz!hLI2-4*SRis?P-mGKRe?B(BZ~k8sAXAF zQVlHu`!bP9W%j2^YeYgusaGSqSP9g%7)4QN($y+6keMcCGSqiy0R|cQ?TaTiNEjN# z4^LCOKqdc}tk$axj&L{65u3#B$(at2(1{L{P29aTv|-<%MP`Syjj-~gsyS4_+q*5| zS5G&k)$VBp#reoSSieI1tsWj5h;qZYv$GCSHu1)aDnTv`LrbbFSs)Rmtz1f!lZY;_ z)HD|1v8jZ$c)Z}nRLFdBPR!iQ8H}fTHx-rADp;0tVZ3$wj+XS7Fc70v*pU3+Nd5rH W&~C?ZF_3Wp0000x{yf?FRyF1?>>I;iZ(9=gtf4U zx56eKJQ^os!B|72``9eOB!;W_is-smwEQ;QrgPb4Qs;?C!RS(l%N#aKsFbQmRq#tb z%~!45xS@|<@=;1*oy8=Ex%%qP!?ZEGn_uW$c2P<(O+JB)h3nhLQF~vvzY*y^0LRfj zJsn{ZLr@KnvGA$=@yQ7oYdGv4>C0`=<_;K=2GmD@a0QpGg8f%{)fP($0X-s2vX}#!p bBm@2fmqQfq9fSne00000NkvXXu0mjfr56vx literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/block/palettes/stone_types/alternatives/galena_cut_indented.png b/src/main/resources/assets/createindustry/textures/block/palettes/stone_types/alternatives/galena_cut_indented.png new file mode 100644 index 0000000000000000000000000000000000000000..c9270fb37d645f694ba0bef696b5f63443174bee GIT binary patch literal 521 zcmV+k0`~ohP)*fOrwR@bRb>&RRzfTgdqA*c$+PePyjuGLun3DFHL7AoiIlocjXV>3 zLc+qDNlbD!&lpaA9VKOX zb`ZOJT)6MHi1DHzq7$ATEg*y-U8YCh0G7oJFH;$+%mD~mp&QQ_13(l;Rr37|Rp#hI zy8@?vpXPL>zHiq}^hyI;3bSIf*&K8WM2A-|2FxGkwYc}??bll1$M`27-+Ulb8M>^x zP11zP{fHn9+(ZCoZSZudxtWh$P#2m^WhCj;trN6DUUo0J>|ZdN{jTC#G0VnylQcO{ zTbJ4qtu6pj5IHhHvmt0)_AijWMEcSxJ4q9aF;3i?7OjxD(<6`p&z_v)0SHgHgk`Zy zHpZaH-M$w4g}o?<5MoyVD%V-GMGS!SC0E01*DTAk$_I8V07Xte8W4ASwSv~_vL&4k z09V87ospDQ#GPJsw!7TS$8PL>`&uJKVT3L;UXo6oU2URl$r?fWvgSa$g7hU`-0t$2 zFEML_E;N749ZA}A-Rl00000 LNkvXXu0mjf;PK~F literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/block/palettes/stone_types/brick/galena_cut_brick.png b/src/main/resources/assets/createindustry/textures/block/palettes/stone_types/brick/galena_cut_brick.png new file mode 100644 index 0000000000000000000000000000000000000000..667d1fa854641061bd7b26752fef73c915bdc225 GIT binary patch literal 455 zcmV;&0XY7NP)7;v!euBYfNsAz5(RBHL7q0uCyJQuC#~<0BMp&Y651%Q`B;OU4LdkLo|rhh)6`F z-krW>xxTJ52ZFYWc2H0RAbUai(l-ho;jpy|S6UV?&N>MIoOi5?AM~=<=ZB|t0gQ$t zw9--CvKM~;ZCb6qeE7=B+(sGB<_o_6T5|FJV?+W_xT-7#u(f&3?svXAOLZ<>QG3+x zQb0c)r)aIK^(c8X93gw*UN*EnYMU$~nA}tfYGy3+*&OGasoUKDsTFD6crs09Xsw$; za^8_mpW{j!nJ0Ux_b{2Eo&A-$#pDLR^K7`w#uF;%F4Bb>;v7002ovPDHLkV1jh5)Exi- literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/block/palettes/stone_types/cap/galena_cut_cap.png b/src/main/resources/assets/createindustry/textures/block/palettes/stone_types/cap/galena_cut_cap.png new file mode 100644 index 0000000000000000000000000000000000000000..c25425fb61969f8059aa833648f14da7e6529c31 GIT binary patch literal 463 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/block/palettes/stone_types/cut/galena_cut.png b/src/main/resources/assets/createindustry/textures/block/palettes/stone_types/cut/galena_cut.png new file mode 100644 index 0000000000000000000000000000000000000000..aee88016ca98f2e25bdd4bb89f6db7b5c9a07ced GIT binary patch literal 395 zcmV;60d)R}P)Px$MM*?KR5*==lfi0)Fc60SN=DeoVsRDrvU_OXV4tb4-JS~uF-RgfLVHLPC)Uyd zQ74&yzRXOX9*?&#B0@AjdmI@l%Kmv}kRqtMdWK(ITF@u`uUHf$BB=J<0B8<3nQ4Hr z{huO!_E2UTk|T(Pz(^H|j%f5rLmAr(>_!OXR8e#{Ngg2eT}Re0fbJdw(gRHSI%%Z5@aIrhyb7fKn@bG zoW27|9=tzF(ViRVvVtzFBt(k9%wXnF`JXz;WBJ9w*dB$%(q#qN6#!u7L?i8fxuLDQ zZIG-R@p^rMnTA9XgX7!sm?kr}v#>5Wd1btReuTxc`c)HNIj_&`!yFKWOTipA#EwMU p-$I!k093*hnT~>@Pqvzw@eL-Q+T$C4NpS!G002ovPDHLkV1kb)rI7#t literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/block/palettes/stone_types/layered/galena_cut_layered.png b/src/main/resources/assets/createindustry/textures/block/palettes/stone_types/layered/galena_cut_layered.png new file mode 100644 index 0000000000000000000000000000000000000000..7174d3ca75f71f89d08199411f56e7f22b755a73 GIT binary patch literal 732 zcmV<20wev2P)L?+356DF)i4mFnXZITf-gu-?*5kV={5n?4XgV^xF<>Ug>;@Zqy z3pA@}LS`@kYNe3GiMcBmv|cg%JYiD z?+q`m%0-D<)u>gCD2%Y#Y_P!^58(O}f7POX%wrWyTofJt@^7k)Gt z?KdJJ1;+h%5X;I`V&KNF-r2G=gRG^g%7zC3FK4%4C4;Ob9)8^e*ewnn`kl&Jw%#wV zIN~UVkiwcLA_V!}900IT4=8H||8WoNSSVn<*|%^IO*#YE@Ine4eK`NN1=z6 zQl2dzxSr<#tofV!shb}d_lAhW*vU^g`GNdyZuWT_zN`y3Kai!FlOGsFlQ-@Mp6+}$ ze!|HQ@QSwt59JF!LojD~XNLL|(|f!QU70@5<0$U5^bp?n9Q^C zk~#T-g3sLifX;RC6Ha~rfN8O%_ O0000D76dfds+~wEat=KtzoLi!r~X;zP*t`fOO27py1OeF+wB3fKxow`jaYVP z-n@C54`080`@OpPM2Bs;<8Mf#Z1is%!;jYu;d*(GYn*?0Sg!v|))C&Q6=9y{?8=va zCYDv%c8u-ht*ZBg+G=cLMlx+<5D@_KEC)avJt0`c1>t7@?30NG^G4%jr4%AEAqt<0 zM>hLs-?<|gsu&h^iU8y!gsySDf-5Y>tFVn>efKbG0AQVEufG#)%N^Qi9{?gU@nz(Z zYYm+Rir}euB#9G}IPr3|(Ib)}(kNp!za>pl?mn&w0aU1bf~)(T5D_e9RQ!IFAWw6Y zQf*v`k~l$5(uRolXgHRLv>tR9X_TRqV!2q3B+E&>njz-df+GLiFOqeZ)%+IQ7_Y<^ z55C=I=2?!b9l@@Ap{z<=?Kr%>0`1bg_r%q1*nvtNC2hoivx z(vPr+3x5ueasc{-^F^2iQR07*qoM6N<$f^bXF AbpQYW literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/block/palettes/stone_types/natural/galena_0.png b/src/main/resources/assets/createindustry/textures/block/palettes/stone_types/natural/galena_0.png new file mode 100644 index 0000000000000000000000000000000000000000..de931ac005da0e3d1a6c99af762351fe05bb98f9 GIT binary patch literal 254 zcmVDu%FNCgI5$pT<(PnEMUm>~@BWng?LC~9-C;($kLQOq zO;77Gzoa5Z2T19V@?Q9+Fo6B>nnThGS$rc~5@Rt9QfHlzw6npor?IUPO!vnIyo?6G zbU-dc0~_F0=?0*ia7p!>*6-BO~~vV;^ids0ezmic1@$?1poj507*qoM6N<$ Eg5=F`Z~y=R literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/block/palettes/stone_types/natural/galena_1.png b/src/main/resources/assets/createindustry/textures/block/palettes/stone_types/natural/galena_1.png new file mode 100644 index 0000000000000000000000000000000000000000..3d355952673c1d9bed8d28f5095b3131ef11c2a9 GIT binary patch literal 254 zcmV zJqiLb5QTFH!B#}DTH91xXld^jHr9frXYdx@)i?Vs&oQJB9!tW$znPTF`L)|m>+K2X zJREMuaeRu9QN(BjLalc}Y+$y|g?}>ZhFAt$*Wwf2X8VdA-$-zlkiDCp2x5lZ4?$CM zwHe*>aeem%-H@LID#3FCGnmZ+zC-`RjxA;H471^Zs8r{L+S2T73}BYbFot>MhKGzw zO^3V_I^;Dj0$k0ufSfE476A{$8(G5uodg(NL9T@61N(ExqPgK!ZvX%Q07*qoM6N<$ Efx-dV<9v9kR#K_LFkFT0<}R2mXj|N=nb;QC0T}`_*4SC(CLma*2M)&7Pb3MP2M3$jd72XG{j$vS&sHsl-LbPbJTQIS@EM51 zWOPo5;L%sdV6B>eoSG)E#&G)_V-vv0k=qR)G`zM6{Hdv7GNM}09FpA$ctifx8w;n? U2MBgPdjJ3c07*qoM6N<$f^Xb$wg3PC literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/block/palettes/stone_types/natural/galena_3.png b/src/main/resources/assets/createindustry/textures/block/palettes/stone_types/natural/galena_3.png new file mode 100644 index 0000000000000000000000000000000000000000..be928ed3a3d42abbb459ccf17d794c64eaf4f2e7 GIT binary patch literal 264 zcmV+j0r&oiP)k=dKs(VU4By`_U3~!J|KQz`5P*^Z O0000c7Im2N#S);!XY3S$jQ zDmqEN<92n&db?sWnlKqn0C3K6eSXFD`BlUJ@@$EciZn~v6h8n6#=}!grIB4pVTz`T zJ31b+2LRUF71?2fN)_`c#yQsr8<Ms?>L?pRkDs6o?}KYKkyAZiLpzN2&ks7F`mno41cRsx@7JUng2 z8Td?nF-C>GmikXA`HuYEqciTGAcR16Wiv+El{Lq5kF9JYnipAxJ?z1fBn6- zfAt0#N9C^6vzK@L2UAR0vWP&=+vcapP*x&p=%$Y@6g9+$KD~q zMFQNQuwkf4q(G7(vX=7Efh8l!$%VfV)da?w@+-Qv8E=-d_L!YSW4PA{F>{cmGKztH7@v9vs~RK(Dn8 zm$?9dn8$@t1tv$63l2t^o?5f=fc&-c9eYk*^}psvSBR1jzrX)O-y8%(eE9nuon{A} zW(WT08eDKay@D`+7oP)=v0xtl!^JTG;M6?XrS zcp)3S>?0g|U;)EUtA{Mh0LXQuV!%8+wJG+xuW{;~Rl+mdfyL7VS(ZVJg`PG%O+YMy zPP2oU$LM{s12=K8*L@8@M*UId!;dH!WpneV-kI)D6}%r&)VSb?lNjOH)9WP5GGsS$ zl+?P)f98VAhAe_bcxF532ZPFZViCCn{OAg!Oz!EbK|ltRd;_YHc4G?w&~TanFgM?8 zZ36)Q6z?kG8%`6J8i_h-PweUWDWyhKeb3t}^R;$;6NC`Z4XQILxu3$6>91Nv51bUdGkltax}-qebsdyrqaB;dbTRQ-PnTV zkFLSf1jFzg-|T;ln8$ibDa&p$j4~gCUC6)OxwS%L;2J9D884gGG31Qw)M(WjwPT)CeJP9T)300-h#vlmy2p^8rj& zQGlF2&5f>hwg}&@Z&u1%YR|mA%L*e_w)NUW<)`*tH<4S+y!;>-R?54HD}x}h2$~yR zohys6&{Kw|Ng;qR+X3AuR#vObTMeg)C<*n2e6IX4TdzIn0rT>zp0A20gvdOg;WXho zuCAWc_wtrfHZC|8;rqb=E^{m6x!@1mU^!EY6IoNM5e=_By}r~GW0YYLey7z#%;U;< zMj0%n?UmO_=49wJI{;)d(Y@KlPOCQ|EG){OdS|+ttAaOrfYAet9$@rY00HX)2Y(2jyZ}b3l z;ic*U`k*8LeA)Y=aL7=>c`Hx9e6=+Tukv)yndPLwQuABrLoykUytC4X-+0KJWkBym?>X@Zjja*V@J)80thq z1(dw0bq@fHvPa(+Cm%Zssq7oTIN)dNoxL`gW4|7G!j(F2SgVDtc^2Vk}9`9*o72dE1#S`X;8 zwsG7)!K+Vq3rWOd|67H56eZ!*{+G!YY5{7~LOrd-g{SiEvL3LC fywL+*x*qT^7*x^^1Yf>!00000NkvXXu0mjfaUrM2 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/block/palettes/stone_types/polished/galena_cut_polished.png b/src/main/resources/assets/createindustry/textures/block/palettes/stone_types/polished/galena_cut_polished.png new file mode 100644 index 0000000000000000000000000000000000000000..06ee0978e9ca68f0ca5018118c6b35ca08c79d2a GIT binary patch literal 448 zcmV;x0YCnUP)5jR5Qd*Rl8x=gyJRg*jr-IOTf46d~^%zy__pe!J8a*pm42afAe|v0D$w3(j176)d^$GU;rYr=*z4}zMsfNq>1i! zx1>o*nxq4+v1XQJsw~dguCB?_jGK>p6o6KGaPW;EYZSp@XTk4FiHfX1Yu(#hqBKd7 zPI?m=dNeIdMEV|tA6cBEwPv&4%#fv%fo7^zzGhc^85hZU$98p%YwbWX1W&$UGmE^y zH=gKJJyO*bzVZBd{tfg?^S&p(@w5IIYe0000*u+l26lak|yKNt!i@sAIwS_tmE#erJqykw~Gf2ltyO2j0hcP&$9%^*#X&Oqw@rnJpf=0*e1H6L)~Kw?-XOG-dsjP@i4F5) zan^y>n!L!*-T@SKhAM4|ZK@Hb#{)2lnb3GG!Zm7}-FJ@(=p6-98WEW|QXkhJ*k<=# zWba@|F*Nc-0CE(RYg|uolBMb>Y*Vqhxg7-nu+EZ|DeC9bmaI%ic|lustuz1!DMnGB z|Fo^Xm}%7KyHBk0>q&&$<%TGTFmaDORB20g`5pyusEW?Jt6jT4rKPp*jD}tEY0OM) z&|0_agdBwta+G$7bk2rF77?;CW#$j!AVF)*aw)-{IKsd`<=&|H*emqyn6obwozRNpwsJ8uhqE=m6FfN@R&!NPXN$a!jG#n zM615Z*TFYOY}Z@#e)a)SiE?vY)^0tXTmev(4Mb20So3RcbECGw`1%(BQc9vYy3-Lr zoQ@DmD|D8);r{6Xc4{%HSs;&8-&rsAYUL*4Y;=yb))AjQe7Yc3d@HTk|9j0GK4PQ=ErM4a=_taM(L?>(!tVAf-e~NmVxTyOurd z)N*ad%x6?Ms+4@JwRr}`0P?nJqum_=KAnD85H7Ih*Jw_+W<}CQBZXwQy@ScN0bC;s zoD7dS>>Uxs5rH3IQiBMip{wiVO~`J0hd~r#t#ys`${r>){QffwRV50q>>(P}btXxS zom%45<|Q(-A7|cnfxr)3CMz3TuWx|`_2t)?$1?9P7*`>xa`@Fn00000NkvXXu0mjf DNnZhQ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/block/polarizer.png b/src/main/resources/assets/createindustry/textures/block/polarizer.png new file mode 100644 index 0000000000000000000000000000000000000000..8df69e74033a511793f80a8fecca0e1eb916ea15 GIT binary patch literal 1471 zcmV;w1wi_VP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D1yo5yK~z{rwO3nc zoK+B>f3vZ>*>tm;O|~X!O@qV)sy4MI^peyN(V`EvDqg`Nz6knK)CZAPTT7)Ns4o_M z=!;ar3S#r1)S_71*b*<2YQG>N9V$!0IjW;d73@qF|DvpJhIgl6%B;aulGbLMhp ze(UbdTjxl_RpLTJ9*>8-KA(lYZ*@7(rLRqJn@OitHk;-CT#niDSSddXaLcU?%n%F( zls{Nu)z#MU;zImAa+Ol?q>9H9ynpD=0fn|0eygo*``p^~^;YD}*Sx8$%tNK_67J8; z=D3}lw50}QyOd3s4L{>kX2l4OayyQ0^nYL!p452}~7!Uw+->0gB;w!Ddh! z22;~Bl-4#%O{6KE$?EYm<@7D&23XI|%<#>?1Kwi!U2qt&85TgvRGP-)DTTX9W*SO|v;$)!vlH;){E8Gxi94PCtBqAs>n>eFq9O zAoeu@O_*VYb<7EV`uV(T?<=pWf1_8asj-O;?0=09Uka-Cu%bIU=;Sj;=)zEvTp}G% zu0On#&EZ_)A0m+O1}gltCR{_S4gXjQ(M$gj{dU$FY0W_`unk~_kr2WOH^;n$6#yRa zqK|_igx_b!_;O$&9JrPWBQtEEcJw8zAdrO7_0WD#m)ia4lLdr1ti>aCSPR&5iU}j& zn&wL+Q=+}Ftm``8r1Z*v)#Oix;;zUsDKtUgJf zpZLUj*7Gr848oeTtpJ{*=PhK!4|;pB&U>I{2!X>zDy&YU1g;fv~l{@y-I$M$s( z(tFj$woL{395hB@`odgoph|+@&QZ=pz5~=?xmd%>{9QKK13ZI zUCKP%{DAR}Sh33yeyE0Y&KF4TkUX;}9ZNkRIRG}=*AS$}4NX*6U&r+F8V}Ed0J9#z zxR`guZPo+Fo?FY$WIPg}myUnN^?=(|Le2MYrgy(R~vQIE=Yz4E;~bQ#~~dL2A~PE9`IJpt9M;PBR^IP>wyD@-crbrk{yvF zkT0+X$KJYa3%#*Z(ZN#|xkWuQ+H-O1cRJemt;Sm(Zn~M*Y`=)Hh7J#o=J%TQ03h`M z+OyxC<7XH^KIrId=YA+yPIYxP`kTM#_AYY6F4}HvGpPSy|3#vHJ?O@aJqK@w7Eq#j zDs2s5-mC`zxiMNCjv@tsc9yCYxE=uER@1uRSgsy0_c{)>C>^84t#L32eOZgeC%6xd zqRl%HR0=E?$AIh=NIHff09vTLtFw~{eOZGEOidO2b9$puAWqoQe~uy>+l#LUiVH)c Z{{YsTJKw#fRK)-Q002ovPDHLkV1hm4w+#RQ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/block/pumpjack_crank.png b/src/main/resources/assets/createindustry/textures/block/pumpjack_crank.png new file mode 100644 index 0000000000000000000000000000000000000000..9a4a50234d49ace95c9f93559caa21e02d71d05a GIT binary patch literal 725 zcmV;`0xJE9P)eKH_+^Ql-Wc z9CjtIcD|XN8TsJ#tCMv4cKTmBK0HkacAXr(OYhGUN!e z{`u8OtmPfx-T0TQW%~C0$J5>YeL@e9zjvhPtYK}20Duk8ryui%c-1D>u$Ffm;LY(Q zq3QG@y&RA8SdxCz`V4?qI*Qq+t2}=(8tsT@{KgvQddC6Uy!R+50y_YB=f)x3?3=~h zAy``iKwZzj76CTZxnfMlB>}Le1W>v#fTxwW+h@S&eg{D3+81Cpo2Auim6pq8V!pLs z0TA-u08K~0nyvtZ8si&PWhbZ_fHucN6qAs%M}l;K`Fx&@Hvy1%0>FEoF*X8Vh*FdE zO#Pw+P>KKvhxY(57XbG~07e<--sKP_fc1KvAtHdvQUHvUqwZ@FaPKkZ5m46@0J$K5 z#bQy5fV_2&8v(ow+vHUs0E_~_IGJpd%K$Lg3ZTr69!u(eYQd@)0bm?)1dI-#4k&xBtZEVG*2y8z_-2m`TJ;0j~hP^*9vep4q1u+LYT@K(qK!)|q z$H4#ywHx<)Mz!e(@T{u|Kyyi7NOi!y19&TTk0pU9`v(Px#{K*U1z^Mw^O6KH7=X^* zJ@*KxYYKo|i2L=vVi`uSqr3|C2B6H29!u(eUIiNCetoaMk_0Naq@&eE00000NkvXX Hu0mjfcpO5r literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/block/resistor.png b/src/main/resources/assets/createindustry/textures/block/resistor.png new file mode 100644 index 0000000000000000000000000000000000000000..58eb44004e1f33df2d05a9e1ed81bc42b2c1317f GIT binary patch literal 546 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dyjKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCil00(?ST%`B{K?41IFBO039dM8gQD5($^G?rC$(ld9ocJcFyOpGZmtDQ7y z_PqHwilbgG&Rw}?ZDd@$sfmTXos+h<-i+zf{r&w*3k%Z|6J1^L(6NXeB1`33*S2N>Q+$ix9vau#?*7BevL9RguSQ4OyKpa;}FT^vI!{I3SyoYbNq zAiV2inamN#zK8$oi+8u`t}QLEx%Z$k#KUQgmST&}g3PH}ij0CPzLHY|xEjJTcpWq+ zy4>9od);j736|Ez;?lvsHB$%a~i*GcH-&dxbtMm)Jwscmv#tjZsuN7pz4yJTypN{i^uE5&RO5` zle)P1sHuwPW~Uyr4TrwY$T`TgqORe1;*X!8ohD}tjEQcY!I#siSD|!QG9BT zdXeATKTa*%x29~opZ`ld(=t)Db?X_)FSY-7pZ@LthuO(1-jB&+f=O)X6<|0rc)I$z JtaD0e0svG(=hy%M literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/block/rgb_light_bulb.png b/src/main/resources/assets/createindustry/textures/block/rgb_light_bulb.png new file mode 100644 index 0000000000000000000000000000000000000000..460ab8022fd9482cd9edb2c8e2bf8024ac09d7df GIT binary patch literal 352 zcmV-m0iXVfP)%nWm!R&#RM0Em1N8L0738z7Hk&(L0Hg21i>G$*IJM?g1z|ywU~0Z7L)`+ zblG8;YOE&AE5a7u>dw7~^SA^2XB{3LOJA>7v^YPNLoxyYG_=O#_A%H*BpQ+t<}WL7 zCU8I9HJ0gq>h1Lk0e~}s{-Eb9lX%bD8x9&;x5^Ez9YFbTCL3Dgt|LM)J()?R&Y8gT zQ@+^^`h#9;udKd|<^1AOs#$iB;pY0vArJpze}8)gX9AoF6h+~8z?o>3ITP)IR;Bar zi_dR4BbnhM=m26e-T{dd1Dw;PLl6P*0`)hoN=f1*`1n~n5keaX06H+IOKA&u3A%vF yvM;JZpl3_Bw+xUXx90#5sJzOy4YKF<5q|;b=!6@{!sN;T0000|WDMnM1^k1FJq;?A~s(_y7O^07*qoM6N<$g3{G@>Hq)$ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/block/steel_casing_cable_hub.png b/src/main/resources/assets/createindustry/textures/block/steel_casing_cable_hub.png new file mode 100644 index 0000000000000000000000000000000000000000..415d0a66b10792a373d5719f1c6731b9ecf535fc GIT binary patch literal 356 zcmV-q0h|7bP)S6ovB;1vf%5R4i5(p`j>-1ni=8Q;I^VUFgDI>)U(%x&3y#!~S0o zBS-lrfEtVRq-VG~J9XK4-@qIw7RKSgH33u!-i!vWxV~^zcG-YPiZh2}0{G%+2xCve)pyNaM`P#VOmf*>RzqPgl46_CG}1;rV?Kv+aoJyt~304u(Tv1@E!Te}bZHL8(F zLY)NFBJ>=t$@Pt-R#p#$f7hP83#@%BcYaJ=pYtDV3)6vxZGX)G0000Y{$dhX;WIdnzx@Uf>_9#B-$ZaoUS%S|tfIWtJY;4wV|1E8K?&scx zGqi4*hy=UNZcAE~ae0H~=O`8^JHSUYSE_5}B420Ah%PhUqahcUfffG|3qtm;jpW%a$D(mS?nQL|7SoWkm1i3S7cgw$VvRVneU00< z^-9qV^W$AEZ>Sfoc(FoR;;XOU#Wg|rQiNDK76iVT5~g>S-t6) RJ}_(;JYD@<);T3K0RWUei+}(C literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/block/steel_encased_cogwheel_side_horizontal.png b/src/main/resources/assets/createindustry/textures/block/steel_encased_cogwheel_side_horizontal.png new file mode 100644 index 0000000000000000000000000000000000000000..02c4aa1da5665419676842fc19096d81c664e65f GIT binary patch literal 472 zcmV;}0Vn>6P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!T;o+Ycycd*rX97x)|?b$st9-{c6~8D(Rz%5swWj>%k-T&8-QQK_pi6(FDHIadY_ zxB?Gm?u-OtmPq=H5}Hh78c#ybVGfb5GTsmza2@l~4Z*4k}=|KGqdE<4-n zE6C&so9wj@44{gqU);=N41gPx#1ZP1_K>z@;j|==^1poj532;bRa{vGizyJUazyWI3i3tDz0|-e(K~z{r?N>`{ z6HydCcapSer=|%l7EP%}K{vV(wWyV@6cNFN3-PgXFS@9ELAS0%{3mYIja`V~#%%@B zNR3b%^PFaqnap^YL8-u%%c>dS|>JTW<$q(nT%eaCHcyS3G^8j$tenI&5Pk@q+AYXb%Z z^~OJHuy(vS!O6OW#qo zZjsfn^|(cCeF`}N)@{e(lYs*+;CAmbDBtxuUj{JnVC2rB7*eTP^tV){jm>Hr2UBBsHy>W$J zKYzw<5;tNL>+@3puNtl+^BCWMyh88ZyeDgYjpyWL2jK(o4tR`#@Q4Tp^t+J=+zBrm z^Ws(jI2>BFTS4Sy2jz<~24XY9D}n`r2U{A`r|3#t$9T9M`tWz06biusHcZuk%&{ZX7ReEm0@gV=2W#@p<4Nm!aT%v zU2UA(WMoByP7I38D}iU?cQpV=)AVN$wDX0Tm_; zZ+8V~gI?iwP{-zG2Mp-X*LdxKWHUh4r5?aslzKv7M9JrX)B`}+dSaj+05NPn$H}A~ zfP}3l2I_$*`5X$R9)N_cCtwH!d$Z+HfXDlB^%M6mEnlD~4Qv2^bd~Xd}_H?TwnkI002ov JPDHLkV1hQ-k*5Fv literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/block/the_rock.png b/src/main/resources/assets/createindustry/textures/block/the_rock.png new file mode 100644 index 0000000000000000000000000000000000000000..6325d91e0c61aecb2b18508bf850a54dc23ef6cc GIT binary patch literal 5839 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/block/voltmeter.png b/src/main/resources/assets/createindustry/textures/block/voltmeter.png new file mode 100644 index 0000000000000000000000000000000000000000..dbe88a712871fb8d16a155f4ce4ca67cc823c8f1 GIT binary patch literal 537 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I3?%1nZ+ru!7>k44ofy`glX(f`u%tWsIx;Y9 z?C1WI$O`1^2Ka=y_D-HMd*1wj;E2e$_#K;9pFFbL#@?x*q~h(f+dscPU$}72|9@}I zEUb-4y0K=6#GZq4+I14-?iy0XB4ude`@%$AjKu1J*x;TbJ zxWAopaZd+wqMYx1lU zhDTML>yN!*?Cz1D@*JCbXgE6ZKgA0l4I1ROa}7T3Jo z5bMk-ut&H<;i7l@TPd%G1`8uIAx5ta-nkb3GkDG)Zpb`Yyi0fYp`RMX-b^P2H?m#S z+uCS%;PUP4X6D)pa~taY3Z^b_ecDiJc%W1Df>=(ZU&w*X_NP9qw;X+$MC1Z@H!lA= z5?YV};G3AmEIaRsAk3pI9f`yud(EvQ9*$8LNtv^_2f@Csa!;)05c>Z;CO5MD@|@o^ WJ{@;$@qN?)0000ymh-C_ZI(&b}mRyW3=4hvPn{ zLCH(57U#=p2qKTXwJE{dF)`TZkJ0s@py z-nk5Jl4@lOppgD@y6%M8B|be50X-xNON#*Cwjakmvj7isgb30A7-AphYl|Rti2eYh zPg{y!G2Z$i(YX&VLCVg(m+3l3_{JCnE(I)07*qo IM6N<$f+GiKzyJUM literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/entity/lithium_spark.png b/src/main/resources/assets/createindustry/textures/entity/lithium_spark.png new file mode 100644 index 0000000000000000000000000000000000000000..4626d7fbf45cfaf186458a0c3f0d1f84f3a3d00a GIT binary patch literal 161 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqjKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBufiR<}hF1en(9F}tF+?Lcd4XJo%IW|A_p?|_G~WnFWK+{P ztML0bJF|0w#gul20@ebC5SFkWzJf?c&4dI7h74yh+1WA8xj+*bJYD@<);T3K0RW!} BDUARC literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/fluid/air.png b/src/main/resources/assets/createindustry/textures/fluid/air.png new file mode 100644 index 0000000000000000000000000000000000000000..5b902ed0d34311739b2709fd962ff93ea13bfe01 GIT binary patch literal 11808 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/fluid/pink_cooling_fluid_flow.png.mcmeta b/src/main/resources/assets/createindustry/textures/fluid/pink_cooling_fluid_flow.png.mcmeta new file mode 100644 index 00000000..0645f48c --- /dev/null +++ b/src/main/resources/assets/createindustry/textures/fluid/pink_cooling_fluid_flow.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 2 + } +} diff --git a/src/main/resources/assets/createindustry/textures/fluid/pink_cooling_fluid_still.png b/src/main/resources/assets/createindustry/textures/fluid/pink_cooling_fluid_still.png new file mode 100644 index 0000000000000000000000000000000000000000..5235161bfc5ff416d01a7bb41db048ded1cd18e9 GIT binary patch literal 11292 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/fluid/sulfuric_acid_flow.png.mcmeta b/src/main/resources/assets/createindustry/textures/fluid/sulfuric_acid_flow.png.mcmeta new file mode 100644 index 00000000..0645f48c --- /dev/null +++ b/src/main/resources/assets/createindustry/textures/fluid/sulfuric_acid_flow.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 2 + } +} diff --git a/src/main/resources/assets/createindustry/textures/fluid/sulfuric_acid_still.png b/src/main/resources/assets/createindustry/textures/fluid/sulfuric_acid_still.png new file mode 100644 index 0000000000000000000000000000000000000000..7d07dcb457a8a4f4017a7e7baf5aea5b6eb3cab9 GIT binary patch literal 6047 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/item/aluminum_hoe.png b/src/main/resources/assets/createindustry/textures/item/aluminum_hoe.png new file mode 100644 index 0000000000000000000000000000000000000000..bb6d8a12cd62d668e739154245558098d99976b7 GIT binary patch literal 253 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJV{wqX6T`Z5GB1G~mUKs7M+SzC z{oH>NS%G}H0G|-o!s3p%@84g(e%;SMXT!E#o@SyMesZ1Z>Kby~KqdFCtaSxaTqQw% z!T(`^Vbd9%^FUF~0*}aI1_mK8X6#Yg$qp0@@^o@7OK;-EdKU i#$U#{)pb?L-)29=qUCp`Ven+l{p-w?(eJTKPJ8Ht&&re@pFOhaIJ)3`j|MJag6Vw)&EOzJi`P`PfnXa9T4j zqo$gtF;9a@vq_`D34;ljJFoFD8%%HDQHP}IhZ&35FNN8Ovl1DW%+z3Zs8d@ZAl`7(X&ocOZslt`)wdoE1-g&H)78&qol`;+ E0QhxG%>V!Z literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/item/aluminum_wire.png b/src/main/resources/assets/createindustry/textures/item/aluminum_wire.png new file mode 100644 index 0000000000000000000000000000000000000000..6f5273ce360f7c3e4731bae04133efd98d434b3b GIT binary patch literal 243 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJV{wqX6T`Z5GB1G~mUKs7M+SzC z{oH>NS%G}f0G|-o!s3n%+jdQyGTYBT=koRIZ{NQM%G^1c^cP66mjw9*{|5sGDQ{*s zpb%$)M`SSrgAf=q_9*RS2MUIGx;Tbt1ecx(A+zhPz00mN0S3trKR#{z zpCZY?)m(m_ulZwhaJ8o~%QDGlOaf}R1WL{-^eW8Cn64n*utu_FeSW<64TcHFwwEiM zW6NaN=s0Wl^*Dud3=^1UFe->Q+)(h@!l=Mt%#tSHIV+K2iG=Lp)eC`c@BZ{->jW#? RV4!0eJYD@<);T3K0RV~3P|pAW literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/item/bottle_of_concrete.png b/src/main/resources/assets/createindustry/textures/item/bottle_of_concrete.png new file mode 100644 index 0000000000000000000000000000000000000000..f4b860a3eec3ac4396b01132c800fca50b02f7b2 GIT binary patch literal 216 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`^F3W0Ln`8u6C|!Y@LKo0ULfw} zx?l3KeF{51efj<0`1SNdAD?~B_b_Hz!kA*r;cqUke3wC>A+zhPz00mN0R~9{35gH$ zb(kFzCrp~ea!f^<=`v4INS%G}@0G|+7H#fJUqN4Eda8py$6)RRun>MYYqTkL_|NoycV+K$y z^P80GK#I2{$S)Wu2nP(dFO=GV5}XAdk;M!QLSW3;qqLJ9D45{s;uxY4TzW2=uR(#w z<>E9+F0SA4>jUK6dcUu>%$)31`&2=yVL`H-LeCCIhCt`+h6$Pz15c{S7TN8Yqdq4t z+DkZS_52rBHwES=$ZxQ3(A~f&YM|^LIp6B+aq%}NS%G}50G|+7Ta!csRp)@fxzV|&+#D-ar3^Qv2)^7X`tCu%ooT`W!4VD3ZKFMGaq7htsCYp;u zk;CC)&DXO3x94tJ!7=N%U=_#QINJkX6MDWaNHuEM;VRvr6Zt@LqU2vD4#T!7-}n=< z!auP83N72_e?md&<}ps!t#blyPg>o}+@}}tmqBAHm)feMMQeeUFnGH9xvXNS%G}@0G|+7H#fJUqN4Eda8py$6)RRun>MYYqT?&t;uc GLK6VGcwlP) literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/item/cinderblock.png b/src/main/resources/assets/createindustry/textures/item/cinderblock.png new file mode 100644 index 0000000000000000000000000000000000000000..18096e69e67f71ade0eadca79cfa42e9422add29 GIT binary patch literal 246 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`dp%toLn`9-_IvX&DGIn)s#Keu zl8h)~_{PTH(5dHf#U;NzOnvEG$rKs!vY^ke>()yq{|huccFd>xuu_TT^|Jl3s){YC zoNWwD3^{9a&+RO;k~=13B9N!-!+6QIlWn=Q;2|5wwV}^k7nv(nExw-@C-9D;_}ru^ zm!bo_CaSSlOLJy5e%~hxZ^&fyRYNf;~U`naqmsoptzjkmJmu(=i`dS9A+; ueLFAwpi=P4(ff@FqAR*DWPP|^#qdgT_IA@J&elMWFnGH9xvXNS%G}%0G|-oR1J;UuC80XyaJ@99mT|2ot!4QxD*)~0p-8EommH@I7@>3g8xGS zL$H5^5J<4VBeIx*f$uN~Gak=hkpdJf_H=O!(Fl(1zb)jf$iw8xarOWIM@`Q!&3vZ0 zyQk|${b%6=H{}^a%s0!ZRHcasJC=2t&0o}NnAu}`@ZF{vS)ANrLDs44;%vba)?1v2 z)|om_*q)@7?^(z1fh}Sn_~u7|?nK MPgg&ebxsLQ0C`GZ82|tP literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/item/copper_cable.png b/src/main/resources/assets/createindustry/textures/item/copper_cable.png new file mode 100644 index 0000000000000000000000000000000000000000..85b48caf1b3febd8acebfb31ee86f207d8a85437 GIT binary patch literal 242 zcmVDDk@k!*^~Axc=kv5|9?c}6;iU;Y~XzG!DwGzvMs~#Z{>ZUIkbNw z7@pT7y&s1OuiL4ScAI_(itp#Knl9t^t2533JlznOxC=}@5MWM$L%@?*uus=ldG9Ib zOfg1EDOK>ygb)ZGUDt$56qQmM2m~DHoSP4jX5Aeu2CSL@mp@OyUw3H&^Dpog;y>#p slEBjqfUH%P>ueUYWViNO0_|U|57)fU*`uxIjQ{`u07*qoM6N<$g0GomumAu6 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/item/copper_sulfate.png b/src/main/resources/assets/createindustry/textures/item/copper_sulfate.png new file mode 100644 index 0000000000000000000000000000000000000000..f40c72317d059c28ceb703c744414c4ed396b488 GIT binary patch literal 266 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJV{wqX6T`Z5GB1G~mUKs7M+SzC z{oH>NS%G}%0G|+7hU6{lkKJUjYK&O$`~gu4irrGba4#P2<|;+DdcR(!xW%$+v&S~p+NmipH%@f z)wveef3i<_)Sj(8#pfn#hv@H=BfKjjejAi8Wn7)qd}a}2jE;b2&}+X99LqAEG4DHk vcfsvq^B#_Mc^AyL{){@~_VIO_`CWO<@2uxtZ)>^%tz+bP0l+XkKDjr`t literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/item/copper_wire.png b/src/main/resources/assets/createindustry/textures/item/copper_wire.png new file mode 100644 index 0000000000000000000000000000000000000000..1d7c898d5859d74d4d2c6648e0abd8421cdaeebf GIT binary patch literal 244 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJV{wqX6T`Z5GB1G~mUKs7M+SzC z{oH>NS%G}f0G|-oDIOjVs*`ra1jT9?e_UPq|57hd#(jB9}F0zyqVpA zLYxI2k;M!QLSW3;qqLJ9C>ZML;uxY4oO{+$=zszT^MQ;B|Lt!oMC2}yN%|)6aQ<)B zJFCp2USBNzopr0F4z?qW}N^ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/item/ethylene_bucket.png b/src/main/resources/assets/createindustry/textures/item/ethylene_bucket.png new file mode 100644 index 0000000000000000000000000000000000000000..49912206291a61d667d442319bc54bc3e5923fb5 GIT binary patch literal 279 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJV{wqX6T`Z5GB1G~mUKs7M+SzC z{oH>NS%G}@0G|+7H#fJUqN4Eda8py$6)RRun>MYYqTiI9MZVJp#kl$e6pu2%l)Iixga=z8smpVqf9AOL`^HE(T9mKbLh* G2~7aCB4N@1 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/item/flamethrower.png b/src/main/resources/assets/createindustry/textures/item/flamethrower.png new file mode 100644 index 0000000000000000000000000000000000000000..70d9270ebdbb72d8f6a9e653f8e57308a207543b GIT binary patch literal 777 zcmV+k1NQuhP)7gDkROi9pH%DXU}`Dcm8~;V>o@sZdQ}_h*_J z+ubgyiuUm8Q_TBq%cK$hF1dm=EZ;oBOY4Auab`2jDfWL<%PhSs0zB9hXW78Cl>0~lAcj^(iWFDZ_*$K#?_S}%+()d@ zvUib4*yzXSP(&Asy(WtQ+W_ZyXa(@hYv1_ralJvzW$O>AM&^DBZ-TLevL-bKUXr^i zMIHf;{=8j1w-*$EJ31r~Pa;LVSFr-%p$LQ}%SPpX3I;rcRS4ig??QlLq0LVlqWdX) z7gJOLihT?03&jes`W^mxsGeK50o%L=ixnV*?FC@J@N-{P4?vJUwu`_--q`t{-Avv~@DQSDss*Se+(q>@d|rR)t24a>s%%Vhw4ehBXFe+ANQ z)nJMM*EhF;bXzr;BEYvFSAld}HJBm*zcTq^eLUuJI0 z4hX=&x&oadz{%@3fplATV7GTI0RC|z-L?p&2wn33X~Fl(=p@c-i?((jwLWVm^GV3@BY!4 z$!nSSh=+l3f}#S?Cdr!u6C`#;&0%=N} pwp*E*XTpOVHpU5Vn@oe57_xJ-R&r*UZUwrC!PC{xWt~$(696mwLxTVS literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/item/lead_hoe.png b/src/main/resources/assets/createindustry/textures/item/lead_hoe.png new file mode 100644 index 0000000000000000000000000000000000000000..38b43a81079c37a56869edf6e5beafcefe748620 GIT binary patch literal 248 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJV{wqX6T`Z5GB1G~mUKs7M+SzC z{oH>NS%G}%0G|+7J#)v}Nt46{jbn<-Jk3Ni{Ny^*)iva}f%2Nuw(S5?oFzei!T+Iv zA=tk{2qakG5n0T@AOyyYJxV*-fr5daE{-7@!Lerog$@|7umm`r`s*LVE4}Qu@V!|R z{xd18;^a4e-qF3a#k1Ub!ii+zn8<4^cg3ok>%I#*e6bW+z;qLu77Uw8nW$>8bg K=d#Wzp$PyAA4jMF literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/item/lead_pickaxe.png b/src/main/resources/assets/createindustry/textures/item/lead_pickaxe.png new file mode 100644 index 0000000000000000000000000000000000000000..8752559801a80611a6007027f234d37c89524cef GIT binary patch literal 192 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`?Vc`3s5@LnL5VbfUy!$rIf+a=i?q&TY>XP-52xWEu&rp&x& pR^d$_0fA)WIEG6e+tR!k7&fdcyA?Kx)ez_;22WQ%mvv4FO#p#JLOTEe literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/item/lead_shovel.png b/src/main/resources/assets/createindustry/textures/item/lead_shovel.png new file mode 100644 index 0000000000000000000000000000000000000000..d0ae833950cd75855d33f8510e5d28c1582fe050 GIT binary patch literal 161 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`8J;eVAr*1S2@*yQ=kI*9=ji5^ z`tLqnnZrRUTiur_dHo5OOFWI4eVTgA*=!p-%@|^hJJe1x2z)RRUg}evzUx;#uVvmT zlja{P+2=k?Zq8QYTyWb*Na1$c1h=kSwP<6W29w|vhMf!yiw?!#p18sb*ep z#IR&#*(DVNF>w>MvkWty&3I&ViMJv1TbGZDzwwE%326ep)@K!tDzF;3s${ciHo5Y4 zuw}Abyrx(8!}KtN&Vqzl9+!BSP89lVN|SK-X6|Erv8`fO=fCqGCNpQV+~g}}3}kCC zDPOkw|Mdxv+ir6ibF61nP;WLkkv1bOr6JsyV}fji0YkCYPM|9@EoRu{JmV?>I+VfF L)z4*}Q$iB}O)yHQ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/item/lithium_blade.png b/src/main/resources/assets/createindustry/textures/item/lithium_blade.png new file mode 100644 index 0000000000000000000000000000000000000000..1fae2b5495d980432ce92ae6bb2b851a420f753c GIT binary patch literal 297 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJV{wqX6T`Z5GB1G~mUKs7M+SzC z{oH>NS%G|m0G|+78+)hO^X8jbSQnI3^iH0#VcV{^@83_HGCMLZ{_^$f0l^WTW}+E> za-Hew8gkq~P1E>=p8+X>k|4j}|EPfBfpV-QP>!>}BeIx*f$uN~Gak=hkpdJ<^K@|x z(FhLhkLGJo;9;2_CL;LqZ+^DC!Y=!gwApG7`x?`FbP0l+XkK&M0lR literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/item/lithium_blade_lit.png b/src/main/resources/assets/createindustry/textures/item/lithium_blade_lit.png new file mode 100644 index 0000000000000000000000000000000000000000..6f9b989181e8261cc3e585955501532f276db459 GIT binary patch literal 498 zcmeAS@N?(olHy`uVBq!ia0vp^0zf>0gBeJg&6Vy3QjEnx?oJHr&dIz4a#+$GeH|GX zHuiJ>Nn{1`odSG9T-VB3+1NYnQr5ogqyM-x*v!KE`@Pc}w(WZR{{6%$voBx2UQkjI z85bWA9ML;@il>=qhM(M`C|?aZ?#^`e+4JTDjoB4wE(WB;N`m}?|6>CTjF%2P0jl6E z@Q5sCVBk9p!i>lBSEK+PDDLUv7~<$Tapw_D1(yjbqMJ(&et%=loB3eE)j;+v%+Qw-q!dWjXAX>fctcA{VB5 z)1g+U^2WQ!PaD3>>vI2HfAVkgv%;12dn$F#%Xv!2h6gqa S%|(FW#^CAd=d#Wzp$Pyv6VUnq literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/item/lithium_blade_lit.png.mcmeta b/src/main/resources/assets/createindustry/textures/item/lithium_blade_lit.png.mcmeta new file mode 100644 index 00000000..0645f48c --- /dev/null +++ b/src/main/resources/assets/createindustry/textures/item/lithium_blade_lit.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 2 + } +} diff --git a/src/main/resources/assets/createindustry/textures/item/lithium_charge.png b/src/main/resources/assets/createindustry/textures/item/lithium_charge.png new file mode 100644 index 0000000000000000000000000000000000000000..b2828d34d58f0bb4b124d1627c5954a06e6916f0 GIT binary patch literal 237 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJV{wqX6T`Z5GB1G~mUKs7M+SzC z{oH>NS%G}%0G|-o!r~4;|D4O$ufKi&e&Uqb8@BE0Do>l;Q3jM(68-uWNO6_~`33)n z0)}A!3L%hSfk$L91A`D4GxjL$WCsemdAc};Xavvg@#JGr;5fo2`1HSi7|ZmE%kw;f z*{VKjKe!;`(Ku7lB6>n4*P{f^mpePwh%gS!dGI}<$nIAqM RIss@RgQu&X%Q~loCIAb!P!|9I literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/item/lithium_ingot.png b/src/main/resources/assets/createindustry/textures/item/lithium_ingot.png new file mode 100644 index 0000000000000000000000000000000000000000..8f0ace082dc31c4c408cf8758d8083ad8dfa11c0 GIT binary patch literal 268 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJV{wqX6T`Z5GB1G~mUKs7M+SzC z{oH>NS%G}%0G|-o*&SsY7WD1gxUe=W>dy63r;qLIDo-m+3Ixh){Y^a%q&Q20{DS{O z0Yk8Vg%C)vz$3Dlfk6n28GDp=vI7NEJzX3_G=gi-dGj4m;9$8>_~h|l|2vG?mv(4q zKXY_hv$~F9w=DzDxxBI_%k3Nt%YO^%xO(|KvSYoxJ!5$oOUpzz+ZJ)Aw2l?dnkO0? xl-rWNO%;kg(ZwtDZNqB&Z+yF@_LUxt;%81~-OsDfRtU6^!PC{xWt~$(69DW=TqXbj literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/item/lpg_bucket.png b/src/main/resources/assets/createindustry/textures/item/lpg_bucket.png new file mode 100644 index 0000000000000000000000000000000000000000..d1d8d3f06af9776b1c9b5db87f49e5611d59f20e GIT binary patch literal 279 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJV{wqX6T`Z5GB1G~mUKs7M+SzC z{oH>NS%G}@0G|+7H#fJUqN4Eda8py$6)RRun>MYYqTu0f_JvX#P=d3-BeIx*K?sZ)dz5yvgEV=%IEH8hm!6B}Yf#{E zxj0Rdi|cp%`T#k%-tVg|Gbel1K2?xvSdc8I(6hslA<#LyVS?twz>{jSMRt4UsLzRu z_7VMSeUWWfx>??eCNv{Oj#o+1c=d#Wz Gp$PyKB4fe; literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/item/magnetic_ingot.png b/src/main/resources/assets/createindustry/textures/item/magnetic_ingot.png new file mode 100644 index 0000000000000000000000000000000000000000..bb368cf93aac8c218bba624954d202ef783d02a0 GIT binary patch literal 312 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJV{wqX6T`Z5GB1G~mUKs7M+SzC z{oH>NS%G}r0G|+7Gcz-NeSK$VXA27p6B84Ee}8*>dv|wtTU*=6$Ve+ID`R70J3BjF zU0t9Kj=8^g04e^GAiv=MD1hP0of!*(Qk(@Ik;M!Qe1}1p@p%4<6rfNS%G}@0G|-oS)mMb%k^%q3Oq60YJH2#%Uwy^wzlM&Gyb^H_W0?xgJ)*6W!eGN z)-98?1yZ~vL4LvikpP433#B%o1ZROqWHAGS5EwJ|DD7ki3g&paIEH8hFFohYcf^2$ zIiSar!{obt{zCaoliO9oKLuM){5vf^;Z*59RbP0l+XkKu%T-2 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/item/neon_bucket.png b/src/main/resources/assets/createindustry/textures/item/neon_bucket.png new file mode 100644 index 0000000000000000000000000000000000000000..7015678288407a4243c4c06bbb1bad494b0e036a GIT binary patch literal 279 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJV{wqX6T`Z5GB1G~mUKs7M+SzC z{oH>NS%G}@0G|+7H#fJUqN4Eda8py$6)RRun>MYYqTuL4LtNK{#NreWBC_l;AAzh%9Dc5CUVy9;Kb^K*0o07sn8d;L>x^d<_ab zE*Gasa&i5RUmqan*86?6W#(kB+NTOq4GWUx6nb_zG6XtjH%!o+7NGRG!{G|!kF;>#EfqA%pKWIBD5i(^iZN{n;jlNM-OdC-92=6?m| zG{1EW$vIMiCdtMuDb{BgnxrN&dN7_4n82u#>B45ftCB5az`*cT&7&{dMo1j!P6kg` KKbLh*2~7a8Vnn$B literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/item/pink_cooling_fluid_bucket.png b/src/main/resources/assets/createindustry/textures/item/pink_cooling_fluid_bucket.png new file mode 100644 index 0000000000000000000000000000000000000000..4cf476695af5970ada06693bdc059a2fee5cfcf9 GIT binary patch literal 227 zcmV<90382`P)NS%G}H0G|+7e?LDXBcuGB?1t*9$nfyw!~_);l{c@SpFVaFsKjsk8lVmau96_X z;Quhdu<4A>d7vm~fk$L91A`D4GxjL$WCseSd%8G=XavWeVdP_0&kzO4?w4OLgz zJSdR8XJ;_oGoSlV&1A9N3sc^n_}a>Iw#rWC$ILVQ&cE1Pq|Q1V23pDB>FVdQ&MBb@ E098s~RR910 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/item/propane_bucket.png b/src/main/resources/assets/createindustry/textures/item/propane_bucket.png new file mode 100644 index 0000000000000000000000000000000000000000..753af0b74b29678a5b121b97660d4265f7e65287 GIT binary patch literal 279 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJV{wqX6T`Z5GB1G~mUKs7M+SzC z{oH>NS%G}@0G|+7H#fJUqN4Eda8py$6)RRun>MYYqTiI9MZVJp#kl$e6pu2%l)Iixga=z8smpVqf9AOL`^HE(T9mKbLh* G2~7Z1*kMWl literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/item/propylene_bucket.png b/src/main/resources/assets/createindustry/textures/item/propylene_bucket.png new file mode 100644 index 0000000000000000000000000000000000000000..39a2429e10344ea998753d599891c7c17c54cf36 GIT binary patch literal 279 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJV{wqX6T`Z5GB1G~mUKs7M+SzC z{oH>NS%G}@0G|+7H#fJUqN4Eda8py$6)RRun>MYYqTE9+F0SA4>jUK6dcUu>%$)31`&2=yVL`H-LeCCIhCt`+h6$Pz15c{S7TN8Yqdq4t z+DkZS_52rBHwES=$ZxQ3(A~f&YM|^LIp6B+aq%}NS%G}H0G|+76I*u`UB}f2_D@*4G^V($cG4uT$V6FHCux#IhdJ0UHBbeA(j3u zJ$b6CFVBlVFPWuo*6v-ZU*7M?yu$YG^;4G^Dlf%LW><2$=oki1S3j3^P6NS%G}%0G|-o+N`L;q`=u7Wg8asb(N=`KDP7D^;7#cE(FSVywoWJQk*40e!>5t zfFanwLI@;S;1OBOz#s(1j6F&_*@1!uo-U3d8o{yWF7h2w;BX0K;rjPq{5#*a*}l&Y z9${A6W^b8rD$3q~|BfEF0FW?y5e*92^BQW99$= literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/item/raw_nickel.png b/src/main/resources/assets/createindustry/textures/item/raw_nickel.png new file mode 100644 index 0000000000000000000000000000000000000000..51e02768efbcc9bf55b567a7f9e46f566f9b9763 GIT binary patch literal 210 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Gd*1#Ln`8u6D0O6*rxQ*-pFnG zac&1GzW4FJ{+~J;n^5)a3D+ZD$7?-3j!A_N<63wbB^%aBwmIrCN;X|rn82ve`eN3^ z*iC7b=4H+avm8x41dA*hekfQ9yvsRv$b{kMdxPal*$gKSX9&0%GNdV=nQ5TjWO5*; zWsT%v1_Ab){RXTGJ^{v?6cuJ){L604A*uY@nUO`5$BThM@Bz>Ki%xRyfsSPGboFyt I=akR{0OT-8fB*mh literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/item/resistor_.png b/src/main/resources/assets/createindustry/textures/item/resistor_.png new file mode 100644 index 0000000000000000000000000000000000000000..db918536c7bfa85efa9d897663563f956f4403da GIT binary patch literal 256 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJV{wqX6T`Z5GB1G~mUKs7M+SzC z{oH>NS%G}H0G|+7C-+VMS=XlR_+)BYme%!n$Ca-g9UZ~J!KtaKKqawdlf!`&S4ogx z@P8O!*mOqcJW!Ogz$3Dlfk6n28GDp=vI7M}JzX3_G=iu0cnTd*;9y~8AVtUY zscvm!=CoS-$dwAX+uS`~!|kjgFIJP4 ksO>-TV6M^8cJGvZH#W2T3G17N0WDzgboFyt=akR{09vI~Pyhe` literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/item/steel_axe.png b/src/main/resources/assets/createindustry/textures/item/steel_axe.png new file mode 100644 index 0000000000000000000000000000000000000000..ab5d8a025bd36e4646f55774b9ccb22a357aac1b GIT binary patch literal 192 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`?Vc`BqSfW+^{@^j~~R$b>Y8U1v9 z&V@T{%S@l_=rm?vacFBWIFXj(?7`(TW3!{#;XTe<7!}UWefg>&{cw!S6vh)~i%$!( rh-AB!nRzBW$YEog;I_#$n2F(ra8bbP0l+XkK*pf(^ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/item/steel_boots.png b/src/main/resources/assets/createindustry/textures/item/steel_boots.png new file mode 100644 index 0000000000000000000000000000000000000000..a3372a6dd5f5c19da4b79760c46b97fa339a0fde GIT binary patch literal 241 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJV{wqX6T`Z5GB1G~mUKs7M+SzC z{oH>NS%G|s0G|+7V`Eb@3+vhQ=10cGH#D~ulvLQ*I{_u{EjjiMNO6<|`33)n0ETNS%G}%0G|+7GYjj2l8VT<_<-Pu+4JT%G`HE+FzN;}zsg4v!fjv*SsxxLYRM;$nv(hpq!7ap_a?UQHAemM7a ztp4|fF)aIy#96j{hc}FA_a>SyV|13zR2I3q3mxK!?Jw|K{vWA`4cc*V3UhP5Hk$V~-kErX}4pUXO@geCw~ C$XNS%G|s0G|+7GYjj;xcGvS3LASTV`J0V^X4}+w*e*Z{y&}pq&P}~{DS{O0K>iJ zy^%mM&H|6fVg?2wFlOvg+Q|+S^zd|X4ABUldd88j!GVL>p)2G6|HrM1A|H8HD;TJl z?)xO_^D>lqp5>#)J?Br$3OW9jJ<#@UhQLhDNqKv{xyv-ynzb!UcxFC<`_ci{k`;Db RZ-Hhqc)I$ztaD0e0sve@O=kcA literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/item/steel_hoe.png b/src/main/resources/assets/createindustry/textures/item/steel_hoe.png new file mode 100644 index 0000000000000000000000000000000000000000..213feabaee736c6162996644104149a9f19268da GIT binary patch literal 253 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJV{wqX6T`Z5GB1G~mUKs7M+SzC z{oH>NS%G}H0G|+78+)hT$x{kSD$FdbBje&d%|tW&pddEalo5gdCaTI_%U3roOPj~oBnRy$hE zonLUA^M*bvgXPuF3dbVEU3wH&AMC7r%_5vKOToJ~f5Q8F!4GPAIIoJ|v0M1N;iCME hzl?LM>#CB!F&V0JXo_u>+zvFI!PC{xWt~$(6999_Q%nE= literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/item/steel_leggings.png b/src/main/resources/assets/createindustry/textures/item/steel_leggings.png new file mode 100644 index 0000000000000000000000000000000000000000..eb87fa07a5051a3ebf93deff21eae230409bee9c GIT binary patch literal 242 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJV{wqX6T`Z5GB1G~mUKs7M+SzC z{oH>NS%G|s0G|+7GYe~DW7CG_w%POM7nD@k*gHkW#RDb1{#%9sDUOmLzu^B6z;Lg5 zZzNERv%n*=n1MkEj2U~BcCrHn{XJbALo|X*&w274FyLTz@QL{M|M4c1Q;V*#pFYF+ zN&CKotdD|RbEHeK)T6E&O%`uhm`j)^&bXnN{+&O literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/item/steel_pickaxe.png b/src/main/resources/assets/createindustry/textures/item/steel_pickaxe.png new file mode 100644 index 0000000000000000000000000000000000000000..d5783890bfcfef08852b6f9efa8ca82182ddd91d GIT binary patch literal 200 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`{hlt4Ar*1S2@+cl9J}|@-pVb! zS-3&uyWhM|`xh)>@;Q7%q0ry>;(y7yq846eO|#7#+8&?SQL#aB?#oyIO`q)Gly2a2 zFl**vNSx64;!_3VnVSl;6ZI5t2~0>!NpCi3I@F@UJR!HOQ!tld*I5IGOCA@vZ{)Nw yHt8KmH8wi1T5|eX7Dhv}$E*syDcQ?d7#M!*S1&#En{O7-X$+pOelF{r5}E+xdrP$d literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/item/steel_shovel.png b/src/main/resources/assets/createindustry/textures/item/steel_shovel.png new file mode 100644 index 0000000000000000000000000000000000000000..ba1524cfde02bac94e3438b2f7b9bc1924e0b7e2 GIT binary patch literal 167 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`d7dtgAr*1S2@*jEj@^4{&oMhP zqB*mqau36jh2@__4D>WsGDtVAV^eR)WXtU7>1N;DX~qz1+@W@oLEwXl@KT@R^j*K| zc`fr!nKb`U$v*dCa&xvC=YrclLJGIjCb)Iwszn=fH1IHFs@-NNVr1BOJKa(5>ZQj( Pn;AS^{an^LB{Ts5&;B^$ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/item/steel_sword.png b/src/main/resources/assets/createindustry/textures/item/steel_sword.png new file mode 100644 index 0000000000000000000000000000000000000000..f0179d1039ecb8339e4ac3b71bf4c951f03feb20 GIT binary patch literal 215 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`^E_P~Ln`8u6BL+l+_3)Jo>*ep z#IPju+n%2ZIcbT$vltD|vZ{(Mk#;aWyLa;P3m(QgArnO#ekk}(Ed2Pxw3)%f&_hut zD`6JrtsWkSSq@STU7gz`B@e_f8mTB)G?|<=XvpC>Im`B}%m4HrCmT(bq@AWXDx97B z^3{LSCp!*yB}zH6Jv3zyt5uktIBO!Kqj-Z!GZW8xr5c7b=AA%iM#Zn$FuP*TT%b!C NJYD@<);T3K0RTpaOql=x literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/item/sulfuric_acid_bucket.png b/src/main/resources/assets/createindustry/textures/item/sulfuric_acid_bucket.png new file mode 100644 index 0000000000000000000000000000000000000000..fb79fed5602f28ee70ac3d3dc55c5de673595f98 GIT binary patch literal 287 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJV{wqX6T`Z5GB1G~mUKs7M+SzC z{oH>NS%G}50G|+7Q&ZE5ii#OCX1xEk;^VIsU%syV^mE0R_p5H)xUpizilU;TY15|t z|NkGT{AbNyX&}W{666;Q6hQz6*8_J>0A)A}JR*x37=*x>u}5hqJ5Vsi)5S4FBRKXv zHIb&A76DvSUqd(TW58gHNGkDg7~pU+egNX_taM$+;iZmjYoxjdFonw$6AiQUkt~E Qfc7zXy85}Sb4q9e0MvYP$p8QV literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/item/synthetic_leather.png b/src/main/resources/assets/createindustry/textures/item/synthetic_leather.png new file mode 100644 index 0000000000000000000000000000000000000000..81467687aba3a65ae3d01223cd49dde6b35f6e05 GIT binary patch literal 262 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJV{wqX6T`Z5GB1G~mUKs7M+SzC z{oH>NS%G}f0G|+7V|8U`6TQ~7h@23QDP?J~uC_p#$D5Z=0aENGL4Lvi!GJ-^o7oL0 z#981GS>M3F_*e3Pk5-Una;4~4!6|O8BEMicnTWQ>fD~FYzfPFKj+A{OOaW} t%Wf*nmVJ}9!?5GRN74WP*K@D=%E0Eyd^V#-|2WV}22WQ%mvv4FO#p}IRgwSz literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/item/synthetic_string.png b/src/main/resources/assets/createindustry/textures/item/synthetic_string.png new file mode 100644 index 0000000000000000000000000000000000000000..f1c9690d70c72a14daf6e902e5caf2a0d7730090 GIT binary patch literal 241 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJV{wqX6T`Z5GB1G~mUKs7M+SzC z{oH>NS%G|>0G|-oGcO-K`u|7ySSKe+CDwm0y5-&H|6fVg?2w zFlOvg+Q|+SjPrDH4ABUV?PugWpuoYr^w0nEuSI>fB`$i()wR67@ZieO>M2VCzO!1=Wz7x^JeoI c_bmF&7<`E-m&u}VBG4uVPgg&ebxsLQ0Ki;O761SM literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/item/zinc_sulfate.png b/src/main/resources/assets/createindustry/textures/item/zinc_sulfate.png new file mode 100644 index 0000000000000000000000000000000000000000..21bae59ba2d13449e94a7249458aa1f2022031bb GIT binary patch literal 246 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJV{wqX6T`Z5GB1G~mUKs7M+SzC z{oH>NS%G}f0G|-o&d$!Xw6s&FPCb11aO>8s^XAP1%G^9$xdceDmjw9*{|5sGDQ{*s zpb%$)M`SSrgAf=q_9*RS2MUIJx;Tbt1TQ^nD0V=BgE>Iqz~BBmEL)tfr%kN+nECf4 zzrp^)mQ3zqJRLET3GPX*37jFUUQQc&PB* zpcKUW#{36i82^8%`~Uw7wcvbodAQ)Jg$uwK#KxuxSsq1WS!T)qw(52ijUXB(50V3^ zp`ON^m@J3}AO<-JSu;!{NDWqvAW4v7n17J{`pQcbtj0pe451Ok0ow?*0ma78H^B-) ze5@Ly{o>#Xku|{#1K9{tgQ5|p8Lk1Q35Y=&K;owjgfKNxq!9#Qn!$>p&ID-y@o{Q` r0gwVvD1$T*tqBHT3PCi{nrIFHKsqKyFi{8$00000NkvXXu0mjfG(T7l literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/models/armor/steel_layer_1.png b/src/main/resources/assets/createindustry/textures/models/armor/steel_layer_1.png new file mode 100644 index 0000000000000000000000000000000000000000..dac2be06cdcd2b9da0c27f2f42f5202d06f085bb GIT binary patch literal 676 zcmV;V0$crwP)Q;5q z@9u5`@7{m7#6EudeEIeJ&*kC!<8sfu`8NlWk3IePxftV92=MyN+a=L2U%xFK5CL+Z zx%kY#Ihe;;3Gxm&jR0x$B%8`309|m3Es(vQgkyXK7~jNK zp!YcUeCsiirvnhdoL+sH54 zRlB-u4=2pEPmv>D%<=4wKIwI`J?CdYKii`8v*uj8_HM{NY-7FyZ+>Hxh}UZo+&za7 zU=0N9d9dXVECgo34~bMN`_=P+z3llB+!^-&$5C;#%BAD-CE;rSbR_Bf`&Ww{L4dq- za+b*Tv;uI5+D(8{Z-FgzMG{m*8hsh?H9rP_bW+6E=LZYm0<~`x$8-?5MKI5an(zM_ z@J9mlk=p{aZx;dF0eugLB=DJ!DE+63`4$YzvpGyXCqR7sPRIIB;0ig>QPSp2P(s!UXP$Z}F*qd{mPJ zxgY(XFsFT2p%khDQH0Qk@bG*~h z703@#tz0`W{2q@g>f}1vaExU<^lM<1=jdeK~il_c+I>Xpi}4;`;C|KXW=hVRFB_37v%B)0000< KMNUMnLSTYWrc2EL literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/models/armor/steel_layer_2.png b/src/main/resources/assets/createindustry/textures/models/armor/steel_layer_2.png new file mode 100644 index 0000000000000000000000000000000000000000..2f7cbd7ec99df161ccae90a1c3df5b1226186f9e GIT binary patch literal 329 zcmV-P0k-~$P)};7S@3EW}A$*?J7lgeI`^hw>iK&2 zTI)O+SW`sClrt;bpw z4WMCdz?hErx?gb&4Z2*d`xOU1Z7@P}|7y$wgzn3HZha{9casyp?fR|H(HxNa;vAa4 z>TD+0GMLx*ogMLIIV5=>ho{zQTD9({&zl`;iaIxklN9r@j+#Dic8vW!VrV{U-fN(y b&zqVrkc$dURT)W800000NkvXXu0mjf30RLD literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/createindustry/textures/particle/electric_spark.png b/src/main/resources/assets/createindustry/textures/particle/electric_spark.png new file mode 100644 index 0000000000000000000000000000000000000000..297545076819093c8e77bab7035a8875e0812e17 GIT binary patch literal 148 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`(Vi}jAr*0JCmC`vDDW`<{lEB6 z?`-`7gCIq3hl|_T{SF%IPMdV{fXm?<%gY=-s~-{)4tOLqA%NSd(K~7S4X4f8H4~Z6 xu3vKY?W%Pxs&^Xya-QAiF;PNu(gi<1o#^{B_ORzf2?DKQ@O1TaS?83{1OSM%HJtze literal 0 HcmV?d00001 diff --git a/src/main/resources/data/createindustry/forge/biome_modifier/yeehaw3.json b/src/main/resources/data/createindustry/forge/biome_modifier/yeehaw3.json new file mode 100644 index 00000000..7194de3e --- /dev/null +++ b/src/main/resources/data/createindustry/forge/biome_modifier/yeehaw3.json @@ -0,0 +1,6 @@ +{ + "type": "forge:add_features", + "biomes": "#forge:is_desert", + "features": "createindustry:oil_well", + "step": "underground_ores" +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/railways_liquid_fuel/diesel.json b/src/main/resources/data/createindustry/railways_liquid_fuel/diesel.json new file mode 100644 index 00000000..7e1fedff --- /dev/null +++ b/src/main/resources/data/createindustry/railways_liquid_fuel/diesel.json @@ -0,0 +1,6 @@ +{ + "fluids": [ + "createindustry:diesel" + ], + "fuel_ticks": 480 +} diff --git a/src/main/resources/data/createindustry/railways_liquid_fuel/naphtha.json b/src/main/resources/data/createindustry/railways_liquid_fuel/naphtha.json new file mode 100644 index 00000000..74bd8477 --- /dev/null +++ b/src/main/resources/data/createindustry/railways_liquid_fuel/naphtha.json @@ -0,0 +1,6 @@ +{ + "fluids": [ + "createindustry:naphtha" + ], + "fuel_ticks": 240 +} diff --git a/src/main/resources/data/createindustry/recipes/coking/charcoal.json b/src/main/resources/data/createindustry/recipes/coking/charcoal.json new file mode 100644 index 00000000..f84243c9 --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/coking/charcoal.json @@ -0,0 +1,22 @@ +{ + "type": "createindustry:coking", + "ingredients": [ + { + "count": 1, + "item": "minecraft:coal" + } + ], + "processingTime": 400, + "results": [ + { + "count": 1, + "item": "minecraft:charcoal" + } + , + { + "fluid": "createindustry:creosote", + "amount": 1 + } + + ] +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/black_concrete.json b/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/black_concrete.json new file mode 100644 index 00000000..314fe271 --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/black_concrete.json @@ -0,0 +1,17 @@ + +{ + "type": "create:item_application", + "ingredients": [ + { + "item": "createindustry:concrete" + }, + { + "item": "minecraft:black_dye" + } + ], + "results": [ + { + "item": "createindustry:black_concrete" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/blue_concrete.json b/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/blue_concrete.json new file mode 100644 index 00000000..5499265d --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/blue_concrete.json @@ -0,0 +1,17 @@ + +{ + "type": "create:item_application", + "ingredients": [ + { + "item": "createindustry:concrete" + }, + { + "item": "minecraft:blue_dye" + } + ], + "results": [ + { + "item": "createindustry:blue_concrete" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/brown_concrete.json b/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/brown_concrete.json new file mode 100644 index 00000000..80a9f4cc --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/brown_concrete.json @@ -0,0 +1,17 @@ + +{ + "type": "create:item_application", + "ingredients": [ + { + "item": "createindustry:concrete" + }, + { + "item": "minecraft:brown_dye" + } + ], + "results": [ + { + "item": "createindustry:brown_concrete" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/cyan_concrete.json b/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/cyan_concrete.json new file mode 100644 index 00000000..06840dc5 --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/cyan_concrete.json @@ -0,0 +1,17 @@ + +{ + "type": "create:item_application", + "ingredients": [ + { + "item": "createindustry:concrete" + }, + { + "item": "minecraft:cyan_dye" + } + ], + "results": [ + { + "item": "createindustry:cyan_concrete" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/gray_concrete.json b/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/gray_concrete.json new file mode 100644 index 00000000..3e636631 --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/gray_concrete.json @@ -0,0 +1,17 @@ + +{ + "type": "create:item_application", + "ingredients": [ + { + "item": "createindustry:concrete" + }, + { + "item": "minecraft:gray_dye" + } + ], + "results": [ + { + "item": "createindustry:gray_concrete" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/green_concrete.json b/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/green_concrete.json new file mode 100644 index 00000000..4c626e31 --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/green_concrete.json @@ -0,0 +1,17 @@ + +{ + "type": "create:item_application", + "ingredients": [ + { + "item": "createindustry:concrete" + }, + { + "item": "minecraft:green_dye" + } + ], + "results": [ + { + "item": "createindustry:green_concrete" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/light_blue_concrete.json b/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/light_blue_concrete.json new file mode 100644 index 00000000..ccf2bc9c --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/light_blue_concrete.json @@ -0,0 +1,17 @@ + +{ + "type": "create:item_application", + "ingredients": [ + { + "item": "createindustry:concrete" + }, + { + "item": "minecraft:light_blue_dye" + } + ], + "results": [ + { + "item": "createindustry:light_blue_concrete" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/light_gray_concrete.json b/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/light_gray_concrete.json new file mode 100644 index 00000000..96d74cef --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/light_gray_concrete.json @@ -0,0 +1,17 @@ + +{ + "type": "create:item_application", + "ingredients": [ + { + "item": "createindustry:concrete" + }, + { + "item": "minecraft:light_gray_dye" + } + ], + "results": [ + { + "item": "createindustry:light_gray_concrete" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/lime_concrete.json b/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/lime_concrete.json new file mode 100644 index 00000000..2053e513 --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/lime_concrete.json @@ -0,0 +1,17 @@ + +{ + "type": "create:item_application", + "ingredients": [ + { + "item": "createindustry:concrete" + }, + { + "item": "minecraft:lime_dye" + } + ], + "results": [ + { + "item": "createindustry:lime_concrete" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/magenta_concrete.json b/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/magenta_concrete.json new file mode 100644 index 00000000..f7f4046a --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/magenta_concrete.json @@ -0,0 +1,17 @@ + +{ + "type": "create:item_application", + "ingredients": [ + { + "item": "createindustry:concrete" + }, + { + "item": "minecraft:magenta_dye" + } + ], + "results": [ + { + "item": "createindustry:magenta_concrete" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/orange_concrete.json b/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/orange_concrete.json new file mode 100644 index 00000000..2f9695d2 --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/orange_concrete.json @@ -0,0 +1,17 @@ + +{ + "type": "create:item_application", + "ingredients": [ + { + "item": "createindustry:concrete" + }, + { + "item": "minecraft:orange_dye" + } + ], + "results": [ + { + "item": "createindustry:orange_concrete" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/pink_concrete.json b/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/pink_concrete.json new file mode 100644 index 00000000..3b4d8a02 --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/pink_concrete.json @@ -0,0 +1,17 @@ + +{ + "type": "create:item_application", + "ingredients": [ + { + "item": "createindustry:mesh_concrete" + }, + { + "item": "minecraft:_dye" + } + ], + "results": [ + { + "item": "createindustry:_concrete" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/purple_concrete.json b/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/purple_concrete.json new file mode 100644 index 00000000..5185f483 --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/purple_concrete.json @@ -0,0 +1,17 @@ + +{ + "type": "create:item_application", + "ingredients": [ + { + "item": "createindustry:concrete" + }, + { + "item": "minecraft:purple_dye" + } + ], + "results": [ + { + "item": "createindustry:purple_concrete" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/red_concrete.json b/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/red_concrete.json new file mode 100644 index 00000000..5278abf4 --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/red_concrete.json @@ -0,0 +1,17 @@ + +{ + "type": "create:item_application", + "ingredients": [ + { + "item": "createindustry:concrete" + }, + { + "item": "minecraft:red_dye" + } + ], + "results": [ + { + "item": "createindustry:red_concrete" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/white_concrete.json b/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/white_concrete.json new file mode 100644 index 00000000..7b69a616 --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/white_concrete.json @@ -0,0 +1,17 @@ + +{ + "type": "create:item_application", + "ingredients": [ + { + "item": "createindustry:concrete" + }, + { + "item": "minecraft:white_dye" + } + ], + "results": [ + { + "item": "createindustry:white_concrete" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/yellow_concrete.json b/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/yellow_concrete.json new file mode 100644 index 00000000..f1bf583e --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/yellow_concrete.json @@ -0,0 +1,17 @@ + +{ + "type": "create:item_application", + "ingredients": [ + { + "item": "createindustry:concrete" + }, + { + "item": "minecraft:yellow_dye" + } + ], + "results": [ + { + "item": "createindustry:yellow_concrete" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/compacting/bitumen.json b/src/main/resources/data/createindustry/recipes/compacting/bitumen.json new file mode 100644 index 00000000..a4318f33 --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/compacting/bitumen.json @@ -0,0 +1,18 @@ + +{ + "type": "create:compacting", + "ingredients": [ + + { + "fluid": "createindustry:heavy_oil", + "amount": 10 + } + + + ], + "results": [ + { + "item": "createindustry:bitumen" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/compacting/cinderflourblock.json b/src/main/resources/data/createindustry/recipes/compacting/cinderflourblock.json new file mode 100644 index 00000000..dc30da88 --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/compacting/cinderflourblock.json @@ -0,0 +1,18 @@ + +{ + "type": "create:compacting", + "ingredients": [ + + { + "item": "create:cinder_flour", + "count": 2 + } + + + ], + "results": [ + { + "item": "createindustry:cinderflourblock" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/crafting/accumulator.json b/src/main/resources/data/createindustry/recipes/crafting/accumulator.json new file mode 100644 index 00000000..36f902cf --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/crafting/accumulator.json @@ -0,0 +1,29 @@ + +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "NZN", + "NCN", + "NSN" + ], + "key": { + "N": { + "tag": "forge:ingots/lithium" + }, + "C": { + "item": "createindustry:electric_casing" + }, + "Z": { + "tag": "forge:ingots/lead" + }, + "S": { + "item": "createindustry:sulfuric_acid_bucket" + } + }, + "result": { + "item": "createindustry:accumulator", + "count": 2 + + + } +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/crafting/aluminum_coghweel.json b/src/main/resources/data/createindustry/recipes/crafting/aluminum_coghweel.json new file mode 100644 index 00000000..70bf38ce --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/crafting/aluminum_coghweel.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "tag": "forge:ingots/aluminum" + }, + { + "item": "create:shaft" + } + ], + "result": { + "item": "createindustry:aluminum_cogwheel" + } +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/crafting/armor/steel_boots.json b/src/main/resources/data/createindustry/recipes/crafting/armor/steel_boots.json new file mode 100644 index 00000000..878b6231 --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/crafting/armor/steel_boots.json @@ -0,0 +1,20 @@ + +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "E E", + "E E", + " " + ], + "key": { + "E": { + "tag": "forge:ingots/steel" + } + }, + "result": { + "item": "createindustry:steel_boots", + "count": 1 + + + } +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/crafting/armor/steel_chestplate.json b/src/main/resources/data/createindustry/recipes/crafting/armor/steel_chestplate.json new file mode 100644 index 00000000..7589af8a --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/crafting/armor/steel_chestplate.json @@ -0,0 +1,20 @@ + +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "E E", + "EEE", + "EEE" + ], + "key": { + "E": { + "tag": "forge:ingots/steel" + } + }, + "result": { + "item": "createindustry:steel_chestplate", + "count": 1 + + + } +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/crafting/armor/steel_helmet.json b/src/main/resources/data/createindustry/recipes/crafting/armor/steel_helmet.json new file mode 100644 index 00000000..1949c091 --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/crafting/armor/steel_helmet.json @@ -0,0 +1,20 @@ + +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "EEE", + "E E", + " " + ], + "key": { + "E": { + "tag": "forge:ingots/steel" + } + }, + "result": { + "item": "createindustry:steel_helmet", + "count": 1 + + + } +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/crafting/armor/steel_leggings.json b/src/main/resources/data/createindustry/recipes/crafting/armor/steel_leggings.json new file mode 100644 index 00000000..a9a8a173 --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/crafting/armor/steel_leggings.json @@ -0,0 +1,20 @@ + +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "EEE", + "E E", + "E E" + ], + "key": { + "E": { + "tag": "forge:ingots/steel" + } + }, + "result": { + "item": "createindustry:steel_leggings", + "count": 1 + + + } +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/crafting/battery.json b/src/main/resources/data/createindustry/recipes/crafting/battery.json new file mode 100644 index 00000000..70f4a8d2 --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/crafting/battery.json @@ -0,0 +1,29 @@ + +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "NGN", + "NSN", + "NCN" + ], + "key": { + "N": { + "tag": "forge:ingots/lead" + }, + "C": { + "item": "createindustry:electric_casing" + }, + "G": { + "item": "createindustry:magnetic_ingot" + }, + "S": { + "item": "createindustry:sulfuric_acid_bucket" + } + }, + "result": { + "item": "createindustry:battery", + "count": 2 + + + } +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/crafting/cable_connector.json b/src/main/resources/data/createindustry/recipes/crafting/cable_connector.json new file mode 100644 index 00000000..2079ef67 --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/crafting/cable_connector.json @@ -0,0 +1,23 @@ + +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + " A ", + "BAB", + "BAB" + ], + "key": { + "A": { + "tag": "forge:ingots/aluminum" + }, + "B": { + "item": "minecraft:brick" + } + }, + "result": { + "item": "createindustry:cable_connector", + "count": 4 + + + } +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/crafting/cable_tube.json b/src/main/resources/data/createindustry/recipes/crafting/cable_tube.json new file mode 100644 index 00000000..81c11dbd --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/crafting/cable_tube.json @@ -0,0 +1,23 @@ + +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + " C ", + " S ", + " C " + ], + "key": { + "S": { + "item": "createindustry:copper_cable" + }, + "C": { + "tag": "forge:ingots/steel" + } + }, + "result": { + "item": "createindustry:cable_tube", + "count": 4 + + + } +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/crafting/capacitor.json b/src/main/resources/data/createindustry/recipes/crafting/capacitor.json new file mode 100644 index 00000000..392de113 --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/crafting/capacitor.json @@ -0,0 +1,26 @@ + +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "NGN", + "NCN", + "NGN" + ], + "key": { + "N": { + "tag": "forge:ingots/nickel" + }, + "C": { + "item": "createindustry:electric_casing" + }, + "G": { + "item": "minecraft:glass_pane" + } + }, + "result": { + "item": "createindustry:capacitor", + "count": 2 + + + } +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/crafting/capacitor_item.json b/src/main/resources/data/createindustry/recipes/crafting/capacitor_item.json new file mode 100644 index 00000000..93dd8c50 --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/crafting/capacitor_item.json @@ -0,0 +1,28 @@ + +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + " ", + "APA", + "WPW" + ], + "key": { + + + "W": { + "tag": "forge:wires/copper" + }, + "A": { + "tag": "forge:ingots/nickel" + }, + "P": { + "item": "createindustry:plastic_sheet" + } + }, + "result": { + "item": "createindustry:capacitor_", + "count": 2 + + + } +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/crafting/cinder_block.json b/src/main/resources/data/createindustry/recipes/crafting/cinder_block.json new file mode 100644 index 00000000..45c81b8f --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/crafting/cinder_block.json @@ -0,0 +1,20 @@ + +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "CC ", + "CC ", + " " + ], + "key": { + "C": { + "item": "createindustry:cinderblock" + } + }, + "result": { + "item": "createindustry:cinder_block", + "count": 1 + + + } +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/crafting/cinderflour_block.json b/src/main/resources/data/createindustry/recipes/crafting/cinderflour_block.json new file mode 100644 index 00000000..47c59659 --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/crafting/cinderflour_block.json @@ -0,0 +1,20 @@ + +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "CC ", + "CC ", + " " + ], + "key": { + "C": { + "item": "createindustry:cinderflourblock" + } + }, + "result": { + "item": "createindustry:cinderflour_block", + "count": 1 + + + } +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/crafting/converter.json b/src/main/resources/data/createindustry/recipes/crafting/converter.json new file mode 100644 index 00000000..b20d5b88 --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/crafting/converter.json @@ -0,0 +1,26 @@ + +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + " A ", + "EME", + " A " + ], + "key": { + "M": { + "item": "createindustry:copper_coil" + }, + "A": { + "tag": "forge:ingots/aluminum" + }, + "E": { + "tag": "forge:ingots/steel" + } + }, + "result": { + "item": "createindustry:converter" + + + + } +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/crafting/copper_coil.json b/src/main/resources/data/createindustry/recipes/crafting/copper_coil.json new file mode 100644 index 00000000..896e6a05 --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/crafting/copper_coil.json @@ -0,0 +1,23 @@ + +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "CSC", + "CSC", + "CSC" + ], + "key": { + "S": { + "tag": "forge:ingots/steel" + }, + "C": { + "tag": "forge:wires/copper" + } + }, + "result": { + "item": "createindustry:copper_coil", + "count": 2 + + + } +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/crafting/copper_wire.json b/src/main/resources/data/createindustry/recipes/crafting/copper_wire.json new file mode 100644 index 00000000..4af1d7f0 --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/crafting/copper_wire.json @@ -0,0 +1,26 @@ + +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + " B ", + "BAB", + "LB " + ], + "key": { + "A": { + "item": "minecraft:stick" + }, + "B": { + "tag": "forge:wires/copper" + }, + "L": { + "item": "minecraft:leather" + } + }, + "result": { + "item": "createindustry:copper_cable", + "count": 4 + + + } +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/crafting/copper_wire_plastic.json b/src/main/resources/data/createindustry/recipes/crafting/copper_wire_plastic.json new file mode 100644 index 00000000..dd265dff --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/crafting/copper_wire_plastic.json @@ -0,0 +1,26 @@ + +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + " B ", + "BAB", + "LB " + ], + "key": { + "A": { + "item": "minecraft:stick" + }, + "B": { + "tag": "forge:wires/copper" + }, + "L": { + "item": "createindustry:plastic_sheet" + } + }, + "result": { + "item": "createindustry:copper_cable", + "count": 4 + + + } +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/crafting/copycat_cable_block.json b/src/main/resources/data/createindustry/recipes/crafting/copycat_cable_block.json new file mode 100644 index 00000000..5d2ed017 --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/crafting/copycat_cable_block.json @@ -0,0 +1,23 @@ + +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + " C ", + "AAA", + " C " + ], + "key": { + "A": { + "tag": "forge:ingots/zinc" + }, + "C": { + "item": "createindustry:copper_cable" + } + }, + "result": { + "item": "createindustry:copycat_cable_block", + "count": 4 + + + } +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/crafting/diagonal_cable_block.json b/src/main/resources/data/createindustry/recipes/crafting/diagonal_cable_block.json new file mode 100644 index 00000000..915a543e --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/crafting/diagonal_cable_block.json @@ -0,0 +1,23 @@ + +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + " ", + " SC", + " C " + ], + "key": { + "S": { + "item": "createindustry:copper_cable" + }, + "C": { + "tag": "forge:ingots/steel" + } + }, + "result": { + "item": "createindustry:diagonal_cable_block", + "count": 4 + + + } +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/crafting/electric_casing.json b/src/main/resources/data/createindustry/recipes/crafting/electric_casing.json new file mode 100644 index 00000000..cdb8904c --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/crafting/electric_casing.json @@ -0,0 +1,33 @@ + +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "KWK", + "ECE", + "RWR" + ], + "key": { + "C": { + "item": "createindustry:heavy_machinery_casing" + }, + "W": { + "item": "createindustry:copper_cable" + }, + "K": { + "item": "createindustry:capacitor_" + }, + "R": { + "item": "createindustry:resistor_" + }, + "E": { + "item": "create:electron_tube" + } + + }, + "result": { + "item": "createindustry:electric_casing", + "count": 1 + + + } +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/crafting/electric_motor.json b/src/main/resources/data/createindustry/recipes/crafting/electric_motor.json new file mode 100644 index 00000000..5f0f8ffe --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/crafting/electric_motor.json @@ -0,0 +1,35 @@ + +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "MKP", + "SCI", + "MKP" + ], + "key": { + "S": { + "item": "create:shaft" + }, + "C": { + "item": "createindustry:electric_casing" + }, + "I": { + "item": "create:industrial_iron_block" + }, + "P": { + "item": "createindustry:steel_mechanism" + }, + "M": { + "item": "createindustry:magnetic_ingot" + }, + "K": { + "item": "createindustry:copper_cable" + } + }, + "result": { + "item": "createindustry:electric_motor", + "count": 1 + + + } +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/crafting/energy_meter.json b/src/main/resources/data/createindustry/recipes/crafting/energy_meter.json new file mode 100644 index 00000000..8499f3b4 --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/crafting/energy_meter.json @@ -0,0 +1,20 @@ + +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + " ", + " A ", + " " + ], + "key": { + "A": { + "item": "createindustry:voltmeter" + } + }, + "result": { + "item": "createindustry:energy_meter" + + + + } +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/crafting/epic_party_light_bulb.json b/src/main/resources/data/createindustry/recipes/crafting/epic_party_light_bulb.json new file mode 100644 index 00000000..b89e3136 --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/crafting/epic_party_light_bulb.json @@ -0,0 +1,30 @@ + +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + " G ", + "WEW", + " A " + ], + "key": { + "G": { + "item": "createindustry:lead_glass" + }, + "A": { + "item": "createindustry:plastic_sheet" + }, + "E": { + "item": "createindustry:rgb_light_bulb" + }, + "W": { + "tag": "forge:wires/aluminum" + } + + }, + "result": { + "item": "createindustry:epic_party_light_bulb", + "count": 1 + + + } +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/crafting/firebox.json b/src/main/resources/data/createindustry/recipes/crafting/firebox.json new file mode 100644 index 00000000..3e3b2f19 --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/crafting/firebox.json @@ -0,0 +1,26 @@ + +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "FTF", + "PPP", + "FFF" + ], + "key": { + "P": { + "item": "createindustry:brass_pipe" + }, + "F": { + "item": "createindustry:fireproof_brick" + }, + "T": { + "item": "createindustry:steel_fluid_tank" + } + }, + "result": { + "item": "createindustry:firebox", + "count": 1 + + + } +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/crafting/galvanic_cell.json b/src/main/resources/data/createindustry/recipes/crafting/galvanic_cell.json new file mode 100644 index 00000000..dff4e2fa --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/crafting/galvanic_cell.json @@ -0,0 +1,41 @@ + +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "CPZ", + "XKS", + "CHZ" + ], + "key": { + "Z": { + "tag": "forge:ingots/zinc" + }, + "C": { + "item": "minecraft:copper_ingot" + }, + "X": { + "item": "createindustry:copper_sulfate" + }, + "S": { + "item": "createindustry:zinc_sulfate" + }, + "K": { + "item": "createindustry:electric_casing" + }, + "H": { + "tag": "forge:plates/steel" + }, + "P": { + "item": "createindustry:steel_pipe" + } + }, + "result": { + "item": "createindustry:galvanic_cell", + "count": 1, + "nbt": { + "Capacity": 200000 + } + + + } +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/crafting/glass_cable_connector.json b/src/main/resources/data/createindustry/recipes/crafting/glass_cable_connector.json new file mode 100644 index 00000000..b2952596 --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/crafting/glass_cable_connector.json @@ -0,0 +1,23 @@ + +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + " A ", + "GAG", + "GAG" + ], + "key": { + "A": { + "tag": "forge:ingots/aluminum" + }, + "g": { + "item": "create:framed_glass" + } + }, + "result": { + "item": "createindustry:flass_cable_connector", + "count": 4 + + + } +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/crafting/hubs/aluminum.json b/src/main/resources/data/createindustry/recipes/crafting/hubs/aluminum.json new file mode 100644 index 00000000..dd5e43a9 --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/crafting/hubs/aluminum.json @@ -0,0 +1,23 @@ + +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + " C ", + "AAA", + " C " + ], + "key": { + "A": { + "tag": "forge:ingots/aluminum" + }, + "C": { + "item": "createindustry:copper_cable" + } + }, + "result": { + "item": "createindustry:aluminum_cable_hub", + "count": 2 + + + } +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/crafting/hubs/brass.json b/src/main/resources/data/createindustry/recipes/crafting/hubs/brass.json new file mode 100644 index 00000000..0bc6006f --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/crafting/hubs/brass.json @@ -0,0 +1,23 @@ + +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + " C ", + "AAA", + " C " + ], + "key": { + "A": { + "tag": "forge:ingots/brass" + }, + "C": { + "item": "createindustry:copper_cable" + } + }, + "result": { + "item": "createindustry:brass_cable_hub", + "count": 2 + + + } +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/crafting/hubs/copper.json b/src/main/resources/data/createindustry/recipes/crafting/hubs/copper.json new file mode 100644 index 00000000..a79c6507 --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/crafting/hubs/copper.json @@ -0,0 +1,23 @@ + +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + " C ", + "AAA", + " C " + ], + "key": { + "A": { + "tag": "forge:ingots/copper" + }, + "C": { + "item": "createindustry:copper_cable" + } + }, + "result": { + "item": "createindustry:copper_cable_hub", + "count": 2 + + + } +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/crafting/hubs/heavy.json b/src/main/resources/data/createindustry/recipes/crafting/hubs/heavy.json new file mode 100644 index 00000000..94ba022b --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/crafting/hubs/heavy.json @@ -0,0 +1,23 @@ + +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + " C ", + " A ", + " C " + ], + "key": { + "A": { + "item": "createindustry:heavy_machinery_casing" + }, + "C": { + "item": "createindustry:copper_cable" + } + }, + "result": { + "item": "createindustry:heavy_cable_hub", + "count": 2 + + + } +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/crafting/hubs/steel.json b/src/main/resources/data/createindustry/recipes/crafting/hubs/steel.json new file mode 100644 index 00000000..3cc846e7 --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/crafting/hubs/steel.json @@ -0,0 +1,23 @@ + +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + " C ", + "AAA", + " C " + ], + "key": { + "A": { + "tag": "forge:ingots/steel" + }, + "C": { + "item": "createindustry:copper_cable" + } + }, + "result": { + "item": "createindustry:steel_cable_hub", + "count": 2 + + + } +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/crafting/hubs/steel_casing.json b/src/main/resources/data/createindustry/recipes/crafting/hubs/steel_casing.json new file mode 100644 index 00000000..4fb5b5e8 --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/crafting/hubs/steel_casing.json @@ -0,0 +1,23 @@ + +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + " C ", + " A ", + " C " + ], + "key": { + "A": { + "item": "createindustry:steel_casing" + }, + "C": { + "item": "createindustry:copper_cable" + } + }, + "result": { + "item": "createindustry:steel_casing_cable_hub", + "count": 2 + + + } +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/crafting/large_aluminum_coghweel.json b/src/main/resources/data/createindustry/recipes/crafting/large_aluminum_coghweel.json new file mode 100644 index 00000000..1e5c6b51 --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/crafting/large_aluminum_coghweel.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "tag": "forge:ingots/aluminum" + }, + { + "tag": "forge:ingots/aluminum" + }, + { + "item": "create:shaft" + } + ], + "result": { + "item": "createindustry:large_aluminum_cogwheel" + } +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/crafting/large_steel_coghweel.json b/src/main/resources/data/createindustry/recipes/crafting/large_steel_coghweel.json new file mode 100644 index 00000000..d8fcac60 --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/crafting/large_steel_coghweel.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "tag": "forge:ingots/steel" + }, + { + "tag": "forge:ingots/steel" + }, + { + "item": "create:shaft" + } + ], + "result": { + "item": "createindustry:large_steel_cogwheel" + } +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/crafting/lead_block.json b/src/main/resources/data/createindustry/recipes/crafting/lead_block.json new file mode 100644 index 00000000..b6699e15 --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/crafting/lead_block.json @@ -0,0 +1,20 @@ + +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "SSS", + "SSS", + "SSS" + ], + "key": { + "S": { + "item": "createindustry:lead_ingot" + } + }, + "result": { + "item": "createindustry:lead_block", + "count": 1 + + + } +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/crafting/lead_from_block.json b/src/main/resources/data/createindustry/recipes/crafting/lead_from_block.json new file mode 100644 index 00000000..690f37cf --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/crafting/lead_from_block.json @@ -0,0 +1,20 @@ + +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + " ", + " S ", + " " + ], + "key": { + "S": { + "item": "createindustry:lead_block" + } + }, + "result": { + "item": "createindustry:lead_ingot", + "count": 9 + + + } +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/crafting/lead_glass.json b/src/main/resources/data/createindustry/recipes/crafting/lead_glass.json new file mode 100644 index 00000000..eee1d835 --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/crafting/lead_glass.json @@ -0,0 +1,23 @@ + +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "MMM", + "MAM", + "MMM" + ], + "key": { + "M": { + "item": "create:framed_glass" + }, + "A": { + "tag": "forge:ingots/lead" + } + }, + "result": { + "item": "createindustry:lead_glass", + "count": 8 + + + } +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/crafting/light_bulb.json b/src/main/resources/data/createindustry/recipes/crafting/light_bulb.json new file mode 100644 index 00000000..e57abd64 --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/crafting/light_bulb.json @@ -0,0 +1,27 @@ + +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + " G ", + " E ", + " A " + ], + "key": { + "G": { + "item": "create:framed_glass" + }, + "A": { + "tag": "forge:ingots/aluminum" + }, + "E": { + "item": "create:electron_tube" + } + + }, + "result": { + "item": "createindustry:light_bulb", + "count": 4 + + + } +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/crafting/lithium_block.json b/src/main/resources/data/createindustry/recipes/crafting/lithium_block.json new file mode 100644 index 00000000..8baa9aa2 --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/crafting/lithium_block.json @@ -0,0 +1,20 @@ + +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "SSS", + "SSS", + "SSS" + ], + "key": { + "S": { + "item": "createindustry:lithium_ingot" + } + }, + "result": { + "item": "createindustry:lithium_block", + "count": 1 + + + } +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/crafting/lithium_charge.json b/src/main/resources/data/createindustry/recipes/crafting/lithium_charge.json new file mode 100644 index 00000000..8f7bd79d --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/crafting/lithium_charge.json @@ -0,0 +1,22 @@ + +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + " C ", + " S ", + " C " + ], + "key": { + "S": { + "tag": "forge:ingots/aluminum" + }, + "C": { + "tag": "forge:ingots/lithium" + } + }, + "result": { + "item": "createindustry:lithium_charge" + + + } +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/crafting/lithium_charge_plastic.json b/src/main/resources/data/createindustry/recipes/crafting/lithium_charge_plastic.json new file mode 100644 index 00000000..9c50166c --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/crafting/lithium_charge_plastic.json @@ -0,0 +1,22 @@ + +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + " C ", + " S ", + " C " + ], + "key": { + "S": { + "item": "createindustry:plastic_sheet" + }, + "C": { + "tag": "forge:ingots/lithium" + } + }, + "result": { + "item": "createindustry:lithium_charge" + + + } +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/crafting/lithium_from_block.json b/src/main/resources/data/createindustry/recipes/crafting/lithium_from_block.json new file mode 100644 index 00000000..80c754a9 --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/crafting/lithium_from_block.json @@ -0,0 +1,20 @@ + +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + " ", + " S ", + " " + ], + "key": { + "S": { + "item": "createindustry:lithium_block" + } + }, + "result": { + "item": "createindustry:lithium_ingot", + "count": 9 + + + } +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/crafting/lithium_torch.json b/src/main/resources/data/createindustry/recipes/crafting/lithium_torch.json new file mode 100644 index 00000000..617b7d68 --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/crafting/lithium_torch.json @@ -0,0 +1,22 @@ + +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + " ", + " C ", + " S " + ], + "key": { + "S": { + "tag": "forge:ingots/aluminum" + }, + "C": { + "tag": "forge:ingots/lithium" + } + }, + "result": { + "item": "createindustry:lithium_torch" + + + } +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/crafting/low_grade_fuel_engine.json b/src/main/resources/data/createindustry/recipes/crafting/low_grade_fuel_engine.json new file mode 100644 index 00000000..5653e625 --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/crafting/low_grade_fuel_engine.json @@ -0,0 +1,32 @@ + +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "MEM", + "MIM", + "SUS" + ], + "key": { + "S": { + "item": "minecraft:iron_ingot" + }, + "M": { + "item": "createindustry:spark_plug" + }, + "U": { + "item": "createindustry:aluminum_pipe" + }, + "I": { + "item": "create:andesite_casing" + }, + "E": { + "item": "createindustry:exhaust" + } + }, + "result": { + "item": "createindustry:low_grade_fuel_engine", + "count": 1 + + + } +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/crafting/neon_tube.json b/src/main/resources/data/createindustry/recipes/crafting/neon_tube.json new file mode 100644 index 00000000..cf36cb59 --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/crafting/neon_tube.json @@ -0,0 +1,22 @@ + +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + " G ", + " N ", + " " + ], + "key": { + "G": { + "item": "create:framed_glass" + }, + "N": { + "item": "createindustry:neon_bucket" + } + }, + "result": { + "item": "createindustry:neon_tube" + + + } +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/crafting/nickel_block.json b/src/main/resources/data/createindustry/recipes/crafting/nickel_block.json new file mode 100644 index 00000000..8438f795 --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/crafting/nickel_block.json @@ -0,0 +1,20 @@ + +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "SSS", + "SSS", + "SSS" + ], + "key": { + "S": { + "item": "createindustry:nickel_ingot" + } + }, + "result": { + "item": "createindustry:nickel_block", + "count": 1 + + + } +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/crafting/nickel_from_block.json b/src/main/resources/data/createindustry/recipes/crafting/nickel_from_block.json new file mode 100644 index 00000000..6cf85d66 --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/crafting/nickel_from_block.json @@ -0,0 +1,20 @@ + +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + " ", + " S ", + " " + ], + "key": { + "S": { + "item": "createindustry:nickel_block" + } + }, + "result": { + "item": "createindustry:nickel_ingot", + "count": 9 + + + } +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/crafting/paper.json b/src/main/resources/data/createindustry/recipes/crafting/paper.json new file mode 100644 index 00000000..b1b472a2 --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/crafting/paper.json @@ -0,0 +1,20 @@ + +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + " ", + "AA ", + " " + ], + "key": { + "A": { + "item": "createindustry:plastic_sheet" + } + }, + "result": { + "item": "minecraft:paper", + "count": 3 + + + } +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/crafting/pipe_bomb.json b/src/main/resources/data/createindustry/recipes/crafting/pipe_bomb.json new file mode 100644 index 00000000..0ebcdb95 --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/crafting/pipe_bomb.json @@ -0,0 +1,23 @@ + +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + " M ", + "MAM", + " M " + ], + "key": { + "M": { + "item": "minecraft:gunpowder" + }, + "A": { + "item": "createindustry:steel_pipe" + } + }, + "result": { + "item": "createindustry:pipe_bomb" + + + + } +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/crafting/polarizer.json b/src/main/resources/data/createindustry/recipes/crafting/polarizer.json new file mode 100644 index 00000000..8a200803 --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/crafting/polarizer.json @@ -0,0 +1,32 @@ + +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "C C", + "ESE", + "WKW" + ], + "key": { + "S": { + "tag": "forge:ingots/steel" + }, + "K": { + "item": "createindustry:electric_casing" + }, + "W": { + "tag": "forge:wires/copper" + }, + "C": { + "item": "minecraft:copper_ingot" + }, + "E": { + "item": "createindustry:capacitor_" + } + }, + "result": { + "item": "createindustry:polarizer", + "count": 1 + + + } +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/crafting/resistor.json b/src/main/resources/data/createindustry/recipes/crafting/resistor.json new file mode 100644 index 00000000..db69db39 --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/crafting/resistor.json @@ -0,0 +1,29 @@ + +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "LLL", + "ICN", + "LLL" + ], + "key": { + "L": { + "tag": "forge:ingots/lead" + }, + "C": { + "item": "createindustry:electric_casing" + }, + "I": { + "item": "create:industrial_iron_block" + }, + "N": { + "item": "createindustry:steel_mechanism" + } + }, + "result": { + "item": "createindustry:resistor", + "count": 2 + + + } +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/crafting/resistor_item.json b/src/main/resources/data/createindustry/recipes/crafting/resistor_item.json new file mode 100644 index 00000000..bd970334 --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/crafting/resistor_item.json @@ -0,0 +1,28 @@ + +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + " ", + "LLL", + "WPW" + ], + "key": { + + + "W": { + "tag": "forge:wires/copper" + }, + "L": { + "tag": "forge:ingots/lead" + }, + "P": { + "item": "createindustry:plastic_sheet" + } + }, + "result": { + "item": "createindustry:resistor_", + "count": 2 + + + } +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/crafting/rgb_light_bulb.json b/src/main/resources/data/createindustry/recipes/crafting/rgb_light_bulb.json new file mode 100644 index 00000000..6c9bc40d --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/crafting/rgb_light_bulb.json @@ -0,0 +1,33 @@ + +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + " G ", + "REB", + " A " + ], + "key": { + "G": { + "item": "minecraft:green_stained_glass_pane" + }, + "R": { + "item": "minecraft:red_stained_glass_pane" + }, + "B": { + "item": "minecraft:blue_stained_glass_pane" + }, + "A": { + "item": "createindustry:plastic_sheet" + }, + "E": { + "item": "createindustry:light_bulb" + } + + }, + "result": { + "item": "createindustry:rgb_light_bulb", + "count": 1 + + + } +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/crafting/steel_coghweel.json b/src/main/resources/data/createindustry/recipes/crafting/steel_coghweel.json new file mode 100644 index 00000000..580841d5 --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/crafting/steel_coghweel.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "tag": "forge:ingots/steel" + }, + { + "item": "create:shaft" + } + ], + "result": { + "item": "createindustry:steel_cogwheel" + } +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/crafting/steel_gearbox.json b/src/main/resources/data/createindustry/recipes/crafting/steel_gearbox.json new file mode 100644 index 00000000..37cd91fe --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/crafting/steel_gearbox.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "createindustry:heavy_machinery_casing" + }, + { + "item": "create:shaft" + } + ], + "result": { + "item": "createindustry:steel_gearbox", + "count": 4 + } +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/crafting/steel_gearbox_from_vertical.json b/src/main/resources/data/createindustry/recipes/crafting/steel_gearbox_from_vertical.json new file mode 100644 index 00000000..63736225 --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/crafting/steel_gearbox_from_vertical.json @@ -0,0 +1,11 @@ +{ + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "createindustry:steel_vertical_gearbox" + } + ], + "result": { + "item": "createindustry:steel_gearbox" + } +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/crafting/synthetic_string.json b/src/main/resources/data/createindustry/recipes/crafting/synthetic_string.json new file mode 100644 index 00000000..33155872 --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/crafting/synthetic_string.json @@ -0,0 +1,20 @@ + +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + " ", + "PPP", + " " + ], + "key": { + "P": { + "item": "createindustry:plastic_sheet" + } + }, + "result": { + "item": "createindustry:synthetic_string", + "count": 8 + + + } +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/crafting/tools/aluminum_axe.json b/src/main/resources/data/createindustry/recipes/crafting/tools/aluminum_axe.json new file mode 100644 index 00000000..02be54ae --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/crafting/tools/aluminum_axe.json @@ -0,0 +1,24 @@ + +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + " AA", + " WA", + " W " + ], + "key": { + "W": { + "item": "minecraft:stick" + }, + "A": { + "tag": "forge:ingots/aluminum" + } + }, + "result": { + "item": "createindustry:aluminum_axe", + "count": 1 + + + }, + "acceptMirrored": true +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/crafting/tools/aluminum_hoe.json b/src/main/resources/data/createindustry/recipes/crafting/tools/aluminum_hoe.json new file mode 100644 index 00000000..3943eae5 --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/crafting/tools/aluminum_hoe.json @@ -0,0 +1,24 @@ + +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + " AA", + " W ", + " W " + ], + "key": { + "W": { + "item": "minecraft:stick" + }, + "A": { + "tag": "forge:ingots/aluminum" + } + }, + "result": { + "item": "createindustry:aluminum_hoe", + "count": 1 + + + }, + "acceptMirrored": true +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/crafting/tools/aluminum_pickaxe.json b/src/main/resources/data/createindustry/recipes/crafting/tools/aluminum_pickaxe.json new file mode 100644 index 00000000..73b9d761 --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/crafting/tools/aluminum_pickaxe.json @@ -0,0 +1,24 @@ + +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "AAA", + " W ", + " W " + ], + "key": { + "W": { + "item": "minecraft:stick" + }, + "A": { + "tag": "forge:ingots/aluminum" + } + }, + "result": { + "item": "createindustry:aluminum_pickaxe", + "count": 1 + + + }, + "acceptMirrored": true +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/crafting/tools/aluminum_shovel.json b/src/main/resources/data/createindustry/recipes/crafting/tools/aluminum_shovel.json new file mode 100644 index 00000000..4f275188 --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/crafting/tools/aluminum_shovel.json @@ -0,0 +1,24 @@ + +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + " A ", + " W ", + " W " + ], + "key": { + "W": { + "item": "minecraft:stick" + }, + "A": { + "tag": "forge:ingots/aluminum" + } + }, + "result": { + "item": "createindustry:aluminum_shovel", + "count": 1 + + + }, + "acceptMirrored": true +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/crafting/tools/aluminum_sword.json b/src/main/resources/data/createindustry/recipes/crafting/tools/aluminum_sword.json new file mode 100644 index 00000000..45a8fd53 --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/crafting/tools/aluminum_sword.json @@ -0,0 +1,24 @@ + +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + " A ", + " A ", + " W " + ], + "key": { + "W": { + "item": "minecraft:stick" + }, + "A": { + "tag": "forge:ingots/aluminum" + } + }, + "result": { + "item": "createindustry:aluminum_sword", + "count": 1 + + + }, + "acceptMirrored": true +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/crafting/tools/lead_axe.json b/src/main/resources/data/createindustry/recipes/crafting/tools/lead_axe.json new file mode 100644 index 00000000..8d8e8415 --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/crafting/tools/lead_axe.json @@ -0,0 +1,24 @@ + +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + " AA", + " WA", + " W " + ], + "key": { + "W": { + "item": "minecraft:stick" + }, + "A": { + "tag": "forge:ingots/lead" + } + }, + "result": { + "item": "createindustry:lead_axe", + "count": 1 + + + }, + "acceptMirrored": true +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/crafting/tools/lead_hoe.json b/src/main/resources/data/createindustry/recipes/crafting/tools/lead_hoe.json new file mode 100644 index 00000000..086a9d1f --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/crafting/tools/lead_hoe.json @@ -0,0 +1,24 @@ + +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + " AA", + " W ", + " W " + ], + "key": { + "W": { + "item": "minecraft:stick" + }, + "A": { + "tag": "forge:ingots/lead" + } + }, + "result": { + "item": "createindustry:lead_hoe", + "count": 1 + + + }, + "acceptMirrored": true +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/crafting/tools/lead_pickaxe.json b/src/main/resources/data/createindustry/recipes/crafting/tools/lead_pickaxe.json new file mode 100644 index 00000000..3fdcffdd --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/crafting/tools/lead_pickaxe.json @@ -0,0 +1,24 @@ + +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "AAA", + " W ", + " W " + ], + "key": { + "W": { + "item": "minecraft:stick" + }, + "A": { + "tag": "forge:ingots/lead" + } + }, + "result": { + "item": "createindustry:lead_pickaxe", + "count": 1 + + + }, + "acceptMirrored": true +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/crafting/tools/lead_shovel.json b/src/main/resources/data/createindustry/recipes/crafting/tools/lead_shovel.json new file mode 100644 index 00000000..52504ce4 --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/crafting/tools/lead_shovel.json @@ -0,0 +1,24 @@ + +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + " A ", + " W ", + " W " + ], + "key": { + "W": { + "item": "minecraft:stick" + }, + "A": { + "tag": "forge:ingots/lead" + } + }, + "result": { + "item": "createindustry:lead_shovel", + "count": 1 + + + }, + "acceptMirrored": true +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/crafting/tools/lead_sword.json b/src/main/resources/data/createindustry/recipes/crafting/tools/lead_sword.json new file mode 100644 index 00000000..8fe4ce81 --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/crafting/tools/lead_sword.json @@ -0,0 +1,24 @@ + +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + " A ", + " A ", + " W " + ], + "key": { + "W": { + "item": "minecraft:stick" + }, + "A": { + "tag": "forge:ingots/lead" + } + }, + "result": { + "item": "createindustry:lead_sword", + "count": 1 + + + }, + "acceptMirrored": true +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/crafting/tools/steel_axe.json b/src/main/resources/data/createindustry/recipes/crafting/tools/steel_axe.json new file mode 100644 index 00000000..c21f2d7d --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/crafting/tools/steel_axe.json @@ -0,0 +1,24 @@ + +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + " AA", + " WA", + " W " + ], + "key": { + "W": { + "item": "minecraft:stick" + }, + "A": { + "tag": "forge:ingots/steel" + } + }, + "result": { + "item": "createindustry:steel_axe", + "count": 1 + + + }, + "acceptMirrored": true +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/crafting/tools/steel_hoe.json b/src/main/resources/data/createindustry/recipes/crafting/tools/steel_hoe.json new file mode 100644 index 00000000..62fa569f --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/crafting/tools/steel_hoe.json @@ -0,0 +1,24 @@ + +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + " AA", + " W ", + " W " + ], + "key": { + "W": { + "item": "minecraft:stick" + }, + "A": { + "tag": "forge:ingots/steel" + } + }, + "result": { + "item": "createindustry:steel_hoe", + "count": 1 + + + }, + "acceptMirrored": true +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/crafting/tools/steel_pickaxe.json b/src/main/resources/data/createindustry/recipes/crafting/tools/steel_pickaxe.json new file mode 100644 index 00000000..85460ce9 --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/crafting/tools/steel_pickaxe.json @@ -0,0 +1,24 @@ + +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "AAA", + " W ", + " W " + ], + "key": { + "W": { + "item": "minecraft:stick" + }, + "A": { + "tag": "forge:ingots/steel" + } + }, + "result": { + "item": "createindustry:steel_pickaxe", + "count": 1 + + + }, + "acceptMirrored": true +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/crafting/tools/steel_shovel.json b/src/main/resources/data/createindustry/recipes/crafting/tools/steel_shovel.json new file mode 100644 index 00000000..f70bb637 --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/crafting/tools/steel_shovel.json @@ -0,0 +1,24 @@ + +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + " A ", + " W ", + " W " + ], + "key": { + "W": { + "item": "minecraft:stick" + }, + "A": { + "tag": "forge:ingots/steel" + } + }, + "result": { + "item": "createindustry:steel_shovel", + "count": 1 + + + }, + "acceptMirrored": true +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/crafting/tools/steel_sword.json b/src/main/resources/data/createindustry/recipes/crafting/tools/steel_sword.json new file mode 100644 index 00000000..1248c448 --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/crafting/tools/steel_sword.json @@ -0,0 +1,24 @@ + +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + " A ", + " A ", + " W " + ], + "key": { + "W": { + "item": "minecraft:stick" + }, + "A": { + "tag": "forge:ingots/steel" + } + }, + "result": { + "item": "createindustry:steel_sword", + "count": 1 + + + }, + "acceptMirrored": true +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/crafting/vertical_steel_gearbox.json b/src/main/resources/data/createindustry/recipes/crafting/vertical_steel_gearbox.json new file mode 100644 index 00000000..8afbbf92 --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/crafting/vertical_steel_gearbox.json @@ -0,0 +1,11 @@ +{ + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "createindustry:steel_gearbox" + } + ], + "result": { + "item": "createindustry:steel_vertical_gearbox" + } +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/crafting/voltmeter.json b/src/main/resources/data/createindustry/recipes/crafting/voltmeter.json new file mode 100644 index 00000000..54e81198 --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/crafting/voltmeter.json @@ -0,0 +1,24 @@ + +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + " C ", + " K ", + " " + ], + "key": { + "K": { + "item": "createindustry:steel_mechanism" + }, + "C": { + "item": "minecraft:compass" + } + }, + "result": { + "item": "createindustry:voltmeter", + "count": 4 + + + + } +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/crafting/voltmeter_from_energy_meter.json b/src/main/resources/data/createindustry/recipes/crafting/voltmeter_from_energy_meter.json new file mode 100644 index 00000000..c6225518 --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/crafting/voltmeter_from_energy_meter.json @@ -0,0 +1,20 @@ + +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + " ", + " A ", + " " + ], + "key": { + "A": { + "item": "createindustry:energy_meter" + } + }, + "result": { + "item": "createindustry:voltmeter" + + + + } +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/crafting/welding_machine.json b/src/main/resources/data/createindustry/recipes/crafting/welding_machine.json new file mode 100644 index 00000000..619062b6 --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/crafting/welding_machine.json @@ -0,0 +1,35 @@ + +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "PSP", + "KCK", + "MRM" + ], + "key": { + "S": { + "tag": "forge:ingots/steel" + }, + "P": { + "item": "createindustry:plastic_sheet" + }, + "C": { + "item": "createindustry:electric_casing" + }, + "K": { + "item": "createindustry:copper_cable" + }, + "R": { + "item": "createindustry:rebar" + }, + "M": { + "item": "createindustry:steel_mechanism" + } + }, + "result": { + "item": "createindustry:welding_machine", + "count": 1 + + + } +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/crushing/copper_sulfate.json b/src/main/resources/data/createindustry/recipes/crushing/copper_sulfate.json new file mode 100644 index 00000000..0f418fd1 --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/crushing/copper_sulfate.json @@ -0,0 +1,29 @@ +{ + "type": "create:crushing", + "ingredients": [ + { + "item": "createindustry:copper_sulfate" + } + ], + "results": [ + { + "item": "minecraft:bone_meal", + "count": 4 + }, + { + "item": "minecraft:bone_meal", + "chance": 0.5, + "count": 3 + }, + { + "item": "minecraft:blue_dye", + "chance": 0.5 + }, + { + "item": "minecraft:cyan_dye", + "chance": 0.3 + } + ], + "processingTime": 100 + +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/crushing/galena_recycling.json b/src/main/resources/data/createindustry/recipes/crushing/galena_recycling.json new file mode 100644 index 00000000..94345e55 --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/crushing/galena_recycling.json @@ -0,0 +1,19 @@ +{ + "type": "create:crushing", + "ingredients": [ + { + "tag": "createindustry:stone_types/galena" + } + ], + "results": [ + { + "item": "create:crushed_raw_lead" + }, + { + "item": "create:experience_nugget", + "chance": 0.15 + } + ], + "processingTime": 250 + +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/distillation/heavy_oil.json b/src/main/resources/data/createindustry/recipes/distillation/heavy_oil.json new file mode 100644 index 00000000..563d4394 --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/distillation/heavy_oil.json @@ -0,0 +1,23 @@ +{ + "type": "createindustry:distillation", + "ingredients": [ + + { + "fluid": "createindustry:heavy_oil", + "nbt": {}, + "amount": 150 + } + ], + "results": [ + { + "fluid": "createindustry:diesel", + "amount": 100 + }, + { + "fluid": "createindustry:lubrication_oil", + "amount": 50 + } + ] + + +} diff --git a/src/main/resources/data/createindustry/recipes/distillation/naphtha.json b/src/main/resources/data/createindustry/recipes/distillation/naphtha.json new file mode 100644 index 00000000..b859a8fe --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/distillation/naphtha.json @@ -0,0 +1,23 @@ +{ + "type": "createindustry:distillation", + "ingredients": [ + + { + "fluid": "createindustry:naphtha", + "nbt": {}, + "amount": 100 + } + ], + "results": [ + { + "fluid": "createindustry:ethylene", + "amount": 50 + }, + { + "fluid": "createindustry:propylene", + "amount": 50 + } + ] + + +} diff --git a/src/main/resources/data/createindustry/recipes/filling/air_tank.json b/src/main/resources/data/createindustry/recipes/filling/air_tank.json new file mode 100644 index 00000000..f4f7fb60 --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/filling/air_tank.json @@ -0,0 +1,19 @@ + +{ + "type": "create:filling", + "ingredients": [ + { + "item": "minecraft:bucket" + }, + { + "fluid": "createindustry:air", + "nbt": {}, + "amount": 1000 + } + ], + "results": [ + { + "item": "createindustry:air_bucket" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/filling/bottle_of_battery_acid.json b/src/main/resources/data/createindustry/recipes/filling/bottle_of_battery_acid.json new file mode 100644 index 00000000..47514057 --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/filling/bottle_of_battery_acid.json @@ -0,0 +1,19 @@ + +{ + "type": "create:filling", + "ingredients": [ + { + "item": "minecraft:glass_bottle" + }, + { + "fluid": "createindustry:sulfuric_acid", + "nbt": {}, + "amount": 250 + } + ], + "results": [ + { + "item": "createindustry:bottle_of_battery_acid" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/filling/bottle_of_concrete.json b/src/main/resources/data/createindustry/recipes/filling/bottle_of_concrete.json new file mode 100644 index 00000000..1c6f5623 --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/filling/bottle_of_concrete.json @@ -0,0 +1,19 @@ + +{ + "type": "create:filling", + "ingredients": [ + { + "item": "minecraft:glass_bottle" + }, + { + "fluid": "createindustry:liquid_concrete", + "nbt": {}, + "amount": 250 + } + ], + "results": [ + { + "item": "createindustry:bottle_of_concrete" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/filling/butane_tank.json b/src/main/resources/data/createindustry/recipes/filling/butane_tank.json new file mode 100644 index 00000000..da1d9856 --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/filling/butane_tank.json @@ -0,0 +1,19 @@ + +{ + "type": "create:filling", + "ingredients": [ + { + "item": "minecraft:bucket" + }, + { + "fluid": "createindustry:butane", + "nbt": {}, + "amount": 1000 + } + ], + "results": [ + { + "item": "createindustry:butane_bucket" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/filling/carbon_dioxide_tank.json b/src/main/resources/data/createindustry/recipes/filling/carbon_dioxide_tank.json new file mode 100644 index 00000000..fdd23abf --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/filling/carbon_dioxide_tank.json @@ -0,0 +1,19 @@ + +{ + "type": "create:filling", + "ingredients": [ + { + "item": "minecraft:bucket" + }, + { + "fluid": "createindustry:carbon_dioxide", + "nbt": {}, + "amount": 1000 + } + ], + "results": [ + { + "item": "createindustry:carbon_dioxide_bucket" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/filling/ethylene_tank.json b/src/main/resources/data/createindustry/recipes/filling/ethylene_tank.json new file mode 100644 index 00000000..bc5d292d --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/filling/ethylene_tank.json @@ -0,0 +1,19 @@ + +{ + "type": "create:filling", + "ingredients": [ + { + "item": "minecraft:bucket" + }, + { + "fluid": "createindustry:ethylene", + "nbt": {}, + "amount": 1000 + } + ], + "results": [ + { + "item": "createindustry:ethylene_bucket" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/filling/lpg_tank.json b/src/main/resources/data/createindustry/recipes/filling/lpg_tank.json new file mode 100644 index 00000000..ac814df1 --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/filling/lpg_tank.json @@ -0,0 +1,19 @@ + +{ + "type": "create:filling", + "ingredients": [ + { + "item": "minecraft:bucket" + }, + { + "fluid": "createindustry:lpg", + "nbt": {}, + "amount": 1000 + } + ], + "results": [ + { + "item": "createindustry:lpg_bucket" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/filling/napalm_potato.json b/src/main/resources/data/createindustry/recipes/filling/napalm_potato.json new file mode 100644 index 00000000..03778569 --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/filling/napalm_potato.json @@ -0,0 +1,19 @@ + +{ + "type": "create:filling", + "ingredients": [ + { + "item": "minecraft:potato" + }, + { + "fluid": "createindustry:napalm", + "nbt": {}, + "amount": 1000 + } + ], + "results": [ + { + "item": "createindustry:napalm_potato" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/filling/neon_tank.json b/src/main/resources/data/createindustry/recipes/filling/neon_tank.json new file mode 100644 index 00000000..055557a8 --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/filling/neon_tank.json @@ -0,0 +1,19 @@ + +{ + "type": "create:filling", + "ingredients": [ + { + "item": "minecraft:bucket" + }, + { + "fluid": "createindustry:neon", + "nbt": {}, + "amount": 1000 + } + ], + "results": [ + { + "item": "createindustry:neon_bucket" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/filling/propane_tank.json b/src/main/resources/data/createindustry/recipes/filling/propane_tank.json new file mode 100644 index 00000000..602d74e0 --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/filling/propane_tank.json @@ -0,0 +1,19 @@ + +{ + "type": "create:filling", + "ingredients": [ + { + "item": "minecraft:bucket" + }, + { + "fluid": "createindustry:propane", + "nbt": {}, + "amount": 1000 + } + ], + "results": [ + { + "item": "createindustry:propane_bucket" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/filling/propylene_tank.json b/src/main/resources/data/createindustry/recipes/filling/propylene_tank.json new file mode 100644 index 00000000..bc9540c8 --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/filling/propylene_tank.json @@ -0,0 +1,19 @@ + +{ + "type": "create:filling", + "ingredients": [ + { + "item": "minecraft:bucket" + }, + { + "fluid": "createindustry:propylene", + "nbt": {}, + "amount": 1000 + } + ], + "results": [ + { + "item": "createindustry:propylene_bucket" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/mechanical_crafting/advanced_potato_cannon.json b/src/main/resources/data/createindustry/recipes/mechanical_crafting/advanced_potato_cannon.json new file mode 100644 index 00000000..83717a43 --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/mechanical_crafting/advanced_potato_cannon.json @@ -0,0 +1,25 @@ +{ + "type": "create:mechanical_crafting", + "pattern": [ + "IIPPH", + " AH H" + ], + "key": { + "P": { + "item": "createindustry:steel_mechanism" + }, + "A": { + "item": "createindustry:plastic_sheet" + }, + "I": { + "item": "createindustry:steel_pipe" + }, + "H": { + "item": "createindustry:heavy_plate" + } + }, + "result": { + "item": "createindustry:advanced_potato_cannon" + }, + "acceptMirrored": true +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/mechanical_crafting/flamethrower.json b/src/main/resources/data/createindustry/recipes/mechanical_crafting/flamethrower.json new file mode 100644 index 00000000..429edf90 --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/mechanical_crafting/flamethrower.json @@ -0,0 +1,28 @@ +{ + "type": "create:mechanical_crafting", + "pattern": [ + "IIPPH", + " ATAH" + ], + "key": { + "P": { + "item": "createindustry:steel_mechanism" + }, + "A": { + "item": "createindustry:plastic_sheet" + }, + "I": { + "item": "createindustry:steel_pipe" + }, + "H": { + "item": "createindustry:heavy_plate" + }, + "T": { + "item": "createindustry:steel_fluid_tank" + } + }, + "result": { + "item": "createindustry:flamethrower" + }, + "acceptMirrored": true +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/mechanical_crafting/generator.json b/src/main/resources/data/createindustry/recipes/mechanical_crafting/generator.json new file mode 100644 index 00000000..5797fba1 --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/mechanical_crafting/generator.json @@ -0,0 +1,30 @@ +{ + "type": "create:mechanical_crafting", + "pattern": [ + "EME", + "MCM", + "KMK" + ], + "key": { + + "M": { + "item": "createindustry:magnetic_ingot" + }, + + "C": { + "item": "createindustry:electric_casing" + }, + "E": { + "item": "createindustry:steel_mechanism" + }, + "K": { + "item": "createindustry:copper_cable" + } + + + }, + "result": { + "item": "createindustry:generator" + }, + "acceptMirrored": true +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/mechanical_crafting/lithium_blade.json b/src/main/resources/data/createindustry/recipes/mechanical_crafting/lithium_blade.json new file mode 100644 index 00000000..d60f8bc6 --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/mechanical_crafting/lithium_blade.json @@ -0,0 +1,44 @@ +{ + "type": "create:mechanical_crafting", + "pattern": [ + " T ", + "CSC", + "CMK", + "PLR" + ], + "key": { + + "T": { + "item": "createindustry:lithium_torch" + }, + "M": { + "item": "createindustry:steel_mechanism" + }, + "S": { + "item": "createindustry:steel_sword" + }, + "K": { + "item": "createindustry:capacitor_" + }, + "R": { + "item": "createindustry:resistor_" + }, + "P": { + "item": "createindustry:plastic_sheet" + }, + "L": { + "item": "createindustry:synthetic_leather" + }, + + + "C": { + "tag": "forge:wires/copper" + } + + + }, + "result": { + "item": "createindustry:lithium_blade" + }, + "acceptMirrored": true +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/mechanical_crafting/rotor.json b/src/main/resources/data/createindustry/recipes/mechanical_crafting/rotor.json new file mode 100644 index 00000000..53335e71 --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/mechanical_crafting/rotor.json @@ -0,0 +1,30 @@ +{ + "type": "create:mechanical_crafting", + "pattern": [ + " CCC ", + "CRARC", + "CASAC", + "CRARC", + " CCC " + ], + "key": { + + "A": { + "tag": "forge:ingots/aluminum" + }, + + "C": { + "item": "createindustry:copper_coil" + }, + "S": { + "item": "create:shaft" + }, + "R": { + "item": "createindustry:rebar" + } + }, + "result": { + "item": "createindustry:rotor" + }, + "acceptMirrored": true +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/mechanical_crafting/stator.json b/src/main/resources/data/createindustry/recipes/mechanical_crafting/stator.json new file mode 100644 index 00000000..a8b0ce8f --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/mechanical_crafting/stator.json @@ -0,0 +1,31 @@ +{ + "type": "create:mechanical_crafting", + "pattern": [ + "MMM", + "CPC", + "RAR" + ], + "key": { + + + "C": { + "item": "createindustry:copper_cable" + }, + "M": { + "item": "createindustry:magnetic_ingot" + }, + "P": { + "item": "createindustry:steel_mechanism" + }, + "R": { + "tag": "forge:ingots/steel" + }, + "A": { + "item": "createindustry:electric_casing" + } + }, + "result": { + "item": "createindustry:stator" + }, + "acceptMirrored": true +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/mixing/copper_sulfate.json b/src/main/resources/data/createindustry/recipes/mixing/copper_sulfate.json new file mode 100644 index 00000000..12745425 --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/mixing/copper_sulfate.json @@ -0,0 +1,21 @@ + +{ + "type": "create:mixing", + "ingredients": [ + { + "fluid": "createindustry:sulfuric_acid", + "amount": 500 + }, + { + "tag": "forge:ingots/copper" + } + + ], + "results": [ + { + "count": 1, + "item": "createindustry:copper_sulfate" + + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/mixing/hellfire_potion.json b/src/main/resources/data/createindustry/recipes/mixing/hellfire_potion.json new file mode 100644 index 00000000..e9298f90 --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/mixing/hellfire_potion.json @@ -0,0 +1,30 @@ + +{ + "type": "create:mixing", + "ingredients": [ + { + "amount": 100, + "fluid": "create:potion", + "nbt": { + "Bottle": "REGULAR", + "Potion": "minecraft:awkward" + } + + }, + { + "tag": "forge:ingots/lithium" + } + + ], + "results": [ + { + "amount": 100, + "fluid": "create:potion", + "nbt": { + "Bottle": "REGULAR", + "Potion": "createindustry:hellfire_potion" + } + + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/mixing/neon.json b/src/main/resources/data/createindustry/recipes/mixing/neon.json new file mode 100644 index 00000000..8764598a --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/mixing/neon.json @@ -0,0 +1,19 @@ + +{ + "type": "create:mixing", + "ingredients": [ + + { + "fluid": "createindustry:air", + "nbt": {}, + "amount": 250 + } + ], + "results": [ + { + "fluid": "createindustry:neon", + "nbt": {}, + "amount": 1 + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/mixing/sulfuric_acid.json b/src/main/resources/data/createindustry/recipes/mixing/sulfuric_acid.json new file mode 100644 index 00000000..3133b4f6 --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/mixing/sulfuric_acid.json @@ -0,0 +1,24 @@ + +{ + "type": "create:mixing", + "ingredients": [ + { + "item": "createindustry:sulfur_dust" + }, + { + "item": "createindustry:nitrate_dust" + }, + { + "fluid": "minecraft:water", + "nbt": {}, + "amount": 500 + } + ], + "results": [ + { + "fluid": "createindustry:sulfuric_acid", + "nbt": {}, + "amount": 500 + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/mixing/zinc_sulfate.json b/src/main/resources/data/createindustry/recipes/mixing/zinc_sulfate.json new file mode 100644 index 00000000..526dbe0a --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/mixing/zinc_sulfate.json @@ -0,0 +1,21 @@ + +{ + "type": "create:mixing", + "ingredients": [ + { + "fluid": "createindustry:sulfuric_acid", + "amount": 500 + }, + { + "tag": "forge:ingots/zinc" + } + + ], + "results": [ + { + "count": 1, + "item": "createindustry:zinc_sulfate" + + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/pressing/synthetic_leather.json b/src/main/resources/data/createindustry/recipes/pressing/synthetic_leather.json new file mode 100644 index 00000000..48444ffa --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/pressing/synthetic_leather.json @@ -0,0 +1,13 @@ +{ + "type": "create:pressing", + "ingredients": [ + { + "item": "createindustry:plastic_sheet" + } + ], + "results": [ + { + "item": "createindustry:synthetic_leather" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/smelting/blasting/aluminum_ingot.json b/src/main/resources/data/createindustry/recipes/smelting/blasting/aluminum_ingot.json new file mode 100644 index 00000000..625f59e8 --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/smelting/blasting/aluminum_ingot.json @@ -0,0 +1,10 @@ + +{ + "type": "minecraft:blasting", + "ingredient": { + "item": "create:crushed_raw_aluminum" + }, + "result": "createindustry:aluminum_ingot", + "experience": 0.5, + "cookingtime": 100 +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/smelting/blasting/lead_ingot.json b/src/main/resources/data/createindustry/recipes/smelting/blasting/lead_ingot.json new file mode 100644 index 00000000..a67acc09 --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/smelting/blasting/lead_ingot.json @@ -0,0 +1,10 @@ + +{ + "type": "minecraft:blasting", + "ingredient": { + "item": "createindustry:raw_lead" + }, + "result": "createindustry:lead_ingot", + "experience": 0.5, + "cookingtime": 100 +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/smelting/blasting/lead_ingot_from_crushed.json b/src/main/resources/data/createindustry/recipes/smelting/blasting/lead_ingot_from_crushed.json new file mode 100644 index 00000000..b43b3c05 --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/smelting/blasting/lead_ingot_from_crushed.json @@ -0,0 +1,10 @@ + +{ + "type": "minecraft:blasting", + "ingredient": { + "item": "create:crushed_raw_lead" + }, + "result": "createindustry:lead_ingot", + "experience": 0.5, + "cookingtime": 100 +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/smelting/blasting/lithium_ingot.json b/src/main/resources/data/createindustry/recipes/smelting/blasting/lithium_ingot.json new file mode 100644 index 00000000..3abf3af0 --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/smelting/blasting/lithium_ingot.json @@ -0,0 +1,10 @@ + +{ + "type": "minecraft:blasting", + "ingredient": { + "item": "createindustry:raw_lithium" + }, + "result": "createindustry:lithium_ingot", + "experience": 0.5, + "cookingtime": 100 +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/smelting/blasting/nickel_ingot.json b/src/main/resources/data/createindustry/recipes/smelting/blasting/nickel_ingot.json new file mode 100644 index 00000000..3bfcf93f --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/smelting/blasting/nickel_ingot.json @@ -0,0 +1,10 @@ + +{ + "type": "minecraft:blasting", + "ingredient": { + "item": "createindustry:raw_nickel" + }, + "result": "createindustry:nickel_ingot", + "experience": 0.5, + "cookingtime": 100 +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/smelting/blasting/nickel_ingot_from_crushed.json b/src/main/resources/data/createindustry/recipes/smelting/blasting/nickel_ingot_from_crushed.json new file mode 100644 index 00000000..f2ab4ace --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/smelting/blasting/nickel_ingot_from_crushed.json @@ -0,0 +1,10 @@ + +{ + "type": "minecraft:blasting", + "ingredient": { + "item": "create:crushed_raw_nickel" + }, + "result": "createindustry:nickel_ingot", + "experience": 0.5, + "cookingtime": 100 +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/smelting/lead_ingot.json b/src/main/resources/data/createindustry/recipes/smelting/lead_ingot.json new file mode 100644 index 00000000..e40f41b8 --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/smelting/lead_ingot.json @@ -0,0 +1,10 @@ + +{ + "type": "minecraft:smelting", + "ingredient": { + "item": "createindustry:raw_lead" + }, + "result": "createindustry:lead_ingot", + "experience": 0.5, + "cookingtime": 200 +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/smelting/lead_ingot_from_crushed.json b/src/main/resources/data/createindustry/recipes/smelting/lead_ingot_from_crushed.json new file mode 100644 index 00000000..bdec3b5e --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/smelting/lead_ingot_from_crushed.json @@ -0,0 +1,10 @@ + +{ + "type": "minecraft:smelting", + "ingredient": { + "item": "create:crushed_raw_lead" + }, + "result": "createindustry:lead_ingot", + "experience": 0.5, + "cookingtime": 200 +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/smelting/lithium_ingot.json b/src/main/resources/data/createindustry/recipes/smelting/lithium_ingot.json new file mode 100644 index 00000000..d08ed07a --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/smelting/lithium_ingot.json @@ -0,0 +1,10 @@ + +{ + "type": "minecraft:smelting", + "ingredient": { + "item": "createindustry:raw_lithium" + }, + "result": "createindustry:lithium_ingot", + "experience": 0.5, + "cookingtime": 200 +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/smelting/nickel_ingot.json b/src/main/resources/data/createindustry/recipes/smelting/nickel_ingot.json new file mode 100644 index 00000000..38e571a4 --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/smelting/nickel_ingot.json @@ -0,0 +1,10 @@ + +{ + "type": "minecraft:smelting", + "ingredient": { + "item": "createindustry:raw_nickel" + }, + "result": "createindustry:nickel_ingot", + "experience": 0.5, + "cookingtime": 200 +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/smelting/nickel_ingot_from_crushed.json b/src/main/resources/data/createindustry/recipes/smelting/nickel_ingot_from_crushed.json new file mode 100644 index 00000000..03932143 --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/smelting/nickel_ingot_from_crushed.json @@ -0,0 +1,10 @@ + +{ + "type": "minecraft:smelting", + "ingredient": { + "item": "create:crushed_raw_nickel" + }, + "result": "createindustry:nickel_ingot", + "experience": 0.5, + "cookingtime": 200 +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/stonecutting/aluminum_frame.json b/src/main/resources/data/createindustry/recipes/stonecutting/aluminum_frame.json new file mode 100644 index 00000000..ccec6afb --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/stonecutting/aluminum_frame.json @@ -0,0 +1,9 @@ + +{ + "type": "minecraft:stonecutting", + "ingredient": { + "tag": "forge:ingots/aluminum" + }, + "result": "createindustry:aluminum_frame", + "count": 4 +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/stonecutting/aluminum_wire.json b/src/main/resources/data/createindustry/recipes/stonecutting/aluminum_wire.json new file mode 100644 index 00000000..374384c0 --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/stonecutting/aluminum_wire.json @@ -0,0 +1,9 @@ + +{ + "type": "minecraft:stonecutting", + "ingredient": { + "tag": "forge:ingots/aluminum" + }, + "result": "createindustry:aluminum_wire", + "count": 2 +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/stonecutting/cast_iron_frame.json b/src/main/resources/data/createindustry/recipes/stonecutting/cast_iron_frame.json new file mode 100644 index 00000000..c737ce64 --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/stonecutting/cast_iron_frame.json @@ -0,0 +1,9 @@ + +{ + "type": "minecraft:stonecutting", + "ingredient": { + "tag": "forge:ingots/cast_iron" + }, + "result": "createindustry:cast_iron_frame", + "count": 4 +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/stonecutting/cast_iron_truss.json b/src/main/resources/data/createindustry/recipes/stonecutting/cast_iron_truss.json new file mode 100644 index 00000000..6d062572 --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/stonecutting/cast_iron_truss.json @@ -0,0 +1,9 @@ + +{ + "type": "minecraft:stonecutting", + "ingredient": { + "tag": "forge:ingots/cast_iron" + }, + "result": "createindustry:cast_iron_truss", + "count": 4 +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/stonecutting/caution_blocks/blue_caution_block.json b/src/main/resources/data/createindustry/recipes/stonecutting/caution_blocks/blue_caution_block.json new file mode 100644 index 00000000..4507b171 --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/stonecutting/caution_blocks/blue_caution_block.json @@ -0,0 +1,9 @@ + +{ + "type": "minecraft:stonecutting", + "ingredient": { + "tag": "forge:ingots/aluminum" + }, + "result": "createindustry:blue_caution_block", + "count": 4 +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/stonecutting/caution_blocks/brown_caution_block.json b/src/main/resources/data/createindustry/recipes/stonecutting/caution_blocks/brown_caution_block.json new file mode 100644 index 00000000..f7627925 --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/stonecutting/caution_blocks/brown_caution_block.json @@ -0,0 +1,9 @@ + +{ + "type": "minecraft:stonecutting", + "ingredient": { + "tag": "forge:ingots/aluminum" + }, + "result": "createindustry:brown_caution_block", + "count": 4 +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/stonecutting/caution_blocks/cyan_caution_block.json b/src/main/resources/data/createindustry/recipes/stonecutting/caution_blocks/cyan_caution_block.json new file mode 100644 index 00000000..adaa59c6 --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/stonecutting/caution_blocks/cyan_caution_block.json @@ -0,0 +1,9 @@ + +{ + "type": "minecraft:stonecutting", + "ingredient": { + "tag": "forge:ingots/aluminum" + }, + "result": "createindustry:cyan_caution_block", + "count": 4 +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/stonecutting/caution_blocks/gray_caution_block.json b/src/main/resources/data/createindustry/recipes/stonecutting/caution_blocks/gray_caution_block.json new file mode 100644 index 00000000..251292bf --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/stonecutting/caution_blocks/gray_caution_block.json @@ -0,0 +1,9 @@ + +{ + "type": "minecraft:stonecutting", + "ingredient": { + "tag": "forge:ingots/aluminum" + }, + "result": "createindustry:gray_caution_block", + "count": 4 +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/stonecutting/caution_blocks/green_caution_block.json b/src/main/resources/data/createindustry/recipes/stonecutting/caution_blocks/green_caution_block.json new file mode 100644 index 00000000..446b1b5c --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/stonecutting/caution_blocks/green_caution_block.json @@ -0,0 +1,9 @@ + +{ + "type": "minecraft:stonecutting", + "ingredient": { + "tag": "forge:ingots/aluminum" + }, + "result": "createindustry:green_caution_block", + "count": 4 +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/stonecutting/caution_blocks/light_blue_caution_block.json b/src/main/resources/data/createindustry/recipes/stonecutting/caution_blocks/light_blue_caution_block.json new file mode 100644 index 00000000..0cac1663 --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/stonecutting/caution_blocks/light_blue_caution_block.json @@ -0,0 +1,9 @@ + +{ + "type": "minecraft:stonecutting", + "ingredient": { + "tag": "forge:ingots/aluminum" + }, + "result": "createindustry:ligh_blue_caution_block", + "count": 4 +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/stonecutting/caution_blocks/light_gray_caution_block.json b/src/main/resources/data/createindustry/recipes/stonecutting/caution_blocks/light_gray_caution_block.json new file mode 100644 index 00000000..c28bc7b9 --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/stonecutting/caution_blocks/light_gray_caution_block.json @@ -0,0 +1,9 @@ + +{ + "type": "minecraft:stonecutting", + "ingredient": { + "tag": "forge:ingots/aluminum" + }, + "result": "createindustry:light_gray_caution_block", + "count": 4 +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/stonecutting/caution_blocks/lime_caution_block.json b/src/main/resources/data/createindustry/recipes/stonecutting/caution_blocks/lime_caution_block.json new file mode 100644 index 00000000..6e37056f --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/stonecutting/caution_blocks/lime_caution_block.json @@ -0,0 +1,9 @@ + +{ + "type": "minecraft:stonecutting", + "ingredient": { + "tag": "forge:ingots/aluminum" + }, + "result": "createindustry:lime_caution_block", + "count": 4 +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/stonecutting/caution_blocks/magenta_caution_block.json b/src/main/resources/data/createindustry/recipes/stonecutting/caution_blocks/magenta_caution_block.json new file mode 100644 index 00000000..63f4c3cb --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/stonecutting/caution_blocks/magenta_caution_block.json @@ -0,0 +1,9 @@ + +{ + "type": "minecraft:stonecutting", + "ingredient": { + "tag": "forge:ingots/aluminum" + }, + "result": "createindustry:magenta_caution_block", + "count": 4 +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/stonecutting/caution_blocks/orange_caution_block.json b/src/main/resources/data/createindustry/recipes/stonecutting/caution_blocks/orange_caution_block.json new file mode 100644 index 00000000..303b12e0 --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/stonecutting/caution_blocks/orange_caution_block.json @@ -0,0 +1,9 @@ + +{ + "type": "minecraft:stonecutting", + "ingredient": { + "tag": "forge:ingots/aluminum" + }, + "result": "createindustry:orange_caution_block", + "count": 4 +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/stonecutting/caution_blocks/pink_caution_block.json b/src/main/resources/data/createindustry/recipes/stonecutting/caution_blocks/pink_caution_block.json new file mode 100644 index 00000000..3d1f2f1b --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/stonecutting/caution_blocks/pink_caution_block.json @@ -0,0 +1,9 @@ + +{ + "type": "minecraft:stonecutting", + "ingredient": { + "tag": "forge:ingots/aluminum" + }, + "result": "createindustry:pink_caution_block", + "count": 4 +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/stonecutting/caution_blocks/purple_caution_block.json b/src/main/resources/data/createindustry/recipes/stonecutting/caution_blocks/purple_caution_block.json new file mode 100644 index 00000000..a847b2c3 --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/stonecutting/caution_blocks/purple_caution_block.json @@ -0,0 +1,9 @@ + +{ + "type": "minecraft:stonecutting", + "ingredient": { + "tag": "forge:ingots/aluminum" + }, + "result": "createindustry:purple_caution_block", + "count": 4 +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/stonecutting/caution_blocks/white_caution_block.json b/src/main/resources/data/createindustry/recipes/stonecutting/caution_blocks/white_caution_block.json new file mode 100644 index 00000000..d6cf2110 --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/stonecutting/caution_blocks/white_caution_block.json @@ -0,0 +1,9 @@ + +{ + "type": "minecraft:stonecutting", + "ingredient": { + "tag": "forge:ingots/aluminum" + }, + "result": "createindustry:white_caution_block", + "count": 4 +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/stonecutting/copper_wire.json b/src/main/resources/data/createindustry/recipes/stonecutting/copper_wire.json new file mode 100644 index 00000000..3498f768 --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/stonecutting/copper_wire.json @@ -0,0 +1,9 @@ + +{ + "type": "minecraft:stonecutting", + "ingredient": { + "tag": "forge:ingots/copper" + }, + "result": "createindustry:copper_wire", + "count": 2 +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/stonecutting/hardened_planks_slab.json b/src/main/resources/data/createindustry/recipes/stonecutting/hardened_planks_slab.json new file mode 100644 index 00000000..a6ebf9fc --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/stonecutting/hardened_planks_slab.json @@ -0,0 +1,9 @@ + +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "createindustry:hardened_planks" + }, + "result": "createindustry:hardened_planks_slab", + "count": 2 +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/stonecutting/nickel_frame.json b/src/main/resources/data/createindustry/recipes/stonecutting/nickel_frame.json new file mode 100644 index 00000000..def65f6b --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/stonecutting/nickel_frame.json @@ -0,0 +1,9 @@ + +{ + "type": "minecraft:stonecutting", + "ingredient": { + "tag": "forge:ingots/nickel" + }, + "result": "createindustry:nickel_frame", + "count": 4 +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/stonecutting/nickel_truss.json b/src/main/resources/data/createindustry/recipes/stonecutting/nickel_truss.json new file mode 100644 index 00000000..372993ec --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/stonecutting/nickel_truss.json @@ -0,0 +1,9 @@ + +{ + "type": "minecraft:stonecutting", + "ingredient": { + "tag": "forge:ingots/nickel" + }, + "result": "createindustry:nickel_truss", + "count": 4 +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/stonecutting/rebar_concrete_stairs.json b/src/main/resources/data/createindustry/recipes/stonecutting/rebar_concrete_stairs.json new file mode 100644 index 00000000..f1c9805f --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/stonecutting/rebar_concrete_stairs.json @@ -0,0 +1,9 @@ + +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "createindustry:rebar_concrete" + }, + "result": "createindustry:rebar_concrete_stairs", + "count": 1 +} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/stonecutting/rebar_concrete_wall.json b/src/main/resources/data/createindustry/recipes/stonecutting/rebar_concrete_wall.json new file mode 100644 index 00000000..857b52b6 --- /dev/null +++ b/src/main/resources/data/createindustry/recipes/stonecutting/rebar_concrete_wall.json @@ -0,0 +1,9 @@ + +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "createindustry:rebar_concrete" + }, + "result": "createindustry:rebar_concrete_wall", + "count": 1 +} \ No newline at end of file