1.1.0 update
@@ -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.galena": "ɐuǝןɐ⅁",
|
||||
"block.tfmg.galena_pillar": "ɹɐןןıԀ ɐuǝןɐ⅁",
|
||||
"block.tfmg.gas_lamp": "dɯɐꞀ sɐ⅁",
|
||||
"block.tfmg.gasoline": "ǝuıןosɐ⅁",
|
||||
"block.tfmg.generator": "ɹoʇɐɹǝuǝ⅁",
|
||||
"block.tfmg.glass_aluminum_pipe": "ǝdıԀ ɯnuıɯnןⱯ ssɐן⅁",
|
||||
@@ -519,6 +520,7 @@
|
||||
"effect.tfmg.hellfire": "ǝɹıɟןןǝH",
|
||||
"entity.tfmg.blue_spark": "ʞɹɐdS ǝnןᗺ",
|
||||
"entity.tfmg.copper_grenade": "ǝpɐuǝɹ⅁ ɹǝddoƆ",
|
||||
"entity.tfmg.dry_ice_flake": "ǝʞɐןℲ ǝɔI ʎɹᗡ",
|
||||
"entity.tfmg.green_spark": "ʞɹɐdS uǝǝɹ⅁",
|
||||
"entity.tfmg.lithium_spark": "ʞɹɐdS ɯnıɥʇıꞀ",
|
||||
"entity.tfmg.napalm_bomb_entity": "ʎʇıʇuƎ qɯoᗺ ɯןɐdɐN",
|
||||
@@ -645,6 +647,7 @@
|
||||
"item.tfmg.engine_cylinder": "ɹǝpuıןʎƆ ǝuıbuƎ",
|
||||
"item.tfmg.etched_circuit_board": "pɹɐoᗺ ʇınɔɹıƆ pǝɥɔʇƎ",
|
||||
"item.tfmg.ethylene_bucket": "ʞuɐ⟘ ǝuǝןʎɥʇƎ",
|
||||
"item.tfmg.fire_extinguisher": "ɹǝɥsınbuıʇxƎ ǝɹıℲ",
|
||||
"item.tfmg.fireclay_ball": "ןןɐᗺ ʎɐןɔǝɹıℲ",
|
||||
"item.tfmg.fireproof_brick": "ʞɔıɹᗺ ɟooɹdǝɹıℲ",
|
||||
"item.tfmg.flamethrower": "ɹǝʍoɹɥʇǝɯɐןℲ",
|
||||
|
||||
@@ -201,6 +201,7 @@
|
||||
"block.tfmg.fossilstone": "Fossilstone",
|
||||
"block.tfmg.galena": "Galena",
|
||||
"block.tfmg.galena_pillar": "Galena Pillar",
|
||||
"block.tfmg.gas_lamp": "Gas Lamp",
|
||||
"block.tfmg.gasoline": "Gasoline",
|
||||
"block.tfmg.generator": "Generator",
|
||||
"block.tfmg.glass_aluminum_pipe": "Glass Aluminum Pipe",
|
||||
@@ -519,6 +520,7 @@
|
||||
"effect.tfmg.hellfire": "Hellfire",
|
||||
"entity.tfmg.blue_spark": "Blue Spark",
|
||||
"entity.tfmg.copper_grenade": "Copper Grenade",
|
||||
"entity.tfmg.dry_ice_flake": "Dry Ice Flake",
|
||||
"entity.tfmg.green_spark": "Green Spark",
|
||||
"entity.tfmg.lithium_spark": "Lithium Spark",
|
||||
"entity.tfmg.napalm_bomb_entity": "Napalm Bomb Entity",
|
||||
@@ -645,6 +647,7 @@
|
||||
"item.tfmg.engine_cylinder": "Engine Cylinder",
|
||||
"item.tfmg.etched_circuit_board": "Etched Circuit Board",
|
||||
"item.tfmg.ethylene_bucket": "Ethylene Tank",
|
||||
"item.tfmg.fire_extinguisher": "Fire Extinguisher",
|
||||
"item.tfmg.fireclay_ball": "Fireclay Ball",
|
||||
"item.tfmg.fireproof_brick": "Fireproof Brick",
|
||||
"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:aluminum_flywheel",
|
||||
"tfmg:nickel_flywheel",
|
||||
"tfmg:copper_encased_brass_pipe",
|
||||
"tfmg:copper_encased_steel_pipe",
|
||||
"tfmg:copper_encased_aluminum_pipe",
|
||||
"tfmg:copper_encased_cast_iron_pipe",
|
||||
"tfmg:copper_encased_plastic_pipe",
|
||||
"tfmg:encased_brass_pipe",
|
||||
"tfmg:encased_steel_pipe",
|
||||
"tfmg:encased_aluminum_pipe",
|
||||
"tfmg:encased_cast_iron_pipe",
|
||||
"tfmg:encased_plastic_pipe",
|
||||
"tfmg:steel_encased_shaft",
|
||||
"tfmg:heavy_casing_encased_shaft",
|
||||
"tfmg:steel_encased_steel_cogwheel",
|
||||
|
||||
@@ -99,6 +99,7 @@
|
||||
"tfmg:concrete_smokestack",
|
||||
"tfmg:exhaust",
|
||||
"tfmg:flarestack",
|
||||
"tfmg:gas_lamp",
|
||||
"tfmg:steel_cogwheel",
|
||||
"tfmg:large_steel_cogwheel",
|
||||
"tfmg:aluminum_cogwheel",
|
||||
@@ -317,31 +318,31 @@
|
||||
"tfmg:asphalt_slab",
|
||||
"tfmg:asphalt_stairs",
|
||||
"tfmg:brass_pipe",
|
||||
"tfmg:copper_encased_brass_pipe",
|
||||
"tfmg:encased_brass_pipe",
|
||||
"tfmg:glass_brass_pipe",
|
||||
"tfmg:brass_mechanical_pump",
|
||||
"tfmg:brass_smart_fluid_pipe",
|
||||
"tfmg:brass_fluid_valve",
|
||||
"tfmg:steel_pipe",
|
||||
"tfmg:copper_encased_steel_pipe",
|
||||
"tfmg:encased_steel_pipe",
|
||||
"tfmg:glass_steel_pipe",
|
||||
"tfmg:steel_mechanical_pump",
|
||||
"tfmg:steel_smart_fluid_pipe",
|
||||
"tfmg:steel_fluid_valve",
|
||||
"tfmg:aluminum_pipe",
|
||||
"tfmg:copper_encased_aluminum_pipe",
|
||||
"tfmg:encased_aluminum_pipe",
|
||||
"tfmg:glass_aluminum_pipe",
|
||||
"tfmg:aluminum_mechanical_pump",
|
||||
"tfmg:aluminum_smart_fluid_pipe",
|
||||
"tfmg:aluminum_fluid_valve",
|
||||
"tfmg:cast_iron_pipe",
|
||||
"tfmg:copper_encased_cast_iron_pipe",
|
||||
"tfmg:encased_cast_iron_pipe",
|
||||
"tfmg:glass_cast_iron_pipe",
|
||||
"tfmg:cast_iron_mechanical_pump",
|
||||
"tfmg:cast_iron_smart_fluid_pipe",
|
||||
"tfmg:cast_iron_fluid_valve",
|
||||
"tfmg:plastic_pipe",
|
||||
"tfmg:copper_encased_plastic_pipe",
|
||||
"tfmg:encased_plastic_pipe",
|
||||
"tfmg:glass_plastic_pipe",
|
||||
"tfmg:plastic_mechanical_pump",
|
||||
"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": [
|
||||
{
|
||||
"type": "minecraft:item",
|
||||
"name": "tfmg:brass_pipe"
|
||||
"name": "tfmg:gas_lamp"
|
||||
}
|
||||
],
|
||||
"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.CONSTANTAN_SPOOL);
|
||||
|
||||
|
||||
return list;
|
||||
}
|
||||
public static List<ItemStack> customAdditions(){
|
||||
|
||||
@@ -3,7 +3,7 @@ package com.drmangotea.tfmg.base;
|
||||
|
||||
import net.createmod.catnip.math.VoxelShaper;
|
||||
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.phys.shapes.BooleanOp;
|
||||
import net.minecraft.world.phys.shapes.Shapes;
|
||||
@@ -140,6 +140,7 @@ public class TFMGShapes {
|
||||
TRAFFIC_LIGHT = shape(3, 0, 3, 13, 16, 13).build(),
|
||||
REBAR_FLOOR = shape(0, 4, 0, 16, 12, 16)
|
||||
.build(),
|
||||
GAS_LAMP = shape(1, 0, 1, 15, 22, 15).build(),
|
||||
SURFACE_SCANNER = shape(2, 0, 2, 14, 14, 14).build(),
|
||||
FULL = shape(0, 0, 0, 16, 16, 16).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.utility.CreateLang;
|
||||
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.client.renderer.LightTexture;
|
||||
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.level.Level;
|
||||
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.material.Fluid;
|
||||
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);
|
||||
}
|
||||
|
||||
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) {
|
||||
String s = key.replaceAll("_", " ");
|
||||
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.TFMGClient;
|
||||
import com.drmangotea.tfmg.content.electricity.connection.cables.CableConnectorBlockEntity;
|
||||
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.items.weapons.advanced_potato_cannon.AdvancedPotatoCannonItemRenderer;
|
||||
import com.drmangotea.tfmg.content.items.weapons.quad_potato_cannon.QuadPotatoCannonItemRenderer;
|
||||
@@ -45,6 +47,9 @@ public class TFMGClientEvents {
|
||||
if (isPreEvent) {
|
||||
EngineControllerClientHandler.tick();
|
||||
}
|
||||
|
||||
TransformerBlockEntity.tickOutliner();
|
||||
CableConnectorBlockEntity.tickOutliner();
|
||||
}
|
||||
@SubscribeEvent
|
||||
public static void PlayerLoggedOut(PlayerEvent.PlayerLoggedOutEvent event) {
|
||||
|
||||
@@ -15,15 +15,13 @@ public class BlueSpark extends Spark{
|
||||
}
|
||||
@Override
|
||||
public int getColor() {
|
||||
return 0x00FFFF;
|
||||
return 0xC4F2F2;
|
||||
}
|
||||
|
||||
public float[] getCustomParticleTrail() {
|
||||
return new float[]{4.1f, 60.2f, 100.3f};
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
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;
|
||||
|
||||
|
||||
import com.drmangotea.tfmg.TFMG;
|
||||
import com.drmangotea.tfmg.registry.TFMGMobEffects;
|
||||
import com.simibubi.create.content.trains.CubeParticleData;
|
||||
import net.minecraft.core.BlockPos;
|
||||
@@ -53,6 +54,10 @@ public class Spark extends ThrowableProjectile {
|
||||
return ParticleTypes.FLAME;
|
||||
}
|
||||
|
||||
public ResourceLocation getTexture(){
|
||||
return TFMG.asResource("textures/entity/spark.png");
|
||||
}
|
||||
|
||||
@Override
|
||||
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.OnlyIn;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.joml.Matrix3f;
|
||||
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_) {
|
||||
super(p_173962_);
|
||||
}
|
||||
@@ -45,7 +46,7 @@ public class SparkRenderer extends EntityRenderer<Spark> {
|
||||
PoseStack.Pose posestack$pose = poseStack.last();
|
||||
Matrix4f matrix4f = posestack$pose.pose();
|
||||
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) {
|
||||
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_) {
|
||||
return TEXTURE_LOCATION;
|
||||
public @NotNull ResourceLocation getTextureLocation(Spark spark) {
|
||||
return spark.getTexture();
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -5,6 +5,8 @@ import net.createmod.catnip.config.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 ConfigInt cokeOvenMaxSize = i(5, 1, "cokeOvenMaxSize", Comments.cokeOvenMaxSize);
|
||||
public final ConfigFloat FEtoWattTickConversionRate = f(1, 0, "FEtoWattTickConversionRate", Comments.FEtoWattTickConversionRate);
|
||||
@@ -49,6 +51,7 @@ public class MachineConfig extends ConfigBase {
|
||||
|
||||
|
||||
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 generator = "Determines how powerful the generator is.";
|
||||
static String largeGeneratorMinSpeed = "Changes the lowest speed the large generator can work on.";
|
||||
|
||||
@@ -4,19 +4,30 @@ public class ElectricBlockValues {
|
||||
|
||||
|
||||
public long electricalNetworkId;
|
||||
|
||||
public boolean destroyed = false;
|
||||
|
||||
public boolean connectNextTick = false;
|
||||
|
||||
public boolean checkForLoopsNextTick = false;
|
||||
|
||||
public boolean updatePowerNextTick = false;
|
||||
|
||||
public boolean updateNextTick = false;
|
||||
|
||||
public boolean getsOutsidePower = false;
|
||||
|
||||
public int networkResistance = 0;
|
||||
|
||||
public int voltage = 0;
|
||||
|
||||
public int voltageSupply = 0;
|
||||
|
||||
public int networkPowerGeneration = 0;
|
||||
|
||||
public float highestCurrent = 0;
|
||||
|
||||
public boolean notEnoughtPower = false;
|
||||
public boolean notEnoughPower = false;
|
||||
|
||||
public boolean setVoltageNextTick = false;
|
||||
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
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.transformer.TransformerBlockEntity;
|
||||
import net.minecraft.core.BlockPos;
|
||||
|
||||
import java.util.ArrayList;
|
||||
@@ -44,7 +42,7 @@ public class ElectricalNetwork {
|
||||
Map<Integer, Float> groups = new HashMap<>();
|
||||
|
||||
for (IElectric member : members) {
|
||||
member.getData().notEnoughtPower = false;
|
||||
member.getData().notEnoughPower = false;
|
||||
int groupId = member.getData().group.id;
|
||||
|
||||
maxVoltage = Math.max(member.voltageGeneration(), maxVoltage);
|
||||
@@ -79,13 +77,11 @@ public class ElectricalNetwork {
|
||||
member.getData().highestCurrent = getCableCurrent(member);
|
||||
|
||||
member.updateNearbyNetworks(member);
|
||||
if (member instanceof ElectricDiodeBlockEntity be) {
|
||||
be.updateInFront();
|
||||
}
|
||||
if (member instanceof TransformerBlockEntity be) {
|
||||
if (member instanceof VoltageAlteringBlockEntity be) {
|
||||
be.updateInFront();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
handleInsufficientPower();
|
||||
@@ -96,19 +92,16 @@ public class ElectricalNetwork {
|
||||
if (!members.isEmpty())
|
||||
if (members.get(0).getNetworkPowerUsage() > members.get(0).getNetworkPowerGeneration()) {
|
||||
for (IElectric member : members) {
|
||||
member.getData().notEnoughtPower = true;
|
||||
member.getData().notEnoughPower = true;
|
||||
if (member instanceof ElectricMotorBlockEntity be) {
|
||||
be.updateGeneratedRotation();
|
||||
}
|
||||
if (member instanceof ElectricDiodeBlockEntity be)
|
||||
if (member instanceof VoltageAlteringBlockEntity be)
|
||||
be.updateInFront = true;
|
||||
if (member instanceof TransformerBlockEntity be)
|
||||
be.updateInFront();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public static float getCableCurrent(IElectric be) {
|
||||
|
||||
float current = 0;
|
||||
|
||||
@@ -1,14 +1,10 @@
|
||||
package com.drmangotea.tfmg.content.electricity.base;
|
||||
|
||||
import com.drmangotea.tfmg.TFMG;
|
||||
import com.drmangotea.tfmg.base.TFMGUtils;
|
||||
import com.drmangotea.tfmg.base.lang.TFMGLang;
|
||||
import com.drmangotea.tfmg.base.lang.TFMGTexts;
|
||||
import com.drmangotea.tfmg.content.electricity.connection.cables.CableConnection;
|
||||
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.theme.Color;
|
||||
import net.minecraft.ChatFormatting;
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.core.Direction;
|
||||
@@ -196,18 +192,20 @@ public interface IElectric {
|
||||
TFMGTexts.header("multimeter").style(ChatFormatting.WHITE)
|
||||
.forGoggles(tooltip);
|
||||
|
||||
if (getData().notEnoughtPower) TFMGTexts.Multimeter.notEnoughPower().forGoggles(tooltip, 1);
|
||||
if (getData().notEnoughPower) TFMGTexts.Multimeter.notEnoughPower().forGoggles(tooltip, 1);
|
||||
|
||||
if (voltageGeneration() > 0) {
|
||||
TFMGTexts.Multimeter.powerGenerated(powerGeneration()).forGoggles(tooltip, 1);
|
||||
TFMGTexts.Multimeter.voltageGenerated(voltageGeneration()).forGoggles(tooltip, 1);
|
||||
TFMGTexts.Multimeter.separator().forGoggles(tooltip);
|
||||
}
|
||||
|
||||
TFMGTexts.Multimeter.resistance(voltageGeneration() > 0 ? getGeneratorResistance() : resistance()).forGoggles(tooltip, 1);
|
||||
if (resistance() != 0)
|
||||
TFMGTexts.Multimeter.resistance(voltageGeneration() > 0 ? getGeneratorResistance() : resistance()).forGoggles(tooltip, 1);
|
||||
TFMGTexts.Multimeter.voltage(getData().getVoltage()).forGoggles(tooltip, 1);
|
||||
TFMGTexts.Multimeter.current(getCurrent()).forGoggles(tooltip, 1);
|
||||
TFMGTexts.Multimeter.power(getPowerUsage()).forGoggles(tooltip, 1);
|
||||
TFMGTexts.Multimeter.current(resistance() == 0 ? getData().highestCurrent : getCurrent()).forGoggles(tooltip, 1);
|
||||
if (resistance() != 0)
|
||||
TFMGTexts.Multimeter.power(getPowerUsage()).forGoggles(tooltip, 1);
|
||||
|
||||
|
||||
if (getData().group.id != -1) {
|
||||
TFMGTexts.Multimeter.separator().forGoggles(tooltip);
|
||||
@@ -240,7 +238,7 @@ public interface IElectric {
|
||||
ElectricBlockValues getData();
|
||||
|
||||
default boolean canWork() {
|
||||
return !getData().notEnoughtPower;
|
||||
return !getData().notEnoughPower;
|
||||
}
|
||||
|
||||
default void blockFail() {
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
package com.drmangotea.tfmg.content.electricity.base;
|
||||
|
||||
|
||||
import com.drmangotea.tfmg.content.electricity.utilities.diode.ElectricDiodeBlockEntity;
|
||||
import com.drmangotea.tfmg.registry.TFMGPackets;
|
||||
import com.simibubi.create.foundation.blockEntity.SmartBlockEntity;
|
||||
import com.simibubi.create.foundation.networking.BlockEntityDataPacket;
|
||||
@@ -23,7 +22,7 @@ public class UpdateInFrontPacket extends BlockEntityDataPacket<SmartBlockEntity>
|
||||
@Override
|
||||
protected void handlePacket(SmartBlockEntity blockEntity) {
|
||||
|
||||
if (blockEntity instanceof ElectricDiodeBlockEntity be) {
|
||||
if (blockEntity instanceof VoltageAlteringBlockEntity be) {
|
||||
be.updateInFrontNextTick();
|
||||
|
||||
}
|
||||
|
||||
@@ -1,17 +1,154 @@
|
||||
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.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;
|
||||
|
||||
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) {
|
||||
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;
|
||||
|
||||
import com.drmangotea.tfmg.TFMG;
|
||||
import com.drmangotea.tfmg.base.TFMGUtils;
|
||||
import com.drmangotea.tfmg.content.electricity.base.ElectricBlockEntity;
|
||||
import com.drmangotea.tfmg.content.machinery.misc.winding_machine.SpoolItem;
|
||||
import com.drmangotea.tfmg.registry.TFMGBlocks;
|
||||
import com.simibubi.create.api.equipment.goggles.IHaveHoveringInformation;
|
||||
import com.simibubi.create.foundation.blockEntity.behaviour.BlockEntityBehaviour;
|
||||
|
||||
import net.createmod.catnip.animation.AnimationTickHolder;
|
||||
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.Direction;
|
||||
import net.minecraft.core.HolderLookup;
|
||||
import net.minecraft.nbt.CompoundTag;
|
||||
import net.minecraft.network.chat.Component;
|
||||
import net.minecraft.world.entity.item.ItemEntity;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.level.block.entity.BlockEntityType;
|
||||
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.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
import static com.drmangotea.tfmg.base.blocks.WallMountBlock.FACING;
|
||||
@@ -60,7 +69,7 @@ public class CableConnectorBlockEntity extends ElectricBlockEntity implements IH
|
||||
|
||||
@Override
|
||||
public boolean hasElectricitySlot(Direction direction) {
|
||||
if(getBlockState().getValue(EXTENSION))
|
||||
if (getBlockState().getValue(EXTENSION))
|
||||
return direction.getAxis() == getBlockState().getValue(FACING).getAxis();
|
||||
|
||||
return direction == getBlockState().getValue(FACING).getOpposite();
|
||||
@@ -68,17 +77,17 @@ public class CableConnectorBlockEntity extends ElectricBlockEntity implements IH
|
||||
|
||||
public void notifyRemoval() {
|
||||
|
||||
if(level.isClientSide)
|
||||
if (level.isClientSide)
|
||||
return;
|
||||
|
||||
for (CableConnection connection : connections) {
|
||||
ItemEntity itemToDrop = new ItemEntity(level, getBlockPos().getX() + 0.5f, getBlockPos().getY() + 0.5f, getBlockPos().getZ() + 0.5f, new ItemStack(connection.type.getSpool().get(), (int) (connection.getLength()/8)));
|
||||
ItemEntity itemToDrop = new ItemEntity(level, getBlockPos().getX() + 0.5f, getBlockPos().getY() + 0.5f, getBlockPos().getZ() + 0.5f, new ItemStack(connection.type.getSpool().get(), (int) (connection.getLength() / 8)));
|
||||
if (itemToDrop.getItem().getCount() > 0) {
|
||||
level.addFreshEntity(itemToDrop);
|
||||
}
|
||||
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 (be.getBlockPos() == getBlockPos())
|
||||
continue;
|
||||
@@ -89,23 +98,22 @@ public class CableConnectorBlockEntity extends ElectricBlockEntity implements IH
|
||||
}
|
||||
}
|
||||
|
||||
//@Override
|
||||
//public float resistance() {
|
||||
// float resistance = 0;
|
||||
//@Override
|
||||
//public float resistance() {
|
||||
// float resistance = 0;
|
||||
|
||||
// for(CableConnection connection : connections){
|
||||
// if(connection.visible){
|
||||
// resistance+=connection.type.resistivity*connection.getLength();
|
||||
// }
|
||||
// }
|
||||
// for(CableConnection connection : connections){
|
||||
// if(connection.visible){
|
||||
// resistance+=connection.type.resistivity*connection.getLength();
|
||||
// }
|
||||
// }
|
||||
|
||||
// return resistance;
|
||||
//}
|
||||
// return resistance;
|
||||
//}
|
||||
|
||||
|
||||
|
||||
public void removeConnection(){
|
||||
connections.removeIf(c->{
|
||||
public void removeConnection() {
|
||||
connections.removeIf(c -> {
|
||||
BlockPos pos = c.blockPos1;
|
||||
|
||||
return !(level.getBlockEntity(pos) instanceof CableConnectorBlockEntity);
|
||||
@@ -118,7 +126,7 @@ public class CableConnectorBlockEntity extends ElectricBlockEntity implements IH
|
||||
public void onConnected() {
|
||||
super.onConnected();
|
||||
|
||||
for(CableConnectorBlockEntity be : getConnectedWires()){
|
||||
for (CableConnectorBlockEntity be : getConnectedWires()) {
|
||||
|
||||
if (be.getData().getId() != getData().getId()) {
|
||||
be.setNetwork(getData().getId());
|
||||
@@ -130,17 +138,19 @@ public class CableConnectorBlockEntity extends ElectricBlockEntity implements IH
|
||||
sendStuff();
|
||||
|
||||
}
|
||||
public List<CableConnectorBlockEntity> getConnectedWires(){
|
||||
|
||||
public List<CableConnectorBlockEntity> getConnectedWires() {
|
||||
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);
|
||||
}
|
||||
|
||||
for(CableConnection connection : connections){
|
||||
for (CableConnection connection : connections) {
|
||||
BlockPos pos = connection.blockPos1;
|
||||
|
||||
|
||||
@@ -148,19 +158,14 @@ public class CableConnectorBlockEntity extends ElectricBlockEntity implements IH
|
||||
//level.setBlockAndUpdate(pos2.above(2), Blocks.DIAMOND_BLOCK.defaultBlockState());
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
if(pos ==getBlockPos()){
|
||||
if (pos == getBlockPos()) {
|
||||
continue;
|
||||
}
|
||||
// TFMGUtils.debugMessage(level, "Eﴤ "+connections.size());
|
||||
}
|
||||
// TFMGUtils.debugMessage(level, "Eﴤ "+connections.size());
|
||||
|
||||
|
||||
if(level.getBlockEntity(pos) instanceof CableConnectorBlockEntity be&&!foundList.contains(be)){
|
||||
// TFMGUtils.debugMessage(level, "Bﴤ "+connections.size());
|
||||
if (level.getBlockEntity(pos) instanceof CableConnectorBlockEntity be && !foundList.contains(be)) {
|
||||
// TFMGUtils.debugMessage(level, "Bﴤ "+connections.size());
|
||||
be.getConnectedWires(foundList);
|
||||
sendStuff();
|
||||
be.sendStuff();
|
||||
@@ -172,11 +177,10 @@ public class CableConnectorBlockEntity extends ElectricBlockEntity implements IH
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public void tick() {
|
||||
super.tick();
|
||||
if(removeWiresNextTick) {
|
||||
if (removeWiresNextTick) {
|
||||
|
||||
removeConnection();
|
||||
removeWiresNextTick = false;
|
||||
@@ -189,12 +193,11 @@ public class CableConnectorBlockEntity extends ElectricBlockEntity implements IH
|
||||
|
||||
@Override
|
||||
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());
|
||||
|
||||
|
||||
|
||||
for (int i = 0; i < connections.size(); i++) {
|
||||
CableConnection connection = connections.get(i);
|
||||
compound.put("Connection" + i, connection.saveConnection());
|
||||
@@ -211,7 +214,7 @@ public class CableConnectorBlockEntity extends ElectricBlockEntity implements IH
|
||||
|
||||
@Override
|
||||
protected void read(CompoundTag compound, HolderLookup.Provider registries, boolean clientPacket) {
|
||||
super.read(compound,registries , clientPacket);
|
||||
super.read(compound, registries, clientPacket);
|
||||
|
||||
connections = new ArrayList<>();
|
||||
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);
|
||||
}
|
||||
|
||||
@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
|
||||
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.TFMGShapes;
|
||||
import com.drmangotea.tfmg.content.electricity.base.IElectric;
|
||||
import com.drmangotea.tfmg.content.electricity.base.IVoltageChanger;
|
||||
import com.drmangotea.tfmg.content.electricity.base.VoltageAlteringBlockEntity;
|
||||
import com.drmangotea.tfmg.registry.TFMGBlockEntities;
|
||||
import com.simibubi.create.content.decoration.encasing.EncasableBlock;
|
||||
import com.simibubi.create.foundation.block.IBE;
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.world.InteractionHand;
|
||||
import net.minecraft.world.InteractionResult;
|
||||
import net.minecraft.world.ItemInteractionResult;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
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.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_) {
|
||||
super(p_54120_);
|
||||
}
|
||||
@@ -54,12 +54,12 @@ public class ElectricDiodeBlock extends TFMGDirectionalBlock implements IBE<Elec
|
||||
|
||||
|
||||
@Override
|
||||
public Class<ElectricDiodeBlockEntity> getBlockEntityClass() {
|
||||
return ElectricDiodeBlockEntity.class;
|
||||
public Class<VoltageAlteringBlockEntity> getBlockEntityClass() {
|
||||
return VoltageAlteringBlockEntity.class;
|
||||
}
|
||||
|
||||
@Override
|
||||
public BlockEntityType<? extends ElectricDiodeBlockEntity> getBlockEntityType() {
|
||||
public BlockEntityType<? extends VoltageAlteringBlockEntity> getBlockEntityType() {
|
||||
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.content.electricity.base.IElectric;
|
||||
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.TFMGBlocks;
|
||||
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.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_) {
|
||||
super(p_54120_);
|
||||
}
|
||||
@@ -59,12 +60,12 @@ public class EncasedDiodeBlock extends TFMGDirectionalBlock implements IBE<Elect
|
||||
}
|
||||
|
||||
@Override
|
||||
public Class<ElectricDiodeBlockEntity> getBlockEntityClass() {
|
||||
return ElectricDiodeBlockEntity.class;
|
||||
public Class<VoltageAlteringBlockEntity> getBlockEntityClass() {
|
||||
return VoltageAlteringBlockEntity.class;
|
||||
}
|
||||
|
||||
@Override
|
||||
public BlockEntityType<? extends ElectricDiodeBlockEntity> getBlockEntityType() {
|
||||
public BlockEntityType<? extends VoltageAlteringBlockEntity> getBlockEntityType() {
|
||||
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.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.utilities.diode.ElectricDiodeBlockEntity;
|
||||
import com.drmangotea.tfmg.content.electricity.base.VoltageAlteringBlockEntity;
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.core.Direction;
|
||||
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;
|
||||
|
||||
public class ElectricSwitchBlockEntity extends ElectricDiodeBlockEntity {
|
||||
public class ElectricSwitchBlockEntity extends VoltageAlteringBlockEntity {
|
||||
|
||||
int signal;
|
||||
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.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.TFMGShapes;
|
||||
@@ -9,7 +9,6 @@ import com.simibubi.create.content.decoration.encasing.EncasableBlock;
|
||||
import com.simibubi.create.foundation.block.IBE;
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.world.InteractionHand;
|
||||
import net.minecraft.world.InteractionResult;
|
||||
import net.minecraft.world.ItemInteractionResult;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
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.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.simibubi.create.content.kinetics.base.DirectionalKineticBlock;
|
||||
import com.simibubi.create.foundation.blockEntity.behaviour.BlockEntityBehaviour;
|
||||
import com.simibubi.create.foundation.blockEntity.behaviour.ValueBoxTransform;
|
||||
import com.simibubi.create.foundation.blockEntity.behaviour.scrollValue.ScrollValueBehaviour;
|
||||
import com.simibubi.create.foundation.utility.CreateLang;
|
||||
import dev.engine_room.flywheel.lib.transform.TransformStack;
|
||||
import net.createmod.catnip.math.AngleHelper;
|
||||
import net.createmod.catnip.math.VecHelper;
|
||||
@@ -22,7 +21,7 @@ import net.minecraft.world.phys.Vec3;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class PotentiometerBlockEntity extends ElectricDiodeBlockEntity {
|
||||
public class PotentiometerBlockEntity extends VoltageAlteringBlockEntity {
|
||||
|
||||
|
||||
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.registry.TFMGDataComponents;
|
||||
import com.simibubi.create.foundation.utility.CreateLang;
|
||||
import net.minecraft.ChatFormatting;
|
||||
import net.minecraft.network.chat.Component;
|
||||
import net.minecraft.world.item.Item;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.item.TooltipFlag;
|
||||
import net.minecraft.world.level.Level;
|
||||
import net.neoforged.api.distmarker.Dist;
|
||||
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.TFMGShapes;
|
||||
@@ -8,8 +8,8 @@ import com.drmangotea.tfmg.registry.TFMGBlockEntities;
|
||||
import com.drmangotea.tfmg.registry.TFMGItems;
|
||||
import com.simibubi.create.foundation.block.IBE;
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.world.InteractionHand;
|
||||
import net.minecraft.world.InteractionResult;
|
||||
import net.minecraft.world.ItemInteractionResult;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
@@ -34,34 +34,37 @@ public class TransformerBlock extends TFMGHorizontalDirectionalBlock implements
|
||||
|
||||
@Override
|
||||
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){
|
||||
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(be.primaryCoil.isEmpty()) {
|
||||
be.primaryCoil = inHand;
|
||||
player.setItemInHand(hand,ItemStack.EMPTY);
|
||||
withBlockEntityDo(level, pos, TransformerBlockEntity::updateCoils);
|
||||
return ItemInteractionResult.SUCCESS;
|
||||
}
|
||||
if(be.secondaryCoil.isEmpty()) {
|
||||
be.secondaryCoil = inHand;
|
||||
if(coil.isEmpty()) {
|
||||
if(primary){
|
||||
be.primaryCoil = inHand;
|
||||
}else be.secondaryCoil = inHand;
|
||||
player.setItemInHand(hand,ItemStack.EMPTY);
|
||||
withBlockEntityDo(level, pos, TransformerBlockEntity::updateCoils);
|
||||
return ItemInteractionResult.SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
}else if(inHand.isEmpty()){
|
||||
if(!be.primaryCoil.isEmpty()) {
|
||||
player.setItemInHand(hand,be.primaryCoil);
|
||||
be.primaryCoil = ItemStack.EMPTY;
|
||||
withBlockEntityDo(level, pos, TransformerBlockEntity::updateCoils);
|
||||
return ItemInteractionResult.SUCCESS;
|
||||
}
|
||||
if(!be.secondaryCoil.isEmpty()) {
|
||||
player.setItemInHand(hand,be.secondaryCoil);
|
||||
be.secondaryCoil = ItemStack.EMPTY;
|
||||
if(!coil.isEmpty()) {
|
||||
player.setItemInHand(hand,coil);
|
||||
if(primary){
|
||||
be.primaryCoil = ItemStack.EMPTY;
|
||||
}else be.secondaryCoil = ItemStack.EMPTY;
|
||||
withBlockEntityDo(level, pos, TransformerBlockEntity::updateCoils);
|
||||
|
||||
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.blocks.TFMGHorizontalDirectionalBlock;
|
||||
import com.drmangotea.tfmg.base.TFMGUtils;
|
||||
import com.drmangotea.tfmg.base.lang.TFMGTexts;
|
||||
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.TFMGBlocks;
|
||||
import com.drmangotea.tfmg.registry.TFMGDataComponents;
|
||||
import com.drmangotea.tfmg.registry.TFMGPackets;
|
||||
import com.simibubi.create.foundation.utility.CreateLang;
|
||||
import net.createmod.catnip.platform.CatnipServices;
|
||||
import net.minecraft.ChatFormatting;
|
||||
import com.drmangotea.tfmg.registry.TFMGItems;
|
||||
import com.simibubi.create.AllBlocks;
|
||||
import com.simibubi.create.AllItems;
|
||||
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.Direction;
|
||||
import net.minecraft.core.HolderLookup;
|
||||
import net.minecraft.nbt.CompoundTag;
|
||||
import net.minecraft.network.chat.Component;
|
||||
import net.minecraft.server.level.ServerLevel;
|
||||
import net.minecraft.world.entity.item.ItemEntity;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.level.ChunkPos;
|
||||
import net.minecraft.world.level.block.DirectionalBlock;
|
||||
import net.minecraft.world.level.block.HorizontalDirectionalBlock;
|
||||
import net.minecraft.world.item.Items;
|
||||
import net.minecraft.world.level.Level;
|
||||
import net.minecraft.world.level.block.entity.BlockEntityType;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import net.minecraft.world.phys.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 static net.minecraft.world.level.block.HorizontalDirectionalBlock.FACING;
|
||||
@@ -53,15 +67,6 @@ public class TransformerBlockEntity extends VoltageAlteringBlockEntity {
|
||||
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
|
||||
public void tick() {
|
||||
super.tick();
|
||||
@@ -144,13 +149,6 @@ public class TransformerBlockEntity extends VoltageAlteringBlockEntity {
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
public Direction getDirection(){
|
||||
if(!getBlockState().hasProperty(DirectionalBlock.FACING)){
|
||||
return getBlockState().getValue(TFMGHorizontalDirectionalBlock.FACING).getCounterClockWise();
|
||||
}
|
||||
|
||||
return getBlockState().getValue(DirectionalBlock.FACING);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasElectricitySlot(Direction direction) {
|
||||
@@ -186,20 +184,8 @@ public class TransformerBlockEntity extends VoltageAlteringBlockEntity {
|
||||
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
|
||||
protected void write(CompoundTag compound, HolderLookup.Provider registries, boolean clientPacket) {
|
||||
super.write(compound,registries , clientPacket);
|
||||
@@ -226,4 +212,48 @@ public class TransformerBlockEntity extends VoltageAlteringBlockEntity {
|
||||
|
||||
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.mojang.blaze3d.vertex.PoseStack;
|
||||
@@ -1,6 +1,5 @@
|
||||
package com.drmangotea.tfmg.content.electricity.storage;
|
||||
|
||||
import com.drmangotea.tfmg.base.TFMGUtils;
|
||||
import com.drmangotea.tfmg.base.lang.TFMGTexts;
|
||||
import com.drmangotea.tfmg.config.TFMGConfigs;
|
||||
import com.drmangotea.tfmg.content.electricity.base.ElectricBlockEntity;
|
||||
@@ -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.registry.TFMGBlockEntities;
|
||||
import com.drmangotea.tfmg.registry.TFMGDataComponents;
|
||||
import com.simibubi.create.foundation.utility.CreateLang;
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.core.HolderLookup;
|
||||
@@ -277,7 +275,7 @@ public class AccumulatorBlockEntity extends ElectricBlockEntity {
|
||||
public int getChargingRate() {
|
||||
//
|
||||
// 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 Math.min(chargingRate, getMaxChargingRate());
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
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.TFMGTexts;
|
||||
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.storage.AccumulatorBlockEntity;
|
||||
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.simibubi.create.foundation.blockEntity.behaviour.BlockEntityBehaviour;
|
||||
import com.simibubi.create.foundation.blockEntity.behaviour.ValueBoxTransform;
|
||||
import com.simibubi.create.foundation.blockEntity.behaviour.scrollValue.ScrollValueBehaviour;
|
||||
|
||||
import com.simibubi.create.foundation.utility.CreateLang;
|
||||
import net.createmod.catnip.math.VecHelper;
|
||||
import net.minecraft.ChatFormatting;
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.core.Direction;
|
||||
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.RegisterCapabilitiesEvent;
|
||||
import net.neoforged.neoforge.energy.IEnergyStorage;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -134,7 +126,7 @@ public class ConverterBlockEntity extends ElectricBlockEntity {
|
||||
public int getChargingRate() {
|
||||
//
|
||||
// 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 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
|
||||
public float calculateAddedStressCapacity() {
|
||||
float speedModifier = getSpeed()/256;
|
||||
float speedModifier = Math.abs(getSpeed()/256);
|
||||
|
||||
|
||||
return (int)(super.calculateAddedStressCapacity()*speedModifier);
|
||||
|
||||
@@ -39,18 +39,14 @@ public class EngineCTBehavior extends ConnectedTextureBehaviour.Base {
|
||||
|
||||
@Override
|
||||
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){
|
||||
// if(be.controller.asLong()==be2.controller.asLong())
|
||||
// return true;
|
||||
//}
|
||||
// return false;
|
||||
return true;
|
||||
return reader.getBlockEntity(pos) instanceof AbstractEngineBlockEntity be && reader.getBlockEntity(otherPos) instanceof AbstractEngineBlockEntity be2;
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Direction getUpDirection(BlockAndTintGetter reader, BlockPos pos, BlockState state, Direction face) {
|
||||
if(face.getAxis().isVertical())
|
||||
return state.getValue(HORIZONTAL_FACING);
|
||||
return state.getValue(EngineBlock.SHAFT_FACING);
|
||||
return super.getUpDirection(reader, pos, state, face);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -601,65 +601,69 @@ public abstract class AbstractSmallEngineBlockEntity extends AbstractEngineBlock
|
||||
|
||||
public void connect() {
|
||||
|
||||
try {
|
||||
Direction facing = getBlockState().getValue(HORIZONTAL_FACING);
|
||||
Direction updateDirection = facing.getOpposite();
|
||||
|
||||
Direction facing = getBlockState().getValue(HORIZONTAL_FACING);
|
||||
Direction updateDirection = facing.getOpposite();
|
||||
|
||||
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));
|
||||
if (level.getBlockEntity(getBlockPos().relative(facing)) instanceof AbstractSmallEngineBlockEntity be && be.getBlockState().getBlock() == this.getBlockState().getBlock()) {
|
||||
be.connect();
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
updateGeneratedRotation();
|
||||
updateRotation();
|
||||
setChanged();
|
||||
sendData();
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
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));
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public int getUseDuration(ItemStack stack, LivingEntity entity) {
|
||||
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.Objects;
|
||||
|
||||
import static com.drmangotea.tfmg.base.blocks.WallMountBlock.FACING;
|
||||
import static com.simibubi.create.foundation.utility.Debug.debugMessage;
|
||||
|
||||
public class SpoolItem extends Item {
|
||||
@@ -113,8 +114,19 @@ public class SpoolItem extends Item {
|
||||
|
||||
if(Objects.equals(cableTypeKey, TFMG.asResource("empty")))
|
||||
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(stack.get(TFMGDataComponents.POSITION)!=null){
|
||||
BlockPos posToConnect = BlockPos.of(stack.get(TFMGDataComponents.POSITION));
|
||||
if(posToConnect.equals(pos)){
|
||||
@@ -127,7 +139,13 @@ public class SpoolItem extends Item {
|
||||
be.setChanged();
|
||||
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) {
|
||||
//CableConnectorBlockEntity connectedBe1 = pos.asLong()>posToConnect.asLong() ? otherBE : be;
|
||||
//CableConnectorBlockEntity connectedBe2= pos.asLong()>posToConnect.asLong() ? be : otherBE;
|
||||
|
||||
@@ -1804,6 +1804,31 @@ public class TFMGStandardRecipeGen extends TFMGRecipeProvider {
|
||||
.pattern(" B ")
|
||||
.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)
|
||||
.unlockedBy(TFMGBlocks.LIGHT_BULB::get)
|
||||
.viaShaped(b -> b
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package com.drmangotea.tfmg.datagen.recipes.values.create;
|
||||
|
||||
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.TFMGFluids;
|
||||
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.data.PackOutput;
|
||||
import net.minecraft.tags.ItemTags;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.item.Items;
|
||||
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
|
||||
import static com.drmangotea.tfmg.datagen.recipes.TFMGRecipeProvider.F.*;
|
||||
import static com.drmangotea.tfmg.registry.TFMGDataComponents.AMOUNT;
|
||||
|
||||
|
||||
public class TFMGFillingRecipeGen extends FillingRecipeGen {
|
||||
@@ -85,11 +88,23 @@ public class TFMGFillingRecipeGen extends FillingRecipeGen {
|
||||
.require(Items.BUCKET)
|
||||
.require(hotAir(), 1000)
|
||||
.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) {
|
||||
super(generator, registries,TFMG.MOD_ID);
|
||||
super(generator, registries, TFMG.MOD_ID);
|
||||
}
|
||||
|
||||
@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.SteelTankBlockEntity;
|
||||
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.CableConnectorRenderer;
|
||||
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.storage.AccumulatorBlockEntity;
|
||||
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_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.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.segmented_display.SegmentedDisplayBlockEntity;
|
||||
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.TrafficLightRenderer;
|
||||
import com.drmangotea.tfmg.content.electricity.utilities.transformer.TransformerBlockEntity;
|
||||
import com.drmangotea.tfmg.content.electricity.utilities.transformer.TransformerRenderer;
|
||||
import com.drmangotea.tfmg.content.electricity.network.transformer.TransformerBlockEntity;
|
||||
import com.drmangotea.tfmg.content.electricity.network.transformer.TransformerRenderer;
|
||||
import com.drmangotea.tfmg.content.electricity.utilities.voltage_observer.VoltageObserverBlockEntity;
|
||||
import com.drmangotea.tfmg.content.engines.base.EngineRenderer;
|
||||
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.firebox.FireboxBlockEntity;
|
||||
import com.drmangotea.tfmg.content.machinery.misc.flarestack.FlarestackBlockEntity;
|
||||
import com.drmangotea.tfmg.content.machinery.misc.gas_lamp.GasLampBlockEntity;
|
||||
import com.drmangotea.tfmg.content.machinery.misc.machine_input.MachineInputBlockEntity;
|
||||
import com.drmangotea.tfmg.content.machinery.misc.smokestack.SmokestackBlockEntity;
|
||||
import com.drmangotea.tfmg.content.machinery.misc.winding_machine.WindingMachineBlockEntity;
|
||||
@@ -259,8 +260,8 @@ public class TFMGBlockEntities {
|
||||
.validBlocks(TFMGBlocks.ACCUMULATOR)
|
||||
.register();
|
||||
|
||||
public static final BlockEntityEntry<ElectricDiodeBlockEntity> DIODE = REGISTRATE
|
||||
.blockEntity("electric_diode", ElectricDiodeBlockEntity::new)
|
||||
public static final BlockEntityEntry<VoltageAlteringBlockEntity> DIODE = REGISTRATE
|
||||
.blockEntity("electric_diode", VoltageAlteringBlockEntity::new)
|
||||
.validBlocks(TFMGBlocks.DIODE, TFMGBlocks.ENCASED_DIODE)
|
||||
.register();
|
||||
|
||||
@@ -279,6 +280,11 @@ public class TFMGBlockEntities {
|
||||
.validBlocks(TFMGBlocks.TURBINE_ENGINE)
|
||||
.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
|
||||
.blockEntity("large_engine", LargeEngineBlockEntity::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.utilities.converter.ConverterBlock;
|
||||
import com.drmangotea.tfmg.content.electricity.utilities.converter.ConverterGenerator;
|
||||
import com.drmangotea.tfmg.content.electricity.utilities.diode.ElectricDiodeBlock;
|
||||
import com.drmangotea.tfmg.content.electricity.utilities.diode.EncasedDiodeBlock;
|
||||
import com.drmangotea.tfmg.content.electricity.network.diode.ElectricDiodeBlock;
|
||||
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_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.potentiometer.EncasedPotentiometerBlock;
|
||||
import com.drmangotea.tfmg.content.electricity.utilities.potentiometer.PotentiometerBlock;
|
||||
import com.drmangotea.tfmg.content.electricity.network.potentiometer.EncasedPotentiometerBlock;
|
||||
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.ResistorBlockItem;
|
||||
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.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.VoltageObserverGenerator;
|
||||
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.flarestack.FlarestackBlock;
|
||||
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.smokestack.SmokestackBlock;
|
||||
import com.drmangotea.tfmg.content.machinery.misc.smokestack.SmokestackGenerator;
|
||||
@@ -1349,6 +1351,20 @@ public class TFMGBlocks {
|
||||
.transform(customItemModel())
|
||||
.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------------------//
|
||||
|
||||
public static final BlockEntry<TFMGCogWheelBlock> STEEL_COGWHEEL =
|
||||
|
||||
@@ -91,6 +91,7 @@ public class TFMGDataComponents {
|
||||
"storage",
|
||||
builder -> builder.persistent(Codec.INT).networkSynchronized(ByteBufCodecs.VAR_INT)
|
||||
);
|
||||
|
||||
public static final DataComponentType<Integer> RESISTANCE = register(
|
||||
"resistance",
|
||||
builder -> builder.persistent(Codec.INT).networkSynchronized(ByteBufCodecs.VAR_INT)
|
||||
|
||||
@@ -62,6 +62,10 @@ public class TFMGEntityTypes {
|
||||
register("lithium_spark", LithiumSpark::new, () -> SparkRenderer::new,
|
||||
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,
|
||||
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.utilities.polarizer.MagnetItem;
|
||||
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.FluidContainingItem;
|
||||
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.thermite_grenades.ThermiteGrenade;
|
||||
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.lithium_blade.LitLithiumBladeItem;
|
||||
import com.drmangotea.tfmg.content.items.weapons.lithium_blade.LithiumBladeItem;
|
||||
@@ -265,6 +266,11 @@ public class TFMGItems {
|
||||
.properties(p -> p.stacksTo(1))
|
||||
.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();
|
||||
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
{
|
||||
"format_version": "1.21.6",
|
||||
"credit": "Made with Blockbench",
|
||||
"parent": "block/block",
|
||||
"texture_size": [32, 32],
|
||||
"textures": {
|
||||
"1": "tfmg:block/converter",
|
||||
"2": "tfmg:block/heavy_machinery_casing",
|
||||
"3": "tfmg:block/transformer",
|
||||
"particle": "tfmg:block/heavy_machinery_casing"
|
||||
},
|
||||
"elements": [
|
||||
@@ -16,7 +18,7 @@
|
||||
"east": {"uv": [0, 0, 8, 3], "texture": "#1"},
|
||||
"south": {"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"}
|
||||
}
|
||||
},
|
||||
@@ -38,12 +40,12 @@
|
||||
"to": [15, 14, 11],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [11, 6, 7]},
|
||||
"faces": {
|
||||
"north": {"uv": [13, 0.5, 16, 4.5], "texture": "#1"},
|
||||
"east": {"uv": [13, 0.5, 16, 4.5], "texture": "#1"},
|
||||
"south": {"uv": [13, 0.5, 16, 4.5], "texture": "#1"},
|
||||
"west": {"uv": [13, 0.5, 16, 4.5], "texture": "#1"},
|
||||
"up": {"uv": [0, 0, 0, 0], "texture": "#1"},
|
||||
"down": {"uv": [0, 0, 0, 0], "texture": "#1"}
|
||||
"north": {"uv": [13, 0.5, 16, 4.5], "texture": "#3"},
|
||||
"east": {"uv": [13, 0.5, 16, 4.5], "texture": "#3"},
|
||||
"south": {"uv": [13, 0.5, 16, 4.5], "texture": "#3"},
|
||||
"west": {"uv": [13, 0.5, 16, 4.5], "texture": "#3"},
|
||||
"up": {"uv": [0, 0, 0, 0], "texture": "#3"},
|
||||
"down": {"uv": [0, 0, 0, 0], "texture": "#3"}
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -51,12 +53,12 @@
|
||||
"to": [5, 18, 9],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [3, 14, 7]},
|
||||
"faces": {
|
||||
"north": {"uv": [5, 6, 6, 7.5], "texture": "#1"},
|
||||
"east": {"uv": [5, 4, 6, 5.5], "texture": "#1"},
|
||||
"south": {"uv": [6, 6, 5, 7.5], "texture": "#1"},
|
||||
"west": {"uv": [5, 4, 6, 5.5], "texture": "#1"},
|
||||
"up": {"uv": [6.5, 6, 7.5, 7], "texture": "#1"},
|
||||
"down": {"uv": [0, 0, 0, 0], "texture": "#1"}
|
||||
"north": {"uv": [5, 6, 6, 7.5], "texture": "#3"},
|
||||
"east": {"uv": [5, 4, 6, 5.5], "texture": "#3"},
|
||||
"south": {"uv": [6, 6, 5, 7.5], "texture": "#3"},
|
||||
"west": {"uv": [5, 4, 6, 5.5], "texture": "#3"},
|
||||
"up": {"uv": [6.5, 6, 7.5, 7], "texture": "#3"},
|
||||
"down": {"uv": [0, 0, 0, 0], "texture": "#3"}
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -64,12 +66,12 @@
|
||||
"to": [11, 18, 9],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [5, 14, 7]},
|
||||
"faces": {
|
||||
"north": {"uv": [2, 6, 5, 7], "texture": "#1"},
|
||||
"east": {"uv": [0, 0, 0, 0], "texture": "#1"},
|
||||
"south": {"uv": [5, 6, 2, 7], "texture": "#1"},
|
||||
"west": {"uv": [0, 0, 0, 0], "texture": "#1"},
|
||||
"up": {"uv": [7.5, 6, 10.5, 7], "texture": "#1"},
|
||||
"down": {"uv": [0, 0, 6, 2], "texture": "#1"}
|
||||
"north": {"uv": [2, 6, 5, 7], "texture": "#3"},
|
||||
"east": {"uv": [0, 0, 0, 0], "texture": "#3"},
|
||||
"south": {"uv": [5, 6, 2, 7], "texture": "#3"},
|
||||
"west": {"uv": [0, 0, 0, 0], "texture": "#3"},
|
||||
"up": {"uv": [7.5, 6, 10.5, 7], "texture": "#3"},
|
||||
"down": {"uv": [0, 0, 6, 2], "texture": "#3"}
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -77,12 +79,12 @@
|
||||
"to": [13, 18, 9],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [11, 14, 7]},
|
||||
"faces": {
|
||||
"north": {"uv": [1, 6, 2, 7.5], "texture": "#1"},
|
||||
"east": {"uv": [1, 4, 2, 5.5], "texture": "#1"},
|
||||
"south": {"uv": [2, 6, 1, 7.5], "texture": "#1"},
|
||||
"west": {"uv": [5, 4, 6, 5.5], "texture": "#1"},
|
||||
"up": {"uv": [10.5, 6, 11.5, 7], "texture": "#1"},
|
||||
"down": {"uv": [0, 0, 0, 0], "texture": "#1"}
|
||||
"north": {"uv": [1, 6, 2, 7.5], "texture": "#3"},
|
||||
"east": {"uv": [1, 4, 2, 5.5], "texture": "#3"},
|
||||
"south": {"uv": [2, 6, 1, 7.5], "texture": "#3"},
|
||||
"west": {"uv": [5, 4, 6, 5.5], "texture": "#3"},
|
||||
"up": {"uv": [10.5, 6, 11.5, 7], "texture": "#3"},
|
||||
"down": {"uv": [0, 0, 0, 0], "texture": "#3"}
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -90,12 +92,12 @@
|
||||
"to": [7.5, 15, 11.5],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [0, 14, 4]},
|
||||
"faces": {
|
||||
"north": {"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"},
|
||||
"west": {"uv": [10.5, 8, 14, 8.5], "texture": "#1"},
|
||||
"up": {"uv": [10.5, 8, 14, 11.5], "texture": "#1"},
|
||||
"down": {"uv": [10.5, 8, 14, 11.5], "texture": "#1"}
|
||||
"north": {"uv": [10.5, 8, 14, 8.5], "texture": "#3"},
|
||||
"east": {"uv": [10.5, 8, 14, 8.5], "texture": "#3"},
|
||||
"south": {"uv": [10.5, 8, 14, 8.5], "texture": "#3"},
|
||||
"west": {"uv": [10.5, 8, 14, 8.5], "texture": "#3"},
|
||||
"up": {"uv": [10.5, 8, 14, 11.5], "texture": "#3"},
|
||||
"down": {"uv": [10.5, 8, 14, 11.5], "texture": "#3"}
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -103,12 +105,12 @@
|
||||
"to": [15.5, 15, 11.5],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 14, 4]},
|
||||
"faces": {
|
||||
"north": {"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"},
|
||||
"west": {"uv": [10.5, 8, 14, 8.5], "texture": "#1"},
|
||||
"up": {"uv": [10.5, 8, 14, 11.5], "texture": "#1"},
|
||||
"down": {"uv": [10.5, 8, 14, 11.5], "texture": "#1"}
|
||||
"north": {"uv": [10.5, 8, 14, 8.5], "texture": "#3"},
|
||||
"east": {"uv": [10.5, 8, 14, 8.5], "texture": "#3"},
|
||||
"south": {"uv": [10.5, 8, 14, 8.5], "texture": "#3"},
|
||||
"west": {"uv": [10.5, 8, 14, 8.5], "texture": "#3"},
|
||||
"up": {"uv": [10.5, 8, 14, 11.5], "texture": "#3"},
|
||||
"down": {"uv": [10.5, 8, 14, 11.5], "texture": "#3"}
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -116,11 +118,11 @@
|
||||
"to": [1, 10, 10],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [0, 7, 7]},
|
||||
"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"},
|
||||
"south": {"uv": [5, 3, 7, 3.5], "rotation": 90, "texture": "#1"},
|
||||
"west": {"uv": [14, 5, 16, 7], "texture": "#1"},
|
||||
"up": {"uv": [5, 3, 7, 3.5], "rotation": 90, "texture": "#1"},
|
||||
"south": {"uv": [1, 5.5, 3, 6], "rotation": 90, "texture": "#1"},
|
||||
"west": {"uv": [1, 3, 3, 5], "texture": "#1"},
|
||||
"up": {"uv": [1, 5.5, 3, 6], "rotation": 90, "texture": "#1"},
|
||||
"down": {"uv": [0, 0, 0, 0], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
{
|
||||
"format_version": "1.21.6",
|
||||
"credit": "Made with Blockbench",
|
||||
"parent": "block/block",
|
||||
"texture_size": [32, 32],
|
||||
"textures": {
|
||||
"1": "tfmg:block/converter",
|
||||
"2": "tfmg:block/heavy_machinery_casing",
|
||||
"3": "tfmg:block/transformer",
|
||||
"particle": "tfmg:block/heavy_machinery_casing"
|
||||
},
|
||||
"elements": [
|
||||
@@ -16,7 +18,7 @@
|
||||
"east": {"uv": [0, 0, 8, 3], "texture": "#1"},
|
||||
"south": {"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"}
|
||||
}
|
||||
},
|
||||
@@ -38,12 +40,12 @@
|
||||
"to": [15, 14, 11],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [11, 6, 7]},
|
||||
"faces": {
|
||||
"north": {"uv": [13, 0.5, 16, 4.5], "texture": "#1"},
|
||||
"east": {"uv": [13, 0.5, 16, 4.5], "texture": "#1"},
|
||||
"south": {"uv": [13, 0.5, 16, 4.5], "texture": "#1"},
|
||||
"west": {"uv": [13, 0.5, 16, 4.5], "texture": "#1"},
|
||||
"up": {"uv": [0, 0, 0, 0], "texture": "#1"},
|
||||
"down": {"uv": [0, 0, 0, 0], "texture": "#1"}
|
||||
"north": {"uv": [13, 0.5, 16, 4.5], "texture": "#3"},
|
||||
"east": {"uv": [13, 0.5, 16, 4.5], "texture": "#3"},
|
||||
"south": {"uv": [13, 0.5, 16, 4.5], "texture": "#3"},
|
||||
"west": {"uv": [13, 0.5, 16, 4.5], "texture": "#3"},
|
||||
"up": {"uv": [0, 0, 0, 0], "texture": "#3"},
|
||||
"down": {"uv": [0, 0, 0, 0], "texture": "#3"}
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -51,12 +53,12 @@
|
||||
"to": [5, 18, 9],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [3, 14, 7]},
|
||||
"faces": {
|
||||
"north": {"uv": [5, 6, 6, 7.5], "texture": "#1"},
|
||||
"east": {"uv": [5, 4, 6, 5.5], "texture": "#1"},
|
||||
"south": {"uv": [6, 6, 5, 7.5], "texture": "#1"},
|
||||
"west": {"uv": [5, 4, 6, 5.5], "texture": "#1"},
|
||||
"up": {"uv": [6.5, 6, 7.5, 7], "texture": "#1"},
|
||||
"down": {"uv": [0, 0, 0, 0], "texture": "#1"}
|
||||
"north": {"uv": [5, 6, 6, 7.5], "texture": "#3"},
|
||||
"east": {"uv": [5, 4, 6, 5.5], "texture": "#3"},
|
||||
"south": {"uv": [6, 6, 5, 7.5], "texture": "#3"},
|
||||
"west": {"uv": [5, 4, 6, 5.5], "texture": "#3"},
|
||||
"up": {"uv": [6.5, 6, 7.5, 7], "texture": "#3"},
|
||||
"down": {"uv": [0, 0, 0, 0], "texture": "#3"}
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -64,12 +66,12 @@
|
||||
"to": [11, 18, 9],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [5, 14, 7]},
|
||||
"faces": {
|
||||
"north": {"uv": [2, 6, 5, 7], "texture": "#1"},
|
||||
"east": {"uv": [0, 0, 0, 0], "texture": "#1"},
|
||||
"south": {"uv": [5, 6, 2, 7], "texture": "#1"},
|
||||
"west": {"uv": [0, 0, 0, 0], "texture": "#1"},
|
||||
"up": {"uv": [7.5, 6, 10.5, 7], "texture": "#1"},
|
||||
"down": {"uv": [0, 0, 6, 2], "texture": "#1"}
|
||||
"north": {"uv": [2, 6, 5, 7], "texture": "#3"},
|
||||
"east": {"uv": [0, 0, 0, 0], "texture": "#3"},
|
||||
"south": {"uv": [5, 6, 2, 7], "texture": "#3"},
|
||||
"west": {"uv": [0, 0, 0, 0], "texture": "#3"},
|
||||
"up": {"uv": [7.5, 6, 10.5, 7], "texture": "#3"},
|
||||
"down": {"uv": [0, 0, 6, 2], "texture": "#3"}
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -77,12 +79,12 @@
|
||||
"to": [13, 18, 9],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [11, 14, 7]},
|
||||
"faces": {
|
||||
"north": {"uv": [1, 6, 2, 7.5], "texture": "#1"},
|
||||
"east": {"uv": [1, 4, 2, 5.5], "texture": "#1"},
|
||||
"south": {"uv": [2, 6, 1, 7.5], "texture": "#1"},
|
||||
"west": {"uv": [5, 4, 6, 5.5], "texture": "#1"},
|
||||
"up": {"uv": [10.5, 6, 11.5, 7], "texture": "#1"},
|
||||
"down": {"uv": [0, 0, 0, 0], "texture": "#1"}
|
||||
"north": {"uv": [1, 6, 2, 7.5], "texture": "#3"},
|
||||
"east": {"uv": [1, 4, 2, 5.5], "texture": "#3"},
|
||||
"south": {"uv": [2, 6, 1, 7.5], "texture": "#3"},
|
||||
"west": {"uv": [5, 4, 6, 5.5], "texture": "#3"},
|
||||
"up": {"uv": [10.5, 6, 11.5, 7], "texture": "#3"},
|
||||
"down": {"uv": [0, 0, 0, 0], "texture": "#3"}
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -90,12 +92,12 @@
|
||||
"to": [7.5, 15, 11.5],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [0, 14, 4]},
|
||||
"faces": {
|
||||
"north": {"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"},
|
||||
"west": {"uv": [10.5, 8, 14, 8.5], "texture": "#1"},
|
||||
"up": {"uv": [10.5, 8, 14, 11.5], "texture": "#1"},
|
||||
"down": {"uv": [10.5, 8, 14, 11.5], "texture": "#1"}
|
||||
"north": {"uv": [10.5, 8, 14, 8.5], "texture": "#3"},
|
||||
"east": {"uv": [10.5, 8, 14, 8.5], "texture": "#3"},
|
||||
"south": {"uv": [10.5, 8, 14, 8.5], "texture": "#3"},
|
||||
"west": {"uv": [10.5, 8, 14, 8.5], "texture": "#3"},
|
||||
"up": {"uv": [10.5, 8, 14, 11.5], "texture": "#3"},
|
||||
"down": {"uv": [10.5, 8, 14, 11.5], "texture": "#3"}
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -103,12 +105,12 @@
|
||||
"to": [15.5, 15, 11.5],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 14, 4]},
|
||||
"faces": {
|
||||
"north": {"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"},
|
||||
"west": {"uv": [10.5, 8, 14, 8.5], "texture": "#1"},
|
||||
"up": {"uv": [10.5, 8, 14, 11.5], "texture": "#1"},
|
||||
"down": {"uv": [10.5, 8, 14, 11.5], "texture": "#1"}
|
||||
"north": {"uv": [10.5, 8, 14, 8.5], "texture": "#3"},
|
||||
"east": {"uv": [10.5, 8, 14, 8.5], "texture": "#3"},
|
||||
"south": {"uv": [10.5, 8, 14, 8.5], "texture": "#3"},
|
||||
"west": {"uv": [10.5, 8, 14, 8.5], "texture": "#3"},
|
||||
"up": {"uv": [10.5, 8, 14, 11.5], "texture": "#3"},
|
||||
"down": {"uv": [10.5, 8, 14, 11.5], "texture": "#3"}
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -116,11 +118,11 @@
|
||||
"to": [16, 10, 10],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 7, 8]},
|
||||
"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"},
|
||||
"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"},
|
||||
"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"}
|
||||
}
|
||||
},
|
||||
@@ -132,7 +134,7 @@
|
||||
"north": {"uv": [3, 5.5, 5, 6], "rotation": 90, "texture": "#1"},
|
||||
"east": {"uv": [0, 0, 0, 0], "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"},
|
||||
"down": {"uv": [0, 0, 0, 0], "rotation": 180, "texture": "#1"}
|
||||
}
|
||||
|
||||
@@ -1,10 +1,13 @@
|
||||
{
|
||||
"format_version": "1.21.6",
|
||||
"credit": "Made with Blockbench",
|
||||
"parent": "block/block",
|
||||
"texture_size": [32, 32],
|
||||
"textures": {
|
||||
"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": [
|
||||
{
|
||||
@@ -15,7 +18,7 @@
|
||||
"east": {"uv": [0, 0, 8, 3], "texture": "#1"},
|
||||
"south": {"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"}
|
||||
}
|
||||
},
|
||||
@@ -37,12 +40,12 @@
|
||||
"to": [15, 14, 11],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [11, 6, 7]},
|
||||
"faces": {
|
||||
"north": {"uv": [13, 0.5, 16, 4.5], "texture": "#1"},
|
||||
"east": {"uv": [13, 0.5, 16, 4.5], "texture": "#1"},
|
||||
"south": {"uv": [13, 0.5, 16, 4.5], "texture": "#1"},
|
||||
"west": {"uv": [13, 0.5, 16, 4.5], "texture": "#1"},
|
||||
"up": {"uv": [0, 0, 0, 0], "texture": "#1"},
|
||||
"down": {"uv": [0, 0, 0, 0], "texture": "#1"}
|
||||
"north": {"uv": [13, 0.5, 16, 4.5], "texture": "#3"},
|
||||
"east": {"uv": [13, 0.5, 16, 4.5], "texture": "#3"},
|
||||
"south": {"uv": [13, 0.5, 16, 4.5], "texture": "#3"},
|
||||
"west": {"uv": [13, 0.5, 16, 4.5], "texture": "#3"},
|
||||
"up": {"uv": [0, 0, 0, 0], "texture": "#3"},
|
||||
"down": {"uv": [0, 0, 0, 0], "texture": "#3"}
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -50,12 +53,12 @@
|
||||
"to": [5, 18, 9],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [3, 14, 7]},
|
||||
"faces": {
|
||||
"north": {"uv": [5, 6, 6, 7.5], "texture": "#1"},
|
||||
"east": {"uv": [5, 4, 6, 5.5], "texture": "#1"},
|
||||
"south": {"uv": [6, 6, 5, 7.5], "texture": "#1"},
|
||||
"west": {"uv": [5, 4, 6, 5.5], "texture": "#1"},
|
||||
"up": {"uv": [6.5, 6, 7.5, 7], "texture": "#1"},
|
||||
"down": {"uv": [0, 0, 0, 0], "texture": "#1"}
|
||||
"north": {"uv": [5, 6, 6, 7.5], "texture": "#3"},
|
||||
"east": {"uv": [5, 4, 6, 5.5], "texture": "#3"},
|
||||
"south": {"uv": [6, 6, 5, 7.5], "texture": "#3"},
|
||||
"west": {"uv": [5, 4, 6, 5.5], "texture": "#3"},
|
||||
"up": {"uv": [6.5, 6, 7.5, 7], "texture": "#3"},
|
||||
"down": {"uv": [0, 0, 0, 0], "texture": "#3"}
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -63,12 +66,12 @@
|
||||
"to": [11, 18, 9],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [5, 14, 7]},
|
||||
"faces": {
|
||||
"north": {"uv": [2, 6, 5, 7], "texture": "#1"},
|
||||
"east": {"uv": [0, 0, 0, 0], "texture": "#1"},
|
||||
"south": {"uv": [5, 6, 2, 7], "texture": "#1"},
|
||||
"west": {"uv": [0, 0, 0, 0], "texture": "#1"},
|
||||
"up": {"uv": [7.5, 6, 10.5, 7], "texture": "#1"},
|
||||
"down": {"uv": [0, 0, 6, 2], "texture": "#1"}
|
||||
"north": {"uv": [2, 6, 5, 7], "texture": "#3"},
|
||||
"east": {"uv": [0, 0, 0, 0], "texture": "#3"},
|
||||
"south": {"uv": [5, 6, 2, 7], "texture": "#3"},
|
||||
"west": {"uv": [0, 0, 0, 0], "texture": "#3"},
|
||||
"up": {"uv": [7.5, 6, 10.5, 7], "texture": "#3"},
|
||||
"down": {"uv": [0, 0, 6, 2], "texture": "#3"}
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -76,12 +79,12 @@
|
||||
"to": [13, 18, 9],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [11, 14, 7]},
|
||||
"faces": {
|
||||
"north": {"uv": [1, 6, 2, 7.5], "texture": "#1"},
|
||||
"east": {"uv": [1, 4, 2, 5.5], "texture": "#1"},
|
||||
"south": {"uv": [2, 6, 1, 7.5], "texture": "#1"},
|
||||
"west": {"uv": [5, 4, 6, 5.5], "texture": "#1"},
|
||||
"up": {"uv": [10.5, 6, 11.5, 7], "texture": "#1"},
|
||||
"down": {"uv": [0, 0, 0, 0], "texture": "#1"}
|
||||
"north": {"uv": [1, 6, 2, 7.5], "texture": "#3"},
|
||||
"east": {"uv": [1, 4, 2, 5.5], "texture": "#3"},
|
||||
"south": {"uv": [2, 6, 1, 7.5], "texture": "#3"},
|
||||
"west": {"uv": [5, 4, 6, 5.5], "texture": "#3"},
|
||||
"up": {"uv": [10.5, 6, 11.5, 7], "texture": "#3"},
|
||||
"down": {"uv": [0, 0, 0, 0], "texture": "#3"}
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -89,12 +92,12 @@
|
||||
"to": [7.5, 15, 11.5],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [0, 14, 4]},
|
||||
"faces": {
|
||||
"north": {"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"},
|
||||
"west": {"uv": [10.5, 8, 14, 8.5], "texture": "#1"},
|
||||
"up": {"uv": [10.5, 8, 14, 11.5], "texture": "#1"},
|
||||
"down": {"uv": [10.5, 8, 14, 11.5], "texture": "#1"}
|
||||
"north": {"uv": [10.5, 8, 14, 8.5], "texture": "#3"},
|
||||
"east": {"uv": [10.5, 8, 14, 8.5], "texture": "#3"},
|
||||
"south": {"uv": [10.5, 8, 14, 8.5], "texture": "#3"},
|
||||
"west": {"uv": [10.5, 8, 14, 8.5], "texture": "#3"},
|
||||
"up": {"uv": [10.5, 8, 14, 11.5], "texture": "#3"},
|
||||
"down": {"uv": [10.5, 8, 14, 11.5], "texture": "#3"}
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -102,12 +105,12 @@
|
||||
"to": [15.5, 15, 11.5],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 14, 4]},
|
||||
"faces": {
|
||||
"north": {"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"},
|
||||
"west": {"uv": [10.5, 8, 14, 8.5], "texture": "#1"},
|
||||
"up": {"uv": [10.5, 8, 14, 11.5], "texture": "#1"},
|
||||
"down": {"uv": [10.5, 8, 14, 11.5], "texture": "#1"}
|
||||
"north": {"uv": [10.5, 8, 14, 8.5], "texture": "#3"},
|
||||
"east": {"uv": [10.5, 8, 14, 8.5], "texture": "#3"},
|
||||
"south": {"uv": [10.5, 8, 14, 8.5], "texture": "#3"},
|
||||
"west": {"uv": [10.5, 8, 14, 8.5], "texture": "#3"},
|
||||
"up": {"uv": [10.5, 8, 14, 11.5], "texture": "#3"},
|
||||
"down": {"uv": [10.5, 8, 14, 11.5], "texture": "#3"}
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -115,11 +118,11 @@
|
||||
"to": [1, 10, 10],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [0, 7, 7]},
|
||||
"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"},
|
||||
"south": {"uv": [5, 3, 7, 3.5], "rotation": 90, "texture": "#1"},
|
||||
"west": {"uv": [14, 5, 16, 7], "texture": "#1"},
|
||||
"up": {"uv": [5, 3, 7, 3.5], "rotation": 90, "texture": "#1"},
|
||||
"south": {"uv": [1, 5.5, 3, 6], "rotation": 90, "texture": "#1"},
|
||||
"west": {"uv": [1, 3, 3, 5], "texture": "#1"},
|
||||
"up": {"uv": [1, 5.5, 3, 6], "rotation": 90, "texture": "#1"},
|
||||
"down": {"uv": [0, 0, 0, 0], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
{
|
||||
"format_version": "1.21.6",
|
||||
"credit": "Made with Blockbench",
|
||||
"parent": "block/block",
|
||||
"texture_size": [32, 32],
|
||||
@@ -113,7 +114,7 @@
|
||||
"to": [14, 12, 14],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [5, 5, 4]},
|
||||
"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"},
|
||||
"south": {"uv": [0, 12, 6, 15.5], "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],
|
||||
"rotation": {"angle": 45, "axis": "y", "origin": [8, 8, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 10, 10, 11.5], "texture": "#0"},
|
||||
"east": {"uv": [0, 10, 10, 11.5], "texture": "#0"},
|
||||
"south": {"uv": [0, 10, 10, 11.5], "texture": "#0"},
|
||||
"west": {"uv": [0, 10, 10, 11.5], "texture": "#0"},
|
||||
"north": {"uv": [0, 11, 10, 12.5], "texture": "#0"},
|
||||
"east": {"uv": [0, 11, 10, 12.5], "texture": "#0"},
|
||||
"south": {"uv": [0, 11, 10, 12.5], "texture": "#0"},
|
||||
"west": {"uv": [0, 11, 10, 12.5], "texture": "#0"},
|
||||
"up": {"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",
|
||||
"parent": "create:block/large_wheels",
|
||||
"texture_size": [32, 32],
|
||||
@@ -13,12 +14,12 @@
|
||||
"to": [18, 9.375, 18],
|
||||
"rotation": {"angle": 45, "axis": "y", "origin": [8, 8, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 10, 10, 11.5], "texture": "#0"},
|
||||
"east": {"uv": [0, 10, 10, 11.5], "texture": "#0"},
|
||||
"south": {"uv": [0, 10, 10, 11.5], "texture": "#0"},
|
||||
"west": {"uv": [0, 10, 10, 11.5], "texture": "#0"},
|
||||
"up": {"uv": [0, 0, 10, 10], "texture": "#0"},
|
||||
"down": {"uv": [0, 0, 10, 10], "texture": "#0"}
|
||||
"north": {"uv": [0, 11, 10, 12.5], "texture": "#0"},
|
||||
"east": {"uv": [0, 11, 10, 12.5], "texture": "#0"},
|
||||
"south": {"uv": [0, 11, 10, 12.5], "texture": "#0"},
|
||||
"west": {"uv": [0, 11, 10, 12.5], "texture": "#0"},
|
||||
"up": {"uv": [0, 0.5, 10, 10.5], "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"},
|
||||
"south": {"uv": [0, 13, 15, 14.5], "texture": "#0"},
|
||||
"west": {"uv": [10, 9.5, 11.5, 11], "texture": "#0"},
|
||||
"up": {"uv": [0, 11.5, 15, 13], "texture": "#0"},
|
||||
"down": {"uv": [0, 11.5, 15, 13], "texture": "#0"}
|
||||
"up": {"uv": [0, 13, 15, 14.5], "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"},
|
||||
"south": {"uv": [0, 13, 15, 14.5], "texture": "#0"},
|
||||
"west": {"uv": [10, 9.5, 11.5, 11], "texture": "#0"},
|
||||
"up": {"uv": [0, 11.5, 15, 13], "texture": "#0"},
|
||||
"down": {"uv": [0, 11.5, 15, 13], "texture": "#0"}
|
||||
"up": {"uv": [0, 13, 15, 14.5], "texture": "#0"},
|
||||
"down": {"uv": [0, 13, 15, 14.5], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -59,8 +60,8 @@
|
||||
"east": {"uv": [0, 13, 15, 14.5], "texture": "#0"},
|
||||
"south": {"uv": [10, 9.5, 11.5, 11], "texture": "#0"},
|
||||
"west": {"uv": [0, 13, 15, 14.5], "texture": "#0"},
|
||||
"up": {"uv": [0, 11.5, 15, 13], "rotation": 90, "texture": "#0"},
|
||||
"down": {"uv": [0, 11.5, 15, 13], "rotation": 90, "texture": "#0"}
|
||||
"up": {"uv": [0, 13, 15, 14.5], "rotation": 90, "texture": "#0"},
|
||||
"down": {"uv": [0, 13, 15, 14.5], "rotation": 90, "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -68,12 +69,12 @@
|
||||
"from": [-2, 6.6, -2],
|
||||
"to": [18, 9.4, 18],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 10, 10, 11.5], "texture": "#0"},
|
||||
"east": {"uv": [0, 10, 10, 11.5], "texture": "#0"},
|
||||
"south": {"uv": [0, 10, 10, 11.5], "texture": "#0"},
|
||||
"west": {"uv": [0, 10, 10, 11.5], "texture": "#0"},
|
||||
"up": {"uv": [0, 0, 10, 10], "texture": "#0"},
|
||||
"down": {"uv": [0, 0, 10, 10], "texture": "#0"}
|
||||
"north": {"uv": [0, 11, 10, 12.5], "texture": "#0"},
|
||||
"east": {"uv": [0, 11, 10, 12.5], "texture": "#0"},
|
||||
"south": {"uv": [0, 11, 10, 12.5], "texture": "#0"},
|
||||
"west": {"uv": [0, 11, 10, 12.5], "texture": "#0"},
|
||||
"up": {"uv": [0, 0.5, 10, 10.5], "texture": "#0"},
|
||||
"down": {"uv": [0, 0.5, 10, 10.5], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -81,12 +82,12 @@
|
||||
"from": [0, 4.975, 0],
|
||||
"to": [16, 11.025, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [10, 0, 12.5, 8], "rotation": 90, "texture": "#0"},
|
||||
"east": {"uv": [10, 0, 12.5, 8], "rotation": 90, "texture": "#0"},
|
||||
"south": {"uv": [10, 0, 12.5, 8], "rotation": 90, "texture": "#0"},
|
||||
"west": {"uv": [10, 0, 12.5, 8], "rotation": 90, "texture": "#0"},
|
||||
"up": {"uv": [1, 1, 9, 9], "texture": "#0"},
|
||||
"down": {"uv": [1, 1, 9, 9], "texture": "#0"}
|
||||
"north": {"uv": [10.5, 0.5, 13.525, 8.5], "rotation": 90, "texture": "#0"},
|
||||
"east": {"uv": [10.5, 0.5, 13.525, 8.5], "rotation": 90, "texture": "#0"},
|
||||
"south": {"uv": [10.5, 0.5, 13.525, 8.5], "rotation": 90, "texture": "#0"},
|
||||
"west": {"uv": [10.5, 0.5, 13.525, 8.5], "rotation": 90, "texture": "#0"},
|
||||
"up": {"uv": [1, 1.5, 9, 9.5], "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"},
|
||||
"south": {"uv": [10, 9.5, 11.5, 11], "texture": "#0"},
|
||||
"west": {"uv": [0, 13, 15, 14.5], "texture": "#0"},
|
||||
"up": {"uv": [0, 11.5, 15, 13], "rotation": 90, "texture": "#0"},
|
||||
"down": {"uv": [0, 11.5, 15, 13], "rotation": 90, "texture": "#0"}
|
||||
"up": {"uv": [0, 13, 15, 14.5], "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"},
|
||||
"south": {"uv": [0, 13, 15, 14.5], "texture": "#0"},
|
||||
"west": {"uv": [10, 9.5, 11.5, 11], "texture": "#0"},
|
||||
"up": {"uv": [0, 11.5, 15, 13], "texture": "#0"},
|
||||
"down": {"uv": [0, 11.5, 15, 13], "texture": "#0"}
|
||||
"up": {"uv": [0, 13, 15, 14.5], "texture": "#0"},
|
||||
"down": {"uv": [0, 13, 15, 14.5], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -127,8 +128,8 @@
|
||||
"east": {"uv": [0, 13, 15, 14.5], "texture": "#0"},
|
||||
"south": {"uv": [10, 9.5, 11.5, 11], "texture": "#0"},
|
||||
"west": {"uv": [0, 13, 15, 14.5], "texture": "#0"},
|
||||
"up": {"uv": [0, 11.5, 15, 13], "rotation": 90, "texture": "#0"},
|
||||
"down": {"uv": [0, 11.5, 15, 13], "rotation": 90, "texture": "#0"}
|
||||
"up": {"uv": [0, 13, 15, 14.5], "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"},
|
||||
"south": {"uv": [0, 13, 15, 14.5], "texture": "#0"},
|
||||
"west": {"uv": [10, 9.5, 11.5, 11], "texture": "#0"},
|
||||
"up": {"uv": [0, 11.5, 15, 13], "texture": "#0"},
|
||||
"down": {"uv": [0, 11.5, 15, 13], "texture": "#0"}
|
||||
"up": {"uv": [0, 13, 15, 14.5], "texture": "#0"},
|
||||
"down": {"uv": [0, 13, 15, 14.5], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -153,8 +154,8 @@
|
||||
"east": {"uv": [0, 13, 15, 14.5], "texture": "#0"},
|
||||
"south": {"uv": [10, 9.5, 11.5, 11], "texture": "#0"},
|
||||
"west": {"uv": [0, 13, 15, 14.5], "texture": "#0"},
|
||||
"up": {"uv": [0, 11.5, 15, 13], "rotation": 90, "texture": "#0"},
|
||||
"down": {"uv": [0, 11.5, 15, 13], "rotation": 90, "texture": "#0"}
|
||||
"up": {"uv": [0, 13, 15, 14.5], "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",
|
||||
"parent": "block/block",
|
||||
"textures": {
|
||||
@@ -114,8 +115,8 @@
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [6, 8, 7],
|
||||
"to": [6, 14, 9],
|
||||
"from": [5.95, 8, 7],
|
||||
"to": [5.95, 14, 9],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [4, 8, 7]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 0, 6], "texture": "#3"},
|
||||
@@ -140,8 +141,8 @@
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [10, 8, 7],
|
||||
"to": [10, 14, 9],
|
||||
"from": [10.05, 8, 7],
|
||||
"to": [10.05, 14, 9],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 7]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 0, 6], "texture": "#3"},
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
{
|
||||
"format_version": "1.21.6",
|
||||
"credit": "Made with Blockbench",
|
||||
"parent": "minecraft:block/block",
|
||||
"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",
|
||||
"parent": "block/block",
|
||||
"texture_size": [32, 32],
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
{
|
||||
"format_version": "1.21.6",
|
||||
"credit": "Made with Blockbench",
|
||||
"parent": "block/block",
|
||||
"texture_size": [32, 32],
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
{
|
||||
"format_version": "1.21.6",
|
||||
"credit": "Made with Blockbench",
|
||||
"parent": "block/block",
|
||||
"texture_size": [32, 32],
|
||||
@@ -86,7 +87,7 @@
|
||||
"east": {"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"},
|
||||
"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"}
|
||||
}
|
||||
},
|
||||
|
||||
@@ -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 |
|
Before Width: | Height: | Size: 738 B After Width: | Height: | Size: 754 B |