From 811dfadbe751f032464d185972bf76c5e67cb10b Mon Sep 17 00:00:00 2001 From: Erik Date: Fri, 1 Apr 2022 21:29:08 +0200 Subject: [PATCH] Fixed wings --- .../blockstates/stirling_engine.json | 34 +++ .../models/item/stirling_engine.json | 3 + .../loot_tables/blocks/stirling_engine.json | 19 ++ .../stirling_engine/StirlingEngineBlock.java | 2 +- .../connected/CTSpriteShifter.java | 48 ++++ .../AirshipContraptionEntity.java | 3 +- .../ControlledContraptionEntityMixin.java | 5 + .../physics/AbstractContraptionRigidbody.java | 13 ++ .../SimulatedContraptionRigidbody.java | 82 +++++-- .../physics/SubcontraptionRigidbody.java | 20 +- .../models/block/stirling_engine/block.json | 180 +++++++++++++++ .../block/stirling_engine/block_lit.json | 180 +++++++++++++++ .../block/stirling_engine/block_static.json | 216 ++++++++++++++++++ .../models/block/stirling_engine/item.json | 35 +++ .../models/block/stirling_engine/piston.json | 19 ++ .../block/stirling_engine/piston_left.json | 0 .../block/stirling_engine/piston_right.json | 0 .../ponder/stirling_engine.nbt | Bin 0 -> 802 bytes .../textures/block/stirling_engine.png | Bin 0 -> 1800 bytes 19 files changed, 825 insertions(+), 34 deletions(-) create mode 100644 src/generated/resources/assets/createaeronautics/blockstates/stirling_engine.json create mode 100644 src/generated/resources/assets/createaeronautics/models/item/stirling_engine.json create mode 100644 src/generated/resources/data/createaeronautics/loot_tables/blocks/stirling_engine.json create mode 100644 src/main/java/com/eriksonn/createaeronautics/connected/CTSpriteShifter.java create mode 100644 src/main/resources/assets/createaeronautics/models/block/stirling_engine/block.json create mode 100644 src/main/resources/assets/createaeronautics/models/block/stirling_engine/block_lit.json create mode 100644 src/main/resources/assets/createaeronautics/models/block/stirling_engine/block_static.json create mode 100644 src/main/resources/assets/createaeronautics/models/block/stirling_engine/item.json create mode 100644 src/main/resources/assets/createaeronautics/models/block/stirling_engine/piston.json create mode 100644 src/main/resources/assets/createaeronautics/models/block/stirling_engine/piston_left.json create mode 100644 src/main/resources/assets/createaeronautics/models/block/stirling_engine/piston_right.json create mode 100644 src/main/resources/assets/createaeronautics/ponder/stirling_engine.nbt create mode 100644 src/main/resources/assets/createaeronautics/textures/block/stirling_engine.png diff --git a/src/generated/resources/assets/createaeronautics/blockstates/stirling_engine.json b/src/generated/resources/assets/createaeronautics/blockstates/stirling_engine.json new file mode 100644 index 0000000..6bcde0f --- /dev/null +++ b/src/generated/resources/assets/createaeronautics/blockstates/stirling_engine.json @@ -0,0 +1,34 @@ +{ + "variants": { + "facing=north,lit=false": { + "model": "createaeronautics:block/stirling_engine/block" + }, + "facing=south,lit=false": { + "model": "createaeronautics:block/stirling_engine/block", + "y": 180 + }, + "facing=west,lit=false": { + "model": "createaeronautics:block/stirling_engine/block", + "y": 270 + }, + "facing=east,lit=false": { + "model": "createaeronautics:block/stirling_engine/block", + "y": 90 + }, + "facing=north,lit=true": { + "model": "createaeronautics:block/stirling_engine/block_lit" + }, + "facing=south,lit=true": { + "model": "createaeronautics:block/stirling_engine/block_lit", + "y": 180 + }, + "facing=west,lit=true": { + "model": "createaeronautics:block/stirling_engine/block_lit", + "y": 270 + }, + "facing=east,lit=true": { + "model": "createaeronautics:block/stirling_engine/block_lit", + "y": 90 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/createaeronautics/models/item/stirling_engine.json b/src/generated/resources/assets/createaeronautics/models/item/stirling_engine.json new file mode 100644 index 0000000..ec57900 --- /dev/null +++ b/src/generated/resources/assets/createaeronautics/models/item/stirling_engine.json @@ -0,0 +1,3 @@ +{ + "parent": "createaeronautics:block/stirling_engine/item" +} \ No newline at end of file diff --git a/src/generated/resources/data/createaeronautics/loot_tables/blocks/stirling_engine.json b/src/generated/resources/data/createaeronautics/loot_tables/blocks/stirling_engine.json new file mode 100644 index 0000000..b721492 --- /dev/null +++ b/src/generated/resources/data/createaeronautics/loot_tables/blocks/stirling_engine.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "createaeronautics:stirling_engine" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/java/com/eriksonn/createaeronautics/blocks/stirling_engine/StirlingEngineBlock.java b/src/main/java/com/eriksonn/createaeronautics/blocks/stirling_engine/StirlingEngineBlock.java index d375877..b6c82f3 100644 --- a/src/main/java/com/eriksonn/createaeronautics/blocks/stirling_engine/StirlingEngineBlock.java +++ b/src/main/java/com/eriksonn/createaeronautics/blocks/stirling_engine/StirlingEngineBlock.java @@ -52,7 +52,7 @@ protected void createBlockStateDefinition(StateContainer.Builder" + connectedTexture; + if (ENTRY_CACHE.containsKey(key)) + return (CTSpriteShiftEntry) ENTRY_CACHE.get(key); + + CTSpriteShiftEntry entry = create(type); + entry.set(blockTexture, connectedTexture); + ENTRY_CACHE.put(key, entry); + return entry; + } + + public static CTSpriteShiftEntry getCT(com.simibubi.create.foundation.block.connected.CTSpriteShifter.CTType type, String blockTextureName, String connectedTextureName) { + return getCT(type, CreateAeronautics.asResource("block/" + blockTextureName), CreateAeronautics.asResource("block/" + connectedTextureName + "_connected")); + } + + public static CTSpriteShiftEntry getCT(com.simibubi.create.foundation.block.connected.CTSpriteShifter.CTType type, String blockTextureName) { + return getCT(type, blockTextureName, blockTextureName); + } + + private static CTSpriteShiftEntry create(com.simibubi.create.foundation.block.connected.CTSpriteShifter.CTType type) { + switch (type) { + case HORIZONTAL: + return new CTSpriteShiftEntry.Horizontal(); + case OMNIDIRECTIONAL: + return new CTSpriteShiftEntry.Omnidirectional(); + case VERTICAL: + return new CTSpriteShiftEntry.Vertical(); + case CROSS: + return new CTSpriteShiftEntry.Cross(); + default: + return null; + } + } + + public enum CTType { + OMNIDIRECTIONAL, HORIZONTAL, VERTICAL, CROSS; + } + +} diff --git a/src/main/java/com/eriksonn/createaeronautics/contraptions/AirshipContraptionEntity.java b/src/main/java/com/eriksonn/createaeronautics/contraptions/AirshipContraptionEntity.java index 748f1e9..34e3b24 100644 --- a/src/main/java/com/eriksonn/createaeronautics/contraptions/AirshipContraptionEntity.java +++ b/src/main/java/com/eriksonn/createaeronautics/contraptions/AirshipContraptionEntity.java @@ -72,7 +72,7 @@ public class AirshipContraptionEntity extends AbstractContraptionEntity { public AirshipContraption airshipContraption; public int plotId = 0; public SimulatedContraptionRigidbody simulatedRigidbody; - public Map sails; + public Map subContraptions = new HashMap<>(); public Vector3d centerOfMassOffset = Vector3d.ZERO; public static final DataParameter physicsDataAccessor = EntityDataManager.defineId(AirshipContraptionEntity.class, DataSerializers.COMPOUND_TAG); @@ -85,7 +85,6 @@ protected void defineSynchedData() { public AirshipContraptionEntity(EntityType type, World world) { super(type, world); - sails = new HashMap<>(); simulatedRigidbody = new SimulatedContraptionRigidbody(this); System.out.println("New airship entity"); } diff --git a/src/main/java/com/eriksonn/createaeronautics/mixins/ControlledContraptionEntityMixin.java b/src/main/java/com/eriksonn/createaeronautics/mixins/ControlledContraptionEntityMixin.java index 956ea2e..1fb0cd4 100644 --- a/src/main/java/com/eriksonn/createaeronautics/mixins/ControlledContraptionEntityMixin.java +++ b/src/main/java/com/eriksonn/createaeronautics/mixins/ControlledContraptionEntityMixin.java @@ -2,7 +2,9 @@ import com.simibubi.create.content.contraptions.components.structureMovement.ControlledContraptionEntity; import com.simibubi.create.content.contraptions.components.structureMovement.StructureTransform; +import net.minecraft.util.math.BlockPos; import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.gen.Accessor; import org.spongepowered.asm.mixin.gen.Invoker; @Mixin(ControlledContraptionEntity.class) @@ -10,4 +12,7 @@ public interface ControlledContraptionEntityMixin { @Invoker(value = "makeStructureTransform", remap = false) public StructureTransform invokeMakeStructureTransform(); + + @Accessor(remap = false) + BlockPos getControllerPos(); } diff --git a/src/main/java/com/eriksonn/createaeronautics/physics/AbstractContraptionRigidbody.java b/src/main/java/com/eriksonn/createaeronautics/physics/AbstractContraptionRigidbody.java index 49b344f..fab966d 100644 --- a/src/main/java/com/eriksonn/createaeronautics/physics/AbstractContraptionRigidbody.java +++ b/src/main/java/com/eriksonn/createaeronautics/physics/AbstractContraptionRigidbody.java @@ -1,10 +1,13 @@ package com.eriksonn.createaeronautics.physics; import com.simibubi.create.content.contraptions.components.structureMovement.Contraption; +import com.simibubi.create.content.contraptions.components.structureMovement.bearing.SailBlock; +import net.minecraft.block.BlockState; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.vector.Vector3d; import net.minecraft.world.gen.feature.template.Template; +import java.util.HashMap; import java.util.Map; public abstract class AbstractContraptionRigidbody implements IRigidbody{ @@ -12,6 +15,7 @@ public abstract class AbstractContraptionRigidbody implements IRigidbody{ public Vector3d localCenterOfMass=Vector3d.ZERO; public double[][] localInertiaTensor=new double[3][3]; public double localMass; + public Map sails = new HashMap<>(); public void generateMassDependentParameters(Contraption contraption,Vector3d offset) { localMass=0; @@ -43,6 +47,15 @@ public void generateMassDependentParameters(Contraption contraption,Vector3d off } } } + public void findSails(Contraption contraption) + { + sails.clear(); + for (Map.Entry entry : contraption.getBlocks().entrySet()) { + if(entry.getValue().state.getBlock() instanceof SailBlock) { + sails.put(entry.getKey(),entry.getValue().state); + } + } + } public double getLocalMass() { return localMass; } public Vector3d getLocalCenterOfMass(){ return localCenterOfMass; } } diff --git a/src/main/java/com/eriksonn/createaeronautics/physics/SimulatedContraptionRigidbody.java b/src/main/java/com/eriksonn/createaeronautics/physics/SimulatedContraptionRigidbody.java index dc9518d..ab22e67 100644 --- a/src/main/java/com/eriksonn/createaeronautics/physics/SimulatedContraptionRigidbody.java +++ b/src/main/java/com/eriksonn/createaeronautics/physics/SimulatedContraptionRigidbody.java @@ -7,6 +7,7 @@ import com.eriksonn.createaeronautics.blocks.propeller_bearing.PropellerBearingTileEntity; import com.eriksonn.createaeronautics.index.CABlocks; import com.eriksonn.createaeronautics.index.CATileEntities; +import com.eriksonn.createaeronautics.mixins.ControlledContraptionEntityMixin; import com.eriksonn.createaeronautics.particle.PropellerAirParticleData; import com.simibubi.create.AllTileEntities; import com.simibubi.create.content.contraptions.components.fan.EncasedFanTileEntity; @@ -70,7 +71,7 @@ public class SimulatedContraptionRigidbody extends AbstractContraptionRigidbody public SimulatedContraptionRigidbody(AirshipContraptionEntity entity) { orientation=Quaternion.ONE.copy(); - //orientation=new Quaternion(1,0,0,1); + //orientation=new Quaternion(0,1,0,1); //orientation.normalize(); this.entity=entity; @@ -87,9 +88,16 @@ public void tryInit() { if(!isInitialized) { contraption=entity.airshipContraption; - //updateCenterOfMass(); + + generateMassDependentParameters(contraption,Vector3d.ZERO); + mergeMassFromSubContraptions(); + updateLevititeBuoyancy(); isInitialized=true; + updateRotation(); + //applyImpulse(new Vector3d(0,0,1),new Vector3d(0,7,0)); + Vector3d V = getVelocityAtPoint(new Vector3d(0,0,1)); + Vector3d V2 = V.cross(V); } } public void tick() @@ -110,21 +118,31 @@ public void tick() - //updateWings(); + updateWings(); //updateInertia(); updateTileEntityInteractions(); - centerOfMass=Vector3d.ZERO; + //centerOfMass=Vector3d.ZERO; totalAccumulatedBuoyancy =0; totalAccumulatedBuoyancy += levititeBuoyancyController.apply(orientation,entity.position()); updateRotation(); globalForce=globalForce.add(0,-totalAccumulatedBuoyancy,0); + //globalForce=globalForce.add(0,-PhysicsUtils.gravity*mass,0); momentum = momentum.add(rotateQuat(localForce.scale(PhysicsUtils.deltaTime),orientation)).add(globalForce.scale(PhysicsUtils.deltaTime)); globalForce = Vector3d.ZERO; localForce = Vector3d.ZERO; + if(entity.position().y<75) + { + entity.move(0,75-entity.position().y,0); + if(momentum.y<0) + { + momentum=momentum.multiply(1,-0.5,1); + } + } + momentum=momentum.scale(0.995); globalVelocity=momentum.scale(1.0/mass); localVelocity = rotateQuatReverse(globalVelocity,orientation); @@ -514,37 +532,49 @@ Vector3d multiplyMatrixArray(double[][] M,Vector3d v) } void updateWings() { - for (Map.Entry entry : entity.sails.entrySet()) + findSails(this.contraption); + + for (Map.Entry entry : sails.entrySet()) { Vector3d pos = getLocalCoordinate(entry.getKey()); Vector3d vel = getLocalVelocityAtPosition(pos); Vector3d normal = getFacingVector(entry.getValue()); - Vector3d force = normal.scale(-0.8f*normal.dot(vel)); + Vector3d force = normal.scale(-3.0f*normal.dot(vel)); addForce(force,pos); } - for (Map.Entry contraptionEntityEntry : entity.subContraptions.entrySet()) + + for (Map.Entry entry : subcontraptionRigidbodyMap.entrySet()) { - // TODO: make propellers not provide lift - if(contraptionEntityEntry.getValue() != null) + AbstractContraptionEntity entity = entry.getValue().entity; + Contraption subContraption = entity.getContraption(); + + entry.getValue().findSails(subContraption); + + if(entity instanceof ControlledContraptionEntity) { + ControlledContraptionEntity controlledEntity = (ControlledContraptionEntity)entity; + TileEntity te = entity.level.getBlockEntity(((ControlledContraptionEntityMixin)controlledEntity).getControllerPos()); + if (te instanceof PropellerBearingTileEntity) { + continue; + } + } + + for (Map.Entry blockStateEntry : subContraption.getBlocks().entrySet()) { - Contraption subContraption = contraptionEntityEntry.getValue().getContraption(); + if(blockStateEntry.getValue().state.getBlock() instanceof SailBlock) { - for (Map.Entry blockStateEntry : subContraption.getBlocks().entrySet()) - { - if(blockStateEntry.getValue().state.getBlock() instanceof SailBlock) { + Vector3d pos = VecHelper.getCenterOf(blockStateEntry.getKey()); + pos=entry.getValue().toParent(pos); - Vector3d pos = contraptionEntityEntry.getValue().applyRotation(VecHelper.getCenterOf(blockStateEntry.getKey()),0); - pos.subtract(centerOfMass); - Vector3d vel = getLocalVelocityAtPosition(pos); - Vector3d normal = getFacingVector(blockStateEntry.getValue().state); - normal = contraptionEntityEntry.getValue().applyRotation(normal,0); - Vector3d force = normal.scale(-0.8f*normal.dot(vel)); - addForce(force,pos); + Vector3d vel = getLocalVelocityAtPosition(pos); + Vector3d normal = getFacingVector(blockStateEntry.getValue().state); + normal = entity.applyRotation(normal,1); + Vector3d force = normal.scale(-3.0f*normal.dot(vel)); + addForce(force,pos); - } } } } + } public Vector3d getPlotOffset() { @@ -649,6 +679,16 @@ Vector3d getLocalVelocityAtPosition(Vector3d pos) { return localVelocity.add(pos.cross(angularVelocity)); } + public void applyImpulse(Vector3d pos, Vector3d impulse) { + momentum = momentum.add(impulse); + globalVelocity = momentum.scale(1.0 / getMass()); + + // if(Math.abs(impulse.scale(1.0 / getMass()).lengthSqr()) < 0.05) return; + + Vector3d additionalAngularMomentum = rotateInverse(impulse).cross(pos); + angularMomentum = angularMomentum.add(additionalAngularMomentum); + updateRotation(); + } Vector3d getForcePropellerBearing(BlockPos pos,PropellerBearingTileEntity te) { if(!te.isRunning()) diff --git a/src/main/java/com/eriksonn/createaeronautics/physics/SubcontraptionRigidbody.java b/src/main/java/com/eriksonn/createaeronautics/physics/SubcontraptionRigidbody.java index 34604c9..78f143e 100644 --- a/src/main/java/com/eriksonn/createaeronautics/physics/SubcontraptionRigidbody.java +++ b/src/main/java/com/eriksonn/createaeronautics/physics/SubcontraptionRigidbody.java @@ -34,18 +34,18 @@ public Vector3d multiplyInertiaInverse(Vector3d v) { public Vector3d rotate(Vector3d point) { - return parentRigidbody.rotate(entity.applyRotation(point,0)); + return parentRigidbody.rotate(entity.applyRotation(point,1)); } public Vector3d rotateInverse(Vector3d point) { - return entity.reverseRotation(parentRigidbody.rotateInverse(point),0); + return entity.reverseRotation(parentRigidbody.rotateInverse(point),1); } public Vector3d rotateLocal(Vector3d point) { - return entity.applyRotation(point,0); + return entity.applyRotation(point,1); } public Vector3d rotateLocalInverse(Vector3d point) { - return entity.reverseRotation(point,0); + return entity.reverseRotation(point,1); } public Vector3d toLocal(Vector3d globalPoint) { @@ -77,7 +77,7 @@ public Vector3d getAngularVelocity() { public void addForce(Vector3d pos, Vector3d force) { - parentRigidbody.addForce(toParent(pos),entity.applyRotation(force,0)); + parentRigidbody.addForce(toParent(pos),entity.applyRotation(force,1)); } @@ -87,21 +87,21 @@ public void addGlobalForce(Vector3d pos, Vector3d force) { public void addVelocity(Vector3d pos, Vector3d velocity) { - parentRigidbody.addVelocity(toParent(pos),entity.applyRotation(velocity,0)); + parentRigidbody.addVelocity(toParent(pos),entity.applyRotation(velocity,1)); } public void addGlobalVelocity(Vector3d pos, Vector3d velocity) { parentRigidbody.addGlobalVelocity(toParent(pos),velocity); } - Vector3d toParent(Vector3d point) + public Vector3d toParent(Vector3d point) { Vector3d entityOffsetPosition = entity.position().subtract(parentRigidbody.getPlotOffset()); - return entity.applyRotation(point,0).add(entityOffsetPosition); + return entity.applyRotation(point,1).add(entityOffsetPosition); } - Vector3d fromParent(Vector3d point) + public Vector3d fromParent(Vector3d point) { Vector3d entityOffsetPosition = entity.position().subtract(parentRigidbody.getPlotOffset()); - return entity.reverseRotation(point.subtract(entityOffsetPosition),0); + return entity.reverseRotation(point.subtract(entityOffsetPosition),1); } } diff --git a/src/main/resources/assets/createaeronautics/models/block/stirling_engine/block.json b/src/main/resources/assets/createaeronautics/models/block/stirling_engine/block.json new file mode 100644 index 0000000..74c69e9 --- /dev/null +++ b/src/main/resources/assets/createaeronautics/models/block/stirling_engine/block.json @@ -0,0 +1,180 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [48, 32], + "textures": { + "0": "createaeronautics:block/stirling_engine", + "particle": "createaeronautics:block/stirling_engine" + }, + "elements": [ + { + "from": [0, 0, 0], + "to": [16, 2, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 0, 8]}, + "faces": { + "north": {"uv": [0, 5, 5.33333, 6], "texture": "#0"}, + "east": {"uv": [0, 5, 5.33333, 6], "texture": "#0"}, + "south": {"uv": [0, 13, 5.33333, 14], "texture": "#0"}, + "west": {"uv": [0, 5, 5.33333, 6], "texture": "#0"}, + "up": {"uv": [0, 5, 5.33333, 13], "texture": "#0"}, + "down": {"uv": [0, 5, 5.33333, 13], "texture": "#0"} + } + }, + { + "from": [4, 2, 1], + "to": [12, 12, 11], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 0, 8]}, + "faces": { + "north": {"uv": [0, 0, 2.66667, 5], "texture": "#0"}, + "east": {"uv": [5.33333, 0, 8.66667, 5], "texture": "#0"}, + "south": {"uv": [2.66667, 0, 5.33333, 5], "texture": "#0"}, + "west": {"uv": [5.33333, 0, 8.66667, 5], "texture": "#0"}, + "up": {"uv": [2.66667, 0, 5.33333, 5], "texture": "#0"}, + "down": {"uv": [0, 0, 0, 0], "texture": "#0"} + } + }, + { + "from": [3, 2, 11], + "to": [13, 12, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 0, 8]}, + "faces": { + "north": {"uv": [12, 0, 15.33333, 5], "texture": "#0"}, + "east": {"uv": [12.33333, 7.5, 14, 12.5], "texture": "#0"}, + "south": {"uv": [8.66667, 0, 12, 5], "texture": "#0"}, + "west": {"uv": [12.33333, 7.5, 14, 12.5], "texture": "#0"}, + "up": {"uv": [12.33333, 5, 15.66667, 7.5], "texture": "#0"} + } + }, + { + "from": [3.84315, 8.65685, 2], + "to": [4.84315, 13.65685, 11], + "rotation": {"angle": -45, "axis": "z", "origin": [8, 0, 8]}, + "faces": { + "north": {"uv": [7, 10.5, 7.33333, 13], "texture": "#0"}, + "east": {"uv": [7, 8, 10, 10.5], "texture": "#0"}, + "south": {"uv": [8.33333, 10.5, 8.66667, 13], "texture": "#0"}, + "west": {"uv": [7, 8, 10, 10.5], "texture": "#0"}, + "up": {"uv": [6.66667, 5, 7, 9.5], "texture": "#0"} + } + }, + { + "from": [-0.15685, 8.65685, 2], + "to": [0.84315, 13.65685, 11], + "rotation": {"angle": -45, "axis": "z", "origin": [8, 0, 8]}, + "faces": { + "north": {"uv": [8.33333, 10.5, 8.66667, 13], "texture": "#0"}, + "east": {"uv": [7, 8, 10, 10.5], "texture": "#0"}, + "south": {"uv": [7, 10.5, 7.33333, 13], "texture": "#0"}, + "west": {"uv": [7, 8, 10, 10.5], "texture": "#0"}, + "up": {"uv": [5.33333, 5, 5.66667, 9.5], "texture": "#0"} + } + }, + { + "from": [0.84315, 8.65685, 2], + "to": [3.84315, 13.65685, 3], + "rotation": {"angle": -45, "axis": "z", "origin": [8, 0, 8]}, + "faces": { + "north": {"uv": [7.33333, 10.5, 8.33333, 13], "texture": "#0"}, + "south": {"uv": [7.33333, 10.5, 8.33333, 13], "texture": "#0"}, + "up": {"uv": [5.66667, 5, 6.66667, 5.5], "texture": "#0"} + } + }, + { + "from": [0.84315, 8.65685, 10], + "to": [3.84315, 13.65685, 11], + "rotation": {"angle": -45, "axis": "z", "origin": [8, 0, 8]}, + "faces": { + "north": {"uv": [7.33333, 10.5, 8.33333, 13], "texture": "#0"}, + "south": {"uv": [7.33333, 10.5, 8.33333, 13], "texture": "#0"}, + "up": {"uv": [5.66667, 5, 6.66667, 5.5], "texture": "#0"} + } + }, + { + "from": [0.84315, 8.65685, 6], + "to": [3.84315, 13.65685, 7], + "rotation": {"angle": -45, "axis": "z", "origin": [8, 0, 8]}, + "faces": { + "north": {"uv": [7.33333, 10.5, 8.33333, 13], "texture": "#0"}, + "south": {"uv": [7.33333, 10.5, 8.33333, 13], "texture": "#0"}, + "up": {"uv": [5.66667, 5, 6.66667, 5.5], "texture": "#0"} + } + }, + { + "from": [11.15685, 8.65685, 2], + "to": [12.15685, 13.65685, 11], + "rotation": {"angle": 45, "axis": "z", "origin": [8, 0, 8]}, + "faces": { + "north": {"uv": [8.33333, 10.5, 8.66667, 13], "texture": "#0"}, + "east": {"uv": [7, 8, 10, 10.5], "texture": "#0"}, + "south": {"uv": [7, 10.5, 7.33333, 13], "texture": "#0"}, + "west": {"uv": [7, 8, 10, 10.5], "texture": "#0"}, + "up": {"uv": [6.66667, 5, 7, 9.5], "rotation": 180, "texture": "#0"} + } + }, + { + "from": [15.15685, 8.65685, 2], + "to": [16.15685, 13.65685, 11], + "rotation": {"angle": 45, "axis": "z", "origin": [8, 0, 8]}, + "faces": { + "north": {"uv": [7, 10.5, 7.33333, 13], "texture": "#0"}, + "east": {"uv": [7, 8, 10, 10.5], "texture": "#0"}, + "south": {"uv": [8.33333, 10.5, 8.66667, 13], "texture": "#0"}, + "west": {"uv": [7, 8, 10, 10.5], "texture": "#0"}, + "up": {"uv": [5.33333, 5, 5.66667, 9.5], "rotation": 180, "texture": "#0"} + } + }, + { + "from": [12.15685, 8.65685, 10], + "to": [15.15685, 13.65685, 11], + "rotation": {"angle": 45, "axis": "z", "origin": [8, 0, 8]}, + "faces": { + "north": {"uv": [7.33333, 10.5, 8.33333, 13], "texture": "#0"}, + "south": {"uv": [7.33333, 10.5, 8.33333, 13], "texture": "#0"}, + "up": {"uv": [5.66667, 5, 6.66667, 5.5], "rotation": 180, "texture": "#0"} + } + }, + { + "from": [12.15685, 8.65685, 2], + "to": [15.15685, 13.65685, 3], + "rotation": {"angle": 45, "axis": "z", "origin": [8, 0, 8]}, + "faces": { + "north": {"uv": [7.33333, 10.5, 8.33333, 13], "texture": "#0"}, + "south": {"uv": [7.33333, 10.5, 8.33333, 13], "texture": "#0"}, + "up": {"uv": [5.66667, 5, 6.66667, 5.5], "rotation": 180, "texture": "#0"} + } + }, + { + "from": [12.15685, 8.65685, 6], + "to": [15.15685, 13.65685, 7], + "rotation": {"angle": 45, "axis": "z", "origin": [8, 0, 8]}, + "faces": { + "north": {"uv": [7.33333, 10.5, 8.33333, 13], "texture": "#0"}, + "south": {"uv": [7.33333, 10.5, 8.33333, 13], "texture": "#0"}, + "up": {"uv": [5.66667, 5, 6.66667, 5.5], "rotation": 180, "texture": "#0"} + } + }, + { + "from": [2, 2, 0], + "to": [4, 8, 15], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 0, 8]}, + "faces": { + "north": {"uv": [0, 15, 2, 14], "rotation": 90, "texture": "#0"}, + "east": {"uv": [7, 5, 12.33333, 8], "texture": "#0"}, + "south": {"uv": [0, 14, 2, 15], "rotation": 90, "texture": "#0"}, + "west": {"uv": [7, 5, 12.33333, 8], "texture": "#0"}, + "up": {"uv": [0, 14, 5.33333, 15], "rotation": 90, "texture": "#0"} + } + }, + { + "from": [12, 2, 0], + "to": [14, 8, 15], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 0, 8]}, + "faces": { + "north": {"uv": [0, 15, 2, 14], "rotation": 90, "texture": "#0"}, + "east": {"uv": [7, 5, 12.33333, 8], "texture": "#0"}, + "south": {"uv": [0, 14, 2, 15], "rotation": 90, "texture": "#0"}, + "west": {"uv": [7, 5, 12.33333, 8], "texture": "#0"}, + "up": {"uv": [0, 14, 5.33333, 15], "rotation": 90, "texture": "#0"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/createaeronautics/models/block/stirling_engine/block_lit.json b/src/main/resources/assets/createaeronautics/models/block/stirling_engine/block_lit.json new file mode 100644 index 0000000..9a93e4f --- /dev/null +++ b/src/main/resources/assets/createaeronautics/models/block/stirling_engine/block_lit.json @@ -0,0 +1,180 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [48, 32], + "textures": { + "0": "createaeronautics:block/stirling_engine", + "particle": "createaeronautics:block/stirling_engine" + }, + "elements": [ + { + "from": [0, 0, 0], + "to": [16, 2, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 0, 8]}, + "faces": { + "north": {"uv": [0, 5, 5.33333, 6], "texture": "#0"}, + "east": {"uv": [0, 5, 5.33333, 6], "texture": "#0"}, + "south": {"uv": [0, 13, 5.33333, 14], "texture": "#0"}, + "west": {"uv": [0, 5, 5.33333, 6], "texture": "#0"}, + "up": {"uv": [0, 5, 5.33333, 13], "texture": "#0"}, + "down": {"uv": [0, 5, 5.33333, 13], "texture": "#0"} + } + }, + { + "from": [4, 2, 1], + "to": [12, 12, 11], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 0, 8]}, + "faces": { + "north": {"uv": [0, 0, 2.66667, 5], "texture": "#0"}, + "east": {"uv": [5.33333, 0, 8.66667, 5], "texture": "#0"}, + "south": {"uv": [2.66667, 0, 5.33333, 5], "texture": "#0"}, + "west": {"uv": [5.33333, 0, 8.66667, 5], "texture": "#0"}, + "up": {"uv": [2.66667, 0, 5.33333, 5], "texture": "#0"}, + "down": {"uv": [0, 0, 0, 0], "texture": "#0"} + } + }, + { + "from": [3, 2, 11], + "to": [13, 12, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 0, 8]}, + "faces": { + "north": {"uv": [12, 0, 15.33333, 5], "texture": "#0"}, + "east": {"uv": [12.33333, 7.5, 14, 12.5], "texture": "#0"}, + "south": {"uv": [8.66667, 10.5, 12, 15.5], "texture": "#0"}, + "west": {"uv": [12.33333, 7.5, 14, 12.5], "texture": "#0"}, + "up": {"uv": [12.33333, 5, 15.66667, 7.5], "texture": "#0"} + } + }, + { + "from": [3.84315, 8.65685, 2], + "to": [4.84315, 13.65685, 11], + "rotation": {"angle": -45, "axis": "z", "origin": [8, 0, 8]}, + "faces": { + "north": {"uv": [7, 10.5, 7.33333, 13], "texture": "#0"}, + "east": {"uv": [7, 8, 10, 10.5], "texture": "#0"}, + "south": {"uv": [8.33333, 10.5, 8.66667, 13], "texture": "#0"}, + "west": {"uv": [7, 8, 10, 10.5], "texture": "#0"}, + "up": {"uv": [6.66667, 5, 7, 9.5], "texture": "#0"} + } + }, + { + "from": [-0.15685, 8.65685, 2], + "to": [0.84315, 13.65685, 11], + "rotation": {"angle": -45, "axis": "z", "origin": [8, 0, 8]}, + "faces": { + "north": {"uv": [8.33333, 10.5, 8.66667, 13], "texture": "#0"}, + "east": {"uv": [7, 8, 10, 10.5], "texture": "#0"}, + "south": {"uv": [7, 10.5, 7.33333, 13], "texture": "#0"}, + "west": {"uv": [7, 8, 10, 10.5], "texture": "#0"}, + "up": {"uv": [5.33333, 5, 5.66667, 9.5], "texture": "#0"} + } + }, + { + "from": [0.84315, 8.65685, 2], + "to": [3.84315, 13.65685, 3], + "rotation": {"angle": -45, "axis": "z", "origin": [8, 0, 8]}, + "faces": { + "north": {"uv": [7.33333, 10.5, 8.33333, 13], "texture": "#0"}, + "south": {"uv": [7.33333, 10.5, 8.33333, 13], "texture": "#0"}, + "up": {"uv": [5.66667, 5, 6.66667, 5.5], "texture": "#0"} + } + }, + { + "from": [0.84315, 8.65685, 10], + "to": [3.84315, 13.65685, 11], + "rotation": {"angle": -45, "axis": "z", "origin": [8, 0, 8]}, + "faces": { + "north": {"uv": [7.33333, 10.5, 8.33333, 13], "texture": "#0"}, + "south": {"uv": [7.33333, 10.5, 8.33333, 13], "texture": "#0"}, + "up": {"uv": [5.66667, 5, 6.66667, 5.5], "texture": "#0"} + } + }, + { + "from": [0.84315, 8.65685, 6], + "to": [3.84315, 13.65685, 7], + "rotation": {"angle": -45, "axis": "z", "origin": [8, 0, 8]}, + "faces": { + "north": {"uv": [7.33333, 10.5, 8.33333, 13], "texture": "#0"}, + "south": {"uv": [7.33333, 10.5, 8.33333, 13], "texture": "#0"}, + "up": {"uv": [5.66667, 5, 6.66667, 5.5], "texture": "#0"} + } + }, + { + "from": [11.15685, 8.65685, 2], + "to": [12.15685, 13.65685, 11], + "rotation": {"angle": 45, "axis": "z", "origin": [8, 0, 8]}, + "faces": { + "north": {"uv": [8.33333, 10.5, 8.66667, 13], "texture": "#0"}, + "east": {"uv": [7, 8, 10, 10.5], "texture": "#0"}, + "south": {"uv": [7, 10.5, 7.33333, 13], "texture": "#0"}, + "west": {"uv": [7, 8, 10, 10.5], "texture": "#0"}, + "up": {"uv": [6.66667, 5, 7, 9.5], "rotation": 180, "texture": "#0"} + } + }, + { + "from": [15.15685, 8.65685, 2], + "to": [16.15685, 13.65685, 11], + "rotation": {"angle": 45, "axis": "z", "origin": [8, 0, 8]}, + "faces": { + "north": {"uv": [7, 10.5, 7.33333, 13], "texture": "#0"}, + "east": {"uv": [7, 8, 10, 10.5], "texture": "#0"}, + "south": {"uv": [8.33333, 10.5, 8.66667, 13], "texture": "#0"}, + "west": {"uv": [7, 8, 10, 10.5], "texture": "#0"}, + "up": {"uv": [5.33333, 5, 5.66667, 9.5], "rotation": 180, "texture": "#0"} + } + }, + { + "from": [12.15685, 8.65685, 10], + "to": [15.15685, 13.65685, 11], + "rotation": {"angle": 45, "axis": "z", "origin": [8, 0, 8]}, + "faces": { + "north": {"uv": [7.33333, 10.5, 8.33333, 13], "texture": "#0"}, + "south": {"uv": [7.33333, 10.5, 8.33333, 13], "texture": "#0"}, + "up": {"uv": [5.66667, 5, 6.66667, 5.5], "rotation": 180, "texture": "#0"} + } + }, + { + "from": [12.15685, 8.65685, 2], + "to": [15.15685, 13.65685, 3], + "rotation": {"angle": 45, "axis": "z", "origin": [8, 0, 8]}, + "faces": { + "north": {"uv": [7.33333, 10.5, 8.33333, 13], "texture": "#0"}, + "south": {"uv": [7.33333, 10.5, 8.33333, 13], "texture": "#0"}, + "up": {"uv": [5.66667, 5, 6.66667, 5.5], "rotation": 180, "texture": "#0"} + } + }, + { + "from": [12.15685, 8.65685, 6], + "to": [15.15685, 13.65685, 7], + "rotation": {"angle": 45, "axis": "z", "origin": [8, 0, 8]}, + "faces": { + "north": {"uv": [7.33333, 10.5, 8.33333, 13], "texture": "#0"}, + "south": {"uv": [7.33333, 10.5, 8.33333, 13], "texture": "#0"}, + "up": {"uv": [5.66667, 5, 6.66667, 5.5], "rotation": 180, "texture": "#0"} + } + }, + { + "from": [2, 2, 0], + "to": [4, 8, 15], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 0, 8]}, + "faces": { + "north": {"uv": [0, 15, 2, 14], "rotation": 90, "texture": "#0"}, + "east": {"uv": [7, 5, 12.33333, 8], "texture": "#0"}, + "south": {"uv": [0, 14, 2, 15], "rotation": 90, "texture": "#0"}, + "west": {"uv": [7, 5, 12.33333, 8], "texture": "#0"}, + "up": {"uv": [0, 14, 5.33333, 15], "rotation": 90, "texture": "#0"} + } + }, + { + "from": [12, 2, 0], + "to": [14, 8, 15], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 0, 8]}, + "faces": { + "north": {"uv": [0, 15, 2, 14], "rotation": 90, "texture": "#0"}, + "east": {"uv": [7, 5, 12.33333, 8], "texture": "#0"}, + "south": {"uv": [0, 14, 2, 15], "rotation": 90, "texture": "#0"}, + "west": {"uv": [7, 5, 12.33333, 8], "texture": "#0"}, + "up": {"uv": [0, 14, 5.33333, 15], "rotation": 90, "texture": "#0"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/createaeronautics/models/block/stirling_engine/block_static.json b/src/main/resources/assets/createaeronautics/models/block/stirling_engine/block_static.json new file mode 100644 index 0000000..22c7cde --- /dev/null +++ b/src/main/resources/assets/createaeronautics/models/block/stirling_engine/block_static.json @@ -0,0 +1,216 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [48, 32], + "textures": { + "0": "createaeronautics:block/stirling_engine", + "particle": "createaeronautics:block/stirling_engine" + }, + "elements": [ + { + "from": [0, 0, 0], + "to": [16, 2, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 0, 8]}, + "faces": { + "north": {"uv": [0, 5, 5.33333, 6], "texture": "#0"}, + "east": {"uv": [0, 5, 5.33333, 6], "texture": "#0"}, + "south": {"uv": [0, 13, 5.33333, 14], "texture": "#0"}, + "west": {"uv": [0, 5, 5.33333, 6], "texture": "#0"}, + "up": {"uv": [0, 5, 5.33333, 13], "texture": "#0"}, + "down": {"uv": [0, 5, 5.33333, 13], "texture": "#0"} + } + }, + { + "from": [4, 2, 1], + "to": [12, 12, 11], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 0, 8]}, + "faces": { + "north": {"uv": [0, 0, 2.66667, 5], "texture": "#0"}, + "east": {"uv": [5.33333, 0, 8.66667, 5], "texture": "#0"}, + "south": {"uv": [2.66667, 0, 5.33333, 5], "texture": "#0"}, + "west": {"uv": [5.33333, 0, 8.66667, 5], "texture": "#0"}, + "up": {"uv": [2.66667, 0, 5.33333, 5], "texture": "#0"}, + "down": {"uv": [0, 0, 0, 0], "texture": "#0"} + } + }, + { + "from": [3, 2, 11], + "to": [13, 12, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 0, 8]}, + "faces": { + "north": {"uv": [12, 0, 15.33333, 5], "texture": "#0"}, + "east": {"uv": [12.33333, 7.5, 14, 12.5], "texture": "#0"}, + "south": {"uv": [8.66667, 0, 12, 5], "texture": "#0"}, + "west": {"uv": [12.33333, 7.5, 14, 12.5], "texture": "#0"}, + "up": {"uv": [12.33333, 5, 15.66667, 7.5], "texture": "#0"} + } + }, + { + "from": [3.84315, 8.65685, 2], + "to": [4.84315, 13.65685, 11], + "rotation": {"angle": -45, "axis": "z", "origin": [8, 0, 8]}, + "faces": { + "north": {"uv": [7, 10.5, 7.33333, 13], "texture": "#0"}, + "east": {"uv": [7, 8, 10, 10.5], "texture": "#0"}, + "south": {"uv": [8.33333, 10.5, 8.66667, 13], "texture": "#0"}, + "west": {"uv": [7, 8, 10, 10.5], "texture": "#0"}, + "up": {"uv": [6.66667, 5, 7, 9.5], "texture": "#0"} + } + }, + { + "from": [-0.15685, 8.65685, 2], + "to": [0.84315, 13.65685, 11], + "rotation": {"angle": -45, "axis": "z", "origin": [8, 0, 8]}, + "faces": { + "north": {"uv": [8.33333, 10.5, 8.66667, 13], "texture": "#0"}, + "east": {"uv": [7, 8, 10, 10.5], "texture": "#0"}, + "south": {"uv": [7, 10.5, 7.33333, 13], "texture": "#0"}, + "west": {"uv": [7, 8, 10, 10.5], "texture": "#0"}, + "up": {"uv": [5.33333, 5, 5.66667, 9.5], "texture": "#0"} + } + }, + { + "from": [0.84315, 8.65685, 2], + "to": [3.84315, 13.65685, 3], + "rotation": {"angle": -45, "axis": "z", "origin": [8, 0, 8]}, + "faces": { + "north": {"uv": [7.33333, 10.5, 8.33333, 13], "texture": "#0"}, + "south": {"uv": [7.33333, 10.5, 8.33333, 13], "texture": "#0"}, + "up": {"uv": [5.66667, 5, 6.66667, 5.5], "texture": "#0"} + } + }, + { + "name": "piston", + "from": [0.84315, 11.65685, 3], + "to": [3.84315, 12.65685, 6], + "rotation": {"angle": -45, "axis": "z", "origin": [8, 0, 8]}, + "faces": { + "up": {"uv": [7, 13, 8, 14.5], "texture": "#0"} + } + }, + { + "name": "piston", + "from": [0.84315, 11.65685, 7], + "to": [3.84315, 12.65685, 10], + "rotation": {"angle": -45, "axis": "z", "origin": [8, 0, 8]}, + "faces": { + "up": {"uv": [7, 13, 8, 14.5], "texture": "#0"} + } + }, + { + "from": [0.84315, 8.65685, 10], + "to": [3.84315, 13.65685, 11], + "rotation": {"angle": -45, "axis": "z", "origin": [8, 0, 8]}, + "faces": { + "north": {"uv": [7.33333, 10.5, 8.33333, 13], "texture": "#0"}, + "south": {"uv": [7.33333, 10.5, 8.33333, 13], "texture": "#0"}, + "up": {"uv": [5.66667, 5, 6.66667, 5.5], "texture": "#0"} + } + }, + { + "from": [0.84315, 8.65685, 6], + "to": [3.84315, 13.65685, 7], + "rotation": {"angle": -45, "axis": "z", "origin": [8, 0, 8]}, + "faces": { + "north": {"uv": [7.33333, 10.5, 8.33333, 13], "texture": "#0"}, + "south": {"uv": [7.33333, 10.5, 8.33333, 13], "texture": "#0"}, + "up": {"uv": [5.66667, 5, 6.66667, 5.5], "texture": "#0"} + } + }, + { + "from": [11.15685, 8.65685, 2], + "to": [12.15685, 13.65685, 11], + "rotation": {"angle": 45, "axis": "z", "origin": [8, 0, 8]}, + "faces": { + "north": {"uv": [8.33333, 10.5, 8.66667, 13], "texture": "#0"}, + "east": {"uv": [7, 8, 10, 10.5], "texture": "#0"}, + "south": {"uv": [7, 10.5, 7.33333, 13], "texture": "#0"}, + "west": {"uv": [7, 8, 10, 10.5], "texture": "#0"}, + "up": {"uv": [6.66667, 5, 7, 9.5], "rotation": 180, "texture": "#0"} + } + }, + { + "from": [15.15685, 8.65685, 2], + "to": [16.15685, 13.65685, 11], + "rotation": {"angle": 45, "axis": "z", "origin": [8, 0, 8]}, + "faces": { + "north": {"uv": [7, 10.5, 7.33333, 13], "texture": "#0"}, + "east": {"uv": [7, 8, 10, 10.5], "texture": "#0"}, + "south": {"uv": [8.33333, 10.5, 8.66667, 13], "texture": "#0"}, + "west": {"uv": [7, 8, 10, 10.5], "texture": "#0"}, + "up": {"uv": [5.33333, 5, 5.66667, 9.5], "rotation": 180, "texture": "#0"} + } + }, + { + "from": [12.15685, 8.65685, 10], + "to": [15.15685, 13.65685, 11], + "rotation": {"angle": 45, "axis": "z", "origin": [8, 0, 8]}, + "faces": { + "north": {"uv": [7.33333, 10.5, 8.33333, 13], "texture": "#0"}, + "south": {"uv": [7.33333, 10.5, 8.33333, 13], "texture": "#0"}, + "up": {"uv": [5.66667, 5, 6.66667, 5.5], "rotation": 180, "texture": "#0"} + } + }, + { + "name": "piston", + "from": [12.15685, 11.65685, 7], + "to": [15.15685, 12.65685, 10], + "rotation": {"angle": 45, "axis": "z", "origin": [8, 0, 8]}, + "faces": { + "up": {"uv": [7, 13, 8, 14.5], "rotation": 180, "texture": "#0"} + } + }, + { + "name": "piston", + "from": [12.15685, 11.65685, 3], + "to": [15.15685, 12.65685, 6], + "rotation": {"angle": 45, "axis": "z", "origin": [8, 0, 8]}, + "faces": { + "up": {"uv": [7, 13, 8, 14.5], "rotation": 180, "texture": "#0"} + } + }, + { + "from": [12.15685, 8.65685, 2], + "to": [15.15685, 13.65685, 3], + "rotation": {"angle": 45, "axis": "z", "origin": [8, 0, 8]}, + "faces": { + "north": {"uv": [7.33333, 10.5, 8.33333, 13], "texture": "#0"}, + "south": {"uv": [7.33333, 10.5, 8.33333, 13], "texture": "#0"}, + "up": {"uv": [5.66667, 5, 6.66667, 5.5], "rotation": 180, "texture": "#0"} + } + }, + { + "from": [12.15685, 8.65685, 6], + "to": [15.15685, 13.65685, 7], + "rotation": {"angle": 45, "axis": "z", "origin": [8, 0, 8]}, + "faces": { + "north": {"uv": [7.33333, 10.5, 8.33333, 13], "texture": "#0"}, + "south": {"uv": [7.33333, 10.5, 8.33333, 13], "texture": "#0"}, + "up": {"uv": [5.66667, 5, 6.66667, 5.5], "rotation": 180, "texture": "#0"} + } + }, + { + "from": [2, 2, 0], + "to": [4, 8, 15], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 0, 8]}, + "faces": { + "north": {"uv": [0, 15, 2, 14], "rotation": 90, "texture": "#0"}, + "east": {"uv": [7, 5, 12.33333, 8], "texture": "#0"}, + "south": {"uv": [0, 14, 2, 15], "rotation": 90, "texture": "#0"}, + "west": {"uv": [7, 5, 12.33333, 8], "texture": "#0"}, + "up": {"uv": [0, 14, 5.33333, 15], "rotation": 90, "texture": "#0"} + } + }, + { + "from": [12, 2, 0], + "to": [14, 8, 15], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 0, 8]}, + "faces": { + "north": {"uv": [0, 15, 2, 14], "rotation": 90, "texture": "#0"}, + "east": {"uv": [7, 5, 12.33333, 8], "texture": "#0"}, + "south": {"uv": [0, 14, 2, 15], "rotation": 90, "texture": "#0"}, + "west": {"uv": [7, 5, 12.33333, 8], "texture": "#0"}, + "up": {"uv": [0, 14, 5.33333, 15], "rotation": 90, "texture": "#0"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/createaeronautics/models/block/stirling_engine/item.json b/src/main/resources/assets/createaeronautics/models/block/stirling_engine/item.json new file mode 100644 index 0000000..727bd01 --- /dev/null +++ b/src/main/resources/assets/createaeronautics/models/block/stirling_engine/item.json @@ -0,0 +1,35 @@ +{ + "parent": "createaeronautics:block/stirling_engine/block_static", + "display": { + "gui": { + "rotation": [ 30, 45, 0 ], + "translation": [ 0, 0, 0], + "scale":[ 0.625, 0.625, 0.625 ] + }, + "ground": { + "rotation": [ 0, 0, 0 ], + "translation": [ 0, 3, 0], + "scale":[ 0.25, 0.25, 0.25 ] + }, + "fixed": { + "rotation": [ 0, 0, 0 ], + "translation": [ 0, 0, 0], + "scale":[ 0.5, 0.5, 0.5 ] + }, + "thirdperson_righthand": { + "rotation": [ 75, 45, 0 ], + "translation": [ 0, 2.5, 0], + "scale": [ 0.375, 0.375, 0.375 ] + }, + "firstperson_righthand": { + "rotation": [ 0, 45, 0 ], + "translation": [ 0, 0, 0 ], + "scale": [ 0.40, 0.40, 0.40 ] + }, + "firstperson_lefthand": { + "rotation": [ 0, 225, 0 ], + "translation": [ 0, 0, 0 ], + "scale": [ 0.40, 0.40, 0.40 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/createaeronautics/models/block/stirling_engine/piston.json b/src/main/resources/assets/createaeronautics/models/block/stirling_engine/piston.json new file mode 100644 index 0000000..92103e7 --- /dev/null +++ b/src/main/resources/assets/createaeronautics/models/block/stirling_engine/piston.json @@ -0,0 +1,19 @@ +{ + "textures": { + "0": "createaeronautics:block/stirling_engine" + }, + "elements": [ + { + "name": "piston", + "from": [6.5, 5, -1.5], + "to": [9.5, 8, 1.5], + "faces": { + "up": {"uv": [7, 13, 8, 14.5], "texture": "#0"}, + "north": {"uv": [7, 13, 8, 14.5], "texture": "#0"}, + "south": {"uv": [7, 13, 8, 14.5], "texture": "#0"}, + "east": {"uv": [7, 13, 8, 14.5], "texture": "#0"}, + "west": {"uv": [7, 13, 8, 14.5], "texture": "#0"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/createaeronautics/models/block/stirling_engine/piston_left.json b/src/main/resources/assets/createaeronautics/models/block/stirling_engine/piston_left.json new file mode 100644 index 0000000..e69de29 diff --git a/src/main/resources/assets/createaeronautics/models/block/stirling_engine/piston_right.json b/src/main/resources/assets/createaeronautics/models/block/stirling_engine/piston_right.json new file mode 100644 index 0000000..e69de29 diff --git a/src/main/resources/assets/createaeronautics/ponder/stirling_engine.nbt b/src/main/resources/assets/createaeronautics/ponder/stirling_engine.nbt new file mode 100644 index 0000000000000000000000000000000000000000..28d6fca7bc09f2a57355bd718c54de3fcba8a7b1 GIT binary patch literal 802 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