1.2.1 update
This commit is contained in:
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"variants": {
|
||||
"facing=east": {
|
||||
"model": "tfmg:block/compressor/block",
|
||||
"y": 90
|
||||
},
|
||||
"facing=north": {
|
||||
"model": "tfmg:block/compressor/block"
|
||||
},
|
||||
"facing=south": {
|
||||
"model": "tfmg:block/compressor/block",
|
||||
"y": 180
|
||||
},
|
||||
"facing=west": {
|
||||
"model": "tfmg:block/compressor/block",
|
||||
"y": 270
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"variants": {
|
||||
"": {
|
||||
"model": "tfmg:block/freezer/block"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -104,6 +104,7 @@
|
||||
"block.tfmg.coal_coke_block": "ǝʞoƆ ןɐoƆ ɟo ʞɔoןᗺ",
|
||||
"block.tfmg.cocrete_hose.tooltip.summary": "ǝʇǝɹɔuoɔ ɹɐqǝɹ sɐ sǝıɹp ǝʇǝɹɔuoɔ ʇǝS ˙sʞɔoןq ɹɐqǝɹ oʇuı ʎǝןןnd ǝsoɥ ɐ ǝʞıן ǝʇǝɹɔuoɔ sdɯnԀ",
|
||||
"block.tfmg.coke_oven": "uǝʌO ǝʞoƆ",
|
||||
"block.tfmg.compressor": "ɹossǝɹdɯoƆ",
|
||||
"block.tfmg.concrete": "ǝʇǝɹɔuoƆ",
|
||||
"block.tfmg.concrete_encased_cable_tube": "ǝqn⟘ ǝןqɐƆ pǝsɐɔuƎ ǝʇǝɹɔuoƆ",
|
||||
"block.tfmg.concrete_encased_electric_post": "ʇsoԀ ɔıɹʇɔǝןƎ pǝsɐɔuƎ ǝʇǝɹɔuoƆ",
|
||||
@@ -199,6 +200,7 @@
|
||||
"block.tfmg.flarestack.tooltip.condition1": "ɯoʇʇoq ǝɥʇ ɯoɹɟ oʇuı sǝsɐ⅁/spınןℲ ǝןqɐuɹnq pǝdɯnԀ uǝɥM",
|
||||
"block.tfmg.flarestack.tooltip.summary": "sʇɔnpoɹd ןıo pǝpǝǝuun suɹnᗺ",
|
||||
"block.tfmg.fossilstone": "ǝuoʇsןıssoℲ",
|
||||
"block.tfmg.freezer": "ɹǝzǝǝɹℲ",
|
||||
"block.tfmg.galena": "ɐuǝןɐ⅁",
|
||||
"block.tfmg.galena_pillar": "ɹɐןןıԀ ɐuǝןɐ⅁",
|
||||
"block.tfmg.gas_lamp": "dɯɐꞀ sɐ⅁",
|
||||
@@ -527,6 +529,10 @@
|
||||
"create.recipe.industrial_blasting": "buıʇsɐןᗺ ןɐıɹʇsnpuI",
|
||||
"create.recipe.polarizing": "buızıɹɐןoԀ",
|
||||
"create.recipe.winding": "buıpuıM",
|
||||
"create.vat.heat": "ʇɐǝH",
|
||||
"create.vat.heat_dots": " ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙",
|
||||
"create.vat.pressure": "ǝɹnssǝɹԀ",
|
||||
"create.vat.pressure_dots": " ˙˙˙",
|
||||
"creative_tab.tfmg_decoration": "sʞɔoןᗺ buıpןınᗺ ⅁WℲ⟘ :ǝʇɐǝɹƆ",
|
||||
"creative_tab.tfmg_main": "ʍoɹ⅁ ʇsnW ʎɹoʇɔɐℲ ǝɥ⟘ :ǝʇɐǝɹƆ",
|
||||
"death.attack.tfmg.acid": "ɥʇɐq pıɔɐ uɐ ʞooʇ %1$s",
|
||||
@@ -935,6 +941,9 @@
|
||||
"tfmg.goggles.blast_stove.tank3": " :Ɩ ʞuɐ⟘ ʇndʇnO",
|
||||
"tfmg.goggles.blast_stove.tank4": " :ᄅ ʞuɐ⟘ ʇndʇnO",
|
||||
"tfmg.goggles.coke_oven.progress": "%1$s :ssǝɹboɹԀ",
|
||||
"tfmg.goggles.compressor.depressurizing": "buızıɹnssǝɹdǝᗡ :ǝʇɐʇS",
|
||||
"tfmg.goggles.compressor.non_operational": ")WԀᴚ 0ᄅƖ ʇsɐǝן ʇɐ spǝǝN(ןɐuoıʇɐɹǝdO uoN :ǝʇɐʇS",
|
||||
"tfmg.goggles.compressor.pressurizing": "buızıɹnssǝɹԀ :ǝʇɐʇS",
|
||||
"tfmg.goggles.distillation_tower.found_outputs": "%1$s :ʇunoƆ ʇndʇnO",
|
||||
"tfmg.goggles.distillation_tower.level": "%1$s :ןǝʌǝꞀ ʇɐǝH",
|
||||
"tfmg.goggles.distillation_tower.no_outputs": "punoℲ sʞɔoןᗺ ʇndʇnO oN",
|
||||
|
||||
@@ -104,6 +104,7 @@
|
||||
"block.tfmg.coal_coke_block": "Block of Coal Coke",
|
||||
"block.tfmg.cocrete_hose.tooltip.summary": "Pumps concrete like a hose pulley into rebar blocks. Set concrete dries as rebar concrete",
|
||||
"block.tfmg.coke_oven": "Coke Oven",
|
||||
"block.tfmg.compressor": "Compressor",
|
||||
"block.tfmg.concrete": "Concrete",
|
||||
"block.tfmg.concrete_encased_cable_tube": "Concrete Encased Cable Tube",
|
||||
"block.tfmg.concrete_encased_electric_post": "Concrete Encased Electric Post",
|
||||
@@ -199,6 +200,7 @@
|
||||
"block.tfmg.flarestack.tooltip.condition1": "When Pumped burnable Fluids/Gases into from the bottom",
|
||||
"block.tfmg.flarestack.tooltip.summary": "Burns unneeded oil products",
|
||||
"block.tfmg.fossilstone": "Fossilstone",
|
||||
"block.tfmg.freezer": "Freezer",
|
||||
"block.tfmg.galena": "Galena",
|
||||
"block.tfmg.galena_pillar": "Galena Pillar",
|
||||
"block.tfmg.gas_lamp": "Gas Lamp",
|
||||
@@ -527,6 +529,10 @@
|
||||
"create.recipe.industrial_blasting": "Industrial Blasting",
|
||||
"create.recipe.polarizing": "Polarizing",
|
||||
"create.recipe.winding": "Winding",
|
||||
"create.vat.heat": "Heat",
|
||||
"create.vat.heat_dots": "................ ",
|
||||
"create.vat.pressure": "Pressure",
|
||||
"create.vat.pressure_dots": "... ",
|
||||
"creative_tab.tfmg_decoration": "Create: TFMG Building Blocks",
|
||||
"creative_tab.tfmg_main": "Create: The Factory Must Grow",
|
||||
"death.attack.tfmg.acid": "%1$s took an acid bath",
|
||||
@@ -935,6 +941,9 @@
|
||||
"tfmg.goggles.blast_stove.tank3": "Output Tank 1: ",
|
||||
"tfmg.goggles.blast_stove.tank4": "Output Tank 2: ",
|
||||
"tfmg.goggles.coke_oven.progress": "Progress: %1$s",
|
||||
"tfmg.goggles.compressor.depressurizing": "State: Depressurizing",
|
||||
"tfmg.goggles.compressor.non_operational": "State: Non Operational(Needs at least 120 RPM)",
|
||||
"tfmg.goggles.compressor.pressurizing": "State: Pressurizing",
|
||||
"tfmg.goggles.distillation_tower.found_outputs": "Output Count: %1$s",
|
||||
"tfmg.goggles.distillation_tower.level": "Heat Level: %1$s",
|
||||
"tfmg.goggles.distillation_tower.no_outputs": "No Output Blocks Found",
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"parent": "tfmg:block/compressor/item"
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"parent": "tfmg:block/freezer/item"
|
||||
}
|
||||
@@ -1,5 +1,7 @@
|
||||
{
|
||||
"values": [
|
||||
"tfmg:concrete",
|
||||
"tfmg:rebar_concrete",
|
||||
"tfmg:concrete",
|
||||
"tfmg:rebar_concrete"
|
||||
]
|
||||
|
||||
@@ -1,5 +1,11 @@
|
||||
{
|
||||
"values": [
|
||||
"tfmg:lead_ore",
|
||||
"tfmg:deepslate_lead_ore",
|
||||
"tfmg:nickel_ore",
|
||||
"tfmg:deepslate_nickel_ore",
|
||||
"tfmg:lithium_ore",
|
||||
"tfmg:deepslate_lithium_ore",
|
||||
"tfmg:lead_ore",
|
||||
"tfmg:deepslate_lead_ore",
|
||||
"tfmg:nickel_ore",
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
{
|
||||
"values": [
|
||||
"tfmg:lead_ore",
|
||||
"tfmg:deepslate_lead_ore",
|
||||
"tfmg:lead_ore",
|
||||
"tfmg:deepslate_lead_ore"
|
||||
]
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
{
|
||||
"values": [
|
||||
"tfmg:lithium_ore",
|
||||
"tfmg:deepslate_lithium_ore",
|
||||
"tfmg:lithium_ore",
|
||||
"tfmg:deepslate_lithium_ore"
|
||||
]
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
{
|
||||
"values": [
|
||||
"tfmg:nickel_ore",
|
||||
"tfmg:deepslate_nickel_ore",
|
||||
"tfmg:nickel_ore",
|
||||
"tfmg:deepslate_nickel_ore"
|
||||
]
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
{
|
||||
"values": [
|
||||
"tfmg:deepslate_lead_ore",
|
||||
"tfmg:deepslate_nickel_ore",
|
||||
"tfmg:deepslate_lithium_ore",
|
||||
"tfmg:deepslate_lead_ore",
|
||||
"tfmg:deepslate_nickel_ore",
|
||||
"tfmg:deepslate_lithium_ore"
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
{
|
||||
"values": [
|
||||
"tfmg:lead_ore",
|
||||
"tfmg:nickel_ore",
|
||||
"tfmg:lithium_ore",
|
||||
"tfmg:lead_ore",
|
||||
"tfmg:nickel_ore",
|
||||
"tfmg:lithium_ore"
|
||||
|
||||
@@ -11,6 +11,15 @@
|
||||
"tfmg:constantan_block",
|
||||
"tfmg:nickel_block",
|
||||
"tfmg:lithium_block",
|
||||
"tfmg:coal_coke_block",
|
||||
"tfmg:steel_block",
|
||||
"tfmg:cast_iron_block",
|
||||
"tfmg:aluminum_block",
|
||||
"tfmg:plastic_block",
|
||||
"tfmg:lead_block",
|
||||
"tfmg:constantan_block",
|
||||
"tfmg:nickel_block",
|
||||
"tfmg:lithium_block",
|
||||
"tfmg:coal_coke_block"
|
||||
]
|
||||
}
|
||||
@@ -1,5 +1,6 @@
|
||||
{
|
||||
"values": [
|
||||
"tfmg:aluminum_block",
|
||||
"tfmg:aluminum_block"
|
||||
]
|
||||
}
|
||||
@@ -1,5 +1,6 @@
|
||||
{
|
||||
"values": [
|
||||
"tfmg:cast_iron_block",
|
||||
"tfmg:cast_iron_block"
|
||||
]
|
||||
}
|
||||
@@ -1,5 +1,6 @@
|
||||
{
|
||||
"values": [
|
||||
"tfmg:coal_coke_block",
|
||||
"tfmg:coal_coke_block"
|
||||
]
|
||||
}
|
||||
@@ -1,5 +1,6 @@
|
||||
{
|
||||
"values": [
|
||||
"tfmg:constantan_block",
|
||||
"tfmg:constantan_block"
|
||||
]
|
||||
}
|
||||
@@ -1,5 +1,6 @@
|
||||
{
|
||||
"values": [
|
||||
"tfmg:lead_block",
|
||||
"tfmg:lead_block"
|
||||
]
|
||||
}
|
||||
@@ -1,5 +1,6 @@
|
||||
{
|
||||
"values": [
|
||||
"tfmg:lithium_block",
|
||||
"tfmg:lithium_block"
|
||||
]
|
||||
}
|
||||
@@ -1,5 +1,6 @@
|
||||
{
|
||||
"values": [
|
||||
"tfmg:nickel_block",
|
||||
"tfmg:nickel_block"
|
||||
]
|
||||
}
|
||||
@@ -1,5 +1,6 @@
|
||||
{
|
||||
"values": [
|
||||
"tfmg:plastic_block",
|
||||
"tfmg:plastic_block"
|
||||
]
|
||||
}
|
||||
@@ -1,5 +1,6 @@
|
||||
{
|
||||
"values": [
|
||||
"tfmg:raw_lead_block",
|
||||
"tfmg:raw_lead_block"
|
||||
]
|
||||
}
|
||||
@@ -1,5 +1,6 @@
|
||||
{
|
||||
"values": [
|
||||
"tfmg:raw_lithium_block",
|
||||
"tfmg:raw_lithium_block"
|
||||
]
|
||||
}
|
||||
@@ -1,5 +1,6 @@
|
||||
{
|
||||
"values": [
|
||||
"tfmg:raw_nickel_block",
|
||||
"tfmg:raw_nickel_block"
|
||||
]
|
||||
}
|
||||
@@ -1,5 +1,6 @@
|
||||
{
|
||||
"values": [
|
||||
"tfmg:steel_block",
|
||||
"tfmg:steel_block"
|
||||
]
|
||||
}
|
||||
@@ -1,5 +1,8 @@
|
||||
{
|
||||
"values": [
|
||||
"tfmg:steel_casing",
|
||||
"tfmg:heavy_machinery_casing",
|
||||
"tfmg:industrial_aluminum_casing",
|
||||
"tfmg:steel_casing",
|
||||
"tfmg:heavy_machinery_casing",
|
||||
"tfmg:industrial_aluminum_casing"
|
||||
|
||||
@@ -1,6 +1,12 @@
|
||||
{
|
||||
"values": [
|
||||
"tfmg:copycat_cable_base",
|
||||
"tfmg:copycat_cable_base",
|
||||
"tfmg:steel_bars",
|
||||
"tfmg:aluminum_bars",
|
||||
"tfmg:cast_iron_bars",
|
||||
"tfmg:lead_bars",
|
||||
"tfmg:nickel_bars",
|
||||
"tfmg:steel_bars",
|
||||
"tfmg:aluminum_bars",
|
||||
"tfmg:cast_iron_bars",
|
||||
|
||||
@@ -2,6 +2,8 @@
|
||||
"values": [
|
||||
"tfmg:oil_deposit",
|
||||
"tfmg:large_switch",
|
||||
"tfmg:large_transformer",
|
||||
"tfmg:large_switch",
|
||||
"tfmg:large_transformer"
|
||||
]
|
||||
}
|
||||
@@ -1,5 +1,10 @@
|
||||
{
|
||||
"values": [
|
||||
"tfmg:steel_bars",
|
||||
"tfmg:aluminum_bars",
|
||||
"tfmg:cast_iron_bars",
|
||||
"tfmg:lead_bars",
|
||||
"tfmg:nickel_bars",
|
||||
"tfmg:steel_bars",
|
||||
"tfmg:aluminum_bars",
|
||||
"tfmg:cast_iron_bars",
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
{
|
||||
"values": [
|
||||
"tfmg:bauxite",
|
||||
"tfmg:galena",
|
||||
"tfmg:bauxite",
|
||||
"tfmg:galena"
|
||||
]
|
||||
|
||||
@@ -1,5 +1,13 @@
|
||||
{
|
||||
"values": [
|
||||
"tfmg:steel_block",
|
||||
"tfmg:cast_iron_block",
|
||||
"tfmg:aluminum_block",
|
||||
"tfmg:lead_block",
|
||||
"tfmg:constantan_block",
|
||||
"tfmg:nickel_block",
|
||||
"tfmg:lithium_block",
|
||||
"tfmg:laminated_magnetic_alloy_block",
|
||||
"tfmg:steel_block",
|
||||
"tfmg:cast_iron_block",
|
||||
"tfmg:aluminum_block",
|
||||
|
||||
@@ -1,5 +1,13 @@
|
||||
{
|
||||
"values": [
|
||||
"tfmg:steel_ladder",
|
||||
"tfmg:aluminum_ladder",
|
||||
"tfmg:cast_iron_ladder",
|
||||
"tfmg:lead_ladder",
|
||||
"tfmg:nickel_ladder",
|
||||
"tfmg:constantan_ladder",
|
||||
"tfmg:steel_scaffolding",
|
||||
"tfmg:aluminum_scaffolding",
|
||||
"tfmg:steel_ladder",
|
||||
"tfmg:aluminum_ladder",
|
||||
"tfmg:cast_iron_ladder",
|
||||
|
||||
@@ -1,5 +1,9 @@
|
||||
{
|
||||
"values": [
|
||||
"tfmg:heavy_casing_door",
|
||||
"tfmg:steel_door",
|
||||
"tfmg:aluminum_door",
|
||||
"tfmg:heavy_plated_door",
|
||||
"tfmg:heavy_casing_door",
|
||||
"tfmg:steel_door",
|
||||
"tfmg:aluminum_door",
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
{
|
||||
"values": [
|
||||
"tfmg:bauxite",
|
||||
"tfmg:galena",
|
||||
"tfmg:bauxite",
|
||||
"tfmg:galena"
|
||||
]
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
{
|
||||
"values": [
|
||||
"tfmg:bauxite",
|
||||
"tfmg:galena",
|
||||
"tfmg:bauxite",
|
||||
"tfmg:galena"
|
||||
]
|
||||
|
||||
@@ -9,20 +9,20 @@
|
||||
"tfmg:steel_casing",
|
||||
"tfmg:heavy_machinery_casing",
|
||||
"tfmg:industrial_aluminum_casing",
|
||||
"tfmg:encased_brass_pipe",
|
||||
"tfmg:encased_steel_pipe",
|
||||
"tfmg:steel_gearbox",
|
||||
"tfmg:encased_aluminum_pipe",
|
||||
"tfmg:encased_cast_iron_pipe",
|
||||
"tfmg:encased_plastic_pipe",
|
||||
"tfmg:hardened_planks",
|
||||
"tfmg:steel_flywheel",
|
||||
"tfmg:lead_flywheel",
|
||||
"tfmg:cast_iron_flywheel",
|
||||
"tfmg:aluminum_flywheel",
|
||||
"tfmg:nickel_flywheel",
|
||||
"tfmg:encased_brass_pipe",
|
||||
"tfmg:encased_steel_pipe",
|
||||
"tfmg:encased_aluminum_pipe",
|
||||
"tfmg:encased_cast_iron_pipe",
|
||||
"tfmg:encased_plastic_pipe",
|
||||
"tfmg:steel_encased_shaft",
|
||||
"tfmg:aluminum_flywheel",
|
||||
"tfmg:heavy_casing_encased_shaft",
|
||||
"tfmg:nickel_flywheel",
|
||||
"tfmg:steel_encased_steel_cogwheel",
|
||||
"tfmg:heavy_casing_encased_steel_cogwheel",
|
||||
"tfmg:steel_encased_large_steel_cogwheel",
|
||||
|
||||
@@ -1,200 +1,360 @@
|
||||
{
|
||||
"values": [
|
||||
"tfmg:purple_concrete",
|
||||
"tfmg:aluminum_fluid_tank",
|
||||
"tfmg:purple_concrete_wall",
|
||||
"tfmg:cast_iron_fluid_tank",
|
||||
"tfmg:purple_concrete_stairs",
|
||||
"tfmg:steel_fluid_tank",
|
||||
"tfmg:steel_distillation_output",
|
||||
"tfmg:purple_concrete_slab",
|
||||
"tfmg:steel_distillation_controller",
|
||||
"tfmg:industrial_pipe",
|
||||
"tfmg:orange_concrete",
|
||||
"tfmg:concrete_encased_industrial_pipe",
|
||||
"tfmg:orange_concrete_wall",
|
||||
"tfmg:pumpjack_hammer",
|
||||
"tfmg:orange_concrete_stairs",
|
||||
"tfmg:pumpjack_crank",
|
||||
"tfmg:orange_concrete_slab",
|
||||
"tfmg:pumpjack_hammer_part",
|
||||
"tfmg:black_concrete",
|
||||
"tfmg:black_concrete_wall",
|
||||
"tfmg:pumpjack_hammer_head",
|
||||
"tfmg:black_concrete_stairs",
|
||||
"tfmg:pumpjack_hammer_connector",
|
||||
"tfmg:black_concrete_slab",
|
||||
"tfmg:white_rebar_concrete",
|
||||
"tfmg:white_rebar_concrete_wall",
|
||||
"tfmg:large_pumpjack_hammer_part",
|
||||
"tfmg:white_rebar_concrete_stairs",
|
||||
"tfmg:large_pumpjack_hammer_head",
|
||||
"tfmg:white_rebar_concrete_slab",
|
||||
"tfmg:large_pumpjack_hammer_connector",
|
||||
"tfmg:blue_rebar_concrete",
|
||||
"tfmg:pumpjack_base",
|
||||
"tfmg:blue_rebar_concrete_wall",
|
||||
"tfmg:oil_deposit",
|
||||
"tfmg:blue_rebar_concrete_stairs",
|
||||
"tfmg:steel_chemical_vat",
|
||||
"tfmg:blue_rebar_concrete_slab",
|
||||
"tfmg:cast_iron_chemical_vat",
|
||||
"tfmg:fireproof_chemical_vat",
|
||||
"tfmg:industrial_mixer",
|
||||
"tfmg:light_blue_rebar_concrete",
|
||||
"tfmg:electrode_holder",
|
||||
"tfmg:freezer",
|
||||
"tfmg:light_blue_rebar_concrete_wall",
|
||||
"tfmg:compressor",
|
||||
"tfmg:light_blue_rebar_concrete_stairs",
|
||||
"tfmg:lead_ore",
|
||||
"tfmg:light_blue_rebar_concrete_slab",
|
||||
"tfmg:deepslate_lead_ore",
|
||||
"tfmg:nickel_ore",
|
||||
"tfmg:red_rebar_concrete",
|
||||
"tfmg:deepslate_nickel_ore",
|
||||
"tfmg:lithium_ore",
|
||||
"tfmg:red_rebar_concrete_wall",
|
||||
"tfmg:deepslate_lithium_ore",
|
||||
"tfmg:sulfur",
|
||||
"tfmg:lignite",
|
||||
"tfmg:red_rebar_concrete_stairs",
|
||||
"tfmg:fossilstone",
|
||||
"tfmg:red_rebar_concrete_slab",
|
||||
"tfmg:slag_block",
|
||||
"tfmg:raw_nickel_block",
|
||||
"tfmg:raw_lead_block",
|
||||
"tfmg:green_rebar_concrete",
|
||||
"tfmg:raw_lithium_block",
|
||||
"tfmg:air_intake",
|
||||
"tfmg:green_rebar_concrete_wall",
|
||||
"tfmg:firebox",
|
||||
"tfmg:winding_machine",
|
||||
"tfmg:green_rebar_concrete_stairs",
|
||||
"tfmg:surface_scanner",
|
||||
"tfmg:green_rebar_concrete_slab",
|
||||
"tfmg:lime_rebar_concrete",
|
||||
"tfmg:machine_input",
|
||||
"tfmg:concrete_hose",
|
||||
"tfmg:lime_rebar_concrete_wall",
|
||||
"tfmg:blast_furnace_output",
|
||||
"tfmg:blast_furnace_hatch",
|
||||
"tfmg:lime_rebar_concrete_stairs",
|
||||
"tfmg:fireproof_bricks",
|
||||
"tfmg:lime_rebar_concrete_slab",
|
||||
"tfmg:reinforced_fireproof_bricks",
|
||||
"tfmg:pink_rebar_concrete",
|
||||
"tfmg:blast_furnace_reinforcement",
|
||||
"tfmg:pink_rebar_concrete_wall",
|
||||
"tfmg:blast_furnace_reinforcement_wall",
|
||||
"tfmg:pink_rebar_concrete_stairs",
|
||||
"tfmg:rusted_blast_furnace_reinforcement",
|
||||
"tfmg:pink_rebar_concrete_slab",
|
||||
"tfmg:rusted_blast_furnace_reinforcement_wall",
|
||||
"tfmg:magenta_rebar_concrete",
|
||||
"tfmg:fireproof_brick_reinforcement",
|
||||
"tfmg:magenta_rebar_concrete_wall",
|
||||
"tfmg:coke_oven",
|
||||
"tfmg:magenta_rebar_concrete_stairs",
|
||||
"tfmg:blast_stove",
|
||||
"tfmg:magenta_rebar_concrete_slab",
|
||||
"tfmg:casting_basin",
|
||||
"tfmg:yellow_rebar_concrete",
|
||||
"tfmg:napalm_bomb",
|
||||
"tfmg:yellow_rebar_concrete_wall",
|
||||
"tfmg:generator",
|
||||
"tfmg:yellow_rebar_concrete_stairs",
|
||||
"tfmg:cable_connector",
|
||||
"tfmg:yellow_rebar_concrete_slab",
|
||||
"tfmg:glass_cable_insulator",
|
||||
"tfmg:gray_rebar_concrete",
|
||||
"tfmg:resistor",
|
||||
"tfmg:gray_rebar_concrete_wall",
|
||||
"tfmg:copycat_cable_block",
|
||||
"tfmg:gray_rebar_concrete_stairs",
|
||||
"tfmg:copycat_cable_base",
|
||||
"tfmg:gray_rebar_concrete_slab",
|
||||
"tfmg:light_gray_rebar_concrete",
|
||||
"tfmg:brass_cable_hub",
|
||||
"tfmg:light_gray_rebar_concrete_wall",
|
||||
"tfmg:copper_cable_hub",
|
||||
"tfmg:light_gray_rebar_concrete_stairs",
|
||||
"tfmg:steel_cable_hub",
|
||||
"tfmg:light_gray_rebar_concrete_slab",
|
||||
"tfmg:aluminum_cable_hub",
|
||||
"tfmg:steel_casing_cable_hub",
|
||||
"tfmg:brown_rebar_concrete",
|
||||
"tfmg:heavy_cable_hub",
|
||||
"tfmg:brown_rebar_concrete_wall",
|
||||
"tfmg:cable_tube",
|
||||
"tfmg:brown_rebar_concrete_stairs",
|
||||
"tfmg:concrete_encased_cable_tube",
|
||||
"tfmg:brown_rebar_concrete_slab",
|
||||
"tfmg:electric_post",
|
||||
"tfmg:cyan_rebar_concrete",
|
||||
"tfmg:concrete_encased_electric_post",
|
||||
"tfmg:diagonal_cable_block",
|
||||
"tfmg:electric_motor",
|
||||
"tfmg:creative_generator",
|
||||
"tfmg:cyan_rebar_concrete_wall",
|
||||
"tfmg:accumulator",
|
||||
"tfmg:light_bulb",
|
||||
"tfmg:cyan_rebar_concrete_stairs",
|
||||
"tfmg:circular_light",
|
||||
"tfmg:modern_light",
|
||||
"tfmg:cyan_rebar_concrete_slab",
|
||||
"tfmg:aluminum_lamp",
|
||||
"tfmg:neon_tube",
|
||||
"tfmg:purple_rebar_concrete",
|
||||
"tfmg:electric_diode",
|
||||
"tfmg:purple_rebar_concrete_wall",
|
||||
"tfmg:encased_diode",
|
||||
"tfmg:purple_rebar_concrete_stairs",
|
||||
"tfmg:potentiometer",
|
||||
"tfmg:purple_rebar_concrete_slab",
|
||||
"tfmg:electrical_switch",
|
||||
"tfmg:large_switch",
|
||||
"tfmg:orange_rebar_concrete",
|
||||
"tfmg:encased_potentiometer",
|
||||
"tfmg:electric_pump",
|
||||
"tfmg:orange_rebar_concrete_wall",
|
||||
"tfmg:voltage_observer",
|
||||
"tfmg:voltmeter",
|
||||
"tfmg:orange_rebar_concrete_stairs",
|
||||
"tfmg:polarizer",
|
||||
"tfmg:orange_rebar_concrete_slab",
|
||||
"tfmg:rotor",
|
||||
"tfmg:stator",
|
||||
"tfmg:black_rebar_concrete",
|
||||
"tfmg:traffic_light",
|
||||
"tfmg:segmented_display",
|
||||
"tfmg:transformer",
|
||||
"tfmg:large_transformer",
|
||||
"tfmg:black_rebar_concrete_wall",
|
||||
"tfmg:converter",
|
||||
"tfmg:large_coil",
|
||||
"tfmg:brick_smokestack",
|
||||
"tfmg:metal_smokestack",
|
||||
"tfmg:black_rebar_concrete_stairs",
|
||||
"tfmg:concrete_smokestack",
|
||||
"tfmg:exhaust",
|
||||
"tfmg:black_rebar_concrete_slab",
|
||||
"tfmg:flarestack",
|
||||
"tfmg:gas_lamp",
|
||||
"tfmg:asphalt",
|
||||
"tfmg:steel_cogwheel",
|
||||
"tfmg:large_steel_cogwheel",
|
||||
"tfmg:asphalt_wall",
|
||||
"tfmg:aluminum_cogwheel",
|
||||
"tfmg:large_aluminum_cogwheel",
|
||||
"tfmg:asphalt_slab",
|
||||
"tfmg:steel_casing",
|
||||
"tfmg:heavy_machinery_casing",
|
||||
"tfmg:industrial_aluminum_casing",
|
||||
"tfmg:asphalt_stairs",
|
||||
"tfmg:steel_block",
|
||||
"tfmg:cast_iron_block",
|
||||
"tfmg:brass_pipe",
|
||||
"tfmg:aluminum_block",
|
||||
"tfmg:plastic_block",
|
||||
"tfmg:encased_brass_pipe",
|
||||
"tfmg:lead_block",
|
||||
"tfmg:glass_brass_pipe",
|
||||
"tfmg:constantan_block",
|
||||
"tfmg:nickel_block",
|
||||
"tfmg:brass_mechanical_pump",
|
||||
"tfmg:lithium_block",
|
||||
"tfmg:coal_coke_block",
|
||||
"tfmg:brass_smart_fluid_pipe",
|
||||
"tfmg:laminated_magnetic_alloy_block",
|
||||
"tfmg:brass_fluid_valve",
|
||||
"tfmg:heavy_casing_door",
|
||||
"tfmg:steel_pipe",
|
||||
"tfmg:steel_door",
|
||||
"tfmg:encased_steel_pipe",
|
||||
"tfmg:aluminum_door",
|
||||
"tfmg:glass_steel_pipe",
|
||||
"tfmg:heavy_plated_door",
|
||||
"tfmg:steel_mechanical_pump",
|
||||
"tfmg:steel_gearbox",
|
||||
"tfmg:steel_bars",
|
||||
"tfmg:steel_smart_fluid_pipe",
|
||||
"tfmg:aluminum_bars",
|
||||
"tfmg:cast_iron_bars",
|
||||
"tfmg:steel_fluid_valve",
|
||||
"tfmg:lead_bars",
|
||||
"tfmg:aluminum_pipe",
|
||||
"tfmg:nickel_bars",
|
||||
"tfmg:encased_aluminum_pipe",
|
||||
"tfmg:steel_ladder",
|
||||
"tfmg:glass_aluminum_pipe",
|
||||
"tfmg:aluminum_ladder",
|
||||
"tfmg:aluminum_mechanical_pump",
|
||||
"tfmg:cast_iron_ladder",
|
||||
"tfmg:aluminum_smart_fluid_pipe",
|
||||
"tfmg:lead_ladder",
|
||||
"tfmg:aluminum_fluid_valve",
|
||||
"tfmg:nickel_ladder",
|
||||
"tfmg:cast_iron_pipe",
|
||||
"tfmg:constantan_ladder",
|
||||
"tfmg:encased_cast_iron_pipe",
|
||||
"tfmg:steel_scaffolding",
|
||||
"tfmg:glass_cast_iron_pipe",
|
||||
"tfmg:aluminum_scaffolding",
|
||||
"tfmg:cast_iron_mechanical_pump",
|
||||
"tfmg:slag_bricks",
|
||||
"tfmg:cast_iron_smart_fluid_pipe",
|
||||
"tfmg:cinder_block",
|
||||
"tfmg:cast_iron_fluid_valve",
|
||||
"tfmg:cinderflour_block",
|
||||
"tfmg:plastic_pipe",
|
||||
"tfmg:factory_floor",
|
||||
"tfmg:encased_plastic_pipe",
|
||||
"tfmg:glass_plastic_pipe",
|
||||
"tfmg:steel_trapdoor",
|
||||
"tfmg:plastic_mechanical_pump",
|
||||
"tfmg:steel_flywheel",
|
||||
"tfmg:plastic_smart_fluid_pipe",
|
||||
"tfmg:lead_flywheel",
|
||||
"tfmg:plastic_fluid_valve",
|
||||
"tfmg:cast_iron_flywheel",
|
||||
"tfmg:steel_encased_shaft",
|
||||
"tfmg:aluminum_flywheel",
|
||||
"tfmg:heavy_casing_encased_shaft",
|
||||
"tfmg:nickel_flywheel",
|
||||
"tfmg:steel_encased_steel_cogwheel",
|
||||
"tfmg:steel_truss",
|
||||
"tfmg:heavy_casing_encased_steel_cogwheel",
|
||||
"tfmg:steel_frame",
|
||||
"tfmg:steel_encased_large_steel_cogwheel",
|
||||
"tfmg:aluminum_truss",
|
||||
"tfmg:heavy_casing_encased_large_steel_cogwheel",
|
||||
"tfmg:aluminum_frame",
|
||||
"tfmg:steel_encased_aluminum_cogwheel",
|
||||
"tfmg:cast_iron_truss",
|
||||
"tfmg:heavy_casing_encased_aluminum_cogwheel",
|
||||
"tfmg:cast_iron_frame",
|
||||
"tfmg:steel_encased_large_aluminum_cogwheel",
|
||||
"tfmg:lead_truss",
|
||||
"tfmg:heavy_casing_encased_large_aluminum_cogwheel",
|
||||
"tfmg:lead_frame",
|
||||
"tfmg:bauxite",
|
||||
"tfmg:nickel_truss",
|
||||
"tfmg:nickel_frame",
|
||||
"tfmg:cut_bauxite",
|
||||
"tfmg:constantan_truss",
|
||||
"tfmg:cut_bauxite_stairs",
|
||||
"tfmg:constantan_frame",
|
||||
"tfmg:cut_bauxite_slab",
|
||||
"tfmg:copper_truss",
|
||||
"tfmg:cut_bauxite_wall",
|
||||
"tfmg:copper_frame",
|
||||
"tfmg:polished_cut_bauxite",
|
||||
"tfmg:zinc_truss",
|
||||
"tfmg:polished_cut_bauxite_stairs",
|
||||
"tfmg:zinc_frame",
|
||||
"tfmg:polished_cut_bauxite_slab",
|
||||
"tfmg:brass_truss",
|
||||
"tfmg:polished_cut_bauxite_wall",
|
||||
"tfmg:brass_frame",
|
||||
"tfmg:cut_bauxite_bricks",
|
||||
"tfmg:white_caution_block",
|
||||
"tfmg:blue_caution_block",
|
||||
"tfmg:cut_bauxite_brick_stairs",
|
||||
"tfmg:light_blue_caution_block",
|
||||
"tfmg:cut_bauxite_brick_slab",
|
||||
"tfmg:red_caution_block",
|
||||
"tfmg:cut_bauxite_brick_wall",
|
||||
"tfmg:green_caution_block",
|
||||
"tfmg:small_bauxite_bricks",
|
||||
"tfmg:lime_caution_block",
|
||||
"tfmg:small_bauxite_brick_stairs",
|
||||
"tfmg:pink_caution_block",
|
||||
"tfmg:small_bauxite_brick_slab",
|
||||
"tfmg:magenta_caution_block",
|
||||
"tfmg:small_bauxite_brick_wall",
|
||||
"tfmg:yellow_caution_block",
|
||||
"tfmg:layered_bauxite",
|
||||
"tfmg:gray_caution_block",
|
||||
"tfmg:bauxite_pillar",
|
||||
"tfmg:light_gray_caution_block",
|
||||
"tfmg:galena",
|
||||
"tfmg:brown_caution_block",
|
||||
"tfmg:cut_galena",
|
||||
"tfmg:cyan_caution_block",
|
||||
"tfmg:cut_galena_stairs",
|
||||
"tfmg:purple_caution_block",
|
||||
"tfmg:cut_galena_slab",
|
||||
"tfmg:orange_caution_block",
|
||||
"tfmg:cut_galena_wall",
|
||||
"tfmg:rebar_block",
|
||||
"tfmg:polished_cut_galena",
|
||||
"tfmg:rebar_floor",
|
||||
"tfmg:polished_cut_galena_stairs",
|
||||
"tfmg:rebar_wall",
|
||||
"tfmg:polished_cut_galena_slab",
|
||||
"tfmg:rebar_pile",
|
||||
"tfmg:polished_cut_galena_wall",
|
||||
"tfmg:rebar_stairs",
|
||||
"tfmg:cut_galena_bricks",
|
||||
"tfmg:rebar_pillar",
|
||||
"tfmg:cut_galena_brick_stairs",
|
||||
"tfmg:concrete_wall",
|
||||
"tfmg:cut_galena_brick_slab",
|
||||
"tfmg:concrete",
|
||||
"tfmg:cut_galena_brick_wall",
|
||||
"tfmg:concrete_stairs",
|
||||
"tfmg:small_galena_bricks",
|
||||
"tfmg:concrete_slab",
|
||||
"tfmg:small_galena_brick_stairs",
|
||||
"tfmg:rebar_concrete_wall",
|
||||
"tfmg:small_galena_brick_slab",
|
||||
"tfmg:rebar_concrete",
|
||||
"tfmg:small_galena_brick_wall",
|
||||
"tfmg:rebar_concrete_stairs",
|
||||
"tfmg:layered_galena",
|
||||
"tfmg:rebar_concrete_slab",
|
||||
"tfmg:galena_pillar",
|
||||
"tfmg:white_concrete",
|
||||
"tfmg:white_concrete_wall",
|
||||
"tfmg:white_concrete_stairs",
|
||||
@@ -205,205 +365,6 @@
|
||||
"tfmg:blue_concrete_slab",
|
||||
"tfmg:light_blue_concrete",
|
||||
"tfmg:light_blue_concrete_wall",
|
||||
"tfmg:light_blue_concrete_stairs",
|
||||
"tfmg:light_blue_concrete_slab",
|
||||
"tfmg:red_concrete",
|
||||
"tfmg:red_concrete_wall",
|
||||
"tfmg:red_concrete_stairs",
|
||||
"tfmg:red_concrete_slab",
|
||||
"tfmg:green_concrete",
|
||||
"tfmg:green_concrete_wall",
|
||||
"tfmg:green_concrete_stairs",
|
||||
"tfmg:green_concrete_slab",
|
||||
"tfmg:lime_concrete",
|
||||
"tfmg:lime_concrete_wall",
|
||||
"tfmg:lime_concrete_stairs",
|
||||
"tfmg:lime_concrete_slab",
|
||||
"tfmg:pink_concrete",
|
||||
"tfmg:pink_concrete_wall",
|
||||
"tfmg:pink_concrete_stairs",
|
||||
"tfmg:pink_concrete_slab",
|
||||
"tfmg:magenta_concrete",
|
||||
"tfmg:magenta_concrete_wall",
|
||||
"tfmg:magenta_concrete_stairs",
|
||||
"tfmg:magenta_concrete_slab",
|
||||
"tfmg:yellow_concrete",
|
||||
"tfmg:yellow_concrete_wall",
|
||||
"tfmg:yellow_concrete_stairs",
|
||||
"tfmg:yellow_concrete_slab",
|
||||
"tfmg:gray_concrete",
|
||||
"tfmg:gray_concrete_wall",
|
||||
"tfmg:gray_concrete_stairs",
|
||||
"tfmg:gray_concrete_slab",
|
||||
"tfmg:light_gray_concrete",
|
||||
"tfmg:light_gray_concrete_wall",
|
||||
"tfmg:light_gray_concrete_stairs",
|
||||
"tfmg:light_gray_concrete_slab",
|
||||
"tfmg:brown_concrete",
|
||||
"tfmg:brown_concrete_wall",
|
||||
"tfmg:brown_concrete_stairs",
|
||||
"tfmg:brown_concrete_slab",
|
||||
"tfmg:cyan_concrete",
|
||||
"tfmg:cyan_concrete_wall",
|
||||
"tfmg:cyan_concrete_stairs",
|
||||
"tfmg:cyan_concrete_slab",
|
||||
"tfmg:purple_concrete",
|
||||
"tfmg:purple_concrete_wall",
|
||||
"tfmg:purple_concrete_stairs",
|
||||
"tfmg:purple_concrete_slab",
|
||||
"tfmg:orange_concrete",
|
||||
"tfmg:orange_concrete_wall",
|
||||
"tfmg:orange_concrete_stairs",
|
||||
"tfmg:orange_concrete_slab",
|
||||
"tfmg:black_concrete",
|
||||
"tfmg:black_concrete_wall",
|
||||
"tfmg:black_concrete_stairs",
|
||||
"tfmg:black_concrete_slab",
|
||||
"tfmg:white_rebar_concrete",
|
||||
"tfmg:white_rebar_concrete_wall",
|
||||
"tfmg:white_rebar_concrete_stairs",
|
||||
"tfmg:white_rebar_concrete_slab",
|
||||
"tfmg:blue_rebar_concrete",
|
||||
"tfmg:blue_rebar_concrete_wall",
|
||||
"tfmg:blue_rebar_concrete_stairs",
|
||||
"tfmg:blue_rebar_concrete_slab",
|
||||
"tfmg:light_blue_rebar_concrete",
|
||||
"tfmg:light_blue_rebar_concrete_wall",
|
||||
"tfmg:light_blue_rebar_concrete_stairs",
|
||||
"tfmg:light_blue_rebar_concrete_slab",
|
||||
"tfmg:red_rebar_concrete",
|
||||
"tfmg:red_rebar_concrete_wall",
|
||||
"tfmg:red_rebar_concrete_stairs",
|
||||
"tfmg:red_rebar_concrete_slab",
|
||||
"tfmg:green_rebar_concrete",
|
||||
"tfmg:green_rebar_concrete_wall",
|
||||
"tfmg:green_rebar_concrete_stairs",
|
||||
"tfmg:green_rebar_concrete_slab",
|
||||
"tfmg:lime_rebar_concrete",
|
||||
"tfmg:lime_rebar_concrete_wall",
|
||||
"tfmg:lime_rebar_concrete_stairs",
|
||||
"tfmg:lime_rebar_concrete_slab",
|
||||
"tfmg:pink_rebar_concrete",
|
||||
"tfmg:pink_rebar_concrete_wall",
|
||||
"tfmg:pink_rebar_concrete_stairs",
|
||||
"tfmg:pink_rebar_concrete_slab",
|
||||
"tfmg:magenta_rebar_concrete",
|
||||
"tfmg:magenta_rebar_concrete_wall",
|
||||
"tfmg:magenta_rebar_concrete_stairs",
|
||||
"tfmg:magenta_rebar_concrete_slab",
|
||||
"tfmg:yellow_rebar_concrete",
|
||||
"tfmg:yellow_rebar_concrete_wall",
|
||||
"tfmg:yellow_rebar_concrete_stairs",
|
||||
"tfmg:yellow_rebar_concrete_slab",
|
||||
"tfmg:gray_rebar_concrete",
|
||||
"tfmg:gray_rebar_concrete_wall",
|
||||
"tfmg:gray_rebar_concrete_stairs",
|
||||
"tfmg:gray_rebar_concrete_slab",
|
||||
"tfmg:light_gray_rebar_concrete",
|
||||
"tfmg:light_gray_rebar_concrete_wall",
|
||||
"tfmg:light_gray_rebar_concrete_stairs",
|
||||
"tfmg:light_gray_rebar_concrete_slab",
|
||||
"tfmg:brown_rebar_concrete",
|
||||
"tfmg:brown_rebar_concrete_wall",
|
||||
"tfmg:brown_rebar_concrete_stairs",
|
||||
"tfmg:brown_rebar_concrete_slab",
|
||||
"tfmg:cyan_rebar_concrete",
|
||||
"tfmg:cyan_rebar_concrete_wall",
|
||||
"tfmg:cyan_rebar_concrete_stairs",
|
||||
"tfmg:cyan_rebar_concrete_slab",
|
||||
"tfmg:purple_rebar_concrete",
|
||||
"tfmg:purple_rebar_concrete_wall",
|
||||
"tfmg:purple_rebar_concrete_stairs",
|
||||
"tfmg:purple_rebar_concrete_slab",
|
||||
"tfmg:orange_rebar_concrete",
|
||||
"tfmg:orange_rebar_concrete_wall",
|
||||
"tfmg:orange_rebar_concrete_stairs",
|
||||
"tfmg:orange_rebar_concrete_slab",
|
||||
"tfmg:black_rebar_concrete",
|
||||
"tfmg:black_rebar_concrete_wall",
|
||||
"tfmg:black_rebar_concrete_stairs",
|
||||
"tfmg:black_rebar_concrete_slab",
|
||||
"tfmg:asphalt",
|
||||
"tfmg:asphalt_wall",
|
||||
"tfmg:asphalt_slab",
|
||||
"tfmg:asphalt_stairs",
|
||||
"tfmg:brass_pipe",
|
||||
"tfmg:encased_brass_pipe",
|
||||
"tfmg:glass_brass_pipe",
|
||||
"tfmg:brass_mechanical_pump",
|
||||
"tfmg:brass_smart_fluid_pipe",
|
||||
"tfmg:brass_fluid_valve",
|
||||
"tfmg:steel_pipe",
|
||||
"tfmg:encased_steel_pipe",
|
||||
"tfmg:glass_steel_pipe",
|
||||
"tfmg:steel_mechanical_pump",
|
||||
"tfmg:steel_smart_fluid_pipe",
|
||||
"tfmg:steel_fluid_valve",
|
||||
"tfmg:aluminum_pipe",
|
||||
"tfmg:encased_aluminum_pipe",
|
||||
"tfmg:glass_aluminum_pipe",
|
||||
"tfmg:aluminum_mechanical_pump",
|
||||
"tfmg:aluminum_smart_fluid_pipe",
|
||||
"tfmg:aluminum_fluid_valve",
|
||||
"tfmg:cast_iron_pipe",
|
||||
"tfmg:encased_cast_iron_pipe",
|
||||
"tfmg:glass_cast_iron_pipe",
|
||||
"tfmg:cast_iron_mechanical_pump",
|
||||
"tfmg:cast_iron_smart_fluid_pipe",
|
||||
"tfmg:cast_iron_fluid_valve",
|
||||
"tfmg:plastic_pipe",
|
||||
"tfmg:encased_plastic_pipe",
|
||||
"tfmg:glass_plastic_pipe",
|
||||
"tfmg:plastic_mechanical_pump",
|
||||
"tfmg:plastic_smart_fluid_pipe",
|
||||
"tfmg:plastic_fluid_valve",
|
||||
"tfmg:steel_encased_shaft",
|
||||
"tfmg:heavy_casing_encased_shaft",
|
||||
"tfmg:steel_encased_steel_cogwheel",
|
||||
"tfmg:heavy_casing_encased_steel_cogwheel",
|
||||
"tfmg:steel_encased_large_steel_cogwheel",
|
||||
"tfmg:heavy_casing_encased_large_steel_cogwheel",
|
||||
"tfmg:steel_encased_aluminum_cogwheel",
|
||||
"tfmg:heavy_casing_encased_aluminum_cogwheel",
|
||||
"tfmg:steel_encased_large_aluminum_cogwheel",
|
||||
"tfmg:heavy_casing_encased_large_aluminum_cogwheel",
|
||||
"tfmg:bauxite",
|
||||
"tfmg:cut_bauxite",
|
||||
"tfmg:cut_bauxite_stairs",
|
||||
"tfmg:cut_bauxite_slab",
|
||||
"tfmg:cut_bauxite_wall",
|
||||
"tfmg:polished_cut_bauxite",
|
||||
"tfmg:polished_cut_bauxite_stairs",
|
||||
"tfmg:polished_cut_bauxite_slab",
|
||||
"tfmg:polished_cut_bauxite_wall",
|
||||
"tfmg:cut_bauxite_bricks",
|
||||
"tfmg:cut_bauxite_brick_stairs",
|
||||
"tfmg:cut_bauxite_brick_slab",
|
||||
"tfmg:cut_bauxite_brick_wall",
|
||||
"tfmg:small_bauxite_bricks",
|
||||
"tfmg:small_bauxite_brick_stairs",
|
||||
"tfmg:small_bauxite_brick_slab",
|
||||
"tfmg:small_bauxite_brick_wall",
|
||||
"tfmg:layered_bauxite",
|
||||
"tfmg:bauxite_pillar",
|
||||
"tfmg:galena",
|
||||
"tfmg:cut_galena",
|
||||
"tfmg:cut_galena_stairs",
|
||||
"tfmg:cut_galena_slab",
|
||||
"tfmg:cut_galena_wall",
|
||||
"tfmg:polished_cut_galena",
|
||||
"tfmg:polished_cut_galena_stairs",
|
||||
"tfmg:polished_cut_galena_slab",
|
||||
"tfmg:polished_cut_galena_wall",
|
||||
"tfmg:cut_galena_bricks",
|
||||
"tfmg:cut_galena_brick_stairs",
|
||||
"tfmg:cut_galena_brick_slab",
|
||||
"tfmg:cut_galena_brick_wall",
|
||||
"tfmg:small_galena_bricks",
|
||||
"tfmg:small_galena_brick_stairs",
|
||||
"tfmg:small_galena_brick_slab",
|
||||
"tfmg:small_galena_brick_wall",
|
||||
"tfmg:layered_galena",
|
||||
"tfmg:galena_pillar"
|
||||
"tfmg:light_blue_concrete_stairs"
|
||||
]
|
||||
}
|
||||
@@ -1,6 +1,7 @@
|
||||
{
|
||||
"values": [
|
||||
"tfmg:fireclay",
|
||||
"tfmg:cement",
|
||||
"tfmg:cement"
|
||||
]
|
||||
}
|
||||
@@ -1,5 +1,7 @@
|
||||
{
|
||||
"values": [
|
||||
"tfmg:bauxite",
|
||||
"tfmg:galena",
|
||||
"tfmg:bauxite",
|
||||
"tfmg:galena"
|
||||
]
|
||||
|
||||
@@ -11,6 +11,20 @@
|
||||
"tfmg:nickel_block",
|
||||
"tfmg:lithium_block",
|
||||
"tfmg:laminated_magnetic_alloy_block",
|
||||
"tfmg:steel_block",
|
||||
"tfmg:cast_iron_block",
|
||||
"tfmg:aluminum_block",
|
||||
"tfmg:lead_block",
|
||||
"tfmg:constantan_block",
|
||||
"tfmg:nickel_block",
|
||||
"tfmg:lithium_block",
|
||||
"tfmg:laminated_magnetic_alloy_block",
|
||||
"tfmg:rebar_block",
|
||||
"tfmg:rebar_floor",
|
||||
"tfmg:rebar_wall",
|
||||
"tfmg:rebar_pile",
|
||||
"tfmg:rebar_stairs",
|
||||
"tfmg:rebar_pillar",
|
||||
"tfmg:rebar_block",
|
||||
"tfmg:rebar_floor",
|
||||
"tfmg:rebar_wall",
|
||||
|
||||
@@ -1,19 +1,99 @@
|
||||
{
|
||||
"values": [
|
||||
"tfmg:purple_concrete",
|
||||
"tfmg:purple_concrete_wall",
|
||||
"tfmg:purple_concrete_stairs",
|
||||
"tfmg:purple_concrete_slab",
|
||||
"tfmg:orange_concrete",
|
||||
"tfmg:orange_concrete_wall",
|
||||
"tfmg:orange_concrete_stairs",
|
||||
"tfmg:orange_concrete_slab",
|
||||
"tfmg:black_concrete",
|
||||
"tfmg:black_concrete_wall",
|
||||
"tfmg:black_concrete_stairs",
|
||||
"tfmg:black_concrete_slab",
|
||||
"tfmg:white_rebar_concrete",
|
||||
"tfmg:white_rebar_concrete_wall",
|
||||
"tfmg:white_rebar_concrete_stairs",
|
||||
"tfmg:white_rebar_concrete_slab",
|
||||
"tfmg:blue_rebar_concrete",
|
||||
"tfmg:blue_rebar_concrete_wall",
|
||||
"tfmg:blue_rebar_concrete_stairs",
|
||||
"tfmg:blue_rebar_concrete_slab",
|
||||
"tfmg:light_blue_rebar_concrete",
|
||||
"tfmg:light_blue_rebar_concrete_wall",
|
||||
"tfmg:light_blue_rebar_concrete_stairs",
|
||||
"tfmg:lead_ore",
|
||||
"tfmg:light_blue_rebar_concrete_slab",
|
||||
"tfmg:deepslate_lead_ore",
|
||||
"tfmg:nickel_ore",
|
||||
"tfmg:red_rebar_concrete",
|
||||
"tfmg:deepslate_nickel_ore",
|
||||
"tfmg:lithium_ore",
|
||||
"tfmg:red_rebar_concrete_wall",
|
||||
"tfmg:deepslate_lithium_ore",
|
||||
"tfmg:red_rebar_concrete_stairs",
|
||||
"tfmg:red_rebar_concrete_slab",
|
||||
"tfmg:green_rebar_concrete",
|
||||
"tfmg:green_rebar_concrete_wall",
|
||||
"tfmg:green_rebar_concrete_stairs",
|
||||
"tfmg:green_rebar_concrete_slab",
|
||||
"tfmg:lime_rebar_concrete",
|
||||
"tfmg:lime_rebar_concrete_wall",
|
||||
"tfmg:blast_furnace_output",
|
||||
"tfmg:blast_furnace_hatch",
|
||||
"tfmg:lime_rebar_concrete_stairs",
|
||||
"tfmg:fireproof_bricks",
|
||||
"tfmg:lime_rebar_concrete_slab",
|
||||
"tfmg:reinforced_fireproof_bricks",
|
||||
"tfmg:pink_rebar_concrete",
|
||||
"tfmg:blast_furnace_reinforcement",
|
||||
"tfmg:pink_rebar_concrete_wall",
|
||||
"tfmg:blast_furnace_reinforcement_wall",
|
||||
"tfmg:pink_rebar_concrete_stairs",
|
||||
"tfmg:rusted_blast_furnace_reinforcement",
|
||||
"tfmg:pink_rebar_concrete_slab",
|
||||
"tfmg:rusted_blast_furnace_reinforcement_wall",
|
||||
"tfmg:magenta_rebar_concrete",
|
||||
"tfmg:magenta_rebar_concrete_wall",
|
||||
"tfmg:magenta_rebar_concrete_stairs",
|
||||
"tfmg:magenta_rebar_concrete_slab",
|
||||
"tfmg:yellow_rebar_concrete",
|
||||
"tfmg:yellow_rebar_concrete_wall",
|
||||
"tfmg:yellow_rebar_concrete_stairs",
|
||||
"tfmg:yellow_rebar_concrete_slab",
|
||||
"tfmg:gray_rebar_concrete",
|
||||
"tfmg:gray_rebar_concrete_wall",
|
||||
"tfmg:gray_rebar_concrete_stairs",
|
||||
"tfmg:gray_rebar_concrete_slab",
|
||||
"tfmg:light_gray_rebar_concrete",
|
||||
"tfmg:light_gray_rebar_concrete_wall",
|
||||
"tfmg:light_gray_rebar_concrete_stairs",
|
||||
"tfmg:light_gray_rebar_concrete_slab",
|
||||
"tfmg:brown_rebar_concrete",
|
||||
"tfmg:brown_rebar_concrete_wall",
|
||||
"tfmg:brown_rebar_concrete_stairs",
|
||||
"tfmg:brown_rebar_concrete_slab",
|
||||
"tfmg:cyan_rebar_concrete",
|
||||
"tfmg:cyan_rebar_concrete_wall",
|
||||
"tfmg:cyan_rebar_concrete_stairs",
|
||||
"tfmg:cyan_rebar_concrete_slab",
|
||||
"tfmg:purple_rebar_concrete",
|
||||
"tfmg:purple_rebar_concrete_wall",
|
||||
"tfmg:purple_rebar_concrete_stairs",
|
||||
"tfmg:purple_rebar_concrete_slab",
|
||||
"tfmg:orange_rebar_concrete",
|
||||
"tfmg:orange_rebar_concrete_wall",
|
||||
"tfmg:orange_rebar_concrete_stairs",
|
||||
"tfmg:orange_rebar_concrete_slab",
|
||||
"tfmg:black_rebar_concrete",
|
||||
"tfmg:black_rebar_concrete_wall",
|
||||
"tfmg:black_rebar_concrete_stairs",
|
||||
"tfmg:black_rebar_concrete_slab",
|
||||
"tfmg:asphalt",
|
||||
"tfmg:asphalt_wall",
|
||||
"tfmg:asphalt_slab",
|
||||
"tfmg:asphalt_stairs",
|
||||
"tfmg:plastic_block",
|
||||
"tfmg:coal_coke_block",
|
||||
"tfmg:white_caution_block",
|
||||
@@ -66,110 +146,6 @@
|
||||
"tfmg:pink_concrete",
|
||||
"tfmg:pink_concrete_wall",
|
||||
"tfmg:pink_concrete_stairs",
|
||||
"tfmg:pink_concrete_slab",
|
||||
"tfmg:magenta_concrete",
|
||||
"tfmg:magenta_concrete_wall",
|
||||
"tfmg:magenta_concrete_stairs",
|
||||
"tfmg:magenta_concrete_slab",
|
||||
"tfmg:yellow_concrete",
|
||||
"tfmg:yellow_concrete_wall",
|
||||
"tfmg:yellow_concrete_stairs",
|
||||
"tfmg:yellow_concrete_slab",
|
||||
"tfmg:gray_concrete",
|
||||
"tfmg:gray_concrete_wall",
|
||||
"tfmg:gray_concrete_stairs",
|
||||
"tfmg:gray_concrete_slab",
|
||||
"tfmg:light_gray_concrete",
|
||||
"tfmg:light_gray_concrete_wall",
|
||||
"tfmg:light_gray_concrete_stairs",
|
||||
"tfmg:light_gray_concrete_slab",
|
||||
"tfmg:brown_concrete",
|
||||
"tfmg:brown_concrete_wall",
|
||||
"tfmg:brown_concrete_stairs",
|
||||
"tfmg:brown_concrete_slab",
|
||||
"tfmg:cyan_concrete",
|
||||
"tfmg:cyan_concrete_wall",
|
||||
"tfmg:cyan_concrete_stairs",
|
||||
"tfmg:cyan_concrete_slab",
|
||||
"tfmg:purple_concrete",
|
||||
"tfmg:purple_concrete_wall",
|
||||
"tfmg:purple_concrete_stairs",
|
||||
"tfmg:purple_concrete_slab",
|
||||
"tfmg:orange_concrete",
|
||||
"tfmg:orange_concrete_wall",
|
||||
"tfmg:orange_concrete_stairs",
|
||||
"tfmg:orange_concrete_slab",
|
||||
"tfmg:black_concrete",
|
||||
"tfmg:black_concrete_wall",
|
||||
"tfmg:black_concrete_stairs",
|
||||
"tfmg:black_concrete_slab",
|
||||
"tfmg:white_rebar_concrete",
|
||||
"tfmg:white_rebar_concrete_wall",
|
||||
"tfmg:white_rebar_concrete_stairs",
|
||||
"tfmg:white_rebar_concrete_slab",
|
||||
"tfmg:blue_rebar_concrete",
|
||||
"tfmg:blue_rebar_concrete_wall",
|
||||
"tfmg:blue_rebar_concrete_stairs",
|
||||
"tfmg:blue_rebar_concrete_slab",
|
||||
"tfmg:light_blue_rebar_concrete",
|
||||
"tfmg:light_blue_rebar_concrete_wall",
|
||||
"tfmg:light_blue_rebar_concrete_stairs",
|
||||
"tfmg:light_blue_rebar_concrete_slab",
|
||||
"tfmg:red_rebar_concrete",
|
||||
"tfmg:red_rebar_concrete_wall",
|
||||
"tfmg:red_rebar_concrete_stairs",
|
||||
"tfmg:red_rebar_concrete_slab",
|
||||
"tfmg:green_rebar_concrete",
|
||||
"tfmg:green_rebar_concrete_wall",
|
||||
"tfmg:green_rebar_concrete_stairs",
|
||||
"tfmg:green_rebar_concrete_slab",
|
||||
"tfmg:lime_rebar_concrete",
|
||||
"tfmg:lime_rebar_concrete_wall",
|
||||
"tfmg:lime_rebar_concrete_stairs",
|
||||
"tfmg:lime_rebar_concrete_slab",
|
||||
"tfmg:pink_rebar_concrete",
|
||||
"tfmg:pink_rebar_concrete_wall",
|
||||
"tfmg:pink_rebar_concrete_stairs",
|
||||
"tfmg:pink_rebar_concrete_slab",
|
||||
"tfmg:magenta_rebar_concrete",
|
||||
"tfmg:magenta_rebar_concrete_wall",
|
||||
"tfmg:magenta_rebar_concrete_stairs",
|
||||
"tfmg:magenta_rebar_concrete_slab",
|
||||
"tfmg:yellow_rebar_concrete",
|
||||
"tfmg:yellow_rebar_concrete_wall",
|
||||
"tfmg:yellow_rebar_concrete_stairs",
|
||||
"tfmg:yellow_rebar_concrete_slab",
|
||||
"tfmg:gray_rebar_concrete",
|
||||
"tfmg:gray_rebar_concrete_wall",
|
||||
"tfmg:gray_rebar_concrete_stairs",
|
||||
"tfmg:gray_rebar_concrete_slab",
|
||||
"tfmg:light_gray_rebar_concrete",
|
||||
"tfmg:light_gray_rebar_concrete_wall",
|
||||
"tfmg:light_gray_rebar_concrete_stairs",
|
||||
"tfmg:light_gray_rebar_concrete_slab",
|
||||
"tfmg:brown_rebar_concrete",
|
||||
"tfmg:brown_rebar_concrete_wall",
|
||||
"tfmg:brown_rebar_concrete_stairs",
|
||||
"tfmg:brown_rebar_concrete_slab",
|
||||
"tfmg:cyan_rebar_concrete",
|
||||
"tfmg:cyan_rebar_concrete_wall",
|
||||
"tfmg:cyan_rebar_concrete_stairs",
|
||||
"tfmg:cyan_rebar_concrete_slab",
|
||||
"tfmg:purple_rebar_concrete",
|
||||
"tfmg:purple_rebar_concrete_wall",
|
||||
"tfmg:purple_rebar_concrete_stairs",
|
||||
"tfmg:purple_rebar_concrete_slab",
|
||||
"tfmg:orange_rebar_concrete",
|
||||
"tfmg:orange_rebar_concrete_wall",
|
||||
"tfmg:orange_rebar_concrete_stairs",
|
||||
"tfmg:orange_rebar_concrete_slab",
|
||||
"tfmg:black_rebar_concrete",
|
||||
"tfmg:black_rebar_concrete_wall",
|
||||
"tfmg:black_rebar_concrete_stairs",
|
||||
"tfmg:black_rebar_concrete_slab",
|
||||
"tfmg:asphalt",
|
||||
"tfmg:asphalt_wall",
|
||||
"tfmg:asphalt_slab",
|
||||
"tfmg:asphalt_stairs"
|
||||
"tfmg:pink_concrete_slab"
|
||||
]
|
||||
}
|
||||
@@ -1,20 +1,5 @@
|
||||
{
|
||||
"values": [
|
||||
"tfmg:concrete_slab",
|
||||
"tfmg:rebar_concrete_slab",
|
||||
"tfmg:white_concrete_slab",
|
||||
"tfmg:blue_concrete_slab",
|
||||
"tfmg:light_blue_concrete_slab",
|
||||
"tfmg:red_concrete_slab",
|
||||
"tfmg:green_concrete_slab",
|
||||
"tfmg:lime_concrete_slab",
|
||||
"tfmg:pink_concrete_slab",
|
||||
"tfmg:magenta_concrete_slab",
|
||||
"tfmg:yellow_concrete_slab",
|
||||
"tfmg:gray_concrete_slab",
|
||||
"tfmg:light_gray_concrete_slab",
|
||||
"tfmg:brown_concrete_slab",
|
||||
"tfmg:cyan_concrete_slab",
|
||||
"tfmg:purple_concrete_slab",
|
||||
"tfmg:orange_concrete_slab",
|
||||
"tfmg:black_concrete_slab",
|
||||
@@ -42,6 +27,16 @@
|
||||
"tfmg:cut_galena_slab",
|
||||
"tfmg:polished_cut_galena_slab",
|
||||
"tfmg:cut_galena_brick_slab",
|
||||
"tfmg:small_galena_brick_slab"
|
||||
"tfmg:concrete_slab",
|
||||
"tfmg:small_galena_brick_slab",
|
||||
"tfmg:rebar_concrete_slab",
|
||||
"tfmg:white_concrete_slab",
|
||||
"tfmg:blue_concrete_slab",
|
||||
"tfmg:light_blue_concrete_slab",
|
||||
"tfmg:red_concrete_slab",
|
||||
"tfmg:green_concrete_slab",
|
||||
"tfmg:lime_concrete_slab",
|
||||
"tfmg:pink_concrete_slab",
|
||||
"tfmg:magenta_concrete_slab"
|
||||
]
|
||||
}
|
||||
@@ -1,20 +1,5 @@
|
||||
{
|
||||
"values": [
|
||||
"tfmg:concrete_stairs",
|
||||
"tfmg:rebar_concrete_stairs",
|
||||
"tfmg:white_concrete_stairs",
|
||||
"tfmg:blue_concrete_stairs",
|
||||
"tfmg:light_blue_concrete_stairs",
|
||||
"tfmg:red_concrete_stairs",
|
||||
"tfmg:green_concrete_stairs",
|
||||
"tfmg:lime_concrete_stairs",
|
||||
"tfmg:pink_concrete_stairs",
|
||||
"tfmg:magenta_concrete_stairs",
|
||||
"tfmg:yellow_concrete_stairs",
|
||||
"tfmg:gray_concrete_stairs",
|
||||
"tfmg:light_gray_concrete_stairs",
|
||||
"tfmg:brown_concrete_stairs",
|
||||
"tfmg:cyan_concrete_stairs",
|
||||
"tfmg:purple_concrete_stairs",
|
||||
"tfmg:orange_concrete_stairs",
|
||||
"tfmg:black_concrete_stairs",
|
||||
@@ -42,6 +27,16 @@
|
||||
"tfmg:cut_galena_stairs",
|
||||
"tfmg:polished_cut_galena_stairs",
|
||||
"tfmg:cut_galena_brick_stairs",
|
||||
"tfmg:small_galena_brick_stairs"
|
||||
"tfmg:concrete_stairs",
|
||||
"tfmg:small_galena_brick_stairs",
|
||||
"tfmg:rebar_concrete_stairs",
|
||||
"tfmg:white_concrete_stairs",
|
||||
"tfmg:blue_concrete_stairs",
|
||||
"tfmg:light_blue_concrete_stairs",
|
||||
"tfmg:red_concrete_stairs",
|
||||
"tfmg:green_concrete_stairs",
|
||||
"tfmg:lime_concrete_stairs",
|
||||
"tfmg:pink_concrete_stairs",
|
||||
"tfmg:magenta_concrete_stairs"
|
||||
]
|
||||
}
|
||||
@@ -1,5 +1,6 @@
|
||||
{
|
||||
"values": [
|
||||
"tfmg:steel_trapdoor",
|
||||
"tfmg:steel_trapdoor"
|
||||
]
|
||||
}
|
||||
@@ -1,21 +1,5 @@
|
||||
{
|
||||
"values": [
|
||||
"tfmg:fireproof_brick_reinforcement",
|
||||
"tfmg:concrete_wall",
|
||||
"tfmg:rebar_concrete_wall",
|
||||
"tfmg:white_concrete_wall",
|
||||
"tfmg:blue_concrete_wall",
|
||||
"tfmg:light_blue_concrete_wall",
|
||||
"tfmg:red_concrete_wall",
|
||||
"tfmg:green_concrete_wall",
|
||||
"tfmg:lime_concrete_wall",
|
||||
"tfmg:pink_concrete_wall",
|
||||
"tfmg:magenta_concrete_wall",
|
||||
"tfmg:yellow_concrete_wall",
|
||||
"tfmg:gray_concrete_wall",
|
||||
"tfmg:light_gray_concrete_wall",
|
||||
"tfmg:brown_concrete_wall",
|
||||
"tfmg:cyan_concrete_wall",
|
||||
"tfmg:purple_concrete_wall",
|
||||
"tfmg:orange_concrete_wall",
|
||||
"tfmg:black_concrete_wall",
|
||||
@@ -26,6 +10,7 @@
|
||||
"tfmg:green_rebar_concrete_wall",
|
||||
"tfmg:lime_rebar_concrete_wall",
|
||||
"tfmg:pink_rebar_concrete_wall",
|
||||
"tfmg:fireproof_brick_reinforcement",
|
||||
"tfmg:magenta_rebar_concrete_wall",
|
||||
"tfmg:yellow_rebar_concrete_wall",
|
||||
"tfmg:gray_rebar_concrete_wall",
|
||||
@@ -42,7 +27,17 @@
|
||||
"tfmg:small_bauxite_brick_wall",
|
||||
"tfmg:cut_galena_wall",
|
||||
"tfmg:polished_cut_galena_wall",
|
||||
"tfmg:concrete_wall",
|
||||
"tfmg:cut_galena_brick_wall",
|
||||
"tfmg:small_galena_brick_wall"
|
||||
"tfmg:rebar_concrete_wall",
|
||||
"tfmg:small_galena_brick_wall",
|
||||
"tfmg:white_concrete_wall",
|
||||
"tfmg:blue_concrete_wall",
|
||||
"tfmg:light_blue_concrete_wall",
|
||||
"tfmg:red_concrete_wall",
|
||||
"tfmg:green_concrete_wall",
|
||||
"tfmg:lime_concrete_wall",
|
||||
"tfmg:pink_concrete_wall",
|
||||
"tfmg:magenta_concrete_wall"
|
||||
]
|
||||
}
|
||||
@@ -1,5 +1,9 @@
|
||||
{
|
||||
"values": [
|
||||
"tfmg:heavy_casing_door",
|
||||
"tfmg:steel_door",
|
||||
"tfmg:aluminum_door",
|
||||
"tfmg:heavy_plated_door",
|
||||
"tfmg:heavy_casing_door",
|
||||
"tfmg:steel_door",
|
||||
"tfmg:aluminum_door",
|
||||
|
||||
@@ -1,5 +1,9 @@
|
||||
{
|
||||
"values": [
|
||||
"tfmg:heavy_casing_door",
|
||||
"tfmg:steel_door",
|
||||
"tfmg:aluminum_door",
|
||||
"tfmg:heavy_plated_door",
|
||||
"tfmg:heavy_casing_door",
|
||||
"tfmg:steel_door",
|
||||
"tfmg:aluminum_door",
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
{
|
||||
"parent": "minecraft:recipes/root",
|
||||
"criteria": {
|
||||
"has_item": {
|
||||
"conditions": {
|
||||
"items": [
|
||||
{
|
||||
"items": "tfmg:aluminum_ingot"
|
||||
}
|
||||
]
|
||||
},
|
||||
"trigger": "minecraft:inventory_changed"
|
||||
},
|
||||
"has_the_recipe": {
|
||||
"conditions": {
|
||||
"recipe": "tfmg:crafting/materials/compressor"
|
||||
},
|
||||
"trigger": "minecraft:recipe_unlocked"
|
||||
}
|
||||
},
|
||||
"requirements": [
|
||||
[
|
||||
"has_the_recipe",
|
||||
"has_item"
|
||||
]
|
||||
],
|
||||
"rewards": {
|
||||
"recipes": [
|
||||
"tfmg:crafting/materials/compressor"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
{
|
||||
"parent": "minecraft:recipes/root",
|
||||
"criteria": {
|
||||
"has_item": {
|
||||
"conditions": {
|
||||
"items": [
|
||||
{
|
||||
"items": "tfmg:aluminum_ingot"
|
||||
}
|
||||
]
|
||||
},
|
||||
"trigger": "minecraft:inventory_changed"
|
||||
},
|
||||
"has_the_recipe": {
|
||||
"conditions": {
|
||||
"recipe": "tfmg:crafting/materials/freezer"
|
||||
},
|
||||
"trigger": "minecraft:recipe_unlocked"
|
||||
}
|
||||
},
|
||||
"requirements": [
|
||||
[
|
||||
"has_the_recipe",
|
||||
"has_item"
|
||||
]
|
||||
],
|
||||
"rewards": {
|
||||
"recipes": [
|
||||
"tfmg:crafting/materials/freezer"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"type": "minecraft:block",
|
||||
"pools": [
|
||||
{
|
||||
"bonus_rolls": 0.0,
|
||||
"conditions": [
|
||||
{
|
||||
"condition": "minecraft:survives_explosion"
|
||||
}
|
||||
],
|
||||
"entries": [
|
||||
{
|
||||
"type": "minecraft:item",
|
||||
"name": "tfmg:compressor"
|
||||
}
|
||||
],
|
||||
"rolls": 1.0
|
||||
}
|
||||
],
|
||||
"random_sequence": "tfmg:blocks/compressor"
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"type": "minecraft:block",
|
||||
"pools": [
|
||||
{
|
||||
"bonus_rolls": 0.0,
|
||||
"conditions": [
|
||||
{
|
||||
"condition": "minecraft:survives_explosion"
|
||||
}
|
||||
],
|
||||
"entries": [
|
||||
{
|
||||
"type": "minecraft:item",
|
||||
"name": "tfmg:freezer"
|
||||
}
|
||||
],
|
||||
"rolls": 1.0
|
||||
}
|
||||
],
|
||||
"random_sequence": "tfmg:blocks/freezer"
|
||||
}
|
||||
@@ -3,7 +3,7 @@
|
||||
"ingredients": [
|
||||
{
|
||||
"type": "neoforge:single",
|
||||
"amount": 200,
|
||||
"amount": 144,
|
||||
"fluid": "tfmg:molten_plastic"
|
||||
}
|
||||
],
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"category": "misc",
|
||||
"key": {
|
||||
"B": {
|
||||
"item": "create:copper_backtank"
|
||||
},
|
||||
"C": {
|
||||
"item": "tfmg:heavy_machinery_casing"
|
||||
},
|
||||
"P": {
|
||||
"item": "tfmg:aluminum_pipe"
|
||||
},
|
||||
"S": {
|
||||
"item": "tfmg:steel_fluid_tank"
|
||||
},
|
||||
"T": {
|
||||
"item": "create:shaft"
|
||||
}
|
||||
},
|
||||
"pattern": [
|
||||
"PTP",
|
||||
"SCS",
|
||||
"PBP"
|
||||
],
|
||||
"result": {
|
||||
"count": 1,
|
||||
"id": "tfmg:compressor"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"category": "misc",
|
||||
"key": {
|
||||
"C": {
|
||||
"item": "tfmg:compressor"
|
||||
},
|
||||
"P": {
|
||||
"item": "create:fluid_pipe"
|
||||
},
|
||||
"R": {
|
||||
"item": "tfmg:lpg_bucket"
|
||||
},
|
||||
"W": {
|
||||
"item": "tfmg:electromagnetic_coil"
|
||||
}
|
||||
},
|
||||
"pattern": [
|
||||
"PWP",
|
||||
"WCW",
|
||||
"RWR"
|
||||
],
|
||||
"result": {
|
||||
"count": 1,
|
||||
"id": "tfmg:freezer"
|
||||
}
|
||||
}
|
||||
@@ -4,7 +4,7 @@
|
||||
"tfmg:steel_vat",
|
||||
"tfmg:firebrick_lined_vat"
|
||||
],
|
||||
"heat_requirement": "heated",
|
||||
"heat_level": 2,
|
||||
"ingredients": [
|
||||
{
|
||||
"item": "tfmg:bauxite_powder"
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
{
|
||||
"type": "tfmg:vat_machine_recipe",
|
||||
"allowed_vat_types": [
|
||||
"tfmg:cast_iron_vat",
|
||||
"tfmg:steel_vat",
|
||||
"tfmg:firebrick_lined_vat"
|
||||
],
|
||||
@@ -26,7 +27,7 @@
|
||||
"min_size": 1,
|
||||
"results": [
|
||||
{
|
||||
"amount": 1000,
|
||||
"amount": 32000,
|
||||
"id": "tfmg:liquid_concrete"
|
||||
}
|
||||
]
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
"fluid": "tfmg:sulfuric_acid"
|
||||
}
|
||||
],
|
||||
"min_size": 1,
|
||||
"processing_time": 100,
|
||||
"results": [
|
||||
{
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
{
|
||||
"type": "tfmg:vat_machine_recipe",
|
||||
"allowed_vat_types": [
|
||||
"tfmg:cast_iron_vat",
|
||||
"tfmg:steel_vat",
|
||||
"tfmg:firebrick_lined_vat"
|
||||
],
|
||||
"heat_requirement": "heated",
|
||||
"heat_level": 2,
|
||||
"ingredients": [
|
||||
{
|
||||
"type": "neoforge:single",
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
{
|
||||
"type": "tfmg:vat_machine_recipe",
|
||||
"allowed_vat_types": [
|
||||
"tfmg:cast_iron_vat",
|
||||
"tfmg:steel_vat",
|
||||
"tfmg:firebrick_lined_vat"
|
||||
],
|
||||
"heat_requirement": "heated",
|
||||
"heat_level": 2,
|
||||
"ingredients": [
|
||||
{
|
||||
"type": "neoforge:single",
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
{
|
||||
"type": "tfmg:vat_machine_recipe",
|
||||
"allowed_vat_types": [
|
||||
"tfmg:cast_iron_vat",
|
||||
"tfmg:steel_vat",
|
||||
"tfmg:firebrick_lined_vat"
|
||||
],
|
||||
"heat_requirement": "heated",
|
||||
"heat_level": 2,
|
||||
"ingredients": [
|
||||
{
|
||||
"type": "neoforge:single",
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
{
|
||||
"type": "tfmg:vat_machine_recipe",
|
||||
"allowed_vat_types": [
|
||||
"tfmg:cast_iron_vat",
|
||||
"tfmg:steel_vat",
|
||||
"tfmg:firebrick_lined_vat"
|
||||
],
|
||||
"heat_requirement": "heated",
|
||||
"heat_level": 2,
|
||||
"ingredients": [
|
||||
{
|
||||
"item": "tfmg:sulfur_dust"
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
{
|
||||
"type": "tfmg:vat_machine_recipe",
|
||||
"allowed_vat_types": [
|
||||
"tfmg:cast_iron_vat",
|
||||
"tfmg:steel_vat",
|
||||
"tfmg:firebrick_lined_vat"
|
||||
],
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
{
|
||||
"values": [
|
||||
"tfmg:fireproof_brick_reinforcement",
|
||||
"tfmg:fireproof_brick_reinforcement"
|
||||
]
|
||||
}
|
||||
@@ -1,5 +1,7 @@
|
||||
{
|
||||
"values": [
|
||||
"tfmg:blast_furnace_hatch",
|
||||
"tfmg:fireproof_bricks",
|
||||
"tfmg:blast_furnace_hatch",
|
||||
"tfmg:fireproof_bricks"
|
||||
]
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
"values": [
|
||||
"tfmg:pumpjack_hammer_head",
|
||||
"tfmg:large_pumpjack_hammer_head",
|
||||
"minecraft:iron_block",
|
||||
"minecraft:iron_block"
|
||||
]
|
||||
}
|
||||
@@ -1,6 +1,7 @@
|
||||
{
|
||||
"values": [
|
||||
"tfmg:large_pumpjack_hammer_part",
|
||||
"#tfmg:pumpjack_small_part",
|
||||
"#tfmg:pumpjack_small_part"
|
||||
]
|
||||
}
|
||||
@@ -2,6 +2,9 @@
|
||||
"values": [
|
||||
"tfmg:blast_furnace_reinforcement",
|
||||
"tfmg:rusted_blast_furnace_reinforcement",
|
||||
"tfmg:blast_furnace_reinforcement",
|
||||
"tfmg:rusted_blast_furnace_reinforcement",
|
||||
"tfmg:steel_block",
|
||||
"tfmg:steel_block"
|
||||
]
|
||||
}
|
||||
@@ -2,6 +2,7 @@
|
||||
"values": [
|
||||
"tfmg:blast_furnace_hatch",
|
||||
"tfmg:reinforced_fireproof_bricks",
|
||||
"tfmg:steel_block",
|
||||
"tfmg:steel_block"
|
||||
]
|
||||
}
|
||||
@@ -1,6 +1,7 @@
|
||||
{
|
||||
"values": [
|
||||
"tfmg:oil_deposit",
|
||||
"tfmg:heavy_machinery_casing",
|
||||
"tfmg:heavy_machinery_casing"
|
||||
]
|
||||
}
|
||||
@@ -1,8 +1,9 @@
|
||||
package com.drmangotea.tfmg.content.machinery.vat.base;
|
||||
|
||||
import com.drmangotea.tfmg.TFMG;
|
||||
import com.drmangotea.tfmg.base.lang.TFMGLang;
|
||||
import com.drmangotea.tfmg.base.lang.TFMGTexts;
|
||||
import com.drmangotea.tfmg.content.machinery.vat.compressor.CompressorBlockEntity;
|
||||
import com.drmangotea.tfmg.content.machinery.vat.freezer.FreezerBlockEntity;
|
||||
import com.drmangotea.tfmg.mixin.accessor.TankSegmentAccessor;
|
||||
import com.drmangotea.tfmg.recipes.VatMachineRecipe;
|
||||
import com.drmangotea.tfmg.registry.TFMGBlockEntities;
|
||||
@@ -23,6 +24,7 @@ import com.simibubi.create.foundation.recipe.RecipeConditions;
|
||||
import com.simibubi.create.foundation.recipe.RecipeFinder;
|
||||
import com.simibubi.create.foundation.utility.CreateLang;
|
||||
import com.simibubi.create.infrastructure.config.AllConfigs;
|
||||
import joptsimple.internal.Strings;
|
||||
import net.createmod.catnip.animation.LerpedFloat;
|
||||
import net.createmod.catnip.data.Couple;
|
||||
import net.createmod.catnip.lang.LangBuilder;
|
||||
@@ -34,6 +36,7 @@ import net.minecraft.core.HolderLookup;
|
||||
import net.minecraft.nbt.CompoundTag;
|
||||
import net.minecraft.nbt.NbtUtils;
|
||||
import net.minecraft.network.chat.Component;
|
||||
import net.minecraft.network.chat.MutableComponent;
|
||||
import net.minecraft.world.item.Item;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.item.crafting.Ingredient;
|
||||
@@ -43,7 +46,6 @@ 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.neoforged.neoforge.capabilities.Capabilities;
|
||||
import net.neoforged.neoforge.capabilities.RegisterCapabilitiesEvent;
|
||||
import net.neoforged.neoforge.fluids.FluidStack;
|
||||
@@ -56,7 +58,6 @@ import net.neoforged.neoforge.items.IItemHandler;
|
||||
import net.neoforged.neoforge.items.IItemHandlerModifiable;
|
||||
import net.neoforged.neoforge.items.wrapper.CombinedInvWrapper;
|
||||
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.atomic.AtomicBoolean;
|
||||
@@ -66,38 +67,49 @@ import static java.lang.Math.abs;
|
||||
public class VatBlockEntity extends SmartBlockEntity implements IHaveGoggleInformation, IMultiBlockEntityContainer.Fluid {
|
||||
|
||||
private static final int MAX_SIZE = 3;
|
||||
|
||||
//item inventory
|
||||
public VatInventory inputInventory;
|
||||
public VatInventory outputInventory;
|
||||
//fluid inventory
|
||||
public SmartFluidTankBehaviour inputTank;
|
||||
public SmartFluidTankBehaviour outputTank;
|
||||
private Couple<SmartFluidTankBehaviour> tanks;
|
||||
//capabilities
|
||||
protected IFluidHandler fluidCapability;
|
||||
protected IItemHandlerModifiable itemCapability;
|
||||
//rendering
|
||||
protected boolean forceFluidLevelUpdate;
|
||||
public LerpedFloat[] fluidLevel = new LerpedFloat[8];
|
||||
protected int luminosity;
|
||||
//visual state data
|
||||
protected boolean window;
|
||||
protected int width;
|
||||
protected int height;
|
||||
//updating and technical stuff
|
||||
protected BlockPos controller;
|
||||
protected BlockPos lastKnownPos;
|
||||
protected boolean updateConnectivity;
|
||||
protected boolean updateCapability;
|
||||
protected boolean window;
|
||||
protected int luminosity;
|
||||
protected int width;
|
||||
protected int height;
|
||||
private static final int SYNC_RATE = 8;
|
||||
protected int syncCooldown;
|
||||
protected boolean queuedSync;
|
||||
//
|
||||
public LerpedFloat[] fluidLevel = new LerpedFloat[8];
|
||||
/// /
|
||||
boolean evaluateNextTick = true;
|
||||
int timer = 0;
|
||||
public VatMachineRecipe recipe;
|
||||
//machines
|
||||
public Map<BlockPos, String> machineMap = new HashMap<>();
|
||||
public Map<BlockPos, Boolean> operationalMachinesMap = new HashMap<>();
|
||||
public boolean areMachinesValid = true;
|
||||
boolean evaluateNextTick = true;
|
||||
//processing data
|
||||
float efficiency = 1;
|
||||
int timer = 0;
|
||||
public VatMachineRecipe recipe;
|
||||
int heatLevel = 0;
|
||||
int pressure = 0;
|
||||
HeatCondition heatCondition = HeatCondition.NONE;
|
||||
private static final Object vatRecipeKey = new Object();
|
||||
// display
|
||||
private int minValue = 0;
|
||||
private int maxValue = 0;
|
||||
|
||||
public VatBlockEntity(BlockEntityType<?> type, BlockPos pos, BlockState state) {
|
||||
super(type, pos, state);
|
||||
@@ -106,8 +118,6 @@ public class VatBlockEntity extends SmartBlockEntity implements IHaveGoggleInfor
|
||||
fluidLevel[i] = LerpedFloat.linear();
|
||||
}
|
||||
window = false;
|
||||
// if(Objects.equals(((VatBlock) getBlockState().getBlock()).vatType, "tfmg:firebrick_lined_vat"))
|
||||
// window = false;
|
||||
inputInventory = new VatInventory(4, this);
|
||||
outputInventory = new VatInventory(4, this);
|
||||
tanks = Couple.create(inputTank, outputTank);
|
||||
@@ -115,7 +125,6 @@ public class VatBlockEntity extends SmartBlockEntity implements IHaveGoggleInfor
|
||||
forceFluidLevelUpdate = true;
|
||||
updateConnectivity = false;
|
||||
updateCapability = false;
|
||||
//window = ((VatBlock)getBlockState().getBlock()).vatType != "tfmg:firebrick_lined_vat";
|
||||
height = 1;
|
||||
width = 1;
|
||||
refreshCapability();
|
||||
@@ -176,6 +185,79 @@ public class VatBlockEntity extends SmartBlockEntity implements IHaveGoggleInfor
|
||||
|
||||
}
|
||||
|
||||
//goggle stuff
|
||||
public MutableComponent getHeatComponent(boolean forGoggles, boolean useBlocksAsBars, ChatFormatting... styles) {
|
||||
return componentHelper("heat", 10 + heatLevel, forGoggles, useBlocksAsBars, styles);
|
||||
}
|
||||
|
||||
public MutableComponent getPressureComponent(boolean forGoggles, boolean useBlocksAsBars, ChatFormatting... styles) {
|
||||
return componentHelper("pressure", 10 + pressure, forGoggles, useBlocksAsBars, styles);
|
||||
}
|
||||
|
||||
private MutableComponent componentHelper(String label, int level, boolean forGoggles, boolean useBlocksAsBars,
|
||||
ChatFormatting... styles) {
|
||||
MutableComponent base = useBlocksAsBars ? blockComponent(level) : barComponent(level);
|
||||
|
||||
if (!forGoggles)
|
||||
return base;
|
||||
|
||||
ChatFormatting style1 = styles.length >= 1 ? styles[0] : ChatFormatting.GRAY;
|
||||
ChatFormatting style2 = styles.length >= 2 ? styles[1] : ChatFormatting.DARK_GRAY;
|
||||
|
||||
return CreateLang.translateDirect("vat." + label)
|
||||
.withStyle(style1)
|
||||
.append(CreateLang.translateDirect("vat." + label + "_dots")
|
||||
.withStyle(style2))
|
||||
.append(base)
|
||||
.append("("+level/10f+")");
|
||||
}
|
||||
|
||||
private MutableComponent blockComponent(int level) {
|
||||
return Component.literal("" + "\u2588".repeat(minValue) + "\u2592".repeat(level - minValue) + "\u2591".repeat(maxValue - level));
|
||||
}
|
||||
|
||||
private MutableComponent barComponent(int level) {
|
||||
ChatFormatting color = level - minValue >19 ? ChatFormatting.DARK_RED : ChatFormatting.DARK_GREEN;
|
||||
switch (level - minValue) {
|
||||
case 1: color = ChatFormatting.BLUE; break;
|
||||
case 2: color = ChatFormatting.DARK_AQUA; break;
|
||||
case 3: color = ChatFormatting.DARK_AQUA; break;
|
||||
case 4: color = ChatFormatting.AQUA; break;
|
||||
case 5: color = ChatFormatting.AQUA; break;
|
||||
case 6: color = ChatFormatting.AQUA; break;
|
||||
case 7: color = ChatFormatting.AQUA; break;
|
||||
case 8: color = ChatFormatting.AQUA; break;
|
||||
case 11: color = ChatFormatting.YELLOW; break;
|
||||
case 12: color = ChatFormatting.YELLOW; break;
|
||||
case 13: color = ChatFormatting.YELLOW; break;
|
||||
case 14: color = ChatFormatting.YELLOW; break;
|
||||
case 15: color = ChatFormatting.YELLOW; break;
|
||||
case 16: color = ChatFormatting.GOLD; break;
|
||||
case 17: color = ChatFormatting.RED; break;
|
||||
case 18: color = ChatFormatting.RED; break;
|
||||
case 19: color = ChatFormatting.DARK_RED; break;
|
||||
|
||||
}
|
||||
|
||||
|
||||
return Component.empty()
|
||||
.append(bars(Math.max(0, minValue - 1), ChatFormatting.RED))
|
||||
.append(bars(minValue > 0 ? 1 : 0, ChatFormatting.GOLD))
|
||||
.append(bars(Math.max(0, level - minValue), color))
|
||||
.append(bars(Math.max(0, maxValue - level), ChatFormatting.BLUE))
|
||||
.append(bars(Math.max(0, Math.min(18 - maxValue, ((maxValue / 5 + 1) * 5) - maxValue)),
|
||||
ChatFormatting.DARK_GRAY));
|
||||
|
||||
|
||||
}
|
||||
|
||||
private MutableComponent bars(int level, ChatFormatting format) {
|
||||
return Component.literal(Strings.repeat('|', level))
|
||||
.withStyle(format);
|
||||
}
|
||||
|
||||
/// //////
|
||||
|
||||
@Override
|
||||
public void lazyTick() {
|
||||
super.lazyTick();
|
||||
@@ -189,7 +271,7 @@ public class VatBlockEntity extends SmartBlockEntity implements IHaveGoggleInfor
|
||||
int tankNumber = 0;
|
||||
for (int i = 0; i < 8; i++) {
|
||||
IFluidHandler fluidHandler = fluidCapability;
|
||||
if(fluidHandler != null) {
|
||||
if (fluidHandler != null) {
|
||||
fluidLevel[i].chase((double) (fluidHandler.getFluidInTank(tankNumber).getAmount()) / inputTank.getPrimaryHandler().getCapacity(), .5f, LerpedFloat.Chaser.EXP);
|
||||
getFillState();
|
||||
tankNumber++;
|
||||
@@ -205,6 +287,7 @@ public class VatBlockEntity extends SmartBlockEntity implements IHaveGoggleInfor
|
||||
|
||||
int prevHeat = heatLevel;
|
||||
heatLevel = 0;
|
||||
pressure = 0;
|
||||
heatCondition = HeatCondition.NONE;
|
||||
BlockPos pos1 = controller == null ? getBlockPos() : controller;
|
||||
VatBlockEntity be = getControllerBE() == null ? this : getControllerBE();
|
||||
@@ -214,9 +297,19 @@ public class VatBlockEntity extends SmartBlockEntity implements IHaveGoggleInfor
|
||||
BlockPos pos = pos1.offset(xOffset, -1, zOffset);
|
||||
BlockState blockState = level.getBlockState(pos);
|
||||
float heat = BoilerHeater.findHeat(level, pos, blockState);
|
||||
|
||||
if (heat > 0) {
|
||||
heatLevel += (int) heat;
|
||||
}
|
||||
if (level.getBlockEntity(pos) instanceof FreezerBlockEntity freezer && freezer.isOperational()) {
|
||||
heatLevel--;
|
||||
}
|
||||
if (level.getBlockEntity(pos) instanceof CompressorBlockEntity compressor && compressor.getState() != CompressorBlockEntity.CompressorState.NON_OPERATIONAL) {
|
||||
if (compressor.getState() == CompressorBlockEntity.CompressorState.PRESSURIZING)
|
||||
pressure++;
|
||||
if (compressor.getState() == CompressorBlockEntity.CompressorState.DEPRESSURIZING)
|
||||
pressure--;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (heatLevel >= 2) {
|
||||
@@ -306,7 +399,6 @@ public class VatBlockEntity extends SmartBlockEntity implements IHaveGoggleInfor
|
||||
}
|
||||
|
||||
|
||||
|
||||
//////////////////////////////////////////
|
||||
if (doesntMatch)
|
||||
continue;
|
||||
@@ -401,8 +493,8 @@ public class VatBlockEntity extends SmartBlockEntity implements IHaveGoggleInfor
|
||||
sendData();
|
||||
}
|
||||
if (evaluateNextTick) {
|
||||
// if (level instanceof ServerLevel serverLevel)
|
||||
// CatnipServices.NETWORK.sendToClientsTrackingChunk(serverLevel, new ChunkPos(worldPosition),new VatEvaluationPacket(this.getBlockPos()));
|
||||
// if (level instanceof ServerLevel serverLevel)
|
||||
// CatnipServices.NETWORK.sendToClientsTrackingChunk(serverLevel, new ChunkPos(worldPosition),new VatEvaluationPacket(this.getBlockPos()));
|
||||
evaluate();
|
||||
sendData();
|
||||
evaluateNextTick = false;
|
||||
@@ -506,7 +598,6 @@ public class VatBlockEntity extends SmartBlockEntity implements IHaveGoggleInfor
|
||||
//fluid output
|
||||
|
||||
|
||||
|
||||
List<FluidStack> handledFluidStacks = new ArrayList<>();
|
||||
List<SmartFluidTankBehaviour.TankSegment> tankSegments = List.of(outputTank.getTanks());
|
||||
if (recipe != null)
|
||||
@@ -526,7 +617,7 @@ public class VatBlockEntity extends SmartBlockEntity implements IHaveGoggleInfor
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
recipe = null;
|
||||
timer = 0;
|
||||
} else {
|
||||
@@ -535,9 +626,6 @@ public class VatBlockEntity extends SmartBlockEntity implements IHaveGoggleInfor
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public BlockPos getLastKnownPos() {
|
||||
return lastKnownPos;
|
||||
@@ -636,7 +724,6 @@ public class VatBlockEntity extends SmartBlockEntity implements IHaveGoggleInfor
|
||||
heatLevel = 0;
|
||||
heatCondition = HeatCondition.NONE;
|
||||
|
||||
int superheatedCount = 0;
|
||||
|
||||
float speed = 1;
|
||||
|
||||
@@ -680,7 +767,7 @@ public class VatBlockEntity extends SmartBlockEntity implements IHaveGoggleInfor
|
||||
if (behaviour == null)
|
||||
continue;
|
||||
for (SmartFluidTankBehaviour.TankSegment tankSegment : behaviour.getTanks()) {
|
||||
totalCapacity += ((TankSegmentAccessor)tankSegment).tfmg$tank().getCapacity();
|
||||
totalCapacity += ((TankSegmentAccessor) tankSegment).tfmg$tank().getCapacity();
|
||||
}
|
||||
}
|
||||
return totalCapacity;
|
||||
@@ -860,20 +947,26 @@ public class VatBlockEntity extends SmartBlockEntity implements IHaveGoggleInfor
|
||||
sendData();
|
||||
}
|
||||
|
||||
/**
|
||||
* Used when the vat changes size
|
||||
* sets capabilities of all vat blocks to controller's inventory
|
||||
*/
|
||||
private void refreshCapability() {
|
||||
//LazyOptional<IFluidHandler> oldFluidCap = fluidCapability;
|
||||
//LazyOptional<IItemHandlerModifiable> oldItemCap = itemCapability;
|
||||
fluidCapability = getNewFluidCapability();
|
||||
itemCapability = getNewItemCapability();
|
||||
invalidateCapabilities();
|
||||
}
|
||||
|
||||
/**
|
||||
* finds the new fitting fluid capability
|
||||
*
|
||||
* @return fluid capability of the vat's controller
|
||||
*/
|
||||
private IFluidHandler getNewFluidCapability() {
|
||||
IFluidHandler outputHandler = outputTank.getCapability();
|
||||
IFluidHandler inputHandler = inputTank.getCapability();
|
||||
|
||||
|
||||
|
||||
if (inputHandler == null || outputHandler == null)
|
||||
return fluidCapability;
|
||||
|
||||
@@ -881,11 +974,19 @@ public class VatBlockEntity extends SmartBlockEntity implements IHaveGoggleInfor
|
||||
: getControllerBE() != null ? getControllerBE().getNewFluidCapability() : fluidCapability;
|
||||
}
|
||||
|
||||
/**
|
||||
* finds the new fitting item capability
|
||||
*
|
||||
* @return item capability of the vat's controller
|
||||
*/
|
||||
private IItemHandlerModifiable getNewItemCapability() {
|
||||
return isController() ? new CombinedInvWrapper(inputInventory, outputInventory)
|
||||
return isController() ? new CombinedInvWrapper(inputInventory, outputInventory)
|
||||
: getControllerBE() != null ? getControllerBE().getNewItemCapability() : itemCapability;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return vat's controller
|
||||
*/
|
||||
@Override
|
||||
public BlockPos getController() {
|
||||
return isController() ? worldPosition : controller;
|
||||
@@ -899,13 +1000,6 @@ public class VatBlockEntity extends SmartBlockEntity implements IHaveGoggleInfor
|
||||
return super.createRenderBoundingBox();
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public VatBlockEntity getOtherVatBE(Direction direction) {
|
||||
BlockEntity otherBE = level.getBlockEntity(worldPosition.relative(direction));
|
||||
if (otherBE instanceof VatBlockEntity)
|
||||
return (VatBlockEntity) otherBE;
|
||||
return null;
|
||||
}
|
||||
|
||||
public void addMachineTooltip(String operationId, boolean isOperational, List<Component> tooltip) {
|
||||
LangBuilder operation = TFMGTexts.Vat.operation(operationId);
|
||||
@@ -918,14 +1012,19 @@ public class VatBlockEntity extends SmartBlockEntity implements IHaveGoggleInfor
|
||||
@Override
|
||||
public boolean addToGoggleTooltip(List<Component> tooltip, boolean isPlayerSneaking) {
|
||||
|
||||
if(getControllerBE() == null)
|
||||
if (getControllerBE() == null)
|
||||
return false;
|
||||
|
||||
if(!isController())
|
||||
return getControllerBE().addToGoggleTooltip(tooltip,isPlayerSneaking);
|
||||
if (!isController())
|
||||
return getControllerBE().addToGoggleTooltip(tooltip, isPlayerSneaking);
|
||||
TFMGTexts.header("vat").style(ChatFormatting.GRAY)
|
||||
.forGoggles(tooltip);
|
||||
|
||||
|
||||
;
|
||||
CreateLang.builder().add(getPressureComponent(true, false)).forGoggles(tooltip, 1);
|
||||
CreateLang.builder().add(getHeatComponent(true, false)).forGoggles(tooltip, 1);
|
||||
|
||||
TFMGTexts.Vat.contents().forGoggles(tooltip);
|
||||
|
||||
TFMGTexts.Vat.attachments()
|
||||
@@ -937,7 +1036,7 @@ public class VatBlockEntity extends SmartBlockEntity implements IHaveGoggleInfor
|
||||
}
|
||||
|
||||
|
||||
TFMGTexts.heatStatus(heatCondition).forGoggles(tooltip);
|
||||
|
||||
|
||||
TFMGTexts.Vat.contents().forGoggles(tooltip);
|
||||
|
||||
@@ -984,7 +1083,7 @@ public class VatBlockEntity extends SmartBlockEntity implements IHaveGoggleInfor
|
||||
|
||||
@Override
|
||||
protected void read(CompoundTag compound, HolderLookup.Provider registries, boolean clientPacket) {
|
||||
super.read(compound,registries , clientPacket);
|
||||
super.read(compound, registries, clientPacket);
|
||||
|
||||
BlockPos controllerBefore = controller;
|
||||
int prevSize = width;
|
||||
@@ -996,10 +1095,10 @@ public class VatBlockEntity extends SmartBlockEntity implements IHaveGoggleInfor
|
||||
controller = null;
|
||||
lastKnownPos = null;
|
||||
|
||||
if (NbtUtils.readBlockPos(compound,"LastKnownPos").isPresent())
|
||||
lastKnownPos = NbtUtils.readBlockPos(compound,"LastKnownPos").get();
|
||||
if (NbtUtils.readBlockPos(compound,"Controller").isPresent())
|
||||
controller = NbtUtils.readBlockPos(compound,"Controller").get();
|
||||
if (NbtUtils.readBlockPos(compound, "LastKnownPos").isPresent())
|
||||
lastKnownPos = NbtUtils.readBlockPos(compound, "LastKnownPos").get();
|
||||
if (NbtUtils.readBlockPos(compound, "Controller").isPresent())
|
||||
controller = NbtUtils.readBlockPos(compound, "Controller").get();
|
||||
|
||||
if (isController()) {
|
||||
window = compound.getBoolean("Window");
|
||||
@@ -1017,18 +1116,10 @@ public class VatBlockEntity extends SmartBlockEntity implements IHaveGoggleInfor
|
||||
if (tank.getSpace() < 0)
|
||||
tank.drain(-tank.getSpace(), IFluidHandler.FluidAction.EXECUTE);
|
||||
});
|
||||
inputInventory.deserializeNBT(registries,compound.getCompound("InputItems"));
|
||||
outputInventory.deserializeNBT(registries,compound.getCompound("OutputItems"));
|
||||
//
|
||||
//machines = new ArrayList<>();
|
||||
//for(int i = 0; i<compound.getInt("MachineCount");i++){
|
||||
// machines.add(compound.getString("Machine"+i));
|
||||
//}
|
||||
inputInventory.deserializeNBT(registries, compound.getCompound("InputItems"));
|
||||
outputInventory.deserializeNBT(registries, compound.getCompound("OutputItems"));
|
||||
}
|
||||
|
||||
// if (compound.contains("ForceFluidLevel") || fluidLevel == null)
|
||||
// fluidLevel = LerpedFloat.linear()
|
||||
// .startWithValue(getFillState());
|
||||
|
||||
updateCapability = true;
|
||||
|
||||
@@ -1045,20 +1136,10 @@ public class VatBlockEntity extends SmartBlockEntity implements IHaveGoggleInfor
|
||||
}
|
||||
invalidateRenderBoundingBox();
|
||||
}
|
||||
if (isController()) {
|
||||
float fillState = getFillState();
|
||||
//if (compound.contains("ForceFluidLevel") || fluidLevel == null)
|
||||
// fluidLevel = LerpedFloat.linear()
|
||||
// .startWithValue(fillState);
|
||||
//fluidLevel.chase(fillState, 0.5f, LerpedFloat.Chaser.EXP);
|
||||
}
|
||||
if (luminosity != prevLum && hasLevel())
|
||||
level.getChunkSource()
|
||||
.getLightEngine()
|
||||
.checkBlock(worldPosition);
|
||||
|
||||
//if (compound.contains("LazySync"))
|
||||
// fluidLevel.chase(fluidLevel.getChaseTarget(), 0.125f, LerpedFloat.Chaser.EXP);
|
||||
}
|
||||
|
||||
public float getFillState() {
|
||||
@@ -1087,15 +1168,9 @@ public class VatBlockEntity extends SmartBlockEntity implements IHaveGoggleInfor
|
||||
compound.put("InputItems", inputInventory.serializeNBT(registries));
|
||||
compound.put("OutputItems", outputInventory.serializeNBT(registries));
|
||||
|
||||
|
||||
//for(int i = 0; i<machines.size();i++){
|
||||
// compound.putString("Machine"+i, machines.get(i));
|
||||
//}
|
||||
//compound.putInt("MachineCount",machines.size());
|
||||
|
||||
}
|
||||
compound.putInt("Luminosity", luminosity);
|
||||
super.write(compound,registries , clientPacket);
|
||||
super.write(compound, registries, clientPacket);
|
||||
|
||||
if (!clientPacket)
|
||||
return;
|
||||
@@ -1110,20 +1185,6 @@ public class VatBlockEntity extends SmartBlockEntity implements IHaveGoggleInfor
|
||||
return width * width * height;
|
||||
}
|
||||
|
||||
//@Nonnull
|
||||
//@Override
|
||||
//public <T> LazyOptional<T> getCapability(@Nonnull Capability<T> cap, @Nullable Direction side) {
|
||||
// if (!fluidCapability.isPresent() || !itemCapability.isPresent())
|
||||
// refreshCapability();
|
||||
// if (cap == ForgeCapabilities.FLUID_HANDLER)
|
||||
// return fluidCapability.cast();
|
||||
// if (cap == ForgeCapabilities.ITEM_HANDLER)
|
||||
// return itemCapability.cast();
|
||||
//
|
||||
//
|
||||
// return super.getCapability(cap, side);
|
||||
//}
|
||||
|
||||
@Override
|
||||
public void invalidate() {
|
||||
super.invalidate();
|
||||
@@ -1135,17 +1196,9 @@ public class VatBlockEntity extends SmartBlockEntity implements IHaveGoggleInfor
|
||||
}
|
||||
|
||||
public static int getMaxHeight() {
|
||||
return 3;
|
||||
return 10;
|
||||
}
|
||||
|
||||
public LerpedFloat[] getFluidLevel() {
|
||||
return fluidLevel;
|
||||
}
|
||||
|
||||
// public void setFluidLevel(LerpedFloat fluidLevel) {
|
||||
// this.fluidLevel = fluidLevel;
|
||||
// }
|
||||
|
||||
@Override
|
||||
public void preventConnectivityUpdate() {
|
||||
updateConnectivity = false;
|
||||
@@ -1154,7 +1207,7 @@ public class VatBlockEntity extends SmartBlockEntity implements IHaveGoggleInfor
|
||||
@Override
|
||||
public void notifyMultiUpdated() {
|
||||
BlockState state = this.getBlockState();
|
||||
if (VatBlock.isVat(state)) { // safety
|
||||
if (VatBlock.isVat(state)) {
|
||||
state = state.setValue(VatBlock.BOTTOM, getController().getY() == getBlockPos().getY());
|
||||
state = state.setValue(VatBlock.TOP, getController().getY() + height - 1 == getBlockPos().getY());
|
||||
level.setBlock(getBlockPos(), state, 6);
|
||||
|
||||
@@ -60,7 +60,7 @@ public class VatRenderer extends SafeBlockEntityRenderer<VatBlockEntity> {
|
||||
if (units < 1)
|
||||
continue;
|
||||
float yMin = capHeight + level;
|
||||
float yMax = yMin + (fluidLevel * (vat.height - (2 * capHeight))) / 5;
|
||||
float yMax = Math.min(yMin + (fluidLevel * (vat.height - (2 * capHeight))),vat.height);
|
||||
|
||||
NeoForgeCatnipServices.FLUID_RENDERER.renderFluidBox(renderedFluid, xMin, yMin, zMin, xMax, yMax, zMax,
|
||||
buffer, ms, light, false, false);
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
package com.drmangotea.tfmg.content.machinery.vat.compressor;
|
||||
|
||||
import com.drmangotea.tfmg.content.electricity.base.IElectric;
|
||||
import com.drmangotea.tfmg.registry.TFMGBlockEntities;
|
||||
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.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;
|
||||
|
||||
public class CompressorBlock extends HorizontalKineticBlock implements IBE<CompressorBlockEntity> {
|
||||
public CompressorBlock(Properties p_49795_) {
|
||||
super(p_49795_);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean hasShaftTowards(LevelReader world, BlockPos pos, BlockState state, Direction face) {
|
||||
return face == state.getValue(HORIZONTAL_FACING);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Direction.Axis getRotationAxis(BlockState state) {
|
||||
return state.getValue(HORIZONTAL_FACING).getAxis();
|
||||
}
|
||||
@Override
|
||||
public Class<CompressorBlockEntity> getBlockEntityClass() {
|
||||
return CompressorBlockEntity.class;
|
||||
}
|
||||
|
||||
@Override
|
||||
public BlockEntityType<? extends CompressorBlockEntity> getBlockEntityType() {
|
||||
return TFMGBlockEntities.COMPRESSOR.get();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,53 @@
|
||||
package com.drmangotea.tfmg.content.machinery.vat.compressor;
|
||||
|
||||
import com.drmangotea.tfmg.base.lang.TFMGLang;
|
||||
import com.drmangotea.tfmg.base.lang.TFMGTexts;
|
||||
import com.simibubi.create.content.kinetics.base.KineticBlockEntity;
|
||||
import net.minecraft.ChatFormatting;
|
||||
import net.minecraft.core.BlockPos;
|
||||
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 CompressorBlockEntity extends KineticBlockEntity {
|
||||
|
||||
public CompressorBlockEntity(BlockEntityType<?> type, BlockPos pos, BlockState state) {
|
||||
super(type, pos, state);
|
||||
}
|
||||
|
||||
|
||||
|
||||
public CompressorState getState(){
|
||||
if(Math.abs(getSpeed())<120){
|
||||
return CompressorState.NON_OPERATIONAL;
|
||||
}
|
||||
if(getSpeed()>0){
|
||||
return CompressorState.PRESSURIZING;
|
||||
}
|
||||
return CompressorState.DEPRESSURIZING;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean addToGoggleTooltip(List<Component> tooltip, boolean isPlayerSneaking) {
|
||||
if(getState()==CompressorState.NON_OPERATIONAL) {
|
||||
TFMGLang.translate("goggles.compressor.non_operational").style(ChatFormatting.RED).forGoggles(tooltip);
|
||||
}else if(getState()==CompressorState.PRESSURIZING){
|
||||
TFMGLang.translate("goggles.compressor.pressurizing").style(ChatFormatting.YELLOW).forGoggles(tooltip);
|
||||
}else {
|
||||
TFMGLang.translate("goggles.compressor.depressurizing").style(ChatFormatting.AQUA).forGoggles(tooltip);
|
||||
}
|
||||
|
||||
return super.addToGoggleTooltip(tooltip, isPlayerSneaking);
|
||||
}
|
||||
|
||||
public enum CompressorState{
|
||||
PRESSURIZING,
|
||||
DEPRESSURIZING,
|
||||
NON_OPERATIONAL
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,54 @@
|
||||
package com.drmangotea.tfmg.content.machinery.vat.compressor;
|
||||
|
||||
import com.drmangotea.tfmg.content.machinery.misc.winding_machine.WindingMachineBlockEntity;
|
||||
import com.drmangotea.tfmg.registry.TFMGItems;
|
||||
import com.drmangotea.tfmg.registry.TFMGPartialModels;
|
||||
import com.mojang.blaze3d.vertex.PoseStack;
|
||||
import com.mojang.blaze3d.vertex.VertexConsumer;
|
||||
import com.simibubi.create.AllPartialModels;
|
||||
import com.simibubi.create.content.kinetics.base.KineticBlockEntityRenderer;
|
||||
import dev.engine_room.flywheel.lib.transform.TransformStack;
|
||||
import net.createmod.catnip.render.CachedBuffers;
|
||||
import net.createmod.catnip.render.SuperByteBuffer;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.renderer.MultiBufferSource;
|
||||
import net.minecraft.client.renderer.RenderType;
|
||||
import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider;
|
||||
import net.minecraft.client.renderer.entity.ItemRenderer;
|
||||
import net.minecraft.client.resources.model.BakedModel;
|
||||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.world.item.ItemDisplayContext;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import net.neoforged.neoforge.common.Tags;
|
||||
|
||||
import static com.simibubi.create.content.kinetics.base.HorizontalKineticBlock.HORIZONTAL_FACING;
|
||||
import static net.minecraft.world.level.block.HorizontalDirectionalBlock.FACING;
|
||||
|
||||
public class CompressorRenderer extends KineticBlockEntityRenderer<CompressorBlockEntity> {
|
||||
public CompressorRenderer(BlockEntityRendererProvider.Context context) {
|
||||
super(context);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void renderSafe(CompressorBlockEntity be, float partialTicks, PoseStack ms, MultiBufferSource bufferSource, int light, int overlay) {
|
||||
|
||||
BlockState blockState = be.getBlockState();
|
||||
ItemRenderer itemRenderer = Minecraft.getInstance()
|
||||
.getItemRenderer();
|
||||
|
||||
VertexConsumer vb = bufferSource.getBuffer(RenderType.solid());
|
||||
|
||||
|
||||
|
||||
super.renderSafe(be, partialTicks, ms, bufferSource, 9999999, overlay);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected SuperByteBuffer getRotatedModel(CompressorBlockEntity be, BlockState state) {
|
||||
return CachedBuffers.partialFacing(AllPartialModels.SHAFT_HALF, state, state
|
||||
.getValue(HORIZONTAL_FACING));
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,59 @@
|
||||
package com.drmangotea.tfmg.content.machinery.vat.compressor;
|
||||
|
||||
import com.drmangotea.tfmg.content.machinery.misc.winding_machine.WindingMachineBlockEntity;
|
||||
import com.simibubi.create.AllPartialModels;
|
||||
import com.simibubi.create.content.kinetics.base.KineticBlockEntityVisual;
|
||||
import com.simibubi.create.content.kinetics.base.RotatingInstance;
|
||||
import com.simibubi.create.foundation.render.AllInstanceTypes;
|
||||
import dev.engine_room.flywheel.api.instance.Instance;
|
||||
import dev.engine_room.flywheel.api.visualization.VisualizationContext;
|
||||
import dev.engine_room.flywheel.lib.model.Models;
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.core.Direction;
|
||||
|
||||
import java.util.function.Consumer;
|
||||
|
||||
import static com.simibubi.create.content.kinetics.base.HorizontalKineticBlock.HORIZONTAL_FACING;
|
||||
|
||||
public class CompressorVisual extends KineticBlockEntityVisual<CompressorBlockEntity> {
|
||||
protected final RotatingInstance shaft;
|
||||
|
||||
public CompressorVisual(VisualizationContext context, CompressorBlockEntity blockEntity, float partialTick) {
|
||||
super(context, blockEntity, partialTick);
|
||||
|
||||
Direction facing = blockEntity.getBlockState().getValue(HORIZONTAL_FACING);
|
||||
|
||||
shaft = instancerProvider().instancer(AllInstanceTypes.ROTATING, Models.partial(AllPartialModels.SHAFT_HALF))
|
||||
.createInstance();
|
||||
|
||||
shaft.setup(blockEntity)
|
||||
.setPosition(getVisualPosition())
|
||||
.rotateToFace(Direction.SOUTH, facing)
|
||||
.setChanged();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void update(float pt) {
|
||||
shaft.setup(blockEntity)
|
||||
.setChanged();
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateLight(float partialTick) {
|
||||
Direction facing = blockEntity.getBlockState().getValue(HORIZONTAL_FACING);
|
||||
BlockPos behind = pos.relative(facing);
|
||||
relight(behind, shaft);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void _delete() {
|
||||
shaft.delete();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void collectCrumblingInstances(Consumer<Instance> consumer) {
|
||||
consumer.accept(shaft);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
package com.drmangotea.tfmg.content.machinery.vat.freezer;
|
||||
|
||||
import com.drmangotea.tfmg.TFMG;
|
||||
import com.drmangotea.tfmg.base.TFMGUtils;
|
||||
import com.drmangotea.tfmg.content.electricity.base.IElectric;
|
||||
import com.drmangotea.tfmg.content.machinery.vat.electrode_holder.electrode.Electrode;
|
||||
import com.drmangotea.tfmg.registry.TFMGBlockEntities;
|
||||
import com.simibubi.create.foundation.block.IBE;
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.world.InteractionHand;
|
||||
import net.minecraft.world.ItemInteractionResult;
|
||||
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.BlockEntityType;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import net.minecraft.world.phys.BlockHitResult;
|
||||
|
||||
public class FreezerBlock extends Block implements IBE<FreezerBlockEntity> {
|
||||
public FreezerBlock(Properties p_49795_) {
|
||||
super(p_49795_);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onPlace(BlockState pState, Level level, BlockPos pos, BlockState pOldState, boolean pIsMoving) {
|
||||
withBlockEntityDo(level,pos, IElectric::onPlaced);
|
||||
}
|
||||
@Override
|
||||
public void onRemove(BlockState state, Level level, BlockPos pos, BlockState newState, boolean isMoving) {
|
||||
IBE.onRemove(state, level, pos, newState);
|
||||
}
|
||||
@Override
|
||||
public Class<FreezerBlockEntity> getBlockEntityClass() {
|
||||
return FreezerBlockEntity.class;
|
||||
}
|
||||
|
||||
@Override
|
||||
public BlockEntityType<? extends FreezerBlockEntity> getBlockEntityType() {
|
||||
return TFMGBlockEntities.FREEZER.get();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,91 @@
|
||||
package com.drmangotea.tfmg.content.machinery.vat.freezer;
|
||||
|
||||
import com.drmangotea.tfmg.TFMG;
|
||||
import com.drmangotea.tfmg.TFMGRegistries;
|
||||
import com.drmangotea.tfmg.base.TFMGUtils;
|
||||
import com.drmangotea.tfmg.base.lang.TFMGTexts;
|
||||
import com.drmangotea.tfmg.config.TFMGConfigs;
|
||||
import com.drmangotea.tfmg.content.electricity.base.ElectricBlockEntity;
|
||||
import com.drmangotea.tfmg.content.machinery.vat.base.IVatMachine;
|
||||
import com.drmangotea.tfmg.content.machinery.vat.base.VatBlock;
|
||||
import com.drmangotea.tfmg.content.machinery.vat.base.VatBlockEntity;
|
||||
import com.drmangotea.tfmg.content.machinery.vat.electrode_holder.electrode.Electrode;
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.core.HolderLookup;
|
||||
import net.minecraft.nbt.CompoundTag;
|
||||
import net.minecraft.network.chat.Component;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
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 java.util.List;
|
||||
|
||||
public class FreezerBlockEntity extends ElectricBlockEntity {
|
||||
|
||||
|
||||
|
||||
public FreezerBlockEntity(BlockEntityType<?> type, BlockPos pos, BlockState state) {
|
||||
super(type, pos, state);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMaxVoltage() {
|
||||
return 20000;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMaxCurrent() {
|
||||
return 400;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasElectricitySlot(Direction direction) {
|
||||
return true;
|
||||
}
|
||||
|
||||
public boolean isOperational(){
|
||||
return getCurrent()>3&&!data.notEnoughPower;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean makeMultimeterTooltip(List<Component> tooltip, boolean isPlayerSneaking) {
|
||||
|
||||
super.makeMultimeterTooltip(tooltip, isPlayerSneaking);
|
||||
if (!isOperational())
|
||||
TFMGTexts.Multimeter.notEnoughCurrent(3).forGoggles(tooltip);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public float resistance() {
|
||||
return 75;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public void onNetworkChanged(int oldVoltage, int oldPower) {
|
||||
super.onNetworkChanged(oldVoltage, oldPower);
|
||||
VatBlock.updateVatState(getBlockState(), level, getBlockPos().relative(Direction.DOWN));
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public AABB getRenderBoundingBox() {
|
||||
return new AABB(getBlockPos()).setMinY(getBlockPos().getY() - 2);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -22,7 +22,7 @@ public class TFMGCastingRecipeGen extends CastingRecipeGen {
|
||||
|
||||
|
||||
PLASTIC_SHEET = create("plastic_sheet", b ->b
|
||||
.require(TFMGFluids.MOLTEN_PLASTIC.get(),200)
|
||||
.require(TFMGFluids.MOLTEN_PLASTIC.get(),144)
|
||||
.output(TFMGItems.PLASTIC_SHEET)
|
||||
.duration(100)),
|
||||
|
||||
|
||||
@@ -7,7 +7,6 @@ import com.drmangotea.tfmg.recipes.VatMachineRecipe;
|
||||
import com.drmangotea.tfmg.registry.TFMGFluids;
|
||||
import com.drmangotea.tfmg.registry.TFMGItems;
|
||||
import com.drmangotea.tfmg.registry.TFMGTags;
|
||||
import com.simibubi.create.content.processing.recipe.HeatCondition;
|
||||
import net.minecraft.core.HolderLookup;
|
||||
import net.minecraft.data.PackOutput;
|
||||
import net.minecraft.world.level.block.Blocks;
|
||||
@@ -27,29 +26,28 @@ public class TFMGVatRecipeGen extends VatRecipeGen {
|
||||
}
|
||||
|
||||
|
||||
|
||||
GeneratedRecipe
|
||||
CONCRETE = create("concrete", b -> ((VatMachineRecipe.Builder<VatMachineRecipe>) b)
|
||||
.require(Blocks.SAND.asItem())
|
||||
.require(Blocks.GRAVEL.asItem())
|
||||
.require(TFMGItems.LIMESAND)
|
||||
.require(Fluids.WATER, 250)
|
||||
.output(TFMGFluids.LIQUID_CONCRETE.get(), 1000)
|
||||
.values(mixing())
|
||||
),
|
||||
.require(Blocks.SAND.asItem())
|
||||
.require(Blocks.GRAVEL.asItem())
|
||||
.require(TFMGItems.LIMESAND)
|
||||
.require(Fluids.WATER, 250)
|
||||
.output(TFMGFluids.LIQUID_CONCRETE.get(), 32000)
|
||||
.values(mixing(true))
|
||||
),
|
||||
ARC_FURNACE_STEEL = create("arc_furnace_steel", b -> ((VatMachineRecipe.Builder<VatMachineRecipe>) b)
|
||||
.require(crushedRawIron())
|
||||
.require(TFMGTags.TFMGItemTags.FLUX.tag)
|
||||
.require(TFMGItems.COAL_COKE_DUST)
|
||||
.output(0.9f,TFMGItems.COAL_COKE_DUST)
|
||||
.output(TFMGFluids.MOLTEN_STEEL.get(), 144)
|
||||
.output(TFMGFluids.MOLTEN_SLAG.get(), 288)
|
||||
.duration(20)
|
||||
.require(crushedRawIron())
|
||||
.require(TFMGTags.TFMGItemTags.FLUX.tag)
|
||||
.require(TFMGItems.COAL_COKE_DUST)
|
||||
.output(0.9f, TFMGItems.COAL_COKE_DUST)
|
||||
.output(TFMGFluids.MOLTEN_STEEL.get(), 144)
|
||||
.output(TFMGFluids.MOLTEN_SLAG.get(), 288)
|
||||
.duration(20)
|
||||
.values(arcBlasting())),
|
||||
NEON = create("neon", b -> ((VatMachineRecipe.Builder<VatMachineRecipe>) b)
|
||||
.require(TFMGFluids.AIR.get(), 1000)
|
||||
.output(TFMGFluids.NEON.get(), 1)
|
||||
.duration(10)
|
||||
.require(TFMGFluids.AIR.get(), 1000)
|
||||
.output(TFMGFluids.NEON.get(), 1)
|
||||
.duration(10)
|
||||
.values(centrifuge())),
|
||||
SULFURIC_ACID = create("sulfuric_acid", b -> ((VatMachineRecipe.Builder<VatMachineRecipe>) b)
|
||||
.require(SizedFluidIngredient.of(water(), 1000))
|
||||
@@ -58,69 +56,67 @@ public class TFMGVatRecipeGen extends VatRecipeGen {
|
||||
.require(sulfurDust())
|
||||
.require(nitrateDust())
|
||||
.output(sulfuricAcid(), 500)
|
||||
.values(mixing())),
|
||||
.values(mixing(true))),
|
||||
|
||||
RUBBER = create("rubber", b -> ((VatMachineRecipe.Builder<VatMachineRecipe>) b)
|
||||
.require(SizedFluidIngredient.of(heavyOil(), 250))
|
||||
.require(sulfurDust())
|
||||
.output(rubber())
|
||||
.requiresHeat(HeatCondition.HEATED)
|
||||
.values(mixing())),
|
||||
RUBBER = create("rubber", b -> ((VatMachineRecipe.Builder<VatMachineRecipe>) b)
|
||||
.require(SizedFluidIngredient.of(heavyOil(), 250))
|
||||
.require(sulfurDust())
|
||||
.output(rubber())
|
||||
.values(heatedmixing(true))),
|
||||
|
||||
NAPHTHA = create("naphtha", b -> ((VatMachineRecipe.Builder<VatMachineRecipe>) b)
|
||||
.require(SizedFluidIngredient.of(naphtha(), 500))
|
||||
.output(ethylene(), 250)
|
||||
.output(propylene(), 250)
|
||||
.requiresHeat(HeatCondition.HEATED)
|
||||
.values(mixing())),
|
||||
NAPHTHA = create("naphtha", b -> ((VatMachineRecipe.Builder<VatMachineRecipe>) b)
|
||||
.require(SizedFluidIngredient.of(naphtha(), 500))
|
||||
.output(ethylene(), 250)
|
||||
.output(propylene(), 250)
|
||||
.values(heatedmixing(true))),
|
||||
|
||||
PLASTIC_FROM_ETHYLENE = create("plastic_from_ethylene", b -> ((VatMachineRecipe.Builder<VatMachineRecipe>) b)
|
||||
.require(SizedFluidIngredient.of(ethylene(), 500))
|
||||
.output(liquidPlastic(), 500)
|
||||
.values(heatedmixing(true))),
|
||||
|
||||
PLASTIC_FROM_ETHYLENE = create("plastic_from_ethylene", b -> ((VatMachineRecipe.Builder<VatMachineRecipe>) b)
|
||||
.require(SizedFluidIngredient.of(ethylene(), 500))
|
||||
.output(liquidPlastic(), 500)
|
||||
.requiresHeat(HeatCondition.HEATED)
|
||||
.values(mixing())),
|
||||
PLASTIC_FROM_PROPYLENE = create("plastic_from_propylene", b -> ((VatMachineRecipe.Builder<VatMachineRecipe>) b)
|
||||
.require(SizedFluidIngredient.of(propylene(), 500))
|
||||
.output(liquidPlastic(), 500)
|
||||
.requiresHeat(HeatCondition.HEATED)
|
||||
.values(mixing())),
|
||||
.require(SizedFluidIngredient.of(propylene(), 500))
|
||||
.output(liquidPlastic(), 500)
|
||||
.values(heatedmixing(true))),
|
||||
ETCHED_CIRCUIT_BOARD = create("etched_circuit_board", b -> ((VatMachineRecipe.Builder<VatMachineRecipe>) b)
|
||||
.require(TFMGItems.COATED_CIRCUIT_BOARD)
|
||||
.require(TFMGFluids.SULFURIC_ACID.getSource(), 250)
|
||||
.output(TFMGItems.ETCHED_CIRCUIT_BOARD)
|
||||
.duration(100)
|
||||
.require(TFMGItems.COATED_CIRCUIT_BOARD)
|
||||
.require(TFMGFluids.SULFURIC_ACID.getSource(), 250)
|
||||
.output(TFMGItems.ETCHED_CIRCUIT_BOARD)
|
||||
.duration(100)
|
||||
.values(noMachines())),
|
||||
ALUMINUM = create("aluminum", b -> ((VatMachineRecipe.Builder<VatMachineRecipe>) b)
|
||||
.require(TFMGItems.BAUXITE_POWDER)
|
||||
.require(TFMGItems.BAUXITE_POWDER)
|
||||
.require(TFMGItems.BAUXITE_POWDER)
|
||||
.require(TFMGItems.BAUXITE_POWDER)
|
||||
.output(TFMGItems.ALUMINUM_INGOT)
|
||||
.output(.5f, TFMGItems.ALUMINUM_NUGGET, 4)
|
||||
.output(.25f, TFMGItems.ALUMINUM_NUGGET, 2)
|
||||
.output(TFMGFluids.CARBON_DIOXIDE.get(), 500)
|
||||
.duration(100)
|
||||
.requiresHeat(HeatCondition.HEATED)
|
||||
.values(electrolysis()));
|
||||
//DEBUG_5 = createVatRecipe("debug_5", b -> ((VatMachineRecipe.Builder<VatMachineRecipe>) b)
|
||||
// .require(Blocks.GOLD_BLOCK.asItem())
|
||||
// .require(Blocks.DIAMOND_BLOCK.asItem())
|
||||
// .require(Blocks.IRON_BLOCK.asItem())
|
||||
// .require(Blocks.COAL_BLOCK.asItem())
|
||||
// .require(TFMGFluids.LIQUID_CONCRETE.getSource(), 1)
|
||||
// .require(TFMGFluids.HEAVY_OIL.getSource(), 1)
|
||||
// .require(TFMGFluids.COOLING_FLUID.getSource(), 1)
|
||||
// .require(TFMGFluids.CRUDE_OIL.getSource(), 1)
|
||||
// .output(TFMGFluids.LIQUID_CONCRETE.get(), 1)
|
||||
// .output(TFMGFluids.HEAVY_OIL.get(), 1)
|
||||
// .output(TFMGFluids.COOLING_FLUID.get(), 1)
|
||||
// .output(TFMGFluids.CRUDE_OIL.get(), 1)
|
||||
// .output(Items.EGG)
|
||||
// .output(Items.ARROW)
|
||||
// .output(Items.DIAMOND)
|
||||
// .output(Items.STRING)
|
||||
// , mixing());
|
||||
;
|
||||
.require(TFMGItems.BAUXITE_POWDER)
|
||||
.require(TFMGItems.BAUXITE_POWDER)
|
||||
.require(TFMGItems.BAUXITE_POWDER)
|
||||
.require(TFMGItems.BAUXITE_POWDER)
|
||||
.output(TFMGItems.ALUMINUM_INGOT)
|
||||
.output(.5f, TFMGItems.ALUMINUM_NUGGET, 4)
|
||||
.output(.25f, TFMGItems.ALUMINUM_NUGGET, 2)
|
||||
.output(TFMGFluids.CARBON_DIOXIDE.get(), 500)
|
||||
.duration(100)
|
||||
.values(electrolysis()))
|
||||
|
||||
|
||||
//DEBUG = createVatRecipe("debug_5", b -> ((VatMachineRecipe.Builder<VatMachineRecipe>) b)
|
||||
// .require(Blocks.GOLD_BLOCK.asItem())
|
||||
// .require(Blocks.DIAMOND_BLOCK.asItem())
|
||||
// .require(Blocks.IRON_BLOCK.asItem())
|
||||
// .require(Blocks.COAL_BLOCK.asItem())
|
||||
// .require(TFMGFluids.LIQUID_CONCRETE.getSource(), 1)
|
||||
// .require(TFMGFluids.HEAVY_OIL.getSource(), 1)
|
||||
// .require(TFMGFluids.COOLING_FLUID.getSource(), 1)
|
||||
// .require(TFMGFluids.CRUDE_OIL.getSource(), 1)
|
||||
// .output(TFMGFluids.LIQUID_CONCRETE.get(), 1)
|
||||
// .output(TFMGFluids.HEAVY_OIL.get(), 1)
|
||||
// .output(TFMGFluids.COOLING_FLUID.get(), 1)
|
||||
// .output(TFMGFluids.CRUDE_OIL.get(), 1)
|
||||
// .output(Items.EGG)
|
||||
// .output(Items.ARROW)
|
||||
// .output(Items.DIAMOND)
|
||||
// .output(Items.STRING)
|
||||
// , mixing());
|
||||
;
|
||||
|
||||
/// ////
|
||||
public VatRecipeValues electrolysis() {
|
||||
@@ -130,18 +126,37 @@ public class TFMGVatRecipeGen extends VatRecipeGen {
|
||||
params.allowedVatTypes = new ArrayList<>();
|
||||
params.allowedVatTypes.add("tfmg:steel_vat");
|
||||
params.allowedVatTypes.add("tfmg:firebrick_lined_vat");
|
||||
params.heat = 2;
|
||||
return params;
|
||||
}
|
||||
|
||||
public VatRecipeValues mixing() {
|
||||
return mixing(false);
|
||||
}
|
||||
|
||||
public VatRecipeValues mixing(boolean allowsCastIronVat) {
|
||||
VatRecipeValues params = new VatRecipeValues();
|
||||
params.machines.add("tfmg:mixing");
|
||||
params.allowedVatTypes = new ArrayList<>();
|
||||
if (allowsCastIronVat)
|
||||
params.allowedVatTypes.add("tfmg:cast_iron_vat");
|
||||
params.allowedVatTypes.add("tfmg:steel_vat");
|
||||
params.allowedVatTypes.add("tfmg:firebrick_lined_vat");
|
||||
return params;
|
||||
}
|
||||
|
||||
public VatRecipeValues heatedmixing(boolean allowsCastIronVat) {
|
||||
VatRecipeValues params = new VatRecipeValues();
|
||||
params.machines.add("tfmg:mixing");
|
||||
params.allowedVatTypes = new ArrayList<>();
|
||||
if (allowsCastIronVat)
|
||||
params.allowedVatTypes.add("tfmg:cast_iron_vat");
|
||||
params.allowedVatTypes.add("tfmg:steel_vat");
|
||||
params.allowedVatTypes.add("tfmg:firebrick_lined_vat");
|
||||
params.heat = 2;
|
||||
return params;
|
||||
}
|
||||
|
||||
public VatRecipeValues centrifuge() {
|
||||
VatRecipeValues params = new VatRecipeValues();
|
||||
params.machines.add("tfmg:centrifuge");
|
||||
@@ -150,18 +165,22 @@ public class TFMGVatRecipeGen extends VatRecipeGen {
|
||||
|
||||
public VatRecipeValues noMachines() {
|
||||
VatRecipeValues params = new VatRecipeValues();
|
||||
params.machines = new ArrayList<>();
|
||||
params.allowedVatTypes = new ArrayList<>();
|
||||
params.allowedVatTypes.add("tfmg:steel_vat");
|
||||
params.allowedVatTypes.add("tfmg:cast_iron_vat");
|
||||
params.allowedVatTypes.add("tfmg:firebrick_lined_vat");
|
||||
params.minSize = 0;
|
||||
params.minSize = 1;
|
||||
return params;
|
||||
}
|
||||
|
||||
public VatRecipeValues freezing() {
|
||||
VatRecipeValues params = new VatRecipeValues();
|
||||
params.machines.add("tfmg:freezing");
|
||||
|
||||
params.allowedVatTypes = new ArrayList<>();
|
||||
params.allowedVatTypes.add("tfmg:cast_iron_vat");
|
||||
params.allowedVatTypes.add("tfmg:steel_vat");
|
||||
params.allowedVatTypes.add("tfmg:firebrick_lined_vat");
|
||||
params.heat = 5;
|
||||
return params;
|
||||
}
|
||||
|
||||
@@ -183,21 +202,33 @@ public class TFMGVatRecipeGen extends VatRecipeGen {
|
||||
params.allowedVatTypes.add("tfmg:firebrick_lined_vat");
|
||||
return params;
|
||||
}
|
||||
public static class VatRecipeValues{
|
||||
|
||||
public static class VatRecipeValues {
|
||||
|
||||
public List<String> machines;
|
||||
public int minSize;
|
||||
public int heat;
|
||||
public int pressure;
|
||||
public List<String> allowedVatTypes;
|
||||
|
||||
public VatRecipeValues(){
|
||||
|
||||
public VatRecipeValues() {
|
||||
machines = new ArrayList<>();
|
||||
minSize = 1;
|
||||
heat = 0;
|
||||
pressure = 0;
|
||||
allowedVatTypes = new ArrayList<>();
|
||||
allowedVatTypes.add("tfmg:steel_vat");
|
||||
allowedVatTypes.add("tfmg:cast_iron_vat");
|
||||
allowedVatTypes.add("tfmg:firebrick_lined_vat");
|
||||
|
||||
}
|
||||
|
||||
public VatRecipeValues heat(int heat) {
|
||||
VatRecipeValues values = this;
|
||||
values.heat = heat;
|
||||
return values;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -83,7 +83,8 @@ public class VatMachineRecipe extends ProcessingRecipe<RecipeInput, VatRecipePar
|
||||
public VatMachineRecipe.Builder<R> values(TFMGVatRecipeGen.VatRecipeValues value) {
|
||||
params.machines = value.machines;
|
||||
params.allowedVatTypes = value.allowedVatTypes;
|
||||
|
||||
params.pressure = value.pressure;
|
||||
params.heat_level = value.heat;
|
||||
params.min_size = value.minSize;
|
||||
return this;
|
||||
}
|
||||
|
||||
@@ -29,12 +29,15 @@ public class VatRecipeParams extends ProcessingRecipeParams {
|
||||
.forGetter(VatRecipeParams::getMinSize),
|
||||
Codec.INT.optionalFieldOf("heat_level", 0)
|
||||
.forGetter(VatRecipeParams::getHeatLevel),
|
||||
Codec.INT.optionalFieldOf("pressure", 0)
|
||||
.forGetter(VatRecipeParams::getPressure),
|
||||
Codec.STRING.listOf().optionalFieldOf("machines", new ArrayList<>()).forGetter(VatRecipeParams::getMachines),
|
||||
Codec.STRING.listOf().optionalFieldOf("allowed_vat_types", types).forGetter(VatRecipeParams::getAllowedVatTypes)
|
||||
).apply(instance, (params, min_size, heat_level, machines, allowed_vat_types) -> {
|
||||
).apply(instance, (params, min_size, heat_level,pressure, machines, allowed_vat_types) -> {
|
||||
params.machines = machines;
|
||||
params.min_size = min_size;
|
||||
params.heat_level = heat_level;
|
||||
params.pressure = pressure;
|
||||
params.allowedVatTypes = allowed_vat_types;
|
||||
return params;
|
||||
}));
|
||||
@@ -44,6 +47,8 @@ public class VatRecipeParams extends ProcessingRecipeParams {
|
||||
|
||||
public int heat_level;
|
||||
|
||||
public int pressure;
|
||||
|
||||
public List<String> machines;
|
||||
public List<String> allowedVatTypes;
|
||||
|
||||
@@ -51,6 +56,11 @@ public class VatRecipeParams extends ProcessingRecipeParams {
|
||||
return heat_level;
|
||||
}
|
||||
|
||||
protected final int getPressure() {
|
||||
return pressure;
|
||||
}
|
||||
|
||||
|
||||
protected final int getMinSize() {
|
||||
return min_size;
|
||||
}
|
||||
@@ -68,6 +78,7 @@ public class VatRecipeParams extends ProcessingRecipeParams {
|
||||
super.encode(buffer);
|
||||
ByteBufCodecs.INT.encode(buffer, min_size);
|
||||
ByteBufCodecs.INT.encode(buffer, heat_level);
|
||||
ByteBufCodecs.INT.encode(buffer, pressure);
|
||||
|
||||
|
||||
CatnipStreamCodecBuilders.list(ByteBufCodecs.STRING_UTF8).encode(buffer, machines);
|
||||
@@ -80,6 +91,7 @@ public class VatRecipeParams extends ProcessingRecipeParams {
|
||||
super.decode(buffer);
|
||||
min_size = ByteBufCodecs.INT.decode(buffer);
|
||||
heat_level = ByteBufCodecs.INT.decode(buffer);
|
||||
pressure = ByteBufCodecs.INT.decode(buffer);
|
||||
|
||||
machines = CatnipStreamCodecBuilders.list(ByteBufCodecs.STRING_UTF8).decode(buffer);
|
||||
allowedVatTypes = CatnipStreamCodecBuilders.list(ByteBufCodecs.STRING_UTF8).decode(buffer);
|
||||
|
||||
@@ -11,6 +11,7 @@ import mezz.jei.api.gui.ingredient.IRecipeSlotsView;
|
||||
import mezz.jei.api.recipe.IFocusGroup;
|
||||
import mezz.jei.api.recipe.RecipeIngredientRole;
|
||||
import net.createmod.catnip.data.Pair;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.gui.GuiGraphics;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.item.crafting.Ingredient;
|
||||
@@ -94,7 +95,14 @@ public class ChemicalVatCategory extends CreateRecipeCategory<VatMachineRecipe>
|
||||
drawVatTypes(allowedVatTypes, graphics);
|
||||
|
||||
drawSprites(machines, graphics);
|
||||
renderHeated(recipe.getRequiredHeat(), graphics);
|
||||
|
||||
|
||||
|
||||
|
||||
if(recipe.heatLevel!=0) {
|
||||
TFMGGuiTextures.VAT_HEATER.render(graphics, 55 - 10, 109);
|
||||
graphics.drawString(Minecraft.getInstance().font, String.valueOf((recipe.heatLevel + 10f) / 10f), 76.0F, 113.0F, 0xFF501C, false);
|
||||
}
|
||||
|
||||
int pos = 55;
|
||||
int width = ((recipe.getFluidIngredients().size()) * 21) / 2;
|
||||
|
||||
@@ -99,8 +99,12 @@ import com.drmangotea.tfmg.content.machinery.oil_processing.surface_scanner.Surf
|
||||
import com.drmangotea.tfmg.content.machinery.oil_processing.surface_scanner.SurfaceScannerRenderer;
|
||||
import com.drmangotea.tfmg.content.machinery.vat.base.VatBlockEntity;
|
||||
import com.drmangotea.tfmg.content.machinery.vat.base.VatRenderer;
|
||||
import com.drmangotea.tfmg.content.machinery.vat.compressor.CompressorBlockEntity;
|
||||
import com.drmangotea.tfmg.content.machinery.vat.compressor.CompressorRenderer;
|
||||
import com.drmangotea.tfmg.content.machinery.vat.compressor.CompressorVisual;
|
||||
import com.drmangotea.tfmg.content.machinery.vat.electrode_holder.ElectrodeHolderBlockEntity;
|
||||
import com.drmangotea.tfmg.content.machinery.vat.electrode_holder.ElectrodeHolderRenderer;
|
||||
import com.drmangotea.tfmg.content.machinery.vat.freezer.FreezerBlockEntity;
|
||||
import com.drmangotea.tfmg.content.machinery.vat.industrial_mixer.IndustrialMixerBlockEntity;
|
||||
import com.drmangotea.tfmg.content.machinery.vat.industrial_mixer.IndustrialMixerRenderer;
|
||||
import com.drmangotea.tfmg.content.machinery.vat.industrial_mixer.IndustrialMixerVisual;
|
||||
@@ -351,6 +355,16 @@ public class TFMGBlockEntities {
|
||||
.validBlocks(TFMGBlocks.ELECTRODE_HOLDER)
|
||||
.renderer(() -> ElectrodeHolderRenderer::new)
|
||||
.register();
|
||||
public static final BlockEntityEntry<FreezerBlockEntity> FREEZER = REGISTRATE
|
||||
.blockEntity("freezer", FreezerBlockEntity::new)
|
||||
.validBlocks(TFMGBlocks.FREEZER)
|
||||
.register();
|
||||
public static final BlockEntityEntry<CompressorBlockEntity> COMPRESSOR = REGISTRATE
|
||||
.blockEntity("compressor", CompressorBlockEntity::new)
|
||||
.visual(() -> CompressorVisual::new)
|
||||
.validBlocks(TFMGBlocks.COMPRESSOR)
|
||||
.renderer(() -> CompressorRenderer::new)
|
||||
.register();
|
||||
public static final BlockEntityEntry<SteelTankBlockEntity> STEEL_FLUID_TANK = REGISTRATE
|
||||
.blockEntity("steel_fluid_tank", SteelTankBlockEntity::new)
|
||||
.validBlocks(TFMGBlocks.STEEL_FLUID_TANK)
|
||||
|
||||
@@ -114,7 +114,9 @@ import com.drmangotea.tfmg.content.machinery.oil_processing.pumpjack.hammer.part
|
||||
import com.drmangotea.tfmg.content.machinery.oil_processing.surface_scanner.SurfaceScannerBlock;
|
||||
import com.drmangotea.tfmg.content.machinery.vat.base.VatBlock;
|
||||
import com.drmangotea.tfmg.content.machinery.vat.base.VatGenerator;
|
||||
import com.drmangotea.tfmg.content.machinery.vat.compressor.CompressorBlock;
|
||||
import com.drmangotea.tfmg.content.machinery.vat.electrode_holder.ElectrodeHolderBlock;
|
||||
import com.drmangotea.tfmg.content.machinery.vat.freezer.FreezerBlock;
|
||||
import com.drmangotea.tfmg.content.machinery.vat.industrial_mixer.IndustrialMixerBlock;
|
||||
import com.simibubi.create.AllTags;
|
||||
import com.simibubi.create.api.stress.BlockStressValues;
|
||||
@@ -496,6 +498,23 @@ public class TFMGBlocks {
|
||||
.item()
|
||||
.transform(customItemModel())
|
||||
.register();
|
||||
public static final BlockEntry<FreezerBlock> FREEZER = REGISTRATE.block("freezer", FreezerBlock::new)
|
||||
.initialProperties(SharedProperties::softMetal)
|
||||
.transform(pickaxeOnly())
|
||||
.blockstate((ctx, prov) -> prov.simpleBlock(ctx.getEntry(), AssetLookup.partialBaseModel(ctx, prov)))
|
||||
.item()
|
||||
.transform(customItemModel())
|
||||
.register();
|
||||
|
||||
public static final BlockEntry<CompressorBlock> COMPRESSOR = REGISTRATE.block("compressor", CompressorBlock::new)
|
||||
.initialProperties(SharedProperties::softMetal)
|
||||
.transform(pickaxeOnly())
|
||||
.blockstate(BlockStateGen.horizontalBlockProvider(true))
|
||||
// .blockstate((ctx, prov) -> prov.simpleBlock(ctx.getEntry(), AssetLookup.partialBaseModel(ctx, prov)))
|
||||
.transform(TFMGStress.setImpact(24.0))
|
||||
.item()
|
||||
.transform(customItemModel())
|
||||
.register();
|
||||
|
||||
|
||||
//------------------ORES------------------//
|
||||
|
||||
@@ -66,6 +66,10 @@
|
||||
"tfmg.goggles.electric_machine.no_power": "No Power",
|
||||
"tfmg.goggles.electricity.insufficient_voltage": "Insufficient Voltage",
|
||||
|
||||
"tfmg.goggles.compressor.non_operational": "State: Non Operational(Needs at least 120 RPM)",
|
||||
"tfmg.goggles.compressor.pressurizing": "State: Pressurizing",
|
||||
"tfmg.goggles.compressor.depressurizing": "State: Depressurizing",
|
||||
|
||||
"tfmg.goggles.voltmeter": "Voltmeter:",
|
||||
"tfmg.goggles.gauge.value": " Measured Voltage:",
|
||||
"tfmg.goggles.voltmeter.range": " Range: %1$s",
|
||||
@@ -97,6 +101,10 @@
|
||||
"tfmg.goggles.vat.tfmg.electrode": " Electrode",
|
||||
"tfmg.goggles.vat.tfmg.mixing": " Mixer",
|
||||
"tfmg.goggles.vat.tfmg.centrifuge": " Centrifuge",
|
||||
"create.vat.pressure_dots": "... ",
|
||||
"create.vat.pressure": "Pressure",
|
||||
"create.vat.heat_dots": "................ ",
|
||||
"create.vat.heat": "Heat",
|
||||
|
||||
|
||||
"tfmg.goggles.ammeter": "Ammeter:",
|
||||
@@ -209,6 +217,8 @@
|
||||
"tfmg.goggles.voltmeter.mode.capacity": "Capacity",
|
||||
"tfmg.goggles.voltmeter.mode.fallback": "Fallback",
|
||||
|
||||
|
||||
|
||||
"tfmg.display_source.electricity.power_usage": "Power Usage",
|
||||
"tfmg.display_source.electricity.network_resistance": "Network Resistance",
|
||||
"tfmg.display_source.electricity.voltage": "Voltage",
|
||||
|
||||
@@ -0,0 +1,69 @@
|
||||
{
|
||||
"format_version": "1.21.11",
|
||||
"credit": "Made with Blockbench",
|
||||
"parent": "block/block",
|
||||
"textures": {
|
||||
"0": "tfmg:block/compressor_shaft",
|
||||
"1": "tfmg:block/compressor",
|
||||
"2": "tfmg:block/compressor_top",
|
||||
"particle": "tfmg:block/compressor"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [0, 0, 1],
|
||||
"to": [16, 16, 16],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 1]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 16, 16], "texture": "#0"},
|
||||
"east": {"uv": [0, 0, 15, 16], "texture": "#1"},
|
||||
"south": {"uv": [0, 0, 16, 16], "texture": "#1"},
|
||||
"west": {"uv": [1, 0, 16, 16], "texture": "#1"},
|
||||
"up": {"uv": [0, 1, 16, 16], "texture": "#2"},
|
||||
"down": {"uv": [0, 0, 16, 15], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 0, 0],
|
||||
"to": [2, 16, 1],
|
||||
"faces": {
|
||||
"north": {"uv": [14, 0, 16, 16], "texture": "#0"},
|
||||
"east": {"uv": [1, 0, 2, 16], "texture": "#0"},
|
||||
"west": {"uv": [0, 0, 1, 16], "texture": "#1"},
|
||||
"up": {"uv": [0, 0, 2, 1], "texture": "#2"},
|
||||
"down": {"uv": [0, 1, 2, 2], "texture": "#2"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [14, 0, 0],
|
||||
"to": [16, 16, 1],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [14, 0, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 2, 16], "texture": "#0"},
|
||||
"east": {"uv": [0, 0, 1, 16], "texture": "#2"},
|
||||
"west": {"uv": [1, 0, 2, 16], "texture": "#0"},
|
||||
"up": {"uv": [2, 0, 0, 1], "texture": "#2"},
|
||||
"down": {"uv": [2, 0, 0, 1], "texture": "#2"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [2, 14, 0],
|
||||
"to": [14, 16, 1],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [12, 0, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [2, 0, 14, 2], "texture": "#0"},
|
||||
"up": {"uv": [2, 0, 14, 1], "texture": "#2"},
|
||||
"down": {"uv": [2, 1, 14, 2], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [2, 0, 0],
|
||||
"to": [14, 2, 1],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [12, -14, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [2, 14, 14, 16], "texture": "#0"},
|
||||
"up": {"uv": [2, 1, 14, 2], "texture": "#0"},
|
||||
"down": {"uv": [2, 0, 14, 1], "texture": "#1"}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,83 @@
|
||||
{
|
||||
"format_version": "1.21.11",
|
||||
"credit": "Made with Blockbench",
|
||||
"parent": "block/block",
|
||||
"textures": {
|
||||
"0": "tfmg:block/compressor_shaft",
|
||||
"1": "tfmg:block/compressor",
|
||||
"2": "tfmg:block/compressor_top",
|
||||
"3": "tfmg:block/shaft",
|
||||
"4": "tfmg:block/shaft_top",
|
||||
"particle": "tfmg:block/compressor"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [0, 0, 1],
|
||||
"to": [16, 16, 16],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 1]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 16, 16], "texture": "#0"},
|
||||
"east": {"uv": [0, 0, 15, 16], "texture": "#1"},
|
||||
"south": {"uv": [0, 0, 16, 16], "texture": "#1"},
|
||||
"west": {"uv": [1, 0, 16, 16], "texture": "#1"},
|
||||
"up": {"uv": [0, 1, 16, 16], "texture": "#2"},
|
||||
"down": {"uv": [0, 0, 16, 15], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 0, 0],
|
||||
"to": [2, 16, 1],
|
||||
"faces": {
|
||||
"north": {"uv": [14, 0, 16, 16], "texture": "#0"},
|
||||
"east": {"uv": [1, 0, 2, 16], "texture": "#0"},
|
||||
"west": {"uv": [0, 0, 1, 16], "texture": "#1"},
|
||||
"up": {"uv": [0, 0, 2, 1], "texture": "#2"},
|
||||
"down": {"uv": [0, 1, 2, 2], "texture": "#2"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [14, 0, 0],
|
||||
"to": [16, 16, 1],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [14, 0, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 2, 16], "texture": "#0"},
|
||||
"east": {"uv": [0, 0, 1, 16], "texture": "#2"},
|
||||
"west": {"uv": [1, 0, 2, 16], "texture": "#0"},
|
||||
"up": {"uv": [2, 0, 0, 1], "texture": "#2"},
|
||||
"down": {"uv": [2, 0, 0, 1], "texture": "#2"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [2, 14, 0],
|
||||
"to": [14, 16, 1],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [12, 0, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [2, 0, 14, 2], "texture": "#0"},
|
||||
"up": {"uv": [2, 0, 14, 1], "texture": "#2"},
|
||||
"down": {"uv": [2, 1, 14, 2], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [2, 0, 0],
|
||||
"to": [14, 2, 1],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [12, -14, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [2, 14, 14, 16], "texture": "#0"},
|
||||
"up": {"uv": [2, 1, 14, 2], "texture": "#0"},
|
||||
"down": {"uv": [2, 0, 14, 1], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [6, 6, 0],
|
||||
"to": [10, 10, 1],
|
||||
"rotation": {"angle": -22.5, "axis": "z", "origin": [8, 8, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [6, 6, 10, 10], "texture": "#4"},
|
||||
"east": {"uv": [6, 0, 10, 1], "rotation": 90, "texture": "#3"},
|
||||
"west": {"uv": [6, 0, 10, 1], "rotation": 90, "texture": "#3"},
|
||||
"up": {"uv": [6, 0, 10, 1], "texture": "#3"},
|
||||
"down": {"uv": [6, 0, 10, 1], "texture": "#3"}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"format_version": "1.21.11",
|
||||
"credit": "Made with Blockbench",
|
||||
"textures": {
|
||||
"0": "tfmg:block/steel_cable_hub",
|
||||
"1": "tfmg:block/freezer_top",
|
||||
"2": "tfmg:block/freezer",
|
||||
"particle": "tfmg:block/steel_cable_hub"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [0, 0, 0],
|
||||
"to": [16, 16, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 16, 16], "texture": "#2"},
|
||||
"east": {"uv": [0, 0, 16, 16], "texture": "#2"},
|
||||
"south": {"uv": [0, 0, 16, 16], "texture": "#2"},
|
||||
"west": {"uv": [0, 0, 16, 16], "texture": "#2"},
|
||||
"up": {"uv": [0, 0, 16, 16], "texture": "#1"},
|
||||
"down": {"uv": [0, 0, 16, 16], "texture": "#0"}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"format_version": "1.21.11",
|
||||
"credit": "Made with Blockbench",
|
||||
"parent": "block/block",
|
||||
"textures": {
|
||||
"0": "tfmg:block/steel_cable_hub",
|
||||
"1": "tfmg:block/freezer_top",
|
||||
"2": "tfmg:block/freezer",
|
||||
"particle": "tfmg:block/steel_cable_hub"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [0, 0, 0],
|
||||
"to": [16, 16, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 16, 16], "texture": "#2"},
|
||||
"east": {"uv": [0, 0, 16, 16], "texture": "#2"},
|
||||
"south": {"uv": [0, 0, 16, 16], "texture": "#2"},
|
||||
"west": {"uv": [0, 0, 16, 16], "texture": "#2"},
|
||||
"up": {"uv": [0, 0, 16, 16], "texture": "#1"},
|
||||
"down": {"uv": [0, 0, 16, 16], "texture": "#0"}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
BIN
src/main/resources/assets/tfmg/textures/block/compressor.png
Normal file
BIN
src/main/resources/assets/tfmg/textures/block/compressor.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 351 B |
Binary file not shown.
|
After Width: | Height: | Size: 254 B |
BIN
src/main/resources/assets/tfmg/textures/block/compressor_top.png
Normal file
BIN
src/main/resources/assets/tfmg/textures/block/compressor_top.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 226 B |
BIN
src/main/resources/assets/tfmg/textures/block/freezer.png
Normal file
BIN
src/main/resources/assets/tfmg/textures/block/freezer.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 354 B |
BIN
src/main/resources/assets/tfmg/textures/block/freezer_top.png
Normal file
BIN
src/main/resources/assets/tfmg/textures/block/freezer_top.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 273 B |
Reference in New Issue
Block a user