From 6ea0dbd6abd678024da666a99240de840224091b Mon Sep 17 00:00:00 2001 From: simibubi <31564874+simibubi@users.noreply.github.com> Date: Wed, 5 Feb 2020 12:36:22 +0100 Subject: [PATCH] Added Flywheels and Furnace Engines - Flywheels and Engines form a powerful rotation source multiblock - Furnace engines only activate when attached to a running furnace --- .../com/simibubi/create/AllBlockPartials.java | 6 + .../java/com/simibubi/create/AllBlocks.java | 8 +- .../com/simibubi/create/AllTileEntities.java | 8 + .../create/foundation/utility/AllShapes.java | 5 +- .../components/flywheel/FlywheelBlock.java | 99 +++++ .../components/flywheel/FlywheelRenderer.java | 98 +++++ .../flywheel/FlywheelTileEntity.java | 109 +++++ .../flywheel/engine/EngineBlock.java | 95 +++++ .../flywheel/engine/EngineRenderer.java | 30 ++ .../flywheel/engine/EngineTileEntity.java | 99 +++++ .../flywheel/engine/FurnaceEngineBlock.java | 79 ++++ .../engine/FurnaceEngineTileEntity.java | 36 ++ .../gauge/GaugeInformationRenderer.java | 4 +- .../assets/create/blockstates/flywheel.json | 18 + .../create/blockstates/furnace_engine.json | 14 + .../resources/assets/create/lang/en_us.json | 2 + .../models/block/flywheel/casing_left.json | 95 +++++ .../block/flywheel/casing_no_connection.json | 95 +++++ .../models/block/flywheel/casing_right.json | 95 +++++ .../models/block/flywheel/flywheel.bbmodel | 1 + .../create/models/block/flywheel/item.json | 381 ++++++++++++++++++ .../flywheel/lower_rotating_connector.json | 27 ++ .../flywheel/lower_sliding_connector.json | 29 ++ .../flywheel/upper_rotating_connector.json | 27 ++ .../flywheel/upper_sliding_connector.json | 29 ++ .../create/models/block/flywheel/wheel.json | 221 ++++++++++ .../models/block/furnace_engine/body.json | 133 ++++++ .../models/block/furnace_engine/frame.json | 89 ++++ .../models/block/furnace_engine/item.json | 110 +++++ .../assets/create/models/item/flywheel.json | 3 + .../create/models/item/furnace_engine.json | 3 + .../create/textures/block/brass_gearbox.png | Bin 0 -> 534 bytes .../textures/block/furnace_cylinder.png | Bin 0 -> 1945 bytes .../textures/block/steam_engine_wheel.png | Bin 0 -> 1845 bytes .../create/loot_tables/blocks/flywheel.json | 19 + .../loot_tables/blocks/furnace_engine.json | 19 + .../mechanical_crafting/crushing_wheel.json | 34 ++ .../recipes/mechanical_crafting/flywheel.json | 34 ++ .../mechanical_crafting/furnace_engine.json | 35 ++ .../integrated_circuit.json | 2 +- 40 files changed, 2186 insertions(+), 5 deletions(-) create mode 100644 src/main/java/com/simibubi/create/modules/contraptions/components/flywheel/FlywheelBlock.java create mode 100644 src/main/java/com/simibubi/create/modules/contraptions/components/flywheel/FlywheelRenderer.java create mode 100644 src/main/java/com/simibubi/create/modules/contraptions/components/flywheel/FlywheelTileEntity.java create mode 100644 src/main/java/com/simibubi/create/modules/contraptions/components/flywheel/engine/EngineBlock.java create mode 100644 src/main/java/com/simibubi/create/modules/contraptions/components/flywheel/engine/EngineRenderer.java create mode 100644 src/main/java/com/simibubi/create/modules/contraptions/components/flywheel/engine/EngineTileEntity.java create mode 100644 src/main/java/com/simibubi/create/modules/contraptions/components/flywheel/engine/FurnaceEngineBlock.java create mode 100644 src/main/java/com/simibubi/create/modules/contraptions/components/flywheel/engine/FurnaceEngineTileEntity.java create mode 100644 src/main/resources/assets/create/blockstates/flywheel.json create mode 100644 src/main/resources/assets/create/blockstates/furnace_engine.json create mode 100644 src/main/resources/assets/create/models/block/flywheel/casing_left.json create mode 100644 src/main/resources/assets/create/models/block/flywheel/casing_no_connection.json create mode 100644 src/main/resources/assets/create/models/block/flywheel/casing_right.json create mode 100644 src/main/resources/assets/create/models/block/flywheel/flywheel.bbmodel create mode 100644 src/main/resources/assets/create/models/block/flywheel/item.json create mode 100644 src/main/resources/assets/create/models/block/flywheel/lower_rotating_connector.json create mode 100644 src/main/resources/assets/create/models/block/flywheel/lower_sliding_connector.json create mode 100644 src/main/resources/assets/create/models/block/flywheel/upper_rotating_connector.json create mode 100644 src/main/resources/assets/create/models/block/flywheel/upper_sliding_connector.json create mode 100644 src/main/resources/assets/create/models/block/flywheel/wheel.json create mode 100644 src/main/resources/assets/create/models/block/furnace_engine/body.json create mode 100644 src/main/resources/assets/create/models/block/furnace_engine/frame.json create mode 100644 src/main/resources/assets/create/models/block/furnace_engine/item.json create mode 100644 src/main/resources/assets/create/models/item/flywheel.json create mode 100644 src/main/resources/assets/create/models/item/furnace_engine.json create mode 100644 src/main/resources/assets/create/textures/block/brass_gearbox.png create mode 100644 src/main/resources/assets/create/textures/block/furnace_cylinder.png create mode 100644 src/main/resources/assets/create/textures/block/steam_engine_wheel.png create mode 100644 src/main/resources/data/create/loot_tables/blocks/flywheel.json create mode 100644 src/main/resources/data/create/loot_tables/blocks/furnace_engine.json create mode 100644 src/main/resources/data/create/recipes/mechanical_crafting/crushing_wheel.json create mode 100644 src/main/resources/data/create/recipes/mechanical_crafting/flywheel.json create mode 100644 src/main/resources/data/create/recipes/mechanical_crafting/furnace_engine.json diff --git a/src/main/java/com/simibubi/create/AllBlockPartials.java b/src/main/java/com/simibubi/create/AllBlockPartials.java index 257f387ab..ec06c44cb 100644 --- a/src/main/java/com/simibubi/create/AllBlockPartials.java +++ b/src/main/java/com/simibubi/create/AllBlockPartials.java @@ -52,6 +52,12 @@ public enum AllBlockPartials { BELT_TUNNEL_FLAP("belt_tunnel/flap"), BELT_TUNNEL_INDICATOR("belt_tunnel/indicator"), FLEXPEATER_INDICATOR("repeaters/flexpeater_indicator"), + FLYWHEEL("flywheel/wheel"), + FLYWHEEL_UPPER_ROTATING("flywheel/upper_rotating_connector"), + FLYWHEEL_LOWER_ROTATING("flywheel/lower_rotating_connector"), + FLYWHEEL_UPPER_SLIDING("flywheel/upper_sliding_connector"), + FLYWHEEL_LOWER_SLIDING("flywheel/lower_sliding_connector"), + FURNACE_GENERATOR_FRAME("furnace_engine/frame"), ; diff --git a/src/main/java/com/simibubi/create/AllBlocks.java b/src/main/java/com/simibubi/create/AllBlocks.java index fceceadf1..79397760a 100644 --- a/src/main/java/com/simibubi/create/AllBlocks.java +++ b/src/main/java/com/simibubi/create/AllBlocks.java @@ -25,6 +25,8 @@ import com.simibubi.create.modules.contraptions.components.crusher.CrushingWheel import com.simibubi.create.modules.contraptions.components.deployer.DeployerBlock; import com.simibubi.create.modules.contraptions.components.fan.EncasedFanBlock; import com.simibubi.create.modules.contraptions.components.fan.NozzleBlock; +import com.simibubi.create.modules.contraptions.components.flywheel.FlywheelBlock; +import com.simibubi.create.modules.contraptions.components.flywheel.engine.FurnaceEngineBlock; import com.simibubi.create.modules.contraptions.components.mixer.MechanicalMixerBlock; import com.simibubi.create.modules.contraptions.components.motor.MotorBlock; import com.simibubi.create.modules.contraptions.components.press.MechanicalPressBlock; @@ -118,13 +120,17 @@ public enum AllBlocks { NOZZLE(new NozzleBlock()), TURNTABLE(new TurntableBlock()), HAND_CRANK(new HandCrankBlock()), - + CRUSHING_WHEEL(new CrushingWheelBlock()), CRUSHING_WHEEL_CONTROLLER(new CrushingWheelControllerBlock()), MECHANICAL_PRESS(new MechanicalPressBlock()), MECHANICAL_MIXER(new MechanicalMixerBlock()), BASIN(new BasinBlock()), MECHANICAL_CRAFTER(new MechanicalCrafterBlock()), + + FLYWHEEL(new FlywheelBlock()), + FURNACE_ENGINE(new FurnaceEngineBlock()), + SPEED_GAUGE(new GaugeBlock(GaugeBlock.Type.SPEED)), STRESS_GAUGE(new GaugeBlock(GaugeBlock.Type.STRESS)), diff --git a/src/main/java/com/simibubi/create/AllTileEntities.java b/src/main/java/com/simibubi/create/AllTileEntities.java index 2b63251d7..5924f8106 100644 --- a/src/main/java/com/simibubi/create/AllTileEntities.java +++ b/src/main/java/com/simibubi/create/AllTileEntities.java @@ -25,6 +25,10 @@ import com.simibubi.create.modules.contraptions.components.deployer.DeployerTile import com.simibubi.create.modules.contraptions.components.fan.EncasedFanTileEntity; import com.simibubi.create.modules.contraptions.components.fan.EncasedFanTileEntityRenderer; import com.simibubi.create.modules.contraptions.components.fan.NozzleTileEntity; +import com.simibubi.create.modules.contraptions.components.flywheel.FlywheelRenderer; +import com.simibubi.create.modules.contraptions.components.flywheel.FlywheelTileEntity; +import com.simibubi.create.modules.contraptions.components.flywheel.engine.EngineRenderer; +import com.simibubi.create.modules.contraptions.components.flywheel.engine.FurnaceEngineTileEntity; import com.simibubi.create.modules.contraptions.components.mixer.MechanicalMixerTileEntity; import com.simibubi.create.modules.contraptions.components.mixer.MechanicalMixerTileEntityRenderer; import com.simibubi.create.modules.contraptions.components.motor.MotorTileEntity; @@ -111,6 +115,8 @@ public enum AllTileEntities { DRILL(DrillTileEntity::new, AllBlocks.DRILL), SAW(SawTileEntity::new, AllBlocks.SAW), HARVESTER(HarvesterTileEntity::new, AllBlocks.HARVESTER), + FLYWHEEL(FlywheelTileEntity::new, AllBlocks.FLYWHEEL), + FURNACE_ENGINE(FurnaceEngineTileEntity::new, AllBlocks.FURNACE_ENGINE), CRUSHING_WHEEL(CrushingWheelTileEntity::new, AllBlocks.CRUSHING_WHEEL), CRUSHING_WHEEL_CONTROLLER(CrushingWheelControllerTileEntity::new, AllBlocks.CRUSHING_WHEEL_CONTROLLER), WATER_WHEEL(WaterWheelTileEntity::new, AllBlocks.WATER_WHEEL), @@ -200,6 +206,8 @@ public enum AllTileEntities { bind(StressGaugeTileEntity.class, new GaugeTileEntityRenderer(GaugeBlock.Type.STRESS)); bind(BasinTileEntity.class, new BasinTileEntityRenderer()); bind(DeployerTileEntity.class, new DeployerTileEntityRenderer()); + bind(FlywheelTileEntity.class, new FlywheelRenderer()); + bind(FurnaceEngineTileEntity.class, new EngineRenderer<>()); bind(RedstoneLinkTileEntity.class, new SmartTileEntityRenderer<>()); bind(ExtractorTileEntity.class, new SmartTileEntityRenderer<>()); diff --git a/src/main/java/com/simibubi/create/foundation/utility/AllShapes.java b/src/main/java/com/simibubi/create/foundation/utility/AllShapes.java index 99b234100..2710dd88a 100644 --- a/src/main/java/com/simibubi/create/foundation/utility/AllShapes.java +++ b/src/main/java/com/simibubi/create/foundation/utility/AllShapes.java @@ -30,7 +30,10 @@ public class AllShapes { TRANSPOSER = VoxelShaper.forDirectional(VoxelShapes.or( makeCuboidShape(4, 4, -1, 12, 12, 1), makeCuboidShape(5, 5, 0, 11, 11, 16), - makeCuboidShape(4, 4, 11, 12, 12, 17)), Direction.SOUTH) + makeCuboidShape(4, 4, 11, 12, 12, 17)), Direction.SOUTH), + FURNACE_ENGINE = VoxelShaper.forHorizontal(VoxelShapes.or( + makeCuboidShape(1, 1, 0, 15, 15, 16), + makeCuboidShape(0, 0, 9, 16, 16, 14)), Direction.SOUTH) ; diff --git a/src/main/java/com/simibubi/create/modules/contraptions/components/flywheel/FlywheelBlock.java b/src/main/java/com/simibubi/create/modules/contraptions/components/flywheel/FlywheelBlock.java new file mode 100644 index 000000000..2f40ac30a --- /dev/null +++ b/src/main/java/com/simibubi/create/modules/contraptions/components/flywheel/FlywheelBlock.java @@ -0,0 +1,99 @@ +package com.simibubi.create.modules.contraptions.components.flywheel; + +import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.modules.contraptions.base.HorizontalKineticBlock; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockState; +import net.minecraft.block.Blocks; +import net.minecraft.item.BlockItemUseContext; +import net.minecraft.state.EnumProperty; +import net.minecraft.state.StateContainer.Builder; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.Direction; +import net.minecraft.util.Direction.Axis; +import net.minecraft.util.IStringSerializable; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.IBlockReader; +import net.minecraft.world.IWorldReader; +import net.minecraft.world.World; + +public class FlywheelBlock extends HorizontalKineticBlock { + + public static EnumProperty CONNECTION = EnumProperty.create("connection", ConnectionState.class); + + public FlywheelBlock() { + super(Properties.from(Blocks.GOLD_BLOCK)); + setDefaultState(getDefaultState().with(CONNECTION, ConnectionState.NONE)); + } + + @Override + protected void fillStateContainer(Builder builder) { + super.fillStateContainer(builder.add(CONNECTION)); + } + + @Override + public TileEntity createTileEntity(BlockState state, IBlockReader world) { + return new FlywheelTileEntity(); + } + + @Override + public BlockState getStateForPlacement(BlockItemUseContext context) { + Direction preferred = getPreferredHorizontalFacing(context); + if (preferred != null) + return getDefaultState().with(HORIZONTAL_FACING, preferred.getOpposite()); + return this.getDefaultState().with(HORIZONTAL_FACING, context.getPlacementHorizontalFacing()); + } + + @Override + protected boolean hasStaticPart() { + return true; + } + + public static boolean isConnected(BlockState state) { + return getConnection(state) != null; + } + + public static Direction getConnection(BlockState state) { + Direction facing = state.get(HORIZONTAL_FACING); + ConnectionState connection = state.get(CONNECTION); + + if (connection == ConnectionState.LEFT) + return facing.rotateYCCW(); + if (connection == ConnectionState.RIGHT) + return facing.rotateY(); + return null; + } + + public static void setConnection(World world, BlockPos pos, BlockState state, Direction direction) { + Direction facing = state.get(HORIZONTAL_FACING); + ConnectionState connection = ConnectionState.NONE; + + if (direction == facing.rotateY()) + connection = ConnectionState.RIGHT; + if (direction == facing.rotateYCCW()) + connection = ConnectionState.LEFT; + + world.setBlockState(pos, state.with(CONNECTION, connection), 18); + } + + @Override + public boolean hasShaftTowards(IWorldReader world, BlockPos pos, BlockState state, Direction face) { + return face == state.get(HORIZONTAL_FACING).getOpposite(); + } + + @Override + public Axis getRotationAxis(BlockState state) { + return state.get(HORIZONTAL_FACING).getAxis(); + } + + public enum ConnectionState implements IStringSerializable { + NONE, LEFT, RIGHT; + + @Override + public String getName() { + return Lang.asId(name()); + } + } + +} diff --git a/src/main/java/com/simibubi/create/modules/contraptions/components/flywheel/FlywheelRenderer.java b/src/main/java/com/simibubi/create/modules/contraptions/components/flywheel/FlywheelRenderer.java new file mode 100644 index 000000000..52b060d9c --- /dev/null +++ b/src/main/java/com/simibubi/create/modules/contraptions/components/flywheel/FlywheelRenderer.java @@ -0,0 +1,98 @@ +package com.simibubi.create.modules.contraptions.components.flywheel; + +import static com.simibubi.create.modules.contraptions.base.HorizontalKineticBlock.HORIZONTAL_FACING; + +import com.simibubi.create.AllBlockPartials; +import com.simibubi.create.foundation.utility.AngleHelper; +import com.simibubi.create.foundation.utility.SuperByteBuffer; +import com.simibubi.create.modules.contraptions.base.KineticTileEntity; +import com.simibubi.create.modules.contraptions.base.KineticTileEntityRenderer; +import com.simibubi.create.modules.contraptions.components.flywheel.FlywheelBlock.ConnectionState; + +import net.minecraft.block.BlockState; +import net.minecraft.client.renderer.BufferBuilder; +import net.minecraft.util.Direction; +import net.minecraft.util.Direction.Axis; +import net.minecraft.util.Direction.AxisDirection; +import net.minecraft.util.math.MathHelper; +import net.minecraft.util.Rotation; + +public class FlywheelRenderer extends KineticTileEntityRenderer { + + @Override + public void renderFast(KineticTileEntity te, double x, double y, double z, float partialTicks, int destroyStage, + BufferBuilder buffer) { + super.renderFast(te, x, y, z, partialTicks, destroyStage, buffer); + + BlockState blockState = te.getBlockState(); + FlywheelTileEntity wte = (FlywheelTileEntity) te; + + SuperByteBuffer wheel = AllBlockPartials.FLYWHEEL.renderOnHorizontal(blockState.rotate(Rotation.CLOCKWISE_90)); + float speed = wte.visualSpeed.get(partialTicks) * 3 / 10f; + float angle = wte.angle + speed * partialTicks; + + if (FlywheelBlock.isConnected(blockState)) { + Direction connection = FlywheelBlock.getConnection(blockState); + int light = blockState.getPackedLightmapCoords(getWorld(), te.getPos().offset(connection)); + float rotation = connection.getAxis() == Axis.X ^ connection.getAxisDirection() == AxisDirection.NEGATIVE + ? -angle + : angle; + boolean flip = blockState.get(FlywheelBlock.CONNECTION) == ConnectionState.LEFT; + + rotateToFacing(transformConnector(AllBlockPartials.FLYWHEEL_UPPER_ROTATING.renderOn(blockState), true, true, + rotation, flip), connection).translate(x, y, z).light(light).renderInto(buffer); + rotateToFacing(transformConnector(AllBlockPartials.FLYWHEEL_LOWER_ROTATING.renderOn(blockState), false, + true, rotation, flip), connection).translate(x, y, z).light(light).renderInto(buffer); + rotateToFacing(transformConnector(AllBlockPartials.FLYWHEEL_UPPER_SLIDING.renderOn(blockState), true, false, + rotation, flip), connection).translate(x, y, z).light(light).renderInto(buffer); + rotateToFacing(transformConnector(AllBlockPartials.FLYWHEEL_LOWER_SLIDING.renderOn(blockState), false, + false, rotation, flip), connection).translate(x, y, z).light(light).renderInto(buffer); + } + + kineticRotationTransform(wheel, te, blockState.get(HORIZONTAL_FACING).getAxis(), AngleHelper.rad(angle), + getWorld()); + wheel.translate(x, y, z).renderInto(buffer); + } + + @Override + protected SuperByteBuffer getRotatedModel(KineticTileEntity te) { + return AllBlockPartials.SHAFT_HALF.renderOnDirectional(te.getBlockState(), + te.getBlockState().get(HORIZONTAL_FACING).getOpposite()); + } + + protected SuperByteBuffer transformConnector(SuperByteBuffer buffer, boolean upper, boolean rotating, float angle, + boolean flip) { + + float shift = upper ? 1 / 4f : -1 / 8f; + float offset = upper ? 1 / 4f : 1 / 4f; + float radians = (float) (angle / 180 * Math.PI); + float shifting = MathHelper.sin(radians) * shift + offset; + + float maxAngle = upper ? -5 : -15; + float minAngle = upper ? -45 : 5; + float barAngle = 0; + + if (rotating) + barAngle = MathHelper.lerp((MathHelper.sin((float) (radians + Math.PI / 2)) + 1) / 2, minAngle, maxAngle); + + float pivotX = (upper ? 8f : 3f) / 16; + float pivotY = (upper ? 8f : 2f) / 16; + float pivotZ = (upper ? 23f : 21.5f) / 16f; + + if (flip && !upper) + buffer.translate(9 / 16f, 0, 0); + + buffer.translate(-pivotX, -pivotY, -pivotZ); + if (rotating) + buffer.rotate(Axis.X, AngleHelper.rad(barAngle)); + buffer.translate(pivotX, pivotY, pivotZ + shifting); + + return buffer; + } + + protected SuperByteBuffer rotateToFacing(SuperByteBuffer buffer, Direction facing) { + buffer.rotateCentered(Axis.Y, AngleHelper.rad(AngleHelper.horizontalAngle(facing))); + return buffer; + } + +} diff --git a/src/main/java/com/simibubi/create/modules/contraptions/components/flywheel/FlywheelTileEntity.java b/src/main/java/com/simibubi/create/modules/contraptions/components/flywheel/FlywheelTileEntity.java new file mode 100644 index 000000000..f272c60e3 --- /dev/null +++ b/src/main/java/com/simibubi/create/modules/contraptions/components/flywheel/FlywheelTileEntity.java @@ -0,0 +1,109 @@ +package com.simibubi.create.modules.contraptions.components.flywheel; + +import com.simibubi.create.AllTileEntities; +import com.simibubi.create.foundation.gui.widgets.InterpolatedChasingValue; +import com.simibubi.create.modules.contraptions.base.GeneratingKineticTileEntity; + +import net.minecraft.nbt.CompoundNBT; +import net.minecraft.util.math.AxisAlignedBB; + +public class FlywheelTileEntity extends GeneratingKineticTileEntity { + + private float generatedCapacity; + private float generatedSpeed; + private int stoppingCooldown; + + // Client + InterpolatedChasingValue visualSpeed = new InterpolatedChasingValue(); + float angle; + + public FlywheelTileEntity() { + super(AllTileEntities.FLYWHEEL.type); + } + + public void setRotation(float speed, float capacity) { + if (generatedSpeed != speed || generatedCapacity != capacity) { + + if (speed == 0) { + if (stoppingCooldown == 0) + stoppingCooldown = 40; + return; + } + + stoppingCooldown = 0; + generatedSpeed = speed; + generatedCapacity = capacity; + updateGeneratedRotation(); + } + } + + @Override + public float getGeneratedSpeed() { + return generatedSpeed; + } + + @Override + public float getAddedStressCapacity() { + return generatedCapacity; + } + + @Override + public void initialize() { + super.initialize(); + } + + @Override + public AxisAlignedBB getRenderBoundingBox() { + return super.getRenderBoundingBox().grow(2); + } + + @Override + public CompoundNBT writeToClient(CompoundNBT compound) { + return super.writeToClient(compound); + } + + @Override + public void readClientUpdate(CompoundNBT tag) { + super.readClientUpdate(tag); + visualSpeed.withSpeed(1 / 32f).target(generatedSpeed); + } + + @Override + public CompoundNBT write(CompoundNBT compound) { + compound.putFloat("GeneratedSpeed", generatedSpeed); + compound.putFloat("GeneratedCapacity", generatedCapacity); + compound.putInt("Cooldown", stoppingCooldown); + return super.write(compound); + } + + @Override + public void read(CompoundNBT compound) { + generatedSpeed = compound.getFloat("GeneratedSpeed"); + generatedCapacity = compound.getFloat("GeneratedCapacity"); + stoppingCooldown = compound.getInt("Cooldown"); + super.read(compound); + } + + @Override + public void tick() { + super.tick(); + + if (world.isRemote) { + visualSpeed.target(generatedSpeed); + visualSpeed.tick(); + angle += visualSpeed.value * 3 / 10f; + angle %= 360; + return; + } + if (stoppingCooldown == 0) + return; + + stoppingCooldown--; + if (stoppingCooldown == 0) { + generatedCapacity = 0; + generatedSpeed = 0; + updateGeneratedRotation(); + } + } + +} diff --git a/src/main/java/com/simibubi/create/modules/contraptions/components/flywheel/engine/EngineBlock.java b/src/main/java/com/simibubi/create/modules/contraptions/components/flywheel/engine/EngineBlock.java new file mode 100644 index 000000000..b1f291948 --- /dev/null +++ b/src/main/java/com/simibubi/create/modules/contraptions/components/flywheel/engine/EngineBlock.java @@ -0,0 +1,95 @@ +package com.simibubi.create.modules.contraptions.components.flywheel.engine; + +import javax.annotation.Nullable; + +import com.simibubi.create.AllBlockPartials; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockState; +import net.minecraft.block.HorizontalBlock; +import net.minecraft.item.BlockItemUseContext; +import net.minecraft.state.StateContainer.Builder; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.Direction; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.IBlockReader; +import net.minecraft.world.IWorldReader; +import net.minecraft.world.World; +import net.minecraftforge.api.distmarker.Dist; +import net.minecraftforge.api.distmarker.OnlyIn; + +public abstract class EngineBlock extends HorizontalBlock { + + protected EngineBlock(Properties builder) { + super(builder); + } + + @Override + public boolean isValidPosition(BlockState state, IWorldReader worldIn, BlockPos pos) { + return isValidPosition(state, worldIn, pos, state.get(HORIZONTAL_FACING)); + } + + @Override + public boolean hasTileEntity(BlockState state) { + return true; + } + + @Override + public abstract TileEntity createTileEntity(BlockState state, IBlockReader world); + + @Override + public BlockState getStateForPlacement(BlockItemUseContext context) { + Direction facing = context.getFace(); + return getDefaultState().with(HORIZONTAL_FACING, + facing.getAxis().isVertical() ? context.getPlacementHorizontalFacing().getOpposite() : facing); + } + + @Override + protected void fillStateContainer(Builder builder) { + super.fillStateContainer(builder.add(HORIZONTAL_FACING)); + } + + @Override + public void neighborChanged(BlockState state, World worldIn, BlockPos pos, Block blockIn, BlockPos fromPos, + boolean isMoving) { + if (worldIn.isRemote) + return; + + if (fromPos.equals(getBaseBlockPos(state, pos))) { + if (!isValidPosition(state, worldIn, pos)) { + worldIn.destroyBlock(pos, true); + return; + } + } + } + + private boolean isValidPosition(BlockState state, IBlockReader world, BlockPos pos, Direction facing) { + BlockPos baseBlockPos = getBaseBlockPos(state, pos); + if (!isValidBaseBlock(world.getBlockState(baseBlockPos), world, pos)) + return false; + for (Direction otherFacing : Direction.values()) { + if (otherFacing.getAxis().isVertical()) + continue; + if (otherFacing == facing) + continue; + BlockPos otherPos = baseBlockPos.offset(otherFacing); + BlockState otherState = world.getBlockState(otherPos); + if (otherState.getBlock() instanceof EngineBlock + && getBaseBlockPos(otherState, otherPos).equals(baseBlockPos)) + return false; + } + + return true; + } + + public static BlockPos getBaseBlockPos(BlockState state, BlockPos pos) { + return pos.offset(state.get(HORIZONTAL_FACING).getOpposite()); + } + + @Nullable + @OnlyIn(Dist.CLIENT) + public abstract AllBlockPartials getFrameModel(); + + protected abstract boolean isValidBaseBlock(BlockState baseBlock, IBlockReader world, BlockPos pos); + +} diff --git a/src/main/java/com/simibubi/create/modules/contraptions/components/flywheel/engine/EngineRenderer.java b/src/main/java/com/simibubi/create/modules/contraptions/components/flywheel/engine/EngineRenderer.java new file mode 100644 index 000000000..9f4579451 --- /dev/null +++ b/src/main/java/com/simibubi/create/modules/contraptions/components/flywheel/engine/EngineRenderer.java @@ -0,0 +1,30 @@ +package com.simibubi.create.modules.contraptions.components.flywheel.engine; + +import com.simibubi.create.AllBlockPartials; +import com.simibubi.create.foundation.block.SafeTileEntityRendererFast; +import com.simibubi.create.foundation.utility.AngleHelper; + +import net.minecraft.block.Block; +import net.minecraft.client.renderer.BufferBuilder; +import net.minecraft.util.Direction; +import net.minecraft.util.Direction.Axis; + +public class EngineRenderer extends SafeTileEntityRendererFast { + + @Override + protected void renderFast(T te, double x, double y, double z, float partialTicks, int destroyStage, + BufferBuilder buffer) { + Block block = te.getBlockState().getBlock(); + if (block instanceof EngineBlock) { + EngineBlock engineBlock = (EngineBlock) block; + AllBlockPartials frame = engineBlock.getFrameModel(); + if (frame != null) { + Direction facing = te.getBlockState().get(EngineBlock.HORIZONTAL_FACING); + float angle = AngleHelper.rad(AngleHelper.horizontalAngle(facing)); + frame.renderOn(te.getBlockState()).translate(0, 0, -1).rotateCentered(Axis.Y, angle).translate(x, y, z) + .light(te.getBlockState().getPackedLightmapCoords(getWorld(), te.getPos())).renderInto(buffer); + } + } + } + +} diff --git a/src/main/java/com/simibubi/create/modules/contraptions/components/flywheel/engine/EngineTileEntity.java b/src/main/java/com/simibubi/create/modules/contraptions/components/flywheel/engine/EngineTileEntity.java new file mode 100644 index 000000000..7bff98dd6 --- /dev/null +++ b/src/main/java/com/simibubi/create/modules/contraptions/components/flywheel/engine/EngineTileEntity.java @@ -0,0 +1,99 @@ +package com.simibubi.create.modules.contraptions.components.flywheel.engine; + +import java.util.List; + +import com.simibubi.create.AllBlocks; +import com.simibubi.create.foundation.behaviour.base.SmartTileEntity; +import com.simibubi.create.foundation.behaviour.base.TileEntityBehaviour; +import com.simibubi.create.modules.contraptions.components.flywheel.FlywheelBlock; +import com.simibubi.create.modules.contraptions.components.flywheel.FlywheelTileEntity; + +import net.minecraft.block.BlockState; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.tileentity.TileEntityType; +import net.minecraft.util.Direction; +import net.minecraft.util.math.AxisAlignedBB; +import net.minecraft.util.math.BlockPos; + +public class EngineTileEntity extends SmartTileEntity { + + public float appliedCapacity; + public float appliedSpeed; + protected FlywheelTileEntity poweredWheel; + + public EngineTileEntity(TileEntityType tileEntityTypeIn) { + super(tileEntityTypeIn); + } + + @Override + public void addBehaviours(List behaviours) { + } + + @Override + public boolean hasFastRenderer() { + return true; + } + + @Override + public AxisAlignedBB getRenderBoundingBox() { + return super.getRenderBoundingBox().grow(1.5f); + } + + @Override + public void initialize() { + super.initialize(); + lazyTick(); + } + + @Override + public void lazyTick() { + super.lazyTick(); + if (world.isRemote) + return; + if (poweredWheel != null && poweredWheel.isRemoved()) + poweredWheel = null; + + if (poweredWheel == null) + attachWheel(); + } + + public void attachWheel() { + Direction engineFacing = getBlockState().get(EngineBlock.HORIZONTAL_FACING); + BlockPos wheelPos = pos.offset(engineFacing, 2); + BlockState wheelState = world.getBlockState(wheelPos); + if (!AllBlocks.FLYWHEEL.typeOf(wheelState)) + return; + Direction wheelFacing = wheelState.get(FlywheelBlock.HORIZONTAL_FACING); + if (wheelFacing.getAxis() != engineFacing.rotateY().getAxis()) + return; + if (FlywheelBlock.isConnected(wheelState) + && FlywheelBlock.getConnection(wheelState) != engineFacing.getOpposite()) + return; + TileEntity te = world.getTileEntity(wheelPos); + if (te instanceof FlywheelTileEntity) { + if (!FlywheelBlock.isConnected(wheelState)) + FlywheelBlock.setConnection(world, te.getPos(), te.getBlockState(), engineFacing.getOpposite()); + poweredWheel = (FlywheelTileEntity) te; + refreshWheelSpeed(); + } + } + + public void detachWheel() { + poweredWheel.setRotation(0, 0); + FlywheelBlock.setConnection(world, poweredWheel.getPos(), poweredWheel.getBlockState(), null); + } + + @Override + public void remove() { + if (poweredWheel != null) + detachWheel(); + super.remove(); + } + + protected void refreshWheelSpeed() { + if (poweredWheel == null) + return; + poweredWheel.setRotation(appliedSpeed, appliedCapacity); + } + +} diff --git a/src/main/java/com/simibubi/create/modules/contraptions/components/flywheel/engine/FurnaceEngineBlock.java b/src/main/java/com/simibubi/create/modules/contraptions/components/flywheel/engine/FurnaceEngineBlock.java new file mode 100644 index 000000000..6d77f6eed --- /dev/null +++ b/src/main/java/com/simibubi/create/modules/contraptions/components/flywheel/engine/FurnaceEngineBlock.java @@ -0,0 +1,79 @@ +package com.simibubi.create.modules.contraptions.components.flywheel.engine; + +import com.simibubi.create.AllBlockPartials; +import com.simibubi.create.AllBlocks; +import com.simibubi.create.foundation.block.IWithTileEntity; +import com.simibubi.create.foundation.utility.AllShapes; + +import net.minecraft.block.AbstractFurnaceBlock; +import net.minecraft.block.Block; +import net.minecraft.block.BlockState; +import net.minecraft.block.Blocks; +import net.minecraft.item.BlockItem; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.shapes.ISelectionContext; +import net.minecraft.util.math.shapes.VoxelShape; +import net.minecraft.world.IBlockReader; +import net.minecraft.world.World; +import net.minecraftforge.event.entity.player.PlayerInteractEvent.RightClickBlock; +import net.minecraftforge.eventbus.api.Event.Result; +import net.minecraftforge.eventbus.api.SubscribeEvent; +import net.minecraftforge.fml.common.Mod.EventBusSubscriber; + +@EventBusSubscriber +public class FurnaceEngineBlock extends EngineBlock implements IWithTileEntity { + + public FurnaceEngineBlock() { + super(Properties.from(Blocks.GOLD_BLOCK)); + } + + @Override + protected boolean isValidBaseBlock(BlockState baseBlock, IBlockReader world, BlockPos pos) { + return baseBlock.getBlock() instanceof AbstractFurnaceBlock; + } + + @Override + public VoxelShape getShape(BlockState state, IBlockReader worldIn, BlockPos pos, ISelectionContext context) { + return AllShapes.FURNACE_ENGINE.get(state.get(HORIZONTAL_FACING)); + } + + @Override + public AllBlockPartials getFrameModel() { + return AllBlockPartials.FURNACE_GENERATOR_FRAME; + } + + @Override + public TileEntity createTileEntity(BlockState state, IBlockReader world) { + return new FurnaceEngineTileEntity(); + } + + @Override + public void neighborChanged(BlockState state, World worldIn, BlockPos pos, Block blockIn, BlockPos fromPos, + boolean isMoving) { + super.neighborChanged(state, worldIn, pos, blockIn, fromPos, isMoving); + if (worldIn.isRemote) + return; + + if (fromPos.equals(getBaseBlockPos(state, pos))) + if (isValidPosition(state, worldIn, pos)) + withTileEntityDo(worldIn, pos, FurnaceEngineTileEntity::updateFurnace); + } + + @SubscribeEvent + public static void usingFurnaceEngineOnFurnacePreventsGUI(RightClickBlock event) { + ItemStack item = event.getItemStack(); + if (!(item.getItem() instanceof BlockItem)) + return; + BlockItem blockItem = (BlockItem) item.getItem(); + if (blockItem.getBlock() != AllBlocks.FURNACE_ENGINE.get()) + return; + BlockState state = event.getWorld().getBlockState(event.getPos()); + if (event.getFace().getAxis().isVertical()) + return; + if (state.getBlock() instanceof AbstractFurnaceBlock) + event.setUseBlock(Result.DENY); + } + +} diff --git a/src/main/java/com/simibubi/create/modules/contraptions/components/flywheel/engine/FurnaceEngineTileEntity.java b/src/main/java/com/simibubi/create/modules/contraptions/components/flywheel/engine/FurnaceEngineTileEntity.java new file mode 100644 index 000000000..185361304 --- /dev/null +++ b/src/main/java/com/simibubi/create/modules/contraptions/components/flywheel/engine/FurnaceEngineTileEntity.java @@ -0,0 +1,36 @@ +package com.simibubi.create.modules.contraptions.components.flywheel.engine; + +import com.simibubi.create.AllTileEntities; + +import net.minecraft.block.AbstractFurnaceBlock; +import net.minecraft.block.BlockState; +import net.minecraft.block.Blocks; + +public class FurnaceEngineTileEntity extends EngineTileEntity { + + public FurnaceEngineTileEntity() { + super(AllTileEntities.FURNACE_ENGINE.type); + } + + @Override + public void lazyTick() { + updateFurnace(); + super.lazyTick(); + } + + public void updateFurnace() { + BlockState state = world.getBlockState(EngineBlock.getBaseBlockPos(getBlockState(), pos)); + if (!(state.getBlock() instanceof AbstractFurnaceBlock)) + return; + + float modifier = state.getBlock() == Blocks.BLAST_FURNACE ? 2 : 1; + boolean active = state.has(AbstractFurnaceBlock.LIT) && state.get(AbstractFurnaceBlock.LIT); + float speed = active ? 16 * modifier : 0; + float capacity = active ? 512 : 0; + + appliedCapacity = capacity; + appliedSpeed = speed; + refreshWheelSpeed(); + } + +} diff --git a/src/main/java/com/simibubi/create/modules/contraptions/relays/gauge/GaugeInformationRenderer.java b/src/main/java/com/simibubi/create/modules/contraptions/relays/gauge/GaugeInformationRenderer.java index 9a6eb4acd..bb3bf47e4 100644 --- a/src/main/java/com/simibubi/create/modules/contraptions/relays/gauge/GaugeInformationRenderer.java +++ b/src/main/java/com/simibubi/create/modules/contraptions/relays/gauge/GaugeInformationRenderer.java @@ -115,8 +115,8 @@ public class GaugeInformationRenderer { tooltip.add(spacing + GRAY + _stressImpact); String addedStress = AQUA + "" + format(stressApplied) + _stressUnit + " " + DARK_GRAY + _atCurrentSpeed; - String addedStressAtBase = GRAY + "" + format(stressApplied * te.getSpeed()) + _stressUnit + " " + DARK_GRAY - + _baseValue; + String addedStressAtBase = GRAY + "" + format(stressApplied * Math.abs(te.getSpeed())) + _stressUnit + " " + + DARK_GRAY + _baseValue; tooltip.add(spacing + " " + addedStress); tooltip.add(spacing + " " + addedStressAtBase); } diff --git a/src/main/resources/assets/create/blockstates/flywheel.json b/src/main/resources/assets/create/blockstates/flywheel.json new file mode 100644 index 000000000..8a469a059 --- /dev/null +++ b/src/main/resources/assets/create/blockstates/flywheel.json @@ -0,0 +1,18 @@ +{ + "forge_marker": 1, + "defaults": { + }, + "variants": { + "facing": { + "north": { "y": 270 }, + "south": { "y": 90 }, + "east": { "y": 0 }, + "west": { "y": 180 } + }, + "connection": { + "none": { "model": "create:block/flywheel/casing_no_connection" }, + "left": { "model": "create:block/flywheel/casing_left" }, + "right": { "model": "create:block/flywheel/casing_right" } + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/create/blockstates/furnace_engine.json b/src/main/resources/assets/create/blockstates/furnace_engine.json new file mode 100644 index 000000000..e2abdd163 --- /dev/null +++ b/src/main/resources/assets/create/blockstates/furnace_engine.json @@ -0,0 +1,14 @@ +{ + "forge_marker": 1, + "defaults": { + "model": "create:block/furnace_engine/body" + }, + "variants": { + "facing": { + "north": { "y": 180 }, + "south": { "y": 0 }, + "west": { "y": 90 }, + "east": { "y": 270 } + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/create/lang/en_us.json b/src/main/resources/assets/create/lang/en_us.json index 75df95664..e708d3fcb 100644 --- a/src/main/resources/assets/create/lang/en_us.json +++ b/src/main/resources/assets/create/lang/en_us.json @@ -103,6 +103,8 @@ "block.create.deployer": "Deployer", "block.create.basin": "Basin", "block.create.mechanical_crafter": "Mechanical Crafter", + "block.create.flywheel": "Flywheel", + "block.create.furnace_engine": "Furnace Engine", "block.create.speed_gauge": "Speedometer", "block.create.stress_gauge": "Stress Gauge", "block.create.cart_assembler": "Cart Assembler", diff --git a/src/main/resources/assets/create/models/block/flywheel/casing_left.json b/src/main/resources/assets/create/models/block/flywheel/casing_left.json new file mode 100644 index 000000000..dac493187 --- /dev/null +++ b/src/main/resources/assets/create/models/block/flywheel/casing_left.json @@ -0,0 +1,95 @@ +{ + "credit": "Made with Blockbench", + "textures": { + "0": "create:block/steam_engine_wheel", + "5": "create:block/brass_casing", + "7": "create:block/brass_gearbox", + "particle": "create:block/steam_engine_wheel" + }, + "elements": [ + { + "from": [1, 0, 0], + "to": [12, 16, 16], + "faces": { + "north": {"uv": [0, 10, 8, 15.5], "rotation": 270, "texture": "#0"}, + "east": {"uv": [0, 0, 16, 16], "texture": "#7"}, + "south": {"uv": [8, 15.5, 16, 10], "rotation": 270, "texture": "#0"}, + "west": {"uv": [0, 0, 16, 16], "texture": "#7"}, + "up": {"uv": [8, 10.5, 16, 16], "rotation": 270, "texture": "#0"}, + "down": {"uv": [8, 10.5, 16, 16], "rotation": 270, "texture": "#0"} + } + }, + { + "from": [0, 0, 0], + "to": [1, 2, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 24]}, + "faces": { + "north": {"uv": [15, 14, 16, 16], "texture": "#5"}, + "east": {"uv": [0, 0, 16, 2], "texture": "#5"}, + "south": {"uv": [0, 14, 1, 16], "texture": "#5"}, + "west": {"uv": [0, 14, 16, 16], "texture": "#5"}, + "up": {"uv": [0, 1, 16, 2], "rotation": 90, "texture": "#5"}, + "down": {"uv": [0, 0, 16, 1], "rotation": 270, "texture": "#5"} + } + }, + { + "from": [0, 14, 0], + "to": [1, 16, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 8, 8]}, + "faces": { + "north": {"uv": [0, 14, 1, 16], "rotation": 180, "texture": "#5"}, + "east": {"uv": [0, 0, 16, 2], "rotation": 180, "texture": "#5"}, + "south": {"uv": [15, 14, 16, 16], "rotation": 180, "texture": "#5"}, + "west": {"uv": [0, 14, 16, 16], "rotation": 180, "texture": "#5"}, + "up": {"uv": [0, 0, 16, 1], "rotation": 270, "texture": "#5"}, + "down": {"uv": [0, 1, 16, 2], "rotation": 90, "texture": "#5"} + } + }, + { + "from": [0, 2, 0], + "to": [1, 14, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 8, 8]}, + "faces": { + "north": {"uv": [2, 0, 14, 1], "rotation": 90, "texture": "#5"}, + "east": {"uv": [0, 0, 12, 2], "rotation": 270, "texture": "#5"}, + "south": {"uv": [2, 1, 14, 2], "rotation": 90, "texture": "#5"}, + "west": {"uv": [2, 14, 14, 16], "rotation": 90, "texture": "#5"}, + "up": {"uv": [15, 14, 16, 16], "rotation": 180, "texture": "#5"}, + "down": {"uv": [0, 14, 1, 16], "texture": "#5"} + } + }, + { + "from": [0, 2, 14], + "to": [1, 14, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 8, 8]}, + "faces": { + "north": {"uv": [2, 1, 14, 2], "rotation": 270, "texture": "#5"}, + "east": {"uv": [0, 0, 12, 2], "rotation": 90, "texture": "#5"}, + "south": {"uv": [2, 0, 14, 1], "rotation": 270, "texture": "#5"}, + "west": {"uv": [2, 14, 14, 16], "rotation": 270, "texture": "#5"}, + "up": {"uv": [0, 14, 1, 16], "texture": "#5"}, + "down": {"uv": [15, 14, 16, 16], "rotation": 180, "texture": "#5"} + } + }, + { + "from": [10.9, 3, 3], + "to": [19.9, 13, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [14.9, 8, 8]}, + "faces": { + "north": {"uv": [11.5, 0, 16, 5], "rotation": 180, "texture": "#0"}, + "east": {"uv": [11, 5, 16, 10], "texture": "#0"}, + "south": {"uv": [11.5, 0, 16, 5], "texture": "#0"}, + "west": {"uv": [11, 5, 16, 10], "texture": "#0"}, + "up": {"uv": [11.5, 0, 16, 5], "texture": "#0"}, + "down": {"uv": [11.5, 0, 16, 5], "texture": "#0"} + } + } + ], + "groups": [ + { + "name": "transmission", + "origin": [-8, 8, 8], + "children": [0, 1, 2, 3, 4, 5] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/flywheel/casing_no_connection.json b/src/main/resources/assets/create/models/block/flywheel/casing_no_connection.json new file mode 100644 index 000000000..ff52149d8 --- /dev/null +++ b/src/main/resources/assets/create/models/block/flywheel/casing_no_connection.json @@ -0,0 +1,95 @@ +{ + "credit": "Made with Blockbench", + "textures": { + "0": "create:block/steam_engine_wheel", + "5": "create:block/brass_casing", + "7": "create:block/brass_gearbox", + "particle": "create:block/steam_engine_wheel" + }, + "elements": [ + { + "from": [1, 0, 0], + "to": [12, 16, 16], + "faces": { + "north": {"uv": [8, 10.5, 16, 16], "rotation": 90, "texture": "#0"}, + "east": {"uv": [0, 0, 16, 16], "texture": "#7"}, + "south": {"uv": [8, 10.5, 16, 16], "rotation": 270, "texture": "#0"}, + "west": {"uv": [0, 0, 16, 16], "texture": "#7"}, + "up": {"uv": [8, 10.5, 16, 16], "rotation": 270, "texture": "#0"}, + "down": {"uv": [8, 10.5, 16, 16], "rotation": 270, "texture": "#0"} + } + }, + { + "from": [0, 0, 0], + "to": [1, 2, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 24]}, + "faces": { + "north": {"uv": [15, 14, 16, 16], "texture": "#5"}, + "east": {"uv": [0, 0, 16, 2], "texture": "#5"}, + "south": {"uv": [0, 14, 1, 16], "texture": "#5"}, + "west": {"uv": [0, 14, 16, 16], "texture": "#5"}, + "up": {"uv": [0, 1, 16, 2], "rotation": 90, "texture": "#5"}, + "down": {"uv": [0, 0, 16, 1], "rotation": 270, "texture": "#5"} + } + }, + { + "from": [0, 14, 0], + "to": [1, 16, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 8, 8]}, + "faces": { + "north": {"uv": [0, 14, 1, 16], "rotation": 180, "texture": "#5"}, + "east": {"uv": [0, 0, 16, 2], "rotation": 180, "texture": "#5"}, + "south": {"uv": [15, 14, 16, 16], "rotation": 180, "texture": "#5"}, + "west": {"uv": [0, 14, 16, 16], "rotation": 180, "texture": "#5"}, + "up": {"uv": [0, 0, 16, 1], "rotation": 270, "texture": "#5"}, + "down": {"uv": [0, 1, 16, 2], "rotation": 90, "texture": "#5"} + } + }, + { + "from": [0, 2, 0], + "to": [1, 14, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 8, 8]}, + "faces": { + "north": {"uv": [2, 0, 14, 1], "rotation": 90, "texture": "#5"}, + "east": {"uv": [0, 0, 12, 2], "rotation": 270, "texture": "#5"}, + "south": {"uv": [2, 1, 14, 2], "rotation": 90, "texture": "#5"}, + "west": {"uv": [2, 14, 14, 16], "rotation": 90, "texture": "#5"}, + "up": {"uv": [15, 14, 16, 16], "rotation": 180, "texture": "#5"}, + "down": {"uv": [0, 14, 1, 16], "texture": "#5"} + } + }, + { + "from": [0, 2, 14], + "to": [1, 14, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 8, 8]}, + "faces": { + "north": {"uv": [2, 1, 14, 2], "rotation": 270, "texture": "#5"}, + "east": {"uv": [0, 0, 12, 2], "rotation": 90, "texture": "#5"}, + "south": {"uv": [2, 0, 14, 1], "rotation": 270, "texture": "#5"}, + "west": {"uv": [2, 14, 14, 16], "rotation": 270, "texture": "#5"}, + "up": {"uv": [0, 14, 1, 16], "texture": "#5"}, + "down": {"uv": [15, 14, 16, 16], "rotation": 180, "texture": "#5"} + } + }, + { + "from": [10.9, 3, 3], + "to": [19.9, 13, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [14.9, 8, 8]}, + "faces": { + "north": {"uv": [11.5, 0, 16, 5], "rotation": 180, "texture": "#0"}, + "east": {"uv": [11, 5, 16, 10], "texture": "#0"}, + "south": {"uv": [11.5, 0, 16, 5], "texture": "#0"}, + "west": {"uv": [11, 5, 16, 10], "texture": "#0"}, + "up": {"uv": [11.5, 0, 16, 5], "texture": "#0"}, + "down": {"uv": [11.5, 0, 16, 5], "texture": "#0"} + } + } + ], + "groups": [ + { + "name": "transmission", + "origin": [-8, 8, 8], + "children": [0, 1, 2, 3, 4, 5] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/flywheel/casing_right.json b/src/main/resources/assets/create/models/block/flywheel/casing_right.json new file mode 100644 index 000000000..706c95184 --- /dev/null +++ b/src/main/resources/assets/create/models/block/flywheel/casing_right.json @@ -0,0 +1,95 @@ +{ + "credit": "Made with Blockbench", + "textures": { + "0": "create:block/steam_engine_wheel", + "5": "create:block/brass_casing", + "7": "create:block/brass_gearbox", + "particle": "create:block/steam_engine_wheel" + }, + "elements": [ + { + "from": [1, 0, 0], + "to": [12, 16, 16], + "faces": { + "north": {"uv": [8, 10.5, 16, 16], "rotation": 90, "texture": "#0"}, + "east": {"uv": [0, 0, 16, 16], "texture": "#7"}, + "south": {"uv": [0, 15.5, 8, 10], "rotation": 270, "texture": "#0"}, + "west": {"uv": [0, 0, 16, 16], "texture": "#7"}, + "up": {"uv": [8, 10.5, 16, 16], "rotation": 270, "texture": "#0"}, + "down": {"uv": [8, 10.5, 16, 16], "rotation": 270, "texture": "#0"} + } + }, + { + "from": [0, 0, 0], + "to": [1, 2, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 24]}, + "faces": { + "north": {"uv": [15, 14, 16, 16], "texture": "#5"}, + "east": {"uv": [0, 0, 16, 2], "texture": "#5"}, + "south": {"uv": [0, 14, 1, 16], "texture": "#5"}, + "west": {"uv": [0, 14, 16, 16], "texture": "#5"}, + "up": {"uv": [0, 1, 16, 2], "rotation": 90, "texture": "#5"}, + "down": {"uv": [0, 0, 16, 1], "rotation": 270, "texture": "#5"} + } + }, + { + "from": [0, 14, 0], + "to": [1, 16, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 8, 8]}, + "faces": { + "north": {"uv": [0, 14, 1, 16], "rotation": 180, "texture": "#5"}, + "east": {"uv": [0, 0, 16, 2], "rotation": 180, "texture": "#5"}, + "south": {"uv": [15, 14, 16, 16], "rotation": 180, "texture": "#5"}, + "west": {"uv": [0, 14, 16, 16], "rotation": 180, "texture": "#5"}, + "up": {"uv": [0, 0, 16, 1], "rotation": 270, "texture": "#5"}, + "down": {"uv": [0, 1, 16, 2], "rotation": 90, "texture": "#5"} + } + }, + { + "from": [0, 2, 0], + "to": [1, 14, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 8, 8]}, + "faces": { + "north": {"uv": [2, 0, 14, 1], "rotation": 90, "texture": "#5"}, + "east": {"uv": [0, 0, 12, 2], "rotation": 270, "texture": "#5"}, + "south": {"uv": [2, 1, 14, 2], "rotation": 90, "texture": "#5"}, + "west": {"uv": [2, 14, 14, 16], "rotation": 90, "texture": "#5"}, + "up": {"uv": [15, 14, 16, 16], "rotation": 180, "texture": "#5"}, + "down": {"uv": [0, 14, 1, 16], "texture": "#5"} + } + }, + { + "from": [0, 2, 14], + "to": [1, 14, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 8, 8]}, + "faces": { + "north": {"uv": [2, 1, 14, 2], "rotation": 270, "texture": "#5"}, + "east": {"uv": [0, 0, 12, 2], "rotation": 90, "texture": "#5"}, + "south": {"uv": [2, 0, 14, 1], "rotation": 270, "texture": "#5"}, + "west": {"uv": [2, 14, 14, 16], "rotation": 270, "texture": "#5"}, + "up": {"uv": [0, 14, 1, 16], "texture": "#5"}, + "down": {"uv": [15, 14, 16, 16], "rotation": 180, "texture": "#5"} + } + }, + { + "from": [10.9, 3, 3], + "to": [19.9, 13, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [14.9, 8, 8]}, + "faces": { + "north": {"uv": [11.5, 0, 16, 5], "rotation": 180, "texture": "#0"}, + "east": {"uv": [11, 5, 16, 10], "texture": "#0"}, + "south": {"uv": [11.5, 0, 16, 5], "texture": "#0"}, + "west": {"uv": [11, 5, 16, 10], "texture": "#0"}, + "up": {"uv": [11.5, 0, 16, 5], "texture": "#0"}, + "down": {"uv": [11.5, 0, 16, 5], "texture": "#0"} + } + } + ], + "groups": [ + { + "name": "transmission", + "origin": [-8, 8, 8], + "children": [0, 1, 2, 3, 4, 5] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/flywheel/flywheel.bbmodel b/src/main/resources/assets/create/models/block/flywheel/flywheel.bbmodel new file mode 100644 index 000000000..a1c9455f2 --- /dev/null +++ b/src/main/resources/assets/create/models/block/flywheel/flywheel.bbmodel @@ -0,0 +1 @@ +{"meta":{"format_version":"3.2","model_format":"java_block","box_uv":false},"name":"item","resolution":{"width":16,"height":16},"elements":[{"name":"cube","from":[22,6,6],"to":[32,10,10],"autouv":0,"color":0,"origin":[-5,8,8],"faces":{"north":{"uv":[2,7,7,9],"texture":0},"east":{"uv":[0,7,2,9],"texture":0},"south":{"uv":[2,7,7,9],"texture":0},"west":{"uv":[0,7,2,9],"texture":0},"up":{"uv":[2,7,7,9],"texture":0},"down":{"uv":[2,7,7,9],"texture":0}},"uuid":"50a686cc-3204-b7bf-1566-d1ef05844c60"},{"name":"cube","from":[7,7,7],"to":[23,9,9],"autouv":0,"color":4,"rotation":[0,0,-22.5],"origin":[23,8,8],"faces":{"north":{"uv":[0,9,8,10],"rotation":180,"texture":0},"east":{"uv":[0,0,0,0],"rotation":180,"texture":null},"south":{"uv":[0,9,8,10],"rotation":180,"texture":0},"west":{"uv":[0,0,0,0],"rotation":180,"texture":null},"up":{"uv":[0,9,8,10],"rotation":180,"texture":0},"down":{"uv":[0,9,8,10],"rotation":180,"texture":0}},"uuid":"b575be0b-21f0-8150-9d24-be88ac50d1df"},{"name":"cube","from":[3,3,-3.9000000000000004],"to":[13,13,5.1],"autouv":0,"color":5,"origin":[8,8,1.0999999999999996],"faces":{"north":{"uv":[11,5,16,10],"texture":0},"east":{"uv":[11.5,0,16,5],"texture":0},"south":{"uv":[11,5,16,10],"texture":0},"west":{"uv":[11.5,0,16,5],"rotation":180,"texture":0},"up":{"uv":[11.5,0,16,5],"rotation":270,"texture":0},"down":{"uv":[11.5,0,16,5],"rotation":90,"texture":0}},"uuid":"2f1e2920-2ea2-8af4-3221-eb3bc7043169"},{"name":"cube","from":[0,0,4],"to":[16,16,15],"autouv":0,"color":5,"origin":[8,8,8],"faces":{"north":{"uv":[0,0,16,16],"texture":5},"east":{"uv":[0,15.5,8,10],"rotation":270,"texture":0},"south":{"uv":[0,0,16,16],"texture":5},"west":{"uv":[8,10.5,16,16],"rotation":90,"texture":0},"up":{"uv":[8,10.5,16,16],"rotation":180,"texture":0},"down":{"uv":[8,10.5,16,16],"texture":0}},"uuid":"b0cd1b60-1f63-cbfa-eb62-4b456dfe2734"},{"name":"spoke","from":[6,-8,-0.8999999999999995],"to":[10,3,3.1000000000000005],"autouv":0,"color":0,"rotation":[0,0,-45],"origin":[8,8,1.1000000000000005],"faces":{"north":{"uv":[9,4.5,11,10],"rotation":180,"texture":0},"east":{"uv":[9,4.5,11,10],"rotation":180,"texture":0},"south":{"uv":[9,4.5,11,10],"rotation":180,"texture":0},"west":{"uv":[9,4.5,11,10],"rotation":180,"texture":0},"up":{"uv":[0,0,0,0],"rotation":90,"texture":null},"down":{"uv":[0,0,0,0],"rotation":270,"texture":null}},"uuid":"cb470bb9-82ea-3186-ac3f-e6cd886649bc"},{"name":"cube","from":[-0.5,23.5,-1.8500000000000005],"to":[16.5,28.5,4.049999999999998],"autouv":0,"color":4,"rotation":[0,0,-45],"origin":[8,8,1.0999999999999988],"faces":{"north":{"uv":[0,0,8.5,2.5],"texture":0},"east":{"uv":[8.5,0,11.5,2.5],"texture":0},"south":{"uv":[0,0,8.5,2.5],"texture":0},"west":{"uv":[8.5,0,11.5,2.5],"texture":0},"up":{"uv":[0,2.5,8.5,5.5],"texture":0},"down":{"uv":[0,2.5,8.5,5.5],"texture":0}},"uuid":"63aed4d8-2ff2-0746-1545-6a76e0d97a9c"},{"name":"cube","from":[-0.5,23.5,-1.9000000000000012],"to":[16.5,28.5,4.099999999999999],"autouv":0,"color":4,"origin":[8,8,1.0999999999999988],"faces":{"north":{"uv":[0,0,8.5,2.5],"texture":0},"east":{"uv":[8.5,0,11.5,2],"texture":0},"south":{"uv":[0,0,8.5,2.5],"texture":0},"west":{"uv":[8.5,0,11.5,2.5],"texture":0},"up":{"uv":[0,2.5,8.5,5.5],"texture":0},"down":{"uv":[0,2.5,8.5,5.5],"texture":0}},"uuid":"6fce1c92-91b6-6314-3bcc-81af1da4fcde"},{"name":"cube","from":[14.75,7,11.549999999999997],"to":[30.75,9,13.449999999999996],"autouv":0,"color":7,"rotation":[0,0,-22.5],"origin":[15,8,21],"faces":{"north":{"uv":[0,9,8,10],"rotation":180,"texture":0},"east":{"uv":[0,0,0,0],"rotation":270,"texture":null},"south":{"uv":[0,9,8,10],"rotation":180,"texture":0},"west":{"uv":[0,0,0,0],"rotation":270,"texture":null},"up":{"uv":[0,9,8,10],"rotation":180,"texture":0},"down":{"uv":[0,9,8,10],"rotation":180,"texture":0}},"uuid":"206f3d87-1379-a949-ead0-500086d5bbe2"},{"name":"cube","from":[29,1,11.5],"to":[32,3,13.5],"autouv":0,"color":4,"origin":[8,8,17],"faces":{"north":{"uv":[6.5,9,8,10],"rotation":180,"texture":0},"east":{"uv":[0,9,1.5,10],"rotation":180,"texture":0},"south":{"uv":[0,9,1.5,10],"rotation":180,"texture":0},"west":{"uv":[0,9,1.5,10],"rotation":180,"texture":0},"up":{"uv":[0,9,1.5,10],"rotation":180,"texture":0},"down":{"uv":[0,9,1.5,10],"rotation":180,"texture":0}},"uuid":"0af1e6ff-4a9e-283a-2942-84d3ec8b5836"},{"name":"cube","from":[23.5,-0.5,-1.9000000000000012],"to":[28.5,16.5,4.099999999999999],"autouv":0,"color":4,"origin":[8,8,1.0999999999999988],"faces":{"north":{"uv":[0,0,8.5,2.5],"rotation":270,"texture":0},"east":{"uv":[0,2.5,8.5,5.5],"rotation":90,"texture":0},"south":{"uv":[0,0,8.5,2.5],"rotation":90,"texture":0},"west":{"uv":[0,2.5,8.5,5.5],"rotation":90,"texture":0},"up":{"uv":[8.5,0,11.5,2.5],"rotation":90,"texture":0},"down":{"uv":[8.5,0,11.5,2],"rotation":90,"texture":0}},"uuid":"a5520e2b-ba0a-b510-e5ea-f1a950a16250"},{"name":"cube","from":[-0.5,-12.5,-1.8500000000000005],"to":[16.5,-7.5,4.049999999999998],"autouv":0,"color":4,"rotation":[0,0,45],"origin":[8,8,1.0999999999999988],"faces":{"north":{"uv":[0,0,8.5,2.5],"rotation":180,"texture":0},"east":{"uv":[8.5,0,11.5,2.5],"rotation":180,"texture":0},"south":{"uv":[0,0,8.5,2.5],"rotation":180,"texture":0},"west":{"uv":[8.5,0,11.5,2.5],"rotation":180,"texture":0},"up":{"uv":[0,2.5,8.5,5.5],"rotation":180,"texture":0},"down":{"uv":[0,2.5,8.5,5.5],"rotation":180,"texture":0}},"uuid":"2f5b7526-cca3-7518-3496-d1b0bbe08e75"},{"name":"cube","from":[-12.5,-0.5,-1.8500000000000005],"to":[-7.5,16.5,4.049999999999998],"autouv":0,"color":4,"rotation":[0,0,-45],"origin":[8,8,1.0999999999999988],"faces":{"north":{"uv":[0,0,8.5,2.5],"rotation":90,"texture":0},"east":{"uv":[0,2.5,8.5,5.5],"rotation":270,"texture":0},"south":{"uv":[0,0,8.5,2.5],"rotation":270,"texture":0},"west":{"uv":[0,2.5,8.5,5.5],"rotation":270,"texture":0},"up":{"uv":[8.5,0,11.5,2.5],"rotation":270,"texture":0},"down":{"uv":[8.5,0,11.5,2.5],"rotation":270,"texture":0}},"uuid":"429976b8-16fe-3f5c-55db-9aab4c9fbebc"},{"name":"cube","from":[-12.5,-0.5,-1.9000000000000012],"to":[-7.5,16.5,4.099999999999999],"autouv":0,"color":4,"origin":[8,8,1.0999999999999988],"faces":{"north":{"uv":[0,0,8.5,2.5],"rotation":90,"texture":0},"east":{"uv":[0,2.5,8.5,5.5],"rotation":270,"texture":0},"south":{"uv":[0,0,8.5,2.5],"rotation":270,"texture":0},"west":{"uv":[0,2.5,8.5,5.5],"rotation":270,"texture":0},"up":{"uv":[8.5,0,11.5,2],"rotation":270,"texture":0},"down":{"uv":[8.5,0,11.5,2.5],"rotation":270,"texture":0}},"uuid":"50806591-41a8-f2bc-7a1d-e43b23b96408"},{"name":"cube","from":[-0.5,-12.5,-1.8500000000000005],"to":[16.5,-7.5,4.049999999999998],"autouv":0,"color":4,"rotation":[0,0,-45],"origin":[8,8,1.0999999999999988],"faces":{"north":{"uv":[0,0,8.5,2.5],"rotation":180,"texture":0},"east":{"uv":[8.5,0,11.5,2.5],"rotation":180,"texture":0},"south":{"uv":[0,0,8.5,2.5],"rotation":180,"texture":0},"west":{"uv":[8.5,0,11.5,2.5],"rotation":180,"texture":0},"up":{"uv":[0,2.5,8.5,5.5],"rotation":180,"texture":0},"down":{"uv":[0,2.5,8.5,5.5],"rotation":180,"texture":0}},"uuid":"801950a3-dd0a-627f-7246-561bcad27e88"},{"name":"cube","from":[-0.5,-12.5,-1.9000000000000012],"to":[16.5,-7.5,4.099999999999999],"autouv":0,"color":4,"origin":[8,8,1.0999999999999988],"faces":{"north":{"uv":[0,0,8.5,2.5],"rotation":180,"texture":0},"east":{"uv":[8.5,0,11.5,2.5],"rotation":180,"texture":0},"south":{"uv":[0,0,8.5,2.5],"rotation":180,"texture":0},"west":{"uv":[8.5,0,11.5,2],"rotation":180,"texture":0},"up":{"uv":[0,2.5,8.5,5.5],"rotation":180,"texture":0},"down":{"uv":[0,2.5,8.5,5.5],"rotation":180,"texture":0}},"uuid":"b991a213-a5c0-1951-d6f3-229a0c14d9c5"},{"name":"cube","from":[0,0,15],"to":[16,2,16],"autouv":0,"color":3,"origin":[24,8,8],"faces":{"north":{"uv":[0,0,16,2],"texture":4},"east":{"uv":[0,14,1,16],"texture":4},"south":{"uv":[0,14,16,16],"texture":4},"west":{"uv":[15,14,16,16],"texture":4},"up":{"uv":[0,1,16,2],"texture":4},"down":{"uv":[0,0,16,1],"texture":4}},"uuid":"7883be7c-2f95-da04-1f6b-6eb29690cc04"},{"name":"cube","from":[0,14,15],"to":[16,16,16],"autouv":0,"color":3,"origin":[8,8,16],"faces":{"north":{"uv":[0,0,16,2],"rotation":180,"texture":4},"east":{"uv":[15,14,16,16],"rotation":180,"texture":4},"south":{"uv":[0,14,16,16],"rotation":180,"texture":4},"west":{"uv":[0,14,1,16],"rotation":180,"texture":4},"up":{"uv":[0,0,16,1],"rotation":180,"texture":4},"down":{"uv":[0,1,16,2],"rotation":180,"texture":4}},"uuid":"af3517df-2487-59e1-2d3b-ac71c65b47eb"},{"name":"cube","from":[0,2,15],"to":[2,14,16],"autouv":0,"color":3,"origin":[8,8,16],"faces":{"north":{"uv":[0,0,12,2],"rotation":270,"texture":4},"east":{"uv":[2,1,14,2],"rotation":90,"texture":4},"south":{"uv":[2,14,14,16],"rotation":90,"texture":4},"west":{"uv":[2,0,14,1],"rotation":90,"texture":4},"up":{"uv":[15,14,16,16],"rotation":90,"texture":4},"down":{"uv":[0,14,1,16],"rotation":90,"texture":4}},"uuid":"3236180d-0eb5-9846-f6df-71338b95b172"},{"name":"cube","from":[14,2,15],"to":[16,14,16],"autouv":0,"color":3,"origin":[8,8,16],"faces":{"north":{"uv":[0,0,12,2],"rotation":90,"texture":4},"east":{"uv":[2,0,14,1],"rotation":270,"texture":4},"south":{"uv":[2,14,14,16],"rotation":270,"texture":4},"west":{"uv":[2,1,14,2],"rotation":270,"texture":4},"up":{"uv":[0,14,1,16],"rotation":270,"texture":4},"down":{"uv":[15,14,16,16],"rotation":270,"texture":4}},"uuid":"ffb4c72b-0971-aa72-e873-312bea4c432f"},{"name":"spoke","from":[-8,6,-0.8999999999999995],"to":[3,10,3.1000000000000005],"autouv":0,"color":0,"rotation":[0,0,-45],"origin":[8,8,1.1000000000000005],"faces":{"north":{"uv":[9,4.5,11,10],"rotation":90,"texture":0},"east":{"uv":[0,0,0,0],"rotation":180,"texture":null},"south":{"uv":[9,4.5,11,10],"rotation":270,"texture":0},"west":{"uv":[0,0,0,0],"texture":null},"up":{"uv":[9,4.5,11,10],"rotation":270,"texture":0},"down":{"uv":[9,4.5,11,10],"rotation":270,"texture":0}},"uuid":"1dba4685-5282-a030-17a2-2f9374e8c6a1"},{"name":"spoke","from":[-8,6,-0.8999999999999995],"to":[3,10,3.1000000000000005],"autouv":0,"color":0,"origin":[8,8,1.1000000000000005],"faces":{"north":{"uv":[9,4.5,11,10],"rotation":90,"texture":0},"east":{"uv":[0,0,0,0],"rotation":180,"texture":null},"south":{"uv":[9,4.5,11,10],"rotation":270,"texture":0},"west":{"uv":[0,0,0,0],"texture":null},"up":{"uv":[9,4.5,11,10],"rotation":270,"texture":0},"down":{"uv":[9,4.5,11,10],"rotation":270,"texture":0}},"uuid":"b7cb6152-0be0-b1df-252e-0cab5138efdf"},{"name":"spoke","from":[13,6,-0.8999999999999995],"to":[24,10,3.1000000000000005],"autouv":0,"color":0,"rotation":[0,0,-45],"origin":[8,8,1.1000000000000005],"faces":{"north":{"uv":[9,4.5,11,10],"rotation":270,"texture":0},"east":{"uv":[0,0,0,0],"rotation":180,"texture":null},"south":{"uv":[9,4.5,11,10],"rotation":90,"texture":0},"west":{"uv":[0,0,0,0],"texture":null},"up":{"uv":[9,4.5,11,10],"rotation":90,"texture":0},"down":{"uv":[9,4.5,11,10],"rotation":90,"texture":0}},"uuid":"1b7cc7a0-6cc9-31a9-143f-94aee22489b4"},{"name":"spoke","from":[6,13,-0.8999999999999995],"to":[10,24,3.1000000000000005],"autouv":0,"color":0,"rotation":[0,0,-45],"origin":[8,8,1.1000000000000005],"faces":{"north":{"uv":[9,4.5,11,10],"texture":0},"east":{"uv":[9,4.5,11,10],"texture":0},"south":{"uv":[9,4.5,11,10],"texture":0},"west":{"uv":[9,4.5,11,10],"texture":0},"up":{"uv":[0,0,0,0],"rotation":90,"texture":null},"down":{"uv":[0,0,0,0],"rotation":270,"texture":null}},"uuid":"e65ae52f-ddd5-8121-f730-88b35ea0fb5a"},{"name":"spoke","from":[13,6,-0.8999999999999995],"to":[24,10,3.1000000000000005],"autouv":0,"color":0,"origin":[8,8,1.1000000000000005],"faces":{"north":{"uv":[9,4.5,11,10],"rotation":270,"texture":0},"east":{"uv":[0,0,0,0],"rotation":180,"texture":null},"south":{"uv":[9,4.5,11,10],"rotation":90,"texture":0},"west":{"uv":[0,0,0,0],"texture":null},"up":{"uv":[9,4.5,11,10],"rotation":90,"texture":0},"down":{"uv":[9,4.5,11,10],"rotation":90,"texture":0}},"uuid":"d7980b7f-ef13-e3e1-ab0d-537ffccff639"},{"name":"spoke","from":[6,-8,-0.8999999999999995],"to":[10,3,3.1000000000000005],"autouv":0,"color":0,"origin":[8,8,1.1000000000000005],"faces":{"north":{"uv":[9,4.5,11,10],"rotation":180,"texture":0},"east":{"uv":[9,4.5,11,10],"rotation":180,"texture":0},"south":{"uv":[9,4.5,11,10],"rotation":180,"texture":0},"west":{"uv":[9,4.5,11,10],"rotation":180,"texture":0},"up":{"uv":[0,0,0,0],"rotation":90,"texture":null},"down":{"uv":[0,0,0,0],"rotation":270,"texture":null}},"uuid":"841862c5-48f4-a81f-17fb-497457cbe793"},{"name":"spoke","from":[6,13,-0.8999999999999995],"to":[10,24,3.1000000000000005],"autouv":0,"color":0,"origin":[8,8,1.1000000000000005],"faces":{"north":{"uv":[9,4.5,11,10],"texture":0},"east":{"uv":[9,4.5,11,10],"texture":0},"south":{"uv":[9,4.5,11,10],"texture":0},"west":{"uv":[9,4.5,11,10],"texture":0},"up":{"uv":[0,0,0,0],"rotation":90,"texture":null},"down":{"uv":[0,0,0,0],"rotation":270,"texture":null}},"uuid":"29d0cc13-9e08-c9ca-7219-6f1c06816a16"}],"outliner":[{"name":"transmission","uuid":"29aace9e-9299-b75e-5ed5-db8534b5fcbd","export":true,"isOpen":true,"visibility":true,"autouv":0,"origin":[-8,8,8],"children":["0af1e6ff-4a9e-283a-2942-84d3ec8b5836","206f3d87-1379-a949-ead0-500086d5bbe2","50a686cc-3204-b7bf-1566-d1ef05844c60","b575be0b-21f0-8150-9d24-be88ac50d1df","b0cd1b60-1f63-cbfa-eb62-4b456dfe2734","7883be7c-2f95-da04-1f6b-6eb29690cc04","af3517df-2487-59e1-2d3b-ac71c65b47eb","3236180d-0eb5-9846-f6df-71338b95b172","ffb4c72b-0971-aa72-e873-312bea4c432f"]},{"name":"wheel","uuid":"a3567eb7-af40-11f6-7e9b-dab5508c4ff5","export":true,"isOpen":true,"visibility":true,"autouv":0,"origin":[24,8,8],"children":["2f1e2920-2ea2-8af4-3221-eb3bc7043169","6fce1c92-91b6-6314-3bcc-81af1da4fcde","b991a213-a5c0-1951-d6f3-229a0c14d9c5","a5520e2b-ba0a-b510-e5ea-f1a950a16250","50806591-41a8-f2bc-7a1d-e43b23b96408","63aed4d8-2ff2-0746-1545-6a76e0d97a9c","801950a3-dd0a-627f-7246-561bcad27e88","2f5b7526-cca3-7518-3496-d1b0bbe08e75","429976b8-16fe-3f5c-55db-9aab4c9fbebc","cb470bb9-82ea-3186-ac3f-e6cd886649bc","e65ae52f-ddd5-8121-f730-88b35ea0fb5a","b7cb6152-0be0-b1df-252e-0cab5138efdf","d7980b7f-ef13-e3e1-ab0d-537ffccff639","1dba4685-5282-a030-17a2-2f9374e8c6a1","841862c5-48f4-a81f-17fb-497457cbe793","1b7cc7a0-6cc9-31a9-143f-94aee22489b4","29d0cc13-9e08-c9ca-7219-6f1c06816a16"]}],"textures":[{"path":"C:\\Users\\simon\\Desktop\\Forge\\Create\\src\\main\\resources\\assets\\create\\textures\\block\\steam_engine_wheel.png","name":"steam_engine_wheel.png","folder":"block","namespace":"create","id":"0","particle":true,"mode":"bitmap","saved":true,"uuid":"00cbd3bd-665f-44c1-56df-1cd7fc617269","source":"data:image/png;base64,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"},{"path":"C:\\Users\\simon\\Desktop\\Forge\\Create\\src\\main\\resources\\assets\\create\\textures\\block\\axis.png","name":"axis.png","folder":"block","namespace":"create","id":"1","particle":false,"mode":"bitmap","saved":true,"uuid":"11fa98c7-e27a-e24b-c2d5-5354841d3e37","source":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAo0lEQVQ4T6WTIQ4EIQxFO4IRIECAgLshMBwKO+fCggWDZVOSSVbMJjulkpTH/+X3gB/lvZ/WWhhjQO8drus6nlofD7ExhDCFEOsOGcAYA+cc5JzfK4gxTnxdKQW1VhrgPE/QWu8pQAulFEgpvRvit4XWGg2AFjjnQAJgDqSUawYkC3eQUAEJgEEyxiwLpBxsA/AXMERYW0FCCyTAvUxkwL/r/AGRGnYRGJZooQAAAABJRU5ErkJggg=="},{"path":"C:\\Users\\simon\\Desktop\\Forge\\Create\\src\\main\\resources\\assets\\create\\textures\\block\\axis_top.png","name":"axis_top.png","folder":"block","namespace":"create","id":"2","particle":false,"mode":"bitmap","saved":true,"uuid":"279bd0dd-96c2-3792-e8c9-19b78bfa04b1","source":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA6UlEQVQ4T2NMDFP8z8DAwPDpyzcGPh4uOD1/1X1GkDghwAgywMLIguHtu/cMLEx/Gd58fMPw+u0HBpIMMDc0Y3j16hXDlx8fGGQklRjOXzlHmgGWZg4Md+5eANusp6bOcOnWTeINCPYS/29jZMjw+etPuHcv3rzGsHbbS+LDABaIIBoWkEQbgCuU09LS/gsICDD8+vWL4du3bwyzZs3C6iKcziwoKPgvJSXF8OPHD4YvX74wdHV1kWZAWVnZfx4eHobfv38zfP78mWHChAmkGRAbG/tfUlKSfC8QSoEweaKiCp9howYwMAAAZ+5uEWwI6EAAAAAASUVORK5CYII="},{"path":"C:\\Users\\simon\\Desktop\\Forge\\Create\\src\\main\\resources\\assets\\create\\textures\\block\\furnace_cylinder.png","name":"furnace_cylinder.png","folder":"block","namespace":"create","id":"1_1","particle":false,"mode":"bitmap","saved":true,"uuid":"22db08fc-cd87-a68b-b384-8c82a249326f","source":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAIWklEQVRYR51XWWxcZxX+7jaLM9PsceK4sTOeOLbH4yXjrUsqHkirSggKVIhXXngAVCXwgIQqtQkIXioeQEKAhBAPLEKiDzxEDY3yECcgaB3HdjyJZ8ZjO3ZiJ44ntme964/Oub7XYydUwC+N7v6f73zf2UY6/40Oga1lO+6ppslwbAG6VmTJe+wfvfd2P6DvPmuZpuM//vnvZnhj6Qff6hZnUyP8oFKz8aRQgmHZgBAIBVVoqoLMwh28embYf2dldROOEMgupKHrNr587nP+xrQH71WpoaEhxEcBCeWKzg7Rd3cyU/j1n3LbAFKJQfz0Z391P6zWnvH0ra/E0NM+gMnMp4g1J5FfmsLRg+24m5+GaTk499LLGB37JxzHYQPsGQA627qEJEn864wlMJmZwi9/n3UBvPudbtFyrBO/+e1V7NujolhzaSqWqz6Qr77dhkQ8hVJF53ubpRpURUJmPo2aYeNsagi30rfwxiuvsRHDsmBaAtWqyd9YlsNA0vkJdLV17wRw6UKPaG/pwU8++BDBYACKQvq7IA5ENKiqjNSrhxlAuWpACIFiWfcBEK0jvQOYyt7C2TNnfQCGacM0bFi2DccBg5qcGcdgcgBj07fgx4DHwC9+dZmNNoRDbMQwTJhVC4oi4Qtvx9AdP4NKzYRuWPwLBVSkZ6dY11RXP7KLEzjTMcJ6m5YJ07Jh24L3Iu9Ny8JUZgIdJ7uRWUhvA/AY+PEHH/qUU+QTkAMRlelLnW1Ed7yP6SZKHUcg0hDA5MyEDyD/YBI97cMcEwSADFu2gGnaW3HgID07iVTiOQzQ5n/58ygerpV8EPUx8KW3YkjE+1CumiwDreieICbu3fYBzC5NItk+xAYN0+RgJPCGaUGSZGiqhOnsJE61JHYyQBL0dw7i4sU/QgkpsGu2e3QEonvCbOzzbzQxgMJGFaQtlYZwKMCU0nudsSSWHk2j9/Qge10zDH6PZBCOQEBTEQyoGL87hvaWXRJQHahPQzf4VJ+JQsnC6282IdHWj+XVIqeWIgMBLYDpnAugvbULq08z6Dk1yDJVqrobAw5FBBAKBhAIqBib/hfHAKWvH4QUA4PdQ/j+e3/wjXqe042mgxEkh/cygIePN/kdCkxN1bYBtHShsJlDoi2FYtlAuVpj3cm4JEvQNA2qIuPTO59gKJnCWHr8+QA8w14xIjloffFrcQ7CdP42Du07hSfrWS5It++Os8eJtm48Lc76Xgc1maXwGJAkoFyxUSxZGO4dwFj61nYhIgb6OgagqW4dr1RN1AyLzymgaN1fSf9HBghAT3uSGaFAq9QMTj9iiY5+Saxj7pOpse1STAB87gEYdQ0jUNdc6D5d1z9//GS7bDeE3bjxGlh9Y6P7XnOjc+offi94XjfMPY7xZrquIxgM1uPj81KphHMDGzvu13QH8lYzrAdOLxFoqoahoOsAnbtsW5De/XaPSLZ3sWYUZEuP5pFZacWeaBSKosC2bf/oWVwvFPBa8jFIOlqaSt5z69kBirSvX15joiMVqo//fhPS++f7xOnWDkzfS+PQoRcx/2AOMyst2HfgAEzTZOPylmt0TevR8jIzMNg9gsz8IzigiudgfzSMhrCGp8UqxJaXVA8oJWiPcEhDZE+AjR/aF8WVG9ch/fC7fSLW3AnDpCZTxtxSHhPzjb5RT4rdOrgAhjGdW+Gqd3BvAzeymmHCsh3uG5osw7Qd2MJBJBxAQyjAZVxVJRw9uBeXr28BONWSRLVGZVbH3GIGq2aKvaf89bxeX19HNBrF8vIyRkdHuY2/0k8MPGEAVJppHqjoBl8bhoOArEBSJAgIBDUV4ZDKIEmaw/siuHx9FNKlC73cjglxtWYgvzjDAApra1BUFbblpqR3XqlWce3aNR9A7v4ap5wsSxzpOs0CDtEOyJAQDgbYIO8hywyA1vEjL+Djf9yEdPE8AUiiXDNhWTay83fxsNKD4uYmcrOzO5iPx+PY2NjYwUB+qcAzA9FOABzhUi5L5DkQ0jQGQLoT/VQbHEfC6ZMHceXGDUjvvdMrTrd2o1Q1QZ/cm0vjYbkHlUoFMzMzOwG0tcFjwCvhi482ePOqbrIEFGxknEqvN5YROxT5NsWD7XbJrvgRV4L33+kV1CKLFYPpuZefZgAkwcL9+88A2NjcZAYIwFByCIvLReimCcM2YQsBRZKgSC7NNNB6i4yTYS7PEpCIN+Kj0RuQLp3vE20nurBR1JnKmS0GisUicrncDgDNzc3sJcWAByCdf8zvEP30fUBTmHoKRAJDi407rvcEbm80jKYjEReAm4ZdKKxXuWXSoJlZOQEBBaZhcCYUSyVEIxHebDcDlAXENeW9otLgIbMklH40C3BwsvbuxEzyUD1obdrvAvjR9/pF7HgXnqxXOFUIwPhc4zNpWE9FvQTZhTWO+BCnmMQU8892WBqujZQRJA3Fh0xHCSePH9iS4EKfaG1qx3rRRECTkF2YwXi+0e8BVPfJ4O5C5AVhZm4VJOoLkSAXGN20YVlUB9x0pDGdlirL0BSSR/BQ23HyiJeGfaLlWBtyc1k0H48hu5BD+sGL3Au8svtZAOYfFNx0C6ocA1SSqaWTEUlx05A8J1koPSkQKWP6Tje5AEiCpsMn2Rh1p9nFHO4tb/cCajxXr159hgGqhC/3jaCwWeHZnwKM6KUZYrOo8yQkZAfRcBABVWVgVGl1i5qbhETsKP528wYVoqSgTkgakXarazWkl46xBNSOaT2PAQLwUu8wVgtlTisKOirnum6xccoGyphgUN0qPtux0RBSceLYfnxEhWi3tv/tNQGgOuDm+//ejgnclZs3/38A3/x6XHhTEOf6rr/2ux2RFdfX+smIrv8Nut9XyvRF8YQAAAAASUVORK5CYII="},{"path":"C:\\Users\\simon\\Desktop\\Forge\\Create\\src\\main\\resources\\assets\\create\\textures\\block\\brass_casing.png","name":"brass_casing.png","folder":"block","namespace":"create","id":"5","particle":false,"mode":"bitmap","saved":true,"uuid":"03f2b83c-2540-b890-0fa9-1048ec09c3c0","source":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAB0UlEQVQ4T2PMjVf/zwAFrKxMMCZe+vfvf3B5xrQIlf+Brg5wgW8//oLZ3779YODi4gDTIPDj1x+4GiEBHjB75+HDDIwZ0ar/XS2tGJq71oMFudiYwTQLKyPDn9//wTQyAImBQFqqB8OJS2cgBtgamzF0T9jMoCwFMfnPL4QTQfxff/8zsDEjDHr96SfCAFAYWOibMEydto1BlI8drBgfABn0/vsvhoBgG4b7j28yMIIMMNYyZJi3YBeDICcb2ICPX3/BvQF2EdTZ/NxsYJeAXBASYYtqwKzZOxlACkDg+fvvDJKCnCgOARkKkwexMQxAdwFI8ddfv8GGcLOxgtkgmmgvwAwAOR/EhrkApxewuQDZDzAXgMRAhqWlujOcvXYeEoiaSroMSxbvhccCLBC//foLThewtIDshaQEN4QBagpaDKtXHYTHAqFoBMVCfLwzw5U7lyEJSVtZh2H1aogB2BIOzEAWNiZwIoMZcP7GRVQDYEkXFu/4XJKd5cVw+OwpiAF6aroMrCysDKwsjAzffvxi+Pv3PwMzMyOcBucRTnawed++/wTT/LycDAdPnWQA50aIAha4hX///WdgZmJkANEgAMvm//7+h4uBxH/+/MsAAPTFDuFjKTIFAAAAAElFTkSuQmCC"},{"path":"C:\\Users\\simon\\Desktop\\Forge\\Create\\src\\main\\resources\\assets\\create\\textures\\block\\brass_gearbox.png","name":"brass_gearbox.png","folder":"block","namespace":"create","id":"7","particle":false,"mode":"bitmap","saved":true,"uuid":"c8e5c536-6dcc-dc5c-680c-9d18e67c9b7d","source":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACLElEQVQ4T42TzWsTQRjGn9mPfGwToyVtSMEoVivGVtFoP8SCIFURAhY9FDykCA2i+Fd404sXPSiIoCdz8BAQKngoOZjWxqIWURAKKTRYRbGrm+xuNlveWXeTaBQfWN6Zd2Z+O+/HsGuZvTZ+SZYFd/hPa5oNb51lp3bbkxMnPIdWs/hY02pQlAC3pJpR9/Z0bw3x8WyhAHb54h57YuwYrt94wp2KT+RWkhnqps1tq8hHys6cQfHNogMYTw3j5q08+vscct1oXpHmhmXDJzogySeg8qXaBFAORg8ewe07TxGPBvlhrXsQXSEHRmKM4YeqQvm6zOffqgbOnT+OldUPYARIJQ/h/oNn6IkEsBFKolwuQ1VVfFpf5wdivb0Ih8NIJBIc8nlDx4Wp8XbA3XuziHT5IG4/ilelEtYqlbbY++JxDI+MQF95ge8/jT8BdINtQR9YYhT5fB6W5VTDlSiKSKfTsMvFv4fwv4COIbg3EHaMYb5Y7BjC4VQK1upLHkJ25jRK75acJO7bNYRHD5+jZ4ufV6BTEqPRKGKxGE8iVeHS9KkmYGBnErnHczwHJIL4AwEIgsA/KqNpmhDXFvk6hZDJnMTyx7dOI+3vH0Qu1wS0Nk5rIqmJSNRIBFh6/7od4Lau265tZfhtcvXKWRRKCw7gwMAQZEmGLDFoNQOWZUMUmWfprBL0O+FVdW4j4SDmFubBX6OzQfL+YTVsiAIDWZL7zBuW7fnIr+sWNgGA/hThYohg9gAAAABJRU5ErkJggg=="},{"path":"D:\\simon\\Minecraft\\Minecraft Assets\\minecraft\\textures\\MC Block Textures\\furnace_front.png","name":"furnace_front.png","folder":"MC Block Textures","namespace":"minecraft","id":"6","particle":false,"mode":"bitmap","saved":true,"uuid":"3895c9c0-992f-69b9-72eb-ef854cb1a475","source":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABy0lEQVQ4T32Tz0sCURDHx5uw/gITY1MwBEPLW3jQlQhPCWmXJPwD/A/Cq3+Af4EHu0keJbCTRGgepJuldJAEbUlsQV0XvBkzy3uuIM7lvTdv5zMz33lrukml1mCwP0WBA6eTe/DMDP3szL4xIeBQFOkbu91O63w+pz1bd/nk8RhUVQWTFIutj30+ED0eEEURZFkGm80Go9GIILi3WCywXC5pxXsG/ur3gVfg9Xop+3O9Dj+ybOyK749EEa6SSVgsFgT5lWUdcBIMUiYM/uz1dgYz52koBDFJAmzhezjUW0AHEqvVKg92OBxboNlsxs+FQgHeOx0dwCowAjDLLmPVMQAXEStAAd1uN8WZzeadgNVqRf7JZEJivrVamxZQAyaOpqo0FawK94LVujVW9KNxEe/zeZhOp+ByufYKaLzEMT9WKroGd9ksv8PysdTBYLAF8/v91Bre4aooCjyUyzrgOp0GQRCoN1S31W6DUXUk4VSkaBTOIxHSStM0eKrVdMBlIkHZXhoNeG0297ZxEY8DvptAILABoAOngONhtu8dFItFetqYkB7SbSZDYymVSlTqPsPWcrkcVUAaIOAsHIaPbpfHGX9nI8z4a7OYfw4q+2WVMkrOAAAAAElFTkSuQmCC"},{"path":"D:\\simon\\Minecraft\\Minecraft Assets\\minecraft\\textures\\MC Block Textures\\furnace_side.png","name":"furnace_side.png","folder":"MC Block Textures","namespace":"minecraft","id":"8","particle":false,"mode":"bitmap","saved":true,"uuid":"178a3ef8-0486-c590-9946-223b61cd6838","source":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABnElEQVQ4T4VTQUsCURAeb8K6Cm5CLAp2S0lCCC/6F9Iuec//EP4bu0l/QrrYQQskDLfOLktiK+i64M34ZpvXKzTnsm/mffPNzDf7Ylf1+pY0+/R9OrIsFYEvhrj4gomBwDRNMkyTcalUipbLJeVyOVqtVnwWkzv4YRBQEASkCOxslmzbZuzzcMiEAJ0WixwTMhCL/+44EcGxbXNFsUQioUhQFcTr9Zqvp9Opwj4NBr87SCaTit1zXUJXMg5IQfI2maj463hMsVq1uj3J5zlRdJDWJQlV0QkK4PzheYyHoGqEQqHAQc/zVFX4OomIzDjXjUREB9VajdklwXEcNSfEA/iiUlE6iIiP/X5EcFYqcYswzIwRYNBgXzJwGIVHuG23aT6fUyaTUZs4dIAW991uRHDZaJBhGJwTj8dps9nwd5f5vk+WZRG+d51ONMJNqxVt4ZvkUHXcz2Yzeuj1IoLrZpPV1g1kYRjuJEUc/wQTYITzcpnS6bRa2T4yJMlaF4sFvYxGP/+BvmMoLFv5O47+uNQWdNB/zxk4/anD/wJPDv7ZTcB8KgAAAABJRU5ErkJggg=="},{"path":"D:\\simon\\Minecraft\\Minecraft Assets\\minecraft\\textures\\MC Block Textures\\furnace_top.png","name":"furnace_top.png","folder":"MC Block Textures","namespace":"minecraft","id":"9","particle":false,"mode":"bitmap","saved":true,"uuid":"467cb437-a46b-4f88-1e88-7b712905e30d","source":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABdElEQVQ4T5WTMU8CQRCFh1oOCizMBRKs9Ij8AmgMlRTERn4xFqAdhtMacrGQAg5rzLeXtxkIjdPAzr15++bNbO15Mjmai5/t1q5brZjhrCCvszA1CJIkiaCrJLFOpxPO+/3eis3GyBHNZtMajYat12v7LUsry9IiQdpuW5qmAVgURfW72dh9r2f1et0Oh0Mo9ORfeV4R3KSpZVkWQICJ98XCPCk5kaCEiAR3WRak6SYvHbCUeeLdbmcfy6XVhoPB8aHfDz2pV/4jHSKAvv/P1Sqc6R9DowfqNc/z0KdakXQVgiPw47soKgWD4TDKVJ94orhEitGvs1lF8DKd+lWIU9DIzhVRzLe3+bxq4XE0OiGQCpIUI1c7ICDFRCBgCt5p3XDugxaIQgyPU7jtdsPMkSXnvQe61fvDJWEP8OBpPDa5DDNjFKFXIWW+jZMW2D6CYr0BbR15duLiKvOYKAIgs2gFiXzzC8Z/MGDDHvznOaPCP3XOf4rhB+gyEDqQAAAAAElFTkSuQmCC"},{"path":"C:\\Users\\simon\\Desktop\\Forge\\Create\\src\\main\\resources\\assets\\create\\textures\\block\\brass_block.png","name":"brass_block.png","folder":"block","namespace":"create","id":"10","particle":false,"mode":"bitmap","saved":true,"uuid":"a8ef7d1b-65c5-0db5-120d-dad3d9c754cf","source":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVQ4T1WTS2/TQBDH/961Y8dJ6iRqKaAKJApVgYqHeHwWPgEnLtw58a24cagQKg+1oaioFIHEQ6oqItEQ196X0ezETpjLrmZ3fzPzn9ng+dNbFRasKB2EYEcr4o3SDs4BSSyaPfnzM4OAAHc27yMK+XJeWL9qrf1aKAsZMLBQxq/DfhdpIvFie5sBD7Ye4vDbCWxVwdkKa6sZxqc5rOXkSmUgggBRKNHPEu9b7nf+B3w8OvYH9WPaT/ISkZDQjrNaGXSgjfPZZt0OXu68QvDsyVZ1d/Mefp2c+ktJHCIvlH9kTeUBUSRZk5ZEmkRcam6wfzRiwPUrtzH+k/sL1jqfemlZA7JeO/F+Mi6LRfn682AO+HtWeuc0V5Az1ajm2qQUDVxrLuPL9wMW8dL5G9CmQqFUE5lSJ1uEaG29BmRZN8HocDQHjCe5P6AupG2uk7oiA06XHtddGmYdiADY/bTLgOX+BuxM6VosWpWxcNZBSAFnnAd4oVsh0rg1BwyW1oGZNv2lBNpwqiRcrlSjQyyjRp+iNPhx/JkzGPTW4SoaYYFFwHSqAAFEkvWoxZ1MS6+NB1AbV4fX/IRR5Fq4k99TOEpZVsjStofQYNGMUBfXzvXx5sM7Blxc2UCatPxBqQ0oMj2OWyGcc0iSCEoxnMaahqmXxtjZf8+AyxduziIHPkL9B3pdnnvquzYaaTtGPpuXrNfG6723CB4/ulql7bARyjpWOoqEb2ltYjZc5Kvv0Nk/rK1Cjidok2MAAAAASUVORK5CYII="}],"display":{"thirdperson_righthand":{"rotation":[75,-67,0],"translation":[0,2.5,-2],"scale":[0.375,0.375,0.375]},"thirdperson_lefthand":{"rotation":[75,-67,0],"translation":[0,2.5,-2],"scale":[0.375,0.375,0.375]},"firstperson_righthand":{"rotation":[0,-91,0],"scale":[0.4,0.4,0.4]},"firstperson_lefthand":{"rotation":[0,-91,0],"scale":[0.4,0.4,0.4]},"ground":{"rotation":[90,0,0],"translation":[0,2,0],"scale":[0.25,0.25,0.25]},"gui":{"rotation":[30,225,0],"translation":[-0.25,0.75,0],"scale":[0.35,0.35,0.35]},"fixed":{"scale":[0.45,0.45,0.45]}}} \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/flywheel/item.json b/src/main/resources/assets/create/models/block/flywheel/item.json new file mode 100644 index 000000000..8d77ecbc4 --- /dev/null +++ b/src/main/resources/assets/create/models/block/flywheel/item.json @@ -0,0 +1,381 @@ +{ + "credit": "Made with Blockbench", + "textures": { + "0": "create:block/steam_engine_wheel", + "5": "create:block/brass_casing", + "7": "create:block/brass_gearbox", + "particle": "create:block/steam_engine_wheel" + }, + "elements": [ + { + "from": [29, 1, 11.5], + "to": [32, 3, 13.5], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 17]}, + "faces": { + "north": {"uv": [6.5, 9, 8, 10], "rotation": 180, "texture": "#0"}, + "east": {"uv": [0, 9, 1.5, 10], "rotation": 180, "texture": "#0"}, + "south": {"uv": [0, 9, 1.5, 10], "rotation": 180, "texture": "#0"}, + "west": {"uv": [0, 9, 1.5, 10], "rotation": 180, "texture": "#0"}, + "up": {"uv": [0, 9, 1.5, 10], "rotation": 180, "texture": "#0"}, + "down": {"uv": [0, 9, 1.5, 10], "rotation": 180, "texture": "#0"} + } + }, + { + "from": [14.75, 7, 11.55], + "to": [30.75, 9, 13.45], + "rotation": {"angle": -22.5, "axis": "z", "origin": [15, 8, 21]}, + "faces": { + "north": {"uv": [0, 9, 8, 10], "rotation": 180, "texture": "#0"}, + "south": {"uv": [0, 9, 8, 10], "rotation": 180, "texture": "#0"}, + "up": {"uv": [0, 9, 8, 10], "rotation": 180, "texture": "#0"}, + "down": {"uv": [0, 9, 8, 10], "rotation": 180, "texture": "#0"} + } + }, + { + "from": [22, 6, 6], + "to": [32, 10, 10], + "rotation": {"angle": 0, "axis": "y", "origin": [-5, 8, 8]}, + "faces": { + "north": {"uv": [2, 7, 7, 9], "texture": "#0"}, + "east": {"uv": [0, 7, 2, 9], "texture": "#0"}, + "south": {"uv": [2, 7, 7, 9], "texture": "#0"}, + "west": {"uv": [0, 7, 2, 9], "texture": "#0"}, + "up": {"uv": [2, 7, 7, 9], "texture": "#0"}, + "down": {"uv": [2, 7, 7, 9], "texture": "#0"} + } + }, + { + "from": [7, 7, 7], + "to": [23, 9, 9], + "rotation": {"angle": -22.5, "axis": "z", "origin": [23, 8, 8]}, + "faces": { + "north": {"uv": [0, 9, 8, 10], "rotation": 180, "texture": "#0"}, + "south": {"uv": [0, 9, 8, 10], "rotation": 180, "texture": "#0"}, + "up": {"uv": [0, 9, 8, 10], "rotation": 180, "texture": "#0"}, + "down": {"uv": [0, 9, 8, 10], "rotation": 180, "texture": "#0"} + } + }, + { + "from": [0, 0, 4], + "to": [16, 16, 15], + "faces": { + "north": {"uv": [0, 0, 16, 16], "texture": "#7"}, + "east": {"uv": [0, 15.5, 8, 10], "rotation": 270, "texture": "#0"}, + "south": {"uv": [0, 0, 16, 16], "texture": "#7"}, + "west": {"uv": [8, 10.5, 16, 16], "rotation": 90, "texture": "#0"}, + "up": {"uv": [8, 10.5, 16, 16], "rotation": 180, "texture": "#0"}, + "down": {"uv": [8, 10.5, 16, 16], "texture": "#0"} + } + }, + { + "from": [0, 0, 15], + "to": [16, 2, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [24, 8, 8]}, + "faces": { + "north": {"uv": [0, 0, 16, 2], "texture": "#5"}, + "east": {"uv": [0, 14, 1, 16], "texture": "#5"}, + "south": {"uv": [0, 14, 16, 16], "texture": "#5"}, + "west": {"uv": [15, 14, 16, 16], "texture": "#5"}, + "up": {"uv": [0, 1, 16, 2], "texture": "#5"}, + "down": {"uv": [0, 0, 16, 1], "texture": "#5"} + } + }, + { + "from": [0, 14, 15], + "to": [16, 16, 16], + "rotation": {"angle": 0, "axis": "z", "origin": [8, 8, 16]}, + "faces": { + "north": {"uv": [0, 0, 16, 2], "rotation": 180, "texture": "#5"}, + "east": {"uv": [15, 14, 16, 16], "rotation": 180, "texture": "#5"}, + "south": {"uv": [0, 14, 16, 16], "rotation": 180, "texture": "#5"}, + "west": {"uv": [0, 14, 1, 16], "rotation": 180, "texture": "#5"}, + "up": {"uv": [0, 0, 16, 1], "rotation": 180, "texture": "#5"}, + "down": {"uv": [0, 1, 16, 2], "rotation": 180, "texture": "#5"} + } + }, + { + "from": [0, 2, 15], + "to": [2, 14, 16], + "rotation": {"angle": 0, "axis": "z", "origin": [8, 8, 16]}, + "faces": { + "north": {"uv": [0, 0, 12, 2], "rotation": 270, "texture": "#5"}, + "east": {"uv": [2, 1, 14, 2], "rotation": 90, "texture": "#5"}, + "south": {"uv": [2, 14, 14, 16], "rotation": 90, "texture": "#5"}, + "west": {"uv": [2, 0, 14, 1], "rotation": 90, "texture": "#5"}, + "up": {"uv": [15, 14, 16, 16], "rotation": 90, "texture": "#5"}, + "down": {"uv": [0, 14, 1, 16], "rotation": 90, "texture": "#5"} + } + }, + { + "from": [14, 2, 15], + "to": [16, 14, 16], + "rotation": {"angle": 0, "axis": "z", "origin": [8, 8, 16]}, + "faces": { + "north": {"uv": [0, 0, 12, 2], "rotation": 90, "texture": "#5"}, + "east": {"uv": [2, 0, 14, 1], "rotation": 270, "texture": "#5"}, + "south": {"uv": [2, 14, 14, 16], "rotation": 270, "texture": "#5"}, + "west": {"uv": [2, 1, 14, 2], "rotation": 270, "texture": "#5"}, + "up": {"uv": [0, 14, 1, 16], "rotation": 270, "texture": "#5"}, + "down": {"uv": [15, 14, 16, 16], "rotation": 270, "texture": "#5"} + } + }, + { + "from": [3, 3, -3.9], + "to": [13, 13, 5.1], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 1.1]}, + "faces": { + "north": {"uv": [11, 5, 16, 10], "texture": "#0"}, + "east": {"uv": [11.5, 0, 16, 5], "texture": "#0"}, + "south": {"uv": [11, 5, 16, 10], "texture": "#0"}, + "west": {"uv": [11.5, 0, 16, 5], "rotation": 180, "texture": "#0"}, + "up": {"uv": [11.5, 0, 16, 5], "rotation": 270, "texture": "#0"}, + "down": {"uv": [11.5, 0, 16, 5], "rotation": 90, "texture": "#0"} + } + }, + { + "from": [-0.5, 23.5, -1.9], + "to": [16.5, 28.5, 4.1], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 1.1]}, + "faces": { + "north": {"uv": [0, 0, 8.5, 2.5], "texture": "#0"}, + "east": {"uv": [8.5, 0, 11.5, 2], "texture": "#0"}, + "south": {"uv": [0, 0, 8.5, 2.5], "texture": "#0"}, + "west": {"uv": [8.5, 0, 11.5, 2.5], "texture": "#0"}, + "up": {"uv": [0, 2.5, 8.5, 5.5], "texture": "#0"}, + "down": {"uv": [0, 2.5, 8.5, 5.5], "texture": "#0"} + } + }, + { + "from": [-0.5, -12.5, -1.9], + "to": [16.5, -7.5, 4.1], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 1.1]}, + "faces": { + "north": {"uv": [0, 0, 8.5, 2.5], "rotation": 180, "texture": "#0"}, + "east": {"uv": [8.5, 0, 11.5, 2.5], "rotation": 180, "texture": "#0"}, + "south": {"uv": [0, 0, 8.5, 2.5], "rotation": 180, "texture": "#0"}, + "west": {"uv": [8.5, 0, 11.5, 2], "rotation": 180, "texture": "#0"}, + "up": {"uv": [0, 2.5, 8.5, 5.5], "rotation": 180, "texture": "#0"}, + "down": {"uv": [0, 2.5, 8.5, 5.5], "rotation": 180, "texture": "#0"} + } + }, + { + "from": [23.5, -0.5, -1.9], + "to": [28.5, 16.5, 4.1], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 1.1]}, + "faces": { + "north": {"uv": [0, 0, 8.5, 2.5], "rotation": 270, "texture": "#0"}, + "east": {"uv": [0, 2.5, 8.5, 5.5], "rotation": 90, "texture": "#0"}, + "south": {"uv": [0, 0, 8.5, 2.5], "rotation": 90, "texture": "#0"}, + "west": {"uv": [0, 2.5, 8.5, 5.5], "rotation": 90, "texture": "#0"}, + "up": {"uv": [8.5, 0, 11.5, 2.5], "rotation": 90, "texture": "#0"}, + "down": {"uv": [8.5, 0, 11.5, 2], "rotation": 90, "texture": "#0"} + } + }, + { + "from": [-12.5, -0.5, -1.9], + "to": [-7.5, 16.5, 4.1], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 1.1]}, + "faces": { + "north": {"uv": [0, 0, 8.5, 2.5], "rotation": 90, "texture": "#0"}, + "east": {"uv": [0, 2.5, 8.5, 5.5], "rotation": 270, "texture": "#0"}, + "south": {"uv": [0, 0, 8.5, 2.5], "rotation": 270, "texture": "#0"}, + "west": {"uv": [0, 2.5, 8.5, 5.5], "rotation": 270, "texture": "#0"}, + "up": {"uv": [8.5, 0, 11.5, 2], "rotation": 270, "texture": "#0"}, + "down": {"uv": [8.5, 0, 11.5, 2.5], "rotation": 270, "texture": "#0"} + } + }, + { + "from": [-0.5, 23.5, -1.85], + "to": [16.5, 28.5, 4.05], + "rotation": {"angle": -45, "axis": "z", "origin": [8, 8, 1.1]}, + "faces": { + "north": {"uv": [0, 0, 8.5, 2.5], "texture": "#0"}, + "east": {"uv": [8.5, 0, 11.5, 2.5], "texture": "#0"}, + "south": {"uv": [0, 0, 8.5, 2.5], "texture": "#0"}, + "west": {"uv": [8.5, 0, 11.5, 2.5], "texture": "#0"}, + "up": {"uv": [0, 2.5, 8.5, 5.5], "texture": "#0"}, + "down": {"uv": [0, 2.5, 8.5, 5.5], "texture": "#0"} + } + }, + { + "from": [-0.5, -12.5, -1.85], + "to": [16.5, -7.5, 4.05], + "rotation": {"angle": -45, "axis": "z", "origin": [8, 8, 1.1]}, + "faces": { + "north": {"uv": [0, 0, 8.5, 2.5], "rotation": 180, "texture": "#0"}, + "east": {"uv": [8.5, 0, 11.5, 2.5], "rotation": 180, "texture": "#0"}, + "south": {"uv": [0, 0, 8.5, 2.5], "rotation": 180, "texture": "#0"}, + "west": {"uv": [8.5, 0, 11.5, 2.5], "rotation": 180, "texture": "#0"}, + "up": {"uv": [0, 2.5, 8.5, 5.5], "rotation": 180, "texture": "#0"}, + "down": {"uv": [0, 2.5, 8.5, 5.5], "rotation": 180, "texture": "#0"} + } + }, + { + "from": [-0.5, -12.5, -1.85], + "to": [16.5, -7.5, 4.05], + "rotation": {"angle": 45, "axis": "z", "origin": [8, 8, 1.1]}, + "faces": { + "north": {"uv": [0, 0, 8.5, 2.5], "rotation": 180, "texture": "#0"}, + "east": {"uv": [8.5, 0, 11.5, 2.5], "rotation": 180, "texture": "#0"}, + "south": {"uv": [0, 0, 8.5, 2.5], "rotation": 180, "texture": "#0"}, + "west": {"uv": [8.5, 0, 11.5, 2.5], "rotation": 180, "texture": "#0"}, + "up": {"uv": [0, 2.5, 8.5, 5.5], "rotation": 180, "texture": "#0"}, + "down": {"uv": [0, 2.5, 8.5, 5.5], "rotation": 180, "texture": "#0"} + } + }, + { + "from": [-12.5, -0.5, -1.85], + "to": [-7.5, 16.5, 4.05], + "rotation": {"angle": -45, "axis": "z", "origin": [8, 8, 1.1]}, + "faces": { + "north": {"uv": [0, 0, 8.5, 2.5], "rotation": 90, "texture": "#0"}, + "east": {"uv": [0, 2.5, 8.5, 5.5], "rotation": 270, "texture": "#0"}, + "south": {"uv": [0, 0, 8.5, 2.5], "rotation": 270, "texture": "#0"}, + "west": {"uv": [0, 2.5, 8.5, 5.5], "rotation": 270, "texture": "#0"}, + "up": {"uv": [8.5, 0, 11.5, 2.5], "rotation": 270, "texture": "#0"}, + "down": {"uv": [8.5, 0, 11.5, 2.5], "rotation": 270, "texture": "#0"} + } + }, + { + "name": "spoke", + "from": [6, -8, -0.9], + "to": [10, 3, 3.1], + "rotation": {"angle": -45, "axis": "z", "origin": [8, 8, 1.1]}, + "faces": { + "north": {"uv": [9, 4.5, 11, 10], "rotation": 180, "texture": "#0"}, + "east": {"uv": [9, 4.5, 11, 10], "rotation": 180, "texture": "#0"}, + "south": {"uv": [9, 4.5, 11, 10], "rotation": 180, "texture": "#0"}, + "west": {"uv": [9, 4.5, 11, 10], "rotation": 180, "texture": "#0"} + } + }, + { + "name": "spoke", + "from": [6, 13, -0.9], + "to": [10, 24, 3.1], + "rotation": {"angle": -45, "axis": "z", "origin": [8, 8, 1.1]}, + "faces": { + "north": {"uv": [9, 4.5, 11, 10], "texture": "#0"}, + "east": {"uv": [9, 4.5, 11, 10], "texture": "#0"}, + "south": {"uv": [9, 4.5, 11, 10], "texture": "#0"}, + "west": {"uv": [9, 4.5, 11, 10], "texture": "#0"} + } + }, + { + "name": "spoke", + "from": [-8, 6, -0.9], + "to": [3, 10, 3.1], + "rotation": {"angle": 0, "axis": "z", "origin": [8, 8, 1.1]}, + "faces": { + "north": {"uv": [9, 4.5, 11, 10], "rotation": 90, "texture": "#0"}, + "south": {"uv": [9, 4.5, 11, 10], "rotation": 270, "texture": "#0"}, + "up": {"uv": [9, 4.5, 11, 10], "rotation": 270, "texture": "#0"}, + "down": {"uv": [9, 4.5, 11, 10], "rotation": 270, "texture": "#0"} + } + }, + { + "name": "spoke", + "from": [13, 6, -0.9], + "to": [24, 10, 3.1], + "rotation": {"angle": 0, "axis": "z", "origin": [8, 8, 1.1]}, + "faces": { + "north": {"uv": [9, 4.5, 11, 10], "rotation": 270, "texture": "#0"}, + "south": {"uv": [9, 4.5, 11, 10], "rotation": 90, "texture": "#0"}, + "up": {"uv": [9, 4.5, 11, 10], "rotation": 90, "texture": "#0"}, + "down": {"uv": [9, 4.5, 11, 10], "rotation": 90, "texture": "#0"} + } + }, + { + "name": "spoke", + "from": [-8, 6, -0.9], + "to": [3, 10, 3.1], + "rotation": {"angle": -45, "axis": "z", "origin": [8, 8, 1.1]}, + "faces": { + "north": {"uv": [9, 4.5, 11, 10], "rotation": 90, "texture": "#0"}, + "south": {"uv": [9, 4.5, 11, 10], "rotation": 270, "texture": "#0"}, + "up": {"uv": [9, 4.5, 11, 10], "rotation": 270, "texture": "#0"}, + "down": {"uv": [9, 4.5, 11, 10], "rotation": 270, "texture": "#0"} + } + }, + { + "name": "spoke", + "from": [6, -8, -0.9], + "to": [10, 3, 3.1], + "rotation": {"angle": 0, "axis": "z", "origin": [8, 8, 1.1]}, + "faces": { + "north": {"uv": [9, 4.5, 11, 10], "rotation": 180, "texture": "#0"}, + "east": {"uv": [9, 4.5, 11, 10], "rotation": 180, "texture": "#0"}, + "south": {"uv": [9, 4.5, 11, 10], "rotation": 180, "texture": "#0"}, + "west": {"uv": [9, 4.5, 11, 10], "rotation": 180, "texture": "#0"} + } + }, + { + "name": "spoke", + "from": [13, 6, -0.9], + "to": [24, 10, 3.1], + "rotation": {"angle": -45, "axis": "z", "origin": [8, 8, 1.1]}, + "faces": { + "north": {"uv": [9, 4.5, 11, 10], "rotation": 270, "texture": "#0"}, + "south": {"uv": [9, 4.5, 11, 10], "rotation": 90, "texture": "#0"}, + "up": {"uv": [9, 4.5, 11, 10], "rotation": 90, "texture": "#0"}, + "down": {"uv": [9, 4.5, 11, 10], "rotation": 90, "texture": "#0"} + } + }, + { + "name": "spoke", + "from": [6, 13, -0.9], + "to": [10, 24, 3.1], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 1.1]}, + "faces": { + "north": {"uv": [9, 4.5, 11, 10], "texture": "#0"}, + "east": {"uv": [9, 4.5, 11, 10], "texture": "#0"}, + "south": {"uv": [9, 4.5, 11, 10], "texture": "#0"}, + "west": {"uv": [9, 4.5, 11, 10], "texture": "#0"} + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [75, -67, 0], + "translation": [0, 2.5, -2], + "scale": [0.375, 0.375, 0.375] + }, + "thirdperson_lefthand": { + "rotation": [75, -67, 0], + "translation": [0, 2.5, -2], + "scale": [0.375, 0.375, 0.375] + }, + "firstperson_righthand": { + "rotation": [0, -91, 0], + "scale": [0.4, 0.4, 0.4] + }, + "firstperson_lefthand": { + "rotation": [0, -91, 0], + "scale": [0.4, 0.4, 0.4] + }, + "ground": { + "rotation": [90, 0, 0], + "translation": [0, 2, 0], + "scale": [0.25, 0.25, 0.25] + }, + "gui": { + "rotation": [30, 225, 0], + "translation": [-0.25, 0.75, 0], + "scale": [0.35, 0.35, 0.35] + }, + "fixed": { + "scale": [0.45, 0.45, 0.45] + } + }, + "groups": [ + { + "name": "transmission", + "origin": [-8, 8, 8], + "children": [0, 1, 2, 3, 4, 5, 6, 7, 8] + }, + { + "name": "wheel", + "origin": [24, 8, 8], + "children": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/flywheel/lower_rotating_connector.json b/src/main/resources/assets/create/models/block/flywheel/lower_rotating_connector.json new file mode 100644 index 000000000..835b0cb69 --- /dev/null +++ b/src/main/resources/assets/create/models/block/flywheel/lower_rotating_connector.json @@ -0,0 +1,27 @@ +{ + "credit": "Made with Blockbench", + "textures": { + "0": "create:block/steam_engine_wheel", + "particle": "create:block/steam_engine_wheel" + }, + "elements": [ + { + "from": [2.55, 7, 6.75], + "to": [4.45, 9, 22.75], + "rotation": {"angle": 22.5, "axis": "x", "origin": [-5, 8, 7]}, + "faces": { + "east": {"uv": [0, 9, 8, 10], "rotation": 180, "texture": "#0"}, + "west": {"uv": [0, 9, 8, 10], "rotation": 180, "texture": "#0"}, + "up": {"uv": [0, 9, 8, 10], "rotation": 270, "texture": "#0"}, + "down": {"uv": [0, 9, 8, 10], "rotation": 90, "texture": "#0"} + } + } + ], + "groups": [ + { + "name": "transmission", + "origin": [-8, 8, 8], + "children": [0] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/flywheel/lower_sliding_connector.json b/src/main/resources/assets/create/models/block/flywheel/lower_sliding_connector.json new file mode 100644 index 000000000..16194017a --- /dev/null +++ b/src/main/resources/assets/create/models/block/flywheel/lower_sliding_connector.json @@ -0,0 +1,29 @@ +{ + "credit": "Made with Blockbench", + "textures": { + "0": "create:block/steam_engine_wheel", + "particle": "create:block/steam_engine_wheel" + }, + "elements": [ + { + "from": [2.5, 1, 21], + "to": [4.5, 3, 29], + "rotation": {"angle": 0, "axis": "y", "origin": [-1, 8, 8]}, + "faces": { + "north": {"uv": [0, 9, 1, 10], "rotation": 270, "texture": "#0"}, + "east": {"uv": [0, 9, 4, 10], "rotation": 180, "texture": "#0"}, + "south": {"uv": [0, 9, 1, 10], "rotation": 270, "texture": "#0"}, + "west": {"uv": [0, 9, 4, 10], "texture": "#0"}, + "up": {"uv": [0, 9, 4, 10], "rotation": 270, "texture": "#0"}, + "down": {"uv": [0, 9, 4, 10], "rotation": 270, "texture": "#0"} + } + } + ], + "groups": [ + { + "name": "transmission", + "origin": [-8, 8, 8], + "children": [0] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/flywheel/upper_rotating_connector.json b/src/main/resources/assets/create/models/block/flywheel/upper_rotating_connector.json new file mode 100644 index 000000000..a6e4b99a0 --- /dev/null +++ b/src/main/resources/assets/create/models/block/flywheel/upper_rotating_connector.json @@ -0,0 +1,27 @@ +{ + "credit": "Made with Blockbench", + "textures": { + "0": "create:block/steam_engine_wheel", + "particle": "create:block/steam_engine_wheel" + }, + "elements": [ + { + "from": [7, 7, 7], + "to": [9, 9, 23], + "rotation": {"angle": 22.5, "axis": "x", "origin": [8, 8, 23]}, + "faces": { + "east": {"uv": [0, 9, 8, 10], "rotation": 180, "texture": "#0"}, + "west": {"uv": [0, 9, 8, 10], "rotation": 180, "texture": "#0"}, + "up": {"uv": [0, 9, 8, 10], "rotation": 270, "texture": "#0"}, + "down": {"uv": [0, 9, 8, 10], "rotation": 90, "texture": "#0"} + } + } + ], + "groups": [ + { + "name": "transmission", + "origin": [-8, 8, 8], + "children": [0] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/flywheel/upper_sliding_connector.json b/src/main/resources/assets/create/models/block/flywheel/upper_sliding_connector.json new file mode 100644 index 000000000..177150784 --- /dev/null +++ b/src/main/resources/assets/create/models/block/flywheel/upper_sliding_connector.json @@ -0,0 +1,29 @@ +{ + "credit": "Made with Blockbench", + "textures": { + "0": "create:block/steam_engine_wheel", + "particle": "create:block/steam_engine_wheel" + }, + "elements": [ + { + "from": [6, 6, 22], + "to": [10, 10, 32], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, -5]}, + "faces": { + "north": {"uv": [0, 7, 2, 9], "texture": "#0"}, + "east": {"uv": [2, 7, 7, 9], "texture": "#0"}, + "south": {"uv": [0, 7, 2, 9], "texture": "#0"}, + "west": {"uv": [2, 7, 7, 9], "texture": "#0"}, + "up": {"uv": [2, 7, 7, 9], "rotation": 90, "texture": "#0"}, + "down": {"uv": [2, 7, 7, 9], "rotation": 270, "texture": "#0"} + } + } + ], + "groups": [ + { + "name": "transmission", + "origin": [-8, 8, 8], + "children": [0] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/flywheel/wheel.json b/src/main/resources/assets/create/models/block/flywheel/wheel.json new file mode 100644 index 000000000..997dd77e1 --- /dev/null +++ b/src/main/resources/assets/create/models/block/flywheel/wheel.json @@ -0,0 +1,221 @@ +{ + "credit": "Made with Blockbench", + "textures": { + "0": "create:block/steam_engine_wheel", + "particle": "create:block/steam_engine_wheel" + }, + "elements": [ + { + "from": [11.9, 23.5, -0.5], + "to": [17.9, 28.5, 16.5], + "rotation": {"angle": 0, "axis": "x", "origin": [14.9, 8, 8]}, + "faces": { + "north": {"uv": [8.5, 0, 11.5, 2.5], "texture": "#0"}, + "east": {"uv": [0, 0, 8.5, 2.5], "texture": "#0"}, + "south": {"uv": [8.5, 0, 11.5, 2], "texture": "#0"}, + "west": {"uv": [0, 0, 8.5, 2.5], "texture": "#0"}, + "up": {"uv": [0, 2.5, 8.5, 5.5], "rotation": 90, "texture": "#0"}, + "down": {"uv": [0, 2.5, 8.5, 5.5], "rotation": 270, "texture": "#0"} + } + }, + { + "from": [11.9, -12.5, -0.5], + "to": [17.9, -7.5, 16.5], + "rotation": {"angle": 0, "axis": "x", "origin": [14.9, 8, 8]}, + "faces": { + "north": {"uv": [8.5, 0, 11.5, 2], "rotation": 180, "texture": "#0"}, + "east": {"uv": [0, 0, 8.5, 2.5], "rotation": 180, "texture": "#0"}, + "south": {"uv": [8.5, 0, 11.5, 2.5], "rotation": 180, "texture": "#0"}, + "west": {"uv": [0, 0, 8.5, 2.5], "rotation": 180, "texture": "#0"}, + "up": {"uv": [0, 2.5, 8.5, 5.5], "rotation": 270, "texture": "#0"}, + "down": {"uv": [0, 2.5, 8.5, 5.5], "rotation": 90, "texture": "#0"} + } + }, + { + "from": [11.9, -0.5, 23.5], + "to": [17.9, 16.5, 28.5], + "rotation": {"angle": 0, "axis": "x", "origin": [14.9, 8, 8]}, + "faces": { + "north": {"uv": [0, 2.5, 8.5, 5.5], "rotation": 90, "texture": "#0"}, + "east": {"uv": [0, 0, 8.5, 2.5], "rotation": 270, "texture": "#0"}, + "south": {"uv": [0, 2.5, 8.5, 5.5], "rotation": 90, "texture": "#0"}, + "west": {"uv": [0, 0, 8.5, 2.5], "rotation": 90, "texture": "#0"}, + "up": {"uv": [8.5, 0, 11.5, 2.5], "rotation": 180, "texture": "#0"}, + "down": {"uv": [8.5, 0, 11.5, 2], "texture": "#0"} + } + }, + { + "from": [11.9, -0.5, -12.5], + "to": [17.9, 16.5, -7.5], + "rotation": {"angle": 0, "axis": "x", "origin": [14.9, 8, 8]}, + "faces": { + "north": {"uv": [0, 2.5, 8.5, 5.5], "rotation": 270, "texture": "#0"}, + "east": {"uv": [0, 0, 8.5, 2.5], "rotation": 90, "texture": "#0"}, + "south": {"uv": [0, 2.5, 8.5, 5.5], "rotation": 270, "texture": "#0"}, + "west": {"uv": [0, 0, 8.5, 2.5], "rotation": 270, "texture": "#0"}, + "up": {"uv": [8.5, 0, 11.5, 2], "texture": "#0"}, + "down": {"uv": [8.5, 0, 11.5, 2.5], "rotation": 180, "texture": "#0"} + } + }, + { + "from": [11.95, 23.5, -0.5], + "to": [17.85, 28.5, 16.5], + "rotation": {"angle": 45, "axis": "x", "origin": [14.9, 8, 8]}, + "faces": { + "north": {"uv": [8.5, 0, 11.5, 2.5], "texture": "#0"}, + "east": {"uv": [0, 0, 8.5, 2.5], "texture": "#0"}, + "south": {"uv": [8.5, 0, 11.5, 2.5], "texture": "#0"}, + "west": {"uv": [0, 0, 8.5, 2.5], "texture": "#0"}, + "up": {"uv": [0, 2.5, 8.5, 5.5], "rotation": 90, "texture": "#0"}, + "down": {"uv": [0, 2.5, 8.5, 5.5], "rotation": 270, "texture": "#0"} + } + }, + { + "from": [11.95, -12.5, -0.5], + "to": [17.85, -7.5, 16.5], + "rotation": {"angle": 45, "axis": "x", "origin": [14.9, 8, 8]}, + "faces": { + "north": {"uv": [8.5, 0, 11.5, 2.5], "rotation": 180, "texture": "#0"}, + "east": {"uv": [0, 0, 8.5, 2.5], "rotation": 180, "texture": "#0"}, + "south": {"uv": [8.5, 0, 11.5, 2.5], "rotation": 180, "texture": "#0"}, + "west": {"uv": [0, 0, 8.5, 2.5], "rotation": 180, "texture": "#0"}, + "up": {"uv": [0, 2.5, 8.5, 5.5], "rotation": 270, "texture": "#0"}, + "down": {"uv": [0, 2.5, 8.5, 5.5], "rotation": 90, "texture": "#0"} + } + }, + { + "from": [11.95, -12.5, -0.5], + "to": [17.85, -7.5, 16.5], + "rotation": {"angle": -45, "axis": "x", "origin": [14.9, 8, 8]}, + "faces": { + "north": {"uv": [8.5, 0, 11.5, 2.5], "rotation": 180, "texture": "#0"}, + "east": {"uv": [0, 0, 8.5, 2.5], "rotation": 180, "texture": "#0"}, + "south": {"uv": [8.5, 0, 11.5, 2.5], "rotation": 180, "texture": "#0"}, + "west": {"uv": [0, 0, 8.5, 2.5], "rotation": 180, "texture": "#0"}, + "up": {"uv": [0, 2.5, 8.5, 5.5], "rotation": 270, "texture": "#0"}, + "down": {"uv": [0, 2.5, 8.5, 5.5], "rotation": 90, "texture": "#0"} + } + }, + { + "from": [11.95, -0.5, -12.5], + "to": [17.85, 16.5, -7.5], + "rotation": {"angle": 45, "axis": "x", "origin": [14.9, 8, 8]}, + "faces": { + "north": {"uv": [0, 2.5, 8.5, 5.5], "rotation": 270, "texture": "#0"}, + "east": {"uv": [0, 0, 8.5, 2.5], "rotation": 90, "texture": "#0"}, + "south": {"uv": [0, 2.5, 8.5, 5.5], "rotation": 270, "texture": "#0"}, + "west": {"uv": [0, 0, 8.5, 2.5], "rotation": 270, "texture": "#0"}, + "up": {"uv": [8.5, 0, 11.5, 2.5], "texture": "#0"}, + "down": {"uv": [8.5, 0, 11.5, 2.5], "rotation": 180, "texture": "#0"} + } + }, + { + "name": "spoke", + "from": [12.9, -8, 6], + "to": [16.9, 3, 10], + "rotation": {"angle": 45, "axis": "x", "origin": [14.9, 8, 8]}, + "faces": { + "north": {"uv": [9, 4.5, 11, 10], "rotation": 180, "texture": "#0"}, + "east": {"uv": [9, 4.5, 11, 10], "rotation": 180, "texture": "#0"}, + "south": {"uv": [9, 4.5, 11, 10], "rotation": 180, "texture": "#0"}, + "west": {"uv": [9, 4.5, 11, 10], "rotation": 180, "texture": "#0"} + } + }, + { + "name": "spoke", + "from": [12.9, 13, 6], + "to": [16.9, 24, 10], + "rotation": {"angle": 45, "axis": "x", "origin": [14.9, 8, 8]}, + "faces": { + "north": {"uv": [9, 4.5, 11, 10], "texture": "#0"}, + "east": {"uv": [9, 4.5, 11, 10], "texture": "#0"}, + "south": {"uv": [9, 4.5, 11, 10], "texture": "#0"}, + "west": {"uv": [9, 4.5, 11, 10], "texture": "#0"} + } + }, + { + "name": "spoke", + "from": [12.9, 6, -8], + "to": [16.9, 10, 3], + "rotation": {"angle": 0, "axis": "x", "origin": [14.9, 8, 8]}, + "faces": { + "east": {"uv": [9, 4.5, 11, 10], "rotation": 90, "texture": "#0"}, + "west": {"uv": [9, 4.5, 11, 10], "rotation": 270, "texture": "#0"}, + "up": {"uv": [9, 4.5, 11, 10], "texture": "#0"}, + "down": {"uv": [9, 4.5, 11, 10], "rotation": 180, "texture": "#0"} + } + }, + { + "name": "spoke", + "from": [12.9, 6, 13], + "to": [16.9, 10, 24], + "rotation": {"angle": 0, "axis": "x", "origin": [14.9, 8, 8]}, + "faces": { + "east": {"uv": [9, 4.5, 11, 10], "rotation": 270, "texture": "#0"}, + "west": {"uv": [9, 4.5, 11, 10], "rotation": 90, "texture": "#0"}, + "up": {"uv": [9, 4.5, 11, 10], "rotation": 180, "texture": "#0"}, + "down": {"uv": [9, 4.5, 11, 10], "texture": "#0"} + } + }, + { + "name": "spoke", + "from": [12.9, 6, -8], + "to": [16.9, 10, 3], + "rotation": {"angle": 45, "axis": "x", "origin": [14.9, 8, 8]}, + "faces": { + "east": {"uv": [9, 4.5, 11, 10], "rotation": 90, "texture": "#0"}, + "west": {"uv": [9, 4.5, 11, 10], "rotation": 270, "texture": "#0"}, + "up": {"uv": [9, 4.5, 11, 10], "texture": "#0"}, + "down": {"uv": [9, 4.5, 11, 10], "rotation": 180, "texture": "#0"} + } + }, + { + "name": "spoke", + "from": [12.9, -8, 6], + "to": [16.9, 3, 10], + "rotation": {"angle": 0, "axis": "x", "origin": [14.9, 8, 8]}, + "faces": { + "north": {"uv": [9, 4.5, 11, 10], "rotation": 180, "texture": "#0"}, + "east": {"uv": [9, 4.5, 11, 10], "rotation": 180, "texture": "#0"}, + "south": {"uv": [9, 4.5, 11, 10], "rotation": 180, "texture": "#0"}, + "west": {"uv": [9, 4.5, 11, 10], "rotation": 180, "texture": "#0"} + } + }, + { + "name": "spoke", + "from": [12.9, 6, 13], + "to": [16.9, 10, 24], + "rotation": {"angle": 45, "axis": "x", "origin": [14.9, 8, 8]}, + "faces": { + "east": {"uv": [9, 4.5, 11, 10], "rotation": 270, "texture": "#0"}, + "west": {"uv": [9, 4.5, 11, 10], "rotation": 90, "texture": "#0"}, + "up": {"uv": [9, 4.5, 11, 10], "rotation": 180, "texture": "#0"}, + "down": {"uv": [9, 4.5, 11, 10], "texture": "#0"} + } + }, + { + "name": "spoke", + "from": [12.9, 13, 6], + "to": [16.9, 24, 10], + "rotation": {"angle": 0, "axis": "x", "origin": [14.9, 8, 8]}, + "faces": { + "north": {"uv": [9, 4.5, 11, 10], "texture": "#0"}, + "east": {"uv": [9, 4.5, 11, 10], "texture": "#0"}, + "south": {"uv": [9, 4.5, 11, 10], "texture": "#0"}, + "west": {"uv": [9, 4.5, 11, 10], "texture": "#0"} + } + } + ], + "groups": [ + { + "name": "transmission", + "origin": [-8, 8, 8], + "children": [] + }, + { + "name": "wheel", + "origin": [24, 8, 8], + "children": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/furnace_engine/body.json b/src/main/resources/assets/create/models/block/furnace_engine/body.json new file mode 100644 index 000000000..d421a627f --- /dev/null +++ b/src/main/resources/assets/create/models/block/furnace_engine/body.json @@ -0,0 +1,133 @@ +{ + "credit": "Made with Blockbench", + "textures": { + "5": "create:block/brass_casing", + "particle": "create:block/brass_block", + "1_1": "create:block/furnace_cylinder" + }, + "elements": [ + { + "name": "Ring", + "from": [0, 0, 9], + "to": [16, 16, 14], + "faces": { + "north": {"uv": [0, 0, 16, 16], "texture": "#5"}, + "east": {"uv": [0, 7, 2.5, 15], "texture": "#1_1"}, + "south": {"uv": [0, 0, 16, 16], "texture": "#5"}, + "west": {"uv": [0, 7, 2.5, 15], "texture": "#1_1"}, + "up": {"uv": [0, 7, 2.5, 15], "rotation": 270, "texture": "#1_1"}, + "down": {"uv": [0, 7, 2.5, 15], "rotation": 90, "texture": "#1_1"} + } + }, + { + "name": "Cylinder", + "from": [1, 1, 0], + "to": [15, 15, 16], + "faces": { + "north": {"uv": [8, 0, 15, 7], "texture": "#1_1"}, + "east": {"uv": [0, 0, 8, 7], "texture": "#1_1"}, + "south": {"uv": [8, 0, 15, 7], "texture": "#1_1"}, + "west": {"uv": [0, 0, 8, 7], "rotation": 180, "texture": "#1_1"}, + "up": {"uv": [0, 0, 8, 7], "rotation": 270, "texture": "#1_1"}, + "down": {"uv": [0, 0, 8, 7], "rotation": 90, "texture": "#1_1"} + } + }, + { + "from": [10.5, 0, 0], + "to": [14.5, 4, 9], + "faces": { + "east": {"uv": [2.5, 7, 7, 9], "rotation": 180, "texture": "#1_1"}, + "west": {"uv": [2.5, 7, 7, 9], "rotation": 180, "texture": "#1_1"}, + "up": {"uv": [2.5, 7, 7, 9], "rotation": 90, "texture": "#1_1"}, + "down": {"uv": [2.5, 7, 7, 9], "rotation": 270, "texture": "#1_1"} + } + }, + { + "from": [1.5, 0, 0], + "to": [5.5, 4, 9], + "faces": { + "east": {"uv": [7, 7, 2.5, 9], "rotation": 180, "texture": "#1_1"}, + "west": {"uv": [7, 7, 2.5, 9], "rotation": 180, "texture": "#1_1"}, + "up": {"uv": [2.5, 9, 7, 7], "rotation": 90, "texture": "#1_1"}, + "down": {"uv": [2.5, 9, 7, 7], "rotation": 270, "texture": "#1_1"} + } + }, + { + "name": "LowerPort", + "from": [10.5, 0.1, 13.9], + "to": [14.5, 4.1, 16.9], + "faces": { + "north": {"uv": [10, 0, 14, 4], "texture": "#1_1"}, + "east": {"uv": [3, 13, 4.5, 15], "rotation": 180, "texture": "#1_1"}, + "south": {"uv": [2.5, 13, 4.5, 15], "texture": "#1_1"}, + "west": {"uv": [3, 13, 4.5, 15], "texture": "#1_1"}, + "up": {"uv": [3, 13, 4.5, 15], "rotation": 90, "texture": "#1_1"}, + "down": {"uv": [3, 13, 4.5, 15], "rotation": 270, "texture": "#1_1"} + } + }, + { + "name": "LowerPort", + "from": [1.5, 0.1, 13.9], + "to": [5.5, 4.1, 16.9], + "faces": { + "north": {"uv": [14, 0, 10, 4], "texture": "#1_1"}, + "east": {"uv": [4.5, 13, 3, 15], "texture": "#1_1"}, + "south": {"uv": [4.5, 13, 2.5, 15], "texture": "#1_1"}, + "west": {"uv": [4.5, 13, 3, 15], "rotation": 180, "texture": "#1_1"}, + "up": {"uv": [3, 15, 4.5, 13], "rotation": 90, "texture": "#1_1"}, + "down": {"uv": [3, 15, 4.5, 13], "rotation": 270, "texture": "#1_1"} + } + }, + { + "name": "Port", + "from": [4, 4, 15.8], + "to": [12, 12, 17.8], + "faces": { + "east": {"uv": [5.5, 9, 6.5, 13], "rotation": 180, "texture": "#1_1"}, + "south": {"uv": [2.5, 9, 6.5, 13], "texture": "#1_1"}, + "west": {"uv": [5.5, 9, 6.5, 13], "texture": "#1_1"}, + "up": {"uv": [5.5, 9, 6.5, 13], "rotation": 90, "texture": "#1_1"}, + "down": {"uv": [5.5, 9, 6.5, 13], "rotation": 270, "texture": "#1_1"} + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [75, 135, 0], + "translation": [0, 2.5, 0], + "scale": [0.375, 0.375, 0.375] + }, + "thirdperson_lefthand": { + "rotation": [75, 135, 0], + "translation": [0, 2.5, 0], + "scale": [0.375, 0.375, 0.375] + }, + "firstperson_righthand": { + "rotation": [0, 45, 0], + "scale": [0.4, 0.4, 0.4] + }, + "firstperson_lefthand": { + "rotation": [0, 225, 0], + "scale": [0.4, 0.4, 0.4] + }, + "ground": { + "translation": [0, 3, 0], + "scale": [0.25, 0.25, 0.25] + }, + "gui": { + "rotation": [30, 45, 0], + "scale": [0.625, 0.625, 0.625] + }, + "fixed": { + "rotation": [0, 180, 0], + "scale": [0.5, 0.5, 0.5] + } + }, + "groups": [ + { + "name": "SteamCylinder", + "origin": [8, 8, 8], + "children": [0, 1, 2, 3, 4, 5, 6] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/furnace_engine/frame.json b/src/main/resources/assets/create/models/block/furnace_engine/frame.json new file mode 100644 index 000000000..2966a5a63 --- /dev/null +++ b/src/main/resources/assets/create/models/block/furnace_engine/frame.json @@ -0,0 +1,89 @@ +{ + "credit": "Made with Blockbench", + "textures": { + "particle": "create:block/steam_engine_wheel", + "1_1": "create:block/furnace_cylinder" + }, + "elements": [ + { + "name": "Cylinder", + "from": [1.1, 1.1, -1.9], + "to": [14.9, 14.9, 0.1], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 7]}, + "faces": { + "north": {"uv": [8, 0, 15, 7], "texture": "#1_1"}, + "east": {"uv": [14, 0, 15, 7], "texture": "#1_1"}, + "south": {"uv": [7, 7, 16, 16], "texture": "#1_1"}, + "west": {"uv": [14, 0, 15, 7], "rotation": 180, "texture": "#1_1"}, + "up": {"uv": [14, 0, 15, 7], "rotation": 270, "texture": "#1_1"}, + "down": {"uv": [14, 0, 15, 7], "rotation": 90, "texture": "#1_1"} + } + }, + { + "from": [-0.9, 12, -0.9], + "to": [16.9, 16.1, 16.9], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 7]}, + "faces": { + "north": {"uv": [7, 7, 16, 9], "texture": "#1_1"}, + "east": {"uv": [7, 7, 16, 9], "texture": "#1_1"}, + "south": {"uv": [7, 7, 16, 9], "texture": "#1_1"}, + "west": {"uv": [7, 7, 16, 9], "texture": "#1_1"}, + "up": {"uv": [7, 7, 16, 16], "rotation": 270, "texture": "#1_1"}, + "down": {"uv": [7, 7, 16, 16], "rotation": 90, "texture": "#1_1"} + } + }, + { + "from": [-0.9, 8, -0.9], + "to": [16.9, 12, 16.9], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 7]}, + "faces": { + "north": {"uv": [7, 14, 16, 16], "texture": "#1_1"}, + "east": {"uv": [7, 14, 16, 16], "texture": "#1_1"}, + "south": {"uv": [7, 14, 16, 16], "texture": "#1_1"}, + "west": {"uv": [7, 14, 16, 16], "texture": "#1_1"}, + "up": {"uv": [7, 7, 16, 16], "rotation": 270, "texture": "#1_1"}, + "down": {"uv": [7, 7, 16, 16], "rotation": 90, "texture": "#1_1"} + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [75, -67, 0], + "translation": [0, 2.5, -2], + "scale": [0.375, 0.375, 0.375] + }, + "thirdperson_lefthand": { + "rotation": [75, -67, 0], + "translation": [0, 2.5, -2], + "scale": [0.375, 0.375, 0.375] + }, + "firstperson_righthand": { + "rotation": [0, -91, 0], + "scale": [0.4, 0.4, 0.4] + }, + "firstperson_lefthand": { + "rotation": [0, -91, 0], + "scale": [0.4, 0.4, 0.4] + }, + "ground": { + "rotation": [90, 0, 0], + "translation": [0, 2, 0], + "scale": [0.25, 0.25, 0.25] + }, + "gui": { + "rotation": [30, 225, 0], + "translation": [-0.25, 0.75, 0], + "scale": [0.35, 0.35, 0.35] + }, + "fixed": { + "scale": [0.45, 0.45, 0.45] + } + }, + "groups": [ + { + "name": "SteamCylinder", + "origin": [8, 8, 8], + "children": [0, 1, 2] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/furnace_engine/item.json b/src/main/resources/assets/create/models/block/furnace_engine/item.json new file mode 100644 index 000000000..22110a645 --- /dev/null +++ b/src/main/resources/assets/create/models/block/furnace_engine/item.json @@ -0,0 +1,110 @@ +{ + "credit": "Made with Blockbench", + "textures": { + "5": "create:block/brass_casing", + "particle": "create:block/steam_engine_wheel", + "1_1": "create:block/furnace_cylinder" + }, + "elements": [ + { + "name": "Ring", + "from": [0, 0, 9], + "to": [16, 16, 14], + "faces": { + "north": {"uv": [0, 0, 16, 16], "texture": "#5"}, + "east": {"uv": [0, 7, 2.5, 15], "texture": "#1_1"}, + "south": {"uv": [0, 0, 16, 16], "texture": "#5"}, + "west": {"uv": [0, 7, 2.5, 15], "texture": "#1_1"}, + "up": {"uv": [0, 7, 2.5, 15], "rotation": 270, "texture": "#1_1"}, + "down": {"uv": [0, 7, 2.5, 15], "rotation": 90, "texture": "#1_1"} + } + }, + { + "name": "Cylinder", + "from": [1, 1, 0], + "to": [15, 15, 16], + "faces": { + "north": {"uv": [8, 0, 15, 7], "texture": "#1_1"}, + "east": {"uv": [0, 0, 8, 7], "texture": "#1_1"}, + "south": {"uv": [8, 0, 15, 7], "texture": "#1_1"}, + "west": {"uv": [0, 0, 8, 7], "rotation": 180, "texture": "#1_1"}, + "up": {"uv": [0, 0, 8, 7], "rotation": 270, "texture": "#1_1"}, + "down": {"uv": [0, 0, 8, 7], "rotation": 90, "texture": "#1_1"} + } + }, + { + "from": [10.5, 0, 0], + "to": [14.5, 4, 9], + "faces": { + "east": {"uv": [2.5, 7, 7, 9], "rotation": 180, "texture": "#1_1"}, + "west": {"uv": [2.5, 7, 7, 9], "rotation": 180, "texture": "#1_1"}, + "up": {"uv": [2.5, 7, 7, 9], "rotation": 90, "texture": "#1_1"}, + "down": {"uv": [2.5, 7, 7, 9], "rotation": 270, "texture": "#1_1"} + } + }, + { + "name": "LowerPort", + "from": [10.5, 0.1, 13.9], + "to": [14.5, 4.1, 16.9], + "faces": { + "north": {"uv": [10, 0, 14, 4], "texture": "#1_1"}, + "east": {"uv": [3, 13, 4.5, 15], "rotation": 180, "texture": "#1_1"}, + "south": {"uv": [2.5, 13, 4.5, 15], "texture": "#1_1"}, + "west": {"uv": [3, 13, 4.5, 15], "texture": "#1_1"}, + "up": {"uv": [3, 13, 4.5, 15], "rotation": 90, "texture": "#1_1"}, + "down": {"uv": [3, 13, 4.5, 15], "rotation": 270, "texture": "#1_1"} + } + }, + { + "name": "Port", + "from": [4, 4, 15.8], + "to": [12, 12, 17.8], + "faces": { + "east": {"uv": [5.5, 9, 6.5, 13], "rotation": 180, "texture": "#1_1"}, + "south": {"uv": [2.5, 9, 6.5, 13], "texture": "#1_1"}, + "west": {"uv": [5.5, 9, 6.5, 13], "texture": "#1_1"}, + "up": {"uv": [5.5, 9, 6.5, 13], "rotation": 90, "texture": "#1_1"}, + "down": {"uv": [5.5, 9, 6.5, 13], "rotation": 270, "texture": "#1_1"} + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [75, 135, 0], + "translation": [0, 2.5, 0], + "scale": [0.375, 0.375, 0.375] + }, + "thirdperson_lefthand": { + "rotation": [75, 135, 0], + "translation": [0, 2.5, 0], + "scale": [0.375, 0.375, 0.375] + }, + "firstperson_righthand": { + "rotation": [0, 45, 0], + "scale": [0.4, 0.4, 0.4] + }, + "firstperson_lefthand": { + "rotation": [0, 225, 0], + "scale": [0.4, 0.4, 0.4] + }, + "ground": { + "translation": [0, 3, 0], + "scale": [0.25, 0.25, 0.25] + }, + "gui": { + "rotation": [30, 45, 0], + "scale": [0.625, 0.625, 0.625] + }, + "fixed": { + "rotation": [0, 180, 0], + "scale": [0.5, 0.5, 0.5] + } + }, + "groups": [ + { + "name": "SteamCylinder", + "origin": [8, 8, 8], + "children": [0, 1, 2, 3, 4] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/create/models/item/flywheel.json b/src/main/resources/assets/create/models/item/flywheel.json new file mode 100644 index 000000000..00e1610e7 --- /dev/null +++ b/src/main/resources/assets/create/models/item/flywheel.json @@ -0,0 +1,3 @@ +{ + "parent": "create:block/flywheel/item" +} \ No newline at end of file diff --git a/src/main/resources/assets/create/models/item/furnace_engine.json b/src/main/resources/assets/create/models/item/furnace_engine.json new file mode 100644 index 000000000..f7e497ca3 --- /dev/null +++ b/src/main/resources/assets/create/models/item/furnace_engine.json @@ -0,0 +1,3 @@ +{ + "parent": "create:block/furnace_engine/item" +} \ No newline at end of file diff --git a/src/main/resources/assets/create/textures/block/brass_gearbox.png b/src/main/resources/assets/create/textures/block/brass_gearbox.png new file mode 100644 index 0000000000000000000000000000000000000000..c84dbf172906fc3571effc010d7bce329ec1555a GIT binary patch literal 534 zcmV+x0_pvUP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGizW@LZzX3P}QzQTY0jo(wK~y+TeNwqj z!$1(t+G{6qY>p@dB}EF(2B;Ag4H7LK5(O0z4PQaW&rnk$3J%f14-lb590Gxful3rz z-7yd$#M9_$p6BiC>?G`9cd?{lSq3G4LWqnK9>;QPW1U10NyS0rI2ADRC`omtRG)Cc zCue8eFj)|a!=qzp$2P&-VyVc%%BTSe?(S{Etj3@=vu(H4s7{TQC#yDb&9=Y@d{^f* z42!EX)H_YGpuWU9s}z-)HAwo73t#*p%p6(>NdutV>-Bu!e|UU^oNhKf&+BxSoR?dg z3Me)M9fY!6sleSI45S7U$eQaWvTy^%0o-7ljB`%Czd=%!zIO26?nm)^Bm!d$a~DDb zGEGw&sqQ&obs&gRYVhIvcxAiQGBuDi8jU!LMn_Uxl3B4OYy&&N(+v$=D1`_2POV=0|&dm%6k{t-8ph@8wjex{PTvV_xLqT-i8U1(HK032pHU28O-)~ z=2sS$EpAzy1yLepZkmi3Wv8l4K^TL_z3S=JCF^d_>4JI;AhX;w7#KPI;WL?&1makJ Y0yP-gmh3|xOaK4?07*qoM6N<$f|97&_W%F@ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/create/textures/block/furnace_cylinder.png b/src/main/resources/assets/create/textures/block/furnace_cylinder.png new file mode 100644 index 0000000000000000000000000000000000000000..cffb1fcae5b6e38e858769bc04908795dad894f6 GIT binary patch literal 1945 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/data/create/loot_tables/blocks/flywheel.json b/src/main/resources/data/create/loot_tables/blocks/flywheel.json new file mode 100644 index 000000000..9f0018990 --- /dev/null +++ b/src/main/resources/data/create/loot_tables/blocks/flywheel.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "create:flywheel" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/create/loot_tables/blocks/furnace_engine.json b/src/main/resources/data/create/loot_tables/blocks/furnace_engine.json new file mode 100644 index 000000000..e3c600d70 --- /dev/null +++ b/src/main/resources/data/create/loot_tables/blocks/furnace_engine.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "create:furnace_engine" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/mechanical_crafting/crushing_wheel.json b/src/main/resources/data/create/recipes/mechanical_crafting/crushing_wheel.json new file mode 100644 index 000000000..bec146a74 --- /dev/null +++ b/src/main/resources/data/create/recipes/mechanical_crafting/crushing_wheel.json @@ -0,0 +1,34 @@ +{ + "type": "create:mechanical_crafting", + "pattern": [ + " PPP ", + "PSBSP", + "PBCBP", + "PSBSP", + " PPP " + ], + "key": { + "P": { + "item": "minecraft:polished_andesite" + }, + "S": { + "tag": "forge:rods/wooden" + }, + "C": { + "item": "create:large_cogwheel" + }, + "B": { + "item": "create:andesite_alloy" + } + }, + "result": { + "item": "create:crushing_wheel", + "count": 1 + }, + "conditions": [ + { + "type": "create:module", + "module": "contraptions" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/mechanical_crafting/flywheel.json b/src/main/resources/data/create/recipes/mechanical_crafting/flywheel.json new file mode 100644 index 000000000..f373fd095 --- /dev/null +++ b/src/main/resources/data/create/recipes/mechanical_crafting/flywheel.json @@ -0,0 +1,34 @@ +{ + "type": "create:mechanical_crafting", + "pattern": [ + " PPP ", + "PSBSP", + "PBCBP", + "PSBSP", + " PPP " + ], + "key": { + "P": { + "tag": "forge:plates/brass" + }, + "S": { + "tag": "forge:rods/wooden" + }, + "C": { + "item": "create:brass_casing" + }, + "B": { + "tag": "forge:ingots/brass" + } + }, + "result": { + "item": "create:flywheel", + "count": 1 + }, + "conditions": [ + { + "type": "create:module", + "module": "contraptions" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/mechanical_crafting/furnace_engine.json b/src/main/resources/data/create/recipes/mechanical_crafting/furnace_engine.json new file mode 100644 index 000000000..c275772e3 --- /dev/null +++ b/src/main/resources/data/create/recipes/mechanical_crafting/furnace_engine.json @@ -0,0 +1,35 @@ +{ + "type": "create:mechanical_crafting", + "pattern": [ + "PPB", + "DCA", + "PPB" + ], + "key": { + "P": { + "tag": "forge:plates/brass" + }, + "D": { + "tag": "forge:plates/copper" + }, + "A": { + "item": "minecraft:piston" + }, + "C": { + "item": "create:brass_casing" + }, + "B": { + "tag": "forge:ingots/brass" + } + }, + "result": { + "item": "create:furnace_engine", + "count": 1 + }, + "conditions": [ + { + "type": "create:module", + "module": "contraptions" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/mechanical_crafting/integrated_circuit.json b/src/main/resources/data/create/recipes/mechanical_crafting/integrated_circuit.json index bac6e7c36..65d515d72 100644 --- a/src/main/resources/data/create/recipes/mechanical_crafting/integrated_circuit.json +++ b/src/main/resources/data/create/recipes/mechanical_crafting/integrated_circuit.json @@ -17,7 +17,7 @@ "tag": "forge:plates/iron" }, "N": { - "tag": "forge:nuggets/copper" + "tag": "forge:nuggets/gold" } }, "result": {