1.1.0 update

This commit is contained in:
DrMangoTea
2025-09-11 20:09:11 +02:00
parent 813ed0afa5
commit 00afd7b118
295 changed files with 2704 additions and 860 deletions

View File

@@ -31,7 +31,7 @@ registrate_version = MC1.21-1.3.0+62
mod_id=tfmg
mod_name=Create: The Factory Must Grow
mod_license=MIT
mod_version=1.0.1
mod_version=1.1.0
mod_group_id=com.drmangotea
mod_authors= DrMangoTea, Pepa, Luna
mod_description= Create: The Factory Must Grow brings the age of steel, oil and electricity to the Create mod

View File

@@ -0,0 +1,10 @@
{
"variants": {
"lit=false": {
"model": "tfmg:block/gas_lamp/block"
},
"lit=true": {
"model": "tfmg:block/gas_lamp/block_lit"
}
}
}

View File

@@ -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ɹɥʇǝɯɐןℲ",

View File

@@ -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",

View File

@@ -0,0 +1,3 @@
{
"parent": "tfmg:item/fire_extinguisher/item"
}

View File

@@ -0,0 +1,3 @@
{
"parent": "tfmg:block/gas_lamp/item"
}

View File

@@ -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",

View File

@@ -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",

View File

@@ -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"
]
}
}

View File

@@ -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"
]
}
}

View File

@@ -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"
}

View File

@@ -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"
}

View File

@@ -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"
}

View File

@@ -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"
}

View File

@@ -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"
}

View File

@@ -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"
}
}

View File

@@ -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"
}
}

View File

@@ -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"
}
]
}

View File

@@ -92,6 +92,7 @@ public class TFMGCreativeTabs {
list.add(TFMGItems.COPPER_SPOOL);
list.add(TFMGItems.CONSTANTAN_SPOOL);
return list;
}
public static List<ItemStack> customAdditions(){

View File

@@ -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(),

View File

@@ -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(" "));

View File

@@ -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) {

View File

@@ -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();
}
}

View 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;
}
}

View File

@@ -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) {

View File

@@ -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();
}

View File

@@ -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.";

View File

@@ -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;

View File

@@ -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;

View File

@@ -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,19 +192,21 @@ 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);
}
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.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);
TFMGTexts.Multimeter.group(getData().group.id).forGoggles(tooltip, 1);
@@ -240,7 +238,7 @@ public interface IElectric {
ElectricBlockValues getData();
default boolean canWork() {
return !getData().notEnoughtPower;
return !getData().notEnoughPower;
}
default void blockFail() {

View File

@@ -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();
}

View File

@@ -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 abstract IElectric getControlledBlock();
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();
}
}

View File

@@ -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;
@@ -103,7 +112,6 @@ public class CableConnectorBlockEntity extends ElectricBlockEntity implements IH
//}
public void removeConnection() {
connections.removeIf(c -> {
BlockPos pos = c.blockPos1;
@@ -130,9 +138,11 @@ public class CableConnectorBlockEntity extends ElectricBlockEntity implements IH
sendStuff();
}
public List<CableConnectorBlockEntity> getConnectedWires() {
return getConnectedWires(new ArrayList<>());
}
public List<CableConnectorBlockEntity> getConnectedWires(List<CableConnectorBlockEntity> foundList) {
@@ -148,11 +158,6 @@ public class CableConnectorBlockEntity extends ElectricBlockEntity implements IH
//level.setBlockAndUpdate(pos2.above(2), Blocks.DIAMOND_BLOCK.defaultBlockState());
if (pos == getBlockPos()) {
continue;
}
@@ -172,7 +177,6 @@ public class CableConnectorBlockEntity extends ElectricBlockEntity implements IH
}
@Override
public void tick() {
super.tick();
@@ -194,7 +198,6 @@ public class CableConnectorBlockEntity extends ElectricBlockEntity implements IH
compound.putInt("ConnectionCount", connections.size());
for (int i = 0; i < connections.size(); i++) {
CableConnection connection = connections.get(i);
compound.put("Connection" + i, connection.saveConnection());
@@ -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));
}
}

