1.1.0 update
@@ -31,7 +31,7 @@ registrate_version = MC1.21-1.3.0+62
|
|||||||
mod_id=tfmg
|
mod_id=tfmg
|
||||||
mod_name=Create: The Factory Must Grow
|
mod_name=Create: The Factory Must Grow
|
||||||
mod_license=MIT
|
mod_license=MIT
|
||||||
mod_version=1.0.1
|
mod_version=1.1.0
|
||||||
mod_group_id=com.drmangotea
|
mod_group_id=com.drmangotea
|
||||||
mod_authors= DrMangoTea, Pepa, Luna
|
mod_authors= DrMangoTea, Pepa, Luna
|
||||||
mod_description= Create: The Factory Must Grow brings the age of steel, oil and electricity to the Create mod
|
mod_description= Create: The Factory Must Grow brings the age of steel, oil and electricity to the Create mod
|
||||||
|
|||||||
@@ -0,0 +1,10 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"lit=false": {
|
||||||
|
"model": "tfmg:block/gas_lamp/block"
|
||||||
|
},
|
||||||
|
"lit=true": {
|
||||||
|
"model": "tfmg:block/gas_lamp/block_lit"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -201,6 +201,7 @@
|
|||||||
"block.tfmg.fossilstone": "ǝuoʇsןıssoℲ",
|
"block.tfmg.fossilstone": "ǝuoʇsןıssoℲ",
|
||||||
"block.tfmg.galena": "ɐuǝןɐ⅁",
|
"block.tfmg.galena": "ɐuǝןɐ⅁",
|
||||||
"block.tfmg.galena_pillar": "ɹɐןןıԀ ɐuǝןɐ⅁",
|
"block.tfmg.galena_pillar": "ɹɐןןıԀ ɐuǝןɐ⅁",
|
||||||
|
"block.tfmg.gas_lamp": "dɯɐꞀ sɐ⅁",
|
||||||
"block.tfmg.gasoline": "ǝuıןosɐ⅁",
|
"block.tfmg.gasoline": "ǝuıןosɐ⅁",
|
||||||
"block.tfmg.generator": "ɹoʇɐɹǝuǝ⅁",
|
"block.tfmg.generator": "ɹoʇɐɹǝuǝ⅁",
|
||||||
"block.tfmg.glass_aluminum_pipe": "ǝdıԀ ɯnuıɯnןⱯ ssɐן⅁",
|
"block.tfmg.glass_aluminum_pipe": "ǝdıԀ ɯnuıɯnןⱯ ssɐן⅁",
|
||||||
@@ -519,6 +520,7 @@
|
|||||||
"effect.tfmg.hellfire": "ǝɹıɟןןǝH",
|
"effect.tfmg.hellfire": "ǝɹıɟןןǝH",
|
||||||
"entity.tfmg.blue_spark": "ʞɹɐdS ǝnןᗺ",
|
"entity.tfmg.blue_spark": "ʞɹɐdS ǝnןᗺ",
|
||||||
"entity.tfmg.copper_grenade": "ǝpɐuǝɹ⅁ ɹǝddoƆ",
|
"entity.tfmg.copper_grenade": "ǝpɐuǝɹ⅁ ɹǝddoƆ",
|
||||||
|
"entity.tfmg.dry_ice_flake": "ǝʞɐןℲ ǝɔI ʎɹᗡ",
|
||||||
"entity.tfmg.green_spark": "ʞɹɐdS uǝǝɹ⅁",
|
"entity.tfmg.green_spark": "ʞɹɐdS uǝǝɹ⅁",
|
||||||
"entity.tfmg.lithium_spark": "ʞɹɐdS ɯnıɥʇıꞀ",
|
"entity.tfmg.lithium_spark": "ʞɹɐdS ɯnıɥʇıꞀ",
|
||||||
"entity.tfmg.napalm_bomb_entity": "ʎʇıʇuƎ qɯoᗺ ɯןɐdɐN",
|
"entity.tfmg.napalm_bomb_entity": "ʎʇıʇuƎ qɯoᗺ ɯןɐdɐN",
|
||||||
@@ -645,6 +647,7 @@
|
|||||||
"item.tfmg.engine_cylinder": "ɹǝpuıןʎƆ ǝuıbuƎ",
|
"item.tfmg.engine_cylinder": "ɹǝpuıןʎƆ ǝuıbuƎ",
|
||||||
"item.tfmg.etched_circuit_board": "pɹɐoᗺ ʇınɔɹıƆ pǝɥɔʇƎ",
|
"item.tfmg.etched_circuit_board": "pɹɐoᗺ ʇınɔɹıƆ pǝɥɔʇƎ",
|
||||||
"item.tfmg.ethylene_bucket": "ʞuɐ⟘ ǝuǝןʎɥʇƎ",
|
"item.tfmg.ethylene_bucket": "ʞuɐ⟘ ǝuǝןʎɥʇƎ",
|
||||||
|
"item.tfmg.fire_extinguisher": "ɹǝɥsınbuıʇxƎ ǝɹıℲ",
|
||||||
"item.tfmg.fireclay_ball": "ןןɐᗺ ʎɐןɔǝɹıℲ",
|
"item.tfmg.fireclay_ball": "ןןɐᗺ ʎɐןɔǝɹıℲ",
|
||||||
"item.tfmg.fireproof_brick": "ʞɔıɹᗺ ɟooɹdǝɹıℲ",
|
"item.tfmg.fireproof_brick": "ʞɔıɹᗺ ɟooɹdǝɹıℲ",
|
||||||
"item.tfmg.flamethrower": "ɹǝʍoɹɥʇǝɯɐןℲ",
|
"item.tfmg.flamethrower": "ɹǝʍoɹɥʇǝɯɐןℲ",
|
||||||
|
|||||||
@@ -201,6 +201,7 @@
|
|||||||
"block.tfmg.fossilstone": "Fossilstone",
|
"block.tfmg.fossilstone": "Fossilstone",
|
||||||
"block.tfmg.galena": "Galena",
|
"block.tfmg.galena": "Galena",
|
||||||
"block.tfmg.galena_pillar": "Galena Pillar",
|
"block.tfmg.galena_pillar": "Galena Pillar",
|
||||||
|
"block.tfmg.gas_lamp": "Gas Lamp",
|
||||||
"block.tfmg.gasoline": "Gasoline",
|
"block.tfmg.gasoline": "Gasoline",
|
||||||
"block.tfmg.generator": "Generator",
|
"block.tfmg.generator": "Generator",
|
||||||
"block.tfmg.glass_aluminum_pipe": "Glass Aluminum Pipe",
|
"block.tfmg.glass_aluminum_pipe": "Glass Aluminum Pipe",
|
||||||
@@ -519,6 +520,7 @@
|
|||||||
"effect.tfmg.hellfire": "Hellfire",
|
"effect.tfmg.hellfire": "Hellfire",
|
||||||
"entity.tfmg.blue_spark": "Blue Spark",
|
"entity.tfmg.blue_spark": "Blue Spark",
|
||||||
"entity.tfmg.copper_grenade": "Copper Grenade",
|
"entity.tfmg.copper_grenade": "Copper Grenade",
|
||||||
|
"entity.tfmg.dry_ice_flake": "Dry Ice Flake",
|
||||||
"entity.tfmg.green_spark": "Green Spark",
|
"entity.tfmg.green_spark": "Green Spark",
|
||||||
"entity.tfmg.lithium_spark": "Lithium Spark",
|
"entity.tfmg.lithium_spark": "Lithium Spark",
|
||||||
"entity.tfmg.napalm_bomb_entity": "Napalm Bomb Entity",
|
"entity.tfmg.napalm_bomb_entity": "Napalm Bomb Entity",
|
||||||
@@ -645,6 +647,7 @@
|
|||||||
"item.tfmg.engine_cylinder": "Engine Cylinder",
|
"item.tfmg.engine_cylinder": "Engine Cylinder",
|
||||||
"item.tfmg.etched_circuit_board": "Etched Circuit Board",
|
"item.tfmg.etched_circuit_board": "Etched Circuit Board",
|
||||||
"item.tfmg.ethylene_bucket": "Ethylene Tank",
|
"item.tfmg.ethylene_bucket": "Ethylene Tank",
|
||||||
|
"item.tfmg.fire_extinguisher": "Fire Extinguisher",
|
||||||
"item.tfmg.fireclay_ball": "Fireclay Ball",
|
"item.tfmg.fireclay_ball": "Fireclay Ball",
|
||||||
"item.tfmg.fireproof_brick": "Fireproof Brick",
|
"item.tfmg.fireproof_brick": "Fireproof Brick",
|
||||||
"item.tfmg.flamethrower": "Flamethrower",
|
"item.tfmg.flamethrower": "Flamethrower",
|
||||||
|
|||||||
@@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"parent": "tfmg:item/fire_extinguisher/item"
|
||||||
|
}
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"parent": "tfmg:block/gas_lamp/item"
|
||||||
|
}
|
||||||
@@ -16,11 +16,11 @@
|
|||||||
"tfmg:cast_iron_flywheel",
|
"tfmg:cast_iron_flywheel",
|
||||||
"tfmg:aluminum_flywheel",
|
"tfmg:aluminum_flywheel",
|
||||||
"tfmg:nickel_flywheel",
|
"tfmg:nickel_flywheel",
|
||||||
"tfmg:copper_encased_brass_pipe",
|
"tfmg:encased_brass_pipe",
|
||||||
"tfmg:copper_encased_steel_pipe",
|
"tfmg:encased_steel_pipe",
|
||||||
"tfmg:copper_encased_aluminum_pipe",
|
"tfmg:encased_aluminum_pipe",
|
||||||
"tfmg:copper_encased_cast_iron_pipe",
|
"tfmg:encased_cast_iron_pipe",
|
||||||
"tfmg:copper_encased_plastic_pipe",
|
"tfmg:encased_plastic_pipe",
|
||||||
"tfmg:steel_encased_shaft",
|
"tfmg:steel_encased_shaft",
|
||||||
"tfmg:heavy_casing_encased_shaft",
|
"tfmg:heavy_casing_encased_shaft",
|
||||||
"tfmg:steel_encased_steel_cogwheel",
|
"tfmg:steel_encased_steel_cogwheel",
|
||||||
|
|||||||
@@ -99,6 +99,7 @@
|
|||||||
"tfmg:concrete_smokestack",
|
"tfmg:concrete_smokestack",
|
||||||
"tfmg:exhaust",
|
"tfmg:exhaust",
|
||||||
"tfmg:flarestack",
|
"tfmg:flarestack",
|
||||||
|
"tfmg:gas_lamp",
|
||||||
"tfmg:steel_cogwheel",
|
"tfmg:steel_cogwheel",
|
||||||
"tfmg:large_steel_cogwheel",
|
"tfmg:large_steel_cogwheel",
|
||||||
"tfmg:aluminum_cogwheel",
|
"tfmg:aluminum_cogwheel",
|
||||||
@@ -317,31 +318,31 @@
|
|||||||
"tfmg:asphalt_slab",
|
"tfmg:asphalt_slab",
|
||||||
"tfmg:asphalt_stairs",
|
"tfmg:asphalt_stairs",
|
||||||
"tfmg:brass_pipe",
|
"tfmg:brass_pipe",
|
||||||
"tfmg:copper_encased_brass_pipe",
|
"tfmg:encased_brass_pipe",
|
||||||
"tfmg:glass_brass_pipe",
|
"tfmg:glass_brass_pipe",
|
||||||
"tfmg:brass_mechanical_pump",
|
"tfmg:brass_mechanical_pump",
|
||||||
"tfmg:brass_smart_fluid_pipe",
|
"tfmg:brass_smart_fluid_pipe",
|
||||||
"tfmg:brass_fluid_valve",
|
"tfmg:brass_fluid_valve",
|
||||||
"tfmg:steel_pipe",
|
"tfmg:steel_pipe",
|
||||||
"tfmg:copper_encased_steel_pipe",
|
"tfmg:encased_steel_pipe",
|
||||||
"tfmg:glass_steel_pipe",
|
"tfmg:glass_steel_pipe",
|
||||||
"tfmg:steel_mechanical_pump",
|
"tfmg:steel_mechanical_pump",
|
||||||
"tfmg:steel_smart_fluid_pipe",
|
"tfmg:steel_smart_fluid_pipe",
|
||||||
"tfmg:steel_fluid_valve",
|
"tfmg:steel_fluid_valve",
|
||||||
"tfmg:aluminum_pipe",
|
"tfmg:aluminum_pipe",
|
||||||
"tfmg:copper_encased_aluminum_pipe",
|
"tfmg:encased_aluminum_pipe",
|
||||||
"tfmg:glass_aluminum_pipe",
|
"tfmg:glass_aluminum_pipe",
|
||||||
"tfmg:aluminum_mechanical_pump",
|
"tfmg:aluminum_mechanical_pump",
|
||||||
"tfmg:aluminum_smart_fluid_pipe",
|
"tfmg:aluminum_smart_fluid_pipe",
|
||||||
"tfmg:aluminum_fluid_valve",
|
"tfmg:aluminum_fluid_valve",
|
||||||
"tfmg:cast_iron_pipe",
|
"tfmg:cast_iron_pipe",
|
||||||
"tfmg:copper_encased_cast_iron_pipe",
|
"tfmg:encased_cast_iron_pipe",
|
||||||
"tfmg:glass_cast_iron_pipe",
|
"tfmg:glass_cast_iron_pipe",
|
||||||
"tfmg:cast_iron_mechanical_pump",
|
"tfmg:cast_iron_mechanical_pump",
|
||||||
"tfmg:cast_iron_smart_fluid_pipe",
|
"tfmg:cast_iron_smart_fluid_pipe",
|
||||||
"tfmg:cast_iron_fluid_valve",
|
"tfmg:cast_iron_fluid_valve",
|
||||||
"tfmg:plastic_pipe",
|
"tfmg:plastic_pipe",
|
||||||
"tfmg:copper_encased_plastic_pipe",
|
"tfmg:encased_plastic_pipe",
|
||||||
"tfmg:glass_plastic_pipe",
|
"tfmg:glass_plastic_pipe",
|
||||||
"tfmg:plastic_mechanical_pump",
|
"tfmg:plastic_mechanical_pump",
|
||||||
"tfmg:plastic_smart_fluid_pipe",
|
"tfmg:plastic_smart_fluid_pipe",
|
||||||
|
|||||||
@@ -0,0 +1,32 @@
|
|||||||
|
{
|
||||||
|
"parent": "minecraft:recipes/root",
|
||||||
|
"criteria": {
|
||||||
|
"has_item": {
|
||||||
|
"conditions": {
|
||||||
|
"items": [
|
||||||
|
{
|
||||||
|
"items": "tfmg:carbon_dioxide_bucket"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"trigger": "minecraft:inventory_changed"
|
||||||
|
},
|
||||||
|
"has_the_recipe": {
|
||||||
|
"conditions": {
|
||||||
|
"recipe": "tfmg:crafting/materials/fire_extinguisher"
|
||||||
|
},
|
||||||
|
"trigger": "minecraft:recipe_unlocked"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"requirements": [
|
||||||
|
[
|
||||||
|
"has_the_recipe",
|
||||||
|
"has_item"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"rewards": {
|
||||||
|
"recipes": [
|
||||||
|
"tfmg:crafting/materials/fire_extinguisher"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
{
|
||||||
|
"parent": "minecraft:recipes/root",
|
||||||
|
"criteria": {
|
||||||
|
"has_item": {
|
||||||
|
"conditions": {
|
||||||
|
"items": [
|
||||||
|
{
|
||||||
|
"items": "tfmg:cast_iron_bars"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"trigger": "minecraft:inventory_changed"
|
||||||
|
},
|
||||||
|
"has_the_recipe": {
|
||||||
|
"conditions": {
|
||||||
|
"recipe": "tfmg:crafting/materials/gas_lamp"
|
||||||
|
},
|
||||||
|
"trigger": "minecraft:recipe_unlocked"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"requirements": [
|
||||||
|
[
|
||||||
|
"has_the_recipe",
|
||||||
|
"has_item"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"rewards": {
|
||||||
|
"recipes": [
|
||||||
|
"tfmg:crafting/materials/gas_lamp"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
{
|
|
||||||
"type": "minecraft:block",
|
|
||||||
"pools": [
|
|
||||||
{
|
|
||||||
"bonus_rolls": 0.0,
|
|
||||||
"conditions": [
|
|
||||||
{
|
|
||||||
"condition": "minecraft:survives_explosion"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"entries": [
|
|
||||||
{
|
|
||||||
"type": "minecraft:item",
|
|
||||||
"name": "tfmg:aluminum_pipe"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"rolls": 1.0
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"random_sequence": "tfmg:blocks/copper_encased_aluminum_pipe"
|
|
||||||
}
|
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
{
|
|
||||||
"type": "minecraft:block",
|
|
||||||
"pools": [
|
|
||||||
{
|
|
||||||
"bonus_rolls": 0.0,
|
|
||||||
"conditions": [
|
|
||||||
{
|
|
||||||
"condition": "minecraft:survives_explosion"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"entries": [
|
|
||||||
{
|
|
||||||
"type": "minecraft:item",
|
|
||||||
"name": "tfmg:cast_iron_pipe"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"rolls": 1.0
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"random_sequence": "tfmg:blocks/copper_encased_cast_iron_pipe"
|
|
||||||
}
|
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
{
|
|
||||||
"type": "minecraft:block",
|
|
||||||
"pools": [
|
|
||||||
{
|
|
||||||
"bonus_rolls": 0.0,
|
|
||||||
"conditions": [
|
|
||||||
{
|
|
||||||
"condition": "minecraft:survives_explosion"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"entries": [
|
|
||||||
{
|
|
||||||
"type": "minecraft:item",
|
|
||||||
"name": "tfmg:plastic_pipe"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"rolls": 1.0
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"random_sequence": "tfmg:blocks/copper_encased_plastic_pipe"
|
|
||||||
}
|
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
{
|
|
||||||
"type": "minecraft:block",
|
|
||||||
"pools": [
|
|
||||||
{
|
|
||||||
"bonus_rolls": 0.0,
|
|
||||||
"conditions": [
|
|
||||||
{
|
|
||||||
"condition": "minecraft:survives_explosion"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"entries": [
|
|
||||||
{
|
|
||||||
"type": "minecraft:item",
|
|
||||||
"name": "tfmg:steel_pipe"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"rolls": 1.0
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"random_sequence": "tfmg:blocks/copper_encased_steel_pipe"
|
|
||||||
}
|
|
||||||
@@ -11,11 +11,11 @@
|
|||||||
"entries": [
|
"entries": [
|
||||||
{
|
{
|
||||||
"type": "minecraft:item",
|
"type": "minecraft:item",
|
||||||
"name": "tfmg:brass_pipe"
|
"name": "tfmg:gas_lamp"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"rolls": 1.0
|
"rolls": 1.0
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"random_sequence": "tfmg:blocks/copper_encased_brass_pipe"
|
"random_sequence": "tfmg:blocks/gas_lamp"
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
{
|
||||||
|
"type": "minecraft:crafting_shaped",
|
||||||
|
"category": "misc",
|
||||||
|
"key": {
|
||||||
|
"A": {
|
||||||
|
"tag": "c:plates/aluminum"
|
||||||
|
},
|
||||||
|
"C": {
|
||||||
|
"item": "tfmg:carbon_dioxide_bucket"
|
||||||
|
},
|
||||||
|
"N": {
|
||||||
|
"tag": "c:nuggets/steel"
|
||||||
|
},
|
||||||
|
"R": {
|
||||||
|
"item": "minecraft:red_dye"
|
||||||
|
},
|
||||||
|
"S": {
|
||||||
|
"tag": "c:ingots/steel"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"pattern": [
|
||||||
|
"NSR",
|
||||||
|
"ACA",
|
||||||
|
"AAA"
|
||||||
|
],
|
||||||
|
"result": {
|
||||||
|
"count": 1,
|
||||||
|
"id": "tfmg:fire_extinguisher"
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
{
|
||||||
|
"type": "minecraft:crafting_shaped",
|
||||||
|
"category": "misc",
|
||||||
|
"key": {
|
||||||
|
"B": {
|
||||||
|
"item": "tfmg:cast_iron_bars"
|
||||||
|
},
|
||||||
|
"C": {
|
||||||
|
"tag": "c:plates/cast_iron"
|
||||||
|
},
|
||||||
|
"G": {
|
||||||
|
"item": "create:framed_glass"
|
||||||
|
},
|
||||||
|
"P": {
|
||||||
|
"item": "tfmg:industrial_pipe"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"pattern": [
|
||||||
|
" C ",
|
||||||
|
"BGB",
|
||||||
|
" P "
|
||||||
|
],
|
||||||
|
"result": {
|
||||||
|
"count": 1,
|
||||||
|
"id": "tfmg:gas_lamp"
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"type": "create:filling",
|
||||||
|
"ingredients": [
|
||||||
|
{
|
||||||
|
"item": "tfmg:fire_extinguisher"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "fluid_stack",
|
||||||
|
"amount": 1000,
|
||||||
|
"fluid": "tfmg:carbon_dioxide"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"results": [
|
||||||
|
{
|
||||||
|
"components": {
|
||||||
|
"tfmg:amount": 500
|
||||||
|
},
|
||||||
|
"id": "tfmg:fire_extinguisher"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -92,6 +92,7 @@ public class TFMGCreativeTabs {
|
|||||||
list.add(TFMGItems.COPPER_SPOOL);
|
list.add(TFMGItems.COPPER_SPOOL);
|
||||||
list.add(TFMGItems.CONSTANTAN_SPOOL);
|
list.add(TFMGItems.CONSTANTAN_SPOOL);
|
||||||
|
|
||||||
|
|
||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
public static List<ItemStack> customAdditions(){
|
public static List<ItemStack> customAdditions(){
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ package com.drmangotea.tfmg.base;
|
|||||||
|
|
||||||
import net.createmod.catnip.math.VoxelShaper;
|
import net.createmod.catnip.math.VoxelShaper;
|
||||||
import net.minecraft.core.Direction;
|
import net.minecraft.core.Direction;
|
||||||
import net.minecraft.core.Direction.Axis;
|
import net.minecraft.core.Direction.*;
|
||||||
import net.minecraft.world.level.block.Block;
|
import net.minecraft.world.level.block.Block;
|
||||||
import net.minecraft.world.phys.shapes.BooleanOp;
|
import net.minecraft.world.phys.shapes.BooleanOp;
|
||||||
import net.minecraft.world.phys.shapes.Shapes;
|
import net.minecraft.world.phys.shapes.Shapes;
|
||||||
@@ -140,6 +140,7 @@ public class TFMGShapes {
|
|||||||
TRAFFIC_LIGHT = shape(3, 0, 3, 13, 16, 13).build(),
|
TRAFFIC_LIGHT = shape(3, 0, 3, 13, 16, 13).build(),
|
||||||
REBAR_FLOOR = shape(0, 4, 0, 16, 12, 16)
|
REBAR_FLOOR = shape(0, 4, 0, 16, 12, 16)
|
||||||
.build(),
|
.build(),
|
||||||
|
GAS_LAMP = shape(1, 0, 1, 15, 22, 15).build(),
|
||||||
SURFACE_SCANNER = shape(2, 0, 2, 14, 14, 14).build(),
|
SURFACE_SCANNER = shape(2, 0, 2, 14, 14, 14).build(),
|
||||||
FULL = shape(0, 0, 0, 16, 16, 16).build(),
|
FULL = shape(0, 0, 0, 16, 16, 16).build(),
|
||||||
ELECTRIC_POST = shape(4, 0, 4, 12, 16, 12).build(),
|
ELECTRIC_POST = shape(4, 0, 4, 12, 16, 12).build(),
|
||||||
|
|||||||
@@ -15,6 +15,8 @@ import com.simibubi.create.content.fluids.tank.FluidTankBlockEntity;
|
|||||||
import com.simibubi.create.foundation.fluid.SmartFluidTank;
|
import com.simibubi.create.foundation.fluid.SmartFluidTank;
|
||||||
import com.simibubi.create.foundation.utility.CreateLang;
|
import com.simibubi.create.foundation.utility.CreateLang;
|
||||||
import net.createmod.catnip.lang.LangBuilder;
|
import net.createmod.catnip.lang.LangBuilder;
|
||||||
|
import net.createmod.catnip.outliner.Outliner;
|
||||||
|
import net.createmod.catnip.theme.Color;
|
||||||
import net.minecraft.ChatFormatting;
|
import net.minecraft.ChatFormatting;
|
||||||
import net.minecraft.client.renderer.LightTexture;
|
import net.minecraft.client.renderer.LightTexture;
|
||||||
import net.minecraft.client.renderer.MultiBufferSource;
|
import net.minecraft.client.renderer.MultiBufferSource;
|
||||||
@@ -32,6 +34,7 @@ import net.minecraft.world.entity.player.Player;
|
|||||||
import net.minecraft.world.item.ItemStack;
|
import net.minecraft.world.item.ItemStack;
|
||||||
import net.minecraft.world.level.Level;
|
import net.minecraft.world.level.Level;
|
||||||
import net.minecraft.world.level.LightLayer;
|
import net.minecraft.world.level.LightLayer;
|
||||||
|
import net.minecraft.world.level.block.Block;
|
||||||
import net.minecraft.world.level.block.entity.BlockEntity;
|
import net.minecraft.world.level.block.entity.BlockEntity;
|
||||||
import net.minecraft.world.level.material.Fluid;
|
import net.minecraft.world.level.material.Fluid;
|
||||||
import net.minecraft.world.phys.AABB;
|
import net.minecraft.world.phys.AABB;
|
||||||
@@ -111,6 +114,16 @@ public class TFMGUtils {
|
|||||||
createFireExplosion(be.getLevel(), null, new BlockPos(be.getBlockPos().getX() + (be.getWidth() / 2), be.getBlockPos().getY() + (be.getHeight() / 2), be.getBlockPos().getZ() + (be.getWidth() / 2)), power * 15, (float) power);
|
createFireExplosion(be.getLevel(), null, new BlockPos(be.getBlockPos().getX() + (be.getWidth() / 2), be.getBlockPos().getY() + (be.getHeight() / 2), be.getBlockPos().getZ() + (be.getWidth() / 2)), power * 15, (float) power);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void createOutline(Vec3 pos1, Vec3 pos2,String name,Color color){
|
||||||
|
createOutline(pos1,pos2,name,color,1/32f);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void createOutline(Vec3 pos1, Vec3 pos2,String name,Color color,float width){
|
||||||
|
Outliner.getInstance().showAABB(name, new AABB(pos1, pos2))
|
||||||
|
.lineWidth(width)
|
||||||
|
.colored(color);
|
||||||
|
}
|
||||||
|
|
||||||
public static String fromId(String key) {
|
public static String fromId(String key) {
|
||||||
String s = key.replaceAll("_", " ");
|
String s = key.replaceAll("_", " ");
|
||||||
s = Arrays.stream(StringUtils.splitByCharacterTypeCamelCase(s)).map(StringUtils::capitalize).collect(Collectors.joining(" "));
|
s = Arrays.stream(StringUtils.splitByCharacterTypeCamelCase(s)).map(StringUtils::capitalize).collect(Collectors.joining(" "));
|
||||||
|
|||||||
@@ -2,7 +2,9 @@ package com.drmangotea.tfmg.base.events;
|
|||||||
|
|
||||||
import com.drmangotea.tfmg.TFMG;
|
import com.drmangotea.tfmg.TFMG;
|
||||||
import com.drmangotea.tfmg.TFMGClient;
|
import com.drmangotea.tfmg.TFMGClient;
|
||||||
|
import com.drmangotea.tfmg.content.electricity.connection.cables.CableConnectorBlockEntity;
|
||||||
import com.drmangotea.tfmg.content.electricity.measurement.MultimeterOverlayRenderer;
|
import com.drmangotea.tfmg.content.electricity.measurement.MultimeterOverlayRenderer;
|
||||||
|
import com.drmangotea.tfmg.content.electricity.network.transformer.TransformerBlockEntity;
|
||||||
import com.drmangotea.tfmg.content.engines.engine_controller.EngineControllerClientHandler;
|
import com.drmangotea.tfmg.content.engines.engine_controller.EngineControllerClientHandler;
|
||||||
import com.drmangotea.tfmg.content.items.weapons.advanced_potato_cannon.AdvancedPotatoCannonItemRenderer;
|
import com.drmangotea.tfmg.content.items.weapons.advanced_potato_cannon.AdvancedPotatoCannonItemRenderer;
|
||||||
import com.drmangotea.tfmg.content.items.weapons.quad_potato_cannon.QuadPotatoCannonItemRenderer;
|
import com.drmangotea.tfmg.content.items.weapons.quad_potato_cannon.QuadPotatoCannonItemRenderer;
|
||||||
@@ -45,6 +47,9 @@ public class TFMGClientEvents {
|
|||||||
if (isPreEvent) {
|
if (isPreEvent) {
|
||||||
EngineControllerClientHandler.tick();
|
EngineControllerClientHandler.tick();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TransformerBlockEntity.tickOutliner();
|
||||||
|
CableConnectorBlockEntity.tickOutliner();
|
||||||
}
|
}
|
||||||
@SubscribeEvent
|
@SubscribeEvent
|
||||||
public static void PlayerLoggedOut(PlayerEvent.PlayerLoggedOutEvent event) {
|
public static void PlayerLoggedOut(PlayerEvent.PlayerLoggedOutEvent event) {
|
||||||
|
|||||||
@@ -15,15 +15,13 @@ public class BlueSpark extends Spark{
|
|||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public int getColor() {
|
public int getColor() {
|
||||||
return 0x00FFFF;
|
return 0xC4F2F2;
|
||||||
}
|
}
|
||||||
|
|
||||||
public float[] getCustomParticleTrail() {
|
|
||||||
return new float[]{4.1f, 60.2f, 100.3f};
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Optional<BlockState> getFireState(BlockPos pos) {
|
public Optional<BlockState> getFireState(BlockPos pos) {
|
||||||
return Optional.of(BlueFireBlock.getState(this.level(),pos));
|
return Optional.empty();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
100
src/main/java/com/drmangotea/tfmg/base/spark/DryIceFlake.java
Normal file
@@ -0,0 +1,100 @@
|
|||||||
|
package com.drmangotea.tfmg.base.spark;
|
||||||
|
|
||||||
|
import com.drmangotea.tfmg.TFMG;
|
||||||
|
import com.drmangotea.tfmg.config.TFMGConfigs;
|
||||||
|
import com.drmangotea.tfmg.registry.TFMGMobEffects;
|
||||||
|
import net.minecraft.core.BlockPos;
|
||||||
|
import net.minecraft.core.particles.ParticleOptions;
|
||||||
|
import net.minecraft.core.particles.ParticleTypes;
|
||||||
|
import net.minecraft.resources.ResourceLocation;
|
||||||
|
import net.minecraft.server.packs.resources.Resource;
|
||||||
|
import net.minecraft.world.effect.MobEffectInstance;
|
||||||
|
import net.minecraft.world.effect.MobEffects;
|
||||||
|
import net.minecraft.world.entity.Entity;
|
||||||
|
import net.minecraft.world.entity.EntityType;
|
||||||
|
import net.minecraft.world.entity.LivingEntity;
|
||||||
|
import net.minecraft.world.entity.Mob;
|
||||||
|
import net.minecraft.world.level.Level;
|
||||||
|
import net.minecraft.world.level.block.BaseFireBlock;
|
||||||
|
import net.minecraft.world.level.block.Blocks;
|
||||||
|
import net.minecraft.world.level.block.state.BlockState;
|
||||||
|
import net.minecraft.world.phys.AABB;
|
||||||
|
import net.minecraft.world.phys.BlockHitResult;
|
||||||
|
import net.minecraft.world.phys.EntityHitResult;
|
||||||
|
|
||||||
|
import java.util.stream.Stream;
|
||||||
|
|
||||||
|
public class DryIceFlake extends Spark{
|
||||||
|
public DryIceFlake(EntityType<? extends Spark> p_37391_, Level p_37392_) {
|
||||||
|
super(p_37391_, p_37392_);
|
||||||
|
}
|
||||||
|
protected void onHitBlock(BlockHitResult blockHit) {
|
||||||
|
if (!this.level().isClientSide) {
|
||||||
|
Entity owner = this.getOwner();
|
||||||
|
if (!(owner instanceof Mob) ) {
|
||||||
|
BlockPos hitBlockPos = blockHit.getBlockPos().relative(blockHit.getDirection());
|
||||||
|
|
||||||
|
AABB extinguisRadius = new AABB(hitBlockPos);
|
||||||
|
extinguisRadius = extinguisRadius.inflate(TFMGConfigs.common().machines.fireExtinguisherClearRadius.get());
|
||||||
|
|
||||||
|
Stream<BlockPos> positions = BlockPos.betweenClosedStream(extinguisRadius);
|
||||||
|
|
||||||
|
positions.forEach(p->{
|
||||||
|
BlockState state = level().getBlockState(p);
|
||||||
|
|
||||||
|
if (state.getBlock() instanceof BaseFireBlock) {
|
||||||
|
this.level().setBlockAndUpdate(p, Blocks.AIR.defaultBlockState());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void onHitEntity(EntityHitResult entityHit) {
|
||||||
|
if (!this.level().isClientSide) {
|
||||||
|
Entity hitEntity = entityHit.getEntity();
|
||||||
|
hitEntity.extinguishFire();
|
||||||
|
|
||||||
|
if (hitEntity.canFreeze()) {
|
||||||
|
// Apply freezing
|
||||||
|
int currentFreeze = hitEntity.getTicksFrozen();
|
||||||
|
int freezeIncrement = 10;
|
||||||
|
int newFreeze = Math.min(currentFreeze + freezeIncrement, hitEntity.getTicksRequiredToFreeze() + 20); // Slightly overfreeze
|
||||||
|
hitEntity.setTicksFrozen(newFreeze);
|
||||||
|
|
||||||
|
// Damage if fully frozen
|
||||||
|
if (newFreeze >= hitEntity.getTicksRequiredToFreeze()) {
|
||||||
|
hitEntity.hurt(this.damageSources().freeze(), 2.0F);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Slow movement and remove hellfire
|
||||||
|
if (hitEntity instanceof LivingEntity livingEntity) {
|
||||||
|
livingEntity.addEffect(new MobEffectInstance(
|
||||||
|
MobEffects.MOVEMENT_SLOWDOWN,
|
||||||
|
20,
|
||||||
|
2,
|
||||||
|
false, false, true
|
||||||
|
));
|
||||||
|
|
||||||
|
livingEntity.removeEffect(TFMGMobEffects.HELLFIRE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getColor() {
|
||||||
|
return 0xFFFFFF;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ResourceLocation getTexture() {
|
||||||
|
return TFMG.asResource("textures/entity/dry_ice_flake.png");
|
||||||
|
}
|
||||||
|
|
||||||
|
public ParticleOptions getTrailParticle(){
|
||||||
|
return ParticleTypes.SNOWFLAKE;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,6 +1,7 @@
|
|||||||
package com.drmangotea.tfmg.base.spark;
|
package com.drmangotea.tfmg.base.spark;
|
||||||
|
|
||||||
|
|
||||||
|
import com.drmangotea.tfmg.TFMG;
|
||||||
import com.drmangotea.tfmg.registry.TFMGMobEffects;
|
import com.drmangotea.tfmg.registry.TFMGMobEffects;
|
||||||
import com.simibubi.create.content.trains.CubeParticleData;
|
import com.simibubi.create.content.trains.CubeParticleData;
|
||||||
import net.minecraft.core.BlockPos;
|
import net.minecraft.core.BlockPos;
|
||||||
@@ -53,6 +54,10 @@ public class Spark extends ThrowableProjectile {
|
|||||||
return ParticleTypes.FLAME;
|
return ParticleTypes.FLAME;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public ResourceLocation getTexture(){
|
||||||
|
return TFMG.asResource("textures/entity/spark.png");
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void defineSynchedData(SynchedEntityData.Builder builder) {
|
protected void defineSynchedData(SynchedEntityData.Builder builder) {
|
||||||
|
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ import net.minecraft.resources.ResourceLocation;
|
|||||||
|
|
||||||
import net.neoforged.api.distmarker.Dist;
|
import net.neoforged.api.distmarker.Dist;
|
||||||
import net.neoforged.api.distmarker.OnlyIn;
|
import net.neoforged.api.distmarker.OnlyIn;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.joml.Matrix3f;
|
import org.joml.Matrix3f;
|
||||||
import org.joml.Matrix4f;
|
import org.joml.Matrix4f;
|
||||||
|
|
||||||
@@ -27,8 +28,8 @@ public class SparkRenderer extends EntityRenderer<Spark> {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
private static final ResourceLocation TEXTURE_LOCATION = TFMG.asResource("textures/entity/spark.png");
|
|
||||||
private static final RenderType RENDER_TYPE = RenderType.entityCutoutNoCull(TEXTURE_LOCATION);
|
|
||||||
public SparkRenderer(EntityRendererProvider.Context p_173962_) {
|
public SparkRenderer(EntityRendererProvider.Context p_173962_) {
|
||||||
super(p_173962_);
|
super(p_173962_);
|
||||||
}
|
}
|
||||||
@@ -45,7 +46,7 @@ public class SparkRenderer extends EntityRenderer<Spark> {
|
|||||||
PoseStack.Pose posestack$pose = poseStack.last();
|
PoseStack.Pose posestack$pose = poseStack.last();
|
||||||
Matrix4f matrix4f = posestack$pose.pose();
|
Matrix4f matrix4f = posestack$pose.pose();
|
||||||
Matrix3f matrix3f = posestack$pose.normal();
|
Matrix3f matrix3f = posestack$pose.normal();
|
||||||
VertexConsumer vertexconsumer = bufferSource.getBuffer(RENDER_TYPE);
|
VertexConsumer vertexconsumer = bufferSource.getBuffer(RenderType.entityCutoutNoCull(spark.getTexture()));
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -59,8 +60,8 @@ public class SparkRenderer extends EntityRenderer<Spark> {
|
|||||||
private void vertex(VertexConsumer vertexConsumer, Matrix4f matrix4f, Matrix3f matrix3f, int p_114093_, float p_114094_, int p_114095_, int p_114096_, int p_114097_,int color) {
|
private void vertex(VertexConsumer vertexConsumer, Matrix4f matrix4f, Matrix3f matrix3f, int p_114093_, float p_114094_, int p_114095_, int p_114096_, int p_114097_,int color) {
|
||||||
vertexConsumer.addVertex(matrix4f, p_114094_ - 0.5F, (float)p_114095_ - 0.25F, 0.0F).setColor(color).setUv((float)p_114096_, (float)p_114097_).setOverlay(OverlayTexture.NO_OVERLAY).setLight(15728880).setUv2(p_114093_,p_114093_).setNormal( 0.0F, 1.0F, 0.0F);
|
vertexConsumer.addVertex(matrix4f, p_114094_ - 0.5F, (float)p_114095_ - 0.25F, 0.0F).setColor(color).setUv((float)p_114096_, (float)p_114097_).setOverlay(OverlayTexture.NO_OVERLAY).setLight(15728880).setUv2(p_114093_,p_114093_).setNormal( 0.0F, 1.0F, 0.0F);
|
||||||
}
|
}
|
||||||
public ResourceLocation getTextureLocation(Spark p_114078_) {
|
public @NotNull ResourceLocation getTextureLocation(Spark spark) {
|
||||||
return TEXTURE_LOCATION;
|
return spark.getTexture();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -5,6 +5,8 @@ import net.createmod.catnip.config.ConfigBase;
|
|||||||
|
|
||||||
public class MachineConfig extends ConfigBase {
|
public class MachineConfig extends ConfigBase {
|
||||||
|
|
||||||
|
public final ConfigInt fireExtinguisherClearRadius = i(1, 0, "fireExtinguisherClearRadius", Comments.fireExtinguisherClearRadius);
|
||||||
|
|
||||||
public final ConfigFloat electricMotorInternalResistance = f(100, 0, "electricMotorInternalResistance", Comments.electricMotorInternalResistance);
|
public final ConfigFloat electricMotorInternalResistance = f(100, 0, "electricMotorInternalResistance", Comments.electricMotorInternalResistance);
|
||||||
public final ConfigInt cokeOvenMaxSize = i(5, 1, "cokeOvenMaxSize", Comments.cokeOvenMaxSize);
|
public final ConfigInt cokeOvenMaxSize = i(5, 1, "cokeOvenMaxSize", Comments.cokeOvenMaxSize);
|
||||||
public final ConfigFloat FEtoWattTickConversionRate = f(1, 0, "FEtoWattTickConversionRate", Comments.FEtoWattTickConversionRate);
|
public final ConfigFloat FEtoWattTickConversionRate = f(1, 0, "FEtoWattTickConversionRate", Comments.FEtoWattTickConversionRate);
|
||||||
@@ -49,6 +51,7 @@ public class MachineConfig extends ConfigBase {
|
|||||||
|
|
||||||
|
|
||||||
private static class Comments {
|
private static class Comments {
|
||||||
|
static String fireExtinguisherClearRadius = "Changes the radius fire extinguishers can remove fire in.";
|
||||||
static String largeGenerator = "Determines how powerful the large generator is.";
|
static String largeGenerator = "Determines how powerful the large generator is.";
|
||||||
static String generator = "Determines how powerful the generator is.";
|
static String generator = "Determines how powerful the generator is.";
|
||||||
static String largeGeneratorMinSpeed = "Changes the lowest speed the large generator can work on.";
|
static String largeGeneratorMinSpeed = "Changes the lowest speed the large generator can work on.";
|
||||||
|
|||||||
@@ -4,19 +4,30 @@ public class ElectricBlockValues {
|
|||||||
|
|
||||||
|
|
||||||
public long electricalNetworkId;
|
public long electricalNetworkId;
|
||||||
|
|
||||||
public boolean destroyed = false;
|
public boolean destroyed = false;
|
||||||
|
|
||||||
public boolean connectNextTick = false;
|
public boolean connectNextTick = false;
|
||||||
|
|
||||||
public boolean checkForLoopsNextTick = false;
|
public boolean checkForLoopsNextTick = false;
|
||||||
|
|
||||||
public boolean updatePowerNextTick = false;
|
public boolean updatePowerNextTick = false;
|
||||||
|
|
||||||
public boolean updateNextTick = false;
|
public boolean updateNextTick = false;
|
||||||
|
|
||||||
public boolean getsOutsidePower = false;
|
public boolean getsOutsidePower = false;
|
||||||
|
|
||||||
public int networkResistance = 0;
|
public int networkResistance = 0;
|
||||||
|
|
||||||
public int voltage = 0;
|
public int voltage = 0;
|
||||||
|
|
||||||
public int voltageSupply = 0;
|
public int voltageSupply = 0;
|
||||||
|
|
||||||
public int networkPowerGeneration = 0;
|
public int networkPowerGeneration = 0;
|
||||||
|
|
||||||
public float highestCurrent = 0;
|
public float highestCurrent = 0;
|
||||||
|
|
||||||
public boolean notEnoughtPower = false;
|
public boolean notEnoughPower = false;
|
||||||
|
|
||||||
public boolean setVoltageNextTick = false;
|
public boolean setVoltageNextTick = false;
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +1,6 @@
|
|||||||
package com.drmangotea.tfmg.content.electricity.base;
|
package com.drmangotea.tfmg.content.electricity.base;
|
||||||
|
|
||||||
import com.drmangotea.tfmg.content.electricity.utilities.diode.ElectricDiodeBlockEntity;
|
|
||||||
import com.drmangotea.tfmg.content.electricity.utilities.electric_motor.ElectricMotorBlockEntity;
|
import com.drmangotea.tfmg.content.electricity.utilities.electric_motor.ElectricMotorBlockEntity;
|
||||||
import com.drmangotea.tfmg.content.electricity.utilities.transformer.TransformerBlockEntity;
|
|
||||||
import net.minecraft.core.BlockPos;
|
import net.minecraft.core.BlockPos;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@@ -44,7 +42,7 @@ public class ElectricalNetwork {
|
|||||||
Map<Integer, Float> groups = new HashMap<>();
|
Map<Integer, Float> groups = new HashMap<>();
|
||||||
|
|
||||||
for (IElectric member : members) {
|
for (IElectric member : members) {
|
||||||
member.getData().notEnoughtPower = false;
|
member.getData().notEnoughPower = false;
|
||||||
int groupId = member.getData().group.id;
|
int groupId = member.getData().group.id;
|
||||||
|
|
||||||
maxVoltage = Math.max(member.voltageGeneration(), maxVoltage);
|
maxVoltage = Math.max(member.voltageGeneration(), maxVoltage);
|
||||||
@@ -79,13 +77,11 @@ public class ElectricalNetwork {
|
|||||||
member.getData().highestCurrent = getCableCurrent(member);
|
member.getData().highestCurrent = getCableCurrent(member);
|
||||||
|
|
||||||
member.updateNearbyNetworks(member);
|
member.updateNearbyNetworks(member);
|
||||||
if (member instanceof ElectricDiodeBlockEntity be) {
|
if (member instanceof VoltageAlteringBlockEntity be) {
|
||||||
be.updateInFront();
|
|
||||||
}
|
|
||||||
if (member instanceof TransformerBlockEntity be) {
|
|
||||||
be.updateInFront();
|
be.updateInFront();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
handleInsufficientPower();
|
handleInsufficientPower();
|
||||||
@@ -96,19 +92,16 @@ public class ElectricalNetwork {
|
|||||||
if (!members.isEmpty())
|
if (!members.isEmpty())
|
||||||
if (members.get(0).getNetworkPowerUsage() > members.get(0).getNetworkPowerGeneration()) {
|
if (members.get(0).getNetworkPowerUsage() > members.get(0).getNetworkPowerGeneration()) {
|
||||||
for (IElectric member : members) {
|
for (IElectric member : members) {
|
||||||
member.getData().notEnoughtPower = true;
|
member.getData().notEnoughPower = true;
|
||||||
if (member instanceof ElectricMotorBlockEntity be) {
|
if (member instanceof ElectricMotorBlockEntity be) {
|
||||||
be.updateGeneratedRotation();
|
be.updateGeneratedRotation();
|
||||||
}
|
}
|
||||||
if (member instanceof ElectricDiodeBlockEntity be)
|
if (member instanceof VoltageAlteringBlockEntity be)
|
||||||
be.updateInFront = true;
|
be.updateInFront = true;
|
||||||
if (member instanceof TransformerBlockEntity be)
|
|
||||||
be.updateInFront();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public static float getCableCurrent(IElectric be) {
|
public static float getCableCurrent(IElectric be) {
|
||||||
|
|
||||||
float current = 0;
|
float current = 0;
|
||||||
|
|||||||
@@ -1,14 +1,10 @@
|
|||||||
package com.drmangotea.tfmg.content.electricity.base;
|
package com.drmangotea.tfmg.content.electricity.base;
|
||||||
|
|
||||||
import com.drmangotea.tfmg.TFMG;
|
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.base.lang.TFMGTexts;
|
||||||
import com.drmangotea.tfmg.content.electricity.connection.cables.CableConnection;
|
import com.drmangotea.tfmg.content.electricity.connection.cables.CableConnection;
|
||||||
import com.drmangotea.tfmg.content.electricity.connection.cables.CableConnectorBlockEntity;
|
import com.drmangotea.tfmg.content.electricity.connection.cables.CableConnectorBlockEntity;
|
||||||
import com.simibubi.create.foundation.utility.CreateLang;
|
|
||||||
import net.createmod.catnip.platform.CatnipServices;
|
import net.createmod.catnip.platform.CatnipServices;
|
||||||
import net.createmod.catnip.theme.Color;
|
|
||||||
import net.minecraft.ChatFormatting;
|
import net.minecraft.ChatFormatting;
|
||||||
import net.minecraft.core.BlockPos;
|
import net.minecraft.core.BlockPos;
|
||||||
import net.minecraft.core.Direction;
|
import net.minecraft.core.Direction;
|
||||||
@@ -196,18 +192,20 @@ public interface IElectric {
|
|||||||
TFMGTexts.header("multimeter").style(ChatFormatting.WHITE)
|
TFMGTexts.header("multimeter").style(ChatFormatting.WHITE)
|
||||||
.forGoggles(tooltip);
|
.forGoggles(tooltip);
|
||||||
|
|
||||||
if (getData().notEnoughtPower) TFMGTexts.Multimeter.notEnoughPower().forGoggles(tooltip, 1);
|
if (getData().notEnoughPower) TFMGTexts.Multimeter.notEnoughPower().forGoggles(tooltip, 1);
|
||||||
|
|
||||||
if (voltageGeneration() > 0) {
|
if (voltageGeneration() > 0) {
|
||||||
TFMGTexts.Multimeter.powerGenerated(powerGeneration()).forGoggles(tooltip, 1);
|
TFMGTexts.Multimeter.powerGenerated(powerGeneration()).forGoggles(tooltip, 1);
|
||||||
TFMGTexts.Multimeter.voltageGenerated(voltageGeneration()).forGoggles(tooltip, 1);
|
TFMGTexts.Multimeter.voltageGenerated(voltageGeneration()).forGoggles(tooltip, 1);
|
||||||
TFMGTexts.Multimeter.separator().forGoggles(tooltip);
|
TFMGTexts.Multimeter.separator().forGoggles(tooltip);
|
||||||
}
|
}
|
||||||
|
if (resistance() != 0)
|
||||||
TFMGTexts.Multimeter.resistance(voltageGeneration() > 0 ? getGeneratorResistance() : resistance()).forGoggles(tooltip, 1);
|
TFMGTexts.Multimeter.resistance(voltageGeneration() > 0 ? getGeneratorResistance() : resistance()).forGoggles(tooltip, 1);
|
||||||
TFMGTexts.Multimeter.voltage(getData().getVoltage()).forGoggles(tooltip, 1);
|
TFMGTexts.Multimeter.voltage(getData().getVoltage()).forGoggles(tooltip, 1);
|
||||||
TFMGTexts.Multimeter.current(getCurrent()).forGoggles(tooltip, 1);
|
TFMGTexts.Multimeter.current(resistance() == 0 ? getData().highestCurrent : getCurrent()).forGoggles(tooltip, 1);
|
||||||
TFMGTexts.Multimeter.power(getPowerUsage()).forGoggles(tooltip, 1);
|
if (resistance() != 0)
|
||||||
|
TFMGTexts.Multimeter.power(getPowerUsage()).forGoggles(tooltip, 1);
|
||||||
|
|
||||||
|
|
||||||
if (getData().group.id != -1) {
|
if (getData().group.id != -1) {
|
||||||
TFMGTexts.Multimeter.separator().forGoggles(tooltip);
|
TFMGTexts.Multimeter.separator().forGoggles(tooltip);
|
||||||
@@ -240,7 +238,7 @@ public interface IElectric {
|
|||||||
ElectricBlockValues getData();
|
ElectricBlockValues getData();
|
||||||
|
|
||||||
default boolean canWork() {
|
default boolean canWork() {
|
||||||
return !getData().notEnoughtPower;
|
return !getData().notEnoughPower;
|
||||||
}
|
}
|
||||||
|
|
||||||
default void blockFail() {
|
default void blockFail() {
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
package com.drmangotea.tfmg.content.electricity.base;
|
package com.drmangotea.tfmg.content.electricity.base;
|
||||||
|
|
||||||
|
|
||||||
import com.drmangotea.tfmg.content.electricity.utilities.diode.ElectricDiodeBlockEntity;
|
|
||||||
import com.drmangotea.tfmg.registry.TFMGPackets;
|
import com.drmangotea.tfmg.registry.TFMGPackets;
|
||||||
import com.simibubi.create.foundation.blockEntity.SmartBlockEntity;
|
import com.simibubi.create.foundation.blockEntity.SmartBlockEntity;
|
||||||
import com.simibubi.create.foundation.networking.BlockEntityDataPacket;
|
import com.simibubi.create.foundation.networking.BlockEntityDataPacket;
|
||||||
@@ -23,7 +22,7 @@ public class UpdateInFrontPacket extends BlockEntityDataPacket<SmartBlockEntity>
|
|||||||
@Override
|
@Override
|
||||||
protected void handlePacket(SmartBlockEntity blockEntity) {
|
protected void handlePacket(SmartBlockEntity blockEntity) {
|
||||||
|
|
||||||
if (blockEntity instanceof ElectricDiodeBlockEntity be) {
|
if (blockEntity instanceof VoltageAlteringBlockEntity be) {
|
||||||
be.updateInFrontNextTick();
|
be.updateInFrontNextTick();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,17 +1,154 @@
|
|||||||
package com.drmangotea.tfmg.content.electricity.base;
|
package com.drmangotea.tfmg.content.electricity.base;
|
||||||
|
|
||||||
|
import com.drmangotea.tfmg.base.blocks.TFMGHorizontalDirectionalBlock;
|
||||||
|
import net.createmod.catnip.platform.CatnipServices;
|
||||||
import net.minecraft.core.BlockPos;
|
import net.minecraft.core.BlockPos;
|
||||||
|
import net.minecraft.core.Direction;
|
||||||
|
import net.minecraft.server.level.ServerLevel;
|
||||||
|
import net.minecraft.world.level.ChunkPos;
|
||||||
|
import net.minecraft.world.level.block.DirectionalBlock;
|
||||||
|
import net.minecraft.world.level.block.HorizontalDirectionalBlock;
|
||||||
import net.minecraft.world.level.block.entity.BlockEntityType;
|
import net.minecraft.world.level.block.entity.BlockEntityType;
|
||||||
import net.minecraft.world.level.block.state.BlockState;
|
import net.minecraft.world.level.block.state.BlockState;
|
||||||
|
|
||||||
public abstract class VoltageAlteringBlockEntity extends ElectricBlockEntity{
|
import static net.minecraft.world.level.block.DirectionalBlock.FACING;
|
||||||
|
|
||||||
|
public class VoltageAlteringBlockEntity extends ElectricBlockEntity{
|
||||||
|
|
||||||
|
public boolean updateInFront = false;
|
||||||
|
|
||||||
public VoltageAlteringBlockEntity(BlockEntityType<?> type, BlockPos pos, BlockState state) {
|
public VoltageAlteringBlockEntity(BlockEntityType<?> type, BlockPos pos, BlockState state) {
|
||||||
super(type, pos, state);
|
super(type, pos, state);
|
||||||
}
|
}
|
||||||
|
|
||||||
public abstract int getOutputVoltage();
|
|
||||||
|
|
||||||
public abstract int getOutputPower();
|
public int getOutputVoltage() {
|
||||||
|
return getData().getVoltage();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public int getOutputPower() {
|
||||||
|
return getPowerUsage();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void tick() {
|
||||||
|
super.tick();
|
||||||
|
if (updateInFront) {
|
||||||
|
updateInFront();
|
||||||
|
updateInFront = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getPowerUsage() {
|
||||||
|
getOrCreateElectricNetwork().checkForLoops(getBlockPos());
|
||||||
|
Direction facing = getDirection();
|
||||||
|
if (level.getBlockEntity(getBlockPos().relative(facing)) instanceof IElectric be && be.getData().getId() != data.getId()) {
|
||||||
|
if (be.hasElectricitySlot(facing.getOpposite()))
|
||||||
|
|
||||||
|
return Math.max(be.getNetworkPowerUsage(this), 0);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public IElectric getControlledBlock() {
|
||||||
|
Direction facing = getBlockState().hasProperty(DirectionalBlock.FACING) ? getBlockState().getValue(DirectionalBlock.FACING) : getBlockState().getValue(HorizontalDirectionalBlock.FACING).getCounterClockWise();
|
||||||
|
if (level.getBlockEntity(getBlockPos().relative(facing)) instanceof IElectric be && be.getData().getId() != data.getId()) {
|
||||||
|
return be;
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public float resistance() {
|
||||||
|
Direction facing = getDirection();
|
||||||
|
if (level.getBlockEntity(getBlockPos().relative(facing)) instanceof IElectric be && be.getData().getId() != data.getId()) {
|
||||||
|
if (be.hasElectricitySlot(facing.getOpposite()))
|
||||||
|
return Math.max(be.getNetworkResistance(), 0);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Direction getDirection(){
|
||||||
|
if(!getBlockState().hasProperty(FACING)){
|
||||||
|
return getBlockState().getValue(TFMGHorizontalDirectionalBlock.FACING).getCounterClockWise();
|
||||||
|
}
|
||||||
|
|
||||||
|
return getBlockState().getValue(FACING);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean hasElectricitySlot(Direction direction) {
|
||||||
|
return getDirection().getOpposite() == direction;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onNetworkChanged(int oldVoltage, int oldPower) {
|
||||||
|
super.onNetworkChanged(oldVoltage, oldPower);
|
||||||
|
|
||||||
|
if (oldVoltage != getData().getVoltage() || oldPower != getPowerUsage()) {
|
||||||
|
updateInFront = true;
|
||||||
|
}
|
||||||
|
sendStuff();
|
||||||
|
setChanged();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void remove() {
|
||||||
|
|
||||||
|
super.remove();
|
||||||
|
updateInFront();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onPlaced() {
|
||||||
|
|
||||||
|
super.onPlaced();
|
||||||
|
updateInFront = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void updateInFrontNextTick(){
|
||||||
|
updateInFront = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void updateInFront() {
|
||||||
|
|
||||||
|
if (level instanceof ServerLevel serverLevel)
|
||||||
|
CatnipServices.NETWORK.sendToClientsTrackingChunk(serverLevel, new ChunkPos(worldPosition),new UpdateInFrontPacket(BlockPos.of(getPos())));
|
||||||
|
Direction facing = getBlockState().hasProperty(FACING) ? getBlockState().getValue(FACING) : getBlockState().getValue(HorizontalDirectionalBlock.FACING).getCounterClockWise();
|
||||||
|
if (level.getBlockEntity(getBlockPos().relative(facing)) instanceof IElectric be && be.getData().getId() != data.getId()) {
|
||||||
|
if (be.hasElectricitySlot(facing.getOpposite())) {
|
||||||
|
be.updateNextTick();
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
sendStuff();
|
||||||
|
setChanged();
|
||||||
|
}
|
||||||
|
public void updateBehind() {
|
||||||
|
|
||||||
|
if (level instanceof ServerLevel serverLevel)
|
||||||
|
CatnipServices.NETWORK.sendToClientsTrackingChunk(serverLevel, new ChunkPos(worldPosition),new UpdateInFrontPacket(BlockPos.of(getPos())));
|
||||||
|
Direction facing = getBlockState().hasProperty(FACING) ? getBlockState().getValue(FACING) : getBlockState().getValue(HorizontalDirectionalBlock.FACING).getCounterClockWise();
|
||||||
|
facing = facing.getOpposite();
|
||||||
|
if (level.getBlockEntity(getBlockPos().relative(facing)) instanceof IElectric be && be.getData().getId() != data.getId()) {
|
||||||
|
if (be.hasElectricitySlot(facing.getOpposite())) {
|
||||||
|
be.updateNextTick();
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
sendStuff();
|
||||||
|
setChanged();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public abstract IElectric getControlledBlock();
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,25 +1,34 @@
|
|||||||
package com.drmangotea.tfmg.content.electricity.connection.cables;
|
package com.drmangotea.tfmg.content.electricity.connection.cables;
|
||||||
|
|
||||||
import com.drmangotea.tfmg.TFMG;
|
|
||||||
import com.drmangotea.tfmg.base.TFMGUtils;
|
import com.drmangotea.tfmg.base.TFMGUtils;
|
||||||
import com.drmangotea.tfmg.content.electricity.base.ElectricBlockEntity;
|
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.simibubi.create.api.equipment.goggles.IHaveHoveringInformation;
|
import com.simibubi.create.api.equipment.goggles.IHaveHoveringInformation;
|
||||||
import com.simibubi.create.foundation.blockEntity.behaviour.BlockEntityBehaviour;
|
import com.simibubi.create.foundation.blockEntity.behaviour.BlockEntityBehaviour;
|
||||||
|
import net.createmod.catnip.animation.AnimationTickHolder;
|
||||||
import net.createmod.catnip.animation.LerpedFloat;
|
import net.createmod.catnip.animation.LerpedFloat;
|
||||||
|
import net.createmod.catnip.math.VecHelper;
|
||||||
|
import net.createmod.catnip.theme.Color;
|
||||||
|
import net.minecraft.client.Minecraft;
|
||||||
|
import net.minecraft.client.multiplayer.ClientLevel;
|
||||||
import net.minecraft.core.BlockPos;
|
import net.minecraft.core.BlockPos;
|
||||||
import net.minecraft.core.Direction;
|
import net.minecraft.core.Direction;
|
||||||
import net.minecraft.core.HolderLookup;
|
import net.minecraft.core.HolderLookup;
|
||||||
import net.minecraft.nbt.CompoundTag;
|
import net.minecraft.nbt.CompoundTag;
|
||||||
import net.minecraft.network.chat.Component;
|
|
||||||
import net.minecraft.world.entity.item.ItemEntity;
|
import net.minecraft.world.entity.item.ItemEntity;
|
||||||
import net.minecraft.world.entity.player.Player;
|
import net.minecraft.world.entity.player.Player;
|
||||||
import net.minecraft.world.item.ItemStack;
|
import net.minecraft.world.item.ItemStack;
|
||||||
import net.minecraft.world.level.block.entity.BlockEntityType;
|
import net.minecraft.world.level.block.entity.BlockEntityType;
|
||||||
import net.minecraft.world.level.block.state.BlockState;
|
import net.minecraft.world.level.block.state.BlockState;
|
||||||
import net.minecraft.world.phys.AABB;
|
import net.minecraft.world.phys.AABB;
|
||||||
|
import net.minecraft.world.phys.BlockHitResult;
|
||||||
|
import net.minecraft.world.phys.Vec3;
|
||||||
|
import net.neoforged.api.distmarker.Dist;
|
||||||
|
import net.neoforged.api.distmarker.OnlyIn;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import static com.drmangotea.tfmg.base.blocks.WallMountBlock.FACING;
|
import static com.drmangotea.tfmg.base.blocks.WallMountBlock.FACING;
|
||||||
@@ -60,7 +69,7 @@ public class CableConnectorBlockEntity extends ElectricBlockEntity implements IH
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean hasElectricitySlot(Direction direction) {
|
public boolean hasElectricitySlot(Direction direction) {
|
||||||
if(getBlockState().getValue(EXTENSION))
|
if (getBlockState().getValue(EXTENSION))
|
||||||
return direction.getAxis() == getBlockState().getValue(FACING).getAxis();
|
return direction.getAxis() == getBlockState().getValue(FACING).getAxis();
|
||||||
|
|
||||||
return direction == getBlockState().getValue(FACING).getOpposite();
|
return direction == getBlockState().getValue(FACING).getOpposite();
|
||||||
@@ -68,17 +77,17 @@ public class CableConnectorBlockEntity extends ElectricBlockEntity implements IH
|
|||||||
|
|
||||||
public void notifyRemoval() {
|
public void notifyRemoval() {
|
||||||
|
|
||||||
if(level.isClientSide)
|
if (level.isClientSide)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
for (CableConnection connection : connections) {
|
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.getSpool().get(), (int) (connection.getLength() / 8)));
|
||||||
if (itemToDrop.getItem().getCount() > 0) {
|
if (itemToDrop.getItem().getCount() > 0) {
|
||||||
level.addFreshEntity(itemToDrop);
|
level.addFreshEntity(itemToDrop);
|
||||||
}
|
}
|
||||||
BlockPos pos = connection.blockPos1;
|
BlockPos pos = connection.blockPos1;
|
||||||
|
|
||||||
// level.setBlock(connection.blockPos1.above(), Blocks.GOLD_BLOCK.defaultBlockState(),3);
|
// level.setBlock(connection.blockPos1.above(), Blocks.GOLD_BLOCK.defaultBlockState(),3);
|
||||||
if (level.getBlockEntity(pos) instanceof CableConnectorBlockEntity be) {
|
if (level.getBlockEntity(pos) instanceof CableConnectorBlockEntity be) {
|
||||||
if (be.getBlockPos() == getBlockPos())
|
if (be.getBlockPos() == getBlockPos())
|
||||||
continue;
|
continue;
|
||||||
@@ -89,23 +98,22 @@ public class CableConnectorBlockEntity extends ElectricBlockEntity implements IH
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//@Override
|
//@Override
|
||||||
//public float resistance() {
|
//public float resistance() {
|
||||||
// float resistance = 0;
|
// float resistance = 0;
|
||||||
|
|
||||||
// for(CableConnection connection : connections){
|
// for(CableConnection connection : connections){
|
||||||
// if(connection.visible){
|
// if(connection.visible){
|
||||||
// resistance+=connection.type.resistivity*connection.getLength();
|
// resistance+=connection.type.resistivity*connection.getLength();
|
||||||
// }
|
// }
|
||||||
// }
|
// }
|
||||||
|
|
||||||
// return resistance;
|
// return resistance;
|
||||||
//}
|
//}
|
||||||
|
|
||||||
|
|
||||||
|
public void removeConnection() {
|
||||||
public void removeConnection(){
|
connections.removeIf(c -> {
|
||||||
connections.removeIf(c->{
|
|
||||||
BlockPos pos = c.blockPos1;
|
BlockPos pos = c.blockPos1;
|
||||||
|
|
||||||
return !(level.getBlockEntity(pos) instanceof CableConnectorBlockEntity);
|
return !(level.getBlockEntity(pos) instanceof CableConnectorBlockEntity);
|
||||||
@@ -118,7 +126,7 @@ public class CableConnectorBlockEntity extends ElectricBlockEntity implements IH
|
|||||||
public void onConnected() {
|
public void onConnected() {
|
||||||
super.onConnected();
|
super.onConnected();
|
||||||
|
|
||||||
for(CableConnectorBlockEntity be : getConnectedWires()){
|
for (CableConnectorBlockEntity be : getConnectedWires()) {
|
||||||
|
|
||||||
if (be.getData().getId() != getData().getId()) {
|
if (be.getData().getId() != getData().getId()) {
|
||||||
be.setNetwork(getData().getId());
|
be.setNetwork(getData().getId());
|
||||||
@@ -130,17 +138,19 @@ public class CableConnectorBlockEntity extends ElectricBlockEntity implements IH
|
|||||||
sendStuff();
|
sendStuff();
|
||||||
|
|
||||||
}
|
}
|
||||||
public List<CableConnectorBlockEntity> getConnectedWires(){
|
|
||||||
|
public List<CableConnectorBlockEntity> getConnectedWires() {
|
||||||
return getConnectedWires(new ArrayList<>());
|
return getConnectedWires(new ArrayList<>());
|
||||||
}
|
}
|
||||||
public List<CableConnectorBlockEntity> getConnectedWires(List<CableConnectorBlockEntity> foundList){
|
|
||||||
|
public List<CableConnectorBlockEntity> getConnectedWires(List<CableConnectorBlockEntity> foundList) {
|
||||||
|
|
||||||
|
|
||||||
if(!foundList.contains(this)) {
|
if (!foundList.contains(this)) {
|
||||||
foundList.add(this);
|
foundList.add(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
for(CableConnection connection : connections){
|
for (CableConnection connection : connections) {
|
||||||
BlockPos pos = connection.blockPos1;
|
BlockPos pos = connection.blockPos1;
|
||||||
|
|
||||||
|
|
||||||
@@ -148,19 +158,14 @@ public class CableConnectorBlockEntity extends ElectricBlockEntity implements IH
|
|||||||
//level.setBlockAndUpdate(pos2.above(2), Blocks.DIAMOND_BLOCK.defaultBlockState());
|
//level.setBlockAndUpdate(pos2.above(2), Blocks.DIAMOND_BLOCK.defaultBlockState());
|
||||||
|
|
||||||
|
|
||||||
|
if (pos == getBlockPos()) {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if(pos ==getBlockPos()){
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
// TFMGUtils.debugMessage(level, "Eﴤ "+connections.size());
|
// TFMGUtils.debugMessage(level, "Eﴤ "+connections.size());
|
||||||
|
|
||||||
|
|
||||||
if(level.getBlockEntity(pos) instanceof CableConnectorBlockEntity be&&!foundList.contains(be)){
|
if (level.getBlockEntity(pos) instanceof CableConnectorBlockEntity be && !foundList.contains(be)) {
|
||||||
// TFMGUtils.debugMessage(level, "Bﴤ "+connections.size());
|
// TFMGUtils.debugMessage(level, "Bﴤ "+connections.size());
|
||||||
be.getConnectedWires(foundList);
|
be.getConnectedWires(foundList);
|
||||||
sendStuff();
|
sendStuff();
|
||||||
be.sendStuff();
|
be.sendStuff();
|
||||||
@@ -172,11 +177,10 @@ public class CableConnectorBlockEntity extends ElectricBlockEntity implements IH
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void tick() {
|
public void tick() {
|
||||||
super.tick();
|
super.tick();
|
||||||
if(removeWiresNextTick) {
|
if (removeWiresNextTick) {
|
||||||
|
|
||||||
removeConnection();
|
removeConnection();
|
||||||
removeWiresNextTick = false;
|
removeWiresNextTick = false;
|
||||||
@@ -189,12 +193,11 @@ public class CableConnectorBlockEntity extends ElectricBlockEntity implements IH
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void write(CompoundTag compound, HolderLookup.Provider registries, boolean clientPacket) {
|
protected void write(CompoundTag compound, HolderLookup.Provider registries, boolean clientPacket) {
|
||||||
super.write(compound,registries , clientPacket);
|
super.write(compound, registries, clientPacket);
|
||||||
|
|
||||||
compound.putInt("ConnectionCount", connections.size());
|
compound.putInt("ConnectionCount", connections.size());
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
for (int i = 0; i < connections.size(); i++) {
|
for (int i = 0; i < connections.size(); i++) {
|
||||||
CableConnection connection = connections.get(i);
|
CableConnection connection = connections.get(i);
|
||||||
compound.put("Connection" + i, connection.saveConnection());
|
compound.put("Connection" + i, connection.saveConnection());
|
||||||
@@ -211,7 +214,7 @@ public class CableConnectorBlockEntity extends ElectricBlockEntity implements IH
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void read(CompoundTag compound, HolderLookup.Provider registries, boolean clientPacket) {
|
protected void read(CompoundTag compound, HolderLookup.Provider registries, boolean clientPacket) {
|
||||||
super.read(compound,registries , clientPacket);
|
super.read(compound, registries, clientPacket);
|
||||||
|
|
||||||
connections = new ArrayList<>();
|
connections = new ArrayList<>();
|
||||||
for (int i = 0; i < compound.getInt("ConnectionCount"); i++) {
|
for (int i = 0; i < compound.getInt("ConnectionCount"); i++) {
|
||||||
@@ -239,4 +242,57 @@ public class CableConnectorBlockEntity extends ElectricBlockEntity implements IH
|
|||||||
return new AABB(getBlockPos()).inflate(32);
|
return new AABB(getBlockPos()).inflate(32);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@OnlyIn(Dist.CLIENT)
|
||||||
|
public static void tickOutliner() {
|
||||||
|
Minecraft mc = Minecraft.getInstance();
|
||||||
|
if (mc.player == null || mc.level == null || !(mc.hitResult instanceof BlockHitResult result))
|
||||||
|
return;
|
||||||
|
|
||||||
|
ClientLevel level = mc.level;
|
||||||
|
BlockPos pos = result.getBlockPos();
|
||||||
|
Player player = mc.player;
|
||||||
|
ItemStack heldItem = player.getMainHandItem();
|
||||||
|
|
||||||
|
|
||||||
|
if (!(level.getBlockState(pos).getBlock() instanceof CableConnectorBlock))
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (!(heldItem.getItem() instanceof SpoolItem))
|
||||||
|
return;
|
||||||
|
|
||||||
|
Direction direction = level.getBlockState(pos).getValue(FACING);
|
||||||
|
|
||||||
|
|
||||||
|
for (int i = 0; i < 64; i++) {
|
||||||
|
if (level.getBlockEntity(pos.relative(direction)) instanceof CableConnectorBlockEntity) {
|
||||||
|
pos = pos.relative(direction);
|
||||||
|
|
||||||
|
} else break;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
int length = 0;
|
||||||
|
|
||||||
|
for (int i = 0; i < 64; i++) {
|
||||||
|
if (level.getBlockEntity(pos.relative(direction.getOpposite(), i + 1)) instanceof CableConnectorBlockEntity) {
|
||||||
|
length++;
|
||||||
|
|
||||||
|
} else break;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Vec3 center = VecHelper.getCenterOf(pos);
|
||||||
|
|
||||||
|
List<Direction.Axis> axis = new ArrayList<>(Arrays.stream(Direction.Axis.values()).toList());
|
||||||
|
axis.remove(direction.getAxis());
|
||||||
|
|
||||||
|
float size = TFMGBlocks.CABLE_CONNECTOR.has(level.getBlockState(pos)) ? 2.5f : 3.5f;
|
||||||
|
|
||||||
|
Vec3 corner1 = center.relative(direction, 1 / 16f).relative(direction.getClockWise(axis.get(0)), size / 15f).relative(direction.getClockWise(axis.get(1)), size / 15f);
|
||||||
|
Vec3 corner2 = center.relative(direction.getOpposite(), 8 / 16f + length).relative(direction.getCounterClockWise(axis.get(0)), size / 15f).relative(direction.getCounterClockWise(axis.get(1)), size / 15f);
|
||||||
|
|
||||||
|
TFMGUtils.createOutline(corner1, corner2, "InsulatorOutline", Color.rainbowColor(AnimationTickHolder.getTicks() * 5));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -77,7 +77,7 @@ public class LightBulbBlockEntity extends ElectricBlockEntity {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public float resistance() {
|
public float resistance() {
|
||||||
return 100;
|
return 400;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,15 +1,15 @@
|
|||||||
package com.drmangotea.tfmg.content.electricity.utilities.diode;
|
package com.drmangotea.tfmg.content.electricity.network.diode;
|
||||||
|
|
||||||
import com.drmangotea.tfmg.base.blocks.TFMGDirectionalBlock;
|
import com.drmangotea.tfmg.base.blocks.TFMGDirectionalBlock;
|
||||||
import com.drmangotea.tfmg.base.TFMGShapes;
|
import com.drmangotea.tfmg.base.TFMGShapes;
|
||||||
import com.drmangotea.tfmg.content.electricity.base.IElectric;
|
import com.drmangotea.tfmg.content.electricity.base.IElectric;
|
||||||
import com.drmangotea.tfmg.content.electricity.base.IVoltageChanger;
|
import com.drmangotea.tfmg.content.electricity.base.IVoltageChanger;
|
||||||
|
import com.drmangotea.tfmg.content.electricity.base.VoltageAlteringBlockEntity;
|
||||||
import com.drmangotea.tfmg.registry.TFMGBlockEntities;
|
import com.drmangotea.tfmg.registry.TFMGBlockEntities;
|
||||||
import com.simibubi.create.content.decoration.encasing.EncasableBlock;
|
import com.simibubi.create.content.decoration.encasing.EncasableBlock;
|
||||||
import com.simibubi.create.foundation.block.IBE;
|
import com.simibubi.create.foundation.block.IBE;
|
||||||
import net.minecraft.core.BlockPos;
|
import net.minecraft.core.BlockPos;
|
||||||
import net.minecraft.world.InteractionHand;
|
import net.minecraft.world.InteractionHand;
|
||||||
import net.minecraft.world.InteractionResult;
|
|
||||||
import net.minecraft.world.ItemInteractionResult;
|
import net.minecraft.world.ItemInteractionResult;
|
||||||
import net.minecraft.world.entity.player.Player;
|
import net.minecraft.world.entity.player.Player;
|
||||||
import net.minecraft.world.item.ItemStack;
|
import net.minecraft.world.item.ItemStack;
|
||||||
@@ -21,7 +21,7 @@ import net.minecraft.world.phys.BlockHitResult;
|
|||||||
import net.minecraft.world.phys.shapes.CollisionContext;
|
import net.minecraft.world.phys.shapes.CollisionContext;
|
||||||
import net.minecraft.world.phys.shapes.VoxelShape;
|
import net.minecraft.world.phys.shapes.VoxelShape;
|
||||||
|
|
||||||
public class ElectricDiodeBlock extends TFMGDirectionalBlock implements IBE<ElectricDiodeBlockEntity>, IVoltageChanger, EncasableBlock {
|
public class ElectricDiodeBlock extends TFMGDirectionalBlock implements IBE<VoltageAlteringBlockEntity>, IVoltageChanger, EncasableBlock {
|
||||||
public ElectricDiodeBlock(Properties p_54120_) {
|
public ElectricDiodeBlock(Properties p_54120_) {
|
||||||
super(p_54120_);
|
super(p_54120_);
|
||||||
}
|
}
|
||||||
@@ -54,12 +54,12 @@ public class ElectricDiodeBlock extends TFMGDirectionalBlock implements IBE<Elec
|
|||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Class<ElectricDiodeBlockEntity> getBlockEntityClass() {
|
public Class<VoltageAlteringBlockEntity> getBlockEntityClass() {
|
||||||
return ElectricDiodeBlockEntity.class;
|
return VoltageAlteringBlockEntity.class;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public BlockEntityType<? extends ElectricDiodeBlockEntity> getBlockEntityType() {
|
public BlockEntityType<? extends VoltageAlteringBlockEntity> getBlockEntityType() {
|
||||||
return TFMGBlockEntities.DIODE.get();
|
return TFMGBlockEntities.DIODE.get();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,8 +1,9 @@
|
|||||||
package com.drmangotea.tfmg.content.electricity.utilities.diode;
|
package com.drmangotea.tfmg.content.electricity.network.diode;
|
||||||
|
|
||||||
import com.drmangotea.tfmg.base.blocks.TFMGDirectionalBlock;
|
import com.drmangotea.tfmg.base.blocks.TFMGDirectionalBlock;
|
||||||
import com.drmangotea.tfmg.content.electricity.base.IElectric;
|
import com.drmangotea.tfmg.content.electricity.base.IElectric;
|
||||||
import com.drmangotea.tfmg.content.electricity.base.IVoltageChanger;
|
import com.drmangotea.tfmg.content.electricity.base.IVoltageChanger;
|
||||||
|
import com.drmangotea.tfmg.content.electricity.base.VoltageAlteringBlockEntity;
|
||||||
import com.drmangotea.tfmg.registry.TFMGBlockEntities;
|
import com.drmangotea.tfmg.registry.TFMGBlockEntities;
|
||||||
import com.drmangotea.tfmg.registry.TFMGBlocks;
|
import com.drmangotea.tfmg.registry.TFMGBlocks;
|
||||||
import com.simibubi.create.content.decoration.encasing.EncasedBlock;
|
import com.simibubi.create.content.decoration.encasing.EncasedBlock;
|
||||||
@@ -21,7 +22,7 @@ import net.minecraft.world.level.block.entity.BlockEntityType;
|
|||||||
import net.minecraft.world.level.block.state.BlockState;
|
import net.minecraft.world.level.block.state.BlockState;
|
||||||
import net.minecraft.world.phys.BlockHitResult;
|
import net.minecraft.world.phys.BlockHitResult;
|
||||||
|
|
||||||
public class EncasedDiodeBlock extends TFMGDirectionalBlock implements IBE<ElectricDiodeBlockEntity>, IVoltageChanger, EncasedBlock, IWrenchable {
|
public class EncasedDiodeBlock extends TFMGDirectionalBlock implements IBE<VoltageAlteringBlockEntity>, IVoltageChanger, EncasedBlock, IWrenchable {
|
||||||
public EncasedDiodeBlock(Properties p_54120_) {
|
public EncasedDiodeBlock(Properties p_54120_) {
|
||||||
super(p_54120_);
|
super(p_54120_);
|
||||||
}
|
}
|
||||||
@@ -59,12 +60,12 @@ public class EncasedDiodeBlock extends TFMGDirectionalBlock implements IBE<Elect
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Class<ElectricDiodeBlockEntity> getBlockEntityClass() {
|
public Class<VoltageAlteringBlockEntity> getBlockEntityClass() {
|
||||||
return ElectricDiodeBlockEntity.class;
|
return VoltageAlteringBlockEntity.class;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public BlockEntityType<? extends ElectricDiodeBlockEntity> getBlockEntityType() {
|
public BlockEntityType<? extends VoltageAlteringBlockEntity> getBlockEntityType() {
|
||||||
return TFMGBlockEntities.DIODE.get();
|
return TFMGBlockEntities.DIODE.get();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.drmangotea.tfmg.content.electricity.utilities.electric_switch;
|
package com.drmangotea.tfmg.content.electricity.network.electric_switch;
|
||||||
|
|
||||||
import com.drmangotea.tfmg.base.blocks.TFMGDirectionalBlock;
|
import com.drmangotea.tfmg.base.blocks.TFMGDirectionalBlock;
|
||||||
import com.drmangotea.tfmg.content.electricity.base.IElectric;
|
import com.drmangotea.tfmg.content.electricity.base.IElectric;
|
||||||
@@ -1,7 +1,6 @@
|
|||||||
package com.drmangotea.tfmg.content.electricity.utilities.electric_switch;
|
package com.drmangotea.tfmg.content.electricity.network.electric_switch;
|
||||||
|
|
||||||
import com.drmangotea.tfmg.content.electricity.base.IElectric;
|
import com.drmangotea.tfmg.content.electricity.base.VoltageAlteringBlockEntity;
|
||||||
import com.drmangotea.tfmg.content.electricity.utilities.diode.ElectricDiodeBlockEntity;
|
|
||||||
import net.minecraft.core.BlockPos;
|
import net.minecraft.core.BlockPos;
|
||||||
import net.minecraft.core.Direction;
|
import net.minecraft.core.Direction;
|
||||||
import net.minecraft.world.level.block.entity.BlockEntityType;
|
import net.minecraft.world.level.block.entity.BlockEntityType;
|
||||||
@@ -9,7 +8,7 @@ import net.minecraft.world.level.block.state.BlockState;
|
|||||||
|
|
||||||
import static net.minecraft.world.level.block.DirectionalBlock.FACING;
|
import static net.minecraft.world.level.block.DirectionalBlock.FACING;
|
||||||
|
|
||||||
public class ElectricSwitchBlockEntity extends ElectricDiodeBlockEntity {
|
public class ElectricSwitchBlockEntity extends VoltageAlteringBlockEntity {
|
||||||
|
|
||||||
int signal;
|
int signal;
|
||||||
boolean signalChanged;
|
boolean signalChanged;
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.drmangotea.tfmg.content.electricity.utilities.potentiometer;
|
package com.drmangotea.tfmg.content.electricity.network.potentiometer;
|
||||||
|
|
||||||
import com.drmangotea.tfmg.base.blocks.TFMGDirectionalBlock;
|
import com.drmangotea.tfmg.base.blocks.TFMGDirectionalBlock;
|
||||||
import com.drmangotea.tfmg.content.electricity.base.IElectric;
|
import com.drmangotea.tfmg.content.electricity.base.IElectric;
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.drmangotea.tfmg.content.electricity.utilities.potentiometer;
|
package com.drmangotea.tfmg.content.electricity.network.potentiometer;
|
||||||
|
|
||||||
import com.drmangotea.tfmg.base.blocks.TFMGDirectionalBlock;
|
import com.drmangotea.tfmg.base.blocks.TFMGDirectionalBlock;
|
||||||
import com.drmangotea.tfmg.base.TFMGShapes;
|
import com.drmangotea.tfmg.base.TFMGShapes;
|
||||||
@@ -9,7 +9,6 @@ import com.simibubi.create.content.decoration.encasing.EncasableBlock;
|
|||||||
import com.simibubi.create.foundation.block.IBE;
|
import com.simibubi.create.foundation.block.IBE;
|
||||||
import net.minecraft.core.BlockPos;
|
import net.minecraft.core.BlockPos;
|
||||||
import net.minecraft.world.InteractionHand;
|
import net.minecraft.world.InteractionHand;
|
||||||
import net.minecraft.world.InteractionResult;
|
|
||||||
import net.minecraft.world.ItemInteractionResult;
|
import net.minecraft.world.ItemInteractionResult;
|
||||||
import net.minecraft.world.entity.player.Player;
|
import net.minecraft.world.entity.player.Player;
|
||||||
import net.minecraft.world.item.ItemStack;
|
import net.minecraft.world.item.ItemStack;
|
||||||
@@ -1,14 +1,13 @@
|
|||||||
package com.drmangotea.tfmg.content.electricity.utilities.potentiometer;
|
package com.drmangotea.tfmg.content.electricity.network.potentiometer;
|
||||||
|
|
||||||
import com.drmangotea.tfmg.base.blocks.TFMGHorizontalDirectionalBlock;
|
import com.drmangotea.tfmg.base.blocks.TFMGHorizontalDirectionalBlock;
|
||||||
import com.drmangotea.tfmg.base.lang.TFMGLang;
|
import com.drmangotea.tfmg.base.lang.TFMGLang;
|
||||||
import com.drmangotea.tfmg.content.electricity.utilities.diode.ElectricDiodeBlockEntity;
|
import com.drmangotea.tfmg.content.electricity.base.VoltageAlteringBlockEntity;
|
||||||
import com.mojang.blaze3d.vertex.PoseStack;
|
import com.mojang.blaze3d.vertex.PoseStack;
|
||||||
import com.simibubi.create.content.kinetics.base.DirectionalKineticBlock;
|
import com.simibubi.create.content.kinetics.base.DirectionalKineticBlock;
|
||||||
import com.simibubi.create.foundation.blockEntity.behaviour.BlockEntityBehaviour;
|
import com.simibubi.create.foundation.blockEntity.behaviour.BlockEntityBehaviour;
|
||||||
import com.simibubi.create.foundation.blockEntity.behaviour.ValueBoxTransform;
|
import com.simibubi.create.foundation.blockEntity.behaviour.ValueBoxTransform;
|
||||||
import com.simibubi.create.foundation.blockEntity.behaviour.scrollValue.ScrollValueBehaviour;
|
import com.simibubi.create.foundation.blockEntity.behaviour.scrollValue.ScrollValueBehaviour;
|
||||||
import com.simibubi.create.foundation.utility.CreateLang;
|
|
||||||
import dev.engine_room.flywheel.lib.transform.TransformStack;
|
import dev.engine_room.flywheel.lib.transform.TransformStack;
|
||||||
import net.createmod.catnip.math.AngleHelper;
|
import net.createmod.catnip.math.AngleHelper;
|
||||||
import net.createmod.catnip.math.VecHelper;
|
import net.createmod.catnip.math.VecHelper;
|
||||||
@@ -22,7 +21,7 @@ import net.minecraft.world.phys.Vec3;
|
|||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class PotentiometerBlockEntity extends ElectricDiodeBlockEntity {
|
public class PotentiometerBlockEntity extends VoltageAlteringBlockEntity {
|
||||||
|
|
||||||
|
|
||||||
protected ScrollValueBehaviour outputPercentage;
|
protected ScrollValueBehaviour outputPercentage;
|
||||||
@@ -1,15 +1,13 @@
|
|||||||
package com.drmangotea.tfmg.content.electricity.utilities.transformer;
|
package com.drmangotea.tfmg.content.electricity.network.transformer;
|
||||||
|
|
||||||
|
|
||||||
import com.drmangotea.tfmg.base.lang.TFMGLang;
|
import com.drmangotea.tfmg.base.lang.TFMGLang;
|
||||||
import com.drmangotea.tfmg.registry.TFMGDataComponents;
|
import com.drmangotea.tfmg.registry.TFMGDataComponents;
|
||||||
import com.simibubi.create.foundation.utility.CreateLang;
|
|
||||||
import net.minecraft.ChatFormatting;
|
import net.minecraft.ChatFormatting;
|
||||||
import net.minecraft.network.chat.Component;
|
import net.minecraft.network.chat.Component;
|
||||||
import net.minecraft.world.item.Item;
|
import net.minecraft.world.item.Item;
|
||||||
import net.minecraft.world.item.ItemStack;
|
import net.minecraft.world.item.ItemStack;
|
||||||
import net.minecraft.world.item.TooltipFlag;
|
import net.minecraft.world.item.TooltipFlag;
|
||||||
import net.minecraft.world.level.Level;
|
|
||||||
import net.neoforged.api.distmarker.Dist;
|
import net.neoforged.api.distmarker.Dist;
|
||||||
import net.neoforged.api.distmarker.OnlyIn;
|
import net.neoforged.api.distmarker.OnlyIn;
|
||||||
|
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.drmangotea.tfmg.content.electricity.utilities.transformer;
|
package com.drmangotea.tfmg.content.electricity.network.transformer;
|
||||||
|
|
||||||
import com.drmangotea.tfmg.base.blocks.TFMGHorizontalDirectionalBlock;
|
import com.drmangotea.tfmg.base.blocks.TFMGHorizontalDirectionalBlock;
|
||||||
import com.drmangotea.tfmg.base.TFMGShapes;
|
import com.drmangotea.tfmg.base.TFMGShapes;
|
||||||
@@ -8,8 +8,8 @@ import com.drmangotea.tfmg.registry.TFMGBlockEntities;
|
|||||||
import com.drmangotea.tfmg.registry.TFMGItems;
|
import com.drmangotea.tfmg.registry.TFMGItems;
|
||||||
import com.simibubi.create.foundation.block.IBE;
|
import com.simibubi.create.foundation.block.IBE;
|
||||||
import net.minecraft.core.BlockPos;
|
import net.minecraft.core.BlockPos;
|
||||||
|
import net.minecraft.core.Direction;
|
||||||
import net.minecraft.world.InteractionHand;
|
import net.minecraft.world.InteractionHand;
|
||||||
import net.minecraft.world.InteractionResult;
|
|
||||||
import net.minecraft.world.ItemInteractionResult;
|
import net.minecraft.world.ItemInteractionResult;
|
||||||
import net.minecraft.world.entity.player.Player;
|
import net.minecraft.world.entity.player.Player;
|
||||||
import net.minecraft.world.item.ItemStack;
|
import net.minecraft.world.item.ItemStack;
|
||||||
@@ -34,34 +34,37 @@ public class TransformerBlock extends TFMGHorizontalDirectionalBlock implements
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected ItemInteractionResult useItemOn(ItemStack stack, BlockState state, Level level, BlockPos pos, Player player, InteractionHand hand, BlockHitResult hitResult) {
|
protected ItemInteractionResult useItemOn(ItemStack stack, BlockState state, Level level, BlockPos pos, Player player, InteractionHand hand, BlockHitResult hitResult) {
|
||||||
ItemStack inHand = player.getItemInHand(hand);
|
|
||||||
|
|
||||||
|
if(hand == InteractionHand.OFF_HAND)
|
||||||
|
return ItemInteractionResult.PASS_TO_DEFAULT_BLOCK_INTERACTION;
|
||||||
|
|
||||||
|
ItemStack inHand = player.getItemInHand(hand);
|
||||||
if(level.getBlockEntity(pos) instanceof TransformerBlockEntity be){
|
if(level.getBlockEntity(pos) instanceof TransformerBlockEntity be){
|
||||||
|
Direction facing = state.getValue(FACING);
|
||||||
|
Direction lookingDirection = TransformerBlockEntity.getCoilDirections(level,pos,hitResult).get(0);
|
||||||
|
boolean primary =lookingDirection == facing.getClockWise();
|
||||||
|
ItemStack coil = primary ? be.primaryCoil : be.secondaryCoil;
|
||||||
|
|
||||||
|
|
||||||
if(inHand.is(TFMGItems.ELECTROMAGNETIC_COIL.get())){
|
if(inHand.is(TFMGItems.ELECTROMAGNETIC_COIL.get())){
|
||||||
if(be.primaryCoil.isEmpty()) {
|
if(coil.isEmpty()) {
|
||||||
be.primaryCoil = inHand;
|
if(primary){
|
||||||
player.setItemInHand(hand,ItemStack.EMPTY);
|
be.primaryCoil = inHand;
|
||||||
withBlockEntityDo(level, pos, TransformerBlockEntity::updateCoils);
|
}else be.secondaryCoil = inHand;
|
||||||
return ItemInteractionResult.SUCCESS;
|
|
||||||
}
|
|
||||||
if(be.secondaryCoil.isEmpty()) {
|
|
||||||
be.secondaryCoil = inHand;
|
|
||||||
player.setItemInHand(hand,ItemStack.EMPTY);
|
player.setItemInHand(hand,ItemStack.EMPTY);
|
||||||
withBlockEntityDo(level, pos, TransformerBlockEntity::updateCoils);
|
withBlockEntityDo(level, pos, TransformerBlockEntity::updateCoils);
|
||||||
return ItemInteractionResult.SUCCESS;
|
return ItemInteractionResult.SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}else if(inHand.isEmpty()){
|
}else if(inHand.isEmpty()){
|
||||||
if(!be.primaryCoil.isEmpty()) {
|
if(!coil.isEmpty()) {
|
||||||
player.setItemInHand(hand,be.primaryCoil);
|
player.setItemInHand(hand,coil);
|
||||||
be.primaryCoil = ItemStack.EMPTY;
|
if(primary){
|
||||||
withBlockEntityDo(level, pos, TransformerBlockEntity::updateCoils);
|
be.primaryCoil = ItemStack.EMPTY;
|
||||||
return ItemInteractionResult.SUCCESS;
|
}else be.secondaryCoil = ItemStack.EMPTY;
|
||||||
}
|
|
||||||
if(!be.secondaryCoil.isEmpty()) {
|
|
||||||
player.setItemInHand(hand,be.secondaryCoil);
|
|
||||||
be.secondaryCoil = ItemStack.EMPTY;
|
|
||||||
withBlockEntityDo(level, pos, TransformerBlockEntity::updateCoils);
|
withBlockEntityDo(level, pos, TransformerBlockEntity::updateCoils);
|
||||||
|
|
||||||
return ItemInteractionResult.SUCCESS;
|
return ItemInteractionResult.SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1,32 +1,46 @@
|
|||||||
package com.drmangotea.tfmg.content.electricity.utilities.transformer;
|
package com.drmangotea.tfmg.content.electricity.network.transformer;
|
||||||
|
|
||||||
import com.drmangotea.tfmg.TFMG;
|
import com.drmangotea.tfmg.base.TFMGUtils;
|
||||||
import com.drmangotea.tfmg.base.blocks.TFMGHorizontalDirectionalBlock;
|
|
||||||
import com.drmangotea.tfmg.base.lang.TFMGTexts;
|
import com.drmangotea.tfmg.base.lang.TFMGTexts;
|
||||||
import com.drmangotea.tfmg.content.electricity.base.IElectric;
|
import com.drmangotea.tfmg.content.electricity.base.IElectric;
|
||||||
import com.drmangotea.tfmg.content.electricity.base.UpdateInFrontPacket;
|
|
||||||
import com.drmangotea.tfmg.content.electricity.base.VoltageAlteringBlockEntity;
|
import com.drmangotea.tfmg.content.electricity.base.VoltageAlteringBlockEntity;
|
||||||
|
|
||||||
|
import com.drmangotea.tfmg.registry.TFMGBlocks;
|
||||||
import com.drmangotea.tfmg.registry.TFMGDataComponents;
|
import com.drmangotea.tfmg.registry.TFMGDataComponents;
|
||||||
import com.drmangotea.tfmg.registry.TFMGPackets;
|
import com.drmangotea.tfmg.registry.TFMGItems;
|
||||||
import com.simibubi.create.foundation.utility.CreateLang;
|
import com.simibubi.create.AllBlocks;
|
||||||
import net.createmod.catnip.platform.CatnipServices;
|
import com.simibubi.create.AllItems;
|
||||||
import net.minecraft.ChatFormatting;
|
import com.simibubi.create.content.decoration.girder.GirderWrenchBehavior;
|
||||||
|
import net.createmod.catnip.animation.AnimationTickHolder;
|
||||||
|
import net.createmod.catnip.data.Couple;
|
||||||
|
import net.createmod.catnip.data.Pair;
|
||||||
|
import net.createmod.catnip.math.VecHelper;
|
||||||
|
import net.createmod.catnip.placement.IPlacementHelper;
|
||||||
|
import net.createmod.catnip.theme.Color;
|
||||||
|
import net.minecraft.client.Minecraft;
|
||||||
|
import net.minecraft.client.multiplayer.ClientLevel;
|
||||||
import net.minecraft.core.BlockPos;
|
import net.minecraft.core.BlockPos;
|
||||||
import net.minecraft.core.Direction;
|
import net.minecraft.core.Direction;
|
||||||
import net.minecraft.core.HolderLookup;
|
import net.minecraft.core.HolderLookup;
|
||||||
import net.minecraft.nbt.CompoundTag;
|
import net.minecraft.nbt.CompoundTag;
|
||||||
import net.minecraft.network.chat.Component;
|
import net.minecraft.network.chat.Component;
|
||||||
import net.minecraft.server.level.ServerLevel;
|
|
||||||
import net.minecraft.world.entity.item.ItemEntity;
|
import net.minecraft.world.entity.item.ItemEntity;
|
||||||
|
import net.minecraft.world.entity.player.Player;
|
||||||
import net.minecraft.world.item.ItemStack;
|
import net.minecraft.world.item.ItemStack;
|
||||||
import net.minecraft.world.level.ChunkPos;
|
import net.minecraft.world.item.Items;
|
||||||
import net.minecraft.world.level.block.DirectionalBlock;
|
import net.minecraft.world.level.Level;
|
||||||
import net.minecraft.world.level.block.HorizontalDirectionalBlock;
|
|
||||||
import net.minecraft.world.level.block.entity.BlockEntityType;
|
import net.minecraft.world.level.block.entity.BlockEntityType;
|
||||||
import net.minecraft.world.level.block.state.BlockState;
|
import net.minecraft.world.level.block.state.BlockState;
|
||||||
|
import net.minecraft.world.phys.AABB;
|
||||||
|
import net.minecraft.world.phys.BlockHitResult;
|
||||||
|
import net.minecraft.world.phys.Vec3;
|
||||||
|
import net.neoforged.api.distmarker.Dist;
|
||||||
|
import net.neoforged.api.distmarker.OnlyIn;
|
||||||
|
|
||||||
|
|
||||||
|
import java.awt.*;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collection;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import static net.minecraft.world.level.block.HorizontalDirectionalBlock.FACING;
|
import static net.minecraft.world.level.block.HorizontalDirectionalBlock.FACING;
|
||||||
@@ -53,15 +67,6 @@ public class TransformerBlockEntity extends VoltageAlteringBlockEntity {
|
|||||||
return coilRatio == 0 ? 0 : getPowerUsage();
|
return coilRatio == 0 ? 0 : getPowerUsage();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public IElectric getControlledBlock() {
|
|
||||||
Direction facing = getBlockState().hasProperty(DirectionalBlock.FACING) ? getBlockState().getValue(DirectionalBlock.FACING) : getBlockState().getValue(HorizontalDirectionalBlock.FACING).getCounterClockWise();
|
|
||||||
if (level.getBlockEntity(getBlockPos().relative(facing)) instanceof IElectric be && be.getData().getId() != data.getId()) {
|
|
||||||
return be;
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void tick() {
|
public void tick() {
|
||||||
super.tick();
|
super.tick();
|
||||||
@@ -144,13 +149,6 @@ public class TransformerBlockEntity extends VoltageAlteringBlockEntity {
|
|||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
public Direction getDirection(){
|
|
||||||
if(!getBlockState().hasProperty(DirectionalBlock.FACING)){
|
|
||||||
return getBlockState().getValue(TFMGHorizontalDirectionalBlock.FACING).getCounterClockWise();
|
|
||||||
}
|
|
||||||
|
|
||||||
return getBlockState().getValue(DirectionalBlock.FACING);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean hasElectricitySlot(Direction direction) {
|
public boolean hasElectricitySlot(Direction direction) {
|
||||||
@@ -186,20 +184,8 @@ public class TransformerBlockEntity extends VoltageAlteringBlockEntity {
|
|||||||
updateInFront = true;
|
updateInFront = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void updateInFront() {
|
|
||||||
|
|
||||||
if (level instanceof ServerLevel serverLevel)
|
|
||||||
CatnipServices.NETWORK.sendToClientsTrackingChunk(serverLevel, new ChunkPos(worldPosition),new UpdateInFrontPacket(BlockPos.of(getPos())));
|
|
||||||
Direction facing = getBlockState().hasProperty(DirectionalBlock.FACING) ? getBlockState().getValue(DirectionalBlock.FACING) : getBlockState().getValue(HorizontalDirectionalBlock.FACING).getCounterClockWise();
|
|
||||||
if (level.getBlockEntity(getBlockPos().relative(facing)) instanceof IElectric be && be.getData().getId() != data.getId()) {
|
|
||||||
if (be.hasElectricitySlot(facing.getOpposite())) {
|
|
||||||
be.updateNextTick();
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
sendStuff();
|
|
||||||
setChanged();
|
|
||||||
}
|
|
||||||
@Override
|
@Override
|
||||||
protected void write(CompoundTag compound, HolderLookup.Provider registries, boolean clientPacket) {
|
protected void write(CompoundTag compound, HolderLookup.Provider registries, boolean clientPacket) {
|
||||||
super.write(compound,registries , clientPacket);
|
super.write(compound,registries , clientPacket);
|
||||||
@@ -226,4 +212,48 @@ public class TransformerBlockEntity extends VoltageAlteringBlockEntity {
|
|||||||
|
|
||||||
coilRatio = compound.getFloat("CoilRation");
|
coilRatio = compound.getFloat("CoilRation");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static List<Direction> getCoilDirections(Level level, BlockPos pos, BlockHitResult result){
|
||||||
|
Direction direction = level.getBlockState(pos).getValue(FACING);
|
||||||
|
Collection<Direction> validDirections = new ArrayList<>();
|
||||||
|
validDirections.add(direction.getClockWise());
|
||||||
|
validDirections.add(direction.getCounterClockWise());
|
||||||
|
|
||||||
|
|
||||||
|
return IPlacementHelper.orderedByDistance(pos, result.getLocation(), validDirections);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@OnlyIn(Dist.CLIENT)
|
||||||
|
public static void tickOutliner() {
|
||||||
|
Minecraft mc = Minecraft.getInstance();
|
||||||
|
if (mc.player == null || mc.level == null || !(mc.hitResult instanceof BlockHitResult result))
|
||||||
|
return;
|
||||||
|
|
||||||
|
ClientLevel level = mc.level;
|
||||||
|
BlockPos pos = result.getBlockPos();
|
||||||
|
Player player = mc.player;
|
||||||
|
ItemStack heldItem = player.getMainHandItem();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if (!TFMGBlocks.TRANSFORMER.has(level.getBlockState(pos)))
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (!(TFMGItems.ELECTROMAGNETIC_COIL.isIn(heldItem)|| heldItem.is(Items.AIR)))
|
||||||
|
return;
|
||||||
|
|
||||||
|
Direction direction = level.getBlockState(pos).getValue(FACING);
|
||||||
|
|
||||||
|
|
||||||
|
Direction coilDirection = getCoilDirections(level,pos,result).get(0);
|
||||||
|
/////////
|
||||||
|
|
||||||
|
Vec3 center = VecHelper.getCenterOf(pos);
|
||||||
|
|
||||||
|
Vec3 corner1 = center.relative(coilDirection,7/16f).relative(direction,3/16f).relative(Direction.UP,5.75/16f);
|
||||||
|
Vec3 corner2 = center.relative(coilDirection,1/16f).relative(direction.getOpposite(),3/16f).relative(Direction.DOWN,1.75/16f);
|
||||||
|
|
||||||
|
TFMGUtils.createOutline(corner1,corner2,"CoilOutline", Color.rainbowColor(AnimationTickHolder.getTicks() * 5));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.drmangotea.tfmg.content.electricity.utilities.transformer;
|
package com.drmangotea.tfmg.content.electricity.network.transformer;
|
||||||
|
|
||||||
import com.drmangotea.tfmg.registry.TFMGPartialModels;
|
import com.drmangotea.tfmg.registry.TFMGPartialModels;
|
||||||
import com.mojang.blaze3d.vertex.PoseStack;
|
import com.mojang.blaze3d.vertex.PoseStack;
|
||||||
@@ -1,6 +1,5 @@
|
|||||||
package com.drmangotea.tfmg.content.electricity.storage;
|
package com.drmangotea.tfmg.content.electricity.storage;
|
||||||
|
|
||||||
import com.drmangotea.tfmg.base.TFMGUtils;
|
|
||||||
import com.drmangotea.tfmg.base.lang.TFMGTexts;
|
import com.drmangotea.tfmg.base.lang.TFMGTexts;
|
||||||
import com.drmangotea.tfmg.config.TFMGConfigs;
|
import com.drmangotea.tfmg.config.TFMGConfigs;
|
||||||
import com.drmangotea.tfmg.content.electricity.base.ElectricBlockEntity;
|
import com.drmangotea.tfmg.content.electricity.base.ElectricBlockEntity;
|
||||||
@@ -8,7 +7,6 @@ import com.drmangotea.tfmg.content.electricity.base.IElectric;
|
|||||||
import com.drmangotea.tfmg.content.electricity.utilities.converter.ConverterBlockEntity;
|
import com.drmangotea.tfmg.content.electricity.utilities.converter.ConverterBlockEntity;
|
||||||
import com.drmangotea.tfmg.registry.TFMGBlockEntities;
|
import com.drmangotea.tfmg.registry.TFMGBlockEntities;
|
||||||
import com.drmangotea.tfmg.registry.TFMGDataComponents;
|
import com.drmangotea.tfmg.registry.TFMGDataComponents;
|
||||||
import com.simibubi.create.foundation.utility.CreateLang;
|
|
||||||
import net.minecraft.core.BlockPos;
|
import net.minecraft.core.BlockPos;
|
||||||
import net.minecraft.core.Direction;
|
import net.minecraft.core.Direction;
|
||||||
import net.minecraft.core.HolderLookup;
|
import net.minecraft.core.HolderLookup;
|
||||||
@@ -277,7 +275,7 @@ public class AccumulatorBlockEntity extends ElectricBlockEntity {
|
|||||||
public int getChargingRate() {
|
public int getChargingRate() {
|
||||||
//
|
//
|
||||||
// int chargingRate = Math.max((data.networkPowerGeneration - getNetworkPowerUsage()), 0);
|
// int chargingRate = Math.max((data.networkPowerGeneration - getNetworkPowerUsage()), 0);
|
||||||
if (energy.getEnergyStored() >= getMaxCapacity() || getData().getVoltage() < getOutputVoltage() || canPower() || data.notEnoughtPower)
|
if (energy.getEnergyStored() >= getMaxCapacity() || getData().getVoltage() < getOutputVoltage() || canPower() || data.notEnoughPower)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
//return Math.min(chargingRate, getMaxChargingRate());
|
//return Math.min(chargingRate, getMaxChargingRate());
|
||||||
|
|||||||
@@ -1,7 +1,5 @@
|
|||||||
package com.drmangotea.tfmg.content.electricity.utilities.converter;
|
package com.drmangotea.tfmg.content.electricity.utilities.converter;
|
||||||
|
|
||||||
import com.drmangotea.tfmg.TFMG;
|
|
||||||
import com.drmangotea.tfmg.base.TFMGUtils;
|
|
||||||
import com.drmangotea.tfmg.base.lang.TFMGLang;
|
import com.drmangotea.tfmg.base.lang.TFMGLang;
|
||||||
import com.drmangotea.tfmg.base.lang.TFMGTexts;
|
import com.drmangotea.tfmg.base.lang.TFMGTexts;
|
||||||
import com.drmangotea.tfmg.config.TFMGConfigs;
|
import com.drmangotea.tfmg.config.TFMGConfigs;
|
||||||
@@ -9,15 +7,12 @@ import com.drmangotea.tfmg.content.electricity.base.ElectricBlockEntity;
|
|||||||
import com.drmangotea.tfmg.content.electricity.base.IElectric;
|
import com.drmangotea.tfmg.content.electricity.base.IElectric;
|
||||||
import com.drmangotea.tfmg.content.electricity.storage.AccumulatorBlockEntity;
|
import com.drmangotea.tfmg.content.electricity.storage.AccumulatorBlockEntity;
|
||||||
import com.drmangotea.tfmg.content.electricity.storage.TFMGForgeEnergyStorage;
|
import com.drmangotea.tfmg.content.electricity.storage.TFMGForgeEnergyStorage;
|
||||||
import com.drmangotea.tfmg.content.machinery.misc.winding_machine.WindingMachineBlockEntity;
|
|
||||||
import com.drmangotea.tfmg.registry.TFMGBlockEntities;
|
import com.drmangotea.tfmg.registry.TFMGBlockEntities;
|
||||||
import com.simibubi.create.foundation.blockEntity.behaviour.BlockEntityBehaviour;
|
import com.simibubi.create.foundation.blockEntity.behaviour.BlockEntityBehaviour;
|
||||||
import com.simibubi.create.foundation.blockEntity.behaviour.ValueBoxTransform;
|
import com.simibubi.create.foundation.blockEntity.behaviour.ValueBoxTransform;
|
||||||
import com.simibubi.create.foundation.blockEntity.behaviour.scrollValue.ScrollValueBehaviour;
|
import com.simibubi.create.foundation.blockEntity.behaviour.scrollValue.ScrollValueBehaviour;
|
||||||
|
|
||||||
import com.simibubi.create.foundation.utility.CreateLang;
|
|
||||||
import net.createmod.catnip.math.VecHelper;
|
import net.createmod.catnip.math.VecHelper;
|
||||||
import net.minecraft.ChatFormatting;
|
|
||||||
import net.minecraft.core.BlockPos;
|
import net.minecraft.core.BlockPos;
|
||||||
import net.minecraft.core.Direction;
|
import net.minecraft.core.Direction;
|
||||||
import net.minecraft.core.HolderLookup;
|
import net.minecraft.core.HolderLookup;
|
||||||
@@ -29,9 +24,6 @@ import net.minecraft.world.phys.Vec3;
|
|||||||
import net.neoforged.neoforge.capabilities.Capabilities;
|
import net.neoforged.neoforge.capabilities.Capabilities;
|
||||||
import net.neoforged.neoforge.capabilities.RegisterCapabilitiesEvent;
|
import net.neoforged.neoforge.capabilities.RegisterCapabilitiesEvent;
|
||||||
import net.neoforged.neoforge.energy.IEnergyStorage;
|
import net.neoforged.neoforge.energy.IEnergyStorage;
|
||||||
import org.jetbrains.annotations.NotNull;
|
|
||||||
|
|
||||||
import javax.annotation.Nullable;
|
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@@ -134,7 +126,7 @@ public class ConverterBlockEntity extends ElectricBlockEntity {
|
|||||||
public int getChargingRate() {
|
public int getChargingRate() {
|
||||||
//
|
//
|
||||||
// int chargingRate = Math.max((data.networkPowerGeneration - getNetworkPowerUsage()), 0);
|
// int chargingRate = Math.max((data.networkPowerGeneration - getNetworkPowerUsage()), 0);
|
||||||
if (energy.getEnergyStored() == getMaxCapacity() || getData().getVoltage() < voltageGenerated.value || canPower()|| data.notEnoughtPower)
|
if (energy.getEnergyStored() == getMaxCapacity() || getData().getVoltage() < voltageGenerated.value || canPower()|| data.notEnoughPower)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
//return Math.min(chargingRate, getMaxChargingRate());
|
//return Math.min(chargingRate, getMaxChargingRate());
|
||||||
|
|||||||
@@ -1,163 +0,0 @@
|
|||||||
package com.drmangotea.tfmg.content.electricity.utilities.diode;
|
|
||||||
|
|
||||||
|
|
||||||
import com.drmangotea.tfmg.base.blocks.TFMGHorizontalDirectionalBlock;
|
|
||||||
import com.drmangotea.tfmg.content.electricity.base.IElectric;
|
|
||||||
import com.drmangotea.tfmg.content.electricity.base.UpdateInFrontPacket;
|
|
||||||
import com.drmangotea.tfmg.content.electricity.base.VoltageAlteringBlockEntity;
|
|
||||||
import com.drmangotea.tfmg.registry.TFMGPackets;
|
|
||||||
import net.createmod.catnip.platform.CatnipServices;
|
|
||||||
import net.minecraft.core.BlockPos;
|
|
||||||
import net.minecraft.core.Direction;
|
|
||||||
import net.minecraft.server.level.ServerLevel;
|
|
||||||
import net.minecraft.world.level.ChunkPos;
|
|
||||||
import net.minecraft.world.level.block.DirectionalBlock;
|
|
||||||
import net.minecraft.world.level.block.HorizontalDirectionalBlock;
|
|
||||||
import net.minecraft.world.level.block.entity.BlockEntityType;
|
|
||||||
import net.minecraft.world.level.block.state.BlockState;
|
|
||||||
|
|
||||||
|
|
||||||
import static net.minecraft.world.level.block.DirectionalBlock.FACING;
|
|
||||||
|
|
||||||
public class ElectricDiodeBlockEntity extends VoltageAlteringBlockEntity {
|
|
||||||
|
|
||||||
public boolean updateInFront = false;
|
|
||||||
|
|
||||||
|
|
||||||
public ElectricDiodeBlockEntity(BlockEntityType<?> type, BlockPos pos, BlockState state) {
|
|
||||||
super(type, pos, state);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int getOutputVoltage() {
|
|
||||||
return getData().getVoltage();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int getOutputPower() {
|
|
||||||
return getPowerUsage();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void tick() {
|
|
||||||
super.tick();
|
|
||||||
if (updateInFront) {
|
|
||||||
updateInFront();
|
|
||||||
updateInFront = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void lazyTick() {
|
|
||||||
super.lazyTick();
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int getPowerUsage() {
|
|
||||||
getOrCreateElectricNetwork().checkForLoops(getBlockPos());
|
|
||||||
Direction facing = getDirection();
|
|
||||||
if (level.getBlockEntity(getBlockPos().relative(facing)) instanceof IElectric be && be.getData().getId() != data.getId()) {
|
|
||||||
if (be.hasElectricitySlot(facing.getOpposite()))
|
|
||||||
|
|
||||||
return Math.max(be.getNetworkPowerUsage(this), 0);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public IElectric getControlledBlock() {
|
|
||||||
Direction facing = getBlockState().hasProperty(DirectionalBlock.FACING) ? getBlockState().getValue(DirectionalBlock.FACING) : getBlockState().getValue(HorizontalDirectionalBlock.FACING).getCounterClockWise();
|
|
||||||
if (level.getBlockEntity(getBlockPos().relative(facing)) instanceof IElectric be && be.getData().getId() != data.getId()) {
|
|
||||||
return be;
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public float resistance() {
|
|
||||||
Direction facing = getDirection();
|
|
||||||
if (level.getBlockEntity(getBlockPos().relative(facing)) instanceof IElectric be && be.getData().getId() != data.getId()) {
|
|
||||||
if (be.hasElectricitySlot(facing.getOpposite()))
|
|
||||||
return Math.max(be.getNetworkResistance(), 0);
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Direction getDirection(){
|
|
||||||
if(!getBlockState().hasProperty(FACING)){
|
|
||||||
return getBlockState().getValue(TFMGHorizontalDirectionalBlock.FACING).getCounterClockWise();
|
|
||||||
}
|
|
||||||
|
|
||||||
return getBlockState().getValue(FACING);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean hasElectricitySlot(Direction direction) {
|
|
||||||
return getDirection().getOpposite() == direction;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onNetworkChanged(int oldVoltage, int oldPower) {
|
|
||||||
super.onNetworkChanged(oldVoltage, oldPower);
|
|
||||||
|
|
||||||
if (oldVoltage != getData().getVoltage() || oldPower != getPowerUsage()) {
|
|
||||||
updateInFront = true;
|
|
||||||
}
|
|
||||||
sendStuff();
|
|
||||||
setChanged();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void remove() {
|
|
||||||
|
|
||||||
super.remove();
|
|
||||||
updateInFront();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onPlaced() {
|
|
||||||
|
|
||||||
super.onPlaced();
|
|
||||||
updateInFront = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void updateInFrontNextTick(){
|
|
||||||
updateInFront = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void updateInFront() {
|
|
||||||
|
|
||||||
if (level instanceof ServerLevel serverLevel)
|
|
||||||
CatnipServices.NETWORK.sendToClientsTrackingChunk(serverLevel, new ChunkPos(worldPosition),new UpdateInFrontPacket(BlockPos.of(getPos())));
|
|
||||||
Direction facing = getBlockState().hasProperty(FACING) ? getBlockState().getValue(FACING) : getBlockState().getValue(HorizontalDirectionalBlock.FACING).getCounterClockWise();
|
|
||||||
if (level.getBlockEntity(getBlockPos().relative(facing)) instanceof IElectric be && be.getData().getId() != data.getId()) {
|
|
||||||
if (be.hasElectricitySlot(facing.getOpposite())) {
|
|
||||||
be.updateNextTick();
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
sendStuff();
|
|
||||||
setChanged();
|
|
||||||
}
|
|
||||||
public void updateBehind() {
|
|
||||||
|
|
||||||
if (level instanceof ServerLevel serverLevel)
|
|
||||||
CatnipServices.NETWORK.sendToClientsTrackingChunk(serverLevel, new ChunkPos(worldPosition),new UpdateInFrontPacket(BlockPos.of(getPos())));
|
|
||||||
Direction facing = getBlockState().hasProperty(FACING) ? getBlockState().getValue(FACING) : getBlockState().getValue(HorizontalDirectionalBlock.FACING).getCounterClockWise();
|
|
||||||
facing = facing.getOpposite();
|
|
||||||
if (level.getBlockEntity(getBlockPos().relative(facing)) instanceof IElectric be && be.getData().getId() != data.getId()) {
|
|
||||||
if (be.hasElectricitySlot(facing.getOpposite())) {
|
|
||||||
be.updateNextTick();
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
sendStuff();
|
|
||||||
setChanged();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -127,7 +127,7 @@ public class ElectricMotorBlockEntity extends KineticElectricBlockEntity {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public float calculateAddedStressCapacity() {
|
public float calculateAddedStressCapacity() {
|
||||||
float speedModifier = getSpeed()/256;
|
float speedModifier = Math.abs(getSpeed()/256);
|
||||||
|
|
||||||
|
|
||||||
return (int)(super.calculateAddedStressCapacity()*speedModifier);
|
return (int)(super.calculateAddedStressCapacity()*speedModifier);
|
||||||
|
|||||||
@@ -39,18 +39,14 @@ public class EngineCTBehavior extends ConnectedTextureBehaviour.Base {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean connectsTo(BlockState state, BlockState other, BlockAndTintGetter reader, BlockPos pos, BlockPos otherPos, Direction face) {
|
public boolean connectsTo(BlockState state, BlockState other, BlockAndTintGetter reader, BlockPos pos, BlockPos otherPos, Direction face) {
|
||||||
//if(reader.getBlockEntity(pos) instanceof AbstractEngineBlockEntity be && reader.getBlockEntity(otherPos) instanceof AbstractEngineBlockEntity be2){
|
return reader.getBlockEntity(pos) instanceof AbstractEngineBlockEntity be && reader.getBlockEntity(otherPos) instanceof AbstractEngineBlockEntity be2;
|
||||||
// if(be.controller.asLong()==be2.controller.asLong())
|
|
||||||
// return true;
|
|
||||||
//}
|
|
||||||
// return false;
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected Direction getUpDirection(BlockAndTintGetter reader, BlockPos pos, BlockState state, Direction face) {
|
protected Direction getUpDirection(BlockAndTintGetter reader, BlockPos pos, BlockState state, Direction face) {
|
||||||
if(face.getAxis().isVertical())
|
if(face.getAxis().isVertical())
|
||||||
return state.getValue(HORIZONTAL_FACING);
|
return state.getValue(EngineBlock.SHAFT_FACING);
|
||||||
return super.getUpDirection(reader, pos, state, face);
|
return super.getUpDirection(reader, pos, state, face);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -601,65 +601,69 @@ public abstract class AbstractSmallEngineBlockEntity extends AbstractEngineBlock
|
|||||||
|
|
||||||
public void connect() {
|
public void connect() {
|
||||||
|
|
||||||
|
try {
|
||||||
|
Direction facing = getBlockState().getValue(HORIZONTAL_FACING);
|
||||||
|
Direction updateDirection = facing.getOpposite();
|
||||||
|
|
||||||
Direction facing = getBlockState().getValue(HORIZONTAL_FACING);
|
if (level.getBlockEntity(getBlockPos().relative(facing)) instanceof AbstractSmallEngineBlockEntity be && be.getBlockState().getBlock() == this.getBlockState().getBlock()) {
|
||||||
Direction updateDirection = facing.getOpposite();
|
be.connect();
|
||||||
|
|
||||||
if (level.getBlockEntity(getBlockPos().relative(facing)) instanceof AbstractSmallEngineBlockEntity be && be.getBlockState().getBlock() == this.getBlockState().getBlock()) {
|
|
||||||
be.connect();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
engines = new ArrayList<>();
|
|
||||||
|
|
||||||
for (int i = 0; i < getMaxLength(); i++) {
|
|
||||||
BlockPos pos = getBlockPos().relative(updateDirection, i);
|
|
||||||
if (level.getBlockEntity(pos) instanceof AbstractSmallEngineBlockEntity be) {
|
|
||||||
if (be.getBlockState().getValue(HORIZONTAL_FACING) != facing) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
level.setBlock(be.getBlockPos(), be.getBlockState().setValue(SHAFT_FACING, be.getBlockPos() == this.getBlockPos() ? facing : updateDirection), 2);
|
|
||||||
|
|
||||||
//if (be instanceof RegularEngineBlockEntity be1 && this instanceof RegularEngineBlockEntity be2 && be1.type != be2.type) {
|
|
||||||
// setBlockStates(this, getBlockPos().relative(updateDirection, i - 1));
|
|
||||||
// TFMG.LOGGER.debug("set blockstates");
|
|
||||||
// return;
|
|
||||||
//}
|
|
||||||
be.detashEngines();
|
|
||||||
engines.add(pos.asLong());
|
|
||||||
|
|
||||||
// level.setBlock(be.getBlockPos().above(), Blocks.GOLD_BLOCK.defaultBlockState(),3);
|
|
||||||
|
|
||||||
be.engineNumber = i;
|
|
||||||
be.engines = new ArrayList<>();
|
|
||||||
be.controller = getBlockPos();
|
|
||||||
be.refreshCapability();
|
|
||||||
|
|
||||||
setBlockStates(be, null);
|
|
||||||
updateGeneratedRotation();
|
|
||||||
onUpdated();
|
|
||||||
be.sendData();
|
|
||||||
be.setChanged();
|
|
||||||
|
|
||||||
if (be.getBlockState().getValue(ENGINE_STATE) != NORMAL && i != 0) {
|
|
||||||
setBlockStates(this, getBlockPos().relative(updateDirection, i - 1));
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
if (i == getMaxLength() - 1)
|
|
||||||
setBlockStates(this, getBlockPos().relative(updateDirection, i));
|
|
||||||
|
|
||||||
|
|
||||||
} else {
|
|
||||||
setBlockStates(this, getBlockPos().relative(updateDirection, i - 1));
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
updateGeneratedRotation();
|
engines = new ArrayList<>();
|
||||||
updateRotation();
|
|
||||||
setChanged();
|
for (int i = 0; i < getMaxLength(); i++) {
|
||||||
sendData();
|
BlockPos pos = getBlockPos().relative(updateDirection, i);
|
||||||
|
if (level.getBlockEntity(pos) instanceof AbstractSmallEngineBlockEntity be) {
|
||||||
|
if (be.getBlockState().getValue(HORIZONTAL_FACING) != facing) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
level.setBlock(be.getBlockPos(), be.getBlockState().setValue(SHAFT_FACING, be.getBlockPos() == this.getBlockPos() ? facing : updateDirection), 2);
|
||||||
|
|
||||||
|
//if (be instanceof RegularEngineBlockEntity be1 && this instanceof RegularEngineBlockEntity be2 && be1.type != be2.type) {
|
||||||
|
// setBlockStates(this, getBlockPos().relative(updateDirection, i - 1));
|
||||||
|
// TFMG.LOGGER.debug("set blockstates");
|
||||||
|
// return;
|
||||||
|
//}
|
||||||
|
be.detashEngines();
|
||||||
|
engines.add(pos.asLong());
|
||||||
|
|
||||||
|
// level.setBlock(be.getBlockPos().above(), Blocks.GOLD_BLOCK.defaultBlockState(),3);
|
||||||
|
|
||||||
|
be.engineNumber = i;
|
||||||
|
be.engines = new ArrayList<>();
|
||||||
|
be.controller = getBlockPos();
|
||||||
|
be.refreshCapability();
|
||||||
|
|
||||||
|
setBlockStates(be, null);
|
||||||
|
updateGeneratedRotation();
|
||||||
|
onUpdated();
|
||||||
|
be.sendData();
|
||||||
|
be.setChanged();
|
||||||
|
|
||||||
|
if (be.getBlockState().getValue(ENGINE_STATE) != NORMAL && i != 0) {
|
||||||
|
setBlockStates(this, getBlockPos().relative(updateDirection, i - 1));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (i == getMaxLength() - 1)
|
||||||
|
setBlockStates(this, getBlockPos().relative(updateDirection, i));
|
||||||
|
|
||||||
|
|
||||||
|
} else {
|
||||||
|
setBlockStates(this, getBlockPos().relative(updateDirection, i - 1));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
updateGeneratedRotation();
|
||||||
|
updateRotation();
|
||||||
|
setChanged();
|
||||||
|
sendData();
|
||||||
|
|
||||||
|
} catch (StackOverflowError ignored){
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,117 @@
|
|||||||
|
package com.drmangotea.tfmg.content.items.weapons.fire_extinguisher;
|
||||||
|
|
||||||
|
import com.drmangotea.tfmg.TFMGClient;
|
||||||
|
import com.drmangotea.tfmg.base.spark.DryIceFlake;
|
||||||
|
import com.drmangotea.tfmg.registry.TFMGEntityTypes;
|
||||||
|
import com.simibubi.create.foundation.item.CustomArmPoseItem;
|
||||||
|
import net.minecraft.client.model.HumanoidModel;
|
||||||
|
import net.minecraft.client.player.AbstractClientPlayer;
|
||||||
|
import net.minecraft.nbt.CompoundTag;
|
||||||
|
import net.minecraft.sounds.SoundEvents;
|
||||||
|
import net.minecraft.sounds.SoundSource;
|
||||||
|
import net.minecraft.world.InteractionHand;
|
||||||
|
import net.minecraft.world.InteractionResultHolder;
|
||||||
|
import net.minecraft.world.entity.LivingEntity;
|
||||||
|
import net.minecraft.world.entity.player.Player;
|
||||||
|
import net.minecraft.world.item.Item;
|
||||||
|
import net.minecraft.world.item.ItemStack;
|
||||||
|
import net.minecraft.world.item.UseAnim;
|
||||||
|
import net.minecraft.world.level.Level;
|
||||||
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
|
import static com.drmangotea.tfmg.registry.TFMGDataComponents.AMOUNT;
|
||||||
|
|
||||||
|
public class FireExtinguisherItem extends Item implements CustomArmPoseItem {
|
||||||
|
|
||||||
|
|
||||||
|
public static final int DRY_ICE_CAPACITY = 500;
|
||||||
|
|
||||||
|
|
||||||
|
public FireExtinguisherItem(Properties pProperties) {
|
||||||
|
super(pProperties);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void onUseTick(Level level, LivingEntity entity, ItemStack stack, int time) {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
int fillLevel = stack.getOrDefault(AMOUNT,0);
|
||||||
|
if(fillLevel == 0) return;
|
||||||
|
|
||||||
|
DryIceFlake flake = TFMGEntityTypes.DRY_ICE_FLAKE.create(level);
|
||||||
|
flake.setPos(entity.getX(),entity.getY()+1.2f,entity.getZ());
|
||||||
|
|
||||||
|
level.playSound(null, entity.getX(), entity.getY(), entity.getZ(), SoundEvents.FIRE_EXTINGUISH, SoundSource.NEUTRAL, 0.1F, 0.04F);
|
||||||
|
|
||||||
|
stack.set(AMOUNT,fillLevel > 0? fillLevel - 1 : 0);
|
||||||
|
|
||||||
|
flake.shoot(entity.getLookAngle().x,entity.getLookAngle().y,entity.getLookAngle().z,0.5f,10.0f);
|
||||||
|
|
||||||
|
level.addFreshEntity(flake);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onCraftedBy(ItemStack stack, Level level, Player player) {
|
||||||
|
super.onCraftedBy(stack, level, player);
|
||||||
|
stack.set(AMOUNT,500);
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getUseDuration(ItemStack stack) {
|
||||||
|
return 696969;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isBarVisible(ItemStack stack) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getBarColor(ItemStack stack) {
|
||||||
|
return 0xffffff;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getBarWidth(ItemStack stack) {
|
||||||
|
|
||||||
|
float fillLevel = (float)stack.getOrDefault(AMOUNT,0) / (float)DRY_ICE_CAPACITY;
|
||||||
|
return Math.round(13.0f * fillLevel);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public InteractionResultHolder<ItemStack> use(Level level, Player player, InteractionHand hand) {
|
||||||
|
player.startUsingItem(hand);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
return InteractionResultHolder.pass(player.getItemInHand(hand));
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public boolean shouldCauseReequipAnimation(ItemStack oldStack, ItemStack newStack, boolean slotChanged) {
|
||||||
|
return slotChanged || newStack.getItem() != oldStack.getItem();
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public boolean onEntitySwing(ItemStack stack, LivingEntity entity, InteractionHand hand) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Nullable
|
||||||
|
public HumanoidModel.ArmPose getArmPose(ItemStack stack, AbstractClientPlayer player, InteractionHand hand) {
|
||||||
|
if (!player.swinging) {
|
||||||
|
return HumanoidModel.ArmPose.CROSSBOW_HOLD;
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public int getUseDuration(ItemStack stack, LivingEntity entity) {
|
||||||
|
return 1000;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public UseAnim getUseAnimation(ItemStack pStack) {
|
||||||
|
return UseAnim.NONE;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -158,6 +158,7 @@ public class FlamethrowerItem extends Item implements CustomArmPoseItem {
|
|||||||
return InteractionResultHolder.pass(player.getItemInHand(hand));
|
return InteractionResultHolder.pass(player.getItemInHand(hand));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getUseDuration(ItemStack stack, LivingEntity entity) {
|
public int getUseDuration(ItemStack stack, LivingEntity entity) {
|
||||||
return 1000;
|
return 1000;
|
||||||
|
|||||||
@@ -151,14 +151,6 @@ public class FlarestackBlockEntity extends SmartBlockEntity implements IHaveGogg
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//@Nonnull
|
|
||||||
//@Override
|
|
||||||
//public <T> LazyOptional<T> getCapability(@Nonnull Capability<T> cap, @Nullable Direction side) {
|
|
||||||
//
|
|
||||||
// if (cap == ForgeCapabilities.FLUID_HANDLER)
|
|
||||||
// return fluidCapability.cast();
|
|
||||||
// return super.getCapability(cap, side);
|
|
||||||
//}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,54 @@
|
|||||||
|
package com.drmangotea.tfmg.content.machinery.misc.gas_lamp;
|
||||||
|
|
||||||
|
import com.drmangotea.tfmg.base.TFMGShapes;
|
||||||
|
import com.drmangotea.tfmg.registry.TFMGBlockEntities;
|
||||||
|
import com.simibubi.create.foundation.block.IBE;
|
||||||
|
import net.minecraft.core.BlockPos;
|
||||||
|
import net.minecraft.world.item.context.BlockPlaceContext;
|
||||||
|
import net.minecraft.world.level.BlockGetter;
|
||||||
|
import net.minecraft.world.level.block.Block;
|
||||||
|
import net.minecraft.world.level.block.entity.BlockEntityType;
|
||||||
|
import net.minecraft.world.level.block.state.BlockState;
|
||||||
|
import net.minecraft.world.level.block.state.StateDefinition;
|
||||||
|
import net.minecraft.world.level.block.state.properties.BlockStateProperties;
|
||||||
|
import net.minecraft.world.level.block.state.properties.BooleanProperty;
|
||||||
|
import net.minecraft.world.phys.shapes.CollisionContext;
|
||||||
|
import net.minecraft.world.phys.shapes.VoxelShape;
|
||||||
|
|
||||||
|
import javax.annotation.Nullable;
|
||||||
|
|
||||||
|
public class GasLampBlock extends Block implements IBE<GasLampBlockEntity> {
|
||||||
|
public static final BooleanProperty LIT = BlockStateProperties.LIT;
|
||||||
|
|
||||||
|
public GasLampBlock(Properties properties) {
|
||||||
|
super(properties);
|
||||||
|
this.registerDefaultState(this.stateDefinition.any().setValue(LIT, false));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public VoxelShape getShape(BlockState pState, BlockGetter worldIn, BlockPos pos, CollisionContext context) {
|
||||||
|
|
||||||
|
return TFMGShapes.GAS_LAMP;
|
||||||
|
}
|
||||||
|
@Nullable
|
||||||
|
public BlockState getStateForPlacement(BlockPlaceContext context) {
|
||||||
|
|
||||||
|
return this.defaultBlockState().setValue(LIT, Boolean.FALSE);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
protected void createBlockStateDefinition(StateDefinition.Builder<Block, BlockState> p_51305_) {
|
||||||
|
p_51305_.add(LIT);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Class<GasLampBlockEntity> getBlockEntityClass() {
|
||||||
|
return GasLampBlockEntity.class;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BlockEntityType<? extends GasLampBlockEntity> getBlockEntityType() {
|
||||||
|
return TFMGBlockEntities.GAS_LAMP.get();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,116 @@
|
|||||||
|
package com.drmangotea.tfmg.content.machinery.misc.gas_lamp;
|
||||||
|
|
||||||
|
import com.drmangotea.tfmg.base.TFMGUtils;
|
||||||
|
import com.drmangotea.tfmg.registry.TFMGTags;
|
||||||
|
import com.simibubi.create.api.equipment.goggles.IHaveGoggleInformation;
|
||||||
|
import com.simibubi.create.foundation.blockEntity.SmartBlockEntity;
|
||||||
|
import com.simibubi.create.foundation.blockEntity.behaviour.BlockEntityBehaviour;
|
||||||
|
import com.simibubi.create.foundation.fluid.SmartFluidTank;
|
||||||
|
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.world.level.block.entity.BlockEntityType;
|
||||||
|
import net.minecraft.world.level.block.state.BlockState;
|
||||||
|
import net.neoforged.neoforge.fluids.FluidStack;
|
||||||
|
import net.neoforged.neoforge.fluids.capability.IFluidHandler;
|
||||||
|
import net.neoforged.neoforge.fluids.capability.templates.FluidTank;
|
||||||
|
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
|
import javax.annotation.Nullable;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class GasLampBlockEntity extends SmartBlockEntity implements IHaveGoggleInformation {
|
||||||
|
|
||||||
|
|
||||||
|
public FluidTank tankInventory;
|
||||||
|
|
||||||
|
public int lightTimer = 0;
|
||||||
|
|
||||||
|
|
||||||
|
public GasLampBlockEntity(BlockEntityType<?> type, BlockPos pos, BlockState state) {
|
||||||
|
super(type, pos, state);
|
||||||
|
tankInventory = createInventory();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
protected SmartFluidTank createInventory() {
|
||||||
|
return new SmartFluidTank(4000, this::onFluidStackChanged) {
|
||||||
|
@Override
|
||||||
|
public boolean isFluidValid(FluidStack stack) {
|
||||||
|
return stack.getFluid().is(TFMGTags.TFMGFluidTags.FLAMMABLE.tag)||
|
||||||
|
stack.getFluid().is(TFMGTags.TFMGFluidTags.FUEL.tag);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void invalidate() {
|
||||||
|
super.invalidate();
|
||||||
|
invalidateCapabilities();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void onFluidStackChanged(FluidStack newFluidStack) {
|
||||||
|
if (!hasLevel()) return;
|
||||||
|
sendData();
|
||||||
|
setChanged();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@SuppressWarnings("removal")
|
||||||
|
public boolean addToGoggleTooltip(List<Component> tooltip, boolean isPlayerSneaking) {
|
||||||
|
return TFMGUtils.createFluidTooltip(this, tooltip);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void tick() {
|
||||||
|
super.tick();
|
||||||
|
|
||||||
|
if (tankInventory.isEmpty() || !tankInventory.isFluidValid(tankInventory.getFluid())) {
|
||||||
|
level.setBlock(getBlockPos(), this.getBlockState()
|
||||||
|
.setValue(GasLampBlock.LIT, false), 2);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if (tankInventory.getFluidAmount() > 0) {
|
||||||
|
if (level.random.nextInt(20) == 0)
|
||||||
|
tankInventory.drain(1, IFluidHandler.FluidAction.EXECUTE);
|
||||||
|
lightTimer = 100;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (lightTimer > 0) {
|
||||||
|
lightTimer--;
|
||||||
|
level.setBlock(getBlockPos(), this.getBlockState()
|
||||||
|
.setValue(GasLampBlock.LIT, true), 2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void read(CompoundTag compound, HolderLookup.Provider registries, boolean clientPacket) {
|
||||||
|
super.read(compound,registries , clientPacket);
|
||||||
|
|
||||||
|
tankInventory.readFromNBT(registries,compound.getCompound("TankContent"));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void write(CompoundTag compound, HolderLookup.Provider registries, boolean clientPacket) {
|
||||||
|
super.write(compound,registries , clientPacket);
|
||||||
|
compound.put("TankContent", tankInventory.writeToNBT(registries,new CompoundTag()));
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void addBehaviours(List<BlockEntityBehaviour> behaviours) {
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
package com.drmangotea.tfmg.content.machinery.misc.gas_lamp;
|
||||||
|
|
||||||
|
import com.drmangotea.tfmg.content.machinery.misc.flarestack.FlarestackBlock;
|
||||||
|
import com.simibubi.create.foundation.data.SpecialBlockStateGen;
|
||||||
|
import com.tterrag.registrate.providers.DataGenContext;
|
||||||
|
import com.tterrag.registrate.providers.RegistrateBlockstateProvider;
|
||||||
|
import net.minecraft.world.level.block.Block;
|
||||||
|
import net.minecraft.world.level.block.state.BlockState;
|
||||||
|
import net.neoforged.neoforge.client.model.generators.ModelFile;
|
||||||
|
|
||||||
|
|
||||||
|
import static com.simibubi.create.foundation.data.AssetLookup.partialBaseModel;
|
||||||
|
|
||||||
|
public class GasLampGenerator extends SpecialBlockStateGen {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected int getXRotation(BlockState state) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected int getYRotation(BlockState state) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public <T extends Block> ModelFile getModel(DataGenContext<Block, T> ctx, RegistrateBlockstateProvider prov,
|
||||||
|
BlockState state) {
|
||||||
|
|
||||||
|
return state.getValue(FlarestackBlock.LIT) ? partialBaseModel(ctx, prov, "lit")
|
||||||
|
: partialBaseModel(ctx, prov);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -37,6 +37,7 @@ import net.neoforged.api.distmarker.OnlyIn;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
|
import static com.drmangotea.tfmg.base.blocks.WallMountBlock.FACING;
|
||||||
import static com.simibubi.create.foundation.utility.Debug.debugMessage;
|
import static com.simibubi.create.foundation.utility.Debug.debugMessage;
|
||||||
|
|
||||||
public class SpoolItem extends Item {
|
public class SpoolItem extends Item {
|
||||||
@@ -113,8 +114,19 @@ public class SpoolItem extends Item {
|
|||||||
|
|
||||||
if(Objects.equals(cableTypeKey, TFMG.asResource("empty")))
|
if(Objects.equals(cableTypeKey, TFMG.asResource("empty")))
|
||||||
return InteractionResult.PASS;
|
return InteractionResult.PASS;
|
||||||
|
Direction direction = level.getBlockState(pos).getValue(FACING);
|
||||||
|
for (int i = 0; i < 64; i++) {
|
||||||
|
if (level.getBlockEntity(pos.relative(direction)) instanceof CableConnectorBlockEntity) {
|
||||||
|
pos = pos.relative(direction);
|
||||||
|
|
||||||
|
} else break;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
if(level.getBlockEntity(pos) instanceof CableConnectorBlockEntity be){
|
if(level.getBlockEntity(pos) instanceof CableConnectorBlockEntity be){
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if(stack.get(TFMGDataComponents.POSITION)!=null){
|
if(stack.get(TFMGDataComponents.POSITION)!=null){
|
||||||
BlockPos posToConnect = BlockPos.of(stack.get(TFMGDataComponents.POSITION));
|
BlockPos posToConnect = BlockPos.of(stack.get(TFMGDataComponents.POSITION));
|
||||||
if(posToConnect.equals(pos)){
|
if(posToConnect.equals(pos)){
|
||||||
@@ -127,7 +139,13 @@ public class SpoolItem extends Item {
|
|||||||
be.setChanged();
|
be.setChanged();
|
||||||
return InteractionResult.SUCCESS;
|
return InteractionResult.SUCCESS;
|
||||||
}
|
}
|
||||||
|
for (int i = 0; i < 64; i++) {
|
||||||
|
if (level.getBlockEntity(posToConnect.relative(direction)) instanceof CableConnectorBlockEntity) {
|
||||||
|
posToConnect = posToConnect.relative(direction);
|
||||||
|
|
||||||
|
} else break;
|
||||||
|
|
||||||
|
}
|
||||||
if(level.getBlockEntity(posToConnect) instanceof CableConnectorBlockEntity otherBE) {
|
if(level.getBlockEntity(posToConnect) instanceof CableConnectorBlockEntity otherBE) {
|
||||||
//CableConnectorBlockEntity connectedBe1 = pos.asLong()>posToConnect.asLong() ? otherBE : be;
|
//CableConnectorBlockEntity connectedBe1 = pos.asLong()>posToConnect.asLong() ? otherBE : be;
|
||||||
//CableConnectorBlockEntity connectedBe2= pos.asLong()>posToConnect.asLong() ? be : otherBE;
|
//CableConnectorBlockEntity connectedBe2= pos.asLong()>posToConnect.asLong() ? be : otherBE;
|
||||||
|
|||||||
@@ -1804,6 +1804,31 @@ public class TFMGStandardRecipeGen extends TFMGRecipeProvider {
|
|||||||
.pattern(" B ")
|
.pattern(" B ")
|
||||||
.pattern("NNN")),
|
.pattern("NNN")),
|
||||||
|
|
||||||
|
GAS_LAMP = create(TFMGBlocks.GAS_LAMP)
|
||||||
|
.unlockedBy(TFMGBlocks.CAST_IRON_BARS::get)
|
||||||
|
.viaShaped(b -> b
|
||||||
|
.define('B', TFMGBlocks.CAST_IRON_BARS)
|
||||||
|
.define('P', industrialPipe())
|
||||||
|
.define('G', AllPaletteBlocks.FRAMED_GLASS)
|
||||||
|
.define('C', castIronSheet())
|
||||||
|
.pattern(" C ")
|
||||||
|
.pattern("BGB")
|
||||||
|
.pattern(" P ")),
|
||||||
|
|
||||||
|
FIRE_EXTINGUISHER = create(TFMGItems.FIRE_EXTINGUISHER)
|
||||||
|
.unlockedBy(TFMGRegistrate.getBucket("carbon_dioxide")::asItem)
|
||||||
|
.viaShaped(b -> b
|
||||||
|
.define('N', steelNugget())
|
||||||
|
.define('R', Items.RED_DYE)
|
||||||
|
.define('S', steelIngot())
|
||||||
|
.define('C', TFMGRegistrate.getBucket("carbon_dioxide"))
|
||||||
|
.define('A', aluminumSheet())
|
||||||
|
.pattern("NSR")
|
||||||
|
.pattern("ACA")
|
||||||
|
.pattern("AAA")),
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
TRAFFIC_LIGHT = create(TFMGBlocks.TRAFFIC_LIGHT)
|
TRAFFIC_LIGHT = create(TFMGBlocks.TRAFFIC_LIGHT)
|
||||||
.unlockedBy(TFMGBlocks.LIGHT_BULB::get)
|
.unlockedBy(TFMGBlocks.LIGHT_BULB::get)
|
||||||
.viaShaped(b -> b
|
.viaShaped(b -> b
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package com.drmangotea.tfmg.datagen.recipes.values.create;
|
package com.drmangotea.tfmg.datagen.recipes.values.create;
|
||||||
|
|
||||||
import com.drmangotea.tfmg.TFMG;
|
import com.drmangotea.tfmg.TFMG;
|
||||||
|
import com.drmangotea.tfmg.content.items.weapons.fire_extinguisher.FireExtinguisherItem;
|
||||||
import com.drmangotea.tfmg.registry.TFMGBlocks;
|
import com.drmangotea.tfmg.registry.TFMGBlocks;
|
||||||
import com.drmangotea.tfmg.registry.TFMGFluids;
|
import com.drmangotea.tfmg.registry.TFMGFluids;
|
||||||
import com.drmangotea.tfmg.registry.TFMGItems;
|
import com.drmangotea.tfmg.registry.TFMGItems;
|
||||||
@@ -9,11 +10,13 @@ import com.simibubi.create.api.data.recipe.FillingRecipeGen;
|
|||||||
import net.minecraft.core.HolderLookup;
|
import net.minecraft.core.HolderLookup;
|
||||||
import net.minecraft.data.PackOutput;
|
import net.minecraft.data.PackOutput;
|
||||||
import net.minecraft.tags.ItemTags;
|
import net.minecraft.tags.ItemTags;
|
||||||
|
import net.minecraft.world.item.ItemStack;
|
||||||
import net.minecraft.world.item.Items;
|
import net.minecraft.world.item.Items;
|
||||||
|
|
||||||
import java.util.concurrent.CompletableFuture;
|
import java.util.concurrent.CompletableFuture;
|
||||||
|
|
||||||
import static com.drmangotea.tfmg.datagen.recipes.TFMGRecipeProvider.F.*;
|
import static com.drmangotea.tfmg.datagen.recipes.TFMGRecipeProvider.F.*;
|
||||||
|
import static com.drmangotea.tfmg.registry.TFMGDataComponents.AMOUNT;
|
||||||
|
|
||||||
|
|
||||||
public class TFMGFillingRecipeGen extends FillingRecipeGen {
|
public class TFMGFillingRecipeGen extends FillingRecipeGen {
|
||||||
@@ -85,11 +88,23 @@ public class TFMGFillingRecipeGen extends FillingRecipeGen {
|
|||||||
.require(Items.BUCKET)
|
.require(Items.BUCKET)
|
||||||
.require(hotAir(), 1000)
|
.require(hotAir(), 1000)
|
||||||
.output(hotAirTank())
|
.output(hotAirTank())
|
||||||
|
),
|
||||||
|
FILLED_FIRE_EXTINGUISHER = create("filled_fire_extinguisher", b -> b
|
||||||
|
.require(TFMGItems.FIRE_EXTINGUISHER)
|
||||||
|
.require(carbonDioxide(), 1000)
|
||||||
|
.output(createFilledExtinguisherStack())
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// Helper method to create the filled extinguisher ItemStack
|
||||||
|
private static ItemStack createFilledExtinguisherStack() {
|
||||||
|
ItemStack stack = new ItemStack(TFMGItems.FIRE_EXTINGUISHER.get());
|
||||||
|
stack.set(AMOUNT, FireExtinguisherItem.DRY_ICE_CAPACITY);
|
||||||
|
return stack;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public TFMGFillingRecipeGen(PackOutput generator, CompletableFuture<HolderLookup.Provider> registries) {
|
public TFMGFillingRecipeGen(PackOutput generator, CompletableFuture<HolderLookup.Provider> registries) {
|
||||||
super(generator, registries,TFMG.MOD_ID);
|
super(generator, registries, TFMG.MOD_ID);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ import com.drmangotea.tfmg.content.decoration.tanks.TFMGFluidTankRenderer;
|
|||||||
import com.drmangotea.tfmg.content.decoration.tanks.steel.SteelFluidTankRenderer;
|
import com.drmangotea.tfmg.content.decoration.tanks.steel.SteelFluidTankRenderer;
|
||||||
import com.drmangotea.tfmg.content.decoration.tanks.steel.SteelTankBlockEntity;
|
import com.drmangotea.tfmg.content.decoration.tanks.steel.SteelTankBlockEntity;
|
||||||
import com.drmangotea.tfmg.content.electricity.base.ElectricBlockEntity;
|
import com.drmangotea.tfmg.content.electricity.base.ElectricBlockEntity;
|
||||||
|
import com.drmangotea.tfmg.content.electricity.base.VoltageAlteringBlockEntity;
|
||||||
import com.drmangotea.tfmg.content.electricity.connection.cables.CableConnectorBlockEntity;
|
import com.drmangotea.tfmg.content.electricity.connection.cables.CableConnectorBlockEntity;
|
||||||
import com.drmangotea.tfmg.content.electricity.connection.cables.CableConnectorRenderer;
|
import com.drmangotea.tfmg.content.electricity.connection.cables.CableConnectorRenderer;
|
||||||
import com.drmangotea.tfmg.content.electricity.connection.copycat_cable.CopycatCableBlockEntity;
|
import com.drmangotea.tfmg.content.electricity.connection.copycat_cable.CopycatCableBlockEntity;
|
||||||
@@ -34,21 +35,20 @@ import com.drmangotea.tfmg.content.electricity.measurement.VoltMeterBlockEntity;
|
|||||||
import com.drmangotea.tfmg.content.electricity.measurement.VoltMeterRenderer;
|
import com.drmangotea.tfmg.content.electricity.measurement.VoltMeterRenderer;
|
||||||
import com.drmangotea.tfmg.content.electricity.storage.AccumulatorBlockEntity;
|
import com.drmangotea.tfmg.content.electricity.storage.AccumulatorBlockEntity;
|
||||||
import com.drmangotea.tfmg.content.electricity.utilities.converter.ConverterBlockEntity;
|
import com.drmangotea.tfmg.content.electricity.utilities.converter.ConverterBlockEntity;
|
||||||
import com.drmangotea.tfmg.content.electricity.utilities.diode.ElectricDiodeBlockEntity;
|
|
||||||
import com.drmangotea.tfmg.content.electricity.utilities.electric_motor.ElectricMotorBlockEntity;
|
import com.drmangotea.tfmg.content.electricity.utilities.electric_motor.ElectricMotorBlockEntity;
|
||||||
import com.drmangotea.tfmg.content.electricity.utilities.electric_pump.ElectricPumpBlockEntity;
|
import com.drmangotea.tfmg.content.electricity.utilities.electric_pump.ElectricPumpBlockEntity;
|
||||||
import com.drmangotea.tfmg.content.electricity.utilities.electric_switch.ElectricSwitchBlockEntity;
|
import com.drmangotea.tfmg.content.electricity.network.electric_switch.ElectricSwitchBlockEntity;
|
||||||
|
|
||||||
import com.drmangotea.tfmg.content.electricity.utilities.polarizer.PolarizerBlockEntity;
|
import com.drmangotea.tfmg.content.electricity.utilities.polarizer.PolarizerBlockEntity;
|
||||||
import com.drmangotea.tfmg.content.electricity.utilities.polarizer.PolarizerRenderer;
|
import com.drmangotea.tfmg.content.electricity.utilities.polarizer.PolarizerRenderer;
|
||||||
import com.drmangotea.tfmg.content.electricity.utilities.potentiometer.PotentiometerBlockEntity;
|
import com.drmangotea.tfmg.content.electricity.network.potentiometer.PotentiometerBlockEntity;
|
||||||
import com.drmangotea.tfmg.content.electricity.utilities.resistor.ResistorBlockEntity;
|
import com.drmangotea.tfmg.content.electricity.utilities.resistor.ResistorBlockEntity;
|
||||||
import com.drmangotea.tfmg.content.electricity.utilities.segmented_display.SegmentedDisplayBlockEntity;
|
import com.drmangotea.tfmg.content.electricity.utilities.segmented_display.SegmentedDisplayBlockEntity;
|
||||||
import com.drmangotea.tfmg.content.electricity.utilities.segmented_display.SegmentedDisplayRenderer;
|
import com.drmangotea.tfmg.content.electricity.utilities.segmented_display.SegmentedDisplayRenderer;
|
||||||
import com.drmangotea.tfmg.content.electricity.utilities.traffic_light.TrafficLightBlockEntity;
|
import com.drmangotea.tfmg.content.electricity.utilities.traffic_light.TrafficLightBlockEntity;
|
||||||
import com.drmangotea.tfmg.content.electricity.utilities.traffic_light.TrafficLightRenderer;
|
import com.drmangotea.tfmg.content.electricity.utilities.traffic_light.TrafficLightRenderer;
|
||||||
import com.drmangotea.tfmg.content.electricity.utilities.transformer.TransformerBlockEntity;
|
import com.drmangotea.tfmg.content.electricity.network.transformer.TransformerBlockEntity;
|
||||||
import com.drmangotea.tfmg.content.electricity.utilities.transformer.TransformerRenderer;
|
import com.drmangotea.tfmg.content.electricity.network.transformer.TransformerRenderer;
|
||||||
import com.drmangotea.tfmg.content.electricity.utilities.voltage_observer.VoltageObserverBlockEntity;
|
import com.drmangotea.tfmg.content.electricity.utilities.voltage_observer.VoltageObserverBlockEntity;
|
||||||
import com.drmangotea.tfmg.content.engines.base.EngineRenderer;
|
import com.drmangotea.tfmg.content.engines.base.EngineRenderer;
|
||||||
import com.drmangotea.tfmg.content.engines.engine_controller.EngineControllerBlockEntity;
|
import com.drmangotea.tfmg.content.engines.engine_controller.EngineControllerBlockEntity;
|
||||||
@@ -76,6 +76,7 @@ import com.drmangotea.tfmg.content.machinery.misc.concrete_hose.ConcreteHoseRend
|
|||||||
import com.drmangotea.tfmg.content.machinery.misc.exhaust.ExhaustBlockEntity;
|
import com.drmangotea.tfmg.content.machinery.misc.exhaust.ExhaustBlockEntity;
|
||||||
import com.drmangotea.tfmg.content.machinery.misc.firebox.FireboxBlockEntity;
|
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.flarestack.FlarestackBlockEntity;
|
||||||
|
import com.drmangotea.tfmg.content.machinery.misc.gas_lamp.GasLampBlockEntity;
|
||||||
import com.drmangotea.tfmg.content.machinery.misc.machine_input.MachineInputBlockEntity;
|
import com.drmangotea.tfmg.content.machinery.misc.machine_input.MachineInputBlockEntity;
|
||||||
import com.drmangotea.tfmg.content.machinery.misc.smokestack.SmokestackBlockEntity;
|
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.misc.winding_machine.WindingMachineBlockEntity;
|
||||||
@@ -259,8 +260,8 @@ public class TFMGBlockEntities {
|
|||||||
.validBlocks(TFMGBlocks.ACCUMULATOR)
|
.validBlocks(TFMGBlocks.ACCUMULATOR)
|
||||||
.register();
|
.register();
|
||||||
|
|
||||||
public static final BlockEntityEntry<ElectricDiodeBlockEntity> DIODE = REGISTRATE
|
public static final BlockEntityEntry<VoltageAlteringBlockEntity> DIODE = REGISTRATE
|
||||||
.blockEntity("electric_diode", ElectricDiodeBlockEntity::new)
|
.blockEntity("electric_diode", VoltageAlteringBlockEntity::new)
|
||||||
.validBlocks(TFMGBlocks.DIODE, TFMGBlocks.ENCASED_DIODE)
|
.validBlocks(TFMGBlocks.DIODE, TFMGBlocks.ENCASED_DIODE)
|
||||||
.register();
|
.register();
|
||||||
|
|
||||||
@@ -279,6 +280,11 @@ public class TFMGBlockEntities {
|
|||||||
.validBlocks(TFMGBlocks.TURBINE_ENGINE)
|
.validBlocks(TFMGBlocks.TURBINE_ENGINE)
|
||||||
.register();
|
.register();
|
||||||
|
|
||||||
|
public static final BlockEntityEntry<GasLampBlockEntity> GAS_LAMP = REGISTRATE
|
||||||
|
.blockEntity("gas_lamp", GasLampBlockEntity::new)
|
||||||
|
.validBlocks(TFMGBlocks.GAS_LAMP)
|
||||||
|
.register();
|
||||||
|
|
||||||
public static final BlockEntityEntry<LargeEngineBlockEntity> LARGE_ENGINE = REGISTRATE
|
public static final BlockEntityEntry<LargeEngineBlockEntity> LARGE_ENGINE = REGISTRATE
|
||||||
.blockEntity("large_engine", LargeEngineBlockEntity::new)
|
.blockEntity("large_engine", LargeEngineBlockEntity::new)
|
||||||
.renderer(() -> LargeEngineRenderer::new)
|
.renderer(() -> LargeEngineRenderer::new)
|
||||||
|
|||||||
@@ -44,20 +44,20 @@ import com.drmangotea.tfmg.content.electricity.storage.AccumulatorItem;
|
|||||||
import com.drmangotea.tfmg.content.electricity.storage.CapacitorCTBehavior;
|
import com.drmangotea.tfmg.content.electricity.storage.CapacitorCTBehavior;
|
||||||
import com.drmangotea.tfmg.content.electricity.utilities.converter.ConverterBlock;
|
import com.drmangotea.tfmg.content.electricity.utilities.converter.ConverterBlock;
|
||||||
import com.drmangotea.tfmg.content.electricity.utilities.converter.ConverterGenerator;
|
import com.drmangotea.tfmg.content.electricity.utilities.converter.ConverterGenerator;
|
||||||
import com.drmangotea.tfmg.content.electricity.utilities.diode.ElectricDiodeBlock;
|
import com.drmangotea.tfmg.content.electricity.network.diode.ElectricDiodeBlock;
|
||||||
import com.drmangotea.tfmg.content.electricity.utilities.diode.EncasedDiodeBlock;
|
import com.drmangotea.tfmg.content.electricity.network.diode.EncasedDiodeBlock;
|
||||||
import com.drmangotea.tfmg.content.electricity.utilities.electric_motor.ElectricMotorBlock;
|
import com.drmangotea.tfmg.content.electricity.utilities.electric_motor.ElectricMotorBlock;
|
||||||
import com.drmangotea.tfmg.content.electricity.utilities.electric_pump.ElectricPumpBlock;
|
import com.drmangotea.tfmg.content.electricity.utilities.electric_pump.ElectricPumpBlock;
|
||||||
import com.drmangotea.tfmg.content.electricity.utilities.electric_switch.ElectricSwitchBlock;
|
import com.drmangotea.tfmg.content.electricity.network.electric_switch.ElectricSwitchBlock;
|
||||||
import com.drmangotea.tfmg.content.electricity.utilities.polarizer.PolarizerBlock;
|
import com.drmangotea.tfmg.content.electricity.utilities.polarizer.PolarizerBlock;
|
||||||
import com.drmangotea.tfmg.content.electricity.utilities.potentiometer.EncasedPotentiometerBlock;
|
import com.drmangotea.tfmg.content.electricity.network.potentiometer.EncasedPotentiometerBlock;
|
||||||
import com.drmangotea.tfmg.content.electricity.utilities.potentiometer.PotentiometerBlock;
|
import com.drmangotea.tfmg.content.electricity.network.potentiometer.PotentiometerBlock;
|
||||||
import com.drmangotea.tfmg.content.electricity.utilities.resistor.ResistorBlock;
|
import com.drmangotea.tfmg.content.electricity.utilities.resistor.ResistorBlock;
|
||||||
import com.drmangotea.tfmg.content.electricity.utilities.resistor.ResistorBlockItem;
|
import com.drmangotea.tfmg.content.electricity.utilities.resistor.ResistorBlockItem;
|
||||||
import com.drmangotea.tfmg.content.electricity.utilities.segmented_display.SegmentedDisplayBlock;
|
import com.drmangotea.tfmg.content.electricity.utilities.segmented_display.SegmentedDisplayBlock;
|
||||||
import com.drmangotea.tfmg.content.electricity.utilities.segmented_display.SegmentedDisplayCTBehavior;
|
import com.drmangotea.tfmg.content.electricity.utilities.segmented_display.SegmentedDisplayCTBehavior;
|
||||||
import com.drmangotea.tfmg.content.electricity.utilities.traffic_light.TrafficLightBlock;
|
import com.drmangotea.tfmg.content.electricity.utilities.traffic_light.TrafficLightBlock;
|
||||||
import com.drmangotea.tfmg.content.electricity.utilities.transformer.TransformerBlock;
|
import com.drmangotea.tfmg.content.electricity.network.transformer.TransformerBlock;
|
||||||
import com.drmangotea.tfmg.content.electricity.utilities.voltage_observer.VoltageObserverBlock;
|
import com.drmangotea.tfmg.content.electricity.utilities.voltage_observer.VoltageObserverBlock;
|
||||||
import com.drmangotea.tfmg.content.electricity.utilities.voltage_observer.VoltageObserverGenerator;
|
import com.drmangotea.tfmg.content.electricity.utilities.voltage_observer.VoltageObserverGenerator;
|
||||||
import com.drmangotea.tfmg.content.engines.base.EngineCTBehavior;
|
import com.drmangotea.tfmg.content.engines.base.EngineCTBehavior;
|
||||||
@@ -89,6 +89,8 @@ import com.drmangotea.tfmg.content.machinery.misc.exhaust.ExhaustBlock;
|
|||||||
import com.drmangotea.tfmg.content.machinery.misc.firebox.FireboxBlock;
|
import com.drmangotea.tfmg.content.machinery.misc.firebox.FireboxBlock;
|
||||||
import com.drmangotea.tfmg.content.machinery.misc.flarestack.FlarestackBlock;
|
import com.drmangotea.tfmg.content.machinery.misc.flarestack.FlarestackBlock;
|
||||||
import com.drmangotea.tfmg.content.machinery.misc.flarestack.FlarestackGenerator;
|
import com.drmangotea.tfmg.content.machinery.misc.flarestack.FlarestackGenerator;
|
||||||
|
import com.drmangotea.tfmg.content.machinery.misc.gas_lamp.GasLampBlock;
|
||||||
|
import com.drmangotea.tfmg.content.machinery.misc.gas_lamp.GasLampGenerator;
|
||||||
import com.drmangotea.tfmg.content.machinery.misc.machine_input.MachineInputBlock;
|
import com.drmangotea.tfmg.content.machinery.misc.machine_input.MachineInputBlock;
|
||||||
import com.drmangotea.tfmg.content.machinery.misc.smokestack.SmokestackBlock;
|
import com.drmangotea.tfmg.content.machinery.misc.smokestack.SmokestackBlock;
|
||||||
import com.drmangotea.tfmg.content.machinery.misc.smokestack.SmokestackGenerator;
|
import com.drmangotea.tfmg.content.machinery.misc.smokestack.SmokestackGenerator;
|
||||||
@@ -1349,6 +1351,20 @@ public class TFMGBlocks {
|
|||||||
.transform(customItemModel())
|
.transform(customItemModel())
|
||||||
.register();
|
.register();
|
||||||
|
|
||||||
|
public static final BlockEntry<GasLampBlock> GAS_LAMP =
|
||||||
|
REGISTRATE.block("gas_lamp", GasLampBlock::new)
|
||||||
|
.initialProperties(SharedProperties::copperMetal)
|
||||||
|
.properties(p -> p.sound(SoundType.NETHERITE_BLOCK))
|
||||||
|
.addLayer(() -> RenderType::cutoutMipped)
|
||||||
|
.properties(p -> p
|
||||||
|
.lightLevel(s -> s.getValue(GasLampBlock.LIT) ? 15 : 0)
|
||||||
|
.noOcclusion())
|
||||||
|
.blockstate(new GasLampGenerator()::generate)
|
||||||
|
.transform(pickaxeOnly())
|
||||||
|
.item()
|
||||||
|
.transform(customItemModel())
|
||||||
|
.register();
|
||||||
|
|
||||||
//------------------COGWHEELS------------------//
|
//------------------COGWHEELS------------------//
|
||||||
|
|
||||||
public static final BlockEntry<TFMGCogWheelBlock> STEEL_COGWHEEL =
|
public static final BlockEntry<TFMGCogWheelBlock> STEEL_COGWHEEL =
|
||||||
|
|||||||
@@ -91,6 +91,7 @@ public class TFMGDataComponents {
|
|||||||
"storage",
|
"storage",
|
||||||
builder -> builder.persistent(Codec.INT).networkSynchronized(ByteBufCodecs.VAR_INT)
|
builder -> builder.persistent(Codec.INT).networkSynchronized(ByteBufCodecs.VAR_INT)
|
||||||
);
|
);
|
||||||
|
|
||||||
public static final DataComponentType<Integer> RESISTANCE = register(
|
public static final DataComponentType<Integer> RESISTANCE = register(
|
||||||
"resistance",
|
"resistance",
|
||||||
builder -> builder.persistent(Codec.INT).networkSynchronized(ByteBufCodecs.VAR_INT)
|
builder -> builder.persistent(Codec.INT).networkSynchronized(ByteBufCodecs.VAR_INT)
|
||||||
|
|||||||
@@ -62,6 +62,10 @@ public class TFMGEntityTypes {
|
|||||||
register("lithium_spark", LithiumSpark::new, () -> SparkRenderer::new,
|
register("lithium_spark", LithiumSpark::new, () -> SparkRenderer::new,
|
||||||
MobCategory.MISC, 4, 20, true, true, Spark::build).register();
|
MobCategory.MISC, 4, 20, true, true, Spark::build).register();
|
||||||
|
|
||||||
|
public static final EntityEntry<DryIceFlake> DRY_ICE_FLAKE =
|
||||||
|
register("dry_ice_flake", DryIceFlake::new, () -> SparkRenderer::new,
|
||||||
|
MobCategory.MISC, 4, 20, true, true, Spark::build).register();
|
||||||
|
|
||||||
|
|
||||||
private static <T extends Entity> CreateEntityBuilder<T, ?> register(String name, EntityType.EntityFactory<T> factory,
|
private static <T extends Entity> CreateEntityBuilder<T, ?> register(String name, EntityType.EntityFactory<T> factory,
|
||||||
NonNullSupplier<NonNullFunction<EntityRendererProvider.Context, EntityRenderer<? super T>>> renderer,
|
NonNullSupplier<NonNullFunction<EntityRendererProvider.Context, EntityRenderer<? super T>>> renderer,
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ import com.drmangotea.tfmg.base.debug.DebugCinderBlockItem;
|
|||||||
import com.drmangotea.tfmg.content.electricity.measurement.MultimeterItem;
|
import com.drmangotea.tfmg.content.electricity.measurement.MultimeterItem;
|
||||||
import com.drmangotea.tfmg.content.electricity.utilities.polarizer.MagnetItem;
|
import com.drmangotea.tfmg.content.electricity.utilities.polarizer.MagnetItem;
|
||||||
import com.drmangotea.tfmg.content.electricity.utilities.resistor.ResistorItem;
|
import com.drmangotea.tfmg.content.electricity.utilities.resistor.ResistorItem;
|
||||||
import com.drmangotea.tfmg.content.electricity.utilities.transformer.ElectromagneticCoilItem;
|
import com.drmangotea.tfmg.content.electricity.network.transformer.ElectromagneticCoilItem;
|
||||||
import com.drmangotea.tfmg.content.engines.CylinderItem;
|
import com.drmangotea.tfmg.content.engines.CylinderItem;
|
||||||
import com.drmangotea.tfmg.content.engines.FluidContainingItem;
|
import com.drmangotea.tfmg.content.engines.FluidContainingItem;
|
||||||
import com.drmangotea.tfmg.content.engines.upgrades.TransmissionItem;
|
import com.drmangotea.tfmg.content.engines.upgrades.TransmissionItem;
|
||||||
@@ -22,6 +22,7 @@ import com.drmangotea.tfmg.content.items.weapons.advanced_potato_cannon.Advanced
|
|||||||
import com.drmangotea.tfmg.content.items.weapons.explosives.pipe_bomb.PipeBombItem;
|
import com.drmangotea.tfmg.content.items.weapons.explosives.pipe_bomb.PipeBombItem;
|
||||||
import com.drmangotea.tfmg.content.items.weapons.explosives.thermite_grenades.ThermiteGrenade;
|
import com.drmangotea.tfmg.content.items.weapons.explosives.thermite_grenades.ThermiteGrenade;
|
||||||
import com.drmangotea.tfmg.content.items.weapons.explosives.thermite_grenades.ThermiteGrenadeItem;
|
import com.drmangotea.tfmg.content.items.weapons.explosives.thermite_grenades.ThermiteGrenadeItem;
|
||||||
|
import com.drmangotea.tfmg.content.items.weapons.fire_extinguisher.FireExtinguisherItem;
|
||||||
import com.drmangotea.tfmg.content.items.weapons.flamethrover.FlamethrowerItem;
|
import com.drmangotea.tfmg.content.items.weapons.flamethrover.FlamethrowerItem;
|
||||||
import com.drmangotea.tfmg.content.items.weapons.lithium_blade.LitLithiumBladeItem;
|
import com.drmangotea.tfmg.content.items.weapons.lithium_blade.LitLithiumBladeItem;
|
||||||
import com.drmangotea.tfmg.content.items.weapons.lithium_blade.LithiumBladeItem;
|
import com.drmangotea.tfmg.content.items.weapons.lithium_blade.LithiumBladeItem;
|
||||||
@@ -265,6 +266,11 @@ public class TFMGItems {
|
|||||||
.properties(p -> p.stacksTo(1))
|
.properties(p -> p.stacksTo(1))
|
||||||
.register();
|
.register();
|
||||||
|
|
||||||
|
public static final ItemEntry<FireExtinguisherItem> FIRE_EXTINGUISHER =
|
||||||
|
REGISTRATE.item("fire_extinguisher", FireExtinguisherItem::new)
|
||||||
|
.model(AssetLookup.itemModelWithPartials())
|
||||||
|
.properties(p -> p.stacksTo(1))
|
||||||
|
.register();
|
||||||
|
|
||||||
public static final Map<String, ItemEntry<MultimeterItem>> MULTIMETERS = multimeters();
|
public static final Map<String, ItemEntry<MultimeterItem>> MULTIMETERS = multimeters();
|
||||||
|
|
||||||
|
|||||||
@@ -1,10 +1,12 @@
|
|||||||
{
|
{
|
||||||
|
"format_version": "1.21.6",
|
||||||
"credit": "Made with Blockbench",
|
"credit": "Made with Blockbench",
|
||||||
"parent": "block/block",
|
"parent": "block/block",
|
||||||
"texture_size": [32, 32],
|
"texture_size": [32, 32],
|
||||||
"textures": {
|
"textures": {
|
||||||
"1": "tfmg:block/converter",
|
"1": "tfmg:block/converter",
|
||||||
"2": "tfmg:block/heavy_machinery_casing",
|
"2": "tfmg:block/heavy_machinery_casing",
|
||||||
|
"3": "tfmg:block/transformer",
|
||||||
"particle": "tfmg:block/heavy_machinery_casing"
|
"particle": "tfmg:block/heavy_machinery_casing"
|
||||||
},
|
},
|
||||||
"elements": [
|
"elements": [
|
||||||
@@ -16,7 +18,7 @@
|
|||||||
"east": {"uv": [0, 0, 8, 3], "texture": "#1"},
|
"east": {"uv": [0, 0, 8, 3], "texture": "#1"},
|
||||||
"south": {"uv": [0, 0, 8, 3], "texture": "#1"},
|
"south": {"uv": [0, 0, 8, 3], "texture": "#1"},
|
||||||
"west": {"uv": [0, 0, 8, 3], "texture": "#1"},
|
"west": {"uv": [0, 0, 8, 3], "texture": "#1"},
|
||||||
"up": {"uv": [0, 8, 8, 16], "texture": "#1"},
|
"up": {"uv": [0, 8, 8, 16], "texture": "#3"},
|
||||||
"down": {"uv": [0, 0, 16, 16], "texture": "#2"}
|
"down": {"uv": [0, 0, 16, 16], "texture": "#2"}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -38,12 +40,12 @@
|
|||||||
"to": [15, 14, 11],
|
"to": [15, 14, 11],
|
||||||
"rotation": {"angle": 0, "axis": "y", "origin": [11, 6, 7]},
|
"rotation": {"angle": 0, "axis": "y", "origin": [11, 6, 7]},
|
||||||
"faces": {
|
"faces": {
|
||||||
"north": {"uv": [13, 0.5, 16, 4.5], "texture": "#1"},
|
"north": {"uv": [13, 0.5, 16, 4.5], "texture": "#3"},
|
||||||
"east": {"uv": [13, 0.5, 16, 4.5], "texture": "#1"},
|
"east": {"uv": [13, 0.5, 16, 4.5], "texture": "#3"},
|
||||||
"south": {"uv": [13, 0.5, 16, 4.5], "texture": "#1"},
|
"south": {"uv": [13, 0.5, 16, 4.5], "texture": "#3"},
|
||||||
"west": {"uv": [13, 0.5, 16, 4.5], "texture": "#1"},
|
"west": {"uv": [13, 0.5, 16, 4.5], "texture": "#3"},
|
||||||
"up": {"uv": [0, 0, 0, 0], "texture": "#1"},
|
"up": {"uv": [0, 0, 0, 0], "texture": "#3"},
|
||||||
"down": {"uv": [0, 0, 0, 0], "texture": "#1"}
|
"down": {"uv": [0, 0, 0, 0], "texture": "#3"}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -51,12 +53,12 @@
|
|||||||
"to": [5, 18, 9],
|
"to": [5, 18, 9],
|
||||||
"rotation": {"angle": 0, "axis": "y", "origin": [3, 14, 7]},
|
"rotation": {"angle": 0, "axis": "y", "origin": [3, 14, 7]},
|
||||||
"faces": {
|
"faces": {
|
||||||
"north": {"uv": [5, 6, 6, 7.5], "texture": "#1"},
|
"north": {"uv": [5, 6, 6, 7.5], "texture": "#3"},
|
||||||
"east": {"uv": [5, 4, 6, 5.5], "texture": "#1"},
|
"east": {"uv": [5, 4, 6, 5.5], "texture": "#3"},
|
||||||
"south": {"uv": [6, 6, 5, 7.5], "texture": "#1"},
|
"south": {"uv": [6, 6, 5, 7.5], "texture": "#3"},
|
||||||
"west": {"uv": [5, 4, 6, 5.5], "texture": "#1"},
|
"west": {"uv": [5, 4, 6, 5.5], "texture": "#3"},
|
||||||
"up": {"uv": [6.5, 6, 7.5, 7], "texture": "#1"},
|
"up": {"uv": [6.5, 6, 7.5, 7], "texture": "#3"},
|
||||||
"down": {"uv": [0, 0, 0, 0], "texture": "#1"}
|
"down": {"uv": [0, 0, 0, 0], "texture": "#3"}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -64,12 +66,12 @@
|
|||||||
"to": [11, 18, 9],
|
"to": [11, 18, 9],
|
||||||
"rotation": {"angle": 0, "axis": "y", "origin": [5, 14, 7]},
|
"rotation": {"angle": 0, "axis": "y", "origin": [5, 14, 7]},
|
||||||
"faces": {
|
"faces": {
|
||||||
"north": {"uv": [2, 6, 5, 7], "texture": "#1"},
|
"north": {"uv": [2, 6, 5, 7], "texture": "#3"},
|
||||||
"east": {"uv": [0, 0, 0, 0], "texture": "#1"},
|
"east": {"uv": [0, 0, 0, 0], "texture": "#3"},
|
||||||
"south": {"uv": [5, 6, 2, 7], "texture": "#1"},
|
"south": {"uv": [5, 6, 2, 7], "texture": "#3"},
|
||||||
"west": {"uv": [0, 0, 0, 0], "texture": "#1"},
|
"west": {"uv": [0, 0, 0, 0], "texture": "#3"},
|
||||||
"up": {"uv": [7.5, 6, 10.5, 7], "texture": "#1"},
|
"up": {"uv": [7.5, 6, 10.5, 7], "texture": "#3"},
|
||||||
"down": {"uv": [0, 0, 6, 2], "texture": "#1"}
|
"down": {"uv": [0, 0, 6, 2], "texture": "#3"}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -77,12 +79,12 @@
|
|||||||
"to": [13, 18, 9],
|
"to": [13, 18, 9],
|
||||||
"rotation": {"angle": 0, "axis": "y", "origin": [11, 14, 7]},
|
"rotation": {"angle": 0, "axis": "y", "origin": [11, 14, 7]},
|
||||||
"faces": {
|
"faces": {
|
||||||
"north": {"uv": [1, 6, 2, 7.5], "texture": "#1"},
|
"north": {"uv": [1, 6, 2, 7.5], "texture": "#3"},
|
||||||
"east": {"uv": [1, 4, 2, 5.5], "texture": "#1"},
|
"east": {"uv": [1, 4, 2, 5.5], "texture": "#3"},
|
||||||
"south": {"uv": [2, 6, 1, 7.5], "texture": "#1"},
|
"south": {"uv": [2, 6, 1, 7.5], "texture": "#3"},
|
||||||
"west": {"uv": [5, 4, 6, 5.5], "texture": "#1"},
|
"west": {"uv": [5, 4, 6, 5.5], "texture": "#3"},
|
||||||
"up": {"uv": [10.5, 6, 11.5, 7], "texture": "#1"},
|
"up": {"uv": [10.5, 6, 11.5, 7], "texture": "#3"},
|
||||||
"down": {"uv": [0, 0, 0, 0], "texture": "#1"}
|
"down": {"uv": [0, 0, 0, 0], "texture": "#3"}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -90,12 +92,12 @@
|
|||||||
"to": [7.5, 15, 11.5],
|
"to": [7.5, 15, 11.5],
|
||||||
"rotation": {"angle": 0, "axis": "y", "origin": [0, 14, 4]},
|
"rotation": {"angle": 0, "axis": "y", "origin": [0, 14, 4]},
|
||||||
"faces": {
|
"faces": {
|
||||||
"north": {"uv": [10.5, 8, 14, 8.5], "texture": "#1"},
|
"north": {"uv": [10.5, 8, 14, 8.5], "texture": "#3"},
|
||||||
"east": {"uv": [10.5, 8, 14, 8.5], "texture": "#1"},
|
"east": {"uv": [10.5, 8, 14, 8.5], "texture": "#3"},
|
||||||
"south": {"uv": [10.5, 8, 14, 8.5], "texture": "#1"},
|
"south": {"uv": [10.5, 8, 14, 8.5], "texture": "#3"},
|
||||||
"west": {"uv": [10.5, 8, 14, 8.5], "texture": "#1"},
|
"west": {"uv": [10.5, 8, 14, 8.5], "texture": "#3"},
|
||||||
"up": {"uv": [10.5, 8, 14, 11.5], "texture": "#1"},
|
"up": {"uv": [10.5, 8, 14, 11.5], "texture": "#3"},
|
||||||
"down": {"uv": [10.5, 8, 14, 11.5], "texture": "#1"}
|
"down": {"uv": [10.5, 8, 14, 11.5], "texture": "#3"}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -103,12 +105,12 @@
|
|||||||
"to": [15.5, 15, 11.5],
|
"to": [15.5, 15, 11.5],
|
||||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 14, 4]},
|
"rotation": {"angle": 0, "axis": "y", "origin": [8, 14, 4]},
|
||||||
"faces": {
|
"faces": {
|
||||||
"north": {"uv": [10.5, 8, 14, 8.5], "texture": "#1"},
|
"north": {"uv": [10.5, 8, 14, 8.5], "texture": "#3"},
|
||||||
"east": {"uv": [10.5, 8, 14, 8.5], "texture": "#1"},
|
"east": {"uv": [10.5, 8, 14, 8.5], "texture": "#3"},
|
||||||
"south": {"uv": [10.5, 8, 14, 8.5], "texture": "#1"},
|
"south": {"uv": [10.5, 8, 14, 8.5], "texture": "#3"},
|
||||||
"west": {"uv": [10.5, 8, 14, 8.5], "texture": "#1"},
|
"west": {"uv": [10.5, 8, 14, 8.5], "texture": "#3"},
|
||||||
"up": {"uv": [10.5, 8, 14, 11.5], "texture": "#1"},
|
"up": {"uv": [10.5, 8, 14, 11.5], "texture": "#3"},
|
||||||
"down": {"uv": [10.5, 8, 14, 11.5], "texture": "#1"}
|
"down": {"uv": [10.5, 8, 14, 11.5], "texture": "#3"}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -116,11 +118,11 @@
|
|||||||
"to": [1, 10, 10],
|
"to": [1, 10, 10],
|
||||||
"rotation": {"angle": 0, "axis": "y", "origin": [0, 7, 7]},
|
"rotation": {"angle": 0, "axis": "y", "origin": [0, 7, 7]},
|
||||||
"faces": {
|
"faces": {
|
||||||
"north": {"uv": [5, 3, 7, 3.5], "rotation": 90, "texture": "#1"},
|
"north": {"uv": [1, 5.5, 3, 6], "rotation": 90, "texture": "#1"},
|
||||||
"east": {"uv": [0, 0, 0, 0], "texture": "#1"},
|
"east": {"uv": [0, 0, 0, 0], "texture": "#1"},
|
||||||
"south": {"uv": [5, 3, 7, 3.5], "rotation": 90, "texture": "#1"},
|
"south": {"uv": [1, 5.5, 3, 6], "rotation": 90, "texture": "#1"},
|
||||||
"west": {"uv": [14, 5, 16, 7], "texture": "#1"},
|
"west": {"uv": [1, 3, 3, 5], "texture": "#1"},
|
||||||
"up": {"uv": [5, 3, 7, 3.5], "rotation": 90, "texture": "#1"},
|
"up": {"uv": [1, 5.5, 3, 6], "rotation": 90, "texture": "#1"},
|
||||||
"down": {"uv": [0, 0, 0, 0], "texture": "#1"}
|
"down": {"uv": [0, 0, 0, 0], "texture": "#1"}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -1,10 +1,12 @@
|
|||||||
{
|
{
|
||||||
|
"format_version": "1.21.6",
|
||||||
"credit": "Made with Blockbench",
|
"credit": "Made with Blockbench",
|
||||||
"parent": "block/block",
|
"parent": "block/block",
|
||||||
"texture_size": [32, 32],
|
"texture_size": [32, 32],
|
||||||
"textures": {
|
"textures": {
|
||||||
"1": "tfmg:block/converter",
|
"1": "tfmg:block/converter",
|
||||||
"2": "tfmg:block/heavy_machinery_casing",
|
"2": "tfmg:block/heavy_machinery_casing",
|
||||||
|
"3": "tfmg:block/transformer",
|
||||||
"particle": "tfmg:block/heavy_machinery_casing"
|
"particle": "tfmg:block/heavy_machinery_casing"
|
||||||
},
|
},
|
||||||
"elements": [
|
"elements": [
|
||||||
@@ -16,7 +18,7 @@
|
|||||||
"east": {"uv": [0, 0, 8, 3], "texture": "#1"},
|
"east": {"uv": [0, 0, 8, 3], "texture": "#1"},
|
||||||
"south": {"uv": [0, 0, 8, 3], "texture": "#1"},
|
"south": {"uv": [0, 0, 8, 3], "texture": "#1"},
|
||||||
"west": {"uv": [0, 0, 8, 3], "texture": "#1"},
|
"west": {"uv": [0, 0, 8, 3], "texture": "#1"},
|
||||||
"up": {"uv": [0, 8, 8, 16], "texture": "#1"},
|
"up": {"uv": [0, 8, 8, 16], "texture": "#3"},
|
||||||
"down": {"uv": [0, 0, 16, 16], "texture": "#2"}
|
"down": {"uv": [0, 0, 16, 16], "texture": "#2"}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -38,12 +40,12 @@
|
|||||||
"to": [15, 14, 11],
|
"to": [15, 14, 11],
|
||||||
"rotation": {"angle": 0, "axis": "y", "origin": [11, 6, 7]},
|
"rotation": {"angle": 0, "axis": "y", "origin": [11, 6, 7]},
|
||||||
"faces": {
|
"faces": {
|
||||||
"north": {"uv": [13, 0.5, 16, 4.5], "texture": "#1"},
|
"north": {"uv": [13, 0.5, 16, 4.5], "texture": "#3"},
|
||||||
"east": {"uv": [13, 0.5, 16, 4.5], "texture": "#1"},
|
"east": {"uv": [13, 0.5, 16, 4.5], "texture": "#3"},
|
||||||
"south": {"uv": [13, 0.5, 16, 4.5], "texture": "#1"},
|
"south": {"uv": [13, 0.5, 16, 4.5], "texture": "#3"},
|
||||||
"west": {"uv": [13, 0.5, 16, 4.5], "texture": "#1"},
|
"west": {"uv": [13, 0.5, 16, 4.5], "texture": "#3"},
|
||||||
"up": {"uv": [0, 0, 0, 0], "texture": "#1"},
|
"up": {"uv": [0, 0, 0, 0], "texture": "#3"},
|
||||||
"down": {"uv": [0, 0, 0, 0], "texture": "#1"}
|
"down": {"uv": [0, 0, 0, 0], "texture": "#3"}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -51,12 +53,12 @@
|
|||||||
"to": [5, 18, 9],
|
"to": [5, 18, 9],
|
||||||
"rotation": {"angle": 0, "axis": "y", "origin": [3, 14, 7]},
|
"rotation": {"angle": 0, "axis": "y", "origin": [3, 14, 7]},
|
||||||
"faces": {
|
"faces": {
|
||||||
"north": {"uv": [5, 6, 6, 7.5], "texture": "#1"},
|
"north": {"uv": [5, 6, 6, 7.5], "texture": "#3"},
|
||||||
"east": {"uv": [5, 4, 6, 5.5], "texture": "#1"},
|
"east": {"uv": [5, 4, 6, 5.5], "texture": "#3"},
|
||||||
"south": {"uv": [6, 6, 5, 7.5], "texture": "#1"},
|
"south": {"uv": [6, 6, 5, 7.5], "texture": "#3"},
|
||||||
"west": {"uv": [5, 4, 6, 5.5], "texture": "#1"},
|
"west": {"uv": [5, 4, 6, 5.5], "texture": "#3"},
|
||||||
"up": {"uv": [6.5, 6, 7.5, 7], "texture": "#1"},
|
"up": {"uv": [6.5, 6, 7.5, 7], "texture": "#3"},
|
||||||
"down": {"uv": [0, 0, 0, 0], "texture": "#1"}
|
"down": {"uv": [0, 0, 0, 0], "texture": "#3"}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -64,12 +66,12 @@
|
|||||||
"to": [11, 18, 9],
|
"to": [11, 18, 9],
|
||||||
"rotation": {"angle": 0, "axis": "y", "origin": [5, 14, 7]},
|
"rotation": {"angle": 0, "axis": "y", "origin": [5, 14, 7]},
|
||||||
"faces": {
|
"faces": {
|
||||||
"north": {"uv": [2, 6, 5, 7], "texture": "#1"},
|
"north": {"uv": [2, 6, 5, 7], "texture": "#3"},
|
||||||
"east": {"uv": [0, 0, 0, 0], "texture": "#1"},
|
"east": {"uv": [0, 0, 0, 0], "texture": "#3"},
|
||||||
"south": {"uv": [5, 6, 2, 7], "texture": "#1"},
|
"south": {"uv": [5, 6, 2, 7], "texture": "#3"},
|
||||||
"west": {"uv": [0, 0, 0, 0], "texture": "#1"},
|
"west": {"uv": [0, 0, 0, 0], "texture": "#3"},
|
||||||
"up": {"uv": [7.5, 6, 10.5, 7], "texture": "#1"},
|
"up": {"uv": [7.5, 6, 10.5, 7], "texture": "#3"},
|
||||||
"down": {"uv": [0, 0, 6, 2], "texture": "#1"}
|
"down": {"uv": [0, 0, 6, 2], "texture": "#3"}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -77,12 +79,12 @@
|
|||||||
"to": [13, 18, 9],
|
"to": [13, 18, 9],
|
||||||
"rotation": {"angle": 0, "axis": "y", "origin": [11, 14, 7]},
|
"rotation": {"angle": 0, "axis": "y", "origin": [11, 14, 7]},
|
||||||
"faces": {
|
"faces": {
|
||||||
"north": {"uv": [1, 6, 2, 7.5], "texture": "#1"},
|
"north": {"uv": [1, 6, 2, 7.5], "texture": "#3"},
|
||||||
"east": {"uv": [1, 4, 2, 5.5], "texture": "#1"},
|
"east": {"uv": [1, 4, 2, 5.5], "texture": "#3"},
|
||||||
"south": {"uv": [2, 6, 1, 7.5], "texture": "#1"},
|
"south": {"uv": [2, 6, 1, 7.5], "texture": "#3"},
|
||||||
"west": {"uv": [5, 4, 6, 5.5], "texture": "#1"},
|
"west": {"uv": [5, 4, 6, 5.5], "texture": "#3"},
|
||||||
"up": {"uv": [10.5, 6, 11.5, 7], "texture": "#1"},
|
"up": {"uv": [10.5, 6, 11.5, 7], "texture": "#3"},
|
||||||
"down": {"uv": [0, 0, 0, 0], "texture": "#1"}
|
"down": {"uv": [0, 0, 0, 0], "texture": "#3"}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -90,12 +92,12 @@
|
|||||||
"to": [7.5, 15, 11.5],
|
"to": [7.5, 15, 11.5],
|
||||||
"rotation": {"angle": 0, "axis": "y", "origin": [0, 14, 4]},
|
"rotation": {"angle": 0, "axis": "y", "origin": [0, 14, 4]},
|
||||||
"faces": {
|
"faces": {
|
||||||
"north": {"uv": [10.5, 8, 14, 8.5], "texture": "#1"},
|
"north": {"uv": [10.5, 8, 14, 8.5], "texture": "#3"},
|
||||||
"east": {"uv": [10.5, 8, 14, 8.5], "texture": "#1"},
|
"east": {"uv": [10.5, 8, 14, 8.5], "texture": "#3"},
|
||||||
"south": {"uv": [10.5, 8, 14, 8.5], "texture": "#1"},
|
"south": {"uv": [10.5, 8, 14, 8.5], "texture": "#3"},
|
||||||
"west": {"uv": [10.5, 8, 14, 8.5], "texture": "#1"},
|
"west": {"uv": [10.5, 8, 14, 8.5], "texture": "#3"},
|
||||||
"up": {"uv": [10.5, 8, 14, 11.5], "texture": "#1"},
|
"up": {"uv": [10.5, 8, 14, 11.5], "texture": "#3"},
|
||||||
"down": {"uv": [10.5, 8, 14, 11.5], "texture": "#1"}
|
"down": {"uv": [10.5, 8, 14, 11.5], "texture": "#3"}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -103,12 +105,12 @@
|
|||||||
"to": [15.5, 15, 11.5],
|
"to": [15.5, 15, 11.5],
|
||||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 14, 4]},
|
"rotation": {"angle": 0, "axis": "y", "origin": [8, 14, 4]},
|
||||||
"faces": {
|
"faces": {
|
||||||
"north": {"uv": [10.5, 8, 14, 8.5], "texture": "#1"},
|
"north": {"uv": [10.5, 8, 14, 8.5], "texture": "#3"},
|
||||||
"east": {"uv": [10.5, 8, 14, 8.5], "texture": "#1"},
|
"east": {"uv": [10.5, 8, 14, 8.5], "texture": "#3"},
|
||||||
"south": {"uv": [10.5, 8, 14, 8.5], "texture": "#1"},
|
"south": {"uv": [10.5, 8, 14, 8.5], "texture": "#3"},
|
||||||
"west": {"uv": [10.5, 8, 14, 8.5], "texture": "#1"},
|
"west": {"uv": [10.5, 8, 14, 8.5], "texture": "#3"},
|
||||||
"up": {"uv": [10.5, 8, 14, 11.5], "texture": "#1"},
|
"up": {"uv": [10.5, 8, 14, 11.5], "texture": "#3"},
|
||||||
"down": {"uv": [10.5, 8, 14, 11.5], "texture": "#1"}
|
"down": {"uv": [10.5, 8, 14, 11.5], "texture": "#3"}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -116,11 +118,11 @@
|
|||||||
"to": [16, 10, 10],
|
"to": [16, 10, 10],
|
||||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 7, 8]},
|
"rotation": {"angle": 0, "axis": "y", "origin": [8, 7, 8]},
|
||||||
"faces": {
|
"faces": {
|
||||||
"north": {"uv": [5, 3, 7, 3.5], "rotation": 90, "texture": "#1"},
|
"north": {"uv": [1, 5.5, 3, 6], "rotation": 90, "texture": "#1"},
|
||||||
"east": {"uv": [3, 3, 5, 5], "texture": "#1"},
|
"east": {"uv": [3, 3, 5, 5], "texture": "#1"},
|
||||||
"south": {"uv": [5, 3, 7, 3.5], "rotation": 90, "texture": "#1"},
|
"south": {"uv": [1, 5.5, 3, 6], "rotation": 90, "texture": "#1"},
|
||||||
"west": {"uv": [0, 0, 0, 0], "texture": "#1"},
|
"west": {"uv": [0, 0, 0, 0], "texture": "#1"},
|
||||||
"up": {"uv": [5, 3, 7, 3.5], "rotation": 270, "texture": "#1"},
|
"up": {"uv": [1, 5.5, 3, 6], "rotation": 270, "texture": "#1"},
|
||||||
"down": {"uv": [0, 0, 0, 0], "rotation": 180, "texture": "#1"}
|
"down": {"uv": [0, 0, 0, 0], "rotation": 180, "texture": "#1"}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -132,7 +134,7 @@
|
|||||||
"north": {"uv": [3, 5.5, 5, 6], "rotation": 90, "texture": "#1"},
|
"north": {"uv": [3, 5.5, 5, 6], "rotation": 90, "texture": "#1"},
|
||||||
"east": {"uv": [0, 0, 0, 0], "texture": "#1"},
|
"east": {"uv": [0, 0, 0, 0], "texture": "#1"},
|
||||||
"south": {"uv": [3, 5.5, 5, 6], "rotation": 90, "texture": "#1"},
|
"south": {"uv": [3, 5.5, 5, 6], "rotation": 90, "texture": "#1"},
|
||||||
"west": {"uv": [14, 5, 16, 7], "texture": "#1"},
|
"west": {"uv": [1, 3, 3, 5], "texture": "#1"},
|
||||||
"up": {"uv": [3, 5.5, 5, 6], "rotation": 270, "texture": "#1"},
|
"up": {"uv": [3, 5.5, 5, 6], "rotation": 270, "texture": "#1"},
|
||||||
"down": {"uv": [0, 0, 0, 0], "rotation": 180, "texture": "#1"}
|
"down": {"uv": [0, 0, 0, 0], "rotation": 180, "texture": "#1"}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,10 +1,13 @@
|
|||||||
{
|
{
|
||||||
|
"format_version": "1.21.6",
|
||||||
"credit": "Made with Blockbench",
|
"credit": "Made with Blockbench",
|
||||||
"parent": "block/block",
|
"parent": "block/block",
|
||||||
"texture_size": [32, 32],
|
"texture_size": [32, 32],
|
||||||
"textures": {
|
"textures": {
|
||||||
"1": "tfmg:block/converter",
|
"1": "tfmg:block/converter",
|
||||||
"2": "tfmg:block/heavy_machinery_casing"
|
"2": "tfmg:block/heavy_machinery_casing",
|
||||||
|
"3": "tfmg:block/transformer",
|
||||||
|
"particle": "tfmg:block/transformer"
|
||||||
},
|
},
|
||||||
"elements": [
|
"elements": [
|
||||||
{
|
{
|
||||||
@@ -15,7 +18,7 @@
|
|||||||
"east": {"uv": [0, 0, 8, 3], "texture": "#1"},
|
"east": {"uv": [0, 0, 8, 3], "texture": "#1"},
|
||||||
"south": {"uv": [0, 0, 8, 3], "texture": "#1"},
|
"south": {"uv": [0, 0, 8, 3], "texture": "#1"},
|
||||||
"west": {"uv": [0, 0, 8, 3], "texture": "#1"},
|
"west": {"uv": [0, 0, 8, 3], "texture": "#1"},
|
||||||
"up": {"uv": [0, 8, 8, 16], "texture": "#1"},
|
"up": {"uv": [0, 8, 8, 16], "texture": "#3"},
|
||||||
"down": {"uv": [0, 0, 16, 16], "texture": "#2"}
|
"down": {"uv": [0, 0, 16, 16], "texture": "#2"}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -37,12 +40,12 @@
|
|||||||
"to": [15, 14, 11],
|
"to": [15, 14, 11],
|
||||||
"rotation": {"angle": 0, "axis": "y", "origin": [11, 6, 7]},
|
"rotation": {"angle": 0, "axis": "y", "origin": [11, 6, 7]},
|
||||||
"faces": {
|
"faces": {
|
||||||
"north": {"uv": [13, 0.5, 16, 4.5], "texture": "#1"},
|
"north": {"uv": [13, 0.5, 16, 4.5], "texture": "#3"},
|
||||||
"east": {"uv": [13, 0.5, 16, 4.5], "texture": "#1"},
|
"east": {"uv": [13, 0.5, 16, 4.5], "texture": "#3"},
|
||||||
"south": {"uv": [13, 0.5, 16, 4.5], "texture": "#1"},
|
"south": {"uv": [13, 0.5, 16, 4.5], "texture": "#3"},
|
||||||
"west": {"uv": [13, 0.5, 16, 4.5], "texture": "#1"},
|
"west": {"uv": [13, 0.5, 16, 4.5], "texture": "#3"},
|
||||||
"up": {"uv": [0, 0, 0, 0], "texture": "#1"},
|
"up": {"uv": [0, 0, 0, 0], "texture": "#3"},
|
||||||
"down": {"uv": [0, 0, 0, 0], "texture": "#1"}
|
"down": {"uv": [0, 0, 0, 0], "texture": "#3"}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -50,12 +53,12 @@
|
|||||||
"to": [5, 18, 9],
|
"to": [5, 18, 9],
|
||||||
"rotation": {"angle": 0, "axis": "y", "origin": [3, 14, 7]},
|
"rotation": {"angle": 0, "axis": "y", "origin": [3, 14, 7]},
|
||||||
"faces": {
|
"faces": {
|
||||||
"north": {"uv": [5, 6, 6, 7.5], "texture": "#1"},
|
"north": {"uv": [5, 6, 6, 7.5], "texture": "#3"},
|
||||||
"east": {"uv": [5, 4, 6, 5.5], "texture": "#1"},
|
"east": {"uv": [5, 4, 6, 5.5], "texture": "#3"},
|
||||||
"south": {"uv": [6, 6, 5, 7.5], "texture": "#1"},
|
"south": {"uv": [6, 6, 5, 7.5], "texture": "#3"},
|
||||||
"west": {"uv": [5, 4, 6, 5.5], "texture": "#1"},
|
"west": {"uv": [5, 4, 6, 5.5], "texture": "#3"},
|
||||||
"up": {"uv": [6.5, 6, 7.5, 7], "texture": "#1"},
|
"up": {"uv": [6.5, 6, 7.5, 7], "texture": "#3"},
|
||||||
"down": {"uv": [0, 0, 0, 0], "texture": "#1"}
|
"down": {"uv": [0, 0, 0, 0], "texture": "#3"}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -63,12 +66,12 @@
|
|||||||
"to": [11, 18, 9],
|
"to": [11, 18, 9],
|
||||||
"rotation": {"angle": 0, "axis": "y", "origin": [5, 14, 7]},
|
"rotation": {"angle": 0, "axis": "y", "origin": [5, 14, 7]},
|
||||||
"faces": {
|
"faces": {
|
||||||
"north": {"uv": [2, 6, 5, 7], "texture": "#1"},
|
"north": {"uv": [2, 6, 5, 7], "texture": "#3"},
|
||||||
"east": {"uv": [0, 0, 0, 0], "texture": "#1"},
|
"east": {"uv": [0, 0, 0, 0], "texture": "#3"},
|
||||||
"south": {"uv": [5, 6, 2, 7], "texture": "#1"},
|
"south": {"uv": [5, 6, 2, 7], "texture": "#3"},
|
||||||
"west": {"uv": [0, 0, 0, 0], "texture": "#1"},
|
"west": {"uv": [0, 0, 0, 0], "texture": "#3"},
|
||||||
"up": {"uv": [7.5, 6, 10.5, 7], "texture": "#1"},
|
"up": {"uv": [7.5, 6, 10.5, 7], "texture": "#3"},
|
||||||
"down": {"uv": [0, 0, 6, 2], "texture": "#1"}
|
"down": {"uv": [0, 0, 6, 2], "texture": "#3"}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -76,12 +79,12 @@
|
|||||||
"to": [13, 18, 9],
|
"to": [13, 18, 9],
|
||||||
"rotation": {"angle": 0, "axis": "y", "origin": [11, 14, 7]},
|
"rotation": {"angle": 0, "axis": "y", "origin": [11, 14, 7]},
|
||||||
"faces": {
|
"faces": {
|
||||||
"north": {"uv": [1, 6, 2, 7.5], "texture": "#1"},
|
"north": {"uv": [1, 6, 2, 7.5], "texture": "#3"},
|
||||||
"east": {"uv": [1, 4, 2, 5.5], "texture": "#1"},
|
"east": {"uv": [1, 4, 2, 5.5], "texture": "#3"},
|
||||||
"south": {"uv": [2, 6, 1, 7.5], "texture": "#1"},
|
"south": {"uv": [2, 6, 1, 7.5], "texture": "#3"},
|
||||||
"west": {"uv": [5, 4, 6, 5.5], "texture": "#1"},
|
"west": {"uv": [5, 4, 6, 5.5], "texture": "#3"},
|
||||||
"up": {"uv": [10.5, 6, 11.5, 7], "texture": "#1"},
|
"up": {"uv": [10.5, 6, 11.5, 7], "texture": "#3"},
|
||||||
"down": {"uv": [0, 0, 0, 0], "texture": "#1"}
|
"down": {"uv": [0, 0, 0, 0], "texture": "#3"}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -89,12 +92,12 @@
|
|||||||
"to": [7.5, 15, 11.5],
|
"to": [7.5, 15, 11.5],
|
||||||
"rotation": {"angle": 0, "axis": "y", "origin": [0, 14, 4]},
|
"rotation": {"angle": 0, "axis": "y", "origin": [0, 14, 4]},
|
||||||
"faces": {
|
"faces": {
|
||||||
"north": {"uv": [10.5, 8, 14, 8.5], "texture": "#1"},
|
"north": {"uv": [10.5, 8, 14, 8.5], "texture": "#3"},
|
||||||
"east": {"uv": [10.5, 8, 14, 8.5], "texture": "#1"},
|
"east": {"uv": [10.5, 8, 14, 8.5], "texture": "#3"},
|
||||||
"south": {"uv": [10.5, 8, 14, 8.5], "texture": "#1"},
|
"south": {"uv": [10.5, 8, 14, 8.5], "texture": "#3"},
|
||||||
"west": {"uv": [10.5, 8, 14, 8.5], "texture": "#1"},
|
"west": {"uv": [10.5, 8, 14, 8.5], "texture": "#3"},
|
||||||
"up": {"uv": [10.5, 8, 14, 11.5], "texture": "#1"},
|
"up": {"uv": [10.5, 8, 14, 11.5], "texture": "#3"},
|
||||||
"down": {"uv": [10.5, 8, 14, 11.5], "texture": "#1"}
|
"down": {"uv": [10.5, 8, 14, 11.5], "texture": "#3"}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -102,12 +105,12 @@
|
|||||||
"to": [15.5, 15, 11.5],
|
"to": [15.5, 15, 11.5],
|
||||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 14, 4]},
|
"rotation": {"angle": 0, "axis": "y", "origin": [8, 14, 4]},
|
||||||
"faces": {
|
"faces": {
|
||||||
"north": {"uv": [10.5, 8, 14, 8.5], "texture": "#1"},
|
"north": {"uv": [10.5, 8, 14, 8.5], "texture": "#3"},
|
||||||
"east": {"uv": [10.5, 8, 14, 8.5], "texture": "#1"},
|
"east": {"uv": [10.5, 8, 14, 8.5], "texture": "#3"},
|
||||||
"south": {"uv": [10.5, 8, 14, 8.5], "texture": "#1"},
|
"south": {"uv": [10.5, 8, 14, 8.5], "texture": "#3"},
|
||||||
"west": {"uv": [10.5, 8, 14, 8.5], "texture": "#1"},
|
"west": {"uv": [10.5, 8, 14, 8.5], "texture": "#3"},
|
||||||
"up": {"uv": [10.5, 8, 14, 11.5], "texture": "#1"},
|
"up": {"uv": [10.5, 8, 14, 11.5], "texture": "#3"},
|
||||||
"down": {"uv": [10.5, 8, 14, 11.5], "texture": "#1"}
|
"down": {"uv": [10.5, 8, 14, 11.5], "texture": "#3"}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -115,11 +118,11 @@
|
|||||||
"to": [1, 10, 10],
|
"to": [1, 10, 10],
|
||||||
"rotation": {"angle": 0, "axis": "y", "origin": [0, 7, 7]},
|
"rotation": {"angle": 0, "axis": "y", "origin": [0, 7, 7]},
|
||||||
"faces": {
|
"faces": {
|
||||||
"north": {"uv": [5, 3, 7, 3.5], "rotation": 90, "texture": "#1"},
|
"north": {"uv": [1, 5.5, 3, 6], "rotation": 90, "texture": "#1"},
|
||||||
"east": {"uv": [0, 0, 0, 0], "texture": "#1"},
|
"east": {"uv": [0, 0, 0, 0], "texture": "#1"},
|
||||||
"south": {"uv": [5, 3, 7, 3.5], "rotation": 90, "texture": "#1"},
|
"south": {"uv": [1, 5.5, 3, 6], "rotation": 90, "texture": "#1"},
|
||||||
"west": {"uv": [14, 5, 16, 7], "texture": "#1"},
|
"west": {"uv": [1, 3, 3, 5], "texture": "#1"},
|
||||||
"up": {"uv": [5, 3, 7, 3.5], "rotation": 90, "texture": "#1"},
|
"up": {"uv": [1, 5.5, 3, 6], "rotation": 90, "texture": "#1"},
|
||||||
"down": {"uv": [0, 0, 0, 0], "texture": "#1"}
|
"down": {"uv": [0, 0, 0, 0], "texture": "#1"}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
{
|
{
|
||||||
|
"format_version": "1.21.6",
|
||||||
"credit": "Made with Blockbench",
|
"credit": "Made with Blockbench",
|
||||||
"parent": "block/block",
|
"parent": "block/block",
|
||||||
"texture_size": [32, 32],
|
"texture_size": [32, 32],
|
||||||
@@ -113,7 +114,7 @@
|
|||||||
"to": [14, 12, 14],
|
"to": [14, 12, 14],
|
||||||
"rotation": {"angle": 0, "axis": "y", "origin": [5, 5, 4]},
|
"rotation": {"angle": 0, "axis": "y", "origin": [5, 5, 4]},
|
||||||
"faces": {
|
"faces": {
|
||||||
"north": {"uv": [0, 12, 6, 15.5], "texture": "#0"},
|
"north": {"uv": [6, 12, 0, 15.5], "texture": "#0"},
|
||||||
"east": {"uv": [11.5, 4.5, 16, 8], "texture": "#0"},
|
"east": {"uv": [11.5, 4.5, 16, 8], "texture": "#0"},
|
||||||
"south": {"uv": [0, 12, 6, 15.5], "texture": "#0"},
|
"south": {"uv": [0, 12, 6, 15.5], "texture": "#0"},
|
||||||
"west": {"uv": [11.5, 4.5, 16, 8], "texture": "#0"},
|
"west": {"uv": [11.5, 4.5, 16, 8], "texture": "#0"},
|
||||||
|
|||||||
161
src/main/resources/assets/tfmg/models/block/gas_lamp/block.json
Normal file
@@ -0,0 +1,161 @@
|
|||||||
|
{
|
||||||
|
"format_version": "1.21.6",
|
||||||
|
"credit": "Made with Blockbench",
|
||||||
|
"parent": "minecraft:block/block",
|
||||||
|
"textures": {
|
||||||
|
"0": "tfmg:block/gas_lamp",
|
||||||
|
"particle": "tfmg:block/cast_iron_block"
|
||||||
|
},
|
||||||
|
"elements": [
|
||||||
|
{
|
||||||
|
"name": "base",
|
||||||
|
"from": [3, 0, 3],
|
||||||
|
"to": [13, 5, 13],
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [8, 4.25, 10.5, 5.5], "texture": "#0"},
|
||||||
|
"east": {"uv": [8, 4.25, 10.5, 5.5], "texture": "#0"},
|
||||||
|
"south": {"uv": [8, 4.25, 10.5, 5.5], "texture": "#0"},
|
||||||
|
"west": {"uv": [8, 4.25, 10.5, 5.5], "texture": "#0"},
|
||||||
|
"up": {"uv": [0, 6.5, 2.5, 9], "texture": "#0"},
|
||||||
|
"down": {"uv": [0, 4, 2.5, 6.5], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "top_cap",
|
||||||
|
"from": [4, 20, 4],
|
||||||
|
"to": [12, 22, 12],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [0, 20, 0]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [1, 3, 3, 2.5], "texture": "#0"},
|
||||||
|
"east": {"uv": [1, 3, 3, 2.5], "texture": "#0"},
|
||||||
|
"south": {"uv": [1, 3, 3, 2.5], "texture": "#0"},
|
||||||
|
"west": {"uv": [1, 3, 3, 2.5], "texture": "#0"},
|
||||||
|
"up": {"uv": [1, 1, 3, 3], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "top",
|
||||||
|
"from": [0, 10, 0],
|
||||||
|
"to": [16, 21, 16],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [0, 10, 0]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [4, 0, 8, 2.75], "texture": "#0"},
|
||||||
|
"east": {"uv": [4, 0, 8, 2.75], "texture": "#0"},
|
||||||
|
"south": {"uv": [4, 0, 8, 2.75], "texture": "#0"},
|
||||||
|
"west": {"uv": [4, 0, 8, 2.75], "texture": "#0"},
|
||||||
|
"up": {"uv": [0, 0, 4, 4], "texture": "#0"},
|
||||||
|
"down": {"uv": [8, 0, 12, 4], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "top_anticube",
|
||||||
|
"from": [16, 20, 16],
|
||||||
|
"to": [0, 10, 0],
|
||||||
|
"rotation": {"angle": 0, "axis": "z", "origin": [16, 20, 0]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [4, 0, 8, 2.75], "rotation": 180, "texture": "#0"},
|
||||||
|
"east": {"uv": [4, 0, 8, 2.75], "rotation": 180, "texture": "#0"},
|
||||||
|
"south": {"uv": [4, 0, 8, 2.75], "rotation": 180, "texture": "#0"},
|
||||||
|
"west": {"uv": [4, 0, 8, 2.75], "rotation": 180, "texture": "#0"},
|
||||||
|
"down": {"uv": [0, 0, 4, 4], "rotation": 180, "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "bottom",
|
||||||
|
"from": [1, 2, 1],
|
||||||
|
"to": [15, 11, 15],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [1, 2, 1]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [4.25, 2.75, 7.75, 5], "texture": "#0"},
|
||||||
|
"east": {"uv": [4.25, 2.75, 7.75, 5], "texture": "#0"},
|
||||||
|
"south": {"uv": [4.25, 2.75, 7.75, 5], "texture": "#0"},
|
||||||
|
"west": {"uv": [4.25, 2.75, 7.75, 5], "texture": "#0"},
|
||||||
|
"down": {"uv": [4.25, 5, 7.75, 8.5], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "bottom_anticube",
|
||||||
|
"from": [15, 11, 15],
|
||||||
|
"to": [1, 2, 1],
|
||||||
|
"rotation": {"angle": 0, "axis": "x", "origin": [1, 11, 15]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [4.25, 2.75, 7.75, 5], "rotation": 180, "texture": "#0"},
|
||||||
|
"east": {"uv": [4.25, 2.75, 7.75, 5], "rotation": 180, "texture": "#0"},
|
||||||
|
"south": {"uv": [4.25, 2.75, 7.75, 5], "rotation": 180, "texture": "#0"},
|
||||||
|
"west": {"uv": [4.25, 2.75, 7.75, 5], "rotation": 180, "texture": "#0"},
|
||||||
|
"up": {"uv": [4.25, 5, 7.75, 8.5], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [7, 5, 8],
|
||||||
|
"to": [9, 10, 8],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [7, 5, 7]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [3.5, 4.25, 4, 5.5], "texture": "#0"},
|
||||||
|
"east": {"uv": [0, 0, 0, 5], "texture": "#0"},
|
||||||
|
"south": {"uv": [3.5, 4.25, 4, 5.5], "texture": "#0"},
|
||||||
|
"west": {"uv": [0, 0, 0, 5], "texture": "#0"},
|
||||||
|
"up": {"uv": [0, 0, 2, 0], "texture": "#0"},
|
||||||
|
"down": {"uv": [0, 0, 2, 0], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [8, 5, 7],
|
||||||
|
"to": [8, 10, 9],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [7, 5, 9]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [0, 0, 0, 5], "texture": "#0"},
|
||||||
|
"east": {"uv": [3.5, 4.25, 4, 5.5], "texture": "#0"},
|
||||||
|
"south": {"uv": [0, 0, 0, 5], "texture": "#0"},
|
||||||
|
"west": {"uv": [3.5, 4.25, 4, 5.5], "texture": "#0"},
|
||||||
|
"up": {"uv": [0, 0, 2, 0], "rotation": 270, "texture": "#0"},
|
||||||
|
"down": {"uv": [0, 0, 2, 0], "rotation": 90, "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [7, 8, 7],
|
||||||
|
"to": [9, 11, 9],
|
||||||
|
"rotation": {"angle": 45, "axis": "y", "origin": [8, 8, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [3.5, 6.5, 4, 7.25], "texture": "#0"},
|
||||||
|
"east": {"uv": [3.5, 6.5, 4, 7.25], "texture": "#0"},
|
||||||
|
"south": {"uv": [3.5, 6.5, 4, 7.25], "texture": "#0"},
|
||||||
|
"west": {"uv": [3.5, 6.5, 4, 7.25], "texture": "#0"},
|
||||||
|
"up": {"uv": [3.5, 5.75, 4, 6.25], "rotation": 90, "texture": "#0"},
|
||||||
|
"down": {"uv": [3.5, 4.25, 4, 4.75], "rotation": 270, "texture": "#0"}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"display": {
|
||||||
|
"thirdperson_righthand": {
|
||||||
|
"rotation": [0, 30, 0],
|
||||||
|
"translation": [0, 2, 0],
|
||||||
|
"scale": [0.4, 0.4, 0.4]
|
||||||
|
},
|
||||||
|
"thirdperson_lefthand": {
|
||||||
|
"rotation": [0, 30, 0],
|
||||||
|
"translation": [0, 2, 0],
|
||||||
|
"scale": [0.4, 0.4, 0.4]
|
||||||
|
},
|
||||||
|
"firstperson_righthand": {
|
||||||
|
"rotation": [0, 15, 15],
|
||||||
|
"scale": [0.4, 0.4, 0.4]
|
||||||
|
},
|
||||||
|
"firstperson_lefthand": {
|
||||||
|
"rotation": [0, 15, 15],
|
||||||
|
"scale": [0.4, 0.4, 0.4]
|
||||||
|
},
|
||||||
|
"ground": {
|
||||||
|
"translation": [0, 1, 0],
|
||||||
|
"scale": [0.5, 0.5, 0.5]
|
||||||
|
},
|
||||||
|
"gui": {
|
||||||
|
"rotation": [30, 30, 0],
|
||||||
|
"translation": [0, -2.5, 0],
|
||||||
|
"scale": [0.5, 0.5, 0.5]
|
||||||
|
},
|
||||||
|
"fixed": {
|
||||||
|
"scale": [0.5, 0.5, 0.5]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,188 @@
|
|||||||
|
{
|
||||||
|
"format_version": "1.21.6",
|
||||||
|
"credit": "Made with Blockbench",
|
||||||
|
"parent": "minecraft:block/block",
|
||||||
|
"textures": {
|
||||||
|
"0": "tfmg:block/gas_lamp",
|
||||||
|
"2": "tfmg:block/gas_lamp_fire",
|
||||||
|
"particle": "tfmg:block/cast_iron_block"
|
||||||
|
},
|
||||||
|
"elements": [
|
||||||
|
{
|
||||||
|
"name": "base",
|
||||||
|
"from": [3, 0, 3],
|
||||||
|
"to": [13, 5, 13],
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [8, 4.25, 10.5, 5.5], "texture": "#0"},
|
||||||
|
"east": {"uv": [8, 4.25, 10.5, 5.5], "texture": "#0"},
|
||||||
|
"south": {"uv": [8, 4.25, 10.5, 5.5], "texture": "#0"},
|
||||||
|
"west": {"uv": [8, 4.25, 10.5, 5.5], "texture": "#0"},
|
||||||
|
"up": {"uv": [0, 6.5, 2.5, 9], "texture": "#0"},
|
||||||
|
"down": {"uv": [0, 4, 2.5, 6.5], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "top_cap",
|
||||||
|
"from": [4, 20, 4],
|
||||||
|
"to": [12, 22, 12],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [0, 20, 0]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [1, 3, 3, 2.5], "texture": "#0"},
|
||||||
|
"east": {"uv": [1, 3, 3, 2.5], "texture": "#0"},
|
||||||
|
"south": {"uv": [1, 3, 3, 2.5], "texture": "#0"},
|
||||||
|
"west": {"uv": [1, 3, 3, 2.5], "texture": "#0"},
|
||||||
|
"up": {"uv": [1, 1, 3, 3], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "top",
|
||||||
|
"from": [0, 10, 0],
|
||||||
|
"to": [16, 21, 16],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [0, 10, 0]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [4, 0, 8, 2.75], "texture": "#0"},
|
||||||
|
"east": {"uv": [4, 0, 8, 2.75], "texture": "#0"},
|
||||||
|
"south": {"uv": [4, 0, 8, 2.75], "texture": "#0"},
|
||||||
|
"west": {"uv": [4, 0, 8, 2.75], "texture": "#0"},
|
||||||
|
"up": {"uv": [0, 0, 4, 4], "texture": "#0"},
|
||||||
|
"down": {"uv": [8, 0, 12, 4], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "top_anticube",
|
||||||
|
"from": [16, 20, 16],
|
||||||
|
"to": [0, 10, 0],
|
||||||
|
"rotation": {"angle": 0, "axis": "z", "origin": [16, 20, 0]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [4, 0, 8, 2.75], "rotation": 180, "texture": "#0"},
|
||||||
|
"east": {"uv": [4, 0, 8, 2.75], "rotation": 180, "texture": "#0"},
|
||||||
|
"south": {"uv": [4, 0, 8, 2.75], "rotation": 180, "texture": "#0"},
|
||||||
|
"west": {"uv": [4, 0, 8, 2.75], "rotation": 180, "texture": "#0"},
|
||||||
|
"down": {"uv": [0, 0, 4, 4], "rotation": 180, "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "bottom",
|
||||||
|
"from": [1, 2, 1],
|
||||||
|
"to": [15, 11, 15],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [1, 2, 1]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [4.25, 2.75, 7.75, 5], "texture": "#0"},
|
||||||
|
"east": {"uv": [4.25, 2.75, 7.75, 5], "texture": "#0"},
|
||||||
|
"south": {"uv": [4.25, 2.75, 7.75, 5], "texture": "#0"},
|
||||||
|
"west": {"uv": [4.25, 2.75, 7.75, 5], "texture": "#0"},
|
||||||
|
"down": {"uv": [4.25, 5, 7.75, 8.5], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "bottom_anticube",
|
||||||
|
"from": [15, 11, 15],
|
||||||
|
"to": [1, 2, 1],
|
||||||
|
"rotation": {"angle": 0, "axis": "x", "origin": [1, 11, 15]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [4.25, 2.75, 7.75, 5], "rotation": 180, "texture": "#0"},
|
||||||
|
"east": {"uv": [4.25, 2.75, 7.75, 5], "rotation": 180, "texture": "#0"},
|
||||||
|
"south": {"uv": [4.25, 2.75, 7.75, 5], "rotation": 180, "texture": "#0"},
|
||||||
|
"west": {"uv": [4.25, 2.75, 7.75, 5], "rotation": 180, "texture": "#0"},
|
||||||
|
"up": {"uv": [4.25, 5, 7.75, 8.5], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [7, 5, 8],
|
||||||
|
"to": [9, 10, 8],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [7, 5, 7]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [3.5, 4.25, 4, 5.5], "texture": "#0"},
|
||||||
|
"east": {"uv": [0, 0, 0, 5], "texture": "#0"},
|
||||||
|
"south": {"uv": [3.5, 4.25, 4, 5.5], "texture": "#0"},
|
||||||
|
"west": {"uv": [0, 0, 0, 5], "texture": "#0"},
|
||||||
|
"up": {"uv": [0, 0, 2, 0], "texture": "#0"},
|
||||||
|
"down": {"uv": [0, 0, 2, 0], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [8, 5, 7],
|
||||||
|
"to": [8, 10, 9],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [7, 5, 9]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [0, 0, 0, 5], "texture": "#0"},
|
||||||
|
"east": {"uv": [3.5, 4.25, 4, 5.5], "texture": "#0"},
|
||||||
|
"south": {"uv": [0, 0, 0, 5], "texture": "#0"},
|
||||||
|
"west": {"uv": [3.5, 4.25, 4, 5.5], "texture": "#0"},
|
||||||
|
"up": {"uv": [0, 0, 2, 0], "rotation": 270, "texture": "#0"},
|
||||||
|
"down": {"uv": [0, 0, 2, 0], "rotation": 90, "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [8, 11, 7],
|
||||||
|
"to": [8, 14, 9],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [7, 11, 9]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [0, 0, 0, 5], "texture": "#2"},
|
||||||
|
"east": {"uv": [6, 0, 8, 3], "texture": "#2"},
|
||||||
|
"south": {"uv": [0, 0, 0, 5], "texture": "#2"},
|
||||||
|
"west": {"uv": [6, 0, 8, 3], "texture": "#2"},
|
||||||
|
"up": {"uv": [0, 0, 2, 0], "rotation": 270, "texture": "#2"},
|
||||||
|
"down": {"uv": [0, 0, 2, 0], "rotation": 90, "texture": "#2"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [7, 11, 8],
|
||||||
|
"to": [9, 14, 8],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [9, 11, 9]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [6, 0, 8, 3], "texture": "#2"},
|
||||||
|
"east": {"uv": [0, 0, 0, 5], "texture": "#2"},
|
||||||
|
"south": {"uv": [6, 0, 8, 3], "texture": "#2"},
|
||||||
|
"west": {"uv": [0, 0, 0, 5], "texture": "#2"},
|
||||||
|
"up": {"uv": [0, 0, 2, 0], "rotation": 180, "texture": "#2"},
|
||||||
|
"down": {"uv": [0, 0, 2, 0], "rotation": 180, "texture": "#2"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [7, 8, 7],
|
||||||
|
"to": [9, 11, 9],
|
||||||
|
"rotation": {"angle": 45, "axis": "y", "origin": [8, 8, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [3.5, 6.5, 4, 7.25], "texture": "#0"},
|
||||||
|
"east": {"uv": [3.5, 6.5, 4, 7.25], "texture": "#0"},
|
||||||
|
"south": {"uv": [3.5, 6.5, 4, 7.25], "texture": "#0"},
|
||||||
|
"west": {"uv": [3.5, 6.5, 4, 7.25], "texture": "#0"},
|
||||||
|
"up": {"uv": [3.5, 5.75, 4, 6.25], "rotation": 90, "texture": "#0"},
|
||||||
|
"down": {"uv": [3.5, 4.25, 4, 4.75], "rotation": 270, "texture": "#0"}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"display": {
|
||||||
|
"thirdperson_righthand": {
|
||||||
|
"rotation": [0, 30, 0],
|
||||||
|
"translation": [0, 2, 0],
|
||||||
|
"scale": [0.4, 0.4, 0.4]
|
||||||
|
},
|
||||||
|
"thirdperson_lefthand": {
|
||||||
|
"rotation": [0, 30, 0],
|
||||||
|
"translation": [0, 2, 0],
|
||||||
|
"scale": [0.4, 0.4, 0.4]
|
||||||
|
},
|
||||||
|
"firstperson_righthand": {
|
||||||
|
"rotation": [0, 15, 15],
|
||||||
|
"scale": [0.4, 0.4, 0.4]
|
||||||
|
},
|
||||||
|
"firstperson_lefthand": {
|
||||||
|
"rotation": [0, 15, 15],
|
||||||
|
"scale": [0.4, 0.4, 0.4]
|
||||||
|
},
|
||||||
|
"ground": {
|
||||||
|
"translation": [0, 1, 0],
|
||||||
|
"scale": [0.5, 0.5, 0.5]
|
||||||
|
},
|
||||||
|
"gui": {
|
||||||
|
"rotation": [30, 30, 0],
|
||||||
|
"translation": [0, -2.5, 0],
|
||||||
|
"scale": [0.5, 0.5, 0.5]
|
||||||
|
},
|
||||||
|
"fixed": {
|
||||||
|
"scale": [0.5, 0.5, 0.5]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
161
src/main/resources/assets/tfmg/models/block/gas_lamp/item.json
Normal file
@@ -0,0 +1,161 @@
|
|||||||
|
{
|
||||||
|
"format_version": "1.21.6",
|
||||||
|
"credit": "Made with Blockbench",
|
||||||
|
"parent": "minecraft:block/block",
|
||||||
|
"textures": {
|
||||||
|
"0": "tfmg:block/gas_lamp",
|
||||||
|
"particle": "tfmg:block/cast_iron_block"
|
||||||
|
},
|
||||||
|
"elements": [
|
||||||
|
{
|
||||||
|
"name": "base",
|
||||||
|
"from": [3, 0, 3],
|
||||||
|
"to": [13, 5, 13],
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [8, 4.25, 10.5, 5.5], "texture": "#0"},
|
||||||
|
"east": {"uv": [8, 4.25, 10.5, 5.5], "texture": "#0"},
|
||||||
|
"south": {"uv": [8, 4.25, 10.5, 5.5], "texture": "#0"},
|
||||||
|
"west": {"uv": [8, 4.25, 10.5, 5.5], "texture": "#0"},
|
||||||
|
"up": {"uv": [0, 6.5, 2.5, 9], "texture": "#0"},
|
||||||
|
"down": {"uv": [0, 4, 2.5, 6.5], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "top_cap",
|
||||||
|
"from": [4, 20, 4],
|
||||||
|
"to": [12, 22, 12],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [0, 20, 0]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [1, 3, 3, 2.5], "texture": "#0"},
|
||||||
|
"east": {"uv": [1, 3, 3, 2.5], "texture": "#0"},
|
||||||
|
"south": {"uv": [1, 3, 3, 2.5], "texture": "#0"},
|
||||||
|
"west": {"uv": [1, 3, 3, 2.5], "texture": "#0"},
|
||||||
|
"up": {"uv": [1, 1, 3, 3], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "top",
|
||||||
|
"from": [0, 10, 0],
|
||||||
|
"to": [16, 21, 16],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [0, 10, 0]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [4, 0, 8, 2.75], "texture": "#0"},
|
||||||
|
"east": {"uv": [4, 0, 8, 2.75], "texture": "#0"},
|
||||||
|
"south": {"uv": [4, 0, 8, 2.75], "texture": "#0"},
|
||||||
|
"west": {"uv": [4, 0, 8, 2.75], "texture": "#0"},
|
||||||
|
"up": {"uv": [0, 0, 4, 4], "texture": "#0"},
|
||||||
|
"down": {"uv": [8, 0, 12, 4], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "top_anticube",
|
||||||
|
"from": [16, 20, 16],
|
||||||
|
"to": [0, 10, 0],
|
||||||
|
"rotation": {"angle": 0, "axis": "z", "origin": [16, 20, 0]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [4, 0, 8, 2.75], "rotation": 180, "texture": "#0"},
|
||||||
|
"east": {"uv": [4, 0, 8, 2.75], "rotation": 180, "texture": "#0"},
|
||||||
|
"south": {"uv": [4, 0, 8, 2.75], "rotation": 180, "texture": "#0"},
|
||||||
|
"west": {"uv": [4, 0, 8, 2.75], "rotation": 180, "texture": "#0"},
|
||||||
|
"down": {"uv": [0, 0, 4, 4], "rotation": 180, "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "bottom",
|
||||||
|
"from": [1, 2, 1],
|
||||||
|
"to": [15, 11, 15],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [1, 2, 1]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [4.25, 2.75, 7.75, 5], "texture": "#0"},
|
||||||
|
"east": {"uv": [4.25, 2.75, 7.75, 5], "texture": "#0"},
|
||||||
|
"south": {"uv": [4.25, 2.75, 7.75, 5], "texture": "#0"},
|
||||||
|
"west": {"uv": [4.25, 2.75, 7.75, 5], "texture": "#0"},
|
||||||
|
"down": {"uv": [4.25, 5, 7.75, 8.5], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "bottom_anticube",
|
||||||
|
"from": [15, 11, 15],
|
||||||
|
"to": [1, 2, 1],
|
||||||
|
"rotation": {"angle": 0, "axis": "x", "origin": [1, 11, 15]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [4.25, 2.75, 7.75, 5], "rotation": 180, "texture": "#0"},
|
||||||
|
"east": {"uv": [4.25, 2.75, 7.75, 5], "rotation": 180, "texture": "#0"},
|
||||||
|
"south": {"uv": [4.25, 2.75, 7.75, 5], "rotation": 180, "texture": "#0"},
|
||||||
|
"west": {"uv": [4.25, 2.75, 7.75, 5], "rotation": 180, "texture": "#0"},
|
||||||
|
"up": {"uv": [4.225, 5, 7.725, 8.5], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [7, 5, 8],
|
||||||
|
"to": [9, 10, 8],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [7, 5, 7]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [3.5, 4.25, 4, 5.5], "texture": "#0"},
|
||||||
|
"east": {"uv": [0, 0, 0, 5], "texture": "#0"},
|
||||||
|
"south": {"uv": [3.5, 4.25, 4, 5.5], "texture": "#0"},
|
||||||
|
"west": {"uv": [0, 0, 0, 5], "texture": "#0"},
|
||||||
|
"up": {"uv": [0, 0, 2, 0], "texture": "#0"},
|
||||||
|
"down": {"uv": [0, 0, 2, 0], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [8, 5, 7],
|
||||||
|
"to": [8, 10, 9],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [7, 5, 9]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [0, 0, 0, 5], "texture": "#0"},
|
||||||
|
"east": {"uv": [3.5, 4.25, 4, 5.5], "texture": "#0"},
|
||||||
|
"south": {"uv": [0, 0, 0, 5], "texture": "#0"},
|
||||||
|
"west": {"uv": [3.5, 4.25, 4, 5.5], "texture": "#0"},
|
||||||
|
"up": {"uv": [0, 0, 2, 0], "rotation": 270, "texture": "#0"},
|
||||||
|
"down": {"uv": [0, 0, 2, 0], "rotation": 90, "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [7, 8, 7],
|
||||||
|
"to": [9, 11, 9],
|
||||||
|
"rotation": {"angle": 45, "axis": "y", "origin": [8, 8, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [3.5, 6.5, 4, 7.25], "texture": "#0"},
|
||||||
|
"east": {"uv": [3.5, 6.5, 4, 7.25], "texture": "#0"},
|
||||||
|
"south": {"uv": [3.5, 6.5, 4, 7.25], "texture": "#0"},
|
||||||
|
"west": {"uv": [3.5, 6.5, 4, 7.25], "texture": "#0"},
|
||||||
|
"up": {"uv": [3.5, 5.75, 4, 6.25], "rotation": 90, "texture": "#0"},
|
||||||
|
"down": {"uv": [3.5, 4.25, 4, 4.75], "rotation": 270, "texture": "#0"}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"display": {
|
||||||
|
"thirdperson_righthand": {
|
||||||
|
"rotation": [0, 30, 0],
|
||||||
|
"translation": [0, 2, 0],
|
||||||
|
"scale": [0.4, 0.4, 0.4]
|
||||||
|
},
|
||||||
|
"thirdperson_lefthand": {
|
||||||
|
"rotation": [0, 30, 0],
|
||||||
|
"translation": [0, 2, 0],
|
||||||
|
"scale": [0.4, 0.4, 0.4]
|
||||||
|
},
|
||||||
|
"firstperson_righthand": {
|
||||||
|
"rotation": [0, 15, 15],
|
||||||
|
"scale": [0.4, 0.4, 0.4]
|
||||||
|
},
|
||||||
|
"firstperson_lefthand": {
|
||||||
|
"rotation": [0, 15, 15],
|
||||||
|
"scale": [0.4, 0.4, 0.4]
|
||||||
|
},
|
||||||
|
"ground": {
|
||||||
|
"translation": [0, 1, 0],
|
||||||
|
"scale": [0.5, 0.5, 0.5]
|
||||||
|
},
|
||||||
|
"gui": {
|
||||||
|
"rotation": [30, 30, 0],
|
||||||
|
"translation": [0, -2.5, 0],
|
||||||
|
"scale": [0.5, 0.5, 0.5]
|
||||||
|
},
|
||||||
|
"fixed": {
|
||||||
|
"scale": [0.5, 0.5, 0.5]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
297
src/main/resources/assets/tfmg/models/block/gas_lamp/test.json
Normal file
@@ -0,0 +1,297 @@
|
|||||||
|
{
|
||||||
|
"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"}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -16,10 +16,10 @@
|
|||||||
"to": [18, 9.375, 18],
|
"to": [18, 9.375, 18],
|
||||||
"rotation": {"angle": 45, "axis": "y", "origin": [8, 8, 8]},
|
"rotation": {"angle": 45, "axis": "y", "origin": [8, 8, 8]},
|
||||||
"faces": {
|
"faces": {
|
||||||
"north": {"uv": [0, 10, 10, 11.5], "texture": "#0"},
|
"north": {"uv": [0, 11, 10, 12.5], "texture": "#0"},
|
||||||
"east": {"uv": [0, 10, 10, 11.5], "texture": "#0"},
|
"east": {"uv": [0, 11, 10, 12.5], "texture": "#0"},
|
||||||
"south": {"uv": [0, 10, 10, 11.5], "texture": "#0"},
|
"south": {"uv": [0, 11, 10, 12.5], "texture": "#0"},
|
||||||
"west": {"uv": [0, 10, 10, 11.5], "texture": "#0"},
|
"west": {"uv": [0, 11, 10, 12.5], "texture": "#0"},
|
||||||
"up": {"uv": [0, 0.5, 10, 10.5], "texture": "#0"},
|
"up": {"uv": [0, 0.5, 10, 10.5], "texture": "#0"},
|
||||||
"down": {"uv": [0, 0.5, 10, 10.5], "texture": "#0"}
|
"down": {"uv": [0, 0.5, 10, 10.5], "texture": "#0"}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
{
|
{
|
||||||
|
"format_version": "1.21.6",
|
||||||
"credit": "Made with Blockbench",
|
"credit": "Made with Blockbench",
|
||||||
"parent": "create:block/large_wheels",
|
"parent": "create:block/large_wheels",
|
||||||
"texture_size": [32, 32],
|
"texture_size": [32, 32],
|
||||||
@@ -13,12 +14,12 @@
|
|||||||
"to": [18, 9.375, 18],
|
"to": [18, 9.375, 18],
|
||||||
"rotation": {"angle": 45, "axis": "y", "origin": [8, 8, 8]},
|
"rotation": {"angle": 45, "axis": "y", "origin": [8, 8, 8]},
|
||||||
"faces": {
|
"faces": {
|
||||||
"north": {"uv": [0, 10, 10, 11.5], "texture": "#0"},
|
"north": {"uv": [0, 11, 10, 12.5], "texture": "#0"},
|
||||||
"east": {"uv": [0, 10, 10, 11.5], "texture": "#0"},
|
"east": {"uv": [0, 11, 10, 12.5], "texture": "#0"},
|
||||||
"south": {"uv": [0, 10, 10, 11.5], "texture": "#0"},
|
"south": {"uv": [0, 11, 10, 12.5], "texture": "#0"},
|
||||||
"west": {"uv": [0, 10, 10, 11.5], "texture": "#0"},
|
"west": {"uv": [0, 11, 10, 12.5], "texture": "#0"},
|
||||||
"up": {"uv": [0, 0, 10, 10], "texture": "#0"},
|
"up": {"uv": [0, 0.5, 10, 10.5], "texture": "#0"},
|
||||||
"down": {"uv": [0, 0, 10, 10], "texture": "#0"}
|
"down": {"uv": [0, 0.5, 10, 10.5], "texture": "#0"}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -31,8 +32,8 @@
|
|||||||
"east": {"uv": [10, 9.5, 11.5, 11], "texture": "#0"},
|
"east": {"uv": [10, 9.5, 11.5, 11], "texture": "#0"},
|
||||||
"south": {"uv": [0, 13, 15, 14.5], "texture": "#0"},
|
"south": {"uv": [0, 13, 15, 14.5], "texture": "#0"},
|
||||||
"west": {"uv": [10, 9.5, 11.5, 11], "texture": "#0"},
|
"west": {"uv": [10, 9.5, 11.5, 11], "texture": "#0"},
|
||||||
"up": {"uv": [0, 11.5, 15, 13], "texture": "#0"},
|
"up": {"uv": [0, 13, 15, 14.5], "texture": "#0"},
|
||||||
"down": {"uv": [0, 11.5, 15, 13], "texture": "#0"}
|
"down": {"uv": [0, 13, 15, 14.5], "texture": "#0"}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -45,8 +46,8 @@
|
|||||||
"east": {"uv": [10, 9.5, 11.5, 11], "texture": "#0"},
|
"east": {"uv": [10, 9.5, 11.5, 11], "texture": "#0"},
|
||||||
"south": {"uv": [0, 13, 15, 14.5], "texture": "#0"},
|
"south": {"uv": [0, 13, 15, 14.5], "texture": "#0"},
|
||||||
"west": {"uv": [10, 9.5, 11.5, 11], "texture": "#0"},
|
"west": {"uv": [10, 9.5, 11.5, 11], "texture": "#0"},
|
||||||
"up": {"uv": [0, 11.5, 15, 13], "texture": "#0"},
|
"up": {"uv": [0, 13, 15, 14.5], "texture": "#0"},
|
||||||
"down": {"uv": [0, 11.5, 15, 13], "texture": "#0"}
|
"down": {"uv": [0, 13, 15, 14.5], "texture": "#0"}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -59,8 +60,8 @@
|
|||||||
"east": {"uv": [0, 13, 15, 14.5], "texture": "#0"},
|
"east": {"uv": [0, 13, 15, 14.5], "texture": "#0"},
|
||||||
"south": {"uv": [10, 9.5, 11.5, 11], "texture": "#0"},
|
"south": {"uv": [10, 9.5, 11.5, 11], "texture": "#0"},
|
||||||
"west": {"uv": [0, 13, 15, 14.5], "texture": "#0"},
|
"west": {"uv": [0, 13, 15, 14.5], "texture": "#0"},
|
||||||
"up": {"uv": [0, 11.5, 15, 13], "rotation": 90, "texture": "#0"},
|
"up": {"uv": [0, 13, 15, 14.5], "rotation": 90, "texture": "#0"},
|
||||||
"down": {"uv": [0, 11.5, 15, 13], "rotation": 90, "texture": "#0"}
|
"down": {"uv": [0, 13, 15, 14.5], "rotation": 90, "texture": "#0"}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -68,12 +69,12 @@
|
|||||||
"from": [-2, 6.6, -2],
|
"from": [-2, 6.6, -2],
|
||||||
"to": [18, 9.4, 18],
|
"to": [18, 9.4, 18],
|
||||||
"faces": {
|
"faces": {
|
||||||
"north": {"uv": [0, 10, 10, 11.5], "texture": "#0"},
|
"north": {"uv": [0, 11, 10, 12.5], "texture": "#0"},
|
||||||
"east": {"uv": [0, 10, 10, 11.5], "texture": "#0"},
|
"east": {"uv": [0, 11, 10, 12.5], "texture": "#0"},
|
||||||
"south": {"uv": [0, 10, 10, 11.5], "texture": "#0"},
|
"south": {"uv": [0, 11, 10, 12.5], "texture": "#0"},
|
||||||
"west": {"uv": [0, 10, 10, 11.5], "texture": "#0"},
|
"west": {"uv": [0, 11, 10, 12.5], "texture": "#0"},
|
||||||
"up": {"uv": [0, 0, 10, 10], "texture": "#0"},
|
"up": {"uv": [0, 0.5, 10, 10.5], "texture": "#0"},
|
||||||
"down": {"uv": [0, 0, 10, 10], "texture": "#0"}
|
"down": {"uv": [0, 0.5, 10, 10.5], "texture": "#0"}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -81,12 +82,12 @@
|
|||||||
"from": [0, 4.975, 0],
|
"from": [0, 4.975, 0],
|
||||||
"to": [16, 11.025, 16],
|
"to": [16, 11.025, 16],
|
||||||
"faces": {
|
"faces": {
|
||||||
"north": {"uv": [10, 0, 12.5, 8], "rotation": 90, "texture": "#0"},
|
"north": {"uv": [10.5, 0.5, 13.525, 8.5], "rotation": 90, "texture": "#0"},
|
||||||
"east": {"uv": [10, 0, 12.5, 8], "rotation": 90, "texture": "#0"},
|
"east": {"uv": [10.5, 0.5, 13.525, 8.5], "rotation": 90, "texture": "#0"},
|
||||||
"south": {"uv": [10, 0, 12.5, 8], "rotation": 90, "texture": "#0"},
|
"south": {"uv": [10.5, 0.5, 13.525, 8.5], "rotation": 90, "texture": "#0"},
|
||||||
"west": {"uv": [10, 0, 12.5, 8], "rotation": 90, "texture": "#0"},
|
"west": {"uv": [10.5, 0.5, 13.525, 8.5], "rotation": 90, "texture": "#0"},
|
||||||
"up": {"uv": [1, 1, 9, 9], "texture": "#0"},
|
"up": {"uv": [1, 1.5, 9, 9.5], "texture": "#0"},
|
||||||
"down": {"uv": [1, 1, 9, 9], "texture": "#0"}
|
"down": {"uv": [1, 1.5, 9, 9.5], "texture": "#0"}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -99,8 +100,8 @@
|
|||||||
"east": {"uv": [0, 13, 15, 14.5], "texture": "#0"},
|
"east": {"uv": [0, 13, 15, 14.5], "texture": "#0"},
|
||||||
"south": {"uv": [10, 9.5, 11.5, 11], "texture": "#0"},
|
"south": {"uv": [10, 9.5, 11.5, 11], "texture": "#0"},
|
||||||
"west": {"uv": [0, 13, 15, 14.5], "texture": "#0"},
|
"west": {"uv": [0, 13, 15, 14.5], "texture": "#0"},
|
||||||
"up": {"uv": [0, 11.5, 15, 13], "rotation": 90, "texture": "#0"},
|
"up": {"uv": [0, 13, 15, 14.5], "rotation": 90, "texture": "#0"},
|
||||||
"down": {"uv": [0, 11.5, 15, 13], "rotation": 90, "texture": "#0"}
|
"down": {"uv": [0, 13, 15, 14.5], "rotation": 90, "texture": "#0"}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -113,8 +114,8 @@
|
|||||||
"east": {"uv": [10, 9.5, 11.5, 11], "texture": "#0"},
|
"east": {"uv": [10, 9.5, 11.5, 11], "texture": "#0"},
|
||||||
"south": {"uv": [0, 13, 15, 14.5], "texture": "#0"},
|
"south": {"uv": [0, 13, 15, 14.5], "texture": "#0"},
|
||||||
"west": {"uv": [10, 9.5, 11.5, 11], "texture": "#0"},
|
"west": {"uv": [10, 9.5, 11.5, 11], "texture": "#0"},
|
||||||
"up": {"uv": [0, 11.5, 15, 13], "texture": "#0"},
|
"up": {"uv": [0, 13, 15, 14.5], "texture": "#0"},
|
||||||
"down": {"uv": [0, 11.5, 15, 13], "texture": "#0"}
|
"down": {"uv": [0, 13, 15, 14.5], "texture": "#0"}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -127,8 +128,8 @@
|
|||||||
"east": {"uv": [0, 13, 15, 14.5], "texture": "#0"},
|
"east": {"uv": [0, 13, 15, 14.5], "texture": "#0"},
|
||||||
"south": {"uv": [10, 9.5, 11.5, 11], "texture": "#0"},
|
"south": {"uv": [10, 9.5, 11.5, 11], "texture": "#0"},
|
||||||
"west": {"uv": [0, 13, 15, 14.5], "texture": "#0"},
|
"west": {"uv": [0, 13, 15, 14.5], "texture": "#0"},
|
||||||
"up": {"uv": [0, 11.5, 15, 13], "rotation": 90, "texture": "#0"},
|
"up": {"uv": [0, 13, 15, 14.5], "rotation": 90, "texture": "#0"},
|
||||||
"down": {"uv": [0, 11.5, 15, 13], "rotation": 90, "texture": "#0"}
|
"down": {"uv": [0, 13, 15, 14.5], "rotation": 90, "texture": "#0"}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -140,8 +141,8 @@
|
|||||||
"east": {"uv": [10, 9.5, 11.5, 11], "texture": "#0"},
|
"east": {"uv": [10, 9.5, 11.5, 11], "texture": "#0"},
|
||||||
"south": {"uv": [0, 13, 15, 14.5], "texture": "#0"},
|
"south": {"uv": [0, 13, 15, 14.5], "texture": "#0"},
|
||||||
"west": {"uv": [10, 9.5, 11.5, 11], "texture": "#0"},
|
"west": {"uv": [10, 9.5, 11.5, 11], "texture": "#0"},
|
||||||
"up": {"uv": [0, 11.5, 15, 13], "texture": "#0"},
|
"up": {"uv": [0, 13, 15, 14.5], "texture": "#0"},
|
||||||
"down": {"uv": [0, 11.5, 15, 13], "texture": "#0"}
|
"down": {"uv": [0, 13, 15, 14.5], "texture": "#0"}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -153,8 +154,8 @@
|
|||||||
"east": {"uv": [0, 13, 15, 14.5], "texture": "#0"},
|
"east": {"uv": [0, 13, 15, 14.5], "texture": "#0"},
|
||||||
"south": {"uv": [10, 9.5, 11.5, 11], "texture": "#0"},
|
"south": {"uv": [10, 9.5, 11.5, 11], "texture": "#0"},
|
||||||
"west": {"uv": [0, 13, 15, 14.5], "texture": "#0"},
|
"west": {"uv": [0, 13, 15, 14.5], "texture": "#0"},
|
||||||
"up": {"uv": [0, 11.5, 15, 13], "rotation": 90, "texture": "#0"},
|
"up": {"uv": [0, 13, 15, 14.5], "rotation": 90, "texture": "#0"},
|
||||||
"down": {"uv": [0, 11.5, 15, 13], "rotation": 90, "texture": "#0"}
|
"down": {"uv": [0, 13, 15, 14.5], "rotation": 90, "texture": "#0"}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -0,0 +1,374 @@
|
|||||||
|
{
|
||||||
|
"format_version": "1.21.6",
|
||||||
|
"credit": "Made with Blockbench",
|
||||||
|
"texture_size": [64, 64],
|
||||||
|
"textures": {
|
||||||
|
"0": "tfmg:block/large_transformer",
|
||||||
|
"particle": "tfmg:block/large_transformer"
|
||||||
|
},
|
||||||
|
"elements": [
|
||||||
|
{
|
||||||
|
"from": [-4, 15, -1],
|
||||||
|
"to": [8, 17, 17],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [9, 15, 7]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [9.5, 3.5, 6.5, 4], "texture": "#0"},
|
||||||
|
"east": {"uv": [6.25, 4.25, 10.75, 4.75], "texture": "#0"},
|
||||||
|
"south": {"uv": [6.5, 3.5, 9.5, 4], "texture": "#0"},
|
||||||
|
"west": {"uv": [6.25, 4.25, 10.75, 4.75], "texture": "#0"},
|
||||||
|
"up": {"uv": [0, 4.5, 3, 9], "texture": "#0"},
|
||||||
|
"down": {"uv": [0, 4.5, 3, 9], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [8, 2, -1],
|
||||||
|
"to": [20, 4, 17],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [9, 2, 7]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [6.5, 4, 9.5, 3.5], "texture": "#0"},
|
||||||
|
"east": {"uv": [6.25, 4.75, 10.75, 4.25], "texture": "#0"},
|
||||||
|
"south": {"uv": [9.5, 4, 6.5, 3.5], "texture": "#0"},
|
||||||
|
"west": {"uv": [6.25, 4.25, 10.75, 4.75], "texture": "#0"},
|
||||||
|
"up": {"uv": [3, 4.5, 0, 9], "texture": "#0"},
|
||||||
|
"down": {"uv": [3, 4.5, 0, 9], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [-4, 2, -1],
|
||||||
|
"to": [8, 4, 17],
|
||||||
|
"rotation": {"angle": 0, "axis": "x", "origin": [9, 3, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [6.5, 3.5, 9.5, 4], "rotation": 180, "texture": "#0"},
|
||||||
|
"east": {"uv": [6.25, 4.25, 10.75, 4.75], "rotation": 180, "texture": "#0"},
|
||||||
|
"south": {"uv": [9.5, 3.5, 6.5, 4], "rotation": 180, "texture": "#0"},
|
||||||
|
"west": {"uv": [6.25, 4.25, 10.75, 4.75], "rotation": 180, "texture": "#0"},
|
||||||
|
"up": {"uv": [3, 4.5, 0, 9], "rotation": 180, "texture": "#0"},
|
||||||
|
"down": {"uv": [3, 4.5, 0, 9], "rotation": 180, "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [8, 15, -1],
|
||||||
|
"to": [20, 17, 17],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [7, 15, 0]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [6.5, 3.5, 9.5, 4], "texture": "#0"},
|
||||||
|
"east": {"uv": [6.25, 4.25, 10.75, 4.75], "texture": "#0"},
|
||||||
|
"south": {"uv": [9.5, 3.5, 6.5, 4], "texture": "#0"},
|
||||||
|
"west": {"uv": [6.25, 4.25, 10.75, 4.75], "texture": "#0"},
|
||||||
|
"up": {"uv": [3, 4.5, 0, 9], "texture": "#0"},
|
||||||
|
"down": {"uv": [3, 4.5, 0, 9], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [-3, 17, 2],
|
||||||
|
"to": [8, 19, 14],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [-5, 17, 0]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [6, 4.25, 3.25, 4.75], "texture": "#0"},
|
||||||
|
"south": {"uv": [3.25, 4.25, 6, 4.75], "texture": "#0"},
|
||||||
|
"west": {"uv": [3.25, 3.5, 6.25, 4], "texture": "#0"},
|
||||||
|
"up": {"uv": [3.25, 5, 6, 8], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [8, 0, 2],
|
||||||
|
"to": [19, 2, 14],
|
||||||
|
"rotation": {"angle": 0, "axis": "x", "origin": [-5, 1, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [6, 4.25, 3.25, 4.75], "rotation": 180, "texture": "#0"},
|
||||||
|
"east": {"uv": [3.25, 3.5, 6.25, 4], "rotation": 180, "texture": "#0"},
|
||||||
|
"south": {"uv": [3.25, 4.25, 6, 4.75], "rotation": 180, "texture": "#0"},
|
||||||
|
"down": {"uv": [3.25, 8.25, 6, 11.25], "rotation": 180, "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [-3, 0, 2],
|
||||||
|
"to": [8, 2, 14],
|
||||||
|
"rotation": {"angle": 0, "axis": "x", "origin": [-5, 1, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [3.25, 4.25, 6, 4.75], "rotation": 180, "texture": "#0"},
|
||||||
|
"south": {"uv": [6, 4.25, 3.25, 4.75], "rotation": 180, "texture": "#0"},
|
||||||
|
"west": {"uv": [3.25, 3.5, 6.25, 4], "rotation": 180, "texture": "#0"},
|
||||||
|
"down": {"uv": [3.25, 8.25, 6, 11.25], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [8, 17, 2],
|
||||||
|
"to": [19, 19, 14],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [13, 17, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [3.25, 4.25, 6, 4.75], "texture": "#0"},
|
||||||
|
"east": {"uv": [3.25, 3.5, 6.25, 4], "texture": "#0"},
|
||||||
|
"south": {"uv": [6, 4.25, 3.25, 4.75], "texture": "#0"},
|
||||||
|
"up": {"uv": [3.25, 5, 6, 8], "rotation": 180, "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [-4, 4, -1],
|
||||||
|
"to": [-2, 15, 17],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [-3, 4, 0]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [9.75, 3.5, 12.5, 4], "rotation": 90, "texture": "#0"},
|
||||||
|
"east": {"uv": [10.75, 7.75, 6.25, 5], "texture": "#0"},
|
||||||
|
"south": {"uv": [9.75, 4, 12.5, 3.5], "rotation": 90, "texture": "#0"},
|
||||||
|
"west": {"uv": [6.25, 5, 10.75, 7.75], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [18, 4, -1],
|
||||||
|
"to": [20, 15, 17],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [19, 4, 0]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [12.5, 4, 9.75, 3.5], "rotation": 90, "texture": "#0"},
|
||||||
|
"east": {"uv": [6.25, 5, 10.75, 7.75], "texture": "#0"},
|
||||||
|
"south": {"uv": [9.75, 3.5, 12.5, 4], "rotation": 90, "texture": "#0"},
|
||||||
|
"west": {"uv": [6.25, 5, 10.75, 7.75], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [0, 4, -1],
|
||||||
|
"to": [0, 15, 17],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [1, 4, 0]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [0, 0, 0, 11], "texture": "#0"},
|
||||||
|
"east": {"uv": [8, 0, 12.5, 2.75], "texture": "#0"},
|
||||||
|
"south": {"uv": [0, 0, 0, 11], "texture": "#0"},
|
||||||
|
"west": {"uv": [8, 0, 12.5, 2.75], "texture": "#0"},
|
||||||
|
"up": {"uv": [0, 0, 0, 16], "texture": "#0"},
|
||||||
|
"down": {"uv": [0, 0, 0, 16], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [2, 4, -1],
|
||||||
|
"to": [2, 15, 17],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [3, 4, 0]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [0, 0, 0, 11], "texture": "#0"},
|
||||||
|
"east": {"uv": [8, 0, 12.5, 2.75], "texture": "#0"},
|
||||||
|
"south": {"uv": [0, 0, 0, 11], "texture": "#0"},
|
||||||
|
"west": {"uv": [8, 0, 12.5, 2.75], "texture": "#0"},
|
||||||
|
"up": {"uv": [0, 0, 0, 16], "texture": "#0"},
|
||||||
|
"down": {"uv": [0, 0, 0, 16], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [4, 4, -1],
|
||||||
|
"to": [4, 15, 17],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [5, 4, 0]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [0, 0, 0, 11], "texture": "#0"},
|
||||||
|
"east": {"uv": [8, 0, 12.5, 2.75], "texture": "#0"},
|
||||||
|
"south": {"uv": [0, 0, 0, 11], "texture": "#0"},
|
||||||
|
"west": {"uv": [8, 0, 12.5, 2.75], "texture": "#0"},
|
||||||
|
"up": {"uv": [0, 0, 0, 16], "texture": "#0"},
|
||||||
|
"down": {"uv": [0, 0, 0, 16], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [5.9, 4, -1],
|
||||||
|
"to": [5.9, 15, 17],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [6.9, 4, 0]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [0, 0, 0, 11], "texture": "#0"},
|
||||||
|
"east": {"uv": [8, 0, 12.5, 2.75], "texture": "#0"},
|
||||||
|
"south": {"uv": [0, 0, 0, 11], "texture": "#0"},
|
||||||
|
"west": {"uv": [8, 0, 12.5, 2.75], "texture": "#0"},
|
||||||
|
"up": {"uv": [0, 0, 0, 16], "texture": "#0"},
|
||||||
|
"down": {"uv": [0, 0, 0, 16], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [8, 4, -1],
|
||||||
|
"to": [8, 15, 17],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [9, 4, 0]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [0, 0, 0, 11], "texture": "#0"},
|
||||||
|
"east": {"uv": [8, 0, 12.5, 2.75], "texture": "#0"},
|
||||||
|
"south": {"uv": [0, 0, 0, 11], "texture": "#0"},
|
||||||
|
"west": {"uv": [8, 0, 12.5, 2.75], "texture": "#0"},
|
||||||
|
"up": {"uv": [0, 0, 0, 16], "texture": "#0"},
|
||||||
|
"down": {"uv": [0, 0, 0, 16], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [10, 4, -1],
|
||||||
|
"to": [10, 15, 17],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [11, 4, 0]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [0, 0, 0, 11], "texture": "#0"},
|
||||||
|
"east": {"uv": [8, 0, 12.5, 2.75], "texture": "#0"},
|
||||||
|
"south": {"uv": [0, 0, 0, 11], "texture": "#0"},
|
||||||
|
"west": {"uv": [8, 0, 12.5, 2.75], "texture": "#0"},
|
||||||
|
"up": {"uv": [0, 0, 0, 16], "texture": "#0"},
|
||||||
|
"down": {"uv": [0, 0, 0, 16], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [12, 4, -1],
|
||||||
|
"to": [12, 15, 17],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [13, 4, 0]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [0, 0, 0, 11], "texture": "#0"},
|
||||||
|
"east": {"uv": [8, 0, 12.5, 2.75], "texture": "#0"},
|
||||||
|
"south": {"uv": [0, 0, 0, 11], "texture": "#0"},
|
||||||
|
"west": {"uv": [8, 0, 12.5, 2.75], "texture": "#0"},
|
||||||
|
"up": {"uv": [0, 0, 0, 16], "texture": "#0"},
|
||||||
|
"down": {"uv": [0, 0, 0, 16], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [13.9, 4, -1],
|
||||||
|
"to": [13.9, 15, 17],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [14.9, 4, 0]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [0, 0, 0, 11], "texture": "#0"},
|
||||||
|
"east": {"uv": [8, 0, 12.5, 2.75], "texture": "#0"},
|
||||||
|
"south": {"uv": [0, 0, 0, 11], "texture": "#0"},
|
||||||
|
"west": {"uv": [8, 0, 12.5, 2.75], "texture": "#0"},
|
||||||
|
"up": {"uv": [0, 0, 0, 16], "texture": "#0"},
|
||||||
|
"down": {"uv": [0, 0, 0, 16], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [16, 4, -1],
|
||||||
|
"to": [16, 15, 17],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [17, 4, 0]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [0, 0, 0, 11], "texture": "#0"},
|
||||||
|
"east": {"uv": [8, 0, 12.5, 2.75], "texture": "#0"},
|
||||||
|
"south": {"uv": [0, 0, 0, 11], "texture": "#0"},
|
||||||
|
"west": {"uv": [8, 0, 12.5, 2.75], "texture": "#0"},
|
||||||
|
"up": {"uv": [0, 0, 0, 16], "texture": "#0"},
|
||||||
|
"down": {"uv": [0, 0, 0, 16], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [-8, 3, 2],
|
||||||
|
"to": [8, 16, 14],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [23, 4, 0]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [7, 0, 3, 3.25], "texture": "#0"},
|
||||||
|
"south": {"uv": [3, 0, 7, 3.25], "texture": "#0"},
|
||||||
|
"west": {"uv": [0, 0, 3, 3.25], "texture": "#0"},
|
||||||
|
"up": {"uv": [0, 3.25, 3, 7.25], "rotation": 270, "texture": "#0"},
|
||||||
|
"down": {"uv": [0, 3.25, 3, 7.25], "rotation": 270, "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [8, 3, 2],
|
||||||
|
"to": [24, 16, 14],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [16, 4, 16]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [3, 0, 7, 3.25], "texture": "#0"},
|
||||||
|
"east": {"uv": [3, 0, 0, 3.25], "texture": "#0"},
|
||||||
|
"south": {"uv": [7, 0, 3, 3.25], "texture": "#0"},
|
||||||
|
"up": {"uv": [0, 3.25, 3, 7.25], "rotation": 90, "texture": "#0"},
|
||||||
|
"down": {"uv": [0, 3.25, 3, 7.25], "rotation": 90, "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [-3, 22, 5],
|
||||||
|
"to": [3, 23, 11],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [-1, 20, 7]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [13.25, 0, 14.75, 0.25], "texture": "#0"},
|
||||||
|
"east": {"uv": [13.25, 0, 14.75, 0.25], "texture": "#0"},
|
||||||
|
"south": {"uv": [13.25, 0, 14.75, 0.25], "texture": "#0"},
|
||||||
|
"west": {"uv": [13.25, 0, 14.75, 0.25], "texture": "#0"},
|
||||||
|
"up": {"uv": [13.25, 0, 14.75, 1.5], "texture": "#0"},
|
||||||
|
"down": {"uv": [13.25, 0, 14.75, 1.5], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [-3, 24, 5],
|
||||||
|
"to": [3, 25, 11],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [-1, 22, 7]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [13.25, 0, 14.75, 0.25], "texture": "#0"},
|
||||||
|
"east": {"uv": [13.25, 0, 14.75, 0.25], "texture": "#0"},
|
||||||
|
"south": {"uv": [13.25, 0, 14.75, 0.25], "texture": "#0"},
|
||||||
|
"west": {"uv": [13.25, 0, 14.75, 0.25], "texture": "#0"},
|
||||||
|
"up": {"uv": [13.25, 0, 14.75, 1.5], "texture": "#0"},
|
||||||
|
"down": {"uv": [13.25, 0, 14.75, 1.5], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [13, 22, 5],
|
||||||
|
"to": [19, 23, 11],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [15, 20, 7]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [13.25, 0, 14.75, 0.25], "texture": "#0"},
|
||||||
|
"east": {"uv": [13.25, 0, 14.75, 0.25], "texture": "#0"},
|
||||||
|
"south": {"uv": [13.25, 0, 14.75, 0.25], "texture": "#0"},
|
||||||
|
"west": {"uv": [13.25, 0, 14.75, 0.25], "texture": "#0"},
|
||||||
|
"up": {"uv": [13.25, 0, 14.75, 1.5], "texture": "#0"},
|
||||||
|
"down": {"uv": [13.25, 0, 14.75, 1.5], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [13, 20, 5],
|
||||||
|
"to": [19, 21, 11],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [15, 18, 7]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [13.25, 0, 14.75, 0.25], "texture": "#0"},
|
||||||
|
"east": {"uv": [13.25, 0, 14.75, 0.25], "texture": "#0"},
|
||||||
|
"south": {"uv": [13.25, 0, 14.75, 0.25], "texture": "#0"},
|
||||||
|
"west": {"uv": [13.25, 0, 14.75, 0.25], "texture": "#0"},
|
||||||
|
"up": {"uv": [13.25, 0, 14.75, 1.5], "texture": "#0"},
|
||||||
|
"down": {"uv": [13.25, 0, 14.75, 1.5], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [13, 24, 5],
|
||||||
|
"to": [19, 25, 11],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [15, 22, 7]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [13.25, 0, 14.75, 0.25], "texture": "#0"},
|
||||||
|
"east": {"uv": [13.25, 0, 14.75, 0.25], "texture": "#0"},
|
||||||
|
"south": {"uv": [13.25, 0, 14.75, 0.25], "texture": "#0"},
|
||||||
|
"west": {"uv": [13.25, 0, 14.75, 0.25], "texture": "#0"},
|
||||||
|
"up": {"uv": [13.25, 0, 14.75, 1.5], "texture": "#0"},
|
||||||
|
"down": {"uv": [13.25, 0, 14.75, 1.5], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [-3, 20, 5],
|
||||||
|
"to": [3, 21, 11],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [-1, 18, 7]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [13.25, 0, 14.75, 0.25], "texture": "#0"},
|
||||||
|
"east": {"uv": [13.25, 0, 14.75, 0.25], "texture": "#0"},
|
||||||
|
"south": {"uv": [13.25, 0, 14.75, 0.25], "texture": "#0"},
|
||||||
|
"west": {"uv": [13.25, 0, 14.75, 0.25], "texture": "#0"},
|
||||||
|
"up": {"uv": [13.25, 0, 14.75, 1.5], "texture": "#0"},
|
||||||
|
"down": {"uv": [13.25, 0, 14.75, 1.5], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [-2, 19, 6],
|
||||||
|
"to": [2, 26, 10],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [-1, 21, 7]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [15, 0, 16, 1.75], "texture": "#0"},
|
||||||
|
"east": {"uv": [15, 0, 16, 1.75], "texture": "#0"},
|
||||||
|
"south": {"uv": [15, 0, 16, 1.75], "texture": "#0"},
|
||||||
|
"west": {"uv": [15, 0, 16, 1.75], "texture": "#0"},
|
||||||
|
"up": {"uv": [15, 2.5, 16, 3.5], "texture": "#0"},
|
||||||
|
"down": {"uv": [0, 0, 1, 1], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [14, 19, 6],
|
||||||
|
"to": [18, 26, 10],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [15, 21, 7]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [15, 0, 16, 1.75], "texture": "#0"},
|
||||||
|
"east": {"uv": [15, 0, 16, 1.75], "texture": "#0"},
|
||||||
|
"south": {"uv": [15, 0, 16, 1.75], "texture": "#0"},
|
||||||
|
"west": {"uv": [15, 0, 16, 1.75], "texture": "#0"},
|
||||||
|
"up": {"uv": [15, 2.5, 16, 3.5], "texture": "#0"},
|
||||||
|
"down": {"uv": [0, 0, 1, 1], "texture": "#0"}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -1,4 +1,5 @@
|
|||||||
{
|
{
|
||||||
|
"format_version": "1.21.6",
|
||||||
"credit": "Made with Blockbench",
|
"credit": "Made with Blockbench",
|
||||||
"parent": "block/block",
|
"parent": "block/block",
|
||||||
"textures": {
|
"textures": {
|
||||||
@@ -114,8 +115,8 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"from": [6, 8, 7],
|
"from": [5.95, 8, 7],
|
||||||
"to": [6, 14, 9],
|
"to": [5.95, 14, 9],
|
||||||
"rotation": {"angle": 0, "axis": "y", "origin": [4, 8, 7]},
|
"rotation": {"angle": 0, "axis": "y", "origin": [4, 8, 7]},
|
||||||
"faces": {
|
"faces": {
|
||||||
"north": {"uv": [0, 0, 0, 6], "texture": "#3"},
|
"north": {"uv": [0, 0, 0, 6], "texture": "#3"},
|
||||||
@@ -140,8 +141,8 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"from": [10, 8, 7],
|
"from": [10.05, 8, 7],
|
||||||
"to": [10, 14, 9],
|
"to": [10.05, 14, 9],
|
||||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 7]},
|
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 7]},
|
||||||
"faces": {
|
"faces": {
|
||||||
"north": {"uv": [0, 0, 0, 6], "texture": "#3"},
|
"north": {"uv": [0, 0, 0, 6], "texture": "#3"},
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
{
|
{
|
||||||
|
"format_version": "1.21.6",
|
||||||
"credit": "Made with Blockbench",
|
"credit": "Made with Blockbench",
|
||||||
"parent": "minecraft:block/block",
|
"parent": "minecraft:block/block",
|
||||||
"textures": {
|
"textures": {
|
||||||
|
|||||||
@@ -1,166 +0,0 @@
|
|||||||
{
|
|
||||||
"credit": "Made with Blockbench",
|
|
||||||
"parent": "minecraft:block/block",
|
|
||||||
"textures": {
|
|
||||||
"0": "tfmg:block/pumpjack_crank",
|
|
||||||
"1": "tfmg:block/heavy_machinery_casing",
|
|
||||||
"particle": "tfmg:block/pumpjack_crank"
|
|
||||||
},
|
|
||||||
"elements": [
|
|
||||||
{
|
|
||||||
"from": [-2, 2, 6],
|
|
||||||
"to": [18, 6, 10],
|
|
||||||
"rotation": {"angle": 0, "axis": "x", "origin": [8, 4, 8]},
|
|
||||||
"faces": {
|
|
||||||
"north": {"uv": [8.5, 0, 10.5, 9], "rotation": 90, "texture": "#0"},
|
|
||||||
"east": {"uv": [2.5, 12.5, 4.5, 14.5], "texture": "#0"},
|
|
||||||
"south": {"uv": [8.5, 0, 10.5, 9], "rotation": 90, "texture": "#0"},
|
|
||||||
"west": {"uv": [2.5, 12.5, 4.5, 14.5], "texture": "#0"},
|
|
||||||
"up": {"uv": [8.5, 0, 10.5, 9], "rotation": 90, "texture": "#0"},
|
|
||||||
"down": {"uv": [8.5, 0, 10.5, 9], "rotation": 90, "texture": "#0"}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"from": [-3, 13, 2],
|
|
||||||
"to": [0, 14, 14],
|
|
||||||
"rotation": {"angle": 0, "axis": "x", "origin": [8, 4, 8]},
|
|
||||||
"faces": {
|
|
||||||
"north": {"uv": [2.5, 11.5, 4, 12], "texture": "#0"},
|
|
||||||
"east": {"uv": [0.5, 8.5, 6.5, 9], "texture": "#0"},
|
|
||||||
"south": {"uv": [2.5, 11.5, 4, 12], "texture": "#0"},
|
|
||||||
"west": {"uv": [0.5, 8.5, 6.5, 9], "texture": "#0"},
|
|
||||||
"up": {"uv": [0.5, 9, 6.5, 10.5], "rotation": 90, "texture": "#0"},
|
|
||||||
"down": {"uv": [0, 0, 3, 12], "texture": "#0"}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"from": [-2, 6, 6],
|
|
||||||
"to": [0, 9, 10],
|
|
||||||
"rotation": {"angle": 0, "axis": "x", "origin": [8, 4, 8]},
|
|
||||||
"faces": {
|
|
||||||
"north": {"uv": [2.5, 11, 3.5, 12.5], "texture": "#0"},
|
|
||||||
"east": {"uv": [2.5, 11, 4.5, 12.5], "texture": "#0"},
|
|
||||||
"south": {"uv": [2.5, 11, 3.5, 12.5], "texture": "#0"},
|
|
||||||
"west": {"uv": [2.5, 11, 4.5, 12.5], "texture": "#0"},
|
|
||||||
"up": {"uv": [0, 0, 2, 4], "texture": "#0"},
|
|
||||||
"down": {"uv": [0, 0, 2, 4], "texture": "#0"}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"from": [-2, 0, 6],
|
|
||||||
"to": [0, 2, 10],
|
|
||||||
"rotation": {"angle": 0, "axis": "x", "origin": [8, 4, 8]},
|
|
||||||
"faces": {
|
|
||||||
"north": {"uv": [2.5, 11.5, 3.5, 12.5], "texture": "#0"},
|
|
||||||
"east": {"uv": [2.5, 14.5, 4.5, 15.5], "texture": "#0"},
|
|
||||||
"south": {"uv": [2.5, 11.5, 3.5, 12.5], "texture": "#0"},
|
|
||||||
"west": {"uv": [2.5, 14.5, 4.5, 15.5], "texture": "#0"},
|
|
||||||
"up": {"uv": [0, 0, 2, 4], "texture": "#0"},
|
|
||||||
"down": {"uv": [2.5, 11.5, 4.5, 12.5], "rotation": 90, "texture": "#0"}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"from": [16, 14, 6],
|
|
||||||
"to": [18, 16, 10],
|
|
||||||
"rotation": {"angle": 0, "axis": "x", "origin": [8, 4, 8]},
|
|
||||||
"faces": {
|
|
||||||
"north": {"uv": [2.5, 11, 3.5, 12], "texture": "#0"},
|
|
||||||
"east": {"uv": [2.5, 14.5, 4.5, 15.5], "rotation": 180, "texture": "#0"},
|
|
||||||
"south": {"uv": [2.5, 11, 3.5, 12], "texture": "#0"},
|
|
||||||
"west": {"uv": [2.5, 14.5, 4.5, 15.5], "rotation": 180, "texture": "#0"},
|
|
||||||
"up": {"uv": [2.5, 11, 4.5, 12.5], "rotation": 90, "texture": "#0"},
|
|
||||||
"down": {"uv": [0, 0, 2, 4], "rotation": 180, "texture": "#0"}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"from": [16, 13, 2],
|
|
||||||
"to": [19, 14, 14],
|
|
||||||
"rotation": {"angle": 0, "axis": "x", "origin": [8, 4, 8]},
|
|
||||||
"faces": {
|
|
||||||
"north": {"uv": [3, 11.5, 4.5, 12], "texture": "#0"},
|
|
||||||
"east": {"uv": [0.5, 8.5, 6.5, 9], "texture": "#0"},
|
|
||||||
"south": {"uv": [3, 11.5, 4.5, 12], "texture": "#0"},
|
|
||||||
"west": {"uv": [0.5, 8.5, 6.5, 9], "texture": "#0"},
|
|
||||||
"up": {"uv": [0.5, 9, 6.5, 10.5], "rotation": 90, "texture": "#0"},
|
|
||||||
"down": {"uv": [0, 0, 3, 12], "rotation": 180, "texture": "#0"}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"from": [16, 9, 1],
|
|
||||||
"to": [19, 13, 15],
|
|
||||||
"rotation": {"angle": 0, "axis": "x", "origin": [8, 4, 8]},
|
|
||||||
"faces": {
|
|
||||||
"north": {"uv": [2.5, 9.5, 4, 11.5], "texture": "#0"},
|
|
||||||
"east": {"uv": [0, 9, 7, 11], "texture": "#0"},
|
|
||||||
"south": {"uv": [2.5, 9.5, 4, 11.5], "texture": "#0"},
|
|
||||||
"west": {"uv": [0, 9, 7, 11], "texture": "#0"},
|
|
||||||
"up": {"uv": [0, 9, 7, 10.5], "rotation": 90, "texture": "#0"},
|
|
||||||
"down": {"uv": [0, 9, 7, 10.5], "rotation": 90, "texture": "#0"}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"from": [16, 6, 6],
|
|
||||||
"to": [18, 9, 10],
|
|
||||||
"rotation": {"angle": 0, "axis": "x", "origin": [8, 4, 8]},
|
|
||||||
"faces": {
|
|
||||||
"north": {"uv": [2.5, 11, 3.5, 12.5], "texture": "#0"},
|
|
||||||
"east": {"uv": [2.5, 11, 4.5, 12.5], "texture": "#0"},
|
|
||||||
"south": {"uv": [2.5, 11, 3.5, 12.5], "texture": "#0"},
|
|
||||||
"west": {"uv": [2.5, 11, 4.5, 12.5], "texture": "#0"},
|
|
||||||
"up": {"uv": [0, 0, 2, 4], "rotation": 180, "texture": "#0"},
|
|
||||||
"down": {"uv": [0, 0, 2, 4], "rotation": 180, "texture": "#0"}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"from": [16, 0, 6],
|
|
||||||
"to": [18, 2, 10],
|
|
||||||
"rotation": {"angle": 0, "axis": "x", "origin": [8, 4, 8]},
|
|
||||||
"faces": {
|
|
||||||
"north": {"uv": [2.5, 11.5, 3.5, 12.5], "texture": "#0"},
|
|
||||||
"east": {"uv": [2.5, 14.5, 4.5, 15.5], "texture": "#0"},
|
|
||||||
"south": {"uv": [2.5, 11.5, 3.5, 12.5], "texture": "#0"},
|
|
||||||
"west": {"uv": [2.5, 14.5, 4.5, 15.5], "texture": "#0"},
|
|
||||||
"up": {"uv": [0, 0, 2, 4], "rotation": 180, "texture": "#0"},
|
|
||||||
"down": {"uv": [2.5, 11.5, 4.5, 12.5], "rotation": 90, "texture": "#0"}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"from": [-2, 14, 6],
|
|
||||||
"to": [0, 16, 10],
|
|
||||||
"rotation": {"angle": 0, "axis": "x", "origin": [8, 4, 8]},
|
|
||||||
"faces": {
|
|
||||||
"north": {"uv": [2.5, 11, 3.5, 12], "texture": "#0"},
|
|
||||||
"east": {"uv": [2.5, 14.5, 4.5, 15.5], "rotation": 180, "texture": "#0"},
|
|
||||||
"south": {"uv": [2.5, 11, 3.5, 12], "texture": "#0"},
|
|
||||||
"west": {"uv": [2.5, 14.5, 4.5, 15.5], "rotation": 180, "texture": "#0"},
|
|
||||||
"up": {"uv": [2.5, 11, 4.5, 12.5], "rotation": 90, "texture": "#0"},
|
|
||||||
"down": {"uv": [0, 0, 2, 4], "texture": "#0"}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"from": [-3, 9, 1],
|
|
||||||
"to": [0, 13, 15],
|
|
||||||
"rotation": {"angle": 0, "axis": "x", "origin": [8, 4, 8]},
|
|
||||||
"faces": {
|
|
||||||
"north": {"uv": [2.5, 9.5, 4, 11.5], "texture": "#0"},
|
|
||||||
"east": {"uv": [0, 9, 7, 11], "texture": "#0"},
|
|
||||||
"south": {"uv": [2.5, 9.5, 4, 11.5], "texture": "#0"},
|
|
||||||
"west": {"uv": [0, 9, 7, 11], "texture": "#0"},
|
|
||||||
"up": {"uv": [0, 9, 7, 10.5], "rotation": 90, "texture": "#0"},
|
|
||||||
"down": {"uv": [0, 9, 7, 10.5], "rotation": 90, "texture": "#0"}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"from": [0, 0, 0],
|
|
||||||
"to": [16, 8, 16],
|
|
||||||
"faces": {
|
|
||||||
"north": {"uv": [0, 4, 8, 8], "texture": "#0"},
|
|
||||||
"east": {"uv": [0, 0, 8, 4], "texture": "#0"},
|
|
||||||
"south": {"uv": [0, 4, 8, 8], "texture": "#0"},
|
|
||||||
"west": {"uv": [0, 0, 8, 4], "texture": "#0"},
|
|
||||||
"up": {"uv": [0, 0, 16, 16], "rotation": 270, "texture": "#1"},
|
|
||||||
"down": {"uv": [0, 0, 16, 16], "rotation": 90, "texture": "#1"}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,4 +1,5 @@
|
|||||||
{
|
{
|
||||||
|
"format_version": "1.21.6",
|
||||||
"credit": "Made with Blockbench",
|
"credit": "Made with Blockbench",
|
||||||
"parent": "block/block",
|
"parent": "block/block",
|
||||||
"texture_size": [32, 32],
|
"texture_size": [32, 32],
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
{
|
{
|
||||||
|
"format_version": "1.21.6",
|
||||||
"credit": "Made with Blockbench",
|
"credit": "Made with Blockbench",
|
||||||
"parent": "block/block",
|
"parent": "block/block",
|
||||||
"texture_size": [32, 32],
|
"texture_size": [32, 32],
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
{
|
{
|
||||||
|
"format_version": "1.21.6",
|
||||||
"credit": "Made with Blockbench",
|
"credit": "Made with Blockbench",
|
||||||
"parent": "block/block",
|
"parent": "block/block",
|
||||||
"texture_size": [32, 32],
|
"texture_size": [32, 32],
|
||||||
@@ -86,7 +87,7 @@
|
|||||||
"east": {"uv": [10.5, 8, 14, 8.5], "texture": "#1"},
|
"east": {"uv": [10.5, 8, 14, 8.5], "texture": "#1"},
|
||||||
"south": {"uv": [10.5, 8, 14, 8.5], "texture": "#1"},
|
"south": {"uv": [10.5, 8, 14, 8.5], "texture": "#1"},
|
||||||
"west": {"uv": [10.5, 8, 14, 8.5], "texture": "#1"},
|
"west": {"uv": [10.5, 8, 14, 8.5], "texture": "#1"},
|
||||||
"up": {"uv": [10.5, 8, 14, 11.5], "texture": "#1"},
|
"up": {"uv": [14, 12, 10.5, 15.5], "texture": "#1"},
|
||||||
"down": {"uv": [10.5, 8, 14, 11.5], "texture": "#1"}
|
"down": {"uv": [10.5, 8, 14, 11.5], "texture": "#1"}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -0,0 +1,115 @@
|
|||||||
|
{
|
||||||
|
"format_version": "1.9.0",
|
||||||
|
"credit": "Made with Blockbench",
|
||||||
|
"texture_size": [32, 32],
|
||||||
|
"textures": {
|
||||||
|
"1": "tfmg:item/fire_extinguisher"
|
||||||
|
},
|
||||||
|
"elements": [
|
||||||
|
{
|
||||||
|
"name": "tank_bottom",
|
||||||
|
"from": [5.5, 0, 5.5],
|
||||||
|
"to": [10.5, 10, 10.5],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [8, 5, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [0, 0, 2.5, 5], "texture": "#1"},
|
||||||
|
"east": {"uv": [2.5, 0, 5, 5], "texture": "#1"},
|
||||||
|
"south": {"uv": [0, 0, 2.5, 5], "texture": "#1"},
|
||||||
|
"west": {"uv": [5, 0, 2.5, 5], "texture": "#1"},
|
||||||
|
"up": {"uv": [7.5, 5, 5, 2.5], "texture": "#1"},
|
||||||
|
"down": {"uv": [7.5, 0, 5, 2.5], "texture": "#1"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "tank_top",
|
||||||
|
"from": [6, 10, 6],
|
||||||
|
"to": [10, 11, 10],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [8, 10.5, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [7.5, 0, 9.5, 0.5], "texture": "#1"},
|
||||||
|
"east": {"uv": [7.5, 0.5, 9.5, 1], "texture": "#1"},
|
||||||
|
"south": {"uv": [7.5, 1, 9.5, 1.5], "texture": "#1"},
|
||||||
|
"west": {"uv": [7.5, 1.5, 9.5, 2], "texture": "#1"},
|
||||||
|
"up": {"uv": [7.5, 2, 9.5, 4], "texture": "#1"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "head",
|
||||||
|
"from": [6.5, 11, 6.5],
|
||||||
|
"to": [9.5, 14, 9.5],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [8, 12.5, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [9.5, 0, 11, 1.5], "texture": "#1"},
|
||||||
|
"east": {"uv": [9.5, 1.5, 11, 3], "texture": "#1"},
|
||||||
|
"south": {"uv": [9.5, 3, 11, 4.5], "texture": "#1"},
|
||||||
|
"west": {"uv": [9.5, 4.5, 11, 6], "texture": "#1"},
|
||||||
|
"up": {"uv": [9.5, 6, 11, 7.5], "texture": "#1"},
|
||||||
|
"down": {"uv": [9.5, 7.5, 11, 9], "texture": "#1"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "lever_upper",
|
||||||
|
"from": [7.5, 13, 9],
|
||||||
|
"to": [8.5, 14, 13],
|
||||||
|
"rotation": {"angle": -22.5, "axis": "x", "origin": [8, 13.5, 9]},
|
||||||
|
"faces": {
|
||||||
|
"east": {"uv": [4, 7.5, 6, 8], "texture": "#1"},
|
||||||
|
"south": {"uv": [3.5, 8, 4, 8.5], "texture": "#1"},
|
||||||
|
"west": {"uv": [4, 8, 6, 8.5], "texture": "#1"},
|
||||||
|
"up": {"uv": [2.5, 7.5, 3, 9.5], "texture": "#1"},
|
||||||
|
"down": {"uv": [3, 7.5, 3.5, 9.5], "texture": "#1"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "lever_lower",
|
||||||
|
"from": [7.5, 12, 9],
|
||||||
|
"to": [8.5, 13, 13],
|
||||||
|
"rotation": {"angle": 0, "axis": "x", "origin": [8, 12.5, 9]},
|
||||||
|
"faces": {
|
||||||
|
"east": {"uv": [4, 7.5, 6, 8], "texture": "#1"},
|
||||||
|
"south": {"uv": [3.5, 8, 4, 8.5], "texture": "#1"},
|
||||||
|
"west": {"uv": [4, 8, 6, 8.5], "texture": "#1"},
|
||||||
|
"up": {"uv": [2.5, 7.5, 3, 9.5], "texture": "#1"},
|
||||||
|
"down": {"uv": [3, 7.5, 3.5, 9.5], "texture": "#1"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "tube",
|
||||||
|
"from": [7.5, 12, 5.5],
|
||||||
|
"to": [8.5, 13, 6.5],
|
||||||
|
"rotation": {"angle": 0, "axis": "x", "origin": [8, 12.5, 6]},
|
||||||
|
"faces": {
|
||||||
|
"east": {"uv": [4, 8.5, 4.5, 9], "texture": "#1"},
|
||||||
|
"west": {"uv": [4.5, 8.5, 5, 9], "texture": "#1"},
|
||||||
|
"up": {"uv": [3.5, 8.5, 4, 9], "texture": "#1"},
|
||||||
|
"down": {"uv": [3.5, 9, 4, 9.5], "texture": "#1"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "nozzle",
|
||||||
|
"from": [7, 11.5, 3.5],
|
||||||
|
"to": [9, 13.5, 5.5],
|
||||||
|
"rotation": {"angle": 0, "axis": "x", "origin": [8, 12.5, 4.5]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [7.5, 4, 8.5, 5], "texture": "#1"},
|
||||||
|
"east": {"uv": [8.5, 6, 7.5, 7], "texture": "#1"},
|
||||||
|
"south": {"uv": [7.5, 6, 8.5, 7], "texture": "#1"},
|
||||||
|
"west": {"uv": [7.5, 6, 8.5, 7], "texture": "#1"},
|
||||||
|
"up": {"uv": [7.5, 7, 8.5, 8], "rotation": 90, "texture": "#1"},
|
||||||
|
"down": {"uv": [7.5, 5, 8.5, 6], "rotation": 270, "texture": "#1"}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"display": {
|
||||||
|
"ground": {
|
||||||
|
"translation": [0, 4, 0]
|
||||||
|
},
|
||||||
|
"gui": {
|
||||||
|
"rotation": [-30, 130, 30],
|
||||||
|
"translation": [0, 1, 0]
|
||||||
|
},
|
||||||
|
"fixed": {
|
||||||
|
"rotation": [0, 90, 0]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Before Width: | Height: | Size: 422 B After Width: | Height: | Size: 581 B |
|
Before Width: | Height: | Size: 275 B After Width: | Height: | Size: 522 B |
|
Before Width: | Height: | Size: 260 B After Width: | Height: | Size: 529 B |
|
Before Width: | Height: | Size: 602 B |
|
Before Width: | Height: | Size: 265 B After Width: | Height: | Size: 480 B |
|
Before Width: | Height: | Size: 206 B After Width: | Height: | Size: 431 B |
|
Before Width: | Height: | Size: 296 B After Width: | Height: | Size: 501 B |
|
Before Width: | Height: | Size: 675 B After Width: | Height: | Size: 659 B |
|
Before Width: | Height: | Size: 302 B After Width: | Height: | Size: 537 B |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 825 B |
|
Before Width: | Height: | Size: 307 B After Width: | Height: | Size: 579 B |
|
Before Width: | Height: | Size: 297 B After Width: | Height: | Size: 597 B |
|
Before Width: | Height: | Size: 358 B |
|
Before Width: | Height: | Size: 248 B After Width: | Height: | Size: 496 B |
|
Before Width: | Height: | Size: 242 B After Width: | Height: | Size: 490 B |
|
Before Width: | Height: | Size: 170 B |