1.1.1 update
This commit is contained in:
@@ -25,15 +25,15 @@ mixin_extras_version = 0.4.1
|
||||
|
||||
jei_minecraft_version = 1.21.1
|
||||
jei_version = 19.25.0.322
|
||||
create_version = 6.0.7-159
|
||||
ponder_version = 1.0.63
|
||||
create_version = 6.0.8-166
|
||||
ponder_version = 1.0.64
|
||||
flywheel_version = 1.0.5
|
||||
registrate_version = MC1.21-1.3.0+62
|
||||
|
||||
mod_id=tfmg
|
||||
mod_name=Create: The Factory Must Grow
|
||||
mod_license=MIT
|
||||
mod_version=1.1.0c
|
||||
mod_version=1.1.1
|
||||
mod_group_id=com.drmangotea
|
||||
mod_authors= DrMangoTea, Pepa, Luna
|
||||
mod_description= Create: The Factory Must Grow brings the age of steel, oil and electricity to the Create mod
|
||||
|
||||
@@ -43,7 +43,7 @@
|
||||
"block.tfmg.blast_furnace_reinforcement": "ʇuǝɯǝɔɹoɟuıǝᴚ ǝɔɐuɹnℲ ʇsɐןᗺ",
|
||||
"block.tfmg.blast_furnace_reinforcement_wall": "ןןɐM ʇuǝɯǝɔɹoɟuıǝᴚ ǝɔɐuɹnℲ ʇsɐןᗺ",
|
||||
"block.tfmg.blast_stove": "ǝʌoʇS ʇsɐןᗺ",
|
||||
"block.tfmg.blast_stove.tooltip.behaviour1": "˙doʇ sǝuıɥɔɐɯ ǝɥʇ ɯoɹɟ ʇno pǝdɯnd ǝq ʇsnɯ ɹıɐ pǝʇɐǝɥ ʎןןɐuıɟ puɐ ʞɔoןq ɯoʇʇoq ǝɥʇ ɟo ǝpıs ǝɥʇ ɯoɹɟ ʇno pǝdɯnd ǝq ʇsnɯ ǝpıxoıp uoqɹɐƆ ˙ɯoʇʇoq ǝɥʇ ɯoɹɟ sɐb ǝɔɐuɹnℲ ɹo ǝʇosoǝɹƆ puɐ ʞɔoןq ɯoʇʇoq ǝɥʇ ɟo ǝpıs ǝɥʇ ɯoɹɟ 'ɹıⱯ ˙uı pǝdɯnd ǝq oʇ sbuıɥʇ ᄅ sǝɹınbǝɹ ǝʌoʇS ʇsɐןᗺ Ɐ ˙pǝpuǝɯoɔɔǝɹ ʎןןɐɹǝuǝb sı ɥɔıɥʍ doʇ uo sʞɔoןq ǝʌoʇs ǝɹoɯ ppɐ uɐɔ noʎ ǝbɐɹoʇs ןɐuɹǝʇuı ɹǝɥʇɹnɟ ppɐ oʇ 'pǝʇɐǝɹɔ sı ǝʌoʇs ʇsɐןq ɐ ɟo uoısɹǝʌ ʇsǝןןɐɯs ǝɥʇ )ǝdɐɥs ᄅxƐ ɐ uı ɹo( ɹǝɥʇoɥɔɐǝ ɟo doʇ uo pǝɔɐןd ǝɹɐ sǝʌoʇs ʇsɐןq Ɛ uǝɥM",
|
||||
"block.tfmg.blast_stove.tooltip.behaviour1": "˙doʇ sǝuıɥɔɐɯ ǝɥʇ ɯoɹɟ ʇno pǝdɯnd ǝq ʇsnɯ ɹıɐ pǝʇɐǝɥ ʎןןɐuıɟ puɐ ʞɔoןq ɯoʇʇoq ǝɥʇ ɟo ǝpıs ǝɥʇ ɯoɹɟ ʇno pǝdɯnd ǝq ʇsnɯ ǝpıxoıp uoqɹɐƆ ˙ɯoʇʇoq ǝɥʇ ɯoɹɟ sɐb ǝɔɐuɹnℲ ɹo ǝʇosoǝɹƆ puɐ ʞɔoןq ɯoʇʇoq ǝɥʇ ɟo ǝpıs ǝɥʇ ɯoɹɟ 'ɹıⱯ ˙uı pǝdɯnd ǝq oʇ sbuıɥʇ ᄅ sǝɹınbǝɹ ǝʌoʇS ʇsɐןᗺ Ɐ ˙pǝpuǝɯɯoɔǝɹ ʎןןɐɹǝuǝb sı ɥɔıɥʍ doʇ uo sʞɔoןq ǝʌoʇs ǝɹoɯ ppɐ uɐɔ noʎ ǝbɐɹoʇs ןɐuɹǝʇuı ɹǝɥʇɹnɟ ppɐ oʇ 'pǝʇɐǝɹɔ sı ǝʌoʇs ʇsɐןq ɐ ɟo uoısɹǝʌ ʇsǝןןɐɯs ǝɥʇ )ǝdɐɥs ᄅxƐ ɐ uı ɹo( ɹǝɥʇoɥɔɐǝ ɟo doʇ uo pǝɔɐןd ǝɹɐ sǝʌoʇs ʇsɐןq Ɛ uǝɥM",
|
||||
"block.tfmg.blast_stove.tooltip.summary": "ɹıⱯ sʇɐǝH",
|
||||
"block.tfmg.blue_caution_block": "ʞɔoןᗺ uoıʇnɐƆ ǝnןᗺ",
|
||||
"block.tfmg.blue_concrete": "ǝʇǝɹɔuoƆ ǝnןᗺ",
|
||||
@@ -509,7 +509,17 @@
|
||||
"block.tfmg.yellow_rebar_concrete_wall": "ןןɐM ǝʇǝɹɔuoƆ ɹɐqǝᴚ ʍoןןǝʎ",
|
||||
"block.tfmg.zinc_frame": "ǝɯɐɹℲ ɔuıZ",
|
||||
"block.tfmg.zinc_truss": "ssnɹ⟘ ɔuıZ",
|
||||
"create.goggles.fluid_storage": ":ǝbɐɹoʇS pınןℲ",
|
||||
"create.goggles.item_storage": ":ǝbɐɹoʇS ɯǝʇI",
|
||||
"create.recipe.advanced_distillation": "uoıʇɐןןıʇsıᗡ pǝɔuɐʌpⱯ",
|
||||
"create.recipe.assembly.winding": "ןoodS ɐ puıM",
|
||||
"create.recipe.casting": "buıʇsɐƆ",
|
||||
"create.recipe.chemical_vat": "ʇɐΛ ןɐɔıɯǝɥƆ",
|
||||
"create.recipe.coking": "buıʞoƆ",
|
||||
"create.recipe.distillation": "uoıʇɐןןıʇsıᗡ",
|
||||
"create.recipe.hot_blast": "buıʇsɐןᗺ ɹıⱯ",
|
||||
"create.recipe.industrial_blasting": "buıʇsɐןᗺ ןɐıɹʇsnpuI",
|
||||
"create.recipe.polarizing": "buızıɹɐןoԀ",
|
||||
"create.recipe.winding": "buıpuıM",
|
||||
"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",
|
||||
@@ -881,7 +891,7 @@
|
||||
"tfmg.engine.signal": "%s :ןɐubıS",
|
||||
"tfmg.engine.speed_efficiency": "%s :ʎɔuǝıɔıɟɟƎ pǝǝdS",
|
||||
"tfmg.engine.torque": "%s :ǝnbɹo⟘",
|
||||
"tfmg.engine.type.boxer": "ɹǝxoᗺ",
|
||||
"tfmg.engine.type.engine_boxer": "ɹǝxoᗺ",
|
||||
"tfmg.engine.type.engine_i": "I",
|
||||
"tfmg.engine.type.engine_u": "∩",
|
||||
"tfmg.engine.type.engine_v": "Λ",
|
||||
@@ -935,12 +945,12 @@
|
||||
"tfmg.goggles.engine.turbines_missing": "buıssıW sǝuıqɹn⟘",
|
||||
"tfmg.goggles.engine.type": "%s :ǝdʎ⟘",
|
||||
"tfmg.goggles.engine.unfinished": "pǝɥsıuıɟu∩ ǝuıbuƎ",
|
||||
"tfmg.goggles.fluid_storage": ":ǝbɐɹoʇS pınןℲ",
|
||||
"tfmg.goggles.gauge.value": ":ǝbɐʇןoΛ pǝɹnsɐǝW ",
|
||||
"tfmg.goggles.generator.production": "ʇ/ǝɟ %1$s :uoıʇɔnpoɹԀ ʎbɹǝuƎ",
|
||||
"tfmg.goggles.heat_status": " :snʇɐʇS ʇɐǝH",
|
||||
"tfmg.goggles.heated": "pǝʇɐǝH",
|
||||
"tfmg.goggles.invalid_machine": "pıןɐʌuI ǝuıɥɔɐW",
|
||||
"tfmg.goggles.item_storage": ":ǝbɐɹoʇS ɯǝʇI",
|
||||
"tfmg.goggles.item_storage_empty": "*ʎʇdɯƎ*",
|
||||
"tfmg.goggles.machine_input.info": "oɟuI ʇnduI ǝuıɥɔɐW",
|
||||
"tfmg.goggles.machine_input.no_rot": "¡pǝpıʌoɹԀ uoıʇɐʇoᴚ oN",
|
||||
@@ -973,21 +983,21 @@
|
||||
"tfmg.goggles.voltmeter.mode.current": "ʇuǝɹɹnƆ",
|
||||
"tfmg.goggles.voltmeter.mode.fallback": "ʞɔɐqןןɐℲ",
|
||||
"tfmg.goggles.voltmeter.mode.high_voltage": ")ɥbıH( ǝbɐʇןoΛ",
|
||||
"tfmg.goggles.voltmeter.mode.net_power_gen": "uoıʇɐɹǝuǝ⅁ ɹǝʍoԀ ʞɹoʍʇǝN",
|
||||
"tfmg.goggles.voltmeter.mode.net_power_use": "ǝbɐs∩ ɹǝʍoԀ ʞɹoʍʇǝN",
|
||||
"tfmg.goggles.voltmeter.mode.network_power_generation": "uoıʇɐɹǝuǝ⅁ ɹǝʍoԀ ʞɹoʍʇǝN",
|
||||
"tfmg.goggles.voltmeter.mode.network_power_use": "ǝbɐs∩ ɹǝʍoԀ ʞɹoʍʇǝN",
|
||||
"tfmg.goggles.voltmeter.mode.power": "ɹǝʍoԀ",
|
||||
"tfmg.goggles.voltmeter.mode.resistance": "ǝɔuɐʇsısǝᴚ",
|
||||
"tfmg.goggles.voltmeter.mode.voltage": "ǝbɐʇןoΛ",
|
||||
"tfmg.goggles.voltmeter.range": "%1$s :ǝbuɐᴚ ",
|
||||
"tfmg.goggles.winding_machine.progress": " :ssǝɹboɹԀ",
|
||||
"tfmg.goggles.winding_machine.turns": "%s :ʇɟǝꞀ suɹn⟘",
|
||||
"tfmg.goggles.winding_machine.turns": "%1$ :ʇɟǝꞀ suɹn⟘",
|
||||
"tfmg.goggles.zero": "pıןɐʌuI ǝuıɥɔɐW",
|
||||
"tfmg.keyinfo.custom_button": "uoʇʇnᗺ ɯoʇsnƆ ɹǝןןoɹʇuoƆ ǝuıbuƎ",
|
||||
"tfmg.keyinfo.engine_start": "ǝuıbuƎ ʇɹɐʇS",
|
||||
"tfmg.keyinfo.transmission_shift_down": "uʍoᗡ ʇɟıɥS uoıssıɯsuɐɹ⟘",
|
||||
"tfmg.keyinfo.transmission_shift_up": "d∩ ʇɟıɥS uoıssıɯsuɐɹ⟘",
|
||||
"tfmg.multimeter.additional_values": ":sǝnןɐΛ ןɐuoıʇıppⱯ",
|
||||
"tfmg.multimeter.charge": "%s :ǝbɹɐɥƆ",
|
||||
"tfmg.multimeter.charge": " :ǝbɹɐɥƆ",
|
||||
"tfmg.multimeter.energy_stored": " :pǝɹoʇS ʎbɹǝuƎ ",
|
||||
"tfmg.multimeter.energy_usage": " :ǝbɐs∩ ʎbɹǝuƎ ",
|
||||
"tfmg.multimeter.group": "%s :dnoɹ⅁ ",
|
||||
@@ -1132,21 +1142,11 @@
|
||||
"tfmg.ponder.valve_pipe.text_4": "uoıʇɐʇoɹ ʇnduı ǝɥʇ buısɹǝʌǝɹ ʎq uıɐbɐ pǝsoןɔ ǝq uɐɔ ʇI",
|
||||
"tfmg.pumpjack.header": ":oɟuI ʞɔɐظdɯnԀ",
|
||||
"tfmg.pumpjack_deposit_amount": "sʇǝʞɔnᗺ %1$s",
|
||||
"tfmg.recipe.advanced_distillation": "uoıʇɐןןıʇsıᗡ pǝɔuɐʌpⱯ",
|
||||
"tfmg.recipe.assembly.winding": "ןoodS ɐ puıM",
|
||||
"tfmg.recipe.casting": "buıʇsɐƆ",
|
||||
"tfmg.recipe.chemical_vat": "ʇɐΛ ןɐɔıɯǝɥƆ",
|
||||
"tfmg.recipe.coking": "buıʞoƆ",
|
||||
"tfmg.recipe.distillation": "uoıʇɐןןıʇsıᗡ",
|
||||
"tfmg.recipe.hot_blast": "buıʇsɐןᗺ ɹıⱯ",
|
||||
"tfmg.recipe.industrial_blasting": "buıʇsɐןᗺ ןɐıɹʇsnpuI",
|
||||
"tfmg.recipe.polarizing": "buızıɹɐןoԀ",
|
||||
"tfmg.recipe.winding": "buıpuıM",
|
||||
"tfmg.resistor.allowed_voltage": "pǝʍoןןⱯ ǝbɐʇןoΛ ɟo ǝbɐʇuǝɔɹǝԀ",
|
||||
"tfmg.subtitle.diesel_engine_sounds": "spunoS ǝuıbuƎ ןǝsǝıᗡ",
|
||||
"tfmg.subtitle.engine_sounds": "spunoS ǝuıbuƎ",
|
||||
"tfmg.surface_scanner.header": "ɹǝuuɐɔS ǝɔɐɟɹnS",
|
||||
"tfmg.tooltip.coils": "%1$s :suɹn⟘",
|
||||
"tfmg.tooltip.coils": " :suɹn⟘",
|
||||
"tfmg.tooltip.cylinder": ":sןǝnℲ pǝʇɹoddnS",
|
||||
"tfmg.tooltip.fluid_item": "%1$s :ʇunoɯⱯ pınןℲ",
|
||||
"tfmg.tooltip.fuse": "%1$s :buıʇɐᴚ",
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
"block.tfmg.aluminum_frame": "Aluminum Frame",
|
||||
"block.tfmg.aluminum_ladder": "Aluminum Ladder",
|
||||
"block.tfmg.aluminum_lamp": "Aluminum Lamp",
|
||||
"block.tfmg.aluminum_lamp.tooltip.behaviour1": "Glows relative to the amount of power it's receiving",
|
||||
"block.tfmg.aluminum_lamp.tooltip.behaviour1": "Glows relative to the amount of power its receiving",
|
||||
"block.tfmg.aluminum_lamp.tooltip.behaviour2": "Changes color to the color of the light when glowing",
|
||||
"block.tfmg.aluminum_lamp.tooltip.condition1": "When provided with power",
|
||||
"block.tfmg.aluminum_lamp.tooltip.condition2": "When interacted with a dye",
|
||||
@@ -43,7 +43,7 @@
|
||||
"block.tfmg.blast_furnace_reinforcement": "Blast Furnace Reinforcement",
|
||||
"block.tfmg.blast_furnace_reinforcement_wall": "Blast Furnace Reinforcement Wall",
|
||||
"block.tfmg.blast_stove": "Blast Stove",
|
||||
"block.tfmg.blast_stove.tooltip.behaviour1": "When 3 blast stoves are placed on top of each other (or in a 3x2 shape) the smallest version of a blast stove is created, to add further internal storage you can add more stove blocks on top which is generally recommended. A Blast Stove requires 2 things to be pumped in. Air, from the side of the bottom block and Creosote or Furnace gas from the bottom. Carbon dioxide must be pumped out from the side of the bottom block and finally heated air must be pumped out from the machine's top.",
|
||||
"block.tfmg.blast_stove.tooltip.behaviour1": "When 3 blast stoves are placed on top of eachother (or in a 3x2 shape) the smallest version of a blast stove is created, to add further internal storage you can add more stove blocks on top which is generally recommended. A Blast Stove requires 2 things to be pumped in. Air, from the side of the bottom block and Creosote or Furnace gas from the bottom. Carbon dioxide must be pumped out from the side of the bottom block and finally heated air must be pumped out from the machines top.",
|
||||
"block.tfmg.blast_stove.tooltip.summary": "Heats Air",
|
||||
"block.tfmg.blue_caution_block": "Blue Caution Block",
|
||||
"block.tfmg.blue_concrete": "Blue Concrete",
|
||||
@@ -89,14 +89,14 @@
|
||||
"block.tfmg.cast_iron_smart_fluid_pipe": "Cast Iron Smart Fluid Pipe",
|
||||
"block.tfmg.cast_iron_truss": "Cast Iron Truss",
|
||||
"block.tfmg.casting_basin": "Casting Basin",
|
||||
"block.tfmg.casting_basin.tooltip.behaviour1": "Creates steel ingots which must have a sufficient output as the internal storage of the basin is limited",
|
||||
"block.tfmg.casting_basin.tooltip.behaviour1": "Creates steel ingots which must have a sufficent output as the internal storage of the basin is limited",
|
||||
"block.tfmg.casting_basin.tooltip.condition1": "When supplied with molten steel",
|
||||
"block.tfmg.casting_basin.tooltip.summary": "Casts ingots",
|
||||
"block.tfmg.cement": "Cement",
|
||||
"block.tfmg.cinder_block": "Cinder Block",
|
||||
"block.tfmg.cinderflour_block": "Cinderflour Block",
|
||||
"block.tfmg.circular_light": "Circular Lamp",
|
||||
"block.tfmg.circular_light.tooltip.behaviour1": "Glows relative to the amount of power it's receiving",
|
||||
"block.tfmg.circular_light.tooltip.behaviour1": "Glows relative to the amount of power its receiving",
|
||||
"block.tfmg.circular_light.tooltip.behaviour2": "Changes color to the color of the light when glowing",
|
||||
"block.tfmg.circular_light.tooltip.condition1": "When provided with power",
|
||||
"block.tfmg.circular_light.tooltip.condition2": "When interacted with a dye",
|
||||
@@ -118,7 +118,7 @@
|
||||
"block.tfmg.constantan_ladder": "Constantan Ladder",
|
||||
"block.tfmg.constantan_truss": "Constantan Truss",
|
||||
"block.tfmg.converter": "Converter",
|
||||
"block.tfmg.converter.tooltip.behaviour1": "The block has a TFMG input (copper) and an FE one (redstone) by default it converts TFMG energy to FE with a wrench you can make the converter convert FE to TFMG energy. Voltage of the tfmg output may be adjusted by opening a menu on the side of the Converter",
|
||||
"block.tfmg.converter.tooltip.behaviour1": "The block has a TFMG input (copper) and an FE one (redstone) by default it converts TFMG energy to FE with a wrench you can make the converter convert FE to TFMG energy. Voltage of the tfmg output may be abjusted by opening a menu on the side of the Converter",
|
||||
"block.tfmg.converter.tooltip.summary": "Converts FE to TFMG energy and vice versa",
|
||||
"block.tfmg.cooling_fluid": "Cooling Fluid",
|
||||
"block.tfmg.copper_cable_hub": "Copper Cable Hub",
|
||||
@@ -187,7 +187,7 @@
|
||||
"block.tfmg.factory_floor": "Factory Floor",
|
||||
"block.tfmg.firebox": "Firebox",
|
||||
"block.tfmg.firebox.tooltip.behaviour1": "Heats machinery above it acting as a blaze burner",
|
||||
"block.tfmg.firebox.tooltip.condition1": "When filled with lpg, butane, diesel, propane, naphtha or kerosene with carbon dioxide being pumped out",
|
||||
"block.tfmg.firebox.tooltip.condition1": "When filled with lpg, butane, diesel, propane, naphta or kerosene with carbon dioxide being pumped out",
|
||||
"block.tfmg.firebox.tooltip.summary": "Heats machinery when fuel is pumped inside",
|
||||
"block.tfmg.fireclay": "Fireclay",
|
||||
"block.tfmg.fireclay.tooltip.summary": "Spawns in underground veins located in the overworld",
|
||||
@@ -248,7 +248,7 @@
|
||||
"block.tfmg.kerosene": "Kerosene",
|
||||
"block.tfmg.large_aluminum_cogwheel": "Large Aluminum Cogwheel",
|
||||
"block.tfmg.large_engine": "Large Engine",
|
||||
"block.tfmg.large_engine.tooltip.behaviour1": "To function it requires air and fuel to be pumped in (Diesel, Kerosene, Naphtha, Furnace Gas) and co2 to be pumped out (needs an exhaust) to generate rotation (a shaft needs to be attached similar to a steam engine)",
|
||||
"block.tfmg.large_engine.tooltip.behaviour1": "To function it requires air and fuel to be pumped in (Diesel, Kerosene, Naphta, Furnace Gas) and co2 to be pumped out (needs an exhaust) to generate rotation (a shaft needs to be attached similiar to a steam engine)",
|
||||
"block.tfmg.large_engine.tooltip.summary": "Creates rotation from less refined fuels",
|
||||
"block.tfmg.large_pumpjack_hammer_connector": "Large Pumpjack Hammer Connector",
|
||||
"block.tfmg.large_pumpjack_hammer_head": "Large Pumpjack Hammer Head",
|
||||
@@ -273,7 +273,7 @@
|
||||
"block.tfmg.light_blue_rebar_concrete_stairs": "Light Blue Rebar Concrete Stairs",
|
||||
"block.tfmg.light_blue_rebar_concrete_wall": "Light Blue Rebar Concrete Wall",
|
||||
"block.tfmg.light_bulb": "Light Bulb",
|
||||
"block.tfmg.light_bulb.tooltip.behaviour1": "Glows relative to the amount of power it's receiving",
|
||||
"block.tfmg.light_bulb.tooltip.behaviour1": "Glows relative to the amount of power its receiving",
|
||||
"block.tfmg.light_bulb.tooltip.behaviour2": "Changes color to the color of the light when glowing",
|
||||
"block.tfmg.light_bulb.tooltip.condition1": "When provided with power",
|
||||
"block.tfmg.light_bulb.tooltip.condition2": "When interacted with a dye",
|
||||
@@ -316,7 +316,7 @@
|
||||
"block.tfmg.magenta_rebar_concrete_wall": "Magenta Rebar Concrete Wall",
|
||||
"block.tfmg.metal_smokestack": "Metal Smokestack",
|
||||
"block.tfmg.modern_light": "Light Panel",
|
||||
"block.tfmg.modern_light.tooltip.behaviour1": "Glows relative to the amount of power it's receiving",
|
||||
"block.tfmg.modern_light.tooltip.behaviour1": "Glows relative to the amount of power its receiving",
|
||||
"block.tfmg.modern_light.tooltip.behaviour2": "Changes color to the color of the light when glowing",
|
||||
"block.tfmg.modern_light.tooltip.condition1": "When provided with power",
|
||||
"block.tfmg.modern_light.tooltip.condition2": "When interacted with a dye",
|
||||
@@ -328,7 +328,7 @@
|
||||
"block.tfmg.napalm_bomb": "Napalm Bomb",
|
||||
"block.tfmg.naphtha": "Naphtha",
|
||||
"block.tfmg.neon_tube": "Neon Tube",
|
||||
"block.tfmg.neon_tube.tooltip.behaviour1": "Glows relative to the amount of power it's receiving",
|
||||
"block.tfmg.neon_tube.tooltip.behaviour1": "Glows relative to the amount of power its receiving",
|
||||
"block.tfmg.neon_tube.tooltip.behaviour2": "Changes color to the color of the light when glowing",
|
||||
"block.tfmg.neon_tube.tooltip.behaviour3": "Changes shape providing a space to power the tube",
|
||||
"block.tfmg.neon_tube.tooltip.condition1": "When provided with power",
|
||||
@@ -369,7 +369,7 @@
|
||||
"block.tfmg.polarizer": "Polarizer",
|
||||
"block.tfmg.polarizer.tooltip.behaviour1": "Will turn a _Magnetic Ingot_ into a _Magnet_ when right clicked with a _Magnetic Ingot_ after a bit of time",
|
||||
"block.tfmg.polarizer.tooltip.condition1": "When powered",
|
||||
"block.tfmg.polarizer.tooltip.summary": "Makes Magnets out of Magnetic Ingots",
|
||||
"block.tfmg.polarizer.tooltip.summary": "Makes Magnetis out of Magnetic Ingots",
|
||||
"block.tfmg.polished_cut_bauxite": "Polished Cut Bauxite",
|
||||
"block.tfmg.polished_cut_bauxite_slab": "Polished Cut Bauxite Slab",
|
||||
"block.tfmg.polished_cut_bauxite_stairs": "Polished Cut Bauxite Stairs",
|
||||
@@ -379,7 +379,7 @@
|
||||
"block.tfmg.polished_cut_galena_stairs": "Polished Cut Galena Stairs",
|
||||
"block.tfmg.polished_cut_galena_wall": "Polished Cut Galena Wall",
|
||||
"block.tfmg.potentiometer": "Potentiometer",
|
||||
"block.tfmg.potentiometer.tooltip.behaviour1": "Based on what percentage you set, this machine only lets through a certain amount of voltage outputted by its output (its output can be seen by the arrow like pattern on its top pointing to it)",
|
||||
"block.tfmg.potentiometer.tooltip.behaviour1": "Based on what pecentage you set, this machine only lets through a certain amount of voltage outputted by its output (its output can be seen by the arrow like pattern on its top pointing to it)",
|
||||
"block.tfmg.potentiometer.tooltip.summary": "Lets through a only a set amount of voltage",
|
||||
"block.tfmg.pumpjack_base": "Pumpjack Base",
|
||||
"block.tfmg.pumpjack_crank": "Pumpjack Crank",
|
||||
@@ -422,7 +422,7 @@
|
||||
"block.tfmg.regular_engine": "Regular Engine",
|
||||
"block.tfmg.reinforced_fireproof_bricks": "Reinforced Fireproof Bricks",
|
||||
"block.tfmg.resistor": "Resistor",
|
||||
"block.tfmg.resistor.tooltip.behaviour1": "Adds the resistors respective resistance (to see how to change its resistance look at the winding machine's tooltip) to whatever electric group its target block is in",
|
||||
"block.tfmg.resistor.tooltip.behaviour1": "Adds the resistors respective resistance (to see how to change its resistance look at the winding machines tooltip) to whatever electric group its target block is in",
|
||||
"block.tfmg.resistor.tooltip.condition1": "When placed on a block within a group",
|
||||
"block.tfmg.resistor.tooltip.summary": "Adds resistance to a network",
|
||||
"block.tfmg.rotor": "Rotor",
|
||||
@@ -430,7 +430,7 @@
|
||||
"block.tfmg.rusted_blast_furnace_reinforcement_wall": "Rusted Blast Furnace Reinforcement Wall",
|
||||
"block.tfmg.segmented_display": "Segmented Display",
|
||||
"block.tfmg.simple_large_engine": "Simple Large Engine",
|
||||
"block.tfmg.simple_large_engine.tooltip.behaviour1": "To function it requires air and fuel to be pumped in (Diesel, Kerosene, Naphtha, Furnace Gas) and co2 to be pumped out (needs an exhaust) to generate rotation (a shaft needs to be attached similar to a steam engine)",
|
||||
"block.tfmg.simple_large_engine.tooltip.behaviour1": "To function it requires air and fuel to be pumped in (Diesel, Kerosene, Naphta, Furnace Gas) and co2 to be pumped out (needs an exhaust) to generate rotation (a shaft needs to be attached similiar to a steam engine)",
|
||||
"block.tfmg.simple_large_engine.tooltip.summary": "Creates rotation (less effectively than its regular counterpart) from less refined fuels",
|
||||
"block.tfmg.slag_block": "Block of Slag",
|
||||
"block.tfmg.slag_bricks": "Slag Bricks",
|
||||
@@ -473,7 +473,7 @@
|
||||
"block.tfmg.sulfur": "Sulfur",
|
||||
"block.tfmg.sulfuric_acid": "Sulfuric Acid",
|
||||
"block.tfmg.surface_scanner": "Surface Scanner",
|
||||
"block.tfmg.surface_scanner.tooltip.behaviour1": "The machine's top 5x5 grid shows the surrounding chunks with its chunk in the center, the chunks that have at least 1 oil deposit in them should glow. If the surface does not start to glow within a few seconds then it is likely that there are no oil deposits nearby. Chunks can be seen ingame with F3+G",
|
||||
"block.tfmg.surface_scanner.tooltip.behaviour1": "The machines top 5x5 grid shows the surrounding chunks with its chunk in the center, the chunks that have atleast 1 oil deposit in them should glow. If the surface does not start to glow within a few seconds then it is likely that there are no oil deposits nearby. Chunks can be seen ingame with F3+G",
|
||||
"block.tfmg.surface_scanner.tooltip.condition1": "When powered from below with a Machine Input",
|
||||
"block.tfmg.surface_scanner.tooltip.summary": "Helps to find chunks with oil",
|
||||
"block.tfmg.traffic_light": "Traffic Light",
|
||||
@@ -509,7 +509,17 @@
|
||||
"block.tfmg.yellow_rebar_concrete_wall": "Yellow Rebar Concrete Wall",
|
||||
"block.tfmg.zinc_frame": "Zinc Frame",
|
||||
"block.tfmg.zinc_truss": "Zinc Truss",
|
||||
"create.goggles.fluid_storage": "Fluid Storage:",
|
||||
"create.goggles.item_storage": "Item Storage:",
|
||||
"create.recipe.advanced_distillation": "Advanced Distillation",
|
||||
"create.recipe.assembly.winding": "Wind a Spool",
|
||||
"create.recipe.casting": "Casting",
|
||||
"create.recipe.chemical_vat": "Chemical Vat",
|
||||
"create.recipe.coking": "Coking",
|
||||
"create.recipe.distillation": "Distillation",
|
||||
"create.recipe.hot_blast": "Air Blasting",
|
||||
"create.recipe.industrial_blasting": "Industrial Blasting",
|
||||
"create.recipe.polarizing": "Polarizing",
|
||||
"create.recipe.winding": "Winding",
|
||||
"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",
|
||||
@@ -752,8 +762,8 @@
|
||||
"item.tfmg.oil_can": "Oil Can",
|
||||
"item.tfmg.oil_can.tooltip.behaviour1": "Fills the can with lubrication oil",
|
||||
"item.tfmg.oil_can.tooltip.behaviour2": "Fills the engine with lubrication oil",
|
||||
"item.tfmg.oil_can.tooltip.condition1": "When R-Clicking a tank with lubrication oil inside",
|
||||
"item.tfmg.oil_can.tooltip.condition2": "When R-Clicking an engine",
|
||||
"item.tfmg.oil_can.tooltip.condition1": "When Right Clicking a tank with lubrication oil inside",
|
||||
"item.tfmg.oil_can.tooltip.condition2": "When Right Clicking an engine",
|
||||
"item.tfmg.oil_can.tooltip.summary": "Adds lubrication oil to engines",
|
||||
"item.tfmg.oil_hammer": "Oil Hammer",
|
||||
"item.tfmg.orange_multimeter": "Orange Multimeter",
|
||||
@@ -799,7 +809,7 @@
|
||||
"item.tfmg.rubber_sheet": "Rubber Sheet",
|
||||
"item.tfmg.screw": "Screws",
|
||||
"item.tfmg.screwdriver": "Screwdriver",
|
||||
"item.tfmg.screwdriver.tooltip.behaviour1": "Locks _Pipe_ in its current rotation allowing for _Pipes_ to be placed next to each other _Without Connecting_",
|
||||
"item.tfmg.screwdriver.tooltip.behaviour1": "Locks _Pipe_ in its current rotation allowing for _Pipes_ to be placed next to eachother _Without Connecting_",
|
||||
"item.tfmg.screwdriver.tooltip.condition1": "When R-Clicking pipe",
|
||||
"item.tfmg.screwdriver.tooltip.summary": "Can lock pipes in place",
|
||||
"item.tfmg.silicon_ingot": "Silicon Ingot",
|
||||
@@ -881,7 +891,7 @@
|
||||
"tfmg.engine.signal": "Signal: %s",
|
||||
"tfmg.engine.speed_efficiency": "Speed Efficiency: %s",
|
||||
"tfmg.engine.torque": "Torque: %s",
|
||||
"tfmg.engine.type.boxer": "Boxer",
|
||||
"tfmg.engine.type.engine_boxer": "Boxer",
|
||||
"tfmg.engine.type.engine_i": "I",
|
||||
"tfmg.engine.type.engine_u": "U",
|
||||
"tfmg.engine.type.engine_v": "V",
|
||||
@@ -935,12 +945,12 @@
|
||||
"tfmg.goggles.engine.turbines_missing": "Turbines Missing",
|
||||
"tfmg.goggles.engine.type": "Type: %s",
|
||||
"tfmg.goggles.engine.unfinished": "Engine Unfinished",
|
||||
"tfmg.goggles.fluid_storage": "Fluid Storage:",
|
||||
"tfmg.goggles.gauge.value": " Measured Voltage:",
|
||||
"tfmg.goggles.generator.production": "Energy Production: %1$s fe/t",
|
||||
"tfmg.goggles.heat_status": "Heat Status: ",
|
||||
"tfmg.goggles.heated": "Heated",
|
||||
"tfmg.goggles.invalid_machine": "Machine Invalid",
|
||||
"tfmg.goggles.item_storage": "Item Storage:",
|
||||
"tfmg.goggles.item_storage_empty": "*Empty*",
|
||||
"tfmg.goggles.machine_input.info": "Machine Input Info",
|
||||
"tfmg.goggles.machine_input.no_rot": "No Rotation Provided!",
|
||||
@@ -973,21 +983,21 @@
|
||||
"tfmg.goggles.voltmeter.mode.current": "Current",
|
||||
"tfmg.goggles.voltmeter.mode.fallback": "Fallback",
|
||||
"tfmg.goggles.voltmeter.mode.high_voltage": "Voltage (High)",
|
||||
"tfmg.goggles.voltmeter.mode.net_power_gen": "Network Power Generation",
|
||||
"tfmg.goggles.voltmeter.mode.net_power_use": "Network Power Usage",
|
||||
"tfmg.goggles.voltmeter.mode.network_power_generation": "Network Power Generation",
|
||||
"tfmg.goggles.voltmeter.mode.network_power_use": "Network Power Usage",
|
||||
"tfmg.goggles.voltmeter.mode.power": "Power",
|
||||
"tfmg.goggles.voltmeter.mode.resistance": "Resistance",
|
||||
"tfmg.goggles.voltmeter.mode.voltage": "Voltage",
|
||||
"tfmg.goggles.voltmeter.range": " Range: %1$s",
|
||||
"tfmg.goggles.winding_machine.progress": "Progress: ",
|
||||
"tfmg.goggles.winding_machine.turns": "Turns Left: %s",
|
||||
"tfmg.goggles.winding_machine.turns": "Turns Left: %1$",
|
||||
"tfmg.goggles.zero": "Machine Invalid",
|
||||
"tfmg.keyinfo.custom_button": "Engine Controller Custom Button",
|
||||
"tfmg.keyinfo.engine_start": "Start Engine",
|
||||
"tfmg.keyinfo.transmission_shift_down": "Transmission Shift Down",
|
||||
"tfmg.keyinfo.transmission_shift_up": "Transmission Shift Up",
|
||||
"tfmg.multimeter.additional_values": "Additional Values:",
|
||||
"tfmg.multimeter.charge": "Charge: %s",
|
||||
"tfmg.multimeter.charge": "Charge: ",
|
||||
"tfmg.multimeter.energy_stored": " Energy Stored: ",
|
||||
"tfmg.multimeter.energy_usage": " Energy Usage: ",
|
||||
"tfmg.multimeter.group": " Group: %s",
|
||||
@@ -1087,7 +1097,7 @@
|
||||
"tfmg.ponder.mechanical_pump_flow.text_2": "Their arrow indicates the direction of flow",
|
||||
"tfmg.ponder.mechanical_pump_flow.text_3": "The network behind is now pulling fluids...",
|
||||
"tfmg.ponder.mechanical_pump_flow.text_4": "...while the network in front is transferring it outward",
|
||||
"tfmg.ponder.mechanical_pump_flow.text_5": "The pump's direction is unaffected by the input rotation",
|
||||
"tfmg.ponder.mechanical_pump_flow.text_5": "The pumps direction is unaffected by the input rotation",
|
||||
"tfmg.ponder.mechanical_pump_flow.text_6": "Instead, a Wrench can be used to reverse the direction",
|
||||
"tfmg.ponder.mechanical_pump_speed.header": "Throughput of Mechanical Pumps",
|
||||
"tfmg.ponder.mechanical_pump_speed.text_1": "Regardless of speed, Mechanical Pumps affect pipes connected up to 16 blocks away",
|
||||
@@ -1132,21 +1142,11 @@
|
||||
"tfmg.ponder.valve_pipe.text_4": "It can be closed again by reversing the input rotation",
|
||||
"tfmg.pumpjack.header": "Pumpjack Info:",
|
||||
"tfmg.pumpjack_deposit_amount": "%1$s Buckets",
|
||||
"tfmg.recipe.advanced_distillation": "Advanced Distillation",
|
||||
"tfmg.recipe.assembly.winding": "Wind a Spool",
|
||||
"tfmg.recipe.casting": "Casting",
|
||||
"tfmg.recipe.chemical_vat": "Chemical Vat",
|
||||
"tfmg.recipe.coking": "Coking",
|
||||
"tfmg.recipe.distillation": "Distillation",
|
||||
"tfmg.recipe.hot_blast": "Air Blasting",
|
||||
"tfmg.recipe.industrial_blasting": "Industrial Blasting",
|
||||
"tfmg.recipe.polarizing": "Polarizing",
|
||||
"tfmg.recipe.winding": "Winding",
|
||||
"tfmg.resistor.allowed_voltage": "Percentage of Voltage Allowed",
|
||||
"tfmg.subtitle.diesel_engine_sounds": "Diesel Engine Sounds",
|
||||
"tfmg.subtitle.engine_sounds": "Engine Sounds",
|
||||
"tfmg.surface_scanner.header": "Surface Scanner",
|
||||
"tfmg.tooltip.coils": "Turns: %1$s",
|
||||
"tfmg.tooltip.coils": "Turns: ",
|
||||
"tfmg.tooltip.cylinder": "Supported Fuels:",
|
||||
"tfmg.tooltip.fluid_item": "Fluid Amount: %1$s",
|
||||
"tfmg.tooltip.fuse": "Rating: %1$s",
|
||||
|
||||
@@ -177,6 +177,12 @@
|
||||
"tfmg:cyan_caution_block",
|
||||
"tfmg:purple_caution_block",
|
||||
"tfmg:orange_caution_block",
|
||||
"tfmg:rebar_block",
|
||||
"tfmg:rebar_floor",
|
||||
"tfmg:rebar_wall",
|
||||
"tfmg:rebar_pile",
|
||||
"tfmg:rebar_stairs",
|
||||
"tfmg:rebar_pillar",
|
||||
"tfmg:concrete_wall",
|
||||
"tfmg:concrete",
|
||||
"tfmg:concrete_stairs",
|
||||
|
||||
@@ -9,6 +9,12 @@
|
||||
"tfmg:lead_block",
|
||||
"tfmg:constantan_block",
|
||||
"tfmg:nickel_block",
|
||||
"tfmg:lithium_block"
|
||||
"tfmg:lithium_block",
|
||||
"tfmg:rebar_block",
|
||||
"tfmg:rebar_floor",
|
||||
"tfmg:rebar_wall",
|
||||
"tfmg:rebar_pile",
|
||||
"tfmg:rebar_stairs",
|
||||
"tfmg:rebar_pillar"
|
||||
]
|
||||
}
|
||||
@@ -1,32 +0,0 @@
|
||||
{
|
||||
"parent": "minecraft:recipes/root",
|
||||
"criteria": {
|
||||
"has_item": {
|
||||
"conditions": {
|
||||
"items": [
|
||||
{
|
||||
"items": "tfmg:empty_spool"
|
||||
}
|
||||
]
|
||||
},
|
||||
"trigger": "minecraft:inventory_changed"
|
||||
},
|
||||
"has_the_recipe": {
|
||||
"conditions": {
|
||||
"recipe": "tfmg:crafting/materials/aluminum_spool"
|
||||
},
|
||||
"trigger": "minecraft:recipe_unlocked"
|
||||
}
|
||||
},
|
||||
"requirements": [
|
||||
[
|
||||
"has_the_recipe",
|
||||
"has_item"
|
||||
]
|
||||
],
|
||||
"rewards": {
|
||||
"recipes": [
|
||||
"tfmg:crafting/materials/aluminum_spool"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -1,32 +0,0 @@
|
||||
{
|
||||
"parent": "minecraft:recipes/root",
|
||||
"criteria": {
|
||||
"has_item": {
|
||||
"conditions": {
|
||||
"items": [
|
||||
{
|
||||
"items": "tfmg:empty_spool"
|
||||
}
|
||||
]
|
||||
},
|
||||
"trigger": "minecraft:inventory_changed"
|
||||
},
|
||||
"has_the_recipe": {
|
||||
"conditions": {
|
||||
"recipe": "tfmg:crafting/materials/constantan_spool"
|
||||
},
|
||||
"trigger": "minecraft:recipe_unlocked"
|
||||
}
|
||||
},
|
||||
"requirements": [
|
||||
[
|
||||
"has_the_recipe",
|
||||
"has_item"
|
||||
]
|
||||
],
|
||||
"rewards": {
|
||||
"recipes": [
|
||||
"tfmg:crafting/materials/constantan_spool"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -1,32 +0,0 @@
|
||||
{
|
||||
"parent": "minecraft:recipes/root",
|
||||
"criteria": {
|
||||
"has_item": {
|
||||
"conditions": {
|
||||
"items": [
|
||||
{
|
||||
"items": "tfmg:empty_spool"
|
||||
}
|
||||
]
|
||||
},
|
||||
"trigger": "minecraft:inventory_changed"
|
||||
},
|
||||
"has_the_recipe": {
|
||||
"conditions": {
|
||||
"recipe": "tfmg:crafting/materials/copper_spool"
|
||||
},
|
||||
"trigger": "minecraft:recipe_unlocked"
|
||||
}
|
||||
},
|
||||
"requirements": [
|
||||
[
|
||||
"has_the_recipe",
|
||||
"has_item"
|
||||
]
|
||||
],
|
||||
"rewards": {
|
||||
"recipes": [
|
||||
"tfmg:crafting/materials/copper_spool"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -63,7 +63,7 @@
|
||||
"item": "tfmg:unfinished_potentiometer"
|
||||
},
|
||||
{
|
||||
"item": "tfmg:copper_wire"
|
||||
"tag": "c:wires/copper"
|
||||
}
|
||||
],
|
||||
"results": [
|
||||
|
||||
@@ -24,6 +24,7 @@ import com.drmangotea.tfmg.content.machinery.misc.firebox.FireboxBlockEntity;
|
||||
import com.drmangotea.tfmg.content.machinery.misc.flarestack.FlarestackBlockEntity;
|
||||
import com.drmangotea.tfmg.content.machinery.misc.gas_lamp.GasLampBlockEntity;
|
||||
import com.drmangotea.tfmg.content.machinery.misc.smokestack.SmokestackBlockEntity;
|
||||
import com.drmangotea.tfmg.content.machinery.misc.winding_machine.WindingMachineBlockEntity;
|
||||
import com.drmangotea.tfmg.content.machinery.oil_processing.distillation_tower.controller.DistillationControllerBlockEntity;
|
||||
import com.drmangotea.tfmg.content.machinery.oil_processing.distillation_tower.output.DistillationOutputBlockEntity;
|
||||
import com.drmangotea.tfmg.content.machinery.oil_processing.pumpjack.base.PumpjackBaseBlockEntity;
|
||||
@@ -108,6 +109,7 @@ public class TFMGCommonEvents {
|
||||
BlastFurnaceOutputBlockEntity.registerCapabilities(event);
|
||||
CokeOvenBlockEntity.registerCapabilities(event);
|
||||
AirIntakeBlockEntity.registerCapabilities(event);
|
||||
WindingMachineBlockEntity.registerCapabilities(event);
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
|
||||
@@ -47,7 +47,7 @@ public class TFMGTexts {
|
||||
return TFMGLang.translate("goggles.progress", value);
|
||||
}
|
||||
public static LangBuilder turnsLeft(int turns) {
|
||||
return TFMGLang.translate("goggles.winding_machine.turns", TFMGLang.number(turns));
|
||||
return TFMGLang.translate("goggles.winding_machine.turns").add(TFMGLang.text(String.valueOf(turns)));
|
||||
}
|
||||
|
||||
public static LangBuilder invalidMachine() {
|
||||
@@ -79,7 +79,7 @@ public class TFMGTexts {
|
||||
return TFMGLang.translate("multimeter.insufficient_current", TFMGTexts.current(minimum)).style(ChatFormatting.RED);
|
||||
}
|
||||
public static LangBuilder charge(double value) {
|
||||
return TFMGLang.translate("multimeter.charge", percent(value)).style(ChatFormatting.DARK_AQUA);
|
||||
return TFMGLang.translate("multimeter.charge").add(TFMGLang.text(percent(value))).style(ChatFormatting.DARK_AQUA);
|
||||
}
|
||||
public static LangBuilder group(int groupId) {
|
||||
return TFMGLang.translate("multimeter.group", TFMGLang.number(groupId)).color(0xd8db27);
|
||||
@@ -159,9 +159,6 @@ public class TFMGTexts {
|
||||
public static LangBuilder torque(float torque) {
|
||||
return TFMGLang.translate("goggles.engine.torque", TFMGLang.number(torque)).color(0xa36f00);
|
||||
}
|
||||
public static LangBuilder injectionRate(float rate) {
|
||||
return TFMGLang.translate("engine.injection_rate", TFMGLang.number(rate));
|
||||
}
|
||||
public static LangBuilder signal(int signal) {
|
||||
return TFMGLang.translate("goggles.engine.signal", TFMGLang.number(signal)).color(0xfcad03);
|
||||
}
|
||||
|
||||
@@ -38,8 +38,6 @@ public class ElectricBlockValues {
|
||||
|
||||
public int failTimer = 0;
|
||||
|
||||
public List<BlockPos> blocksToPower = new ArrayList<>();
|
||||
|
||||
public ElectricalGroup group = new ElectricalGroup(0);
|
||||
|
||||
public ElectricBlockValues(long pos) {
|
||||
|
||||
@@ -10,18 +10,23 @@ import java.util.Map;
|
||||
|
||||
public class ElectricalNetwork {
|
||||
|
||||
/**
|
||||
* This class manages individual networks
|
||||
*/
|
||||
|
||||
public ElectricalNetwork(long id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
//blocks in the network
|
||||
public List<IElectric> members = new ArrayList<>();
|
||||
|
||||
//network's id
|
||||
public long id;
|
||||
|
||||
public long getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
//adds a new block to the network if it is not in it already
|
||||
public void add(IElectric be) {
|
||||
List<Long> posList = new ArrayList<>();
|
||||
|
||||
@@ -31,28 +36,42 @@ public class ElectricalNetwork {
|
||||
members.add(be);
|
||||
}
|
||||
|
||||
/**
|
||||
* Called when a block is removed or added to the network or when loading chunks the network is in
|
||||
* Sets up blocks in the network
|
||||
*/
|
||||
public void updateNetwork() {
|
||||
|
||||
int maxVoltage = 0;
|
||||
int power = 0;
|
||||
int resistance = 0;
|
||||
int powerGeneration = 0;
|
||||
|
||||
|
||||
Map<Integer, Float> groups = new HashMap<>();
|
||||
|
||||
/**
|
||||
* Phase I:
|
||||
* 1) gives each blocks the networks id
|
||||
* 2) finds the highest voltage generated
|
||||
* 3) counts the resistance and power generation of the network
|
||||
* 4) creates groups
|
||||
*/
|
||||
for (IElectric member : members) {
|
||||
member.getData().notEnoughPower = false;
|
||||
int groupId = member.getData().group.id;
|
||||
|
||||
maxVoltage = Math.max(member.voltageGeneration(), maxVoltage);
|
||||
power += member.powerGeneration();
|
||||
resistance += (int) member.resistance();
|
||||
powerGeneration += member.powerGeneration();
|
||||
if (member.canBeInGroups())
|
||||
groups.put(groupId, groups.containsKey(groupId) ? groups.get(groupId) + member.resistance() : member.resistance());
|
||||
}
|
||||
|
||||
/**
|
||||
* Phase II:
|
||||
* 1) informs blocks about voltage and power change
|
||||
* 2) sets network's resistance
|
||||
* 3) informs blocks about their group's resistance
|
||||
*/
|
||||
List<IElectric> list = new ArrayList<>(members);
|
||||
if (!members.isEmpty()) {
|
||||
|
||||
@@ -72,18 +91,25 @@ public class ElectricalNetwork {
|
||||
member.getData().group.resistance = groups.get(member.getData().group.id);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Phase III:
|
||||
* 1) sets the current of wires
|
||||
* 2) informs subnetworks
|
||||
*/
|
||||
for (IElectric member : members) {
|
||||
member.getData().highestCurrent = getCableCurrent(member);
|
||||
|
||||
member.updateNearbyNetworks(member);
|
||||
|
||||
if (member instanceof VoltageAlteringBlockEntity be) {
|
||||
be.updateInFront();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Phase IV:
|
||||
* 1) stops the network from functioning if it consumes more power than it creates
|
||||
*/
|
||||
handleInsufficientPower();
|
||||
|
||||
}
|
||||
@@ -122,6 +148,8 @@ public class ElectricalNetwork {
|
||||
return current;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public void checkForLoops(BlockPos pos) {
|
||||
|
||||
members.forEach(member -> {
|
||||
|
||||
@@ -21,16 +21,33 @@ import net.neoforged.neoforge.energy.IEnergyStorage;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
* data and actions for electric blocks
|
||||
*/
|
||||
public interface IElectric {
|
||||
|
||||
/**
|
||||
* block's world position as a long
|
||||
*/
|
||||
long getPos();
|
||||
|
||||
/**
|
||||
* world the blocks is in
|
||||
*/
|
||||
LevelAccessor getLevelAccessor();
|
||||
|
||||
/**
|
||||
*
|
||||
* @return true if the block is marked as removed
|
||||
*/
|
||||
default boolean destroyed() {
|
||||
return getData().destroyed();
|
||||
}
|
||||
|
||||
/**
|
||||
* checks if this block is part of a valid network
|
||||
* @return block's network if valid, newly created network for this block otherwise
|
||||
*/
|
||||
default ElectricalNetwork getOrCreateElectricNetwork() {
|
||||
if (getLevelAccessor().getBlockEntity(BlockPos.of(getData().electricalNetworkId)) instanceof IElectric) {
|
||||
return TFMG.NETWORK_MANAGER.getOrCreateNetworkFor((IElectric) getLevelAccessor().getBlockEntity(BlockPos.of(getData().electricalNetworkId)));
|
||||
@@ -41,10 +58,16 @@ public interface IElectric {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* tells the block which sides of it can be attached to the grid
|
||||
*/
|
||||
default boolean hasElectricitySlot(Direction direction) {
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* initialization, called when the block is placed
|
||||
*/
|
||||
default void onPlaced() {
|
||||
|
||||
if (getLevelAccessor() instanceof ServerLevel serverLevel)
|
||||
@@ -67,20 +90,9 @@ public interface IElectric {
|
||||
|
||||
}
|
||||
|
||||
default void onNeighborChanged() {
|
||||
Level level = (Level) getLevelAccessor();
|
||||
for(Direction direction : Direction.values()){
|
||||
IEnergyStorage capability = level.getCapability(Capabilities.EnergyStorage.BLOCK,getBlockPos().relative(direction), direction);
|
||||
|
||||
if(capability==null)
|
||||
continue;
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* manages removal of this block after it is destroyed
|
||||
*/
|
||||
default void onRemoved() {
|
||||
this.getData().destroyed = true;
|
||||
for (Direction d : Direction.values()) {
|
||||
@@ -101,6 +113,9 @@ public interface IElectric {
|
||||
.remove(getData().getId());
|
||||
}
|
||||
|
||||
/**
|
||||
* loads data
|
||||
*/
|
||||
default void readElectricity(CompoundTag compound, boolean clientPacket) {
|
||||
getData().group = new ElectricalGroup(compound.getInt("GroupId"));
|
||||
getData().group.resistance = compound.getFloat("GroupResistance");
|
||||
@@ -108,11 +123,17 @@ public interface IElectric {
|
||||
getData().connectNextTick = true;
|
||||
}
|
||||
|
||||
/**
|
||||
* saves data
|
||||
*/
|
||||
default void writeElectricity(CompoundTag compound, boolean clientPacket) {
|
||||
compound.putInt("GroupId", getData().group.id);
|
||||
compound.putFloat("GroupResistance", getData().group.resistance);
|
||||
}
|
||||
|
||||
/**
|
||||
* handles action that need to happen every tick and checks for scheduled updates
|
||||
*/
|
||||
default void tickElectricity() {
|
||||
if (getData().checkForLoopsNextTick) {
|
||||
getOrCreateElectricNetwork().checkForLoops(getBlockPos());
|
||||
@@ -137,6 +158,9 @@ public interface IElectric {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* handles actions that need to repeat every second
|
||||
*/
|
||||
default void lazyTickElectricity() {
|
||||
if (getData().failTimer >= 4) {
|
||||
this.blockFail();
|
||||
@@ -147,6 +171,9 @@ public interface IElectric {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* WIP, not functional
|
||||
*/
|
||||
default int getMaxVoltage() {
|
||||
return 0;
|
||||
}
|
||||
@@ -155,6 +182,9 @@ public interface IElectric {
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* handles connecting blocks into a network
|
||||
*/
|
||||
default void onConnected() {
|
||||
|
||||
BlockPos pos = BlockPos.of(getPos());
|
||||
@@ -180,10 +210,17 @@ public interface IElectric {
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return the block's world position
|
||||
*/
|
||||
default BlockPos getBlockPos() {
|
||||
return BlockPos.of(getPos());
|
||||
}
|
||||
|
||||
/**
|
||||
* tells blocks when the network doesn't have enough power
|
||||
*/
|
||||
default void updateUnpowered(List<BlockPos> alreadyChecked) {
|
||||
alreadyChecked.add(BlockPos.of(getPos()));
|
||||
updateNextTick();
|
||||
@@ -205,6 +242,9 @@ public interface IElectric {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* the multimeter tooltip
|
||||
*/
|
||||
default boolean makeMultimeterTooltip(List<Component> tooltip, boolean isPlayerSneaking) {
|
||||
TFMGTexts.header("multimeter").style(ChatFormatting.WHITE)
|
||||
.forGoggles(tooltip);
|
||||
@@ -238,22 +278,16 @@ public interface IElectric {
|
||||
return true;
|
||||
}
|
||||
|
||||
default void updateNearbyNetworks(IElectric member) {
|
||||
if (true)
|
||||
return;
|
||||
|
||||
|
||||
for (Direction direction : Direction.values()) {
|
||||
if (member.getLevelAccessor().getBlockEntity(BlockPos.of(member.getPos()).relative(direction)) instanceof IElectric be && be.getData().getId() != member.getData().getId()) {
|
||||
be.getLevelAccessor().setBlock(BlockPos.of(be.getPos()).above(3), Blocks.GOLD_BLOCK.defaultBlockState(), 3);
|
||||
be.updateNextTick();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* contains data related to electricity
|
||||
*/
|
||||
ElectricBlockValues getData();
|
||||
|
||||
/**
|
||||
*
|
||||
* @return true if the network has enough power
|
||||
*/
|
||||
default boolean canWork() {
|
||||
return !getData().notEnoughPower;
|
||||
}
|
||||
@@ -401,7 +435,7 @@ public interface IElectric {
|
||||
|
||||
|
||||
if (canBeInGroups()) {
|
||||
getData().voltage = (int) (((float) resistance() / getData().group.resistance) * (float) getData().voltageSupply);
|
||||
getData().voltage = (int) ((resistance() / getData().group.resistance) * (float) getData().voltageSupply);
|
||||
return;
|
||||
}
|
||||
getData().voltage = newVoltage;
|
||||
|
||||
@@ -1,4 +1,8 @@
|
||||
package com.drmangotea.tfmg.content.electricity.base;
|
||||
|
||||
/**
|
||||
* Blocks that connect networks with other networks
|
||||
* usually for voltage transformation
|
||||
*/
|
||||
public interface IVoltageChanger {
|
||||
}
|
||||
|
||||
@@ -11,11 +11,13 @@ public class CableType {
|
||||
private final ResourceLocation id;
|
||||
private final int color;
|
||||
private final ItemEntry<?> spool;
|
||||
private final ItemEntry<?> wire;
|
||||
|
||||
public CableType(Properties properties) {
|
||||
this.id = properties.id;
|
||||
this.color = properties.color;
|
||||
this.spool = properties.spool;
|
||||
this.wire = properties.wire;
|
||||
}
|
||||
|
||||
public int getColor() {
|
||||
@@ -26,6 +28,10 @@ public class CableType {
|
||||
return this.spool;
|
||||
}
|
||||
|
||||
public ItemEntry<?> getWire() {
|
||||
return this.wire;
|
||||
}
|
||||
|
||||
public String getOrCreateDescriptionId() {
|
||||
if (this.descriptionId == null) {
|
||||
this.descriptionId = Util.makeDescriptionId("cable_type", getKey());
|
||||
@@ -51,6 +57,7 @@ public class CableType {
|
||||
|
||||
int color = 0xffffff;
|
||||
ItemEntry<?> spool = TFMGItems.COPPER_SPOOL;
|
||||
ItemEntry<?> wire = TFMGItems.COPPER_WIRE;
|
||||
|
||||
public Properties color(int color) {
|
||||
this.color = color;
|
||||
@@ -62,6 +69,11 @@ public class CableType {
|
||||
return this;
|
||||
}
|
||||
|
||||
public Properties wire(ItemEntry<?> wire) {
|
||||
this.wire = wire;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Properties(ResourceLocation id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
@@ -4,6 +4,8 @@ import com.drmangotea.tfmg.base.TFMGUtils;
|
||||
import com.drmangotea.tfmg.content.electricity.base.ElectricBlockEntity;
|
||||
import com.drmangotea.tfmg.content.machinery.misc.winding_machine.SpoolItem;
|
||||
import com.drmangotea.tfmg.registry.TFMGBlocks;
|
||||
import com.drmangotea.tfmg.registry.TFMGCableTypes;
|
||||
import com.drmangotea.tfmg.registry.TFMGItems;
|
||||
import com.simibubi.create.api.equipment.goggles.IHaveHoveringInformation;
|
||||
import com.simibubi.create.foundation.blockEntity.behaviour.BlockEntityBehaviour;
|
||||
import net.createmod.catnip.animation.AnimationTickHolder;
|
||||
@@ -14,11 +16,14 @@ import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.multiplayer.ClientLevel;
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.core.Holder;
|
||||
import net.minecraft.core.HolderLookup;
|
||||
import net.minecraft.nbt.CompoundTag;
|
||||
import net.minecraft.world.entity.item.ItemEntity;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.world.item.Item;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.level.ItemLike;
|
||||
import net.minecraft.world.level.block.entity.BlockEntityType;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import net.minecraft.world.phys.AABB;
|
||||
@@ -81,7 +86,7 @@ public class CableConnectorBlockEntity extends ElectricBlockEntity implements IH
|
||||
return;
|
||||
|
||||
for (CableConnection connection : connections) {
|
||||
ItemEntity itemToDrop = new ItemEntity(level, getBlockPos().getX() + 0.5f, getBlockPos().getY() + 0.5f, getBlockPos().getZ() + 0.5f, new ItemStack(connection.type.getSpool().get(), (int) (connection.getLength() / 8)));
|
||||
ItemEntity itemToDrop = new ItemEntity(level, getBlockPos().getX() + 0.5f, getBlockPos().getY() + 0.5f, getBlockPos().getZ() + 0.5f, new ItemStack(connection.type.getWire().asItem(), (int) (connection.getLength() / 8)));
|
||||
if (itemToDrop.getItem().getCount() > 0) {
|
||||
level.addFreshEntity(itemToDrop);
|
||||
}
|
||||
|
||||
@@ -8,6 +8,8 @@ import com.simibubi.create.foundation.blockEntity.SmartBlockEntity;
|
||||
import com.simibubi.create.foundation.blockEntity.behaviour.BlockEntityBehaviour;
|
||||
import net.createmod.catnip.animation.LerpedFloat;
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.core.HolderLookup;
|
||||
import net.minecraft.nbt.CompoundTag;
|
||||
import net.minecraft.network.chat.Component;
|
||||
import net.minecraft.world.level.block.entity.BlockEntity;
|
||||
import net.minecraft.world.level.block.entity.BlockEntityType;
|
||||
@@ -55,6 +57,22 @@ public class VoltMeterBlockEntity extends SmartBlockEntity implements IHaveGoggl
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void write(CompoundTag tag, HolderLookup.Provider registries, boolean clientPacket) {
|
||||
super.write(tag, registries, clientPacket);
|
||||
|
||||
if (mode != MeasureMode.VOLTAGE)
|
||||
tag.putString("mode", mode.toString());
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void read(CompoundTag tag, HolderLookup.Provider registries, boolean clientPacket) {
|
||||
super.read(tag, registries, clientPacket);
|
||||
if (!tag.getString("mode").isEmpty())
|
||||
mode = MeasureMode.valueOf(tag.getString("mode"));
|
||||
}
|
||||
|
||||
public float getUnit(IElectric be) {
|
||||
return switch (mode) {
|
||||
case VOLTAGE, HIGH_VOLTAGE -> be.getData().getVoltage();
|
||||
@@ -63,7 +81,8 @@ public class VoltMeterBlockEntity extends SmartBlockEntity implements IHaveGoggl
|
||||
case POWER -> be.powerGeneration() > 0 ? be.powerGeneration() : be.getPowerUsage();
|
||||
case NETWORK_POWER_USAGE -> be.getNetworkPowerUsage();
|
||||
case NETWORK_POWER_GENERATION -> be.getNetworkPowerGeneration();
|
||||
case CAPACITY -> be instanceof AccumulatorBlockEntity accumulator ? level.getBlockEntity(accumulator.controller) instanceof AccumulatorBlockEntity controllerBE ? controllerBE.energy.getEnergyStored() :0 :0;
|
||||
case CAPACITY ->
|
||||
be instanceof AccumulatorBlockEntity accumulator ? level.getBlockEntity(accumulator.controller) instanceof AccumulatorBlockEntity controllerBE ? controllerBE.energy.getEnergyStored() : 0 : 0;
|
||||
|
||||
case FALLBACK -> 0;
|
||||
};
|
||||
@@ -82,7 +101,7 @@ public class VoltMeterBlockEntity extends SmartBlockEntity implements IHaveGoggl
|
||||
float targetAngle = Math.abs(value * 180);
|
||||
|
||||
|
||||
angle.chase(Math.min(Math.abs(targetAngle),180), 0.05f, LerpedFloat.Chaser.EXP);
|
||||
angle.chase(Math.min(Math.abs(targetAngle), 180), 0.05f, LerpedFloat.Chaser.EXP);
|
||||
angle.tickChaser();
|
||||
|
||||
}
|
||||
|
||||
@@ -99,14 +99,14 @@ public class PolarizerBlockEntity extends ElectricBlockEntity implements IHaveGo
|
||||
//
|
||||
@Override
|
||||
public boolean addToGoggleTooltip(List<Component> tooltip, boolean isPlayerSneaking) {
|
||||
|
||||
TFMGTexts.Multimeter.charge(capacitorPercentage/2f).forGoggles(tooltip);
|
||||
if(getPowerUsage()<2000&&!inventory.isEmpty()){
|
||||
TFMGTexts.Multimeter.notEnoughPower(2000).forGoggles(tooltip, 1);
|
||||
return true;
|
||||
}
|
||||
TFMGTexts.header("polarizer").style(ChatFormatting.GRAY).forGoggles(tooltip, 1);
|
||||
|
||||
TFMGTexts.Multimeter.charge(capacitorPercentage/2f).forGoggles(tooltip);
|
||||
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -43,18 +43,15 @@ public abstract class AbstractEngineBlockEntity extends KineticElectricBlockEnti
|
||||
|
||||
//
|
||||
public float rpm = 0;
|
||||
public float fuelInjectionRate = 0;
|
||||
//
|
||||
public boolean reverse = false;
|
||||
//
|
||||
public int highestSignal;
|
||||
public float highestSignal;
|
||||
public int signal;
|
||||
//
|
||||
public BlockPos engineController;
|
||||
//
|
||||
|
||||
//
|
||||
|
||||
public float torque = 0;
|
||||
public boolean signalChanged;
|
||||
//
|
||||
@@ -104,10 +101,8 @@ public abstract class AbstractEngineBlockEntity extends KineticElectricBlockEnti
|
||||
public void tankUpdated(FluidStack stack, boolean fuelTank) {
|
||||
|
||||
if (fuelTank && stack.isEmpty()) {
|
||||
TFMG.LOGGER.debug("FUEL OFF");
|
||||
|
||||
fuelInjectionRate = 0;
|
||||
rpm =0 ;
|
||||
rpm = 0;
|
||||
updateRotation();
|
||||
analogSignalChanged();
|
||||
}
|
||||
@@ -119,19 +114,13 @@ public abstract class AbstractEngineBlockEntity extends KineticElectricBlockEnti
|
||||
return engineController != null;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void updateNetwork() {
|
||||
super.updateNetwork();
|
||||
}
|
||||
|
||||
protected void analogSignalChanged() {
|
||||
if (!canWork()) {
|
||||
fuelInjectionRate = 0;
|
||||
return;
|
||||
}
|
||||
if (hasEngineController()) {
|
||||
fuelInjectionRate = highestSignal / 15f;
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -139,31 +128,18 @@ public abstract class AbstractEngineBlockEntity extends KineticElectricBlockEnti
|
||||
|
||||
signal = newSignal;
|
||||
|
||||
|
||||
newSignal = Math.max(level.getBestNeighborSignal(getBlockPos()), newSignal);
|
||||
highestSignal = newSignal;
|
||||
fuelInjectionRate = highestSignal / 15f;
|
||||
highestSignal = newSignal / 15f;
|
||||
updateRotation();
|
||||
|
||||
}
|
||||
|
||||
//@Override
|
||||
//public boolean addToGoggleTooltip(List<Component> tooltip, boolean isPlayerSneaking) {
|
||||
//
|
||||
// CreateLang.text("SIGNAL " + highestSignal).forGoggles(tooltip);
|
||||
//
|
||||
//
|
||||
// return super.addToGoggleTooltip(tooltip, isPlayerSneaking);
|
||||
//}
|
||||
|
||||
|
||||
@Override
|
||||
public void lazyTick() {
|
||||
super.lazyTick();
|
||||
|
||||
neighbourChanged();
|
||||
|
||||
|
||||
manageFuelAndExhaust();
|
||||
}
|
||||
|
||||
@@ -182,7 +158,6 @@ public abstract class AbstractEngineBlockEntity extends KineticElectricBlockEnti
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean makeMultimeterTooltip(List<Component> tooltip, boolean isPlayerSneaking) {
|
||||
return false;
|
||||
@@ -224,8 +199,6 @@ public abstract class AbstractEngineBlockEntity extends KineticElectricBlockEnti
|
||||
|
||||
public abstract float torqueModifier();
|
||||
|
||||
public abstract String engineId();
|
||||
|
||||
|
||||
public FuelType getFuelType() {
|
||||
|
||||
@@ -243,7 +216,6 @@ public abstract class AbstractEngineBlockEntity extends KineticElectricBlockEnti
|
||||
}
|
||||
|
||||
public void refreshCapability() {
|
||||
IFluidHandler oldCap = fluidCapability;
|
||||
fluidCapability = this.handlerForCapability();
|
||||
invalidateCapabilities();
|
||||
}
|
||||
@@ -291,22 +263,14 @@ public abstract class AbstractEngineBlockEntity extends KineticElectricBlockEnti
|
||||
signal = compound.getInt("Signal") + 1;
|
||||
if (hasEngineController())
|
||||
engineController = BlockPos.of(compound.getLong("EngineController"));
|
||||
fuelInjectionRate = compound.getFloat("RPM");
|
||||
|
||||
// if (isController()) {
|
||||
// if (!BlockPos.of(compound.getLong("ControllerPos")).equals(new BlockPos(0, 0, 0)))
|
||||
// controller = BlockPos.of(compound.getLong("ControllerPos"));
|
||||
|
||||
fuelTank.readFromNBT(registries, compound.getCompound("FuelTank"));
|
||||
exhaustTank.readFromNBT(registries, compound.getCompound("ExhaustTank"));
|
||||
|
||||
highestSignal = compound.getInt("HighestSignal");
|
||||
|
||||
//signalChanged = true;
|
||||
updateRotation();
|
||||
updateGeneratedRotation();
|
||||
|
||||
//}
|
||||
|
||||
}
|
||||
|
||||
@@ -318,30 +282,21 @@ public abstract class AbstractEngineBlockEntity extends KineticElectricBlockEnti
|
||||
compound.putInt("Signal", signal);
|
||||
if (hasEngineController())
|
||||
compound.putLong("EngineController", engineController.asLong());
|
||||
compound.putFloat("RPM", fuelInjectionRate);
|
||||
|
||||
|
||||
compound.put("FuelTank", fuelTank.writeToNBT(registries, new CompoundTag()));
|
||||
compound.put("ExhaustTank", exhaustTank.writeToNBT(registries, new CompoundTag()));
|
||||
|
||||
compound.putInt("HighestSignal", highestSignal);
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
public abstract int getFuelConsumption();
|
||||
|
||||
|
||||
@Override
|
||||
public void onPlaced() {
|
||||
super.onPlaced();
|
||||
}
|
||||
|
||||
|
||||
public void neighbourChanged() {
|
||||
|
||||
|
||||
if (!hasLevel())
|
||||
return;
|
||||
|
||||
@@ -353,6 +308,4 @@ public abstract class AbstractEngineBlockEntity extends KineticElectricBlockEnti
|
||||
this.signalChanged = true;
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -71,12 +71,9 @@ public class EngineBlock extends HorizontalKineticBlock {
|
||||
engineController.sendData();
|
||||
}
|
||||
}
|
||||
//if(!level.isClientSide)
|
||||
// TFMGPackets.getChannel().send(PacketDistributor.ALL.noArg(), new UpdateInFrontPacket(BlockPos.of(be.getPos())));
|
||||
be.getControllerBE().engineController = null;
|
||||
be.getControllerBE().highestSignal = 0;
|
||||
be.getControllerBE().connectNextTick = true;
|
||||
be.getControllerBE().fuelInjectionRate = 0;
|
||||
be.updateGeneratedRotation();
|
||||
be.getControllerBE().updateGeneratedRotation();
|
||||
be.getControllerBE().sendData();
|
||||
@@ -100,6 +97,8 @@ public class EngineBlock extends HorizontalKineticBlock {
|
||||
be.connectNextTick = true;
|
||||
be.detachKinetics();
|
||||
be.getControllerBE().updateGeneratedRotation();
|
||||
be.getControllerBE().calculateAddedStressCapacity();
|
||||
be.calculateAddedStressCapacity();
|
||||
be.updateGeneratedRotation();
|
||||
if (be.getOrCreateNetwork() != null)
|
||||
be.getOrCreateNetwork().remove(be);
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.drmangotea.tfmg.content.engines.engine_controller;
|
||||
|
||||
import com.drmangotea.tfmg.TFMG;
|
||||
import com.drmangotea.tfmg.content.engines.types.AbstractSmallEngineBlockEntity;
|
||||
import com.drmangotea.tfmg.content.engines.upgrades.TransmissionUpgrade;
|
||||
import com.simibubi.create.api.equipment.goggles.IHaveGoggleInformation;
|
||||
@@ -267,7 +268,7 @@ public class EngineControllerBlockEntity extends SmartBlockEntity implements IHa
|
||||
if (enginePos != null && (engine == null)) {
|
||||
if (level.getBlockEntity(enginePos) instanceof AbstractSmallEngineBlockEntity be) {
|
||||
engine = be;
|
||||
engine.getControllerBE().highestSignal = 4;
|
||||
engine.getControllerBE().highestSignal = 4/15;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -296,8 +297,7 @@ public class EngineControllerBlockEntity extends SmartBlockEntity implements IHa
|
||||
if (engine == null)
|
||||
return;
|
||||
engine.getControllerBE().engineController = this.getBlockPos();
|
||||
engine.getControllerBE().highestSignal = accelerationRate;
|
||||
engine.getControllerBE().fuelInjectionRate = engine.getControllerBE().highestSignal / 15f;
|
||||
engine.getControllerBE().highestSignal = accelerationRate/15;
|
||||
engine.getControllerBE().updateRotation();
|
||||
|
||||
|
||||
@@ -306,6 +306,7 @@ public class EngineControllerBlockEntity extends SmartBlockEntity implements IHa
|
||||
public void disconnectEngine() {
|
||||
if (engine == null)
|
||||
return;
|
||||
|
||||
engine.getControllerBE().highestSignal = 0;
|
||||
engine.getControllerBE().engineController = null;
|
||||
engine.getControllerBE().updateGeneratedRotation();
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.drmangotea.tfmg.content.engines.engine_controller;
|
||||
|
||||
import com.drmangotea.tfmg.TFMG;
|
||||
import com.drmangotea.tfmg.content.engines.base.AbstractEngineBlockEntity;
|
||||
import com.drmangotea.tfmg.registry.TFMGPackets;
|
||||
import com.simibubi.create.foundation.blockEntity.SmartBlockEntity;
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
package com.drmangotea.tfmg.content.engines.types;
|
||||
|
||||
import com.drmangotea.tfmg.TFMG;
|
||||
import com.drmangotea.tfmg.base.TFMGUtils;
|
||||
import com.drmangotea.tfmg.base.lang.TFMGLang;
|
||||
import com.drmangotea.tfmg.base.lang.TFMGTexts;
|
||||
import com.drmangotea.tfmg.content.engines.base.AbstractEngineBlockEntity;
|
||||
import com.drmangotea.tfmg.content.engines.base.EngineBlock;
|
||||
import com.drmangotea.tfmg.content.engines.base.EngineComponentsInventory;
|
||||
import com.drmangotea.tfmg.content.engines.base.EngineProperties;
|
||||
import com.drmangotea.tfmg.content.engines.engine_controller.EngineControllerBlockEntity;
|
||||
@@ -31,6 +31,7 @@ import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.item.Items;
|
||||
import net.minecraft.world.item.crafting.Ingredient;
|
||||
import net.minecraft.world.level.block.Blocks;
|
||||
import net.minecraft.world.level.block.entity.BlockEntity;
|
||||
import net.minecraft.world.level.block.entity.BlockEntityType;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
@@ -81,20 +82,10 @@ public abstract class AbstractSmallEngineBlockEntity extends AbstractEngineBlock
|
||||
float coolingFluidModifier = coolingFluid > 0 ? 0.7f : 1f;
|
||||
|
||||
|
||||
return (int) (12.5f * (1 / efficiencyModifier()) * getSpeedEfficiency() * fuelInjectionRate * oilModifier * coolingFluidModifier) * (engineLength() + 1);
|
||||
return (int) (12.5f * (1 / efficiencyModifier()) * getSpeedEfficiency() * highestSignal / 15 * oilModifier * coolingFluidModifier) * (engineLength() + 1);
|
||||
}
|
||||
|
||||
public void detashEngines() {
|
||||
//for (long id : engines) {
|
||||
// BlockPos pos = BlockPos.of(id);
|
||||
// if (level.getBlockEntity(pos) instanceof AbstractEngineBlockEntity be) {
|
||||
// be.controller = be.getBlockPos();
|
||||
// be.engineNumber = 0;
|
||||
// be.refreshCapability();
|
||||
// be.sendData();
|
||||
// be.setChanged();
|
||||
// }
|
||||
//}
|
||||
}
|
||||
|
||||
public void setBlockStates(AbstractSmallEngineBlockEntity be, BlockPos last) {
|
||||
@@ -139,10 +130,12 @@ public abstract class AbstractSmallEngineBlockEntity extends AbstractEngineBlock
|
||||
@Override
|
||||
public void lazyTick() {
|
||||
super.lazyTick();
|
||||
upgrade.ifPresent(engineUpgrade -> engineUpgrade.lazyTickUpgrade(this));
|
||||
|
||||
if(!canWork())
|
||||
if (!canWork())
|
||||
return;
|
||||
if(rpm==0)
|
||||
return;
|
||||
|
||||
if (level.random.nextInt(45) == 0) {
|
||||
if (oil > 0)
|
||||
oil--;
|
||||
@@ -152,12 +145,13 @@ public abstract class AbstractSmallEngineBlockEntity extends AbstractEngineBlock
|
||||
coolingFluid--;
|
||||
}
|
||||
|
||||
upgrade.ifPresent(engineUpgrade -> engineUpgrade.lazyTickUpgrade(this));
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public float calculateAddedStressCapacity() {
|
||||
float stress = super.calculateAddedStressCapacity() + (torque);
|
||||
|
||||
return hasTwoShafts() ? stress / 2 : stress;
|
||||
}
|
||||
|
||||
@@ -165,11 +159,9 @@ public abstract class AbstractSmallEngineBlockEntity extends AbstractEngineBlock
|
||||
|
||||
if (!isController())
|
||||
return getControllerBE().hasTwoShafts();
|
||||
|
||||
if (this.getBlockState().getValue(ENGINE_STATE) == SHAFT) {
|
||||
BlockState state = level.getBlockState(controller.south(engineLength()));
|
||||
if (state.getBlock() instanceof EngineBlock)
|
||||
if (engineLength() > 1 && state.getValue(ENGINE_STATE) == SHAFT)
|
||||
BlockPos pos = getBlockPos().relative(this.getBlockState().getValue(SHAFT_FACING).getOpposite(), engineLength() );
|
||||
if (level.getBlockState(pos).getValue(ENGINE_STATE) == SHAFT)
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
@@ -254,13 +246,9 @@ public abstract class AbstractSmallEngineBlockEntity extends AbstractEngineBlock
|
||||
if (controller == null)
|
||||
return;
|
||||
|
||||
if (!canWork()) {
|
||||
fuelInjectionRate = 0;
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
if (hasEngineController()) {
|
||||
fuelInjectionRate = highestSignal / 15f;
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -271,6 +259,7 @@ public abstract class AbstractSmallEngineBlockEntity extends AbstractEngineBlock
|
||||
signal = newSignal;
|
||||
|
||||
if (!isController()) {
|
||||
|
||||
if (level.getBlockEntity(controller) instanceof AbstractSmallEngineBlockEntity be) {
|
||||
be.analogSignalChanged();
|
||||
return;
|
||||
@@ -282,9 +271,9 @@ public abstract class AbstractSmallEngineBlockEntity extends AbstractEngineBlock
|
||||
newSignal = Math.max(level.getBestNeighborSignal(pos), newSignal);
|
||||
|
||||
}
|
||||
|
||||
newSignal = Math.max(level.getBestNeighborSignal(controller), newSignal);
|
||||
highestSignal = newSignal;
|
||||
fuelInjectionRate = highestSignal / 15f;
|
||||
highestSignal = newSignal/15f;
|
||||
updateRotation();
|
||||
|
||||
}
|
||||
@@ -306,10 +295,9 @@ public abstract class AbstractSmallEngineBlockEntity extends AbstractEngineBlock
|
||||
return;
|
||||
}
|
||||
|
||||
if(fuelTank.isEmpty()){
|
||||
if (fuelTank.isEmpty()) {
|
||||
rpm = 0;
|
||||
torque = 0;
|
||||
fuelInjectionRate = 0;
|
||||
}
|
||||
|
||||
List<Long> allEngines = new ArrayList<>(engines);
|
||||
@@ -333,8 +321,8 @@ public abstract class AbstractSmallEngineBlockEntity extends AbstractEngineBlock
|
||||
allEngines.forEach(l -> {
|
||||
BlockPos pos = BlockPos.of(l);
|
||||
if (level.getBlockEntity(pos) instanceof AbstractEngineBlockEntity be) {
|
||||
be.rpm = 4000 * speedModifier() * fuelInjectionRate;
|
||||
be.torque = 15 * torqueModifier() * fuelInjectionRate * engineLength();
|
||||
be.rpm = 4000 * speedModifier() * highestSignal ;
|
||||
be.torque = 15 * torqueModifier() * highestSignal* engineLength();
|
||||
be.updateGeneratedRotation();
|
||||
}
|
||||
});
|
||||
@@ -364,7 +352,6 @@ public abstract class AbstractSmallEngineBlockEntity extends AbstractEngineBlock
|
||||
|
||||
if (!canGenerateSpeed())
|
||||
return 0;
|
||||
|
||||
float speed;
|
||||
|
||||
|
||||
@@ -398,7 +385,6 @@ public abstract class AbstractSmallEngineBlockEntity extends AbstractEngineBlock
|
||||
|
||||
}
|
||||
|
||||
|
||||
return convertToDirection(Math.min((int) speed, 256), getBlockState().getValue(HORIZONTAL_FACING));
|
||||
}
|
||||
return 0;
|
||||
@@ -486,7 +472,7 @@ public abstract class AbstractSmallEngineBlockEntity extends AbstractEngineBlock
|
||||
upgrade.ifPresent(u -> u.updateUpgrade(this));
|
||||
itemStack.shrink(1);
|
||||
if (upgrade.isPresent())
|
||||
if (upgrade.get() instanceof TransmissionUpgrade transmissionUpgrade) {
|
||||
if (upgrade.get() instanceof TransmissionUpgrade) {
|
||||
if (itemStack.has(TFMGDataComponents.POSITION) && itemStack.get(TFMGDataComponents.POSITION) != null) {
|
||||
BlockPos pos = BlockPos.of(itemStack.get(TFMGDataComponents.POSITION));
|
||||
if (level.getBlockEntity(pos) instanceof EngineControllerBlockEntity engineControllerBE) {
|
||||
@@ -559,9 +545,7 @@ public abstract class AbstractSmallEngineBlockEntity extends AbstractEngineBlock
|
||||
TFMGTexts.Engine.rpm(rpm).forGoggles(tooltip);
|
||||
TFMGTexts.Engine.length(engineLength()).forGoggles(tooltip);
|
||||
TFMGTexts.Engine.torque(torque).forGoggles(tooltip);
|
||||
TFMGTexts.Engine.injectionRate(fuelInjectionRate).forGoggles(tooltip);
|
||||
TFMGTexts.Engine.signal(highestSignal).forGoggles(tooltip);
|
||||
|
||||
TFMGTexts.Engine.signal((int) (highestSignal*15)).forGoggles(tooltip);
|
||||
TFMGLang.number(engineNumber).style(ChatFormatting.DARK_GREEN).forGoggles(tooltip);
|
||||
if (isController() && !nextComponent().isEmpty())
|
||||
TFMGLang.text(nextComponent().getItems()[0].getDisplayName().getString()).forGoggles(tooltip);
|
||||
@@ -674,7 +658,7 @@ public abstract class AbstractSmallEngineBlockEntity extends AbstractEngineBlock
|
||||
setChanged();
|
||||
sendData();
|
||||
|
||||
} catch (StackOverflowError ignored){
|
||||
} catch (StackOverflowError ignored) {
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -154,11 +154,6 @@ public class LargeEngineBlockEntity extends AbstractEngineBlockEntity {
|
||||
return 1;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String engineId() {
|
||||
return "Large";
|
||||
}
|
||||
|
||||
|
||||
@OnlyIn(Dist.CLIENT)
|
||||
private void makeSound() {
|
||||
|
||||
@@ -36,7 +36,6 @@ import java.util.List;
|
||||
|
||||
import static com.drmangotea.tfmg.content.engines.base.EngineProperties.*;
|
||||
import static com.drmangotea.tfmg.content.engines.types.regular_engine.RegularEngineBlock.EXTENDED;
|
||||
import static com.simibubi.create.AllTags.optionalTag;
|
||||
import static com.simibubi.create.content.kinetics.base.HorizontalKineticBlock.HORIZONTAL_FACING;
|
||||
|
||||
public class RegularEngineBlockEntity extends AbstractSmallEngineBlockEntity {
|
||||
@@ -383,16 +382,18 @@ public class RegularEngineBlockEntity extends AbstractSmallEngineBlockEntity {
|
||||
if(nextComponent()!= Ingredient.EMPTY){
|
||||
TFMGTexts.Engine.unfinished().forGoggles(tooltip);
|
||||
TFMGTexts.Engine.nextComponent(nextComponent().getItems()[0]).forGoggles(tooltip);
|
||||
TFMGTexts.Engine.type(type.langKey).forGoggles(tooltip, 1);
|
||||
return true;
|
||||
}
|
||||
if(!hasAllPistons()){
|
||||
TFMGTexts.Engine.lastRequirement(this instanceof TurbineEngineBlockEntity ? "turbines" : "pistons").forGoggles(tooltip);
|
||||
TFMGTexts.Engine.type(type.langKey).forGoggles(tooltip, 1);
|
||||
return true;
|
||||
}
|
||||
|
||||
TFMGTexts.Engine.type(type.langKey).forGoggles(tooltip, 1);
|
||||
TFMGTexts.Engine.rpm(rpm).forGoggles(tooltip, 1);
|
||||
TFMGTexts.Engine.signal(highestSignal).forGoggles(tooltip, 1);
|
||||
TFMGTexts.Engine.signal((int) (highestSignal*15)).forGoggles(tooltip, 1);
|
||||
TFMGTexts.Engine.torque(torque).forGoggles(tooltip, 1);
|
||||
TFMGTexts.Engine.fuelConsumption(getFuelConsumption()/1.5f).forGoggles(tooltip, 1);
|
||||
if(oil>0){
|
||||
@@ -407,10 +408,6 @@ public class RegularEngineBlockEntity extends AbstractSmallEngineBlockEntity {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String engineId() {
|
||||
return type.name;
|
||||
}
|
||||
|
||||
public enum EngineType {
|
||||
I("engine_i", pistonsI(), 1, 1, 1, true),
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package com.drmangotea.tfmg.content.engines.upgrades;
|
||||
|
||||
|
||||
import com.drmangotea.tfmg.TFMG;
|
||||
import com.drmangotea.tfmg.content.engines.types.AbstractSmallEngineBlockEntity;
|
||||
import com.drmangotea.tfmg.registry.TFMGBlocks;
|
||||
import com.simibubi.create.content.fluids.tank.FluidTankBlockEntity;
|
||||
@@ -40,6 +41,8 @@ public class EnginePipingUpgrade extends EngineUpgrade {
|
||||
@Override
|
||||
public void lazyTickUpgrade(AbstractSmallEngineBlockEntity engine) {
|
||||
|
||||
|
||||
|
||||
if (tank.isPresent()) {
|
||||
|
||||
AbstractSmallEngineBlockEntity controller = engine.getControllerBE();
|
||||
@@ -57,7 +60,7 @@ public class EnginePipingUpgrade extends EngineUpgrade {
|
||||
tankBE.getTankInventory().drain(amount, IFluidHandler.FluidAction.EXECUTE);
|
||||
controller.getControllerBE().fuelTank.fill(new FluidStack(tankBE.getFluid(0).getFluidHolder(), amount), IFluidHandler.FluidAction.EXECUTE);
|
||||
|
||||
}
|
||||
} else findTank(engine);
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -43,9 +43,13 @@ public class LitLithiumBladeItem extends SwordItem {
|
||||
|
||||
// :3
|
||||
|
||||
|
||||
ItemStack stack = player.getItemInHand(hand);
|
||||
|
||||
if (stack.get(TFMGDataComponents.LITHIUM_BLADE_TIMER) ==null){
|
||||
ItemStack stack1 = TFMGItems.LITHIUM_BLADE.asStack();
|
||||
player.setItemInHand(hand,stack1);
|
||||
return InteractionResultHolder.pass(stack1);
|
||||
}
|
||||
|
||||
if (stack.get(TFMGDataComponents.LITHIUM_BLADE_TIMER) <= 100)
|
||||
return super.use(level, player, hand);
|
||||
@@ -55,8 +59,6 @@ public class LitLithiumBladeItem extends SwordItem {
|
||||
level.playSound(player, player.getX(), player.getY(), player.getZ(), SoundEvents.FIRECHARGE_USE, SoundSource.NEUTRAL, 0.5F, 0.4F);
|
||||
|
||||
|
||||
Vec3 motion = player.getLookAngle();
|
||||
|
||||
for (int i = 0; i < 10; i++) {
|
||||
|
||||
|
||||
|
||||
@@ -55,6 +55,11 @@ public class BlastFurnaceHatchBlockEntity extends SmartBlockEntity implements IH
|
||||
TFMGBlockEntities.BLAST_FURNACE_HATCH.get(),
|
||||
(be, context) -> be.fluidCapability
|
||||
);
|
||||
event.registerBlockEntity(
|
||||
Capabilities.ItemHandler.BLOCK,
|
||||
TFMGBlockEntities.BLAST_FURNACE_HATCH.get(),
|
||||
(be, context) -> be.inventory
|
||||
);
|
||||
}
|
||||
@Override
|
||||
public void addBehaviours(List<BlockEntityBehaviour> behaviours) {}
|
||||
|
||||
@@ -226,12 +226,12 @@ public class BlastFurnaceOutputBlockEntity extends SmartBlockEntity implements I
|
||||
}
|
||||
if (tuyereBE == null && tuyerePos != null)
|
||||
tuyereBE = (BlastFurnaceHatchBlockEntity) level.getBlockEntity(tuyerePos);
|
||||
|
||||
if (tuyereBE!=null)
|
||||
if (tuyereBE.tank.getFluidAmount() < recipe.hotAirUsage || !tuyereBE.tank.getFluid().getFluid().isSame(TFMGFluids.HOT_AIR.getSource()))
|
||||
return;
|
||||
|
||||
if (tuyereBE!=null) {
|
||||
tuyereBE.tank.getFluidInTank(0).setAmount(Math.max(tuyereBE.tank.getFluidInTank(0).getAmount() - recipe.hotAirUsage, 0));
|
||||
|
||||
}
|
||||
if (!recipe.getGasByproduct().isEmpty()) {
|
||||
if (level.getBlockEntity(getBlockPos().relative(getBlockState().getValue(FACING).getOpposite()).above(getSize())) instanceof BlastFurnaceHatchBlockEntity be) {
|
||||
be.tank.fill(recipe.getGasByproduct(), IFluidHandler.FluidAction.EXECUTE);
|
||||
|
||||
@@ -53,6 +53,7 @@ public class SpoolItem extends Item {
|
||||
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public InteractionResultHolder<ItemStack> use(Level level, Player player, InteractionHand hand) {
|
||||
ItemStack stack = player.getItemInHand(hand);
|
||||
@@ -228,9 +229,10 @@ public class SpoolItem extends Item {
|
||||
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public void inventoryTick(ItemStack stack, Level level, Entity entity, int slot, boolean p_41408_) {
|
||||
super.inventoryTick(stack, level, entity, slot, p_41408_);
|
||||
|
||||
|
||||
if(stack.get(TFMGDataComponents.SPOOL_AMOUNT)==null)
|
||||
return;
|
||||
|
||||
@@ -43,7 +43,6 @@ public class WindingMachineBlockEntity extends KineticBlockEntity implements IHa
|
||||
LerpedFloat spoolSpeed = LerpedFloat.linear();
|
||||
float angle;
|
||||
public SmartInventory inventory;
|
||||
public IItemHandlerModifiable itemCapability;
|
||||
public ItemStack spool = ItemStack.EMPTY;
|
||||
public WindingRecipe recipe;
|
||||
public int amountWinded = 0;
|
||||
@@ -58,7 +57,6 @@ public class WindingMachineBlockEntity extends KineticBlockEntity implements IHa
|
||||
.withMaxStackSize(1)
|
||||
.whenContentsChanged(i -> this.onContentsChanged());
|
||||
|
||||
itemCapability = inventory;
|
||||
}
|
||||
|
||||
|
||||
@@ -66,7 +64,7 @@ public class WindingMachineBlockEntity extends KineticBlockEntity implements IHa
|
||||
event.registerBlockEntity(
|
||||
Capabilities.ItemHandler.BLOCK,
|
||||
TFMGBlockEntities.WINDING_MACHINE.get(),
|
||||
(be, context) -> be.itemCapability
|
||||
(be, context) -> be.inventory
|
||||
);
|
||||
}
|
||||
|
||||
@@ -141,7 +139,7 @@ public class WindingMachineBlockEntity extends KineticBlockEntity implements IHa
|
||||
.forGoggles(tooltip);
|
||||
|
||||
if (recipe != null)
|
||||
TFMGTexts.progress(TFMGLang.number(amountWinded) + "/" + recipe.getProcessingDuration())
|
||||
TFMGTexts.progress(amountWinded + "/" + recipe.getProcessingDuration())
|
||||
.color(spool.getBarColor())
|
||||
.forGoggles(tooltip);
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.drmangotea.tfmg.content.machinery.misc.winding_machine;
|
||||
|
||||
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;
|
||||
@@ -53,6 +53,7 @@ public class WindingMachineRenderer extends KineticBlockEntityRenderer<WindingMa
|
||||
.renderInto(ms, vb);
|
||||
|
||||
if (!be.spool.isEmpty()) {
|
||||
if (!be.spool.is(TFMGItems.EMPTY_SPOOL)) {
|
||||
CachedBuffers.partial(TFMGPartialModels.SPOOL_WIRE, blockState)
|
||||
.light(light)
|
||||
.center()
|
||||
@@ -75,6 +76,7 @@ public class WindingMachineRenderer extends KineticBlockEntityRenderer<WindingMa
|
||||
.uncenter()
|
||||
.renderInto(ms, vb);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
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.mixin.accessor.TankSegmentAccessor;
|
||||
@@ -77,7 +78,7 @@ public class VatBlockEntity extends SmartBlockEntity implements IHaveGoggleInfor
|
||||
protected BlockPos lastKnownPos;
|
||||
protected boolean updateConnectivity;
|
||||
protected boolean updateCapability;
|
||||
protected boolean window = false;
|
||||
protected boolean window;
|
||||
protected int luminosity;
|
||||
protected int width;
|
||||
protected int height;
|
||||
@@ -252,23 +253,6 @@ public class VatBlockEntity extends SmartBlockEntity implements IHaveGoggleInfor
|
||||
continue;
|
||||
}
|
||||
|
||||
//for(int i =0;i<machines.size();i++){
|
||||
// if(!Objects.equals(machines.get(i),testedRecipe.machines)){
|
||||
// doesntMatch = true;
|
||||
// break;
|
||||
// }
|
||||
//}
|
||||
|
||||
|
||||
//for (String string : testedRecipe.machines) {
|
||||
//
|
||||
// if (!machines.contains(string)) {
|
||||
// doesntMatch = true;
|
||||
// break;
|
||||
// }
|
||||
//}
|
||||
|
||||
|
||||
IFluidHandler fluidHandler = fluidCapability;
|
||||
IItemHandler itemHandler = itemCapability;
|
||||
|
||||
@@ -321,27 +305,7 @@ public class VatBlockEntity extends SmartBlockEntity implements IHaveGoggleInfor
|
||||
}
|
||||
}
|
||||
|
||||
if (false) {
|
||||
Map<Integer, Integer> isFound = new HashMap<>();
|
||||
for (int i = 0; i < testedRecipe.getIngredients().size(); i++) {
|
||||
Integer foundAt = null;
|
||||
if (testedRecipe.getIngredients().get(i).isEmpty())
|
||||
break;
|
||||
|
||||
for (int y = 0; y < itemHandler.getSlots(); y++) {
|
||||
if (isFound.containsValue(y))
|
||||
continue;
|
||||
ItemStack stack = itemHandler.getStackInSlot(y);
|
||||
if (testedRecipe.getIngredients().get(i).test(stack)) {
|
||||
foundAt = y;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (foundAt != null) {
|
||||
isFound.put(i, foundAt);
|
||||
} else doesntMatch = true;
|
||||
}
|
||||
}
|
||||
|
||||
//////////////////////////////////////////
|
||||
if (doesntMatch)
|
||||
@@ -468,6 +432,7 @@ public class VatBlockEntity extends SmartBlockEntity implements IHaveGoggleInfor
|
||||
* ticks the processing timer
|
||||
*/
|
||||
public void handleRecipe() {
|
||||
|
||||
if (recipe == null)
|
||||
return;
|
||||
if (!isController())
|
||||
@@ -539,7 +504,8 @@ public class VatBlockEntity extends SmartBlockEntity implements IHaveGoggleInfor
|
||||
}
|
||||
}
|
||||
//fluid output
|
||||
List<Integer> handledFluidResults = new ArrayList<>();
|
||||
|
||||
|
||||
|
||||
List<FluidStack> handledFluidStacks = new ArrayList<>();
|
||||
List<SmartFluidTankBehaviour.TankSegment> tankSegments = List.of(outputTank.getTanks());
|
||||
@@ -903,8 +869,9 @@ public class VatBlockEntity extends SmartBlockEntity implements IHaveGoggleInfor
|
||||
}
|
||||
|
||||
private IFluidHandler getNewFluidCapability() {
|
||||
IFluidHandler inputHandler = inputTank.getCapability();
|
||||
IFluidHandler outputHandler = outputTank.getCapability();
|
||||
IFluidHandler inputHandler = inputTank.getCapability();
|
||||
|
||||
|
||||
|
||||
if (inputHandler == null || outputHandler == null)
|
||||
|
||||
@@ -22,7 +22,7 @@ public class VatRenderer extends SafeBlockEntityRenderer<VatBlockEntity> {
|
||||
if (!be.isController())
|
||||
return;
|
||||
|
||||
float fluidLevel = renderFluids(be, partialTicks, ms, bufferSource, light, overlay);
|
||||
renderFluids(be, partialTicks, ms, bufferSource, light, overlay);
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -10,13 +10,16 @@ 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 com.drmangotea.tfmg.content.machinery.vat.industrial_mixer.IndustrialMixerBlockEntity;
|
||||
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.item.Items;
|
||||
import net.minecraft.world.level.block.entity.BlockEntityType;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import net.minecraft.world.phys.AABB;
|
||||
@@ -100,6 +103,21 @@ public class ElectrodeHolderBlockEntity extends ElectricBlockEntity implements I
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void remove() {
|
||||
|
||||
if (level.isClientSide || electrode.getItem()==null)
|
||||
return;
|
||||
|
||||
|
||||
ItemEntity itemToDrop = new ItemEntity(level, getBlockPos().getX() + 0.5f, getBlockPos().getY() + 0.5f, getBlockPos().getZ() + 0.5f, electrode.getStack());
|
||||
|
||||
level.addFreshEntity(itemToDrop);
|
||||
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNetworkChanged(int oldVoltage, int oldPower) {
|
||||
super.onNetworkChanged(oldVoltage, oldPower);
|
||||
|
||||
@@ -11,6 +11,7 @@ import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.core.HolderLookup;
|
||||
import net.minecraft.nbt.CompoundTag;
|
||||
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;
|
||||
@@ -60,9 +61,6 @@ public class IndustrialMixerBlockEntity extends KineticBlockEntity implements IV
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public void write(CompoundTag compound, HolderLookup.Provider registries, boolean clientPacket) {
|
||||
for (MixerMode mode : MixerMode.values()) {
|
||||
@@ -70,7 +68,7 @@ public class IndustrialMixerBlockEntity extends KineticBlockEntity implements IV
|
||||
compound.putString("MixerMode", mode.name);
|
||||
}
|
||||
}
|
||||
super.write(compound,registries , clientPacket);
|
||||
super.write(compound, registries, clientPacket);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -80,7 +78,22 @@ public class IndustrialMixerBlockEntity extends KineticBlockEntity implements IV
|
||||
|
||||
if (clientPacket)
|
||||
visualSpeed.chase(getGeneratedSpeed(), (double) 1 / 32, LerpedFloat.Chaser.EXP);
|
||||
super.read(compound,registries , clientPacket);
|
||||
super.read(compound, registries, clientPacket);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void remove() {
|
||||
|
||||
if (level.isClientSide || mixerMode == MixerMode.NONE)
|
||||
return;
|
||||
|
||||
|
||||
ItemEntity itemToDrop = new ItemEntity(level, getBlockPos().getX() + 0.5f, getBlockPos().getY() + 0.5f, getBlockPos().getZ() + 0.5f, mixerMode.item);
|
||||
|
||||
level.addFreshEntity(itemToDrop);
|
||||
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -134,7 +147,7 @@ public class IndustrialMixerBlockEntity extends KineticBlockEntity implements IV
|
||||
|
||||
@Override
|
||||
public int getWorkPercentage() {
|
||||
return (int) ((getSpeed()/255f)*100);
|
||||
return (int) ((getSpeed() / 255f) * 100);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -3,6 +3,7 @@ package com.drmangotea.tfmg.datagen.recipes.values;
|
||||
import com.drmangotea.tfmg.TFMG;
|
||||
import com.drmangotea.tfmg.base.TFMGRegistrate;
|
||||
import com.drmangotea.tfmg.content.decoration.pipes.TFMGPipes;
|
||||
import com.drmangotea.tfmg.content.machinery.misc.winding_machine.SpoolItem;
|
||||
import com.drmangotea.tfmg.datagen.recipes.TFMGRecipeProvider;
|
||||
import com.drmangotea.tfmg.registry.TFMGBlocks;
|
||||
import com.drmangotea.tfmg.registry.TFMGFluids;
|
||||
@@ -1011,32 +1012,32 @@ public class TFMGStandardRecipeGen extends TFMGRecipeProvider {
|
||||
.pattern("CPC")
|
||||
.pattern("MMM")),
|
||||
|
||||
COPPER_SPOOL = create(TFMGItems.COPPER_SPOOL)
|
||||
.unlockedBy(TFMGItems.EMPTY_SPOOL::get)
|
||||
.viaShaped(b -> b
|
||||
.define('S', TFMGItems.EMPTY_SPOOL)
|
||||
.define('W', copperWire())
|
||||
.pattern("WWW")
|
||||
.pattern("WSW")
|
||||
.pattern("WWW")),
|
||||
|
||||
ALUMINUM_SPOOL = create(TFMGItems.ALUMINUM_SPOOL)
|
||||
.unlockedBy(TFMGItems.EMPTY_SPOOL::get)
|
||||
.viaShaped(b -> b
|
||||
.define('S', TFMGItems.EMPTY_SPOOL)
|
||||
.define('W', aluminumWire())
|
||||
.pattern("WWW")
|
||||
.pattern("WSW")
|
||||
.pattern("WWW")),
|
||||
|
||||
CONSTANTAN_SPOOL = create(TFMGItems.CONSTANTAN_SPOOL)
|
||||
.unlockedBy(TFMGItems.EMPTY_SPOOL::get)
|
||||
.viaShaped(b -> b
|
||||
.define('S', TFMGItems.EMPTY_SPOOL)
|
||||
.define('W', constantanWire())
|
||||
.pattern("WWW")
|
||||
.pattern("WSW")
|
||||
.pattern("WWW")),
|
||||
// COPPER_SPOOL = create(TFMGItems.COPPER_SPOOL)
|
||||
// .unlockedBy(TFMGItems.EMPTY_SPOOL::get)
|
||||
// .viaShaped(b -> b
|
||||
// .define('S', TFMGItems.EMPTY_SPOOL)
|
||||
// .define('W', copperWire())
|
||||
// .pattern("WWW")
|
||||
// .pattern("WSW")
|
||||
// .pattern("WWW")),
|
||||
//
|
||||
// ALUMINUM_SPOOL = create(TFMGItems.ALUMINUM_SPOOL)
|
||||
// .unlockedBy(TFMGItems.EMPTY_SPOOL::get)
|
||||
// .viaShaped(b -> b
|
||||
// .define('S', TFMGItems.EMPTY_SPOOL)
|
||||
// .define('W', aluminumWire())
|
||||
// .pattern("WWW")
|
||||
// .pattern("WSW")
|
||||
// .pattern("WWW")),
|
||||
//
|
||||
// CONSTANTAN_SPOOL = create(TFMGItems.CONSTANTAN_SPOOL)
|
||||
// .unlockedBy(TFMGItems.EMPTY_SPOOL::get)
|
||||
// .viaShaped(b -> b
|
||||
// .define('S', TFMGItems.EMPTY_SPOOL)
|
||||
// .define('W', constantanWire())
|
||||
// .pattern("WWW")
|
||||
// .pattern("WSW")
|
||||
// .pattern("WWW")),
|
||||
|
||||
REGULAR_ENGINE = create(TFMGBlocks.REGULAR_ENGINE).returns(2)
|
||||
.unlockedBy(TFMGBlocks.HEAVY_MACHINERY_CASING::asItem)
|
||||
@@ -2404,6 +2405,8 @@ public class TFMGStandardRecipeGen extends TFMGRecipeProvider {
|
||||
return new GeneratedRecipeBuilder(currentFolder, result);
|
||||
}
|
||||
|
||||
|
||||
|
||||
GeneratedRecipeBuilder create(ItemProviderEntry<? extends ItemLike, ? extends ItemLike> result) {
|
||||
return create(result::get);
|
||||
}
|
||||
@@ -2561,9 +2564,9 @@ public class TFMGStandardRecipeGen extends TFMGRecipeProvider {
|
||||
return this;
|
||||
}
|
||||
|
||||
// FIXME 5.1 refactor - recipe categories as markers instead of sections?
|
||||
TFMGRecipeProvider.GeneratedRecipe viaShaped(UnaryOperator<ShapedRecipeBuilder> builder) {
|
||||
return register(consumer -> {
|
||||
|
||||
ShapedRecipeBuilder b =
|
||||
builder.apply(ShapedRecipeBuilder.shaped(RecipeCategory.MISC, result.get(), amount));
|
||||
if (unlockedBy != null)
|
||||
|
||||
@@ -33,7 +33,7 @@ public class TFMGSequencedAssemblyRecipeGen extends SequencedAssemblyRecipeGen {
|
||||
.loops(3)
|
||||
.addStep(WindingRecipe::new, rb -> rb.require(TFMGItems.CONSTANTAN_SPOOL.get()).duration(100))
|
||||
.addStep(DeployerApplicationRecipe::new, rb -> rb.require(TFMGBlocks.STEEL_COGWHEEL))
|
||||
.addStep(DeployerApplicationRecipe::new, rb -> rb.require(TFMGItems.COPPER_WIRE))
|
||||
.addStep(DeployerApplicationRecipe::new, rb -> rb.require(copperWire()))
|
||||
.addStep(FillingRecipe::new, rb -> rb.require(SizedFluidIngredient.of(lubricationOil(), 50)))),
|
||||
|
||||
GENERATOR = create("generator", b -> b.require(shaft())
|
||||
|
||||
@@ -1474,8 +1474,8 @@ public class TFMGBlocks {
|
||||
.onRegister(connectedTextures(() -> new EncasedCTBehaviour(TFMGSpriteShifts.CAST_IRON_BLOCK)))
|
||||
.onRegister(casingConnectivity((block, cc) -> cc.makeCasing(block, TFMGSpriteShifts.CAST_IRON_BLOCK)))
|
||||
.transform(pickaxeOnly())
|
||||
.blockstate(simpleCubeAll("cast_iron_block"))
|
||||
.tag(BlockTags.NEEDS_IRON_TOOL)
|
||||
.blockstate(simpleCubeAll("cast_iron_block"))
|
||||
.tag(BlockTags.BEACON_BASE_BLOCKS)
|
||||
.transform(tagBlockAndItem(Map.of(
|
||||
Tags.Blocks.STORAGE_BLOCKS, Tags.Items.STORAGE_BLOCKS,
|
||||
@@ -1838,6 +1838,8 @@ public class TFMGBlocks {
|
||||
.initialProperties(SharedProperties::softMetal)
|
||||
.properties(BlockBehaviour.Properties::noOcclusion)
|
||||
.properties(p -> p.sound(SoundType.NETHERITE_BLOCK))
|
||||
.transform(pickaxeOnly())
|
||||
.tag(BlockTags.NEEDS_IRON_TOOL)
|
||||
.addLayer(() -> RenderType::cutoutMipped)
|
||||
.blockstate((ctx, prov) -> prov.simpleBlock(ctx.getEntry(), AssetLookup.partialBaseModel(ctx, prov)))
|
||||
.item()
|
||||
@@ -1849,6 +1851,8 @@ public class TFMGBlocks {
|
||||
.properties(BlockBehaviour.Properties::noOcclusion)
|
||||
.properties(p -> p.sound(SoundType.NETHERITE_BLOCK))
|
||||
.addLayer(() -> RenderType::cutoutMipped)
|
||||
.transform(pickaxeOnly())
|
||||
.tag(BlockTags.NEEDS_IRON_TOOL)
|
||||
.blockstate((ctx, prov) -> prov.simpleBlock(ctx.getEntry(), AssetLookup.partialBaseModel(ctx, prov)))
|
||||
.item()
|
||||
.transform(customItemModel())
|
||||
@@ -1858,6 +1862,8 @@ public class TFMGBlocks {
|
||||
.initialProperties(SharedProperties::softMetal)
|
||||
.properties(BlockBehaviour.Properties::noOcclusion)
|
||||
.properties(p -> p.sound(SoundType.NETHERITE_BLOCK))
|
||||
.transform(pickaxeOnly())
|
||||
.tag(BlockTags.NEEDS_IRON_TOOL)
|
||||
.addLayer(() -> RenderType::cutoutMipped)
|
||||
.blockstate((ctx, prov) -> prov.simpleBlock(ctx.getEntry(), AssetLookup.partialBaseModel(ctx, prov)))
|
||||
.item()
|
||||
@@ -1868,6 +1874,8 @@ public class TFMGBlocks {
|
||||
.initialProperties(SharedProperties::softMetal)
|
||||
.properties(p -> p.sound(SoundType.NETHERITE_BLOCK))
|
||||
.addLayer(() -> RenderType::cutoutMipped)
|
||||
.transform(pickaxeOnly())
|
||||
.tag(BlockTags.NEEDS_IRON_TOOL)
|
||||
.blockstate(BlockStateGen.directionalBlockProvider(true))
|
||||
.item()
|
||||
.transform(customItemModel())
|
||||
@@ -1877,6 +1885,8 @@ public class TFMGBlocks {
|
||||
.initialProperties(SharedProperties::softMetal)
|
||||
.properties(BlockBehaviour.Properties::noOcclusion)
|
||||
.properties(p -> p.sound(SoundType.NETHERITE_BLOCK))
|
||||
.transform(pickaxeOnly())
|
||||
.tag(BlockTags.NEEDS_IRON_TOOL)
|
||||
.addLayer(() -> RenderType::cutoutMipped)
|
||||
.blockstate(new RebarStairsGenerator()::generate)
|
||||
.item()
|
||||
@@ -1888,6 +1898,8 @@ public class TFMGBlocks {
|
||||
.initialProperties(SharedProperties::softMetal)
|
||||
.properties(BlockBehaviour.Properties::noOcclusion)
|
||||
.properties(p -> p.sound(SoundType.NETHERITE_BLOCK))
|
||||
.transform(pickaxeOnly())
|
||||
.tag(BlockTags.NEEDS_IRON_TOOL)
|
||||
.addLayer(() -> RenderType::cutoutMipped)
|
||||
.blockstate(BlockStateGen.directionalBlockProvider(true))
|
||||
.item()
|
||||
|
||||
@@ -13,17 +13,17 @@ public class TFMGCableTypes {
|
||||
.register();
|
||||
|
||||
public static final CableTypeEntry<CableType> COPPER = REGISTRATE.cableType("copper", CableType::new)
|
||||
.properties((p) -> p.color(0xD8735A).spool(TFMGItems.COPPER_SPOOL))
|
||||
.properties((p) -> p.color(0xD8735A).spool(TFMGItems.COPPER_SPOOL).wire(TFMGItems.COPPER_WIRE))
|
||||
.transform(TFMGResistivity.setResistivity(0.00188f))
|
||||
.register();
|
||||
|
||||
public static final CableTypeEntry<CableType> ALUMINUM = REGISTRATE.cableType("aluminum", CableType::new)
|
||||
.properties((p) -> p.color(0xEDEFEF).spool(TFMGItems.ALUMINUM_SPOOL))
|
||||
.properties((p) -> p.color(0xEDEFEF).spool(TFMGItems.ALUMINUM_SPOOL).wire(TFMGItems.ALUMINUM_WIRE))
|
||||
.transform(TFMGResistivity.setResistivity(0.0027f))
|
||||
.register();
|
||||
|
||||
public static final CableTypeEntry<CableType> CONSTANTAN = REGISTRATE.cableType("constantan", CableType::new)
|
||||
.properties((p) -> p.color(0xCFC2A8).spool(TFMGItems.CONSTANTAN_SPOOL))
|
||||
.properties((p) -> p.color(0xCFC2A8).spool(TFMGItems.CONSTANTAN_SPOOL).wire(TFMGItems.CONSTANTAN_WIRE))
|
||||
.transform(TFMGResistivity.setResistivity(1f))
|
||||
.register();
|
||||
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
"creative_tab.tfmg_main": "Create: The Factory Must Grow",
|
||||
"creative_tab.tfmg_decoration": "Create: TFMG Building Blocks",
|
||||
|
||||
"create.goggles.fluid_storage": "Fluid Storage:",
|
||||
"tfmg.goggles.item_storage": "Item Storage:",
|
||||
"tfmg.goggles.fluid_storage": "Fluid Storage:",
|
||||
"create.goggles.item_storage": "Item Storage:",
|
||||
"tfmg.goggles.item_storage_empty": "*Empty*",
|
||||
|
||||
"tfmg.surface_scanner.header": "Surface Scanner",
|
||||
@@ -56,7 +56,7 @@
|
||||
"tfmg.goggles.machine_input.power_level": "Power Level: ",
|
||||
|
||||
"tfmg.winding_machine.header": "Winding Machine",
|
||||
"tfmg.goggles.winding_machine.turns": "Turns Left: %s",
|
||||
"tfmg.goggles.winding_machine.turns": "Turns Left: %1$",
|
||||
"tfmg.goggles.winding_machine.progress": "Progress: ",
|
||||
|
||||
"tfmg.polarizer.header": "Polarizer",
|
||||
@@ -124,21 +124,20 @@
|
||||
|
||||
"tfmg.tooltip.fuse": "Rating: %1$s",
|
||||
"tfmg.tooltip.resistor": "Resistance: %1$s",
|
||||
"tfmg.tooltip.coils": "Turns: %1$s",
|
||||
"tfmg.tooltip.coils": "Turns: ",
|
||||
"tfmg.tooltip.cylinder": "Supported Fuels:",
|
||||
"tfmg.tooltip.fluid_item": "Fluid Amount: %1$s",
|
||||
|
||||
"tfmg.recipe.assembly.winding": "Wind a Spool",
|
||||
|
||||
"tfmg.recipe.distillation": "Distillation",
|
||||
"tfmg.recipe.advanced_distillation": "Advanced Distillation",
|
||||
"tfmg.recipe.industrial_blasting": "Industrial Blasting",
|
||||
"tfmg.recipe.casting": "Casting",
|
||||
"tfmg.recipe.coking": "Coking",
|
||||
"tfmg.recipe.polarizing": "Polarizing",
|
||||
"tfmg.recipe.chemical_vat": "Chemical Vat",
|
||||
"tfmg.recipe.hot_blast": "Air Blasting",
|
||||
"tfmg.recipe.winding": "Winding",
|
||||
"create.recipe.assembly.winding": "Wind a Spool",
|
||||
"create.recipe.distillation": "Distillation",
|
||||
"create.recipe.advanced_distillation": "Advanced Distillation",
|
||||
"create.recipe.industrial_blasting": "Industrial Blasting",
|
||||
"create.recipe.casting": "Casting",
|
||||
"create.recipe.coking": "Coking",
|
||||
"create.recipe.polarizing": "Polarizing",
|
||||
"create.recipe.chemical_vat": "Chemical Vat",
|
||||
"create.recipe.hot_blast": "Air Blasting",
|
||||
"create.recipe.winding": "Winding",
|
||||
|
||||
"tfmg.keyinfo.custom_button": "Engine Controller Custom Button",
|
||||
"tfmg.keyinfo.engine_start": "Start Engine",
|
||||
@@ -150,7 +149,7 @@
|
||||
"tfmg.multimeter.insufficient_power": "Not Enough Power",
|
||||
"tfmg.multimeter.insufficient_power.requirement": "Not Enough Power (Needs %s)",
|
||||
"tfmg.multimeter.insufficient_current": "Not Enough Current (Needs %s)",
|
||||
"tfmg.multimeter.charge": "Charge: %s",
|
||||
"tfmg.multimeter.charge": "Charge: ",
|
||||
"tfmg.multimeter.additional_values": "Additional Values:",
|
||||
"tfmg.multimeter.power_usage": " Power Usage: ",
|
||||
"tfmg.multimeter.group": " Group: %s",
|
||||
@@ -191,7 +190,7 @@
|
||||
"tfmg.engine.type.engine_v": "V",
|
||||
"tfmg.engine.type.engine_w": "W",
|
||||
"tfmg.engine.type.engine_u": "U",
|
||||
"tfmg.engine.type.boxer": "Boxer",
|
||||
"tfmg.engine.type.engine_boxer": "Boxer",
|
||||
"tfmg.engine.type.radial": "Radial",
|
||||
"tfmg.engine.type.turbine": "Turbine",
|
||||
|
||||
@@ -200,8 +199,8 @@
|
||||
"tfmg.goggles.voltmeter.mode.current": "Current",
|
||||
"tfmg.goggles.voltmeter.mode.resistance": "Resistance",
|
||||
"tfmg.goggles.voltmeter.mode.power": "Power",
|
||||
"tfmg.goggles.voltmeter.mode.net_power_use": "Network Power Usage",
|
||||
"tfmg.goggles.voltmeter.mode.net_power_gen": "Network Power Generation",
|
||||
"tfmg.goggles.voltmeter.mode.network_power_use": "Network Power Usage",
|
||||
"tfmg.goggles.voltmeter.mode.network_power_generation": "Network Power Generation",
|
||||
"tfmg.goggles.voltmeter.mode.capacity": "Capacity",
|
||||
"tfmg.goggles.voltmeter.mode.fallback": "Fallback",
|
||||
|
||||
|
||||
@@ -174,7 +174,7 @@
|
||||
"block.tfmg.diode.tooltip.behaviour1": "The power will be outputted on its lighter side acting as a one way pathway for power (meaning any power that would be coming from its lighter side would not be outputted on the darker one)",
|
||||
|
||||
"block.tfmg.blast_stove.tooltip.summary": "Heats Air",
|
||||
"block.tfmg.blast_stove.tooltip.behaviour1": "When 3 blast stoves are placed on top of eachother (or in a 3x2 shape) the smallest version of a blast stove is created, to add further internal storage you can add more stove blocks on top which is generally reccomended. A Blast Stove requires 2 things to be pumped in. Air, from the side of the bottom block and Creosote or Furnace gas from the bottom. Carbon dioxide must be pumped out from the side of the bottom block and finally heated air must be pumped out from the machines top.",
|
||||
"block.tfmg.blast_stove.tooltip.behaviour1": "When 3 blast stoves are placed on top of eachother (or in a 3x2 shape) the smallest version of a blast stove is created, to add further internal storage you can add more stove blocks on top which is generally recommended. A Blast Stove requires 2 things to be pumped in. Air, from the side of the bottom block and Creosote or Furnace gas from the bottom. Carbon dioxide must be pumped out from the side of the bottom block and finally heated air must be pumped out from the machines top.",
|
||||
|
||||
"block.tfmg.resistor.tooltip.summary": "Adds resistance to a network",
|
||||
"block.tfmg.resistor.tooltip.condition1": "When placed on a block within a group",
|
||||
|
||||
@@ -1,162 +0,0 @@
|
||||
{
|
||||
"credit": "Made with Blockbench",
|
||||
"parent": "block/block",
|
||||
"texture_size": [32, 32],
|
||||
"textures": {
|
||||
"2": "tfmg:block/aluminum_pump"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [6.5, -1, 3],
|
||||
"to": [9.5, 17, 13],
|
||||
"forge_data": {"calculate_normals": true},
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 6.5, 9, 8], "rotation": 90, "texture": "#2"},
|
||||
"east": {"uv": [0, 9, 9, 14], "rotation": 270, "texture": "#2"},
|
||||
"south": {"uv": [0, 6.5, 9, 8], "rotation": 90, "texture": "#2"},
|
||||
"west": {"uv": [0, 9, 9, 14], "rotation": 90, "texture": "#2"},
|
||||
"up": {"uv": [10, 6.5, 15, 8], "rotation": 90, "texture": "#2"},
|
||||
"down": {"uv": [10, 6.5, 15, 8], "rotation": 90, "texture": "#2"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [-1, 6.5, 3],
|
||||
"to": [17, 9.5, 13],
|
||||
"forge_data": {"calculate_normals": true},
|
||||
"rotation": {"angle": 0, "axis": "z", "origin": [8, 8, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 6.5, 9, 8], "rotation": 180, "texture": "#2"},
|
||||
"east": {"uv": [10, 6.5, 15, 8], "texture": "#2"},
|
||||
"south": {"uv": [0, 6.5, 9, 8], "texture": "#2"},
|
||||
"west": {"uv": [10, 6.5, 15, 8], "texture": "#2"},
|
||||
"up": {"uv": [0, 9, 9, 14], "rotation": 180, "texture": "#2"},
|
||||
"down": {"uv": [0, 9, 9, 14], "texture": "#2"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [6.5, -1, 3],
|
||||
"to": [9.5, 17, 13],
|
||||
"forge_data": {"calculate_normals": true},
|
||||
"rotation": {"angle": 45, "axis": "z", "origin": [8, 8, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 6.5, 9, 8], "rotation": 90, "texture": "#2"},
|
||||
"east": {"uv": [0, 9, 9, 14], "rotation": 270, "texture": "#2"},
|
||||
"south": {"uv": [0, 6.5, 9, 8], "rotation": 90, "texture": "#2"},
|
||||
"west": {"uv": [0, 9, 9, 14], "rotation": 90, "texture": "#2"},
|
||||
"up": {"uv": [10, 6.5, 15, 8], "rotation": 90, "texture": "#2"},
|
||||
"down": {"uv": [10, 6.5, 15, 8], "rotation": 90, "texture": "#2"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [-1, 6.5, 3],
|
||||
"to": [17, 9.5, 13],
|
||||
"forge_data": {"calculate_normals": true},
|
||||
"rotation": {"angle": 45, "axis": "z", "origin": [8, 8, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 6.5, 9, 8], "rotation": 180, "texture": "#2"},
|
||||
"east": {"uv": [10, 6.5, 15, 8], "texture": "#2"},
|
||||
"south": {"uv": [0, 6.5, 9, 8], "texture": "#2"},
|
||||
"west": {"uv": [10, 6.5, 15, 8], "texture": "#2"},
|
||||
"up": {"uv": [0, 9, 9, 14], "rotation": 180, "texture": "#2"},
|
||||
"down": {"uv": [0, 9, 9, 14], "texture": "#2"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [5.5, 0.9, 3.05],
|
||||
"to": [10.5, 15.1, 12.95],
|
||||
"forge_data": {"calculate_normals": true},
|
||||
"rotation": {"angle": 22.5, "axis": "z", "origin": [8, 8, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [1, 7, 1.5, 7.5], "texture": "#2"},
|
||||
"south": {"uv": [1, 7, 1.5, 7.5], "texture": "#2"},
|
||||
"up": {"uv": [10, 9, 15, 11.5], "rotation": 90, "texture": "#2"},
|
||||
"down": {"uv": [10, 9, 15, 11.5], "rotation": 90, "texture": "#2"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0.9, 5.5, 3.05],
|
||||
"to": [15.1, 10.5, 12.95],
|
||||
"forge_data": {"calculate_normals": true},
|
||||
"rotation": {"angle": -22.5, "axis": "z", "origin": [8, 8, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [1, 7, 1.5, 7.5], "rotation": 90, "texture": "#2"},
|
||||
"east": {"uv": [10, 9, 15, 11.5], "texture": "#2"},
|
||||
"south": {"uv": [1, 7, 1.5, 7.5], "rotation": 270, "texture": "#2"},
|
||||
"west": {"uv": [10, 9, 15, 11.5], "texture": "#2"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0.9, 5.5, 3.05],
|
||||
"to": [15.1, 10.5, 12.95],
|
||||
"forge_data": {"calculate_normals": true},
|
||||
"rotation": {"angle": 22.5, "axis": "z", "origin": [8, 8, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [1, 7, 1.5, 7.5], "rotation": 90, "texture": "#2"},
|
||||
"east": {"uv": [10, 9, 15, 11.5], "texture": "#2"},
|
||||
"south": {"uv": [1, 7, 1.5, 7.5], "rotation": 270, "texture": "#2"},
|
||||
"west": {"uv": [10, 9, 15, 11.5], "texture": "#2"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [5.5, 0.9, 3.05],
|
||||
"to": [10.5, 15.1, 12.95],
|
||||
"forge_data": {"calculate_normals": true},
|
||||
"rotation": {"angle": -22.5, "axis": "z", "origin": [8, 8, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [1, 7, 1.5, 7.5], "texture": "#2"},
|
||||
"south": {"uv": [1, 7, 1.5, 7.5], "texture": "#2"},
|
||||
"up": {"uv": [10, 9, 15, 11.5], "rotation": 90, "texture": "#2"},
|
||||
"down": {"uv": [10, 9, 15, 11.5], "rotation": 90, "texture": "#2"}
|
||||
}
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"thirdperson_righthand": {
|
||||
"rotation": [75, -149, 0],
|
||||
"translation": [0, 2.5, 0],
|
||||
"scale": [0.375, 0.375, 0.375]
|
||||
},
|
||||
"thirdperson_lefthand": {
|
||||
"rotation": [75, -149, 0],
|
||||
"translation": [0, 2.5, 0],
|
||||
"scale": [0.375, 0.375, 0.375]
|
||||
},
|
||||
"firstperson_righthand": {
|
||||
"rotation": [0, -55, 0],
|
||||
"scale": [0.4, 0.4, 0.4]
|
||||
},
|
||||
"firstperson_lefthand": {
|
||||
"rotation": [0, -55, 0],
|
||||
"scale": [0.4, 0.4, 0.4]
|
||||
},
|
||||
"ground": {
|
||||
"translation": [0, 1, 1.25],
|
||||
"scale": [0.25, 0.25, 0.25]
|
||||
},
|
||||
"gui": {
|
||||
"rotation": [30, 45, 0],
|
||||
"translation": [2.5, -0.5, 0],
|
||||
"scale": [0.625, 0.625, 0.625]
|
||||
},
|
||||
"fixed": {
|
||||
"rotation": [0, 180, 0],
|
||||
"translation": [0, 1.75, -4.5],
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
}
|
||||
},
|
||||
"groups": [
|
||||
{
|
||||
"name": "cogwheel",
|
||||
"origin": [8, 8, 8],
|
||||
"color": 0,
|
||||
"children": [0, 1, 2, 3]
|
||||
},
|
||||
{
|
||||
"name": "group",
|
||||
"origin": [8, 8, 8],
|
||||
"color": 0,
|
||||
"children": [4, 5, 6, 7]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,162 +0,0 @@
|
||||
{
|
||||
"credit": "Made with Blockbench",
|
||||
"parent": "block/block",
|
||||
"texture_size": [32, 32],
|
||||
"textures": {
|
||||
"2": "tfmg:block/brass_pump"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [6.5, -1, 3],
|
||||
"to": [9.5, 17, 13],
|
||||
"forge_data": {"calculate_normals": true},
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 6.5, 9, 8], "rotation": 90, "texture": "#2"},
|
||||
"east": {"uv": [0, 9, 9, 14], "rotation": 270, "texture": "#2"},
|
||||
"south": {"uv": [0, 6.5, 9, 8], "rotation": 90, "texture": "#2"},
|
||||
"west": {"uv": [0, 9, 9, 14], "rotation": 90, "texture": "#2"},
|
||||
"up": {"uv": [10, 6.5, 15, 8], "rotation": 90, "texture": "#2"},
|
||||
"down": {"uv": [10, 6.5, 15, 8], "rotation": 90, "texture": "#2"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [-1, 6.5, 3],
|
||||
"to": [17, 9.5, 13],
|
||||
"forge_data": {"calculate_normals": true},
|
||||
"rotation": {"angle": 0, "axis": "z", "origin": [8, 8, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 6.5, 9, 8], "rotation": 180, "texture": "#2"},
|
||||
"east": {"uv": [10, 6.5, 15, 8], "texture": "#2"},
|
||||
"south": {"uv": [0, 6.5, 9, 8], "texture": "#2"},
|
||||
"west": {"uv": [10, 6.5, 15, 8], "texture": "#2"},
|
||||
"up": {"uv": [0, 9, 9, 14], "rotation": 180, "texture": "#2"},
|
||||
"down": {"uv": [0, 9, 9, 14], "texture": "#2"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [6.5, -1, 3],
|
||||
"to": [9.5, 17, 13],
|
||||
"forge_data": {"calculate_normals": true},
|
||||
"rotation": {"angle": 45, "axis": "z", "origin": [8, 8, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 6.5, 9, 8], "rotation": 90, "texture": "#2"},
|
||||
"east": {"uv": [0, 9, 9, 14], "rotation": 270, "texture": "#2"},
|
||||
"south": {"uv": [0, 6.5, 9, 8], "rotation": 90, "texture": "#2"},
|
||||
"west": {"uv": [0, 9, 9, 14], "rotation": 90, "texture": "#2"},
|
||||
"up": {"uv": [10, 6.5, 15, 8], "rotation": 90, "texture": "#2"},
|
||||
"down": {"uv": [10, 6.5, 15, 8], "rotation": 90, "texture": "#2"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [-1, 6.5, 3],
|
||||
"to": [17, 9.5, 13],
|
||||
"forge_data": {"calculate_normals": true},
|
||||
"rotation": {"angle": 45, "axis": "z", "origin": [8, 8, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 6.5, 9, 8], "rotation": 180, "texture": "#2"},
|
||||
"east": {"uv": [10, 6.5, 15, 8], "texture": "#2"},
|
||||
"south": {"uv": [0, 6.5, 9, 8], "texture": "#2"},
|
||||
"west": {"uv": [10, 6.5, 15, 8], "texture": "#2"},
|
||||
"up": {"uv": [0, 9, 9, 14], "rotation": 180, "texture": "#2"},
|
||||
"down": {"uv": [0, 9, 9, 14], "texture": "#2"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [5.5, 0.9, 3.05],
|
||||
"to": [10.5, 15.1, 12.95],
|
||||
"forge_data": {"calculate_normals": true},
|
||||
"rotation": {"angle": 22.5, "axis": "z", "origin": [8, 8, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [1, 7, 1.5, 7.5], "texture": "#2"},
|
||||
"south": {"uv": [1, 7, 1.5, 7.5], "texture": "#2"},
|
||||
"up": {"uv": [10, 9, 15, 11.5], "rotation": 90, "texture": "#2"},
|
||||
"down": {"uv": [10, 9, 15, 11.5], "rotation": 90, "texture": "#2"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0.9, 5.5, 3.05],
|
||||
"to": [15.1, 10.5, 12.95],
|
||||
"forge_data": {"calculate_normals": true},
|
||||
"rotation": {"angle": -22.5, "axis": "z", "origin": [8, 8, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [1, 7, 1.5, 7.5], "rotation": 90, "texture": "#2"},
|
||||
"east": {"uv": [10, 9, 15, 11.5], "texture": "#2"},
|
||||
"south": {"uv": [1, 7, 1.5, 7.5], "rotation": 270, "texture": "#2"},
|
||||
"west": {"uv": [10, 9, 15, 11.5], "texture": "#2"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0.9, 5.5, 3.05],
|
||||
"to": [15.1, 10.5, 12.95],
|
||||
"forge_data": {"calculate_normals": true},
|
||||
"rotation": {"angle": 22.5, "axis": "z", "origin": [8, 8, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [1, 7, 1.5, 7.5], "rotation": 90, "texture": "#2"},
|
||||
"east": {"uv": [10, 9, 15, 11.5], "texture": "#2"},
|
||||
"south": {"uv": [1, 7, 1.5, 7.5], "rotation": 270, "texture": "#2"},
|
||||
"west": {"uv": [10, 9, 15, 11.5], "texture": "#2"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [5.5, 0.9, 3.05],
|
||||
"to": [10.5, 15.1, 12.95],
|
||||
"forge_data": {"calculate_normals": true},
|
||||
"rotation": {"angle": -22.5, "axis": "z", "origin": [8, 8, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [1, 7, 1.5, 7.5], "texture": "#2"},
|
||||
"south": {"uv": [1, 7, 1.5, 7.5], "texture": "#2"},
|
||||
"up": {"uv": [10, 9, 15, 11.5], "rotation": 90, "texture": "#2"},
|
||||
"down": {"uv": [10, 9, 15, 11.5], "rotation": 90, "texture": "#2"}
|
||||
}
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"thirdperson_righthand": {
|
||||
"rotation": [75, -149, 0],
|
||||
"translation": [0, 2.5, 0],
|
||||
"scale": [0.375, 0.375, 0.375]
|
||||
},
|
||||
"thirdperson_lefthand": {
|
||||
"rotation": [75, -149, 0],
|
||||
"translation": [0, 2.5, 0],
|
||||
"scale": [0.375, 0.375, 0.375]
|
||||
},
|
||||
"firstperson_righthand": {
|
||||
"rotation": [0, -55, 0],
|
||||
"scale": [0.4, 0.4, 0.4]
|
||||
},
|
||||
"firstperson_lefthand": {
|
||||
"rotation": [0, -55, 0],
|
||||
"scale": [0.4, 0.4, 0.4]
|
||||
},
|
||||
"ground": {
|
||||
"translation": [0, 1, 1.25],
|
||||
"scale": [0.25, 0.25, 0.25]
|
||||
},
|
||||
"gui": {
|
||||
"rotation": [30, 45, 0],
|
||||
"translation": [2.5, -0.5, 0],
|
||||
"scale": [0.625, 0.625, 0.625]
|
||||
},
|
||||
"fixed": {
|
||||
"rotation": [0, 180, 0],
|
||||
"translation": [0, 1.75, -4.5],
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
}
|
||||
},
|
||||
"groups": [
|
||||
{
|
||||
"name": "cogwheel",
|
||||
"origin": [8, 8, 8],
|
||||
"color": 0,
|
||||
"children": [0, 1, 2, 3]
|
||||
},
|
||||
{
|
||||
"name": "group",
|
||||
"origin": [8, 8, 8],
|
||||
"color": 0,
|
||||
"children": [4, 5, 6, 7]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,162 +0,0 @@
|
||||
{
|
||||
"credit": "Made with Blockbench",
|
||||
"parent": "block/block",
|
||||
"texture_size": [32, 32],
|
||||
"textures": {
|
||||
"2": "tfmg:block/cast_iron_pump"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [6.5, -1, 3],
|
||||
"to": [9.5, 17, 13],
|
||||
"forge_data": {"calculate_normals": true},
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 6.5, 9, 8], "rotation": 90, "texture": "#2"},
|
||||
"east": {"uv": [0, 9, 9, 14], "rotation": 270, "texture": "#2"},
|
||||
"south": {"uv": [0, 6.5, 9, 8], "rotation": 90, "texture": "#2"},
|
||||
"west": {"uv": [0, 9, 9, 14], "rotation": 90, "texture": "#2"},
|
||||
"up": {"uv": [10, 6.5, 15, 8], "rotation": 90, "texture": "#2"},
|
||||
"down": {"uv": [10, 6.5, 15, 8], "rotation": 90, "texture": "#2"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [-1, 6.5, 3],
|
||||
"to": [17, 9.5, 13],
|
||||
"forge_data": {"calculate_normals": true},
|
||||
"rotation": {"angle": 0, "axis": "z", "origin": [8, 8, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 6.5, 9, 8], "rotation": 180, "texture": "#2"},
|
||||
"east": {"uv": [10, 6.5, 15, 8], "texture": "#2"},
|
||||
"south": {"uv": [0, 6.5, 9, 8], "texture": "#2"},
|
||||
"west": {"uv": [10, 6.5, 15, 8], "texture": "#2"},
|
||||
"up": {"uv": [0, 9, 9, 14], "rotation": 180, "texture": "#2"},
|
||||
"down": {"uv": [0, 9, 9, 14], "texture": "#2"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [6.5, -1, 3],
|
||||
"to": [9.5, 17, 13],
|
||||
"forge_data": {"calculate_normals": true},
|
||||
"rotation": {"angle": 45, "axis": "z", "origin": [8, 8, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 6.5, 9, 8], "rotation": 90, "texture": "#2"},
|
||||
"east": {"uv": [0, 9, 9, 14], "rotation": 270, "texture": "#2"},
|
||||
"south": {"uv": [0, 6.5, 9, 8], "rotation": 90, "texture": "#2"},
|
||||
"west": {"uv": [0, 9, 9, 14], "rotation": 90, "texture": "#2"},
|
||||
"up": {"uv": [10, 6.5, 15, 8], "rotation": 90, "texture": "#2"},
|
||||
"down": {"uv": [10, 6.5, 15, 8], "rotation": 90, "texture": "#2"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [-1, 6.5, 3],
|
||||
"to": [17, 9.5, 13],
|
||||
"forge_data": {"calculate_normals": true},
|
||||
"rotation": {"angle": 45, "axis": "z", "origin": [8, 8, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 6.5, 9, 8], "rotation": 180, "texture": "#2"},
|
||||
"east": {"uv": [10, 6.5, 15, 8], "texture": "#2"},
|
||||
"south": {"uv": [0, 6.5, 9, 8], "texture": "#2"},
|
||||
"west": {"uv": [10, 6.5, 15, 8], "texture": "#2"},
|
||||
"up": {"uv": [0, 9, 9, 14], "rotation": 180, "texture": "#2"},
|
||||
"down": {"uv": [0, 9, 9, 14], "texture": "#2"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [5.5, 0.9, 3.05],
|
||||
"to": [10.5, 15.1, 12.95],
|
||||
"forge_data": {"calculate_normals": true},
|
||||
"rotation": {"angle": 22.5, "axis": "z", "origin": [8, 8, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [1, 7, 1.5, 7.5], "texture": "#2"},
|
||||
"south": {"uv": [1, 7, 1.5, 7.5], "texture": "#2"},
|
||||
"up": {"uv": [10, 9, 15, 11.5], "rotation": 90, "texture": "#2"},
|
||||
"down": {"uv": [10, 9, 15, 11.5], "rotation": 90, "texture": "#2"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0.9, 5.5, 3.05],
|
||||
"to": [15.1, 10.5, 12.95],
|
||||
"forge_data": {"calculate_normals": true},
|
||||
"rotation": {"angle": -22.5, "axis": "z", "origin": [8, 8, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [1, 7, 1.5, 7.5], "rotation": 90, "texture": "#2"},
|
||||
"east": {"uv": [10, 9, 15, 11.5], "texture": "#2"},
|
||||
"south": {"uv": [1, 7, 1.5, 7.5], "rotation": 270, "texture": "#2"},
|
||||
"west": {"uv": [10, 9, 15, 11.5], "texture": "#2"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0.9, 5.5, 3.05],
|
||||
"to": [15.1, 10.5, 12.95],
|
||||
"forge_data": {"calculate_normals": true},
|
||||
"rotation": {"angle": 22.5, "axis": "z", "origin": [8, 8, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [1, 7, 1.5, 7.5], "rotation": 90, "texture": "#2"},
|
||||
"east": {"uv": [10, 9, 15, 11.5], "texture": "#2"},
|
||||
"south": {"uv": [1, 7, 1.5, 7.5], "rotation": 270, "texture": "#2"},
|
||||
"west": {"uv": [10, 9, 15, 11.5], "texture": "#2"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [5.5, 0.9, 3.05],
|
||||
"to": [10.5, 15.1, 12.95],
|
||||
"forge_data": {"calculate_normals": true},
|
||||
"rotation": {"angle": -22.5, "axis": "z", "origin": [8, 8, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [1, 7, 1.5, 7.5], "texture": "#2"},
|
||||
"south": {"uv": [1, 7, 1.5, 7.5], "texture": "#2"},
|
||||
"up": {"uv": [10, 9, 15, 11.5], "rotation": 90, "texture": "#2"},
|
||||
"down": {"uv": [10, 9, 15, 11.5], "rotation": 90, "texture": "#2"}
|
||||
}
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"thirdperson_righthand": {
|
||||
"rotation": [75, -149, 0],
|
||||
"translation": [0, 2.5, 0],
|
||||
"scale": [0.375, 0.375, 0.375]
|
||||
},
|
||||
"thirdperson_lefthand": {
|
||||
"rotation": [75, -149, 0],
|
||||
"translation": [0, 2.5, 0],
|
||||
"scale": [0.375, 0.375, 0.375]
|
||||
},
|
||||
"firstperson_righthand": {
|
||||
"rotation": [0, -55, 0],
|
||||
"scale": [0.4, 0.4, 0.4]
|
||||
},
|
||||
"firstperson_lefthand": {
|
||||
"rotation": [0, -55, 0],
|
||||
"scale": [0.4, 0.4, 0.4]
|
||||
},
|
||||
"ground": {
|
||||
"translation": [0, 1, 1.25],
|
||||
"scale": [0.25, 0.25, 0.25]
|
||||
},
|
||||
"gui": {
|
||||
"rotation": [30, 45, 0],
|
||||
"translation": [2.5, -0.5, 0],
|
||||
"scale": [0.625, 0.625, 0.625]
|
||||
},
|
||||
"fixed": {
|
||||
"rotation": [0, 180, 0],
|
||||
"translation": [0, 1.75, -4.5],
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
}
|
||||
},
|
||||
"groups": [
|
||||
{
|
||||
"name": "cogwheel",
|
||||
"origin": [8, 8, 8],
|
||||
"color": 0,
|
||||
"children": [0, 1, 2, 3]
|
||||
},
|
||||
{
|
||||
"name": "group",
|
||||
"origin": [8, 8, 8],
|
||||
"color": 0,
|
||||
"children": [4, 5, 6, 7]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,21 +0,0 @@
|
||||
{
|
||||
"credit": "Made with Blockbench",
|
||||
"textures": {
|
||||
"0": "tfmg:block/formwork_bottom",
|
||||
"particle": "tfmg:block/formwork_bottom"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [0, 0, 0],
|
||||
"to": [16, 1, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 16, 1], "texture": "#0"},
|
||||
"east": {"uv": [0, 0, 16, 1], "texture": "#0"},
|
||||
"south": {"uv": [0, 0, 16, 1], "texture": "#0"},
|
||||
"west": {"uv": [0, 0, 16, 1], "texture": "#0"},
|
||||
"up": {"uv": [0, 0, 16, 16], "texture": "#0"},
|
||||
"down": {"uv": [0, 0, 16, 16], "texture": "#0"}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,21 +0,0 @@
|
||||
{
|
||||
"credit": "Made with Blockbench",
|
||||
"textures": {
|
||||
"0": "tfmg:block/formwork_side",
|
||||
"particle": "tfmg:block/formwork_side"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [0, 0, -0.1],
|
||||
"to": [16, 16.001, 0.9],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 16, 16], "texture": "#0"},
|
||||
"east": {"uv": [0, 0, 1, 16], "texture": "#0"},
|
||||
"south": {"uv": [0, 0, 16, 16], "texture": "#0"},
|
||||
"west": {"uv": [0, 0, 1, 16], "texture": "#0"},
|
||||
"up": {"uv": [0, 0, 16, 1], "texture": "#0"},
|
||||
"down": {"uv": [0, 0, 16, 1], "texture": "#0"}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,21 +0,0 @@
|
||||
{
|
||||
"credit": "Made with Blockbench",
|
||||
"textures": {
|
||||
"0": "tfmg:block/formwork_bottom",
|
||||
"particle": "tfmg:block/formwork_bottom"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [1, 0, 1],
|
||||
"to": [15, 1, 15],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 14, 1], "texture": "#0"},
|
||||
"east": {"uv": [0, 0, 14, 1], "texture": "#0"},
|
||||
"south": {"uv": [0, 0, 14, 1], "texture": "#0"},
|
||||
"west": {"uv": [0, 0, 14, 1], "texture": "#0"},
|
||||
"up": {"uv": [1, 1, 15, 15], "texture": "#0"},
|
||||
"down": {"uv": [0, 0, 14, 14], "texture": "#0"}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,75 +0,0 @@
|
||||
{
|
||||
"credit": "Made with Blockbench",
|
||||
"parent": "minecraft:block/block",
|
||||
"textures": {
|
||||
"0": "tfmg:block/formwork_bottom",
|
||||
"1": "tfmg:block/formwork_side",
|
||||
"particle": "tfmg:block/formwork_bottom"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [1, 1, 0],
|
||||
"to": [16, 16, 1],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 0, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 15, 15], "texture": "#1"},
|
||||
"east": {"uv": [0, 0, 1, 15], "texture": "#1"},
|
||||
"south": {"uv": [0, 0, 15, 15], "texture": "#1"},
|
||||
"west": {"uv": [0, 0, 1, 15], "texture": "#1"},
|
||||
"up": {"uv": [0, 0, 15, 1], "texture": "#1"},
|
||||
"down": {"uv": [0, 0, 15, 1], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 1, 0],
|
||||
"to": [1, 16, 15],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 0, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 1, 15], "texture": "#1"},
|
||||
"east": {"uv": [0, 0, 15, 15], "texture": "#1"},
|
||||
"south": {"uv": [0, 0, 1, 15], "texture": "#1"},
|
||||
"west": {"uv": [0, 0, 15, 15], "texture": "#1"},
|
||||
"up": {"uv": [0, 0, 15, 1], "rotation": 270, "texture": "#1"},
|
||||
"down": {"uv": [0, 0, 15, 1], "rotation": 90, "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 1, 15],
|
||||
"to": [15, 16, 16],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 0, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 15, 15], "texture": "#1"},
|
||||
"east": {"uv": [0, 0, 1, 15], "texture": "#1"},
|
||||
"south": {"uv": [0, 0, 15, 15], "texture": "#1"},
|
||||
"west": {"uv": [0, 0, 1, 15], "texture": "#1"},
|
||||
"up": {"uv": [0, 0, 15, 1], "rotation": 180, "texture": "#1"},
|
||||
"down": {"uv": [0, 0, 15, 1], "rotation": 180, "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [15, 1, 1],
|
||||
"to": [16, 16, 16],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 0, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 1, 15], "texture": "#1"},
|
||||
"east": {"uv": [0, 0, 15, 15], "texture": "#1"},
|
||||
"south": {"uv": [0, 0, 1, 15], "texture": "#1"},
|
||||
"west": {"uv": [0, 0, 15, 15], "texture": "#1"},
|
||||
"up": {"uv": [0, 0, 15, 1], "rotation": 90, "texture": "#1"},
|
||||
"down": {"uv": [0, 0, 15, 1], "rotation": 270, "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 0, 0],
|
||||
"to": [16, 1, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 16, 1], "texture": "#0"},
|
||||
"east": {"uv": [0, 0, 16, 1], "texture": "#0"},
|
||||
"south": {"uv": [0, 0, 16, 1], "texture": "#0"},
|
||||
"west": {"uv": [0, 0, 16, 1], "texture": "#0"},
|
||||
"up": {"uv": [0, 0, 16, 16], "texture": "#0"},
|
||||
"down": {"uv": [0, 0, 16, 16], "texture": "#0"}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,297 +0,0 @@
|
||||
{
|
||||
"format_version": "1.21.6",
|
||||
"credit": "Made with Blockbench",
|
||||
"textures": {
|
||||
"0": "test",
|
||||
"1": "test2",
|
||||
"2": "Downloads/pasted",
|
||||
"particle": "test"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [0, 0, 0],
|
||||
"to": [16, 16, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 16, 16], "texture": "#1"},
|
||||
"east": {"uv": [0, 0, 16, 16], "texture": "#1"},
|
||||
"south": {"uv": [0, 0, 16, 16], "texture": "#1"},
|
||||
"west": {"uv": [0, 0, 16, 4], "texture": "#0"},
|
||||
"up": {"uv": [0, 0, 16, 16], "rotation": 270, "texture": "#1"},
|
||||
"down": {"uv": [0, 0, 16, 16], "rotation": 270, "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, -16, 16],
|
||||
"to": [16, 0, 32],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [0, -16, 16]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 16, 16], "texture": "#1"},
|
||||
"east": {"uv": [0, 0, 16, 16], "texture": "#1"},
|
||||
"south": {"uv": [0, 0, 16, 16], "texture": "#1"},
|
||||
"west": {"uv": [0, 0, 16, 16], "texture": "#2"},
|
||||
"up": {"uv": [0, 0, 16, 16], "rotation": 270, "texture": "#1"},
|
||||
"down": {"uv": [0, 0, 16, 16], "rotation": 270, "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, -16, 0],
|
||||
"to": [16, 0, 16],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [0, -16, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 16, 16], "texture": "#1"},
|
||||
"east": {"uv": [0, 0, 16, 16], "texture": "#1"},
|
||||
"south": {"uv": [0, 0, 16, 16], "texture": "#1"},
|
||||
"west": {"uv": [0, 0, 16, 16], "texture": "#2"},
|
||||
"up": {"uv": [0, 0, 16, 16], "rotation": 270, "texture": "#1"},
|
||||
"down": {"uv": [0, 0, 16, 16], "rotation": 270, "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 16, 16],
|
||||
"to": [16, 32, 32],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [0, 16, 16]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 16, 16], "texture": "#1"},
|
||||
"east": {"uv": [0, 0, 16, 16], "texture": "#1"},
|
||||
"south": {"uv": [0, 0, 16, 16], "texture": "#1"},
|
||||
"west": {"uv": [0, 0, 16, 16], "texture": "#1"},
|
||||
"up": {"uv": [0, 0, 16, 16], "rotation": 270, "texture": "#1"},
|
||||
"down": {"uv": [0, 0, 16, 16], "rotation": 270, "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 16, 0],
|
||||
"to": [16, 32, 16],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [0, 16, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 16, 16], "texture": "#1"},
|
||||
"east": {"uv": [0, 0, 16, 16], "texture": "#1"},
|
||||
"south": {"uv": [0, 0, 16, 16], "texture": "#1"},
|
||||
"west": {"uv": [0, 0, 16, 16], "texture": "#1"},
|
||||
"up": {"uv": [0, 0, 16, 16], "rotation": 270, "texture": "#1"},
|
||||
"down": {"uv": [0, 0, 16, 16], "rotation": 270, "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [-4, 12, 0],
|
||||
"to": [0, 16, 16],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [-16, 12, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 4, 4], "texture": "#0"},
|
||||
"east": {"uv": [0, 0, 16, 4], "texture": "#0"},
|
||||
"south": {"uv": [0, 0, 4, 4], "texture": "#0"},
|
||||
"west": {"uv": [0, 0, 16, 4], "texture": "#0"},
|
||||
"up": {"uv": [16, 12, 0, 16], "rotation": 270, "texture": "#1"},
|
||||
"down": {"uv": [0, 0, 4, 16], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [-4, 0, 16],
|
||||
"to": [0, 4, 32],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [-16, 0, 16]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 4, 4], "texture": "#0"},
|
||||
"east": {"uv": [0, 0, 16, 4], "texture": "#0"},
|
||||
"south": {"uv": [0, 0, 4, 4], "texture": "#0"},
|
||||
"west": {"uv": [0, 0, 16, 4], "texture": "#0"},
|
||||
"up": {"uv": [0, 0, 16, 4], "rotation": 270, "texture": "#1"},
|
||||
"down": {"uv": [0, 0, 16, 16], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [-2, 4, 25],
|
||||
"to": [2, 12, 29],
|
||||
"rotation": {"angle": -45, "axis": "y", "origin": [-3, 4, 28]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 4, 5, 12], "texture": "#0"},
|
||||
"east": {"uv": [0, 4, 5, 12], "texture": "#0"},
|
||||
"south": {"uv": [0, 4, 5, 12], "texture": "#0"},
|
||||
"west": {"uv": [0, 4, 5, 12], "texture": "#0"},
|
||||
"up": {"uv": [0, 0, 4, 4], "texture": "#0"},
|
||||
"down": {"uv": [0, 0, 4, 4], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [-2, 4, 19.5],
|
||||
"to": [2, 12, 23.5],
|
||||
"rotation": {"angle": -45, "axis": "y", "origin": [-3, 4, 22.5]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 4, 5, 12], "texture": "#0"},
|
||||
"east": {"uv": [0, 4, 5, 12], "texture": "#0"},
|
||||
"south": {"uv": [0, 4, 5, 12], "texture": "#0"},
|
||||
"west": {"uv": [0, 4, 5, 12], "texture": "#0"},
|
||||
"up": {"uv": [0, 0, 4, 4], "texture": "#0"},
|
||||
"down": {"uv": [0, 0, 4, 4], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [-2, 4, 14],
|
||||
"to": [2, 12, 18],
|
||||
"rotation": {"angle": -45, "axis": "y", "origin": [-3, 4, 17]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 4, 5, 12], "texture": "#0"},
|
||||
"east": {"uv": [0, 4, 5, 12], "texture": "#0"},
|
||||
"south": {"uv": [0, 4, 5, 12], "texture": "#0"},
|
||||
"west": {"uv": [0, 4, 5, 12], "texture": "#0"},
|
||||
"up": {"uv": [0, 0, 4, 4], "texture": "#0"},
|
||||
"down": {"uv": [0, 0, 4, 4], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 0, 16],
|
||||
"to": [16, 16, 32],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 16]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 16, 16], "texture": "#1"},
|
||||
"east": {"uv": [0, 0, 16, 16], "texture": "#1"},
|
||||
"south": {"uv": [0, 0, 16, 16], "texture": "#1"},
|
||||
"west": {"uv": [0, 0, 16, 4], "texture": "#0"},
|
||||
"up": {"uv": [0, 0, 16, 16], "rotation": 270, "texture": "#1"},
|
||||
"down": {"uv": [0, 0, 16, 16], "rotation": 270, "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [-4, 12, 16],
|
||||
"to": [0, 16, 32],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [-16, 12, 16]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 4, 4], "texture": "#0"},
|
||||
"east": {"uv": [0, 0, 16, 4], "texture": "#0"},
|
||||
"south": {"uv": [0, 0, 4, 4], "texture": "#0"},
|
||||
"west": {"uv": [0, 0, 16, 4], "texture": "#0"},
|
||||
"up": {"uv": [16, 12, 0, 16], "rotation": 270, "texture": "#1"},
|
||||
"down": {"uv": [0, 0, 4, 16], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [-4, 0, 16],
|
||||
"to": [0, 4, 32],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [-16, 0, 16]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 4, 4], "texture": "#0"},
|
||||
"east": {"uv": [0, 0, 16, 4], "texture": "#0"},
|
||||
"south": {"uv": [0, 0, 4, 4], "texture": "#0"},
|
||||
"west": {"uv": [0, 0, 16, 4], "texture": "#0"},
|
||||
"up": {"uv": [0, 0, 16, 4], "rotation": 270, "texture": "#1"},
|
||||
"down": {"uv": [0, 0, 16, 16], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [-2, 4, 25],
|
||||
"to": [2, 12, 29],
|
||||
"rotation": {"angle": -45, "axis": "y", "origin": [-3, 4, 28]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 4, 5, 12], "texture": "#0"},
|
||||
"east": {"uv": [0, 4, 5, 12], "texture": "#0"},
|
||||
"south": {"uv": [0, 4, 5, 12], "texture": "#0"},
|
||||
"west": {"uv": [0, 4, 5, 12], "texture": "#0"},
|
||||
"up": {"uv": [0, 0, 4, 4], "texture": "#0"},
|
||||
"down": {"uv": [0, 0, 4, 4], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [-2, 4, 19.5],
|
||||
"to": [2, 12, 23.5],
|
||||
"rotation": {"angle": -45, "axis": "y", "origin": [-3, 4, 22.5]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 4, 5, 12], "texture": "#0"},
|
||||
"east": {"uv": [0, 4, 5, 12], "texture": "#0"},
|
||||
"south": {"uv": [0, 4, 5, 12], "texture": "#0"},
|
||||
"west": {"uv": [0, 4, 5, 12], "texture": "#0"},
|
||||
"up": {"uv": [0, 0, 4, 4], "texture": "#0"},
|
||||
"down": {"uv": [0, 0, 4, 4], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [-2, 4, 14],
|
||||
"to": [2, 12, 18],
|
||||
"rotation": {"angle": -45, "axis": "y", "origin": [-3, 4, 17]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 4, 5, 12], "texture": "#0"},
|
||||
"east": {"uv": [0, 4, 5, 12], "texture": "#0"},
|
||||
"south": {"uv": [0, 4, 5, 12], "texture": "#0"},
|
||||
"west": {"uv": [0, 4, 5, 12], "texture": "#0"},
|
||||
"up": {"uv": [0, 0, 4, 4], "texture": "#0"},
|
||||
"down": {"uv": [0, 0, 4, 4], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 0, 16],
|
||||
"to": [16, 16, 32],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 16]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 16, 16], "texture": "#1"},
|
||||
"east": {"uv": [0, 0, 16, 16], "texture": "#1"},
|
||||
"south": {"uv": [0, 0, 16, 16], "texture": "#1"},
|
||||
"west": {"uv": [0, 0, 16, 4], "texture": "#0"},
|
||||
"up": {"uv": [0, 0, 16, 16], "rotation": 270, "texture": "#1"},
|
||||
"down": {"uv": [0, 0, 16, 16], "rotation": 270, "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [-4, 12, 16],
|
||||
"to": [0, 16, 32],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [-16, 12, 16]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 4, 4], "texture": "#0"},
|
||||
"east": {"uv": [0, 0, 16, 4], "texture": "#0"},
|
||||
"south": {"uv": [0, 0, 4, 4], "texture": "#0"},
|
||||
"west": {"uv": [0, 0, 16, 4], "texture": "#0"},
|
||||
"up": {"uv": [16, 12, 0, 16], "rotation": 270, "texture": "#1"},
|
||||
"down": {"uv": [0, 0, 4, 16], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [-4, 0, 0],
|
||||
"to": [0, 4, 16],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [-16, 0, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 4, 4], "texture": "#0"},
|
||||
"east": {"uv": [0, 0, 16, 4], "texture": "#0"},
|
||||
"south": {"uv": [0, 0, 4, 4], "texture": "#0"},
|
||||
"west": {"uv": [0, 0, 16, 4], "texture": "#0"},
|
||||
"up": {"uv": [0, 0, 16, 4], "rotation": 270, "texture": "#1"},
|
||||
"down": {"uv": [0, 0, 16, 16], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [-2, 4, -2],
|
||||
"to": [2, 12, 2],
|
||||
"rotation": {"angle": -45, "axis": "y", "origin": [-3, 4, 1]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 4, 5, 12], "texture": "#0"},
|
||||
"east": {"uv": [0, 4, 5, 12], "texture": "#0"},
|
||||
"south": {"uv": [0, 4, 5, 12], "texture": "#0"},
|
||||
"west": {"uv": [0, 4, 5, 12], "texture": "#0"},
|
||||
"up": {"uv": [0, 0, 4, 4], "texture": "#0"},
|
||||
"down": {"uv": [0, 0, 4, 4], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [-2, 4, 3.5],
|
||||
"to": [2, 12, 7.5],
|
||||
"rotation": {"angle": -45, "axis": "y", "origin": [-3, 4, 6.5]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 4, 5, 12], "texture": "#0"},
|
||||
"east": {"uv": [0, 4, 5, 12], "texture": "#0"},
|
||||
"south": {"uv": [0, 4, 5, 12], "texture": "#0"},
|
||||
"west": {"uv": [0, 4, 5, 12], "texture": "#0"},
|
||||
"up": {"uv": [0, 0, 4, 4], "texture": "#0"},
|
||||
"down": {"uv": [0, 0, 4, 4], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [-2, 4, 9],
|
||||
"to": [2, 12, 13],
|
||||
"rotation": {"angle": -45, "axis": "y", "origin": [-3, 4, 12]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 4, 5, 12], "texture": "#0"},
|
||||
"east": {"uv": [0, 4, 5, 12], "texture": "#0"},
|
||||
"south": {"uv": [0, 4, 5, 12], "texture": "#0"},
|
||||
"west": {"uv": [0, 4, 5, 12], "texture": "#0"},
|
||||
"up": {"uv": [0, 0, 4, 4], "texture": "#0"},
|
||||
"down": {"uv": [0, 0, 4, 4], "texture": "#0"}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,162 +0,0 @@
|
||||
{
|
||||
"credit": "Made with Blockbench",
|
||||
"parent": "block/block",
|
||||
"texture_size": [32, 32],
|
||||
"textures": {
|
||||
"2": "tfmg:block/plastic_pump"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [6.5, -1, 3],
|
||||
"to": [9.5, 17, 13],
|
||||
"forge_data": {"calculate_normals": true},
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 6.5, 9, 8], "rotation": 90, "texture": "#2"},
|
||||
"east": {"uv": [0, 9, 9, 14], "rotation": 270, "texture": "#2"},
|
||||
"south": {"uv": [0, 6.5, 9, 8], "rotation": 90, "texture": "#2"},
|
||||
"west": {"uv": [0, 9, 9, 14], "rotation": 90, "texture": "#2"},
|
||||
"up": {"uv": [10, 6.5, 15, 8], "rotation": 90, "texture": "#2"},
|
||||
"down": {"uv": [10, 6.5, 15, 8], "rotation": 90, "texture": "#2"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [-1, 6.5, 3],
|
||||
"to": [17, 9.5, 13],
|
||||
"forge_data": {"calculate_normals": true},
|
||||
"rotation": {"angle": 0, "axis": "z", "origin": [8, 8, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 6.5, 9, 8], "rotation": 180, "texture": "#2"},
|
||||
"east": {"uv": [10, 6.5, 15, 8], "texture": "#2"},
|
||||
"south": {"uv": [0, 6.5, 9, 8], "texture": "#2"},
|
||||
"west": {"uv": [10, 6.5, 15, 8], "texture": "#2"},
|
||||
"up": {"uv": [0, 9, 9, 14], "rotation": 180, "texture": "#2"},
|
||||
"down": {"uv": [0, 9, 9, 14], "texture": "#2"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [6.5, -1, 3],
|
||||
"to": [9.5, 17, 13],
|
||||
"forge_data": {"calculate_normals": true},
|
||||
"rotation": {"angle": 45, "axis": "z", "origin": [8, 8, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 6.5, 9, 8], "rotation": 90, "texture": "#2"},
|
||||
"east": {"uv": [0, 9, 9, 14], "rotation": 270, "texture": "#2"},
|
||||
"south": {"uv": [0, 6.5, 9, 8], "rotation": 90, "texture": "#2"},
|
||||
"west": {"uv": [0, 9, 9, 14], "rotation": 90, "texture": "#2"},
|
||||
"up": {"uv": [10, 6.5, 15, 8], "rotation": 90, "texture": "#2"},
|
||||
"down": {"uv": [10, 6.5, 15, 8], "rotation": 90, "texture": "#2"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [-1, 6.5, 3],
|
||||
"to": [17, 9.5, 13],
|
||||
"forge_data": {"calculate_normals": true},
|
||||
"rotation": {"angle": 45, "axis": "z", "origin": [8, 8, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 6.5, 9, 8], "rotation": 180, "texture": "#2"},
|
||||
"east": {"uv": [10, 6.5, 15, 8], "texture": "#2"},
|
||||
"south": {"uv": [0, 6.5, 9, 8], "texture": "#2"},
|
||||
"west": {"uv": [10, 6.5, 15, 8], "texture": "#2"},
|
||||
"up": {"uv": [0, 9, 9, 14], "rotation": 180, "texture": "#2"},
|
||||
"down": {"uv": [0, 9, 9, 14], "texture": "#2"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [5.5, 0.9, 3.05],
|
||||
"to": [10.5, 15.1, 12.95],
|
||||
"forge_data": {"calculate_normals": true},
|
||||
"rotation": {"angle": 22.5, "axis": "z", "origin": [8, 8, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [1, 7, 1.5, 7.5], "texture": "#2"},
|
||||
"south": {"uv": [1, 7, 1.5, 7.5], "texture": "#2"},
|
||||
"up": {"uv": [10, 9, 15, 11.5], "rotation": 90, "texture": "#2"},
|
||||
"down": {"uv": [10, 9, 15, 11.5], "rotation": 90, "texture": "#2"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0.9, 5.5, 3.05],
|
||||
"to": [15.1, 10.5, 12.95],
|
||||
"forge_data": {"calculate_normals": true},
|
||||
"rotation": {"angle": -22.5, "axis": "z", "origin": [8, 8, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [1, 7, 1.5, 7.5], "rotation": 90, "texture": "#2"},
|
||||
"east": {"uv": [10, 9, 15, 11.5], "texture": "#2"},
|
||||
"south": {"uv": [1, 7, 1.5, 7.5], "rotation": 270, "texture": "#2"},
|
||||
"west": {"uv": [10, 9, 15, 11.5], "texture": "#2"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0.9, 5.5, 3.05],
|
||||
"to": [15.1, 10.5, 12.95],
|
||||
"forge_data": {"calculate_normals": true},
|
||||
"rotation": {"angle": 22.5, "axis": "z", "origin": [8, 8, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [1, 7, 1.5, 7.5], "rotation": 90, "texture": "#2"},
|
||||
"east": {"uv": [10, 9, 15, 11.5], "texture": "#2"},
|
||||
"south": {"uv": [1, 7, 1.5, 7.5], "rotation": 270, "texture": "#2"},
|
||||
"west": {"uv": [10, 9, 15, 11.5], "texture": "#2"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [5.5, 0.9, 3.05],
|
||||
"to": [10.5, 15.1, 12.95],
|
||||
"forge_data": {"calculate_normals": true},
|
||||
"rotation": {"angle": -22.5, "axis": "z", "origin": [8, 8, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [1, 7, 1.5, 7.5], "texture": "#2"},
|
||||
"south": {"uv": [1, 7, 1.5, 7.5], "texture": "#2"},
|
||||
"up": {"uv": [10, 9, 15, 11.5], "rotation": 90, "texture": "#2"},
|
||||
"down": {"uv": [10, 9, 15, 11.5], "rotation": 90, "texture": "#2"}
|
||||
}
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"thirdperson_righthand": {
|
||||
"rotation": [75, -149, 0],
|
||||
"translation": [0, 2.5, 0],
|
||||
"scale": [0.375, 0.375, 0.375]
|
||||
},
|
||||
"thirdperson_lefthand": {
|
||||
"rotation": [75, -149, 0],
|
||||
"translation": [0, 2.5, 0],
|
||||
"scale": [0.375, 0.375, 0.375]
|
||||
},
|
||||
"firstperson_righthand": {
|
||||
"rotation": [0, -55, 0],
|
||||
"scale": [0.4, 0.4, 0.4]
|
||||
},
|
||||
"firstperson_lefthand": {
|
||||
"rotation": [0, -55, 0],
|
||||
"scale": [0.4, 0.4, 0.4]
|
||||
},
|
||||
"ground": {
|
||||
"translation": [0, 1, 1.25],
|
||||
"scale": [0.25, 0.25, 0.25]
|
||||
},
|
||||
"gui": {
|
||||
"rotation": [30, 45, 0],
|
||||
"translation": [2.5, -0.5, 0],
|
||||
"scale": [0.625, 0.625, 0.625]
|
||||
},
|
||||
"fixed": {
|
||||
"rotation": [0, 180, 0],
|
||||
"translation": [0, 1.75, -4.5],
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
}
|
||||
},
|
||||
"groups": [
|
||||
{
|
||||
"name": "cogwheel",
|
||||
"origin": [8, 8, 8],
|
||||
"color": 0,
|
||||
"children": [0, 1, 2, 3]
|
||||
},
|
||||
{
|
||||
"name": "group",
|
||||
"origin": [8, 8, 8],
|
||||
"color": 0,
|
||||
"children": [4, 5, 6, 7]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,162 +0,0 @@
|
||||
{
|
||||
"credit": "Made with Blockbench",
|
||||
"parent": "block/block",
|
||||
"texture_size": [32, 32],
|
||||
"textures": {
|
||||
"2": "tfmg:block/steel_pump"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [6.5, -1, 3],
|
||||
"to": [9.5, 17, 13],
|
||||
"forge_data": {"calculate_normals": true},
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 6.5, 9, 8], "rotation": 90, "texture": "#2"},
|
||||
"east": {"uv": [0, 9, 9, 14], "rotation": 270, "texture": "#2"},
|
||||
"south": {"uv": [0, 6.5, 9, 8], "rotation": 90, "texture": "#2"},
|
||||
"west": {"uv": [0, 9, 9, 14], "rotation": 90, "texture": "#2"},
|
||||
"up": {"uv": [10, 6.5, 15, 8], "rotation": 90, "texture": "#2"},
|
||||
"down": {"uv": [10, 6.5, 15, 8], "rotation": 90, "texture": "#2"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [-1, 6.5, 3],
|
||||
"to": [17, 9.5, 13],
|
||||
"forge_data": {"calculate_normals": true},
|
||||
"rotation": {"angle": 0, "axis": "z", "origin": [8, 8, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 6.5, 9, 8], "rotation": 180, "texture": "#2"},
|
||||
"east": {"uv": [10, 6.5, 15, 8], "texture": "#2"},
|
||||
"south": {"uv": [0, 6.5, 9, 8], "texture": "#2"},
|
||||
"west": {"uv": [10, 6.5, 15, 8], "texture": "#2"},
|
||||
"up": {"uv": [0, 9, 9, 14], "rotation": 180, "texture": "#2"},
|
||||
"down": {"uv": [0, 9, 9, 14], "texture": "#2"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [6.5, -1, 3],
|
||||
"to": [9.5, 17, 13],
|
||||
"forge_data": {"calculate_normals": true},
|
||||
"rotation": {"angle": 45, "axis": "z", "origin": [8, 8, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 6.5, 9, 8], "rotation": 90, "texture": "#2"},
|
||||
"east": {"uv": [0, 9, 9, 14], "rotation": 270, "texture": "#2"},
|
||||
"south": {"uv": [0, 6.5, 9, 8], "rotation": 90, "texture": "#2"},
|
||||
"west": {"uv": [0, 9, 9, 14], "rotation": 90, "texture": "#2"},
|
||||
"up": {"uv": [10, 6.5, 15, 8], "rotation": 90, "texture": "#2"},
|
||||
"down": {"uv": [10, 6.5, 15, 8], "rotation": 90, "texture": "#2"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [-1, 6.5, 3],
|
||||
"to": [17, 9.5, 13],
|
||||
"forge_data": {"calculate_normals": true},
|
||||
"rotation": {"angle": 45, "axis": "z", "origin": [8, 8, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 6.5, 9, 8], "rotation": 180, "texture": "#2"},
|
||||
"east": {"uv": [10, 6.5, 15, 8], "texture": "#2"},
|
||||
"south": {"uv": [0, 6.5, 9, 8], "texture": "#2"},
|
||||
"west": {"uv": [10, 6.5, 15, 8], "texture": "#2"},
|
||||
"up": {"uv": [0, 9, 9, 14], "rotation": 180, "texture": "#2"},
|
||||
"down": {"uv": [0, 9, 9, 14], "texture": "#2"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [5.5, 0.9, 3.05],
|
||||
"to": [10.5, 15.1, 12.95],
|
||||
"forge_data": {"calculate_normals": true},
|
||||
"rotation": {"angle": 22.5, "axis": "z", "origin": [8, 8, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [1, 7, 1.5, 7.5], "texture": "#2"},
|
||||
"south": {"uv": [1, 7, 1.5, 7.5], "texture": "#2"},
|
||||
"up": {"uv": [10, 9, 15, 11.5], "rotation": 90, "texture": "#2"},
|
||||
"down": {"uv": [10, 9, 15, 11.5], "rotation": 90, "texture": "#2"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0.9, 5.5, 3.05],
|
||||
"to": [15.1, 10.5, 12.95],
|
||||
"forge_data": {"calculate_normals": true},
|
||||
"rotation": {"angle": -22.5, "axis": "z", "origin": [8, 8, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [1, 7, 1.5, 7.5], "rotation": 90, "texture": "#2"},
|
||||
"east": {"uv": [10, 9, 15, 11.5], "texture": "#2"},
|
||||
"south": {"uv": [1, 7, 1.5, 7.5], "rotation": 270, "texture": "#2"},
|
||||
"west": {"uv": [10, 9, 15, 11.5], "texture": "#2"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0.9, 5.5, 3.05],
|
||||
"to": [15.1, 10.5, 12.95],
|
||||
"forge_data": {"calculate_normals": true},
|
||||
"rotation": {"angle": 22.5, "axis": "z", "origin": [8, 8, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [1, 7, 1.5, 7.5], "rotation": 90, "texture": "#2"},
|
||||
"east": {"uv": [10, 9, 15, 11.5], "texture": "#2"},
|
||||
"south": {"uv": [1, 7, 1.5, 7.5], "rotation": 270, "texture": "#2"},
|
||||
"west": {"uv": [10, 9, 15, 11.5], "texture": "#2"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [5.5, 0.9, 3.05],
|
||||
"to": [10.5, 15.1, 12.95],
|
||||
"forge_data": {"calculate_normals": true},
|
||||
"rotation": {"angle": -22.5, "axis": "z", "origin": [8, 8, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [1, 7, 1.5, 7.5], "texture": "#2"},
|
||||
"south": {"uv": [1, 7, 1.5, 7.5], "texture": "#2"},
|
||||
"up": {"uv": [10, 9, 15, 11.5], "rotation": 90, "texture": "#2"},
|
||||
"down": {"uv": [10, 9, 15, 11.5], "rotation": 90, "texture": "#2"}
|
||||
}
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"thirdperson_righthand": {
|
||||
"rotation": [75, -149, 0],
|
||||
"translation": [0, 2.5, 0],
|
||||
"scale": [0.375, 0.375, 0.375]
|
||||
},
|
||||
"thirdperson_lefthand": {
|
||||
"rotation": [75, -149, 0],
|
||||
"translation": [0, 2.5, 0],
|
||||
"scale": [0.375, 0.375, 0.375]
|
||||
},
|
||||
"firstperson_righthand": {
|
||||
"rotation": [0, -55, 0],
|
||||
"scale": [0.4, 0.4, 0.4]
|
||||
},
|
||||
"firstperson_lefthand": {
|
||||
"rotation": [0, -55, 0],
|
||||
"scale": [0.4, 0.4, 0.4]
|
||||
},
|
||||
"ground": {
|
||||
"translation": [0, 1, 1.25],
|
||||
"scale": [0.25, 0.25, 0.25]
|
||||
},
|
||||
"gui": {
|
||||
"rotation": [30, 45, 0],
|
||||
"translation": [2.5, -0.5, 0],
|
||||
"scale": [0.625, 0.625, 0.625]
|
||||
},
|
||||
"fixed": {
|
||||
"rotation": [0, 180, 0],
|
||||
"translation": [0, 1.75, -4.5],
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
}
|
||||
},
|
||||
"groups": [
|
||||
{
|
||||
"name": "cogwheel",
|
||||
"origin": [8, 8, 8],
|
||||
"color": 0,
|
||||
"children": [0, 1, 2, 3]
|
||||
},
|
||||
{
|
||||
"name": "group",
|
||||
"origin": [8, 8, 8],
|
||||
"color": 0,
|
||||
"children": [4, 5, 6, 7]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,46 +0,0 @@
|
||||
{
|
||||
"credit": "Made with Blockbench",
|
||||
"parent": "minecraft:block/block",
|
||||
"textures": {
|
||||
"0": "tfmg:block/engines/turbine",
|
||||
"particle": "block/anvil"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [1, 4, 5],
|
||||
"to": [15, 10, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [2.125, 8.875, 3.875, 9.625], "texture": "#0"},
|
||||
"east": {"uv": [1.5, 6.375, 2.875, 7.125], "texture": "#0"},
|
||||
"south": {"uv": [2.125, 8.125, 3.875, 8.875], "texture": "#0"},
|
||||
"west": {"uv": [1.125, 7.125, 2.5, 6.375], "rotation": 180, "texture": "#0"},
|
||||
"up": {"uv": [8.5, 5.875, 9.725, 7.625], "rotation": 90, "texture": "#0"},
|
||||
"down": {"uv": [0, 0, 14, 11], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 0, 2],
|
||||
"to": [16, 4, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [0.25, 1, 2.25, 1.5], "texture": "#0"},
|
||||
"east": {"uv": [4.5, 1, 2.75, 1.475], "texture": "#0"},
|
||||
"south": {"uv": [5, 1, 7, 1.5], "texture": "#0"},
|
||||
"west": {"uv": [2.75, 1, 4.5, 1.5], "texture": "#0"},
|
||||
"up": {"uv": [5.75, 4.5, 7.75, 6.25], "texture": "#0"},
|
||||
"down": {"uv": [5.125, 5.5, 7.125, 3.75], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [3, 4, 2],
|
||||
"to": [13, 13, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [0.625, 0, 1.875, 1.125], "texture": "#0"},
|
||||
"east": {"uv": [0.5, 11, 1.625, 9.25], "rotation": 90, "texture": "#0"},
|
||||
"south": {"uv": [5.375, 0, 6.625, 1.125], "texture": "#0"},
|
||||
"west": {"uv": [0.5, 9.25, 1.625, 11], "rotation": 90, "texture": "#0"},
|
||||
"up": {"uv": [0.625, 1.75, 1.875, 3.5], "texture": "#0"},
|
||||
"down": {"uv": [0, 0, 10, 14], "texture": "#0"}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,22 +1,6 @@
|
||||
{
|
||||
"animation": {
|
||||
"frames": [
|
||||
16,
|
||||
17,
|
||||
18,
|
||||
19,
|
||||
20,
|
||||
21,
|
||||
22,
|
||||
23,
|
||||
24,
|
||||
25,
|
||||
26,
|
||||
27,
|
||||
28,
|
||||
29,
|
||||
30,
|
||||
31,
|
||||
0,
|
||||
1,
|
||||
2,
|
||||
@@ -24,15 +8,7 @@
|
||||
4,
|
||||
5,
|
||||
6,
|
||||
7,
|
||||
8,
|
||||
9,
|
||||
10,
|
||||
11,
|
||||
12,
|
||||
13,
|
||||
14,
|
||||
15
|
||||
7
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 528 B After Width: | Height: | Size: 530 B |
@@ -16,6 +16,9 @@
|
||||
],
|
||||
"result": {
|
||||
"count": 1,
|
||||
"id": "tfmg:aluminum_spool"
|
||||
"id": "tfmg:aluminum_spool",
|
||||
"components": {
|
||||
"tfmg:spool_amount": 1000
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -16,6 +16,9 @@
|
||||
],
|
||||
"result": {
|
||||
"count": 1,
|
||||
"id": "tfmg:constantan_spool"
|
||||
"id": "tfmg:constantan_spool",
|
||||
"components": {
|
||||
"tfmg:spool_amount": 1000
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -16,6 +16,9 @@
|
||||
],
|
||||
"result": {
|
||||
"count": 1,
|
||||
"id": "tfmg:copper_spool"
|
||||
"id": "tfmg:copper_spool",
|
||||
"components": {
|
||||
"tfmg:spool_amount": 1000
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user