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(i