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 0000000..28d6fca Binary files /dev/null and b/src/main/resources/assets/createaeronautics/ponder/stirling_engine.nbt differ diff --git a/src/main/resources/assets/createaeronautics/textures/block/stirling_engine.png b/src/main/resources/assets/createaeronautics/textures/block/stirling_engine.png new file mode 100644 index 0000000..703461d Binary files /dev/null and b/src/main/resources/assets/createaeronautics/textures/block/stirling_engine.png differ