View File

@@ -77,7 +77,7 @@ public class LightBulbBlockEntity extends ElectricBlockEntity {
@Override
public float resistance() {
return 100;
return 400;
}

View File

@@ -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();
}
}

View File

@@ -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();
}

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;

View File

@@ -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()) {
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;
}
if(be.secondaryCoil.isEmpty()) {
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);
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;
}
if(!be.secondaryCoil.isEmpty()) {
player.setItemInHand(hand,be.secondaryCoil);
be.secondaryCoil = ItemStack.EMPTY;
withBlockEntityDo(level, pos, TransformerBlockEntity::updateCoils);
return ItemInteractionResult.SUCCESS;
}

View File

@@ -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));
}
}

View File

@@ -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;

View File

@@ -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());

View File

@@ -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());

View File

@@ -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();
}
}

View File

@@ -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);

View File

@@ -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);
}
}

View File

@@ -601,7 +601,7 @@ public abstract class AbstractSmallEngineBlockEntity extends AbstractEngineBlock
public void connect() {
try {
Direction facing = getBlockState().getValue(HORIZONTAL_FACING);
Direction updateDirection = facing.getOpposite();
@@ -661,6 +661,10 @@ public abstract class AbstractSmallEngineBlockEntity extends AbstractEngineBlock
setChanged();
sendData();
} catch (StackOverflowError ignored){
}
}
@Override

View File

@@ -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;
}
}

View File

@@ -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;

View File

@@ -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);
//}

View File

@@ -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();
}
}

View File

@@ -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) {
}
}

View File

@@ -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);
}
}

View File

@@ -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;

View File

@@ -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

View File

@@ -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,8 +88,20 @@ 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);

View File

@@ -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)

View File

@@ -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 =

View File

@@ -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)

View File

@@ -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,

View File

@@ -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();

View File

@@ -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"}
}
},

View File

@@ -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"}
}

View File

@@ -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"}
}
},

View File

@@ -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"},

View 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]
}
}
}

View File

@@ -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]
}
}
}

View 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]
}
}
}

View 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"}
}
}
]
}

View File

@@ -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"}
}

View File

@@ -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"}
}
}
]

View File

@@ -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"}
}
}
]
}

View File

@@ -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"},

View File

@@ -1,4 +1,5 @@
{
"format_version": "1.21.6",
"credit": "Made with Blockbench",
"parent": "minecraft:block/block",
"textures": {

View File

@@ -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"}
}
}
]
}

View File

@@ -1,4 +1,5 @@
{
"format_version": "1.21.6",
"credit": "Made with Blockbench",
"parent": "block/block",
"texture_size": [32, 32],

View File

@@ -1,4 +1,5 @@
{
"format_version": "1.21.6",
"credit": "Made with Blockbench",
"parent": "block/block",
"texture_size": [32, 32],

View File

@@ -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"}
}
},

View File

@@ -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]
}
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 422 B

After

Width:  |  Height:  |  Size: 581 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 275 B

After

Width:  |  Height:  |  Size: 522 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 260 B

After

Width:  |  Height:  |  Size: 529 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 602 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 265 B

After

Width:  |  Height:  |  Size: 480 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 206 B

After

Width:  |  Height:  |  Size: 431 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 296 B

After

Width:  |  Height:  |  Size: 501 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 675 B

After

Width:  |  Height:  |  Size: 659 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 302 B

After

Width:  |  Height:  |  Size: 537 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 825 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 307 B

After

Width:  |  Height:  |  Size: 579 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 297 B

After

Width:  |  Height:  |  Size: 597 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 358 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 248 B

After

Width:  |  Height:  |  Size: 496 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 242 B

After

Width:  |  Height:  |  Size: 490 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 170 B

Some files were not shown because too many files have changed in this diff Show More