Merge remote-tracking branch 'origin/mc1.18/0.5.1' into mc1.19/0.5.1

This commit is contained in:
simibubi 2023-05-16 15:32:21 +02:00
commit 41c73c2c2c
112 changed files with 974 additions and 870 deletions

View file

@ -50,7 +50,6 @@ body:
description: The version of the mod you were using when the bug occured
options:
- "0.5.1a"
- "0.5.0j"
- "0.5.0i"
- "0.5.0h"
- "0.5.0g"

View file

@ -249,7 +249,7 @@ public class AllShapes {
BELT_COLLISION_MASK = cuboid(0, 0, 0, 16, 19, 16),
SCHEMATICANNON_SHAPE = shape(1, 0, 1, 15, 8, 15).add(0.5, 8, 0.5, 15.5, 11, 15.5)
.build(),
PULLEY_MAGNET = shape(3, 0, 3, 13, 2, 13).add(FOUR_VOXEL_POLE.get(UP))
PULLEY_MAGNET = shape(3, 0, 3, 13, 3, 13).add(FOUR_VOXEL_POLE.get(UP))
.build(),
SPOUT = shape(1, 2, 1, 15, 14, 15).add(2, 0, 2, 14, 16, 14)
.build(),

View file

@ -575,15 +575,6 @@ public class ContraptionCollider {
return true;
}
public static Vec3 getWorldToLocalTranslation(Entity entity, AbstractContraptionEntity contraptionEntity) {
return getWorldToLocalTranslation(entity, contraptionEntity.getAnchorVec(),
contraptionEntity.getRotationState());
}
public static Vec3 getWorldToLocalTranslation(Entity entity, Vec3 anchorVec, ContraptionRotationState rotation) {
return getWorldToLocalTranslation(entity, anchorVec, rotation.asMatrix(), rotation.getYawOffset());
}
public static Vec3 getWorldToLocalTranslation(Entity entity, Vec3 anchorVec, Matrix3d rotationMatrix,
float yawOffset) {
Vec3 entityPosition = entity.position();
@ -591,35 +582,29 @@ public class ContraptionCollider {
.getYsize() / 2, 0);
Vec3 position = entityPosition;
position = position.add(centerY);
position = position.subtract(VecHelper.CENTER_OF_ORIGIN);
position = position.subtract(anchorVec);
position = VecHelper.rotate(position, -yawOffset, Axis.Y);
position = rotationMatrix.transform(position);
position = position.add(VecHelper.CENTER_OF_ORIGIN);
position = worldToLocalPos(position, anchorVec, rotationMatrix, yawOffset);
position = position.subtract(centerY);
position = position.subtract(entityPosition);
return position;
}
public static Vec3 getWorldToLocalTranslation(Vec3 entity, AbstractContraptionEntity contraptionEntity) {
return getWorldToLocalTranslation(entity, contraptionEntity.getAnchorVec(),
public static Vec3 worldToLocalPos(Vec3 worldPos, AbstractContraptionEntity contraptionEntity) {
return worldToLocalPos(worldPos, contraptionEntity.getAnchorVec(),
contraptionEntity.getRotationState());
}
public static Vec3 getWorldToLocalTranslation(Vec3 inPos, Vec3 anchorVec, ContraptionRotationState rotation) {
return getWorldToLocalTranslation(inPos, anchorVec, rotation.asMatrix(), rotation.getYawOffset());
public static Vec3 worldToLocalPos(Vec3 worldPos, Vec3 anchorVec, ContraptionRotationState rotation) {
return worldToLocalPos(worldPos, anchorVec, rotation.asMatrix(), rotation.getYawOffset());
}
public static Vec3 getWorldToLocalTranslation(Vec3 inPos, Vec3 anchorVec, Matrix3d rotationMatrix,
float yawOffset) {
Vec3 position = inPos;
position = position.subtract(VecHelper.CENTER_OF_ORIGIN);
position = position.subtract(anchorVec);
position = VecHelper.rotate(position, -yawOffset, Axis.Y);
position = rotationMatrix.transform(position);
position = position.add(VecHelper.CENTER_OF_ORIGIN);
position = position.subtract(inPos);
return position;
public static Vec3 worldToLocalPos(Vec3 worldPos, Vec3 anchorVec, Matrix3d rotationMatrix, float yawOffset) {
Vec3 localPos = worldPos;
localPos = localPos.subtract(anchorVec);
localPos = localPos.subtract(VecHelper.CENTER_OF_ORIGIN);
localPos = VecHelper.rotate(localPos, -yawOffset, Axis.Y);
localPos = rotationMatrix.transform(localPos);
localPos = localPos.add(VecHelper.CENTER_OF_ORIGIN);
return localPos;
}
/** From Entity#collide **/

View file

@ -6,12 +6,10 @@ import net.minecraft.core.BlockPos;
import net.minecraft.sounds.SoundEvent;
import net.minecraft.sounds.SoundSource;
import net.minecraft.util.Mth;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.level.Level;
import net.minecraft.world.level.block.Blocks;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.levelgen.structure.templatesystem.StructureTemplate;
import net.minecraft.world.phys.Vec3;
public class ContraptionWorld extends WrappedWorld {
final Contraption contraption;
@ -45,18 +43,8 @@ public class ContraptionWorld extends WrappedWorld {
}
@Override
public void playSound(Player player, double x, double y, double z, SoundEvent soundIn, SoundSource category, float volume, float pitch) {
Vec3 worldPos = ContraptionCollider.getWorldToLocalTranslation(new Vec3(x, y, z), this.contraption.entity);
worldPos = worldPos.add(x, y, z);
world.playSound(player, worldPos.x, worldPos.y, worldPos.z, soundIn, category, volume, pitch);
}
@Override
public void playLocalSound(double x, double y, double z, SoundEvent p_184134_7_, SoundSource p_184134_8_, float p_184134_9_, float p_184134_10_, boolean p_184134_11_) {
world.playLocalSound(x, y, z, p_184134_7_, p_184134_8_, p_184134_9_, p_184134_10_, p_184134_11_);
public void playLocalSound(double x, double y, double z, SoundEvent sound, SoundSource category, float volume, float pitch, boolean distanceDelay) {
world.playLocalSound(x, y, z, sound, category, volume, pitch, distanceDelay);
}
// Ensure that we provide accurate information about ContraptionWorld height to mods (such as Starlight) which

View file

@ -85,12 +85,12 @@ public class DivingBootsItem extends BaseArmorItem {
return true;
}
public static Vec3 getMovementMultiplier(Entity entity) {
public static Vec3 getMovementMultiplier(LivingEntity entity) {
double yMotion = entity.getDeltaMovement().y;
double vMultiplier = yMotion < 0 ? Math.max(0, 2.5 - Math.abs(yMotion) * 2) : 1;
if (!entity.isOnGround()) {
if (entity instanceof LivingEntity le && le.jumping && entity.getPersistentData()
if (entity.jumping && entity.getPersistentData()
.contains("LavaGrounded")) {
vMultiplier = yMotion == 0 ? 0 : 1 / yMotion;
} else if (yMotion > 0)
@ -101,7 +101,6 @@ public class DivingBootsItem extends BaseArmorItem {
return new Vec3(1.75, vMultiplier, 1.75);
}
if (entity instanceof LivingEntity)
entity.getPersistentData()
.putBoolean("LavaGrounded", true);
double hMultiplier = entity.isSprinting() ? 1.85 : 1.75;

View file

@ -14,6 +14,8 @@ import net.minecraft.world.entity.LivingEntity;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.ArmorMaterial;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.enchantment.Enchantment;
import net.minecraft.world.item.enchantment.Enchantments;
import net.minecraft.world.level.Level;
import net.minecraftforge.common.ForgeMod;
import net.minecraftforge.event.entity.living.LivingEvent.LivingTickEvent;
@ -28,6 +30,14 @@ public class DivingHelmetItem extends BaseArmorItem {
super(material, SLOT, properties, textureLoc);
}
@Override
public boolean canApplyAtEnchantingTable(ItemStack stack, Enchantment enchantment) {
if (enchantment == Enchantments.AQUA_AFFINITY) {
return false;
}
return super.canApplyAtEnchantingTable(stack, enchantment);
}
public static boolean isWornBy(Entity entity, boolean fireproof) {
ItemStack stack = getWornItem(entity);
if (stack == null)

View file

@ -1,25 +1,16 @@
package com.simibubi.create.content.curiosities.armor;
import com.simibubi.create.AllItems;
import com.simibubi.create.foundation.networking.AllPackets;
import com.simibubi.create.foundation.networking.SimplePacketBase;
import net.minecraft.client.Minecraft;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.network.FriendlyByteBuf;
import net.minecraft.server.level.ServerPlayer;
import net.minecraft.world.entity.Entity;
import net.minecraft.world.entity.EquipmentSlot;
import net.minecraft.world.entity.LivingEntity;
import net.minecraft.world.item.ArmorItem;
import net.minecraft.world.item.ArmorMaterials;
import net.minecraft.world.item.ItemStack;
import net.minecraftforge.event.entity.living.LivingEquipmentChangeEvent;
import net.minecraftforge.event.entity.player.PlayerEvent;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod.EventBusSubscriber;
import net.minecraftforge.network.NetworkEvent.Context;
import net.minecraftforge.network.PacketDistributor;
@EventBusSubscriber
public final class NetheriteDivingHandler {
@ -64,10 +55,14 @@ public final class NetheriteDivingHandler {
public static void setBit(LivingEntity entity, EquipmentSlot slot) {
CompoundTag nbt = entity.getPersistentData();
byte bits = nbt.getByte(NETHERITE_DIVING_BITS_KEY);
if ((bits & 0b1111) == 0b1111) {
return;
}
bits |= 1 << slot.getIndex();
nbt.putByte(NETHERITE_DIVING_BITS_KEY, bits);
if ((bits & 0xF) == 0xF) {
if ((bits & 0b1111) == 0b1111) {
setFireImmune(entity, true);
}
}
@ -79,7 +74,7 @@ public final class NetheriteDivingHandler {
}
byte bits = nbt.getByte(NETHERITE_DIVING_BITS_KEY);
boolean prevFullSet = (bits & 0xF) == 0xF;
boolean prevFullSet = (bits & 0b1111) == 0b1111;
bits &= ~(1 << slot.getIndex());
nbt.putByte(NETHERITE_DIVING_BITS_KEY, bits);
@ -88,59 +83,10 @@ public final class NetheriteDivingHandler {
}
}
// TODO: sync to the client
// The feature works without syncing because health and burning are calculated server-side and synced through vanilla code.
// This method will not be called when the entity is wearing a full diving set on creation because the NBT values are persistent.
public static void setFireImmune(LivingEntity entity, boolean fireImmune) {
entity.getPersistentData().putBoolean(FIRE_IMMUNE_KEY, fireImmune);
AllPackets.getChannel().send(PacketDistributor.TRACKING_ENTITY_AND_SELF.with(() -> entity), SetFireImmunePacket.create(entity));
}
@SubscribeEvent
public static void onStartTrackingEntity(PlayerEvent.StartTracking event) {
if (!(event.getEntity() instanceof ServerPlayer player)) {
return;
}
if (!(event.getTarget() instanceof LivingEntity entity)) {
return;
}
AllPackets.getChannel().send(PacketDistributor.PLAYER.with(() -> player), SetFireImmunePacket.create(entity));
}
public static class SetFireImmunePacket extends SimplePacketBase {
private final int entityId;
private final boolean fireImmune;
public SetFireImmunePacket(int entityId, boolean fireImmune) {
this.entityId = entityId;
this.fireImmune = fireImmune;
}
public static SetFireImmunePacket create(Entity entity) {
int entityId = entity.getId();
boolean fireImmune = entity.getPersistentData().getBoolean(FIRE_IMMUNE_KEY);
return new SetFireImmunePacket(entityId, fireImmune);
}
public SetFireImmunePacket(FriendlyByteBuf buffer) {
entityId = buffer.readVarInt();
fireImmune = buffer.readBoolean();
}
@Override
public void write(FriendlyByteBuf buffer) {
buffer.writeVarInt(entityId);
buffer.writeBoolean(fireImmune);
}
@Override
public boolean handle(Context context) {
context.enqueueWork(() -> {
Entity entity = Minecraft.getInstance().level.getEntity(entityId);
if (entity != null) {
entity.getPersistentData().putBoolean(FIRE_IMMUNE_KEY, fireImmune);
}
});
return true;
}
}
}

View file

@ -47,7 +47,7 @@ public class BeltTunnelInstance extends BlockEntityInstance<BeltTunnelBlockEntit
for (int segment = 0; segment <= 3; segment++) {
float intensity = segment == 3 ? 1.5f : segment + 1;
float segmentOffset = -3 / 16f * segment;
float segmentOffset = -3.05f / 16f * segment + 0.075f / 16f;
FlapData key = model.createInstance();

View file

@ -52,6 +52,8 @@ public class BeltTunnelRenderer extends SmartBlockEntityRenderer<BeltTunnelBlock
.rotateY(horizontalAngle)
.unCentre();
ms.translate(0.075f / 16f, 0, 0);
for (int segment = 0; segment <= 3; segment++) {
ms.pushPose();
float intensity = segment == 3 ? 1.5f : segment + 1;
@ -68,7 +70,7 @@ public class BeltTunnelRenderer extends SmartBlockEntityRenderer<BeltTunnelBlock
.renderInto(ms, vb);
ms.popPose();
ms.translate(-3 / 16f, 0, 0);
ms.translate(-3.05f / 16f, 0, 0);
}
ms.popPose();
}

View file

@ -43,7 +43,7 @@ public class FunnelInstance extends BlockEntityInstance<FunnelBlockEntity> imple
for (int segment = 0; segment <= 3; segment++) {
float intensity = segment == 3 ? 1.5f : segment + 1;
float segmentOffset = -3 / 16f * segment;
float segmentOffset = -3.05f / 16f * segment + 0.075f / 16f;
FlapData key = model.createInstance();

View file

@ -49,7 +49,7 @@ public class FunnelRenderer extends SmartBlockEntityRenderer<FunnelBlockEntity>
msr.centre()
.rotateY(horizontalAngle)
.unCentre();
ms.translate(0, 0, -be.getFlapOffset());
ms.translate(0.075f, 0, -be.getFlapOffset());
for (int segment = 0; segment <= 3; segment++) {
ms.pushPose();
@ -68,7 +68,7 @@ public class FunnelRenderer extends SmartBlockEntityRenderer<FunnelBlockEntity>
.renderInto(ms, vb);
ms.popPose();
ms.translate(-3 / 16f, 0, 0);
ms.translate(-3.05f / 16f, 0, 0);
}
ms.popPose();
}

View file

@ -96,6 +96,13 @@ public class FilteringBehaviour extends BlockEntityBehaviour implements ValueSet
filter = ItemStack.of(nbt.getCompound("Filter"));
count = nbt.getInt("FilterAmount");
upTo = nbt.getBoolean("UpTo");
// Migrate from previous behaviour
if (count == 0) {
upTo = true;
count = filter.getMaxStackSize();
}
super.read(nbt, clientPacket);
}

View file

@ -30,14 +30,15 @@ public class ClientboundMapItemDataPacketMixin {
private List<MapDecoration> decorations;
@Unique
private int[] stationIndices;
private int[] create$stationIndices;
@Inject(method = "<init>(IBZLjava/util/Collection;Lnet/minecraft/world/level/saveddata/maps/MapItemSavedData$MapPatch;)V", at = @At("RETURN"))
private void onInit(int mapId, byte scale, boolean locked, @Nullable Collection<MapDecoration> decorations, @Nullable MapItemSavedData.MapPatch colorPatch, CallbackInfo ci) {
stationIndices = getStationIndices(this.decorations);
private void create$onInit(int mapId, byte scale, boolean locked, @Nullable Collection<MapDecoration> decorations, @Nullable MapItemSavedData.MapPatch colorPatch, CallbackInfo ci) {
create$stationIndices = create$getStationIndices(this.decorations);
}
private static int[] getStationIndices(List<MapDecoration> decorations) {
@Unique
private static int[] create$getStationIndices(List<MapDecoration> decorations) {
if (decorations == null) {
return new int[0];
}
@ -53,11 +54,11 @@ public class ClientboundMapItemDataPacketMixin {
}
@Inject(method = "<init>(Lnet/minecraft/network/FriendlyByteBuf;)V", at = @At("RETURN"))
private void onInit(FriendlyByteBuf buf, CallbackInfo ci) {
stationIndices = buf.readVarIntArray();
private void create$onInit(FriendlyByteBuf buf, CallbackInfo ci) {
create$stationIndices = buf.readVarIntArray();
if (decorations != null) {
for (int i : stationIndices) {
for (int i : create$stationIndices) {
if (i >= 0 && i < decorations.size()) {
MapDecoration decoration = decorations.get(i);
decorations.set(i, StationMarker.Decoration.from(decoration));
@ -67,7 +68,7 @@ public class ClientboundMapItemDataPacketMixin {
}
@Inject(method = "write(Lnet/minecraft/network/FriendlyByteBuf;)V", at = @At("RETURN"))
private void onWrite(FriendlyByteBuf buf, CallbackInfo ci) {
buf.writeVarIntArray(stationIndices);
private void create$onWrite(FriendlyByteBuf buf, CallbackInfo ci) {
buf.writeVarIntArray(create$stationIndices);
}
}

View file

@ -17,7 +17,6 @@ import net.minecraftforge.common.extensions.IForgeEntity;
@Mixin(Entity.class)
@Implements(@Interface(iface = IForgeEntity.class, prefix = "iForgeEntity$"))
public abstract class ContraptionDriverInteractMixin extends CapabilityProvider<Entity> {
private ContraptionDriverInteractMixin(Class<Entity> baseClass) {
super(baseClass);
}
@ -30,5 +29,4 @@ public abstract class ContraptionDriverInteractMixin extends CapabilityProvider<
public boolean iForgeEntity$canRiderInteract() {
return getRootVehicle() instanceof AbstractContraptionEntity;
}
}

View file

@ -26,7 +26,7 @@ public abstract class CustomItemUseEffectsMixin extends Entity {
public abstract ItemStack getUseItem();
@Inject(method = "shouldTriggerItemUseEffects()Z", at = @At("HEAD"), cancellable = true)
private void onShouldTriggerUseEffects(CallbackInfoReturnable<Boolean> cir) {
private void create$onShouldTriggerUseEffects(CallbackInfoReturnable<Boolean> cir) {
ItemStack using = getUseItem();
Item item = using.getItem();
if (item instanceof CustomUseEffectsItem handler) {
@ -38,7 +38,7 @@ public abstract class CustomItemUseEffectsMixin extends Entity {
}
@Inject(method = "triggerItemUseEffects(Lnet/minecraft/world/item/ItemStack;I)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/item/ItemStack;getUseAnimation()Lnet/minecraft/world/item/UseAnim;", ordinal = 0), cancellable = true)
private void onTriggerUseEffects(ItemStack stack, int count, CallbackInfo ci) {
private void create$onTriggerUseEffects(ItemStack stack, int count, CallbackInfo ci) {
Item item = stack.getItem();
if (item instanceof CustomUseEffectsItem handler) {
if (handler.triggerUseEffects(stack, (LivingEntity) (Object) this, count, random)) {

View file

@ -15,7 +15,7 @@ import net.minecraft.world.item.enchantment.Enchantments;
@Mixin(EnchantmentHelper.class)
public class EnchantmentHelperMixin {
@Inject(method = "getItemEnchantmentLevel(Lnet/minecraft/world/item/enchantment/Enchantment;Lnet/minecraft/world/item/ItemStack;)I", at = @At("HEAD"), cancellable = true)
private static void onGetItemEnchantmentLevel(Enchantment enchantment, ItemStack stack, CallbackInfoReturnable<Integer> cir) {
private static void create$onGetItemEnchantmentLevel(Enchantment enchantment, ItemStack stack, CallbackInfoReturnable<Integer> cir) {
if (enchantment == Enchantments.AQUA_AFFINITY && stack.getItem() instanceof DivingHelmetItem) {
cir.setReturnValue(1);
}

View file

@ -1,22 +0,0 @@
package com.simibubi.create.foundation.mixin;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
import com.simibubi.create.content.curiosities.armor.DivingHelmetItem;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.enchantment.Enchantment;
import net.minecraft.world.item.enchantment.Enchantments;
@Mixin(Enchantment.class)
public class EnchantmentMixin {
@Inject(method = "canEnchant(Lnet/minecraft/world/item/ItemStack;)Z", at = @At("HEAD"), cancellable = true)
private void onCanEnchant(ItemStack stack, CallbackInfoReturnable<Boolean> cir) {
if ((Object) this == Enchantments.AQUA_AFFINITY && stack.getItem() instanceof DivingHelmetItem) {
cir.setReturnValue(false);
}
}
}

View file

@ -12,7 +12,7 @@ import net.minecraft.world.entity.Entity;
@Mixin(Entity.class)
public class EntityMixin {
@Inject(method = "fireImmune()Z", at = @At("RETURN"), cancellable = true)
public void fireImmune(CallbackInfoReturnable<Boolean> cir) {
public void create$onFireImmune(CallbackInfoReturnable<Boolean> cir) {
if (!cir.getReturnValueZ()) {
Entity self = (Entity) (Object) this;
boolean immune = self.getPersistentData().getBoolean(NetheriteDivingHandler.FIRE_IMMUNE_KEY);

View file

@ -19,14 +19,14 @@ import net.minecraft.world.phys.Vec3;
@Mixin(LivingEntity.class)
public abstract class LavaSwimmingMixin extends Entity {
public LavaSwimmingMixin(EntityType<?> type, Level level) {
private LavaSwimmingMixin(EntityType<?> type, Level level) {
super(type, level);
}
@Inject(method = "travel(Lnet/minecraft/world/phys/Vec3;)V", slice = @Slice(from = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/LivingEntity;isInLava()Z")), at = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/LivingEntity;move(Lnet/minecraft/world/entity/MoverType;Lnet/minecraft/world/phys/Vec3;)V", shift = Shift.AFTER, ordinal = 0))
private void onLavaTravel(Vec3 travelVector, CallbackInfo ci) {
private void create$onLavaTravel(Vec3 travelVector, CallbackInfo ci) {
ItemStack bootsStack = DivingBootsItem.getWornItem(this);
if (bootsStack != null && AllItems.NETHERITE_DIVING_BOOTS.isIn(bootsStack))
setDeltaMovement(getDeltaMovement().multiply(DivingBootsItem.getMovementMultiplier(this)));
setDeltaMovement(getDeltaMovement().multiply(DivingBootsItem.getMovementMultiplier((LivingEntity) (Object) this)));
}
}

View file

@ -19,7 +19,6 @@ import java.util.Collection;
@Mixin(Main.class)
public class MainMixin {
/**
* Forge completely bypasses vanilla's
* {@link GameTestServer#create(Thread, LevelStorageAccess, PackRepository, Collection, BlockPos)},

View file

@ -53,13 +53,13 @@ public class MapItemSavedDataMixin implements StationMapData {
private int trackedDecorationCount;
@Unique
private final Map<String, StationMarker> stationMarkers = Maps.newHashMap();
private final Map<String, StationMarker> create$stationMarkers = Maps.newHashMap();
@Inject(
method = "load(Lnet/minecraft/nbt/CompoundTag;)Lnet/minecraft/world/level/saveddata/maps/MapItemSavedData;",
at = @At("RETURN")
)
private static void onLoad(CompoundTag compound, CallbackInfoReturnable<MapItemSavedData> cir) {
private static void create$onLoad(CompoundTag compound, CallbackInfoReturnable<MapItemSavedData> cir) {
MapItemSavedData mapData = cir.getReturnValue();
StationMapData stationMapData = (StationMapData) mapData;
@ -74,9 +74,9 @@ public class MapItemSavedDataMixin implements StationMapData {
method = "save(Lnet/minecraft/nbt/CompoundTag;)Lnet/minecraft/nbt/CompoundTag;",
at = @At("RETURN")
)
public void onSave(CompoundTag compound, CallbackInfoReturnable<CompoundTag> cir) {
public void create$onSave(CompoundTag compound, CallbackInfoReturnable<CompoundTag> cir) {
ListTag listTag = new ListTag();
for (StationMarker stationMarker : stationMarkers.values()) {
for (StationMarker stationMarker : create$stationMarkers.values()) {
listTag.add(stationMarker.save());
}
compound.put(STATION_MARKERS_KEY, listTag);
@ -84,7 +84,7 @@ public class MapItemSavedDataMixin implements StationMapData {
@Override
public void addStationMarker(StationMarker marker) {
stationMarkers.put(marker.getId(), marker);
create$stationMarkers.put(marker.getId(), marker);
int scaleMultiplier = 1 << scale;
float localX = (marker.getTarget().getX() - x) / (float) scaleMultiplier;
@ -144,7 +144,7 @@ public class MapItemSavedDataMixin implements StationMapData {
if (marker == null)
return false;
if (stationMarkers.remove(marker.getId(), marker)) {
if (create$stationMarkers.remove(marker.getId(), marker)) {
removeDecoration(marker.getId());
return true;
}
@ -161,12 +161,13 @@ public class MapItemSavedDataMixin implements StationMapData {
method = "checkBanners(Lnet/minecraft/world/level/BlockGetter;II)V",
at = @At("RETURN")
)
public void checkBanners(BlockGetter blockGetter, int x, int z, CallbackInfo ci) {
checkStations(blockGetter, x, z);
public void create$onCheckBanners(BlockGetter blockGetter, int x, int z, CallbackInfo ci) {
create$checkStations(blockGetter, x, z);
}
private void checkStations(BlockGetter blockGetter, int x, int z) {
Iterator<StationMarker> iterator = stationMarkers.values().iterator();
@Unique
private void create$checkStations(BlockGetter blockGetter, int x, int z) {
Iterator<StationMarker> iterator = create$stationMarkers.values().iterator();
List<StationMarker> newMarkers = new ArrayList<>();
while (iterator.hasNext()) {

View file

@ -20,9 +20,8 @@ import net.minecraft.world.level.material.FluidState;
@Mixin(FlowingFluid.class)
public class WaterWheelFluidSpreadMixin {
@Inject(at = @At("HEAD"), cancellable = true, method = "canPassThrough(Lnet/minecraft/world/level/BlockGetter;Lnet/minecraft/world/level/material/Fluid;Lnet/minecraft/core/BlockPos;Lnet/minecraft/world/level/block/state/BlockState;Lnet/minecraft/core/Direction;Lnet/minecraft/core/BlockPos;Lnet/minecraft/world/level/block/state/BlockState;Lnet/minecraft/world/level/material/FluidState;)Z")
protected void canPassThroughOnWaterWheel(BlockGetter pLevel, Fluid pFluid, BlockPos pFromPos, BlockState p_75967_,
@Inject(method = "canPassThrough(Lnet/minecraft/world/level/BlockGetter;Lnet/minecraft/world/level/material/Fluid;Lnet/minecraft/core/BlockPos;Lnet/minecraft/world/level/block/state/BlockState;Lnet/minecraft/core/Direction;Lnet/minecraft/core/BlockPos;Lnet/minecraft/world/level/block/state/BlockState;Lnet/minecraft/world/level/material/FluidState;)Z", at = @At("HEAD"), cancellable = true)
protected void create$canPassThroughOnWaterWheel(BlockGetter pLevel, Fluid pFluid, BlockPos pFromPos, BlockState p_75967_,
Direction pDirection, BlockPos p_75969_, BlockState p_75970_, FluidState p_75971_,
CallbackInfoReturnable<Boolean> cir) {
@ -43,5 +42,4 @@ public class WaterWheelFluidSpreadMixin {
&& irotate.getRotationAxis(belowState) == pDirection.getAxis())
cir.setReturnValue(false);
}
}

View file

@ -1,4 +1,4 @@
package com.simibubi.create.foundation.mixin;
package com.simibubi.create.foundation.mixin.client;
import java.util.Set;
@ -13,15 +13,15 @@ import net.minecraft.server.level.BlockDestructionProgress;
@Mixin(BlockDestructionProgress.class)
public class BlockDestructionProgressMixin implements BlockDestructionProgressExtension {
@Unique
private Set<BlockPos> extraPositions;
private Set<BlockPos> create$extraPositions;
@Override
public Set<BlockPos> getExtraPositions() {
return extraPositions;
return create$extraPositions;
}
@Override
public void setExtraPositions(Set<BlockPos> positions) {
extraPositions = positions;
create$extraPositions = positions;
}
}

View file

@ -1,4 +1,4 @@
package com.simibubi.create.foundation.mixin;
package com.simibubi.create.foundation.mixin.client;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
@ -15,7 +15,7 @@ public abstract class CameraMixin {
at = @At(value = "INVOKE", target = "Lnet/minecraft/client/Camera;getMaxZoom(D)D"),
index = 0
)
public double modifyCameraOffset(double originalValue) {
public double create$modifyCameraOffset(double originalValue) {
return originalValue * CameraDistanceModifier.getMultiplier();
}
}

View file

@ -0,0 +1,172 @@
package com.simibubi.create.foundation.mixin.client;
import java.lang.ref.Reference;
import java.util.Random;
import java.util.Set;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import org.apache.commons.lang3.mutable.MutableBoolean;
import org.apache.logging.log4j.util.TriConsumer;
import org.objectweb.asm.Opcodes;
import org.spongepowered.asm.mixin.Final;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.Unique;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
import com.simibubi.create.content.contraptions.components.structureMovement.AbstractContraptionEntity;
import com.simibubi.create.content.contraptions.components.structureMovement.Contraption;
import com.simibubi.create.content.contraptions.components.structureMovement.ContraptionCollider;
import com.simibubi.create.content.contraptions.components.structureMovement.ContraptionHandler;
import net.minecraft.core.BlockPos;
import net.minecraft.core.particles.BlockParticleOption;
import net.minecraft.core.particles.ParticleTypes;
import net.minecraft.world.entity.Entity;
import net.minecraft.world.entity.EntityDimensions;
import net.minecraft.world.entity.MoverType;
import net.minecraft.world.level.Level;
import net.minecraft.world.level.block.RenderShape;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.levelgen.structure.templatesystem.StructureTemplate;
import net.minecraft.world.phys.Vec3;
import net.minecraftforge.common.capabilities.CapabilityProvider;
@Mixin(Entity.class)
public abstract class EntityContraptionInteractionMixin extends CapabilityProvider<Entity> {
private EntityContraptionInteractionMixin(Class<Entity> baseClass) {
super(baseClass);
}
@Shadow
public Level level;
@Shadow
private Vec3 position;
@Shadow
private float nextStep;
@Shadow
@Final
protected Random random;
@Shadow
private EntityDimensions dimensions;
@Shadow
protected abstract float nextStep();
@Shadow
protected abstract void playStepSound(BlockPos pos, BlockState state);
@Unique
private Stream<AbstractContraptionEntity> create$getIntersectionContraptionsStream() {
return ContraptionHandler.loadedContraptions.get(level)
.values()
.stream()
.map(Reference::get)
.filter(cEntity -> cEntity != null && cEntity.collidingEntities.containsKey((Entity) (Object) this));
}
@Unique
private Set<AbstractContraptionEntity> create$getIntersectingContraptions() {
Set<AbstractContraptionEntity> contraptions = create$getIntersectionContraptionsStream().collect(Collectors.toSet());
contraptions.addAll(level.getEntitiesOfClass(AbstractContraptionEntity.class, ((Entity) (Object) this).getBoundingBox()
.inflate(1f)));
return contraptions;
}
@Unique
private void forCollision(Vec3 worldPos, TriConsumer<Contraption, BlockState, BlockPos> action) {
create$getIntersectingContraptions().forEach(cEntity -> {
Vec3 localPos = ContraptionCollider.worldToLocalPos(worldPos, cEntity);
BlockPos blockPos = new BlockPos(localPos);
Contraption contraption = cEntity.getContraption();
StructureTemplate.StructureBlockInfo info = contraption.getBlocks()
.get(blockPos);
if (info != null) {
BlockState blockstate = info.state;
action.accept(contraption, blockstate, blockPos);
}
});
}
// involves block step sounds on contraptions
// IFNE line 661 injecting before `!blockstate.isAir(this.world, blockpos)`
@Inject(method = "move", at = @At(value = "JUMP", opcode = Opcodes.IFNE, ordinal = 7))
private void create$contraptionStepSounds(MoverType mover, Vec3 movement, CallbackInfo ci) {
Vec3 worldPos = position.add(0, -0.2, 0);
MutableBoolean stepped = new MutableBoolean(false);
forCollision(worldPos, (contraption, state, pos) -> {
playStepSound(pos, state);
stepped.setTrue();
});
if (stepped.booleanValue())
nextStep = nextStep();
}
// involves client-side view bobbing animation on contraptions
@Inject(method = "move", at = @At(value = "TAIL"))
private void create$onMove(MoverType mover, Vec3 movement, CallbackInfo ci) {
if (!level.isClientSide)
return;
Entity self = (Entity) (Object) this;
if (self.isOnGround())
return;
if (self.isPassenger())
return;
Vec3 worldPos = position.add(0, -0.2, 0);
boolean onAtLeastOneContraption = create$getIntersectionContraptionsStream().anyMatch(cEntity -> {
Vec3 localPos = ContraptionCollider.worldToLocalPos(worldPos, cEntity);
BlockPos blockPos = new BlockPos(localPos);
Contraption contraption = cEntity.getContraption();
StructureTemplate.StructureBlockInfo info = contraption.getBlocks()
.get(blockPos);
if (info == null)
return false;
cEntity.registerColliding(self);
return true;
});
if (!onAtLeastOneContraption)
return;
self.setOnGround(true);
self.getPersistentData()
.putBoolean("ContraptionGrounded", true);
}
@Inject(method = "spawnSprintParticle", at = @At(value = "TAIL"))
private void create$onSpawnSprintParticle(CallbackInfo ci) {
Entity self = (Entity) (Object) this;
Vec3 worldPos = position.add(0, -0.2, 0);
BlockPos particlePos = new BlockPos(worldPos); // pos where particles are spawned
forCollision(worldPos, (contraption, state, pos) -> {
if (!state.addRunningEffects(level, pos, self)
&& state.getRenderShape() != RenderShape.INVISIBLE) {
Vec3 speed = self.getDeltaMovement();
level.addParticle(
new BlockParticleOption(ParticleTypes.BLOCK, state).setPos(particlePos),
self.getX() + ((double) random.nextFloat() - 0.5D) * (double) dimensions.width,
self.getY() + 0.1D,
self.getZ() + ((double) random.nextFloat() - 0.5D) * (double) dimensions.height,
speed.x * -4.0D, 1.5D, speed.z * -4.0D
);
}
});
}
}

View file

@ -1,4 +1,4 @@
package com.simibubi.create.foundation.mixin;
package com.simibubi.create.foundation.mixin.client;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
@ -18,7 +18,7 @@ public class FixNormalScalingMixin {
* same as in the beginning.
*/
@Inject(at = @At(value = "INVOKE", target = "Lcom/mojang/math/Matrix3f;mul(F)V", shift = Shift.AFTER), method = "scale(FFF)V", cancellable = true)
private void returnAfterNegate(float x, float y, float z, CallbackInfo ci) {
private void create$returnAfterNegate(float x, float y, float z, CallbackInfo ci) {
ci.cancel();
}
@ -30,7 +30,7 @@ public class FixNormalScalingMixin {
* does not work for negative numbers.
*/
@ModifyArg(at = @At(value = "INVOKE", target = "Lnet/minecraft/util/Mth;fastInvCubeRoot(F)F"), method = "scale(FFF)V")
private float absInvCbrtInput(float input) {
private float create$absInvCbrtInput(float input) {
return Math.abs(input);
}
}

View file

@ -1,4 +1,4 @@
package com.simibubi.create.foundation.mixin;
package com.simibubi.create.foundation.mixin.client;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
@ -9,14 +9,11 @@ import com.simibubi.create.content.logistics.trains.track.TrackBlockOutline;
import com.simibubi.create.foundation.block.BigOutlines;
import net.minecraft.client.renderer.GameRenderer;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
@OnlyIn(Dist.CLIENT)
@Mixin(GameRenderer.class)
public class GameRendererMixin {
@Inject(at = @At("TAIL"), method = "pick")
private void bigShapePick(CallbackInfo ci) {
@Inject(method = "pick(F)V", at = @At("TAIL"))
private void create$bigShapePick(CallbackInfo ci) {
BigOutlines.pick();
TrackBlockOutline.pickCurves();
}

View file

@ -1,4 +1,4 @@
package com.simibubi.create.foundation.mixin;
package com.simibubi.create.foundation.mixin.client;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
@ -12,10 +12,7 @@ import net.minecraft.client.player.AbstractClientPlayer;
import net.minecraft.client.player.LocalPlayer;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.world.entity.player.ProfilePublicKey;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
@OnlyIn(Dist.CLIENT)
@Mixin(LocalPlayer.class)
public abstract class HeavyBootsOnPlayerMixin extends AbstractClientPlayer {
@ -24,10 +21,9 @@ public abstract class HeavyBootsOnPlayerMixin extends AbstractClientPlayer {
}
@Inject(method = "isUnderWater()Z", at = @At("HEAD"), cancellable = true)
public void noSwimmingWithHeavyBootsOn(CallbackInfoReturnable<Boolean> cir) {
public void create$noSwimmingWithHeavyBootsOn(CallbackInfoReturnable<Boolean> cir) {
CompoundTag persistentData = getPersistentData();
if (persistentData.contains("HeavyBoots"))
cir.setReturnValue(false);
}
}

View file

@ -1,4 +1,4 @@
package com.simibubi.create.foundation.mixin;
package com.simibubi.create.foundation.mixin.client;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
@ -19,7 +19,7 @@ import net.minecraft.world.item.ItemStack;
@Mixin(HumanoidArmorLayer.class)
public class HumanoidArmorLayerMixin {
@Inject(method = "renderArmorPiece(Lcom/mojang/blaze3d/vertex/PoseStack;Lnet/minecraft/client/renderer/MultiBufferSource;Lnet/minecraft/world/entity/LivingEntity;Lnet/minecraft/world/entity/EquipmentSlot;ILnet/minecraft/client/model/HumanoidModel;)V", at = @At(value = "INVOKE_ASSIGN", target = "Lnet/minecraft/world/entity/LivingEntity;getItemBySlot(Lnet/minecraft/world/entity/EquipmentSlot;)Lnet/minecraft/world/item/ItemStack;"), locals = LocalCapture.CAPTURE_FAILHARD, cancellable = true)
private void onRenderArmorPiece(PoseStack poseStack, MultiBufferSource bufferSource, LivingEntity entity, EquipmentSlot slot, int light, HumanoidModel<?> model, CallbackInfo ci, ItemStack stack) {
private void create$onRenderArmorPiece(PoseStack poseStack, MultiBufferSource bufferSource, LivingEntity entity, EquipmentSlot slot, int light, HumanoidModel<?> model, CallbackInfo ci, ItemStack stack) {
if (stack.getItem() instanceof CustomRenderedArmorItem renderer) {
renderer.renderArmorPiece((HumanoidArmorLayer<?, ?, ?>) (Object) this, poseStack, bufferSource, entity, slot, light, model, stack);
ci.cancel();

View file

@ -1,4 +1,4 @@
package com.simibubi.create.foundation.mixin;
package com.simibubi.create.foundation.mixin.client;
import java.util.Set;
import java.util.SortedSet;
@ -34,7 +34,7 @@ public class LevelRendererMixin {
private Long2ObjectMap<SortedSet<BlockDestructionProgress>> destructionProgress;
@Inject(method = "destroyBlockProgress(ILnet/minecraft/core/BlockPos;I)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/server/level/BlockDestructionProgress;updateTick(I)V", shift = Shift.AFTER), locals = LocalCapture.CAPTURE_FAILHARD)
private void onDestroyBlockProgress(int breakerId, BlockPos pos, int progress, CallbackInfo ci, BlockDestructionProgress progressObj) {
private void create$onDestroyBlockProgress(int breakerId, BlockPos pos, int progress, CallbackInfo ci, BlockDestructionProgress progressObj) {
BlockState state = level.getBlockState(pos);
IClientBlockExtensions properties = IClientBlockExtensions.of(state);
if (properties instanceof MultiPosDestructionHandler handler) {
@ -50,7 +50,7 @@ public class LevelRendererMixin {
}
@Inject(method = "removeProgress(Lnet/minecraft/server/level/BlockDestructionProgress;)V", at = @At("RETURN"))
private void onRemoveProgress(BlockDestructionProgress progress, CallbackInfo ci) {
private void create$onRemoveProgress(BlockDestructionProgress progress, CallbackInfo ci) {
Set<BlockPos> extraPositions = ((BlockDestructionProgressExtension) progress).getExtraPositions();
if (extraPositions != null) {
for (BlockPos extraPos : extraPositions) {

View file

@ -1,4 +1,4 @@
package com.simibubi.create.foundation.mixin;
package com.simibubi.create.foundation.mixin.client;
import java.util.Iterator;
@ -27,7 +27,7 @@ public class MapRendererMapInstanceMixin {
@Group(name = "custom_decoration_rendering", min = 1, max = 1)
@Inject(method = "draw(Lcom/mojang/blaze3d/vertex/PoseStack;Lnet/minecraft/client/renderer/MultiBufferSource;ZI)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/level/saveddata/maps/MapDecoration;render(I)Z", remap = false), locals = LocalCapture.CAPTURE_FAILHARD)
private void onDraw(PoseStack poseStack, MultiBufferSource bufferSource, boolean active, int packedLight, CallbackInfo ci, int i, int j, float f, Matrix4f matrix4f, VertexConsumer vertexConsumer, int index, Iterator<MapDecoration> iterator, MapDecoration decoration) {
private void create$onDraw(PoseStack poseStack, MultiBufferSource bufferSource, boolean active, int packedLight, CallbackInfo ci, int i, int j, float f, Matrix4f matrix4f, VertexConsumer vertexConsumer, int index, Iterator<MapDecoration> iterator, MapDecoration decoration) {
if (decoration instanceof CustomRenderedMapDecoration renderer) {
renderer.render(poseStack, bufferSource, active, packedLight, data, index);
}
@ -35,7 +35,7 @@ public class MapRendererMapInstanceMixin {
@Group(name = "custom_decoration_rendering")
@Inject(method = "draw(Lcom/mojang/blaze3d/vertex/PoseStack;Lnet/minecraft/client/renderer/MultiBufferSource;ZI)V", at = @At(value = "FIELD", target = "net/optifine/reflect/Reflector.ForgeMapDecoration_render:Lnet/optifine/reflect/ReflectorMethod;", opcode = Opcodes.GETSTATIC, ordinal = 1, remap = false), locals = LocalCapture.CAPTURE_FAILHARD)
private void onDrawOptifine(PoseStack poseStack, MultiBufferSource bufferSource, boolean active, int packedLight, CallbackInfo ci, int i, int j, float f, Matrix4f matrix4f, VertexConsumer vertexConsumer, int index, Iterator<MapDecoration> iterator, MapDecoration decoration) {
private void create$onDrawOptifine(PoseStack poseStack, MultiBufferSource bufferSource, boolean active, int packedLight, CallbackInfo ci, int i, int j, float f, Matrix4f matrix4f, VertexConsumer vertexConsumer, int index, Iterator<MapDecoration> iterator, MapDecoration decoration) {
if (decoration instanceof CustomRenderedMapDecoration renderer) {
renderer.render(poseStack, bufferSource, active, packedLight, data, index);
}

View file

@ -1,4 +1,4 @@
package com.simibubi.create.foundation.mixin;
package com.simibubi.create.foundation.mixin.client;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
@ -17,20 +17,18 @@ import net.minecraftforge.client.model.data.ModelDataManager;
@OnlyIn(Dist.CLIENT)
@Mixin(ModelDataManager.class)
public class ModelDataRefreshMixin {
/**
* Normally ModelDataManager will throw an exception if a block entity tries
* to refresh its model data from a world the client isn't currently in,
* but we need that to not happen for block entities in fake schematic
* worlds, so in those cases just do nothing instead.
*/
@Inject(at = @At("HEAD"), method = "requestModelDataRefresh", cancellable = true, remap = false)
private static void requestModelDataRefresh(BlockEntity be, CallbackInfo ci) {
@Inject(method = "requestModelDataRefresh", at = @At("HEAD"), cancellable = true, remap = false)
private static void create$requestModelDataRefresh(BlockEntity be, CallbackInfo ci) {
if (be != null) {
Level world = be.getLevel();
if (world != Minecraft.getInstance().level && world instanceof SchematicWorld)
ci.cancel();
}
}
}

View file

@ -1,4 +1,4 @@
package com.simibubi.create.foundation.mixin;
package com.simibubi.create.foundation.mixin.client;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
@ -17,7 +17,7 @@ import net.minecraft.world.item.ItemStack;
@Mixin(PlayerRenderer.class)
public class PlayerRendererMixin {
@Inject(method = "getArmPose(Lnet/minecraft/client/player/AbstractClientPlayer;Lnet/minecraft/world/InteractionHand;)Lnet/minecraft/client/model/HumanoidModel$ArmPose;", at = @At(value = "INVOKE_ASSIGN", target = "Lnet/minecraft/client/player/AbstractClientPlayer;getItemInHand(Lnet/minecraft/world/InteractionHand;)Lnet/minecraft/world/item/ItemStack;"), locals = LocalCapture.CAPTURE_FAILHARD, cancellable = true)
private static void onGetArmPose(AbstractClientPlayer player, InteractionHand hand, CallbackInfoReturnable<ArmPose> cir, ItemStack stack) {
private static void create$onGetArmPose(AbstractClientPlayer player, InteractionHand hand, CallbackInfoReturnable<ArmPose> cir, ItemStack stack) {
if (stack.getItem() instanceof CustomArmPoseItem armPoseProvider) {
ArmPose pose = armPoseProvider.getArmPose(stack, player, hand);
if (pose != null) {

View file

@ -1,4 +1,4 @@
package com.simibubi.create.foundation.mixin;
package com.simibubi.create.foundation.mixin.client;
import org.spongepowered.asm.mixin.Final;
import org.spongepowered.asm.mixin.Mixin;
@ -11,18 +11,15 @@ import com.mojang.blaze3d.platform.Window;
import com.simibubi.create.foundation.gui.UIRenderHelper;
import net.minecraft.client.Minecraft;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
@OnlyIn(Dist.CLIENT)
@Mixin(Minecraft.class)
public class WindowResizeMixin {
@Shadow
@Final
private Window window;
@Shadow @Final private Window window;
@Inject(at = @At("TAIL"), method = "resizeDisplay")
private void updateWindowSize(CallbackInfo ci) {
@Inject(method = "resizeDisplay()V", at = @At("TAIL"))
private void create$updateWindowSize(CallbackInfo ci) {
UIRenderHelper.updateWindowSize(window);
}
}

View file

@ -38,7 +38,6 @@ import com.simibubi.create.content.contraptions.components.structureMovement.tra
import com.simibubi.create.content.contraptions.fluids.actors.FluidSplashPacket;
import com.simibubi.create.content.contraptions.relays.advanced.sequencer.ConfigureSequencedGearshiftPacket;
import com.simibubi.create.content.contraptions.relays.gauge.GaugeObservedPacket;
import com.simibubi.create.content.curiosities.armor.NetheriteDivingHandler;
import com.simibubi.create.content.curiosities.bell.SoulPulseEffectPacket;
import com.simibubi.create.content.curiosities.clipboard.ClipboardEditPacket;
import com.simibubi.create.content.curiosities.symmetry.ConfigureSymmetryWandPacket;
@ -204,15 +203,13 @@ public enum AllPackets {
PLAY_TO_CLIENT),
UPDATE_ELEVATOR_FLOORS(ElevatorFloorListPacket.class, ElevatorFloorListPacket::new, PLAY_TO_CLIENT),
CONTRAPTION_ACTOR_TOGGLE(ContraptionDisableActorPacket.class, ContraptionDisableActorPacket::new, PLAY_TO_CLIENT),
SET_FIRE_IMMUNE(NetheriteDivingHandler.SetFireImmunePacket.class, NetheriteDivingHandler.SetFireImmunePacket::new,
PLAY_TO_CLIENT),
CONTRAPTION_COLLIDER_LOCK(ContraptionColliderLockPacket.class, ContraptionColliderLockPacket::new, PLAY_TO_CLIENT),
ATTACHED_COMPUTER(AttachedComputerPacket.class, AttachedComputerPacket::new, PLAY_TO_CLIENT),
;
public static final ResourceLocation CHANNEL_NAME = Create.asResource("main");
public static final int NETWORK_VERSION = 2;
public static final int NETWORK_VERSION = 3;
public static final String NETWORK_VERSION_STR = String.valueOf(NETWORK_VERSION);
private static SimpleChannel channel;

View file

@ -265,7 +265,7 @@ public class PonderTagScreen extends NavigatableSimiScreen {
// UIRenderHelper.streak(0, itemArea.getX() - 10, itemArea.getY() - 20, 20, 180, 0x101010);
drawCenteredString(ms, font, relatedTitle, windowWidth / 2, itemArea.getY() - 20, Theme.i(Theme.Key.TEXT));
ms.translate(0,0, -200);
ms.translate(0, 0, -200);
UIRenderHelper.streak(ms, 0, 0, 0, itemArea.getHeight() + 10, itemArea.getWidth() / 2 + 75);
UIRenderHelper.streak(ms, 180, 0, 0, itemArea.getHeight() + 10, itemArea.getWidth() / 2 + 75);

View file

@ -95,7 +95,7 @@ public class LerpedFloat {
}
public boolean settled() {
return Mth.equal((double) previousValue, value);
return Mth.equal((double) previousValue, value) && (chaseFunction == null || Mth.equal((double) value, chaseTarget));
}
public float getChaseTarget() {

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

View file

@ -1,65 +1,66 @@
{
"credit": "Made with Blockbench",
"textures": {
"particle": "#side",
"gearbox": "#back",
"particle": "#side",
"bearing_side": "#side"
},
"elements": [
{
"name": "Side",
"from": [ 0, 0, 0 ],
"to": [ 2, 12, 16 ],
"from": [0, 0, 0],
"to": [2, 12, 16],
"faces": {
"north": { "texture": "#bearing_side", "uv": [ 14, 4, 16, 16 ] },
"east": { "texture": "#bearing_side", "uv": [ 0, 4, 16, 16 ] },
"south": { "texture": "#bearing_side", "uv": [ 0, 4, 2, 16 ] },
"west": { "texture": "#bearing_side", "uv": [ 0, 4, 16, 16 ] },
"up": { "texture": "#gearbox", "uv": [ 0, 0, 2, 16 ] },
"down": { "texture": "#gearbox", "uv": [ 0, 0, 2, 16 ] }
"north": {"uv": [14, 4, 16, 16], "texture": "#bearing_side"},
"east": {"uv": [0, 4, 16, 16], "texture": "#bearing_side"},
"south": {"uv": [0, 4, 2, 16], "texture": "#bearing_side"},
"west": {"uv": [0, 4, 16, 16], "texture": "#bearing_side"},
"up": {"uv": [0, 0, 2, 16], "texture": "#gearbox"},
"down": {"uv": [0, 0, 2, 16], "texture": "#gearbox"}
}
},
{
"name": "Side",
"from": [ 14, 0, 0 ],
"to": [ 16, 12, 16 ],
"from": [14, 0, 0],
"to": [16, 12, 16],
"faces": {
"north": { "texture": "#bearing_side", "uv": [ 0, 4, 2, 16 ] },
"east": { "texture": "#bearing_side", "uv": [ 0, 4, 16, 16 ] },
"south": { "texture": "#bearing_side", "uv": [ 14, 4, 16, 16 ] },
"west": { "texture": "#bearing_side", "uv": [ 0, 4, 16, 16 ] },
"up": { "texture": "#gearbox", "uv": [ 14, 0, 16, 16 ] },
"down": { "texture": "#gearbox", "uv": [ 14, 0, 16, 16 ] }
"north": {"uv": [0, 4, 2, 16], "texture": "#bearing_side"},
"east": {"uv": [0, 4, 16, 16], "texture": "#bearing_side"},
"south": {"uv": [14, 4, 16, 16], "texture": "#bearing_side"},
"west": {"uv": [0, 4, 16, 16], "texture": "#bearing_side"},
"up": {"uv": [14, 0, 16, 16], "texture": "#gearbox"},
"down": {"uv": [14, 0, 16, 16], "texture": "#gearbox"}
}
},
{
"name": "Side",
"from": [ 2, 0, 0 ],
"to": [ 14, 12, 2 ],
"from": [2, 0, 0],
"to": [14, 12, 2],
"faces": {
"north": { "texture": "#bearing_side", "uv": [ 2, 4, 14, 16 ] },
"south": { "texture": "#bearing_side", "uv": [ 2, 4, 14, 16 ] },
"up": { "texture": "#gearbox", "uv": [ 2, 0, 14, 2 ] },
"down": { "texture": "#gearbox", "uv": [ 2, 14, 14, 16 ] }
"north": {"uv": [2, 4, 14, 16], "texture": "#bearing_side"},
"south": {"uv": [2, 4, 14, 16], "texture": "#bearing_side"},
"up": {"uv": [2, 0, 14, 2], "texture": "#gearbox"},
"down": {"uv": [2, 14, 14, 16], "texture": "#gearbox"}
}
},
{
"name": "Side",
"from": [ 2, 0, 14 ],
"to": [ 14, 12, 16 ],
"from": [2, 0, 14],
"to": [14, 12, 16],
"faces": {
"north": { "texture": "#bearing_side", "uv": [ 2, 4, 14, 16 ] },
"south": { "texture": "#bearing_side", "uv": [ 2, 4, 14, 16 ] },
"up": { "texture": "#gearbox", "uv": [ 2, 14, 14, 16 ] },
"down": { "texture": "#gearbox", "uv": [ 2, 0, 14, 2 ] }
"north": {"uv": [2, 4, 14, 16], "texture": "#bearing_side"},
"south": {"uv": [2, 4, 14, 16], "texture": "#bearing_side"},
"up": {"uv": [2, 14, 14, 16], "texture": "#gearbox"},
"down": {"uv": [2, 0, 14, 2], "texture": "#gearbox"}
}
},
{
"name": "Core",
"from": [ 2, 1, 2 ],
"to": [ 14, 12, 14 ],
"from": [2, 0.95, 2],
"to": [14, 12, 14],
"faces": {
"up": { "texture": "#gearbox", "uv": [ 2, 2, 14, 14 ] },
"down": { "texture": "#gearbox", "uv": [ 2, 2, 14, 14 ] }
"up": {"uv": [2, 2, 14, 14], "texture": "#gearbox"},
"down": {"uv": [2, 2, 14, 14], "texture": "#gearbox"}
}
}
]

View file

@ -48,7 +48,7 @@
},
{
"from": [1.95, -3, 6],
"to": [14.05, 10, 0],
"to": [14.05, 10.05, 0],
"faces": {
"east": {"uv": [13, 6, 16, 12.5], "rotation": 180, "texture": "#base"},
"west": {"uv": [13, 8.5, 16, 16], "texture": "#base"},
@ -68,8 +68,8 @@
},
{
"name": "MidExtension",
"from": [2, -2, 6],
"to": [14, 14, 10],
"from": [1.95, -2, 6],
"to": [14.05, 14.05, 10],
"rotation": {"angle": 0, "axis": "y", "origin": [8, -8, 6]},
"faces": {
"north": {"uv": [0, 0, 8, 6], "rotation": 270, "texture": "#base"},

View file

@ -73,8 +73,8 @@
},
{
"name": "Internal",
"from": [1.95, -3, 19],
"to": [14.05, 10, 13],
"from": [1.9, -3, 19],
"to": [14.1, 10.05, 13],
"rotation": {"angle": -22.5, "axis": "x", "origin": [0, -3, 13]},
"faces": {
"east": {"uv": [13, 16, 16, 9.5], "rotation": 180, "texture": "#base"},

View file

@ -73,8 +73,8 @@
},
{
"name": "Internal",
"from": [1.95, -3, 19],
"to": [14.05, 10, 13],
"from": [1.9, -3, 19],
"to": [14.1, 10.05, 13],
"rotation": {"angle": -22.5, "axis": "x", "origin": [0, -3, 13]},
"faces": {
"east": {"uv": [13, 6, 16, 12.5], "rotation": 180, "texture": "#base"},

View file

@ -48,7 +48,7 @@
},
{
"from": [1.95, -3, 14],
"to": [14.05, 10, 8],
"to": [14.05, 10.05, 8],
"faces": {
"east": {"uv": [13, 16, 16, 9.5], "rotation": 180, "texture": "#base"},
"west": {"uv": [13, 12.5, 16, 6], "texture": "#base"},
@ -93,8 +93,8 @@
}
},
{
"from": [1, -2, 14],
"to": [15, 15, 15],
"from": [0.95, -2, 14],
"to": [15.05, 15.05, 15],
"rotation": {"angle": 0, "axis": "y", "origin": [9, 6, 22]},
"faces": {
"east": {"uv": [7, 7.5, 7.5, 16], "texture": "#back"},

View file

@ -6,8 +6,8 @@
"elements": [
{
"name": "F4",
"from": [11, -3, 9],
"to": [14, 10, 10],
"from": [10.975, -3, 8.95],
"to": [14.025, 10.05, 9.95],
"rotation": {"angle": 0, "axis": "y", "origin": [-24.5, -7.5, 9]},
"faces": {
"north": {"uv": [6, 8, 7.5, 14.5], "texture": "#4"},

View file

@ -6,8 +6,8 @@
"elements": [
{
"name": "F4",
"from": [11, -3, 1],
"to": [14, 10, 2],
"from": [10.975, -3, 0.95],
"to": [14.025, 10.05, 1.95],
"rotation": {"angle": 0, "axis": "y", "origin": [-24.5, -7.5, 9]},
"faces": {
"north": {"uv": [6, 8, 7.5, 14.5], "texture": "#4"},

View file

@ -22,8 +22,8 @@
},
{
"name": "inner X",
"from": [0, -5, 14],
"to": [16, 16, 2],
"from": [0, -5, 14.05],
"to": [16, 16, 1.95],
"faces": {
"north": {"uv": [0, 0, 8, 10.5], "texture": "#tunnel"},
"south": {"uv": [0, 0, 8, 10.5], "texture": "#tunnel"}
@ -41,8 +41,8 @@
},
{
"name": "inner rim",
"from": [0, 10, 0],
"to": [16, 12, 16],
"from": [0, 10.05, 0],
"to": [16, 12.05, 16],
"faces": {
"down": {"uv": [0, 0, 16, 16], "texture": "#frame"}
}

View file

@ -22,8 +22,8 @@
},
{
"name": "inner X",
"from": [0, -5, 14],
"to": [16, 16, 2],
"from": [0, -5, 14.05],
"to": [16, 16, 1.95],
"faces": {
"north": {"uv": [0, 0, 8, 10.5], "texture": "#direction"},
"south": {"uv": [0, 0, 8, 10.5], "texture": "#tunnel"}
@ -31,8 +31,8 @@
},
{
"name": "inner Z",
"from": [14, -5, 0],
"to": [2, 16, 16],
"from": [14.05, -5, 0],
"to": [1.95, 16, 16],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 5.5, 24]},
"faces": {
"east": {"uv": [0, 5.5, 8, 16], "rotation": 180, "texture": "#direction"},
@ -41,8 +41,8 @@
},
{
"name": "inner rim",
"from": [0, 10, 0],
"to": [16, 12, 16],
"from": [0, 10.05, 0],
"to": [16, 12.05, 16],
"faces": {
"down": {"uv": [0, 0, 16, 16], "texture": "#frame"}
}

View file

@ -22,8 +22,8 @@
},
{
"name": "inner X",
"from": [0, -5, 14],
"to": [16, 16, 2],
"from": [0, -5, 14.05],
"to": [16, 16, 1.95],
"faces": {
"north": {"uv": [0, 0, 8, 10.5], "texture": "#tunnel"},
"south": {"uv": [0, 5.5, 8, 16], "rotation": 180, "texture": "#direction"}
@ -31,8 +31,8 @@
},
{
"name": "inner Z",
"from": [14, -5, 0],
"to": [2, 16, 16],
"from": [14.05, -5, 0],
"to": [1.95, 16, 16],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 5.5, 24]},
"faces": {
"east": {"uv": [0, 5.5, 8, 16], "rotation": 180, "texture": "#direction"},
@ -41,8 +41,8 @@
},
{
"name": "inner rim",
"from": [0, 10, 0],
"to": [16, 12, 16],
"from": [0, 10.05, 0],
"to": [16, 12.05, 16],
"faces": {
"down": {"uv": [0, 0, 16, 16], "texture": "#frame"}
}

View file

@ -21,8 +21,8 @@
},
{
"name": "inner X",
"from": [0, -5, 14],
"to": [16, 16, 2],
"from": [0, -5, 14.05],
"to": [16, 16, 1.95],
"faces": {
"north": {"uv": [8, 0, 16, 10.5], "texture": "#tunnel"},
"south": {"uv": [8, 0, 16, 10.5], "texture": "#tunnel"}
@ -40,8 +40,8 @@
},
{
"name": "inner rim",
"from": [0, 10, 0],
"to": [16, 12, 16],
"from": [0, 10.05, 0],
"to": [16, 12.05, 16],
"faces": {
"down": {"uv": [0, 4, 8, 12], "texture": "#direction"}
}

View file

@ -42,7 +42,7 @@
},
{
"from": [2, 5, 7],
"to": [14, 13, 15],
"to": [14, 13.05, 15],
"faces": {
"north": {"uv": [1, 14, 7, 10.05], "rotation": 180, "texture": "#4"},
"up": {"uv": [1, 13.5, 7, 9.55], "texture": "#4"},

View file

@ -75,7 +75,7 @@
},
{
"from": [2, 5, 7],
"to": [14, 13, 15],
"to": [14, 13.05, 15],
"faces": {
"north": {"uv": [1, 14, 7, 10], "rotation": 180, "texture": "#4"},
"up": {"uv": [1, 13.5, 7, 9.5], "texture": "#4"},

View file

@ -18,17 +18,17 @@
"to": [16, 16, 2],
"faces": {
"north": {"uv": [0, 16, 16, 0], "rotation": 90, "texture": "#6"},
"east": {"uv": [0, 14, 16, 16], "rotation": 270, "texture": "#gearbox_top"},
"east": {"uv": [0, 14, 16, 16], "rotation": 270, "texture": "#5"},
"south": {"uv": [0, 0, 16, 16], "rotation": 270, "texture": "#gearbox_top"},
"west": {"uv": [0, 14, 16, 16], "rotation": 90, "texture": "#gearbox_top"},
"west": {"uv": [0, 14, 16, 16], "rotation": 90, "texture": "#andesite_casing_short"},
"up": {"uv": [0, 14, 16, 16], "rotation": 180, "texture": "#andesite_casing_short"},
"down": {"uv": [0, 14, 16, 16], "texture": "#andesite_casing_short"}
}
},
{
"name": "Inner",
"from": [1, 2, 2],
"to": [15, 14, 12],
"from": [0.95, 2, 2],
"to": [15.05, 14, 12],
"faces": {
"north": {"uv": [0, 0, 12, 14], "rotation": 270, "texture": "#gearbox"},
"east": {"uv": [2, 4, 14, 14], "rotation": 270, "texture": "#gearbox"},
@ -41,9 +41,9 @@
"from": [0, 0, 2],
"to": [16, 2, 12],
"faces": {
"east": {"uv": [16, 0, 14, 10], "rotation": 270, "texture": "#gearbox_top"},
"east": {"uv": [0, 4, 2, 14], "rotation": 270, "texture": "#andesite_casing_short"},
"south": {"uv": [0, 0, 16, 2], "texture": "#andesite_casing_short"},
"west": {"uv": [14, 0, 16, 10], "rotation": 90, "texture": "#gearbox_top"},
"west": {"uv": [14, 4, 16, 14], "rotation": 90, "texture": "#andesite_casing_short"},
"up": {"uv": [0, 0, 16, 10], "rotation": 180, "texture": "#gearbox_top"},
"down": {"uv": [0, 4, 16, 14], "texture": "#5"}
}
@ -53,9 +53,9 @@
"from": [0, 14, 2],
"to": [16, 16, 12],
"faces": {
"east": {"uv": [14, 0, 16, 10], "rotation": 270, "texture": "#gearbox_top"},
"east": {"uv": [14, 4, 16, 14], "rotation": 270, "texture": "#andesite_casing_short"},
"south": {"uv": [0, 0, 16, 2], "rotation": 180, "texture": "#andesite_casing_short"},
"west": {"uv": [16, 0, 14, 10], "rotation": 90, "texture": "#gearbox_top"},
"west": {"uv": [0, 4, 2, 14], "rotation": 90, "texture": "#andesite_casing_short"},
"up": {"uv": [0, 4, 16, 14], "rotation": 180, "texture": "#5"},
"down": {"uv": [0, 0, 16, 10], "texture": "#gearbox_top"}
}

View file

@ -21,14 +21,14 @@
"east": {"uv": [0, 14, 16, 16], "rotation": 270, "texture": "#andesite_casing_short"},
"south": {"uv": [0, 0, 16, 16], "rotation": 180, "texture": "#gearbox_top"},
"west": {"uv": [0, 14, 16, 16], "rotation": 90, "texture": "#andesite_casing_short"},
"up": {"uv": [0, 14, 16, 16], "rotation": 180, "texture": "#gearbox_top"},
"down": {"uv": [0, 14, 16, 16], "texture": "#gearbox_top"}
"up": {"uv": [0, 14, 16, 16], "rotation": 180, "texture": "#andesite_casing_short"},
"down": {"uv": [0, 14, 16, 16], "texture": "#andesite_casing_short"}
}
},
{
"name": "Inner",
"from": [2, 1, 2],
"to": [14, 15, 12],
"from": [2, 0.95, 2],
"to": [14, 15.05, 12],
"faces": {
"north": {"uv": [0, 0, 12, 14], "texture": "#gearbox"},
"south": {"uv": [2, 1, 14, 15], "texture": "#7"},
@ -44,8 +44,8 @@
"east": {"uv": [0, 4, 16, 14], "rotation": 270, "texture": "#5"},
"south": {"uv": [0, 0, 16, 2], "rotation": 270, "texture": "#andesite_casing_short"},
"west": {"uv": [0, 0, 16, 10], "rotation": 90, "texture": "#gearbox_top"},
"up": {"uv": [16, 0, 14, 10], "rotation": 180, "texture": "#gearbox_top"},
"down": {"uv": [14, 0, 16, 10], "texture": "#gearbox_top"}
"up": {"uv": [0, 4, 2, 14], "rotation": 180, "texture": "#andesite_casing_short"},
"down": {"uv": [14, 4, 16, 14], "texture": "#andesite_casing_short"}
}
},
{
@ -56,8 +56,8 @@
"east": {"uv": [0, 0, 16, 10], "rotation": 270, "texture": "#gearbox_top"},
"south": {"uv": [0, 0, 16, 2], "rotation": 90, "texture": "#andesite_casing_short"},
"west": {"uv": [0, 4, 16, 14], "rotation": 90, "texture": "#5"},
"up": {"uv": [14, 2, 16, 12], "rotation": 180, "texture": "#gearbox_top"},
"down": {"uv": [16, 0, 14, 10], "texture": "#gearbox_top"}
"up": {"uv": [14, 4, 16, 14], "rotation": 180, "texture": "#andesite_casing_short"},
"down": {"uv": [0, 4, 2, 14], "texture": "#andesite_casing_short"}
}
}
],

View file

@ -22,8 +22,8 @@
}
},
{
"from": [1, 11, 1],
"to": [15, 13, 15],
"from": [0.95, 11, 0.95],
"to": [15.05, 13, 15.05],
"rotation": {"angle": 0, "axis": "y", "origin": [9, -2, 9]},
"faces": {
"north": {"uv": [1, 14, 15, 16], "texture": "#2"},

View file

@ -11,7 +11,7 @@
{
"name": "Center",
"from": [2, 0, 2],
"to": [14, 15, 14],
"to": [14, 15.05, 14],
"faces": {
"up": {"uv": [2, 2, 14, 14], "texture": "#0"},
"down": {"uv": [2, 2, 14, 14], "texture": "#3"}

View file

@ -22,8 +22,8 @@
}
},
{
"from": [1.9, 16, 1.9],
"to": [14.1, 0, 14.1],
"from": [1.95, 16, 1.95],
"to": [14.05, 0, 14.05],
"faces": {
"north": {"uv": [2, 0, 14, 16], "rotation": 180, "texture": "#fan_side"},
"east": {"uv": [2, 0, 14, 16], "rotation": 180, "texture": "#fan_side"},
@ -32,16 +32,16 @@
}
},
{
"from": [2, 1, 2],
"to": [14, 8, 14],
"from": [1.95, 0.95, 1.95],
"to": [14.05, 8.05, 14.05],
"faces": {
"up": {"uv": [2, 2, 14, 14], "texture": "#back"},
"down": {"uv": [2, 2, 14, 14], "texture": "#back"}
}
},
{
"from": [2, 15, 2],
"to": [14, 15, 14],
"from": [2, 14.95, 2],
"to": [14, 15.1, 14],
"faces": {
"up": {"uv": [2, 2, 14, 14], "texture": "#fan_casing"},
"down": {"uv": [2, 2, 14, 14], "texture": "#fan_casing"}

View file

@ -16,7 +16,7 @@
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, -23]},
"faces": {
"north": {"uv": [12, 0, 16, 12], "texture": "#1", "cullface": "north"},
"east": {"uv": [12, 0, 13, 12], "texture": "#1", "cullface": "north"},
"east": {"uv": [0, 0, 1, 12], "texture": "#1", "cullface": "north"},
"south": {"uv": [0, 0, 4, 12], "texture": "#1", "cullface": "north"}
}
},
@ -26,7 +26,7 @@
"to": [16, 16, 4],
"faces": {
"east": {"uv": [12, 0, 16, 12], "texture": "#1", "cullface": "east"},
"south": {"uv": [12, 0, 13, 12], "texture": "#1", "cullface": "east"},
"south": {"uv": [0, 0, 1, 12], "texture": "#1", "cullface": "east"},
"west": {"uv": [0, 0, 4, 12], "texture": "#1", "cullface": "east"}
}
},
@ -37,7 +37,7 @@
"faces": {
"north": {"uv": [0, 0, 4, 12], "texture": "#1", "cullface": "south"},
"south": {"uv": [12, 0, 16, 12], "texture": "#1", "cullface": "south"},
"west": {"uv": [12, 0, 13, 12], "texture": "#1", "cullface": "south"}
"west": {"uv": [0, 0, 1, 12], "texture": "#1", "cullface": "south"}
}
},
{
@ -45,15 +45,15 @@
"from": [0, 4, 12],
"to": [1, 16, 16],
"faces": {
"north": {"uv": [12, 0, 13, 12], "texture": "#1", "cullface": "west"},
"north": {"uv": [0, 0, 1, 12], "texture": "#1", "cullface": "west"},
"east": {"uv": [0, 0, 4, 12], "texture": "#1", "cullface": "west"},
"west": {"uv": [12, 0, 16, 12], "texture": "#1", "cullface": "west"}
}
},
{
"name": "Window",
"from": [4, 4, 1],
"to": [12, 16, 1],
"from": [4, 4, 0.95],
"to": [12, 16, 0.95],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, -23]},
"faces": {
"north": {"uv": [0, 4, 8, 16], "texture": "#3", "cullface": "north"},
@ -62,8 +62,8 @@
},
{
"name": "Window",
"from": [15, 4, 4],
"to": [15, 16, 12],
"from": [15.05, 4, 4],
"to": [15.05, 16, 12],
"faces": {
"east": {"uv": [0, 4, 8, 16], "texture": "#3", "cullface": "east"},
"west": {"uv": [0, 4, 8, 16], "texture": "#3", "cullface": "east"}
@ -71,8 +71,8 @@
},
{
"name": "Window",
"from": [4, 4, 15],
"to": [12, 16, 15],
"from": [4, 4, 15.05],
"to": [12, 16, 15.05],
"faces": {
"north": {"uv": [0, 4, 8, 16], "texture": "#3", "cullface": "south"},
"south": {"uv": [0, 4, 8, 16], "texture": "#3", "cullface": "south"}
@ -80,8 +80,8 @@
},
{
"name": "Window",
"from": [1, 4, 4],
"to": [1, 16, 12],
"from": [0.95, 4, 4],
"to": [0.95, 16, 12],
"faces": {
"east": {"uv": [0, 4, 8, 16], "texture": "#3", "cullface": "west"},
"west": {"uv": [0, 4, 8, 16], "texture": "#3", "cullface": "west"}
@ -95,7 +95,7 @@
"faces": {
"north": {"uv": [0, 0, 4, 12], "texture": "#1", "cullface": "north"},
"south": {"uv": [12, 0, 16, 12], "texture": "#1", "cullface": "north"},
"west": {"uv": [3, 0, 4, 12], "texture": "#1", "cullface": "north"}
"west": {"uv": [15, 0, 16, 12], "texture": "#1", "cullface": "north"}
}
},
{
@ -103,7 +103,7 @@
"from": [15, 4, 12],
"to": [16, 16, 16],
"faces": {
"north": {"uv": [3, 0, 4, 12], "texture": "#1", "cullface": "east"},
"north": {"uv": [15, 0, 16, 12], "texture": "#1", "cullface": "east"},
"east": {"uv": [0, 0, 4, 12], "texture": "#1", "cullface": "east"},
"west": {"uv": [12, 0, 16, 12], "texture": "#1", "cullface": "east"}
}
@ -114,7 +114,7 @@
"to": [4, 16, 16],
"faces": {
"north": {"uv": [12, 0, 16, 12], "texture": "#1", "cullface": "south"},
"east": {"uv": [3, 0, 4, 12], "texture": "#1", "cullface": "south"},
"east": {"uv": [15, 0, 16, 12], "texture": "#1", "cullface": "south"},
"south": {"uv": [0, 0, 4, 12], "texture": "#1", "cullface": "south"}
}
},
@ -124,7 +124,7 @@
"to": [1, 16, 4],
"faces": {
"east": {"uv": [12, 0, 16, 12], "texture": "#1", "cullface": "west"},
"south": {"uv": [3, 0, 4, 12], "texture": "#1", "cullface": "west"},
"south": {"uv": [15, 0, 16, 12], "texture": "#1", "cullface": "west"},
"west": {"uv": [0, 0, 4, 12], "texture": "#1", "cullface": "west"}
}
},

View file

@ -15,14 +15,14 @@
"to": [16, 16, 12],
"faces": {
"east": {"uv": [4, 0, 16, 12], "texture": "#1"},
"south": {"uv": [12, 0, 13, 12], "texture": "#1"},
"south": {"uv": [4, 0, 5, 12], "texture": "#1"},
"west": {"uv": [0, 0, 12, 12], "texture": "#1"}
}
},
{
"name": "Window",
"from": [0, 4, 1],
"to": [4, 16, 1],
"from": [0, 4, 0.95],
"to": [4, 16, 0.95],
"faces": {
"north": {"uv": [0, 4, 4, 16], "texture": "#3"},
"south": {"uv": [4, 4, 8, 16], "texture": "#3"}
@ -30,8 +30,8 @@
},
{
"name": "Window",
"from": [15, 4, 12],
"to": [15, 16, 16],
"from": [15.05, 4, 12],
"to": [15.05, 16, 16],
"faces": {
"east": {"uv": [4, 4, 8, 16], "texture": "#3"},
"west": {"uv": [0, 4, 4, 16], "texture": "#3"}
@ -44,7 +44,7 @@
"faces": {
"north": {"uv": [0, 0, 12, 12], "texture": "#1"},
"south": {"uv": [4, 0, 16, 12], "texture": "#1"},
"west": {"uv": [3, 0, 4, 12], "texture": "#1"}
"west": {"uv": [11, 0, 12, 12], "texture": "#1"}
}
},
{

View file

@ -15,14 +15,14 @@
"to": [12, 16, 1],
"faces": {
"north": {"uv": [4, 0, 16, 12], "texture": "#1"},
"east": {"uv": [12, 0, 13, 12], "texture": "#1"},
"east": {"uv": [4, 0, 5, 12], "texture": "#1"},
"south": {"uv": [0, 0, 12, 12], "texture": "#1"}
}
},
{
"name": "Window",
"from": [1, 4, 12],
"to": [1, 16, 16],
"from": [0.95, 4, 12],
"to": [0.95, 16, 16],
"faces": {
"east": {"uv": [4, 4, 8, 16], "texture": "#3"},
"west": {"uv": [0, 4, 4, 16], "texture": "#3"}
@ -30,8 +30,8 @@
},
{
"name": "Window",
"from": [12, 4, 1],
"to": [16, 16, 1],
"from": [12, 4, 0.95],
"to": [16, 16, 0.95],
"faces": {
"north": {"uv": [4, 4, 8, 16], "texture": "#3"},
"south": {"uv": [0, 4, 4, 16], "texture": "#3"}
@ -43,7 +43,7 @@
"to": [1, 16, 12],
"faces": {
"east": {"uv": [4, 0, 16, 12], "texture": "#1"},
"south": {"uv": [3, 0, 4, 12], "texture": "#1"},
"south": {"uv": [11, 0, 12, 12], "texture": "#1"},
"west": {"uv": [0, 0, 12, 12], "texture": "#1"}
}
},

View file

@ -16,13 +16,13 @@
"faces": {
"north": {"uv": [0, 0, 12, 12], "texture": "#1"},
"south": {"uv": [4, 0, 16, 12], "texture": "#1"},
"west": {"uv": [12, 0, 13, 12], "texture": "#1"}
"west": {"uv": [4, 0, 5, 12], "texture": "#1"}
}
},
{
"name": "Window",
"from": [15, 4, 0],
"to": [15, 16, 4],
"from": [15.05, 4, 0],
"to": [15.05, 16, 4],
"faces": {
"east": {"uv": [0, 4, 4, 16], "texture": "#3"},
"west": {"uv": [4, 4, 8, 16], "texture": "#3"}
@ -30,8 +30,8 @@
},
{
"name": "Window",
"from": [0, 4, 15],
"to": [4, 16, 15],
"from": [0, 4, 15.05],
"to": [4, 16, 15.05],
"faces": {
"north": {"uv": [0, 4, 4, 16], "texture": "#3"},
"south": {"uv": [4, 4, 8, 16], "texture": "#3"}
@ -42,7 +42,7 @@
"from": [15, 4, 4],
"to": [16, 16, 16],
"faces": {
"north": {"uv": [3, 0, 4, 12], "texture": "#1"},
"north": {"uv": [11, 0, 12, 12], "texture": "#1"},
"east": {"uv": [0, 0, 12, 12], "texture": "#1"},
"west": {"uv": [4, 0, 16, 12], "texture": "#1"}
}

View file

@ -14,15 +14,15 @@
"from": [0, 4, 4],
"to": [1, 16, 16],
"faces": {
"north": {"uv": [12, 0, 13, 12], "texture": "#1"},
"north": {"uv": [4, 0, 5, 12], "texture": "#1"},
"east": {"uv": [0, 0, 12, 12], "texture": "#1"},
"west": {"uv": [4, 0, 16, 12], "texture": "#1"}
}
},
{
"name": "Window",
"from": [12, 4, 15],
"to": [16, 16, 15],
"from": [12, 4, 15.05],
"to": [16, 16, 15.05],
"faces": {
"north": {"uv": [4, 4, 8, 16], "texture": "#3"},
"south": {"uv": [0, 4, 4, 16], "texture": "#3"}
@ -30,8 +30,8 @@
},
{
"name": "Window",
"from": [1, 4, 0],
"to": [1, 16, 4],
"from": [0.95, 4, 0],
"to": [0.95, 16, 4],
"faces": {
"east": {"uv": [0, 4, 4, 16], "texture": "#3"},
"west": {"uv": [4, 4, 8, 16], "texture": "#3"}
@ -43,7 +43,7 @@
"to": [12, 16, 16],
"faces": {
"north": {"uv": [4, 0, 16, 12], "texture": "#1"},
"east": {"uv": [3, 0, 4, 12], "texture": "#1"},
"east": {"uv": [11, 0, 12, 12], "texture": "#1"},
"south": {"uv": [0, 0, 12, 12], "texture": "#1"}
}
},

View file

@ -14,7 +14,7 @@
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, -23]},
"faces": {
"north": {"uv": [12, 0, 16, 16], "texture": "#1", "cullface": "north"},
"east": {"uv": [12, 0, 13, 16], "texture": "#1", "cullface": "north"},
"east": {"uv": [0, 0, 1, 16], "texture": "#1", "cullface": "north"},
"south": {"uv": [0, 0, 4, 16], "texture": "#1", "cullface": "north"}
}
},
@ -24,7 +24,7 @@
"to": [16, 16, 4],
"faces": {
"east": {"uv": [12, 0, 16, 16], "texture": "#1", "cullface": "east"},
"south": {"uv": [12, 0, 13, 16], "texture": "#1", "cullface": "east"},
"south": {"uv": [0, 0, 1, 16], "texture": "#1", "cullface": "east"},
"west": {"uv": [0, 0, 4, 16], "texture": "#1", "cullface": "east"}
}
},
@ -35,7 +35,7 @@
"faces": {
"north": {"uv": [0, 0, 4, 16], "texture": "#1", "cullface": "south"},
"south": {"uv": [12, 0, 16, 16], "texture": "#1", "cullface": "south"},
"west": {"uv": [12, 0, 13, 16], "texture": "#1", "cullface": "south"}
"west": {"uv": [0, 0, 1, 16], "texture": "#1", "cullface": "south"}
}
},
{
@ -43,15 +43,15 @@
"from": [0, 0, 12],
"to": [1, 16, 16],
"faces": {
"north": {"uv": [12, 0, 13, 16], "texture": "#1", "cullface": "west"},
"north": {"uv": [0, 0, 1, 16], "texture": "#1", "cullface": "west"},
"east": {"uv": [0, 0, 4, 16], "texture": "#1", "cullface": "west"},
"west": {"uv": [12, 0, 16, 16], "texture": "#1", "cullface": "west"}
}
},
{
"name": "Window",
"from": [4, 0, 1],
"to": [12, 16, 1],
"from": [4, 0, 0.95],
"to": [12, 16, 0.95],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, -23]},
"faces": {
"north": {"uv": [8, 0, 16, 16], "texture": "#3", "cullface": "north"},
@ -60,8 +60,8 @@
},
{
"name": "Window",
"from": [15, 0, 4],
"to": [15, 16, 12],
"from": [15.05, 0, 4],
"to": [15.05, 16, 12],
"faces": {
"east": {"uv": [8, 0, 16, 16], "texture": "#3", "cullface": "east"},
"west": {"uv": [8, 0, 16, 16], "texture": "#3", "cullface": "east"}
@ -69,8 +69,8 @@
},
{
"name": "Window",
"from": [4, 0, 15],
"to": [12, 16, 15],
"from": [4, 0, 15.05],
"to": [12, 16, 15.05],
"faces": {
"north": {"uv": [8, 0, 16, 16], "texture": "#3", "cullface": "south"},
"south": {"uv": [8, 0, 16, 16], "texture": "#3", "cullface": "south"}
@ -78,8 +78,8 @@
},
{
"name": "Window",
"from": [1, 0, 4],
"to": [1, 16, 12],
"from": [0.95, 0, 4],
"to": [0.95, 16, 12],
"faces": {
"east": {"uv": [8, 0, 16, 16], "texture": "#3", "cullface": "west"},
"west": {"uv": [8, 0, 16, 16], "texture": "#3", "cullface": "west"}
@ -93,7 +93,7 @@
"faces": {
"north": {"uv": [0, 0, 4, 16], "texture": "#1", "cullface": "north"},
"south": {"uv": [12, 0, 16, 16], "texture": "#1", "cullface": "north"},
"west": {"uv": [3, 0, 4, 16], "texture": "#1", "cullface": "north"}
"west": {"uv": [15, 0, 16, 16], "texture": "#1", "cullface": "north"}
}
},
{
@ -101,7 +101,7 @@
"from": [15, 0, 12],
"to": [16, 16, 16],
"faces": {
"north": {"uv": [3, 0, 4, 16], "texture": "#1", "cullface": "east"},
"north": {"uv": [15, 0, 16, 16], "texture": "#1", "cullface": "east"},
"east": {"uv": [0, 0, 4, 16], "texture": "#1", "cullface": "east"},
"west": {"uv": [12, 0, 16, 16], "texture": "#1", "cullface": "east"}
}
@ -112,7 +112,7 @@
"to": [4, 16, 16],
"faces": {
"north": {"uv": [12, 0, 16, 16], "texture": "#1", "cullface": "south"},
"east": {"uv": [3, 0, 4, 16], "texture": "#1", "cullface": "south"},
"east": {"uv": [15, 0, 16, 16], "texture": "#1", "cullface": "south"},
"south": {"uv": [0, 0, 4, 16], "texture": "#1", "cullface": "south"}
}
},
@ -122,7 +122,7 @@
"to": [1, 16, 4],
"faces": {
"east": {"uv": [12, 0, 16, 16], "texture": "#1", "cullface": "west"},
"south": {"uv": [3, 0, 4, 16], "texture": "#1", "cullface": "west"},
"south": {"uv": [15, 0, 16, 16], "texture": "#1", "cullface": "west"},
"west": {"uv": [0, 0, 4, 16], "texture": "#1", "cullface": "west"}
}
}
@ -131,6 +131,7 @@
{
"name": "tank",
"origin": [8, 8, -23],
"color": 0,
"children": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
}
]

View file

@ -13,14 +13,14 @@
"to": [16, 16, 12],
"faces": {
"east": {"uv": [4, 0, 16, 16], "texture": "#1"},
"south": {"uv": [12, 0, 13, 16], "texture": "#1"},
"south": {"uv": [4, 0, 5, 16], "texture": "#1"},
"west": {"uv": [0, 0, 12, 16], "texture": "#1"}
}
},
{
"name": "Window",
"from": [0, 0, 1],
"to": [4, 16, 1],
"from": [0, 0, 0.95],
"to": [4, 16, 0.95],
"faces": {
"north": {"uv": [8, 0, 12, 16], "texture": "#3"},
"south": {"uv": [12, 0, 16, 16], "texture": "#3"}
@ -28,8 +28,8 @@
},
{
"name": "Window",
"from": [15, 0, 12],
"to": [15, 16, 16],
"from": [15.05, 0, 12],
"to": [15.05, 16, 16],
"faces": {
"east": {"uv": [12, 0, 16, 16], "texture": "#3"},
"west": {"uv": [8, 0, 12, 16], "texture": "#3"}
@ -42,7 +42,7 @@
"faces": {
"north": {"uv": [0, 0, 12, 16], "texture": "#1"},
"south": {"uv": [4, 0, 16, 16], "texture": "#1"},
"west": {"uv": [3, 0, 4, 16], "texture": "#1"}
"west": {"uv": [11, 0, 12, 16], "texture": "#1"}
}
}
],
@ -50,6 +50,7 @@
{
"name": "tank",
"origin": [8, 8, -23],
"color": 0,
"children": [0, 1, 2, 3]
}
]

View file

@ -13,14 +13,14 @@
"to": [12, 16, 1],
"faces": {
"north": {"uv": [4, 0, 16, 16], "texture": "#1"},
"east": {"uv": [12, 0, 13, 16], "texture": "#1"},
"east": {"uv": [4, 0, 5, 16], "texture": "#1"},
"south": {"uv": [0, 0, 12, 16], "texture": "#1"}
}
},
{
"name": "Window",
"from": [1, 0, 12],
"to": [1, 16, 16],
"from": [0.95, 0, 12],
"to": [0.95, 16, 16],
"faces": {
"east": {"uv": [12, 0, 16, 16], "texture": "#3"},
"west": {"uv": [8, 0, 12, 16], "texture": "#3"}
@ -28,8 +28,8 @@
},
{
"name": "Window",
"from": [12, 0, 1],
"to": [16, 16, 1],
"from": [12, 0, 0.95],
"to": [16, 16, 0.95],
"faces": {
"north": {"uv": [12, 0, 16, 16], "texture": "#3"},
"south": {"uv": [8, 0, 12, 16], "texture": "#3"}
@ -41,7 +41,7 @@
"to": [1, 16, 12],
"faces": {
"east": {"uv": [4, 0, 16, 16], "texture": "#1"},
"south": {"uv": [3, 0, 4, 16], "texture": "#1"},
"south": {"uv": [11, 0, 12, 16], "texture": "#1"},
"west": {"uv": [0, 0, 12, 16], "texture": "#1"}
}
}
@ -50,6 +50,7 @@
{
"name": "tank",
"origin": [8, 8, -23],
"color": 0,
"children": [0, 1, 2, 3]
}
]

View file

@ -14,13 +14,13 @@
"faces": {
"north": {"uv": [0, 0, 12, 16], "texture": "#1"},
"south": {"uv": [4, 0, 16, 16], "texture": "#1"},
"west": {"uv": [12, 0, 13, 16], "texture": "#1"}
"west": {"uv": [4, 0, 5, 16], "texture": "#1"}
}
},
{
"name": "Window",
"from": [15, 0, 0],
"to": [15, 16, 4],
"from": [15.05, 0, 0],
"to": [15.05, 16, 4],
"faces": {
"east": {"uv": [8, 0, 12, 16], "texture": "#3"},
"west": {"uv": [12, 0, 16, 16], "texture": "#3"}
@ -28,8 +28,8 @@
},
{
"name": "Window",
"from": [0, 0, 15],
"to": [4, 16, 15],
"from": [0, 0, 15.05],
"to": [4, 16, 15.05],
"faces": {
"north": {"uv": [8, 0, 12, 16], "texture": "#3"},
"south": {"uv": [12, 0, 16, 16], "texture": "#3"}
@ -40,7 +40,7 @@
"from": [15, 0, 4],
"to": [16, 16, 16],
"faces": {
"north": {"uv": [3, 0, 4, 16], "texture": "#1"},
"north": {"uv": [11, 0, 12, 16], "texture": "#1"},
"east": {"uv": [0, 0, 12, 16], "texture": "#1"},
"west": {"uv": [4, 0, 16, 16], "texture": "#1"}
}
@ -50,6 +50,7 @@
{
"name": "tank",
"origin": [8, 8, -23],
"color": 0,
"children": [0, 1, 2, 3]
}
]

View file

@ -12,15 +12,15 @@
"from": [0, 0, 4],
"to": [1, 16, 16],
"faces": {
"north": {"uv": [12, 0, 13, 16], "texture": "#1"},
"north": {"uv": [4, 0, 5, 16], "texture": "#1"},
"east": {"uv": [0, 0, 12, 16], "texture": "#1"},
"west": {"uv": [4, 0, 16, 16], "texture": "#1"}
}
},
{
"name": "Window",
"from": [12, 0, 15],
"to": [16, 16, 15],
"from": [12, 0, 15.05],
"to": [16, 16, 15.05],
"faces": {
"north": {"uv": [12, 0, 16, 16], "texture": "#3"},
"south": {"uv": [8, 0, 12, 16], "texture": "#3"}
@ -28,8 +28,8 @@
},
{
"name": "Window",
"from": [1, 0, 0],
"to": [1, 16, 4],
"from": [0.95, 0, 0],
"to": [0.95, 16, 4],
"faces": {
"east": {"uv": [8, 0, 12, 16], "texture": "#3"},
"west": {"uv": [12, 0, 16, 16], "texture": "#3"}
@ -41,7 +41,7 @@
"to": [12, 16, 16],
"faces": {
"north": {"uv": [4, 0, 16, 16], "texture": "#1"},
"east": {"uv": [3, 0, 4, 16], "texture": "#1"},
"east": {"uv": [11, 0, 12, 16], "texture": "#1"},
"south": {"uv": [0, 0, 12, 16], "texture": "#1"}
}
}
@ -50,6 +50,7 @@
{
"name": "tank",
"origin": [8, 8, -23],
"color": 0,
"children": [0, 1, 2, 3]
}
]

View file

@ -30,7 +30,7 @@
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, -23]},
"faces": {
"north": {"uv": [12, 4, 16, 12], "texture": "#1", "cullface": "north"},
"east": {"uv": [12, 4, 13, 12], "texture": "#1", "cullface": "north"},
"east": {"uv": [8, 4, 9, 12], "texture": "#1", "cullface": "north"},
"south": {"uv": [0, 4, 4, 12], "texture": "#1", "cullface": "north"}
}
},
@ -40,7 +40,7 @@
"to": [16, 12, 4],
"faces": {
"east": {"uv": [12, 4, 16, 12], "texture": "#1", "cullface": "east"},
"south": {"uv": [12, 4, 13, 12], "texture": "#1", "cullface": "east"},
"south": {"uv": [8, 4, 9, 12], "texture": "#1", "cullface": "east"},
"west": {"uv": [0, 4, 4, 12], "texture": "#1", "cullface": "east"}
}
},
@ -51,7 +51,7 @@
"faces": {
"north": {"uv": [0, 4, 4, 12], "texture": "#1", "cullface": "south"},
"south": {"uv": [12, 4, 16, 12], "texture": "#1", "cullface": "south"},
"west": {"uv": [12, 4, 13, 12], "texture": "#1", "cullface": "south"}
"west": {"uv": [8, 4, 9, 12], "texture": "#1", "cullface": "south"}
}
},
{
@ -59,15 +59,15 @@
"from": [0, 4, 12],
"to": [1, 12, 16],
"faces": {
"north": {"uv": [12, 4, 13, 12], "texture": "#1", "cullface": "west"},
"north": {"uv": [8, 4, 9, 12], "texture": "#1", "cullface": "west"},
"east": {"uv": [0, 4, 4, 12], "texture": "#1", "cullface": "west"},
"west": {"uv": [12, 4, 16, 12], "texture": "#1", "cullface": "west"}
}
},
{
"name": "Window",
"from": [4, 4, 1],
"to": [12, 12, 1],
"from": [4, 4, 0.95],
"to": [12, 12, 0.95],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, -23]},
"faces": {
"north": {"uv": [0, 0, 8, 8], "texture": "#5", "cullface": "north"},
@ -76,8 +76,8 @@
},
{
"name": "Window",
"from": [15, 4, 4],
"to": [15, 12, 12],
"from": [15.05, 4, 4],
"to": [15.05, 12, 12],
"faces": {
"east": {"uv": [0, 0, 8, 8], "texture": "#5", "cullface": "east"},
"west": {"uv": [0, 0, 8, 8], "texture": "#5", "cullface": "east"}
@ -85,8 +85,8 @@
},
{
"name": "Window",
"from": [4, 4, 15],
"to": [12, 12, 15],
"from": [4, 4, 15.05],
"to": [12, 12, 15.05],
"faces": {
"north": {"uv": [0, 0, 8, 8], "texture": "#5", "cullface": "south"},
"south": {"uv": [0, 0, 8, 8], "texture": "#5", "cullface": "south"}
@ -94,8 +94,8 @@
},
{
"name": "Window",
"from": [1, 4, 4],
"to": [1, 12, 12],
"from": [0.95, 4, 4],
"to": [0.95, 12, 12],
"faces": {
"east": {"uv": [0, 0, 8, 8], "texture": "#5", "cullface": "west"},
"west": {"uv": [0, 0, 8, 8], "texture": "#5", "cullface": "west"}
@ -109,7 +109,7 @@
"faces": {
"north": {"uv": [0, 4, 4, 12], "texture": "#1", "cullface": "north"},
"south": {"uv": [12, 4, 16, 12], "texture": "#1", "cullface": "north"},
"west": {"uv": [3, 4, 4, 12], "texture": "#1", "cullface": "north"}
"west": {"uv": [7, 4, 8, 12], "texture": "#1", "cullface": "north"}
}
},
{
@ -117,7 +117,7 @@
"from": [15, 4, 12],
"to": [16, 12, 16],
"faces": {
"north": {"uv": [3, 4, 4, 12], "texture": "#1", "cullface": "east"},
"north": {"uv": [7, 4, 8, 12], "texture": "#1", "cullface": "east"},
"east": {"uv": [0, 4, 4, 12], "texture": "#1", "cullface": "east"},
"west": {"uv": [12, 4, 16, 12], "texture": "#1", "cullface": "east"}
}
@ -128,7 +128,7 @@
"to": [4, 12, 16],
"faces": {
"north": {"uv": [12, 4, 16, 12], "texture": "#1", "cullface": "south"},
"east": {"uv": [3, 4, 4, 12], "texture": "#1", "cullface": "south"},
"east": {"uv": [7, 4, 8, 12], "texture": "#1", "cullface": "south"},
"south": {"uv": [0, 4, 4, 12], "texture": "#1", "cullface": "south"}
}
},
@ -138,7 +138,7 @@
"to": [1, 12, 4],
"faces": {
"east": {"uv": [12, 4, 16, 12], "texture": "#1", "cullface": "west"},
"south": {"uv": [3, 4, 4, 12], "texture": "#1", "cullface": "west"},
"south": {"uv": [7, 4, 8, 12], "texture": "#1", "cullface": "west"},
"west": {"uv": [0, 4, 4, 12], "texture": "#1", "cullface": "west"}
}
},

View file

@ -16,14 +16,14 @@
"rotation": {"angle": 0, "axis": "y", "origin": [8, 4, 8]},
"faces": {
"east": {"uv": [4, 4, 16, 12], "texture": "#1"},
"south": {"uv": [12, 4, 13, 12], "texture": "#1"},
"south": {"uv": [4, 4, 5, 12], "texture": "#1"},
"west": {"uv": [0, 4, 12, 12], "texture": "#1"}
}
},
{
"name": "Window",
"from": [0, 4, 1],
"to": [4, 12, 1],
"from": [0, 4, 0.95],
"to": [4, 12, 0.95],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 4, 8]},
"faces": {
"north": {"uv": [0, 0, 4, 8], "texture": "#5"},
@ -32,8 +32,8 @@
},
{
"name": "Window",
"from": [15, 4, 12],
"to": [15, 12, 16],
"from": [15.05, 4, 12],
"to": [15.05, 12, 16],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 4, 8]},
"faces": {
"east": {"uv": [4, 0, 8, 8], "texture": "#5"},
@ -48,7 +48,7 @@
"faces": {
"north": {"uv": [0, 4, 12, 12], "texture": "#1"},
"south": {"uv": [4, 4, 16, 12], "texture": "#1"},
"west": {"uv": [3, 4, 4, 12], "texture": "#1"}
"west": {"uv": [11, 4, 12, 12], "texture": "#1"}
}
},
{

View file

@ -16,14 +16,14 @@
"rotation": {"angle": 0, "axis": "y", "origin": [8, 4, 8]},
"faces": {
"north": {"uv": [4, 4, 16, 12], "texture": "#1"},
"east": {"uv": [12, 4, 13, 12], "texture": "#1"},
"east": {"uv": [4, 4, 5, 12], "texture": "#1"},
"south": {"uv": [0, 4, 12, 12], "texture": "#1"}
}
},
{
"name": "Window",
"from": [1, 4, 12],
"to": [1, 12, 16],
"from": [0.95, 4, 12],
"to": [0.95, 12, 16],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 4, 8]},
"faces": {
"east": {"uv": [4, 0, 8, 8], "texture": "#5"},
@ -32,8 +32,8 @@
},
{
"name": "Window",
"from": [12, 4, 1],
"to": [16, 12, 1],
"from": [12, 4, 0.95],
"to": [16, 12, 0.95],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 4, 8]},
"faces": {
"north": {"uv": [4, 0, 8, 8], "texture": "#5"},
@ -47,7 +47,7 @@
"rotation": {"angle": 0, "axis": "y", "origin": [8, 4, 8]},
"faces": {
"east": {"uv": [4, 4, 16, 12], "texture": "#1"},
"south": {"uv": [3, 4, 4, 12], "texture": "#1"},
"south": {"uv": [11, 4, 12, 12], "texture": "#1"},
"west": {"uv": [0, 4, 12, 12], "texture": "#1"}
}
},

View file

@ -17,13 +17,13 @@
"faces": {
"north": {"uv": [0, 4, 12, 12], "texture": "#1"},
"south": {"uv": [4, 4, 16, 12], "texture": "#1"},
"west": {"uv": [12, 4, 13, 12], "texture": "#1"}
"west": {"uv": [4, 4, 5, 12], "texture": "#1"}
}
},
{
"name": "Window",
"from": [15, 4, 0],
"to": [15, 12, 4],
"from": [15.05, 4, 0],
"to": [15.05, 12, 4],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 4, 8]},
"faces": {
"east": {"uv": [0, 0, 4, 8], "texture": "#5"},
@ -32,8 +32,8 @@
},
{
"name": "Window",
"from": [0, 4, 15],
"to": [4, 12, 15],
"from": [0, 4, 15.05],
"to": [4, 12, 15.05],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 4, 8]},
"faces": {
"north": {"uv": [0, 0, 4, 8], "texture": "#5"},
@ -46,7 +46,7 @@
"to": [16, 12, 16],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 4, 8]},
"faces": {
"north": {"uv": [3, 4, 4, 12], "texture": "#1"},
"north": {"uv": [11, 4, 12, 12], "texture": "#1"},
"east": {"uv": [0, 4, 12, 12], "texture": "#1"},
"west": {"uv": [4, 4, 16, 12], "texture": "#1"}
}

View file

@ -15,15 +15,15 @@
"to": [1, 12, 16],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 4, 8]},
"faces": {
"north": {"uv": [12, 4, 13, 12], "texture": "#1"},
"north": {"uv": [4, 4, 5, 12], "texture": "#1"},
"east": {"uv": [0, 4, 12, 12], "texture": "#1"},
"west": {"uv": [4, 4, 16, 12], "texture": "#1"}
}
},
{
"name": "Window",
"from": [12, 4, 15],
"to": [16, 12, 15],
"from": [12, 4, 15.05],
"to": [16, 12, 15.05],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 4, 8]},
"faces": {
"north": {"uv": [4, 0, 8, 8], "texture": "#5"},
@ -32,8 +32,8 @@
},
{
"name": "Window",
"from": [1, 4, 0],
"to": [1, 12, 4],
"from": [0.95, 4, 0],
"to": [0.95, 12, 4],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 4, 8]},
"faces": {
"east": {"uv": [0, 0, 4, 8], "texture": "#5"},
@ -47,7 +47,7 @@
"rotation": {"angle": 0, "axis": "y", "origin": [8, 4, 8]},
"faces": {
"north": {"uv": [4, 4, 16, 12], "texture": "#1"},
"east": {"uv": [3, 4, 4, 12], "texture": "#1"},
"east": {"uv": [11, 4, 12, 12], "texture": "#1"},
"south": {"uv": [0, 4, 12, 12], "texture": "#1"}
}
},

View file

@ -30,7 +30,7 @@
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, -23]},
"faces": {
"north": {"uv": [12, 4, 16, 16], "texture": "#1", "cullface": "north"},
"east": {"uv": [12, 4, 13, 16], "texture": "#1", "cullface": "north"},
"east": {"uv": [0, 4, 1, 16], "texture": "#1", "cullface": "north"},
"south": {"uv": [0, 4, 4, 16], "texture": "#1", "cullface": "north"}
}
},
@ -40,7 +40,7 @@
"to": [16, 12, 4],
"faces": {
"east": {"uv": [12, 4, 16, 16], "texture": "#1", "cullface": "east"},
"south": {"uv": [12, 4, 13, 16], "texture": "#1", "cullface": "east"},
"south": {"uv": [0, 4, 1, 16], "texture": "#1", "cullface": "east"},
"west": {"uv": [0, 4, 4, 16], "texture": "#1", "cullface": "east"}
}
},
@ -51,7 +51,7 @@
"faces": {
"north": {"uv": [0, 4, 4, 16], "texture": "#1", "cullface": "south"},
"south": {"uv": [12, 4, 16, 16], "texture": "#1", "cullface": "south"},
"west": {"uv": [12, 4, 13, 16], "texture": "#1", "cullface": "south"}
"west": {"uv": [0, 4, 1, 16], "texture": "#1", "cullface": "south"}
}
},
{
@ -59,15 +59,15 @@
"from": [0, 0, 12],
"to": [1, 12, 16],
"faces": {
"north": {"uv": [12, 4, 13, 16], "texture": "#1", "cullface": "west"},
"north": {"uv": [0, 4, 1, 16], "texture": "#1", "cullface": "west"},
"east": {"uv": [0, 4, 4, 16], "texture": "#1", "cullface": "west"},
"west": {"uv": [12, 4, 16, 16], "texture": "#1", "cullface": "west"}
}
},
{
"name": "Window",
"from": [4, 0, 1],
"to": [12, 12, 1],
"from": [4, 0, 0.95],
"to": [12, 12, 0.95],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, -23]},
"faces": {
"north": {"uv": [0, 0, 8, 12], "texture": "#3", "cullface": "north"},
@ -76,8 +76,8 @@
},
{
"name": "Window",
"from": [15, 0, 4],
"to": [15, 12, 12],
"from": [15.05, 0, 4],
"to": [15.05, 12, 12],
"faces": {
"east": {"uv": [0, 0, 8, 12], "texture": "#3", "cullface": "east"},
"west": {"uv": [0, 0, 8, 12], "texture": "#3", "cullface": "east"}
@ -85,8 +85,8 @@
},
{
"name": "Window",
"from": [4, 0, 15],
"to": [12, 12, 15],
"from": [4, 0, 15.05],
"to": [12, 12, 15.05],
"faces": {
"north": {"uv": [0, 0, 8, 12], "texture": "#3", "cullface": "south"},
"south": {"uv": [0, 0, 8, 12], "texture": "#3", "cullface": "south"}
@ -94,8 +94,8 @@
},
{
"name": "Window",
"from": [1, 0, 4],
"to": [1, 12, 12],
"from": [0.95, 0, 4],
"to": [0.95, 12, 12],
"faces": {
"east": {"uv": [0, 0, 8, 12], "texture": "#3", "cullface": "west"},
"west": {"uv": [0, 0, 8, 12], "texture": "#3", "cullface": "west"}
@ -109,7 +109,7 @@
"faces": {
"north": {"uv": [0, 4, 4, 16], "texture": "#1", "cullface": "north"},
"south": {"uv": [12, 4, 16, 16], "texture": "#1", "cullface": "north"},
"west": {"uv": [3, 4, 4, 16], "texture": "#1", "cullface": "north"}
"west": {"uv": [15, 4, 16, 16], "texture": "#1", "cullface": "north"}
}
},
{
@ -117,7 +117,7 @@
"from": [15, 0, 12],
"to": [16, 12, 16],
"faces": {
"north": {"uv": [3, 4, 4, 16], "texture": "#1", "cullface": "east"},
"north": {"uv": [15, 4, 16, 16], "texture": "#1", "cullface": "east"},
"east": {"uv": [0, 4, 4, 16], "texture": "#1", "cullface": "east"},
"west": {"uv": [12, 4, 16, 16], "texture": "#1", "cullface": "east"}
}
@ -128,7 +128,7 @@
"to": [4, 12, 16],
"faces": {
"north": {"uv": [12, 4, 16, 16], "texture": "#1", "cullface": "south"},
"east": {"uv": [3, 4, 4, 16], "texture": "#1", "cullface": "south"},
"east": {"uv": [15, 4, 16, 16], "texture": "#1", "cullface": "south"},
"south": {"uv": [0, 4, 4, 16], "texture": "#1", "cullface": "south"}
}
},
@ -138,7 +138,7 @@
"to": [1, 12, 4],
"faces": {
"east": {"uv": [12, 4, 16, 16], "texture": "#1", "cullface": "west"},
"south": {"uv": [3, 4, 4, 16], "texture": "#1", "cullface": "west"},
"south": {"uv": [15, 4, 16, 16], "texture": "#1", "cullface": "west"},
"west": {"uv": [0, 4, 4, 16], "texture": "#1", "cullface": "west"}
}
}

View file

@ -16,14 +16,14 @@
"rotation": {"angle": 0, "axis": "y", "origin": [8, 4, 8]},
"faces": {
"east": {"uv": [4, 4, 16, 16], "texture": "#1"},
"south": {"uv": [12, 4, 13, 16], "texture": "#1"},
"south": {"uv": [4, 4, 5, 16], "texture": "#1"},
"west": {"uv": [0, 4, 12, 16], "texture": "#1"}
}
},
{
"name": "Window",
"from": [0, 0, 1],
"to": [4, 12, 1],
"from": [0, 0, 0.95],
"to": [4, 12, 0.95],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 4, 8]},
"faces": {
"north": {"uv": [0, 0, 4, 12], "texture": "#3"},
@ -32,8 +32,8 @@
},
{
"name": "Window",
"from": [15, 0, 12],
"to": [15, 12, 16],
"from": [15.05, 0, 12],
"to": [15.05, 12, 16],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 4, 8]},
"faces": {
"east": {"uv": [4, 0, 8, 12], "texture": "#3"},
@ -48,7 +48,7 @@
"faces": {
"north": {"uv": [0, 4, 12, 16], "texture": "#1"},
"south": {"uv": [4, 4, 16, 16], "texture": "#1"},
"west": {"uv": [3, 4, 4, 16], "texture": "#1"}
"west": {"uv": [11, 4, 12, 16], "texture": "#1"}
}
},
{

View file

@ -16,14 +16,14 @@
"rotation": {"angle": 0, "axis": "y", "origin": [8, 4, 8]},
"faces": {
"north": {"uv": [4, 4, 16, 16], "texture": "#1"},
"east": {"uv": [12, 4, 13, 16], "texture": "#1"},
"east": {"uv": [4, 4, 5, 16], "texture": "#1"},
"south": {"uv": [0, 4, 12, 16], "texture": "#1"}
}
},
{
"name": "Window",
"from": [1, 0, 12],
"to": [1, 12, 16],
"from": [0.95, 0, 12],
"to": [0.95, 12, 16],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 4, 8]},
"faces": {
"east": {"uv": [4, 0, 8, 12], "texture": "#3"},
@ -32,8 +32,8 @@
},
{
"name": "Window",
"from": [12, 0, 1],
"to": [16, 12, 1],
"from": [12, 0, 0.95],
"to": [16, 12, 0.95],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 4, 8]},
"faces": {
"north": {"uv": [4, 0, 8, 12], "texture": "#3"},
@ -47,7 +47,7 @@
"rotation": {"angle": 0, "axis": "y", "origin": [8, 4, 8]},
"faces": {
"east": {"uv": [4, 4, 16, 16], "texture": "#1"},
"south": {"uv": [3, 4, 4, 16], "texture": "#1"},
"south": {"uv": [11, 4, 12, 16], "texture": "#1"},
"west": {"uv": [0, 4, 12, 16], "texture": "#1"}
}
},

View file

@ -17,13 +17,13 @@
"faces": {
"north": {"uv": [0, 4, 12, 16], "texture": "#1"},
"south": {"uv": [4, 4, 16, 16], "texture": "#1"},
"west": {"uv": [12, 4, 13, 16], "texture": "#1"}
"west": {"uv": [4, 4, 5, 16], "texture": "#1"}
}
},
{
"name": "Window",
"from": [15, 0, 0],
"to": [15, 12, 4],
"from": [15.05, 0, 0],
"to": [15.05, 12, 4],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 4, 8]},
"faces": {
"east": {"uv": [0, 0, 4, 12], "texture": "#3"},
@ -32,8 +32,8 @@
},
{
"name": "Window",
"from": [0, 0, 15],
"to": [4, 12, 15],
"from": [0, 0, 15.05],
"to": [4, 12, 15.05],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 4, 8]},
"faces": {
"north": {"uv": [0, 0, 4, 12], "texture": "#3"},
@ -46,7 +46,7 @@
"to": [16, 12, 16],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 4, 8]},
"faces": {
"north": {"uv": [3, 4, 4, 16], "texture": "#1"},
"north": {"uv": [11, 4, 12, 16], "texture": "#1"},
"east": {"uv": [0, 4, 12, 16], "texture": "#1"},
"west": {"uv": [4, 4, 16, 16], "texture": "#1"}
}

View file

@ -15,15 +15,15 @@
"to": [1, 12, 16],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 4, 8]},
"faces": {
"north": {"uv": [12, 4, 13, 16], "texture": "#1"},
"north": {"uv": [4, 4, 5, 16], "texture": "#1"},
"east": {"uv": [0, 4, 12, 16], "texture": "#1"},
"west": {"uv": [4, 4, 16, 16], "texture": "#1"}
}
},
{
"name": "Window",
"from": [12, 0, 15],
"to": [16, 12, 15],
"from": [12, 0, 15.05],
"to": [16, 12, 15.05],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 4, 8]},
"faces": {
"north": {"uv": [4, 0, 8, 12], "texture": "#3"},
@ -32,8 +32,8 @@
},
{
"name": "Window",
"from": [1, 0, 0],
"to": [1, 12, 4],
"from": [0.95, 0, 0],
"to": [0.95, 12, 4],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 4, 8]},
"faces": {
"east": {"uv": [0, 0, 4, 12], "texture": "#3"},
@ -47,7 +47,7 @@
"rotation": {"angle": 0, "axis": "y", "origin": [8, 4, 8]},
"faces": {
"north": {"uv": [4, 4, 16, 16], "texture": "#1"},
"east": {"uv": [3, 4, 4, 16], "texture": "#1"},
"east": {"uv": [11, 4, 12, 16], "texture": "#1"},
"south": {"uv": [0, 4, 12, 16], "texture": "#1"}
}
},

View file

@ -73,7 +73,7 @@
},
{
"from": [1.9, 0, 18],
"to": [14.1, 10, 12],
"to": [14.1, 10.05, 12],
"rotation": {"angle": -22.5, "axis": "x", "origin": [8, 0, 12]},
"faces": {
"east": {"uv": [13, 6, 16, 11], "rotation": 180, "texture": "#base"},

View file

@ -23,33 +23,33 @@
}
},
{
"from": [1, 5, 2],
"to": [2, 10, 14],
"rotation": {"angle": 22.5, "axis": "z", "origin": [2, 10, 8]},
"from": [0.95, 5, 2],
"to": [1.95, 10, 14],
"rotation": {"angle": 22.5, "axis": "z", "origin": [1.95, 10, 8]},
"faces": {
"east": {"uv": [12, 0, 14.5, 6], "rotation": 90, "texture": "#base"}
}
},
{
"from": [14, 5, 2],
"to": [15, 10, 14],
"rotation": {"angle": -22.5, "axis": "z", "origin": [14, 10, 8]},
"from": [14.05, 5, 2],
"to": [15.05, 10, 14],
"rotation": {"angle": -22.5, "axis": "z", "origin": [14.05, 10, 8]},
"faces": {
"west": {"uv": [12, 0, 14.5, 6], "rotation": 90, "texture": "#base"}
}
},
{
"from": [2, 5, 14],
"to": [14, 10, 15],
"rotation": {"angle": 22.5, "axis": "x", "origin": [8, 10, 14]},
"from": [2, 5, 14.05],
"to": [14, 10, 15.05],
"rotation": {"angle": 22.5, "axis": "x", "origin": [8, 10, 14.05]},
"faces": {
"north": {"uv": [12, 0, 14.5, 6], "rotation": 90, "texture": "#base"}
}
},
{
"from": [2, 5, 1],
"to": [14, 10, 2],
"rotation": {"angle": -22.5, "axis": "x", "origin": [8, 10, 2]},
"from": [2, 5, 0.95],
"to": [14, 10, 1.95],
"rotation": {"angle": -22.5, "axis": "x", "origin": [8, 10, 1.95]},
"faces": {
"south": {"uv": [12, 0, 14.5, 6], "rotation": 90, "texture": "#base"}
}

View file

@ -23,33 +23,33 @@
}
},
{
"from": [1, 5, 2],
"to": [2, 10, 14],
"rotation": {"angle": 22.5, "axis": "z", "origin": [2, 10, 8]},
"from": [0.95, 5, 2],
"to": [1.95, 10, 14],
"rotation": {"angle": 22.5, "axis": "z", "origin": [1.95, 10, 8]},
"faces": {
"east": {"uv": [12, 0, 14.5, 6], "rotation": 90, "texture": "#base"}
}
},
{
"from": [14, 5, 2],
"to": [15, 10, 14],
"rotation": {"angle": -22.5, "axis": "z", "origin": [14, 10, 8]},
"from": [14.05, 5, 2],
"to": [15.05, 10, 14],
"rotation": {"angle": -22.5, "axis": "z", "origin": [14.05, 10, 8]},
"faces": {
"west": {"uv": [12, 0, 14.5, 6], "rotation": 90, "texture": "#base"}
}
},
{
"from": [2, 5, 14],
"to": [14, 10, 15],
"rotation": {"angle": 22.5, "axis": "x", "origin": [8, 10, 14]},
"from": [2, 5, 14.05],
"to": [14, 10, 15.05],
"rotation": {"angle": 22.5, "axis": "x", "origin": [8, 10, 14.05]},
"faces": {
"north": {"uv": [12, 0, 14.5, 6], "rotation": 90, "texture": "#base"}
}
},
{
"from": [2, 5, 1],
"to": [14, 10, 2],
"rotation": {"angle": -22.5, "axis": "x", "origin": [8, 10, 2]},
"from": [2, 5, 0.95],
"to": [14, 10, 1.95],
"rotation": {"angle": -22.5, "axis": "x", "origin": [8, 10, 1.95]},
"faces": {
"south": {"uv": [12, 0, 14.5, 6], "rotation": 90, "texture": "#base"}
}

View file

@ -6,8 +6,8 @@
"elements": [
{
"name": "F4",
"from": [11, 0, 9],
"to": [14, 10, 10],
"from": [10.975, 0, 9],
"to": [14.025, 10, 10],
"rotation": {"angle": 0, "axis": "y", "origin": [-24.5, -7.5, 9]},
"faces": {
"north": {"uv": [6, 9.5, 7.5, 14.5], "texture": "#4"},

View file

@ -52,8 +52,8 @@
},
{
"name": "Core",
"from": [1, 1, 2],
"to": [15, 15, 12],
"from": [0.95, 1, 2],
"to": [15.2, 15, 12],
"faces": {
"north": {"uv": [0, 0, 0, 0], "rotation": 90, "texture": "#opening"},
"east": {"uv": [1, 4, 15, 14], "rotation": 270, "texture": "#opening"},

View file

@ -52,8 +52,8 @@
},
{
"name": "Core",
"from": [1, 1, 2],
"to": [15, 15, 12],
"from": [1, 0.95, 2],
"to": [15, 15.05, 12],
"faces": {
"north": {"uv": [0, 0, 0, 0], "rotation": 180, "texture": "#opening"},
"east": {"uv": [0, 0, 0, 0], "rotation": 270, "texture": "#opening"},

View file

@ -8,8 +8,8 @@
"elements": [
{
"name": "GaugeBody",
"from": [2, 2, 1],
"to": [14, 14, 15],
"from": [1.95, 2, 0.95],
"to": [14.05, 14, 15.05],
"faces": {
"north": {"uv": [0, 10, 6, 16], "texture": "#2"},
"east": {"uv": [9, 10, 16, 16], "texture": "#2"},

View file

@ -8,8 +8,8 @@
"elements": [
{
"name": "GaugeBody",
"from": [2, 2, 1],
"to": [14, 14, 15],
"from": [2, 1.95, 0.95],
"to": [14, 14.05, 15.05],
"faces": {
"north": {"uv": [0, 10, 6, 16], "texture": "#2"},
"east": {"uv": [9, 10, 16, 16], "texture": "#2"},

View file

@ -22,8 +22,8 @@
},
{
"name": "Core",
"from": [1, 2, 1],
"to": [15, 14, 15],
"from": [0.95, 2, 0.95],
"to": [15.05, 14, 15.05],
"faces": {
"north": {"uv": [1, 2, 15, 14], "texture": "#1"},
"east": {"uv": [1, 2, 15, 14], "texture": "#1"},

View file

@ -11,8 +11,8 @@
"elements": [
{
"name": "Body",
"from": [2, 1, 2],
"to": [14, 9, 14],
"from": [2, 0.95, 2],
"to": [14, 9.05, 14],
"faces": {
"up": {"uv": [2, 2, 14, 14], "texture": "#4"},
"down": {"uv": [2, 2, 14, 14], "rotation": 180, "texture": "#gearbox"}

View file

@ -27,25 +27,11 @@
"to": [11, 11, 12],
"rotation": {"angle": 45, "axis": "z", "origin": [8, 8, 8]},
"faces": {
"east": {"uv": [0, 0, 6, 3], "rotation": 270, "texture": "#10"},
"east": {"uv": [1, 1, 7, 4], "rotation": 270, "texture": "#10"},
"south": {"uv": [5, 0, 11, 6], "texture": "#2"},
"west": {"uv": [0, 0, 6, 3], "rotation": 90, "texture": "#10"},
"up": {"uv": [0, 0, 6, 3], "rotation": 180, "texture": "#10"},
"down": {"uv": [0, 0, 6, 3], "texture": "#10"}
}
},
{
"name": "Top",
"from": [6, 11, 9],
"to": [10, 13, 13],
"rotation": {"angle": -45, "axis": "z", "origin": [8, 8, 8]},
"faces": {
"north": {"uv": [0, 0, 4, 2], "texture": "#10"},
"east": {"uv": [0, 1, 4, 3], "texture": "#10"},
"south": {"uv": [0, 0, 2, 4], "rotation": 90, "texture": "#10"},
"west": {"uv": [0, 1, 4, 3], "texture": "#10"},
"up": {"uv": [0, 0, 4, 4], "rotation": 90, "texture": "#10"},
"down": {"uv": [0, 0, 4, 4], "texture": "#10"}
"west": {"uv": [1, 1, 7, 4], "rotation": 90, "texture": "#10"},
"up": {"uv": [1, 1, 7, 4], "rotation": 180, "texture": "#10"},
"down": {"uv": [1, 1, 7, 4], "texture": "#10"}
}
},
{
@ -55,39 +41,53 @@
"rotation": {"angle": -45, "axis": "z", "origin": [8, 8, 8]},
"faces": {
"north": {"uv": [0, 0, 4, 2], "texture": "#10"},
"east": {"uv": [0, 1, 4, 3], "rotation": 180, "texture": "#10"},
"south": {"uv": [0, 0, 2, 4], "rotation": 90, "texture": "#10"},
"west": {"uv": [0, 1, 4, 3], "rotation": 180, "texture": "#10"},
"east": {"uv": [0, 3, 4, 1], "rotation": 180, "texture": "#10"},
"south": {"uv": [16, 4, 14, 0], "rotation": 90, "texture": "#10"},
"west": {"uv": [4, 3, 0, 1], "rotation": 180, "texture": "#10"},
"up": {"uv": [0, 0, 4, 4], "texture": "#10"},
"down": {"uv": [0, 0, 4, 4], "rotation": 90, "texture": "#10"}
"down": {"uv": [4, 4, 0, 0], "rotation": 90, "texture": "#10"}
}
},
{
"name": "Left",
"from": [3, 6, 9],
"to": [5, 10, 13],
"rotation": {"angle": -45, "axis": "z", "origin": [8, 8, 8]},
"faces": {
"north": {"uv": [0, 0, 2, 4], "texture": "#10"},
"east": {"uv": [0, 0, 4, 4], "texture": "#10"},
"south": {"uv": [0, 0, 2, 4], "texture": "#10"},
"west": {"uv": [0, 0, 4, 4], "texture": "#10"},
"up": {"uv": [0, 1, 4, 3], "rotation": 270, "texture": "#10"},
"down": {"uv": [0, 1, 4, 3], "rotation": 270, "texture": "#10"}
}
},
{
"name": "Right",
"name": "Bottom",
"from": [11, 6, 9],
"to": [13, 10, 13],
"rotation": {"angle": -45, "axis": "z", "origin": [8, 8, 8]},
"faces": {
"north": {"uv": [0, 0, 2, 4], "texture": "#10"},
"east": {"uv": [0, 0, 4, 4], "texture": "#10"},
"south": {"uv": [0, 0, 2, 4], "texture": "#10"},
"west": {"uv": [0, 0, 4, 4], "texture": "#10"},
"up": {"uv": [0, 1, 4, 3], "rotation": 90, "texture": "#10"},
"down": {"uv": [0, 1, 4, 3], "rotation": 90, "texture": "#10"}
"north": {"uv": [0, 0, 4, 2], "rotation": 90, "texture": "#10"},
"east": {"uv": [4, 4, 0, 0], "texture": "#10"},
"south": {"uv": [16, 4, 14, 0], "texture": "#10"},
"west": {"uv": [0, 0, 4, 4], "rotation": 270, "texture": "#10"},
"up": {"uv": [0, 3, 4, 1], "rotation": 90, "texture": "#10"},
"down": {"uv": [4, 3, 0, 1], "rotation": 90, "texture": "#10"}
}
},
{
"name": "Bottom",
"from": [6, 11, 9],
"to": [10, 13, 13],
"rotation": {"angle": -45, "axis": "z", "origin": [8, 8, 8]},
"faces": {
"north": {"uv": [0, 0, 4, 2], "rotation": 180, "texture": "#10"},
"east": {"uv": [4, 3, 0, 1], "texture": "#10"},
"south": {"uv": [16, 4, 14, 0], "rotation": 270, "texture": "#10"},
"west": {"uv": [0, 3, 4, 1], "texture": "#10"},
"up": {"uv": [4, 4, 0, 0], "rotation": 270, "texture": "#10"},
"down": {"uv": [0, 0, 4, 4], "rotation": 180, "texture": "#10"}
}
},
{
"name": "Bottom",
"from": [3, 6, 9],
"to": [5, 10, 13],
"rotation": {"angle": -45, "axis": "z", "origin": [8, 8, 8]},
"faces": {
"north": {"uv": [0, 0, 4, 2], "rotation": 270, "texture": "#10"},
"east": {"uv": [0, 0, 4, 4], "rotation": 90, "texture": "#10"},
"south": {"uv": [16, 4, 14, 0], "rotation": 180, "texture": "#10"},
"west": {"uv": [4, 4, 0, 0], "rotation": 180, "texture": "#10"},
"up": {"uv": [4, 3, 0, 1], "rotation": 270, "texture": "#10"},
"down": {"uv": [0, 3, 4, 1], "rotation": 270, "texture": "#10"}
}
},
{

View file

@ -26,8 +26,8 @@
},
{
"name": "Inner",
"from": [2, 2, 1],
"to": [14, 12, 15],
"from": [2, 2, 0.95],
"to": [14, 12, 15.05],
"faces": {
"north": {"uv": [2, 4, 14, 14], "texture": "#2"},
"south": {"uv": [2, 4, 14, 14], "texture": "#2"},
@ -41,7 +41,7 @@
"faces": {
"north": {"uv": [14, 4, 16, 14], "texture": "#0"},
"east": {"uv": [0, 4, 16, 14], "texture": "#0"},
"south": {"uv": [16, 4, 14, 14], "texture": "#0"},
"south": {"uv": [0, 4, 2, 14], "texture": "#0"},
"west": {"uv": [0, 4, 16, 14], "texture": "#0"},
"up": {"uv": [0, 2, 16, 0], "rotation": 270, "texture": "#0"}
}
@ -51,7 +51,7 @@
"from": [14, 2, 0],
"to": [16, 12, 16],
"faces": {
"north": {"uv": [16, 4, 14, 14], "texture": "#0"},
"north": {"uv": [0, 4, 2, 14], "texture": "#0"},
"east": {"uv": [0, 4, 16, 14], "texture": "#0"},
"south": {"uv": [14, 4, 16, 14], "texture": "#0"},
"west": {"uv": [0, 4, 16, 14], "texture": "#0"},

View file

@ -26,8 +26,8 @@
},
{
"name": "Inner",
"from": [1, 2, 2],
"to": [15, 12, 14],
"from": [0.95, 2, 2],
"to": [15.05, 12, 14],
"faces": {
"east": {"uv": [2, 4, 14, 14], "texture": "#2"},
"west": {"uv": [2, 4, 14, 14], "texture": "#2"},
@ -42,7 +42,7 @@
"north": {"uv": [0, 4, 16, 14], "texture": "#0"},
"east": {"uv": [14, 4, 16, 14], "texture": "#0"},
"south": {"uv": [0, 4, 16, 14], "texture": "#0"},
"west": {"uv": [16, 4, 14, 14], "texture": "#0"},
"west": {"uv": [0, 4, 2, 14], "texture": "#0"},
"up": {"uv": [0, 2, 16, 0], "texture": "#0"}
}
},
@ -52,7 +52,7 @@
"to": [16, 12, 16],
"faces": {
"north": {"uv": [0, 4, 16, 14], "texture": "#0"},
"east": {"uv": [16, 4, 14, 14], "texture": "#0"},
"east": {"uv": [0, 4, 2, 14], "texture": "#0"},
"south": {"uv": [0, 4, 16, 14], "texture": "#0"},
"west": {"uv": [14, 4, 16, 14], "texture": "#0"},
"up": {"uv": [0, 0, 16, 2], "texture": "#0"}

View file

@ -6,6 +6,7 @@
"1": "create:block/piston_bottom",
"2": "create:block/gearbox",
"3": "create:block/piston_inner",
"4": "create:block/andesite_casing",
"particle": "create:block/andesite_casing_piston"
},
"elements": [
@ -18,14 +19,14 @@
"east": {"uv": [0, 14, 16, 16], "texture": "#0"},
"south": {"uv": [0, 14, 16, 16], "texture": "#0"},
"west": {"uv": [0, 14, 16, 16], "texture": "#0"},
"up": {"uv": [0, 0, 16, 16], "texture": "#0"},
"up": {"uv": [0, 0, 16, 16], "texture": "#4"},
"down": {"uv": [0, 0, 16, 16], "texture": "#1"}
}
},
{
"name": "Inner",
"from": [2, 2, 1],
"to": [14, 12, 15],
"from": [2, 2, 0.95],
"to": [14, 12, 15.05],
"faces": {
"north": {"uv": [2, 4, 14, 14], "texture": "#2"},
"south": {"uv": [2, 4, 14, 14], "texture": "#2"},
@ -40,7 +41,7 @@
"faces": {
"north": {"uv": [14, 4, 16, 14], "texture": "#0"},
"east": {"uv": [0, 4, 16, 14], "texture": "#0"},
"south": {"uv": [16, 4, 14, 14], "texture": "#0"},
"south": {"uv": [0, 4, 2, 14], "texture": "#0"},
"west": {"uv": [0, 4, 16, 14], "texture": "#0"},
"up": {"uv": [0, 2, 16, 0], "rotation": 270, "texture": "#0"}
}
@ -50,7 +51,7 @@
"from": [14, 2, 0],
"to": [16, 12, 16],
"faces": {
"north": {"uv": [16, 4, 14, 14], "texture": "#0"},
"north": {"uv": [0, 4, 2, 14], "texture": "#0"},
"east": {"uv": [0, 4, 16, 14], "texture": "#0"},
"south": {"uv": [14, 4, 16, 14], "texture": "#0"},
"west": {"uv": [0, 4, 16, 14], "texture": "#0"},

View file

@ -6,6 +6,7 @@
"1": "create:block/piston_bottom",
"2": "create:block/gearbox",
"3": "create:block/piston_inner",
"4": "create:block/andesite_casing",
"particle": "create:block/andesite_casing_piston"
},
"elements": [
@ -18,14 +19,14 @@
"east": {"uv": [0, 14, 16, 16], "texture": "#0"},
"south": {"uv": [0, 14, 16, 16], "texture": "#0"},
"west": {"uv": [0, 14, 16, 16], "texture": "#0"},
"up": {"uv": [0, 0, 16, 16], "texture": "#2"},
"up": {"uv": [0, 0, 16, 16], "texture": "#4"},
"down": {"uv": [0, 0, 16, 16], "texture": "#1"}
}
},
{
"name": "Inner",
"from": [1, 2, 2],
"to": [15, 12, 14],
"from": [0.95, 2, 2],
"to": [15.05, 12, 14],
"faces": {
"east": {"uv": [2, 4, 14, 14], "texture": "#2"},
"west": {"uv": [2, 4, 14, 14], "texture": "#2"},
@ -40,7 +41,7 @@
"north": {"uv": [0, 4, 16, 14], "texture": "#0"},
"east": {"uv": [14, 4, 16, 14], "texture": "#0"},
"south": {"uv": [0, 4, 16, 14], "texture": "#0"},
"west": {"uv": [16, 4, 14, 14], "texture": "#0"},
"west": {"uv": [0, 4, 2, 14], "texture": "#0"},
"up": {"uv": [0, 2, 16, 0], "texture": "#0"}
}
},
@ -50,7 +51,7 @@
"to": [16, 12, 16],
"faces": {
"north": {"uv": [0, 4, 16, 14], "texture": "#0"},
"east": {"uv": [16, 4, 14, 14], "texture": "#0"},
"east": {"uv": [0, 4, 2, 14], "texture": "#0"},
"south": {"uv": [0, 4, 16, 14], "texture": "#0"},
"west": {"uv": [14, 4, 16, 14], "texture": "#0"},
"up": {"uv": [0, 0, 16, 2], "texture": "#0"}

View file

@ -16,18 +16,18 @@
"from": [0, 0, 0],
"to": [16, 2, 16],
"faces": {
"north": {"uv": [0, 14, 16, 16], "texture": "#0"},
"east": {"uv": [0, 14, 16, 16], "texture": "#0"},
"south": {"uv": [0, 14, 16, 16], "texture": "#0"},
"west": {"uv": [0, 14, 16, 16], "texture": "#0"},
"north": {"uv": [0, 14, 16, 16], "texture": "#6"},
"east": {"uv": [0, 14, 16, 16], "texture": "#6"},
"south": {"uv": [0, 14, 16, 16], "texture": "#6"},
"west": {"uv": [0, 14, 16, 16], "texture": "#6"},
"up": {"uv": [0, 0, 16, 16], "texture": "#0"},
"down": {"uv": [0, 0, 16, 16], "texture": "#1"}
}
},
{
"name": "Inner",
"from": [2, 2, 1],
"to": [14, 12, 15],
"from": [2, 2, 0.95],
"to": [14, 12, 15.05],
"faces": {
"north": {"uv": [2, 4, 14, 14], "texture": "#2"},
"south": {"uv": [2, 4, 14, 14], "texture": "#2"},
@ -39,9 +39,9 @@
"from": [0, 2, 0],
"to": [2, 12, 16],
"faces": {
"north": {"uv": [14, 0, 16, 10], "texture": "#0"},
"north": {"uv": [14, 4, 16, 14], "texture": "#6"},
"east": {"uv": [0, 4, 16, 14], "texture": "#6"},
"south": {"uv": [0, 0, 2, 10], "texture": "#0"},
"south": {"uv": [0, 4, 2, 14], "texture": "#6"},
"west": {"uv": [0, 4, 16, 14], "texture": "#6"}
}
},
@ -50,9 +50,9 @@
"from": [14, 2, 0],
"to": [16, 12, 16],
"faces": {
"north": {"uv": [0, 0, 2, 10], "texture": "#0"},
"north": {"uv": [0, 4, 2, 14], "texture": "#6"},
"east": {"uv": [0, 4, 16, 14], "texture": "#6"},
"south": {"uv": [14, 0, 16, 10], "texture": "#0"},
"south": {"uv": [14, 4, 16, 14], "texture": "#6"},
"west": {"uv": [0, 4, 16, 14], "texture": "#6"}
}
},

View file

@ -24,8 +24,8 @@
},
{
"name": "Inner",
"from": [1, 2, 2],
"to": [15, 12, 14],
"from": [0.95, 2, 2],
"to": [15.05, 12, 14],
"faces": {
"east": {"uv": [2, 4, 14, 14], "texture": "#2"},
"west": {"uv": [2, 4, 14, 14], "texture": "#2"}
@ -48,7 +48,7 @@
"to": [16, 12, 16],
"faces": {
"north": {"uv": [0, 4, 16, 14], "texture": "#0"},
"east": {"uv": [16, 4, 14, 14], "texture": "#0"},
"east": {"uv": [0, 4, 2, 14], "texture": "#0"},
"south": {"uv": [0, 4, 16, 14], "texture": "#0"},
"west": {"uv": [14, 4, 16, 14], "texture": "#0"}
}

View file

@ -2,8 +2,8 @@
"credit": "Made with Blockbench",
"textures": {
"4": "create:block/mechanical_press_side",
"gearbox_top": "create:block/gearbox_top",
"particle": "create:block/mechanical_press_side",
"gearbox_top": "create:block/gearbox_top",
"gearbox": "create:block/gearbox",
"mechanical_press_top": "create:block/mechanical_press_top",
"mechanical_press_bottom": "create:block/mechanical_press_bottom"
@ -24,8 +24,8 @@
},
{
"name": "Core",
"from": [2, 4, 1],
"to": [14, 14, 15],
"from": [2, 4, 0.95],
"to": [14, 14, 15.05],
"faces": {
"north": {"uv": [2, 2, 14, 12], "texture": "#gearbox"},
"south": {"uv": [2, 2, 14, 12], "texture": "#gearbox"},

View file

@ -1,5 +1,5 @@
{
"__comment": "Model generated using MrCrayfish's Model Creator (https://mrcrayfish.com/tools?id=mc)",
"credit": "Model generated using MrCrayfish's Model Creator (https://mrcrayfish.com/tools?id=mc)",
"textures": {
"mechanical_press_head": "create:block/mechanical_press_head",
"mechanical_press_pole": "create:block/mechanical_press_pole"
@ -7,80 +7,80 @@
"elements": [
{
"name": "Pole1Core",
"from": [ 6, 4, 6 ],
"to": [ 10, 14, 10 ],
"from": [5.95, 4, 6],
"to": [10.05, 14, 10],
"faces": {
"east": { "texture": "#mechanical_press_pole", "uv": [ 6, 6, 10, 16 ] },
"west": { "texture": "#mechanical_press_pole", "uv": [ 6, 6, 10, 16 ] }
"east": {"uv": [6, 6, 10, 16], "texture": "#mechanical_press_pole"},
"west": {"uv": [6, 6, 10, 16], "texture": "#mechanical_press_pole"}
}
},
{
"name": "Pole2Core",
"from": [ 6, 14, 6 ],
"to": [ 10, 27, 10 ],
"from": [5.95, 14, 6],
"to": [10.05, 27, 10],
"faces": {
"east": { "texture": "#mechanical_press_pole", "uv": [ 6, 0, 10, 13 ] },
"west": { "texture": "#mechanical_press_pole", "uv": [ 6, 0, 10, 13 ] },
"up": { "texture": "#mechanical_press_pole", "uv": [ 11, 1, 15, 5 ], "rotation": 180 }
"east": {"uv": [6, 0, 10, 13], "texture": "#mechanical_press_pole"},
"west": {"uv": [6, 0, 10, 13], "texture": "#mechanical_press_pole"},
"up": {"uv": [11, 1, 15, 5], "rotation": 180, "texture": "#mechanical_press_pole"}
}
},
{
"name": "Pole1Side",
"from": [ 5, 4, 5 ],
"to": [ 11, 14, 6 ],
"from": [5, 4, 5],
"to": [11, 14, 6],
"faces": {
"north": { "texture": "#mechanical_press_pole", "uv": [ 0, 6, 6, 16 ] },
"east": { "texture": "#mechanical_press_pole", "uv": [ 0, 6, 1, 16 ] },
"south": { "texture": "#mechanical_press_pole", "uv": [ 0, 6, 6, 16 ] },
"west": { "texture": "#mechanical_press_pole", "uv": [ 5, 6, 6, 16 ] }
"north": {"uv": [0, 6, 6, 16], "texture": "#mechanical_press_pole"},
"east": {"uv": [0, 6, 1, 16], "texture": "#mechanical_press_pole"},
"south": {"uv": [0, 6, 6, 16], "texture": "#mechanical_press_pole"},
"west": {"uv": [5, 6, 6, 16], "texture": "#mechanical_press_pole"}
}
},
{
"name": "Pole1Side",
"from": [ 5, 4, 10 ],
"to": [ 11, 14, 11 ],
"from": [5, 4, 10],
"to": [11, 14, 11],
"faces": {
"north": { "texture": "#mechanical_press_pole", "uv": [ 0, 6, 6, 16 ] },
"east": { "texture": "#mechanical_press_pole", "uv": [ 0, 6, 1, 16 ] },
"south": { "texture": "#mechanical_press_pole", "uv": [ 0, 6, 6, 16 ] },
"west": { "texture": "#mechanical_press_pole", "uv": [ 5, 6, 6, 16 ] }
"north": {"uv": [0, 6, 6, 16], "texture": "#mechanical_press_pole"},
"east": {"uv": [0, 6, 1, 16], "texture": "#mechanical_press_pole"},
"south": {"uv": [0, 6, 6, 16], "texture": "#mechanical_press_pole"},
"west": {"uv": [5, 6, 6, 16], "texture": "#mechanical_press_pole"}
}
},
{
"name": "Pole2Side",
"from": [ 5, 14, 10 ],
"to": [ 11, 27, 11 ],
"from": [5, 14, 10],
"to": [11, 27, 11],
"faces": {
"north": { "texture": "#mechanical_press_pole", "uv": [ 0, 0, 6, 13 ] },
"east": { "texture": "#mechanical_press_pole", "uv": [ 0, 0, 1, 13 ] },
"south": { "texture": "#mechanical_press_pole", "uv": [ 0, 0, 6, 13 ] },
"west": { "texture": "#mechanical_press_pole", "uv": [ 5, 0, 6, 13 ] },
"up": { "texture": "#mechanical_press_pole", "uv": [ 10, 0, 16, 1 ], "rotation": 180 }
"north": {"uv": [0, 0, 6, 13], "texture": "#mechanical_press_pole"},
"east": {"uv": [0, 0, 1, 13], "texture": "#mechanical_press_pole"},
"south": {"uv": [0, 0, 6, 13], "texture": "#mechanical_press_pole"},
"west": {"uv": [5, 0, 6, 13], "texture": "#mechanical_press_pole"},
"up": {"uv": [10, 0, 16, 1], "rotation": 180, "texture": "#mechanical_press_pole"}
}
},
{
"name": "Pole2Side",
"from": [ 5, 14, 5 ],
"to": [ 11, 27, 6 ],
"from": [5, 14, 5],
"to": [11, 27, 6],
"faces": {
"north": { "texture": "#mechanical_press_pole", "uv": [ 0, 0, 6, 13 ] },
"east": { "texture": "#mechanical_press_pole", "uv": [ 0, 0, 1, 13 ] },
"south": { "texture": "#mechanical_press_pole", "uv": [ 0, 0, 6, 13 ] },
"west": { "texture": "#mechanical_press_pole", "uv": [ 5, 0, 6, 13 ] },
"up": { "texture": "#mechanical_press_pole", "uv": [ 10, 5, 16, 6 ], "rotation": 180 }
"north": {"uv": [0, 0, 6, 13], "texture": "#mechanical_press_pole"},
"east": {"uv": [0, 0, 1, 13], "texture": "#mechanical_press_pole"},
"south": {"uv": [0, 0, 6, 13], "texture": "#mechanical_press_pole"},
"west": {"uv": [5, 0, 6, 13], "texture": "#mechanical_press_pole"},
"up": {"uv": [10, 5, 16, 6], "rotation": 180, "texture": "#mechanical_press_pole"}
}
},
{
"name": "Head",
"from": [ 3, 0, 3 ],
"to": [ 13, 4, 13 ],
"from": [3, 0, 3],
"to": [13, 4, 13],
"faces": {
"north": { "texture": "#mechanical_press_head", "uv": [ 1, 0, 11, 4 ] },
"east": { "texture": "#mechanical_press_head", "uv": [ 1, 0, 11, 4 ] },
"south": { "texture": "#mechanical_press_head", "uv": [ 1, 0, 11, 4 ] },
"west": { "texture": "#mechanical_press_head", "uv": [ 1, 0, 11, 4 ] },
"up": { "texture": "#mechanical_press_head", "uv": [ 1, 5, 11, 15 ], "rotation": 180 },
"down": { "texture": "#mechanical_press_head", "uv": [ 1, 5, 11, 15 ], "rotation": 180 }
"north": {"uv": [1, 0, 11, 4], "texture": "#mechanical_press_head"},
"east": {"uv": [1, 0, 11, 4], "texture": "#mechanical_press_head"},
"south": {"uv": [1, 0, 11, 4], "texture": "#mechanical_press_head"},
"west": {"uv": [1, 0, 11, 4], "texture": "#mechanical_press_head"},
"up": {"uv": [1, 5, 11, 15], "rotation": 180, "texture": "#mechanical_press_head"},
"down": {"uv": [1, 5, 11, 15], "rotation": 180, "texture": "#mechanical_press_head"}
}
}
]

View file

@ -50,7 +50,7 @@
{
"name": "Inner",
"from": [0, 2, 2],
"to": [16, 14, 11],
"to": [16, 14, 11.025],
"faces": {
"east": {"uv": [2, 6, 14, 15], "rotation": 90, "texture": "#andesite_casing_short"},
"south": {"uv": [0, 2, 16, 14], "texture": "#slit"},
@ -70,8 +70,8 @@
},
{
"name": "Back",
"from": [2, 2, 1],
"to": [14, 14, 2],
"from": [2, 2, 0.95],
"to": [14, 14, 1.95],
"faces": {
"north": {"uv": [2, 2, 14, 14], "texture": "#gearbox"}
}

View file

@ -1,71 +1,71 @@
{
"__comment": "Model generated using MrCrayfish's Model Creator (https://mrcrayfish.com/tools?id=mc)",
"credit": "Model generated using MrCrayfish's Model Creator (https://mrcrayfish.com/tools?id=mc)",
"textures": {
"gearbox_top": "create:block/gearbox_top",
"gearbox": "create:block/gearbox",
"andesite_casing_short": "create:block/andesite_casing_short",
"mechanical_saw_top": "create:block/mechanical_saw_top",
"particle": "create:block/mechanical_saw_top"
"particle": "create:block/mechanical_saw_top",
"mechanical_saw_top": "create:block/mechanical_saw_top"
},
"elements": [
{
"name": "Bottom",
"from": [ 0, 0, 0 ],
"to": [ 16, 2, 16 ],
"from": [0, 0, 0],
"to": [16, 2, 16],
"faces": {
"north": { "texture": "#gearbox_top", "uv": [ 0, 14, 16, 16 ] },
"east": { "texture": "#andesite_casing_short", "uv": [ 0, 14, 16, 16 ] },
"south": { "texture": "#gearbox_top", "uv": [ 0, 14, 16, 16 ] },
"west": { "texture": "#andesite_casing_short", "uv": [ 0, 14, 16, 16 ] },
"up": { "texture": "#gearbox_top", "uv": [ 0, 0, 16, 16 ] },
"down": { "texture": "#gearbox_top", "uv": [ 0, 0, 16, 16 ] }
"north": {"uv": [0, 14, 16, 16], "texture": "#andesite_casing_short"},
"east": {"uv": [0, 14, 16, 16], "texture": "#andesite_casing_short"},
"south": {"uv": [0, 14, 16, 16], "texture": "#gearbox_top"},
"west": {"uv": [0, 14, 16, 16], "texture": "#andesite_casing_short"},
"up": {"uv": [0, 0, 16, 16], "texture": "#gearbox_top"},
"down": {"uv": [0, 0, 16, 16], "texture": "#gearbox_top"}
}
},
{
"name": "Inner",
"from": [ 2, 2, 1 ],
"to": [ 14, 12, 15 ],
"from": [2, 2, 0.95],
"to": [14, 12, 15.05],
"faces": {
"north": { "texture": "#gearbox", "uv": [ 2, 4, 14, 14 ] },
"south": { "texture": "#gearbox", "uv": [ 2, 4, 14, 14 ] },
"up": { "texture": "#mechanical_saw_top", "uv": [ 2, 1, 14, 15 ] },
"down": { "texture": "#gearbox", "uv": [ 0, 0, 12, 14 ] }
"north": {"uv": [2, 4, 14, 14], "texture": "#gearbox"},
"south": {"uv": [2, 4, 14, 14], "texture": "#gearbox"},
"up": {"uv": [2, 1, 14, 15], "texture": "#mechanical_saw_top"},
"down": {"uv": [0, 0, 12, 14], "texture": "#gearbox"}
}
},
{
"name": "Side",
"from": [ 0, 2, 0 ],
"to": [ 2, 12, 16 ],
"from": [0, 2, 0],
"to": [2, 12, 16],
"faces": {
"north": { "texture": "#gearbox_top", "uv": [ 14, 0, 16, 10 ] },
"east": { "texture": "#gearbox_top", "uv": [ 0, 0, 16, 10 ] },
"south": { "texture": "#gearbox_top", "uv": [ 0, 0, 2, 10 ] },
"west": { "texture": "#andesite_casing_short", "uv": [ 0, 4, 16, 14 ] },
"up": { "texture": "#gearbox_top", "uv": [ 0, 0, 16, 2 ], "rotation": 270 }
"north": {"uv": [14, 4, 16, 14], "texture": "#andesite_casing_short"},
"east": {"uv": [0, 0, 16, 10], "texture": "#gearbox_top"},
"south": {"uv": [0, 4, 2, 14], "texture": "#andesite_casing_short"},
"west": {"uv": [0, 4, 16, 14], "texture": "#andesite_casing_short"},
"up": {"uv": [0, 0, 16, 2], "rotation": 270, "texture": "#gearbox_top"}
}
},
{
"name": "Side2",
"from": [ 14, 2, 0 ],
"to": [ 16, 12, 16 ],
"from": [14, 2, 0],
"to": [16, 12, 16],
"faces": {
"north": { "texture": "#gearbox_top", "uv": [ 0, 0, 2, 10 ] },
"east": { "texture": "#andesite_casing_short", "uv": [ 0, 4, 16, 14 ] },
"south": { "texture": "#gearbox_top", "uv": [ 14, 0, 16, 10 ] },
"west": { "texture": "#gearbox_top", "uv": [ 0, 0, 16, 10 ] },
"up": { "texture": "#gearbox_top", "uv": [ 0, 14, 16, 16 ], "rotation": 270 }
"north": {"uv": [0, 4, 2, 14], "texture": "#andesite_casing_short"},
"east": {"uv": [0, 4, 16, 14], "texture": "#andesite_casing_short"},
"south": {"uv": [14, 4, 16, 14], "texture": "#andesite_casing_short"},
"west": {"uv": [0, 0, 16, 10], "texture": "#gearbox_top"},
"up": {"uv": [0, 14, 16, 16], "rotation": 270, "texture": "#gearbox_top"}
}
},
{
"name": "Top",
"from": [ 0, 12, 2 ],
"to": [ 16, 13, 14 ],
"from": [0, 12, 1.95],
"to": [16, 13, 14.05],
"faces": {
"north": { "texture": "#mechanical_saw_top", "uv": [ 0, 13, 16, 14 ] },
"east": { "texture": "#mechanical_saw_top", "uv": [ 0, 3, 1, 13 ], "rotation": 90 },
"south": { "texture": "#mechanical_saw_top", "uv": [ 0, 2, 16, 3 ] },
"west": { "texture": "#mechanical_saw_top", "uv": [ 15, 3, 16, 13 ], "rotation": 270 },
"up": { "texture": "#mechanical_saw_top", "uv": [ 0, 2, 16, 14 ] }
"north": {"uv": [16, 2, 0, 3], "texture": "#mechanical_saw_top"},
"east": {"uv": [0, 2, 1, 14], "rotation": 90, "texture": "#mechanical_saw_top"},
"south": {"uv": [0, 13, 16, 14], "texture": "#mechanical_saw_top"},
"west": {"uv": [15, 2, 16, 14], "rotation": 270, "texture": "#mechanical_saw_top"},
"up": {"uv": [0, 2, 16, 14], "texture": "#mechanical_saw_top"}
}
}
]

View file

@ -10,8 +10,8 @@
"elements": [
{
"name": "Center",
"from": [2, 1, 2],
"to": [14, 15, 14],
"from": [2, 0.95, 2],
"to": [14, 15.05, 14],
"faces": {
"up": {"uv": [2, 2, 14, 14], "texture": "#0"},
"down": {"uv": [2, 2, 14, 14], "texture": "#3"}

View file

@ -4,6 +4,7 @@
"textures": {
"3": "create:block/gearbox_top",
"4": "create:block/gearbox",
"5": "create:block/andesite_casing",
"6": "create:block/pulley_top",
"particle": "create:block/pulley_rope"
},
@ -197,7 +198,7 @@
"east": {"uv": [2, 1, 14, 3], "rotation": 180, "texture": "#6"},
"west": {"uv": [2, 13, 14, 15], "texture": "#6"},
"up": {"uv": [2, 2, 14, 14], "rotation": 90, "texture": "#6"},
"down": {"uv": [2, 2, 14, 14], "rotation": 90, "texture": "#6"}
"down": {"uv": [2, 2, 14, 14], "rotation": 90, "texture": "#5"}
}
}
]

View file

@ -8,6 +8,7 @@
"4": "create:block/gearbox",
"5": "create:block/pulley_rope",
"6": "create:block/pulley_magnet",
"7": "create:block/andesite_casing",
"8": "create:block/pulley_top",
"particle": "create:block/pulley_top"
},
@ -82,17 +83,31 @@
{
"name": "magnet",
"from": [3.1, 0, 3],
"to": [13.1, 2, 13],
"to": [13.1, 3, 13],
"rotation": {"angle": 0, "axis": "y", "origin": [24, 23, -8]},
"faces": {
"north": {"uv": [0, 10, 10, 12], "texture": "#6"},
"east": {"uv": [0, 10, 10, 12], "texture": "#6"},
"south": {"uv": [0, 10, 10, 12], "texture": "#6"},
"west": {"uv": [0, 10, 10, 12], "texture": "#6"},
"north": {"uv": [0, 10, 10, 13], "texture": "#6"},
"east": {"uv": [0, 10, 10, 13], "texture": "#6"},
"south": {"uv": [0, 10, 10, 13], "texture": "#6"},
"west": {"uv": [0, 10, 10, 13], "texture": "#6"},
"up": {"uv": [0, 0, 10, 10], "texture": "#6"},
"down": {"uv": [0, 0, 10, 10], "texture": "#6"}
}
},
{
"name": "magnet",
"from": [5.1, 2, 5],
"to": [11.1, 4, 11],
"rotation": {"angle": 0, "axis": "y", "origin": [24, 23, -8]},
"faces": {
"north": {"uv": [0, 13, 6, 15], "texture": "#6"},
"east": {"uv": [0, 13, 6, 15], "texture": "#6"},
"south": {"uv": [0, 13, 6, 15], "texture": "#6"},
"west": {"uv": [0, 13, 6, 15], "texture": "#6"},
"up": {"uv": [2, 2, 8, 8], "texture": "#6"},
"down": {"uv": [2, 2, 8, 8], "texture": "#6"}
}
},
{
"name": "side",
"from": [2, 2, 14],
@ -282,7 +297,7 @@
"east": {"uv": [2, 1, 14, 3], "rotation": 180, "texture": "#8"},
"west": {"uv": [2, 13, 14, 15], "texture": "#8"},
"up": {"uv": [2, 2, 14, 14], "rotation": 90, "texture": "#8"},
"down": {"uv": [2, 2, 14, 14], "rotation": 90, "texture": "#8"}
"down": {"uv": [2, 2, 14, 14], "rotation": 90, "texture": "#7"}
}
}
],
@ -331,9 +346,8 @@
"name": "rope_half_magnet",
"origin": [8, 8, 8],
"color": 0,
"children": [4, 5]
"children": [4, 5, 6]
},
6,
7,
8,
9,
@ -347,6 +361,7 @@
17,
18,
19,
20
20,
21
]
}

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