diff --git a/src/generated/resources/.cache/2d64935085b86659cb7857bad9701dbf9bab6e4c b/src/generated/resources/.cache/2d64935085b86659cb7857bad9701dbf9bab6e4c index 4aef998b54..85dd3fdf2b 100644 --- a/src/generated/resources/.cache/2d64935085b86659cb7857bad9701dbf9bab6e4c +++ b/src/generated/resources/.cache/2d64935085b86659cb7857bad9701dbf9bab6e4c @@ -1,4 +1,4 @@ -// 1.20.1 2024-12-27T18:05:56.7764077 Registrate Provider for create [Recipes, Advancements, Loot Tables, Tags (blocks), Tags (items), Tags (fluids), Tags (entity_types), Blockstates, Item models, Lang (en_us/en_ud)] +// 1.20.1 2024-12-28T14:25:56.9899499 Registrate Provider for create [Recipes, Advancements, Loot Tables, Tags (blocks), Tags (items), Tags (fluids), Tags (entity_types), Blockstates, Item models, Lang (en_us/en_ud)] 60bbdf92d2ac9824ea6144955c74043a6005f79d assets/create/blockstates/acacia_window.json 6a67703c2697d81b7dc83e9d72a66f9c9ff08383 assets/create/blockstates/acacia_window_pane.json c3ae87b62e81d8e9476eccd793bb1548d74c66a1 assets/create/blockstates/adjustable_chain_gearshift.json @@ -4711,7 +4711,7 @@ edf7390f09e622193bbc720ec51ba128ea1e96e6 data/curios/tags/items/head.json 81b107ada9c6ac5679a21f8c6a006bf230f69c39 data/forge/tags/blocks/ores/zinc.json e475ad1c52bffedfc544e5331a87c1f5c45149fd data/forge/tags/blocks/ores_in_ground/deepslate.json 2f6068972e364599b6849dc46fcb0724d4219d53 data/forge/tags/blocks/ores_in_ground/stone.json -8a5988e68f3a41341b486784c29d00e16d5272f7 data/forge/tags/blocks/relocation_not_supported.json +2589b135c0e96ad29076569e144528fe32ea5b39 data/forge/tags/blocks/relocation_not_supported.json 807ea01d3b028bd226ed0befc142cbd23647e998 data/forge/tags/blocks/storage_blocks.json 7d10cdf9e46a79753d4437c7bb958e3ab8bf0c89 data/forge/tags/blocks/storage_blocks/andesite_alloy.json 70bba470740dc7a77f51b4cb1747a105b62d4bde data/forge/tags/blocks/storage_blocks/brass.json diff --git a/src/generated/resources/data/forge/tags/blocks/relocation_not_supported.json b/src/generated/resources/data/forge/tags/blocks/relocation_not_supported.json index ce295fd976..259661af42 100644 --- a/src/generated/resources/data/forge/tags/blocks/relocation_not_supported.json +++ b/src/generated/resources/data/forge/tags/blocks/relocation_not_supported.json @@ -1,6 +1,5 @@ { "values": [ - "create:chain_conveyor", "create:track" ] } \ No newline at end of file diff --git a/src/main/java/com/simibubi/create/AllBlocks.java b/src/main/java/com/simibubi/create/AllBlocks.java index 9911639da2..5d8690d1ae 100644 --- a/src/main/java/com/simibubi/create/AllBlocks.java +++ b/src/main/java/com/simibubi/create/AllBlocks.java @@ -554,7 +554,6 @@ public class AllBlocks { .mapColor(MapColor.PODZOL)) .transform(axeOrPickaxe()) .transform(BlockStressDefaults.setImpact(1)) - .tag(AllBlockTags.RELOCATION_NOT_SUPPORTED.tag) .blockstate((c, p) -> p.simpleBlock(c.getEntry(), AssetLookup.partialBaseModel(c, p))) .item() .transform(customItemModel()) @@ -883,7 +882,7 @@ public class AllBlocks { .properties(p -> p.forceSolidOn()) .transform(pickaxeOnly()) .blockstate(BlockStateGen.pipe()) - .onRegister(CreateRegistrate.blockModel(() -> PipeAttachmentModel::new)) + .onRegister(CreateRegistrate.blockModel(() -> PipeAttachmentModel::withoutAO)) .item() .transform(customItemModel()) .register(); @@ -898,7 +897,7 @@ public class AllBlocks { .onRegister(CreateRegistrate.connectedTextures(() -> new EncasedCTBehaviour(AllSpriteShifts.COPPER_CASING))) .onRegister(CreateRegistrate.casingConnectivity((block, cc) -> cc.make(block, AllSpriteShifts.COPPER_CASING, (s, f) -> !s.getValue(EncasedPipeBlock.FACING_TO_PROPERTY_MAP.get(f))))) - .onRegister(CreateRegistrate.blockModel(() -> PipeAttachmentModel::new)) + .onRegister(CreateRegistrate.blockModel(() -> PipeAttachmentModel::withAO)) .loot((p, b) -> p.dropOther(b, FLUID_PIPE.get())) .transform(EncasingRegistry.addVariantTo(AllBlocks.FLUID_PIPE)) .register(); @@ -922,7 +921,7 @@ public class AllBlocks { .build(); }, BlockStateProperties.WATERLOGGED); }) - .onRegister(CreateRegistrate.blockModel(() -> PipeAttachmentModel::new)) + .onRegister(CreateRegistrate.blockModel(() -> PipeAttachmentModel::withoutAO)) .loot((p, b) -> p.dropOther(b, FLUID_PIPE.get())) .register(); @@ -931,7 +930,7 @@ public class AllBlocks { .properties(p -> p.mapColor(MapColor.STONE)) .transform(pickaxeOnly()) .blockstate(BlockStateGen.directionalBlockProviderIgnoresWaterlogged(true)) - .onRegister(CreateRegistrate.blockModel(() -> PipeAttachmentModel::new)) + .onRegister(CreateRegistrate.blockModel(() -> PipeAttachmentModel::withoutAO)) .transform(BlockStressDefaults.setImpact(4.0)) .item() .transform(customItemModel()) @@ -943,7 +942,7 @@ public class AllBlocks { .properties(p -> p.mapColor(MapColor.TERRACOTTA_YELLOW)) .transform(pickaxeOnly()) .blockstate(new SmartFluidPipeGenerator()::generate) - .onRegister(CreateRegistrate.blockModel(() -> PipeAttachmentModel::new)) + .onRegister(CreateRegistrate.blockModel(() -> PipeAttachmentModel::withoutAO)) .item() .transform(customItemModel()) .register(); @@ -951,10 +950,11 @@ public class AllBlocks { public static final BlockEntry FLUID_VALVE = REGISTRATE.block("fluid_valve", FluidValveBlock::new) .initialProperties(SharedProperties::copperMetal) .transform(pickaxeOnly()) + .addLayer(() -> RenderType::cutoutMipped) .blockstate((c, p) -> BlockStateGen.directionalAxisBlock(c, p, (state, vertical) -> AssetLookup.partialBaseModel(c, p, vertical ? "vertical" : "horizontal", state.getValue(FluidValveBlock.ENABLED) ? "open" : "closed"))) - .onRegister(CreateRegistrate.blockModel(() -> PipeAttachmentModel::new)) + .onRegister(CreateRegistrate.blockModel(() -> PipeAttachmentModel::withoutAO)) .item() .transform(customItemModel()) .register(); diff --git a/src/main/java/com/simibubi/create/content/contraptions/BlockMovementChecks.java b/src/main/java/com/simibubi/create/content/contraptions/BlockMovementChecks.java index 4a35e41bc4..7c917c10ff 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/BlockMovementChecks.java +++ b/src/main/java/com/simibubi/create/content/contraptions/BlockMovementChecks.java @@ -24,6 +24,7 @@ import com.simibubi.create.content.decoration.steamWhistle.WhistleExtenderBlock; import com.simibubi.create.content.fluids.tank.FluidTankBlock; import com.simibubi.create.content.kinetics.crank.HandCrankBlock; import com.simibubi.create.content.kinetics.fan.NozzleBlock; +import com.simibubi.create.content.logistics.packagerLink.PackagerLinkBlock; import com.simibubi.create.content.logistics.vault.ItemVaultBlock; import com.simibubi.create.content.redstone.link.RedstoneLinkBlock; import com.simibubi.create.content.trains.bogey.AbstractBogeyBlock; @@ -237,7 +238,8 @@ public class BlockMovementChecks { return true; if (block instanceof BasePressurePlateBlock) return true; - if (block instanceof FaceAttachedHorizontalDirectionalBlock && !(block instanceof GrindstoneBlock)) + if (block instanceof FaceAttachedHorizontalDirectionalBlock && !(block instanceof GrindstoneBlock) + && !(block instanceof PackagerLinkBlock)) return true; if (block instanceof CartAssemblerBlock) return false; diff --git a/src/main/java/com/simibubi/create/content/contraptions/Contraption.java b/src/main/java/com/simibubi/create/content/contraptions/Contraption.java index fae00e8c94..693ccdd9e1 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/Contraption.java +++ b/src/main/java/com/simibubi/create/content/contraptions/Contraption.java @@ -61,10 +61,12 @@ import com.simibubi.create.content.kinetics.base.BlockBreakingMovementBehaviour; import com.simibubi.create.content.kinetics.base.IRotate; import com.simibubi.create.content.kinetics.base.KineticBlockEntity; import com.simibubi.create.content.kinetics.belt.BeltBlock; +import com.simibubi.create.content.kinetics.chainConveyor.ChainConveyorBlockEntity; import com.simibubi.create.content.kinetics.gantry.GantryShaftBlock; import com.simibubi.create.content.kinetics.simpleRelays.ShaftBlock; import com.simibubi.create.content.kinetics.steamEngine.PoweredShaftBlockEntity; import com.simibubi.create.content.logistics.crate.CreativeCrateBlockEntity; +import com.simibubi.create.content.logistics.factoryBoard.FactoryPanelBlockEntity; import com.simibubi.create.content.redstone.contact.RedstoneContactBlock; import com.simibubi.create.content.trains.bogey.AbstractBogeyBlock; import com.simibubi.create.foundation.blockEntity.IMultiBlockEntityContainer; @@ -338,6 +340,9 @@ public abstract class Contraption { && !BlockMovementChecks.isNotSupportive(world.getBlockState(attached), offset.getOpposite())) frontier.add(attached); } + + if (world.getBlockEntity(pos) instanceof ChainConveyorBlockEntity ccbe) + ccbe.notifyConnectedToValidate(); // Double Chest halves stick together if (state.hasProperty(ChestBlock.TYPE) && state.hasProperty(ChestBlock.FACING) @@ -626,6 +631,9 @@ public abstract class Contraption { BlockEntity blockEntity = world.getBlockEntity(pos); if (blockEntity instanceof PoweredShaftBlockEntity) blockEntity = AllBlockEntityTypes.BRACKETED_KINETIC.create(pos, blockstate); + if (blockEntity instanceof FactoryPanelBlockEntity fpbe) + fpbe.writeSafe(compoundnbt); + return Pair.of(new StructureBlockInfo(pos, blockstate, compoundnbt), blockEntity); } diff --git a/src/main/java/com/simibubi/create/content/fluids/PipeAttachmentModel.java b/src/main/java/com/simibubi/create/content/fluids/PipeAttachmentModel.java index 0dbf7fa2fc..eb17afba72 100644 --- a/src/main/java/com/simibubi/create/content/fluids/PipeAttachmentModel.java +++ b/src/main/java/com/simibubi/create/content/fluids/PipeAttachmentModel.java @@ -33,9 +33,19 @@ import net.minecraftforge.client.model.data.ModelProperty; public class PipeAttachmentModel extends BakedModelWrapperWithData { private static final ModelProperty PIPE_PROPERTY = new ModelProperty<>(); + private boolean ao; - public PipeAttachmentModel(BakedModel template) { + public static PipeAttachmentModel withAO(BakedModel template) { + return new PipeAttachmentModel(template, true); + } + + public static PipeAttachmentModel withoutAO(BakedModel template) { + return new PipeAttachmentModel(template, false); + } + + public PipeAttachmentModel(BakedModel template, boolean ao) { super(template); + this.ao = ao; } @Override @@ -75,6 +85,21 @@ public class PipeAttachmentModel extends BakedModelWrapperWithData { } return quads; } + + @Override + public boolean useAmbientOcclusion(BlockState state, RenderType renderType) { + return ao; + } + + @Override + public boolean useAmbientOcclusion(BlockState state) { + return ao; + } + + @Override + public boolean useAmbientOcclusion() { + return ao; + } private void addQuads(List quads, BlockState state, Direction side, RandomSource rand, ModelData data, PipeModelData pipeData, RenderType renderType) { diff --git a/src/main/java/com/simibubi/create/content/kinetics/chainConveyor/ChainConveyorBlockEntity.java b/src/main/java/com/simibubi/create/content/kinetics/chainConveyor/ChainConveyorBlockEntity.java index 468b24323f..c8220c415e 100644 --- a/src/main/java/com/simibubi/create/content/kinetics/chainConveyor/ChainConveyorBlockEntity.java +++ b/src/main/java/com/simibubi/create/content/kinetics/chainConveyor/ChainConveyorBlockEntity.java @@ -12,6 +12,8 @@ import java.util.function.Consumer; import javax.annotation.Nullable; +import com.simibubi.create.api.contraption.transformable.ITransformableBlockEntity; +import com.simibubi.create.content.contraptions.StructureTransform; import com.simibubi.create.content.kinetics.base.IRotate; import com.simibubi.create.content.kinetics.base.KineticBlockEntity; import com.simibubi.create.content.kinetics.chainConveyor.ChainConveyorPackage.ChainConveyorPackagePhysicsData; @@ -20,6 +22,8 @@ import com.simibubi.create.content.kinetics.chainConveyor.ChainConveyorShape.Cha import com.simibubi.create.content.logistics.box.PackageEntity; import com.simibubi.create.content.logistics.box.PackageItem; import com.simibubi.create.content.logistics.packagePort.frogport.FrogportBlockEntity; +import com.simibubi.create.content.schematics.requirement.ItemRequirement; +import com.simibubi.create.content.schematics.requirement.ItemRequirement.ItemUseType; import com.simibubi.create.foundation.utility.ServerSpeedProvider; import com.simibubi.create.infrastructure.config.AllConfigs; @@ -51,7 +55,7 @@ import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; import net.minecraftforge.items.ItemHandlerHelper; -public class ChainConveyorBlockEntity extends KineticBlockEntity { +public class ChainConveyorBlockEntity extends KineticBlockEntity implements ITransformableBlockEntity { public record ConnectionStats(float tangentAngle, float chainLength, Vec3 start, Vec3 end) { } @@ -71,11 +75,13 @@ public class ChainConveyorBlockEntity extends KineticBlockEntity { public boolean reversed; public boolean cancelDrops; + public boolean checkInvalid; BlockPos chainDestroyedEffectToSend; public ChainConveyorBlockEntity(BlockEntityType typeIn, BlockPos pos, BlockState state) { super(typeIn, pos, state); + checkInvalid = true; } @Override @@ -125,6 +131,11 @@ public class ChainConveyorBlockEntity extends KineticBlockEntity { public void tick() { super.tick(); + if (checkInvalid && !level.isClientSide()) { + checkInvalid = false; + removeInvalidConnections(); + } + float serverSpeed = level.isClientSide() ? ServerSpeedProvider.get() : 1f; float speed = getSpeed() / 360f; float radius = 1.5f; @@ -181,6 +192,8 @@ public class ChainConveyorBlockEntity extends KineticBlockEntity { for (Entry> entry : travellingPackages.entrySet()) { BlockPos target = entry.getKey(); ConnectionStats stats = connectionStats.get(target); + if (stats == null) + continue; Travelling: for (Iterator iterator = entry.getValue() .iterator(); iterator.hasNext();) { @@ -206,7 +219,7 @@ public class ChainConveyorBlockEntity extends KineticBlockEntity { continue; if (!target.equals(port.connection)) continue; - + boolean notAtPositionYet = box.chainPosition < chainPosition; if (notAtPositionYet && anticipatePosition < chainPosition) continue; @@ -298,6 +311,33 @@ public class ChainConveyorBlockEntity extends KineticBlockEntity { updateBoxWorldPositions(); } + public void removeInvalidConnections() { + boolean changed = false; + for (Iterator iterator = connections.iterator(); iterator.hasNext();) { + BlockPos next = iterator.next(); + BlockPos target = worldPosition.offset(next); + if (!level.isLoaded(target)) + continue; + if (level.getBlockEntity(target) instanceof ChainConveyorBlockEntity ccbe + && ccbe.connections.contains(next.multiply(-1))) + continue; + iterator.remove(); + changed = true; + } + if (changed) + notifyUpdate(); + } + + public void notifyConnectedToValidate() { + for (BlockPos blockPos : connections) { + BlockPos target = worldPosition.offset(blockPos); + if (!level.isLoaded(target)) + continue; + if (level.getBlockEntity(target) instanceof ChainConveyorBlockEntity ccbe) + ccbe.checkInvalid = true; + } + } + public void tickBoxVisuals() { for (ChainConveyorPackage box : loopingPackages) tickBoxVisuals(box); @@ -371,6 +411,8 @@ public class ChainConveyorBlockEntity extends KineticBlockEntity { for (Entry> entry : travellingPackages.entrySet()) { BlockPos target = entry.getKey(); ConnectionStats stats = connectionStats.get(target); + if (stats == null) + continue; for (ChainConveyorPackage box : entry.getValue()) { box.worldPosition = getPackagePosition(box.chainPosition, target); if (level == null || !level.isClientSide()) @@ -596,7 +638,8 @@ public class ChainConveyorBlockEntity extends KineticBlockEntity { } private void drop(ChainConveyorPackage box) { - level.addFreshEntity(PackageEntity.fromItemStack(level, box.worldPosition.subtract(0, 0.5, 0), box.item)); + if (box.worldPosition != null) + level.addFreshEntity(PackageEntity.fromItemStack(level, box.worldPosition.subtract(0, 0.5, 0), box.item)); } @Override @@ -617,6 +660,12 @@ public class ChainConveyorBlockEntity extends KineticBlockEntity { return super.propagateRotationTo(target, stateFrom, stateTo, diff, connectedViaAxes, connectedViaCogs); } + @Override + public void writeSafe(CompoundTag tag) { + super.writeSafe(tag); + tag.put("Connections", NBTHelper.writeCompoundList(connections, NbtUtils::writeBlockPos)); + } + @Override protected void write(CompoundTag compound, boolean clientPacket) { super.write(compound, clientPacket); @@ -717,4 +766,33 @@ public class ChainConveyorBlockEntity extends KineticBlockEntity { return travellingPackages; } + @Override + public ItemRequirement getRequiredItems(BlockState state) { + // Uncomment when Schematicannon is able to print these with chains +// int totalCost = 0; +// for (BlockPos pos : connections) +// totalCost += getChainCost(pos); +// if (totalCost > 0) +// return new ItemRequirement(ItemUseType.CONSUME, new ItemStack(Items.CHAIN, Mth.ceil(totalCost / 2.0))); + return super.getRequiredItems(state); + } + + @Override + public void transform(StructureTransform transform) { + if (connections == null || connections.isEmpty()) + return; + + connections = new HashSet<>(connections.stream() + .map(transform::applyWithoutOffset) + .toList()); + + HashMap> newMap = new HashMap<>(); + travellingPackages.entrySet() + .forEach(e -> newMap.put(transform.applyWithoutOffset(e.getKey()), e.getValue())); + travellingPackages = newMap; + + connectionStats = null; + notifyUpdate(); + } + } diff --git a/src/main/java/com/simibubi/create/content/kinetics/chainConveyor/ChainConveyorRenderer.java b/src/main/java/com/simibubi/create/content/kinetics/chainConveyor/ChainConveyorRenderer.java index c8036e9d8b..71024d1232 100644 --- a/src/main/java/com/simibubi/create/content/kinetics/chainConveyor/ChainConveyorRenderer.java +++ b/src/main/java/com/simibubi/create/content/kinetics/chainConveyor/ChainConveyorRenderer.java @@ -64,8 +64,8 @@ public class ChainConveyorRenderer extends KineticBlockEntityRenderer, IWrenchable { + implements ProperWaterloggedBlock, IBE, IWrenchable, ISpecialBlockItemRequirement { public static final BooleanProperty POWERED = BlockStateProperties.POWERED; @@ -318,19 +321,9 @@ public class FactoryPanelBlock extends FaceAttachedHorizontalDirectionalBlock @Override public void onRemove(BlockState pState, Level pLevel, BlockPos pPos, BlockState pNewState, boolean pIsMoving) { - boolean blockChanged = !pState.is(pNewState.getBlock()); - if (!pIsMoving && blockChanged) - if (pState.getValue(POWERED)) - updateNeighbours(pState, pLevel, pPos); - IBE.onRemove(pState, pLevel, pPos, pNewState); } - public static void updateNeighbours(BlockState pState, Level pLevel, BlockPos pPos) { - pLevel.updateNeighborsAt(pPos, pState.getBlock()); - pLevel.updateNeighborsAt(pPos.relative(getConnectedDirection(pState).getOpposite()), pState.getBlock()); - } - public PanelSlot getTargetedSlot(BlockPos pos, BlockState blockState, Vec3 clickLocation) { double bestDistance = Double.MAX_VALUE; PanelSlot bestSlot = PanelSlot.BOTTOM_LEFT; @@ -378,4 +371,9 @@ public class FactoryPanelBlock extends FaceAttachedHorizontalDirectionalBlock return (face == AttachFace.CEILING ? Mth.PI : 0) + AngleHelper.rad(AngleHelper.horizontalAngle(facing)); } + @Override + public ItemRequirement getRequiredItems(BlockState state, BlockEntity blockEntity) { + return ItemRequirement.NONE; + } + } diff --git a/src/main/java/com/simibubi/create/content/logistics/factoryBoard/FactoryPanelBlockEntity.java b/src/main/java/com/simibubi/create/content/logistics/factoryBoard/FactoryPanelBlockEntity.java index 70829ea56b..22f0acd988 100644 --- a/src/main/java/com/simibubi/create/content/logistics/factoryBoard/FactoryPanelBlockEntity.java +++ b/src/main/java/com/simibubi/create/content/logistics/factoryBoard/FactoryPanelBlockEntity.java @@ -99,6 +99,14 @@ public class FactoryPanelBlockEntity extends SmartBlockEntity { result++; return result; } + + @Override + public void remove() { + for (FactoryPanelBehaviour panelBehaviour : panels.values()) + if (panelBehaviour.isActive()) + panelBehaviour.disconnectAll(); + super.remove(); + } @Override public void destroy() { diff --git a/src/main/java/com/simibubi/create/content/logistics/filter/PackageFilterScreen.java b/src/main/java/com/simibubi/create/content/logistics/filter/PackageFilterScreen.java index f36871d26b..e1defbc972 100644 --- a/src/main/java/com/simibubi/create/content/logistics/filter/PackageFilterScreen.java +++ b/src/main/java/com/simibubi/create/content/logistics/filter/PackageFilterScreen.java @@ -45,7 +45,7 @@ public class PackageFilterScreen extends AbstractFilterScreen int x = leftPos; int y = topPos; - addressBox = new AddressEditBox(this, this.font, x + 44, y + 28, 140, 9, false); + addressBox = new AddressEditBox(this, this.font, x + 44, y + 28, 129, 9, false); addressBox.setTextColor(0xffffff); addressBox.setValue(menu.address); addressBox.setResponder(this::onAddressEdited); diff --git a/src/main/java/com/simibubi/create/content/logistics/packagePort/PackagePortBlockEntity.java b/src/main/java/com/simibubi/create/content/logistics/packagePort/PackagePortBlockEntity.java index 90e66251db..696f79d7a7 100644 --- a/src/main/java/com/simibubi/create/content/logistics/packagePort/PackagePortBlockEntity.java +++ b/src/main/java/com/simibubi/create/content/logistics/packagePort/PackagePortBlockEntity.java @@ -45,7 +45,7 @@ public abstract class PackagePortBlockEntity extends SmartBlockEntity implements public SmartInventory inventory; protected AnimatedContainerBehaviour openTracker; - + protected LazyOptional itemHandler; public PackagePortBlockEntity(BlockEntityType type, BlockPos pos, BlockState state) { @@ -203,7 +203,7 @@ public abstract class PackagePortBlockEntity extends SmartBlockEntity implements public AbstractContainerMenu createMenu(int pContainerId, Inventory pPlayerInventory, Player pPlayer) { return PackagePortMenu.create(pContainerId, pPlayerInventory, this); } - + public int getComparatorOutput() { return ItemHandlerHelper.calcRedstoneFromInventory(inventory); } diff --git a/src/main/java/com/simibubi/create/content/logistics/packagerLink/LogisticallyLinkedBehaviour.java b/src/main/java/com/simibubi/create/content/logistics/packagerLink/LogisticallyLinkedBehaviour.java index ddf40f7310..dbb4ba1699 100644 --- a/src/main/java/com/simibubi/create/content/logistics/packagerLink/LogisticallyLinkedBehaviour.java +++ b/src/main/java/com/simibubi/create/content/logistics/packagerLink/LogisticallyLinkedBehaviour.java @@ -213,7 +213,12 @@ public class LogisticallyLinkedBehaviour extends BlockEntityBehaviour { public boolean isSafeNBT() { return true; } - + + @Override + public void writeSafe(CompoundTag tag) { + tag.putUUID("Freq", freqId); + } + @Override public void write(CompoundTag tag, boolean clientPacket) { super.write(tag, clientPacket); diff --git a/src/main/java/com/simibubi/create/content/logistics/redstoneRequester/RedstoneRequesterBlock.java b/src/main/java/com/simibubi/create/content/logistics/redstoneRequester/RedstoneRequesterBlock.java index 41a628633a..1f261e2aa7 100644 --- a/src/main/java/com/simibubi/create/content/logistics/redstoneRequester/RedstoneRequesterBlock.java +++ b/src/main/java/com/simibubi/create/content/logistics/redstoneRequester/RedstoneRequesterBlock.java @@ -16,6 +16,7 @@ import net.minecraft.ChatFormatting; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.Direction.Axis; +import net.minecraft.core.Direction.AxisDirection; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.Tag; import net.minecraft.network.chat.Component; @@ -31,6 +32,7 @@ import net.minecraft.world.level.BlockGetter; import net.minecraft.world.level.Level; import net.minecraft.world.level.SignalGetter; import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.Rotation; import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.properties.BlockStateProperties; @@ -176,4 +178,10 @@ public class RedstoneRequesterBlock extends Block implements IBE= inputX && mouseX < inputX + 16 && mouseY >= inputY && mouseY < inputY + 16) { ItemStack itemStack = menu.ghostInventory.getStackInSlot(i); if (itemStack.isEmpty()) @@ -191,6 +194,15 @@ public class RedstoneRequesterScreen extends AbstractSimiContainerScreen getTooltipFromContainerItem(ItemStack pStack) { List tooltip = super.getTooltipFromContainerItem(pStack); diff --git a/src/main/java/com/simibubi/create/content/logistics/tableCloth/TableClothBlockEntity.java b/src/main/java/com/simibubi/create/content/logistics/tableCloth/TableClothBlockEntity.java index 052306c136..aae1faa736 100644 --- a/src/main/java/com/simibubi/create/content/logistics/tableCloth/TableClothBlockEntity.java +++ b/src/main/java/com/simibubi/create/content/logistics/tableCloth/TableClothBlockEntity.java @@ -301,11 +301,6 @@ public class TableClothBlockEntity extends SmartBlockEntity { owner = tag.contains("OwnerUUID") ? tag.getUUID("OwnerUUID") : null; facing = Direction.from2DDataValue(Mth.positiveModulo(tag.getInt("Facing"), 4)); } -// -// @Override -// protected AABB createRenderBoundingBox() { -// return new AABB(worldPosition).inflate(1); -// } @Override public void destroy() { diff --git a/src/main/java/com/simibubi/create/content/logistics/tableCloth/TableClothFilteringBehaviour.java b/src/main/java/com/simibubi/create/content/logistics/tableCloth/TableClothFilteringBehaviour.java index bfbd5495fd..7ab0815ea6 100644 --- a/src/main/java/com/simibubi/create/content/logistics/tableCloth/TableClothFilteringBehaviour.java +++ b/src/main/java/com/simibubi/create/content/logistics/tableCloth/TableClothFilteringBehaviour.java @@ -41,6 +41,11 @@ public class TableClothFilteringBehaviour extends FilteringBehaviour { return dbe().owner == null || player.getUUID() .equals(dbe().owner); } + + @Override + public boolean isSafeNBT() { + return false; + } @Override public MutableComponent getLabel() { diff --git a/src/main/java/com/simibubi/create/foundation/blockEntity/SmartBlockEntity.java b/src/main/java/com/simibubi/create/foundation/blockEntity/SmartBlockEntity.java index a6b130156a..c41ee270cd 100644 --- a/src/main/java/com/simibubi/create/foundation/blockEntity/SmartBlockEntity.java +++ b/src/main/java/com/simibubi/create/foundation/blockEntity/SmartBlockEntity.java @@ -98,7 +98,7 @@ public abstract class SmartBlockEntity extends CachedRenderBBBlockEntity super.saveAdditional(tag); forEachBehaviour(tb -> { if (tb.isSafeNBT()) - tb.write(tag, false); + tb.writeSafe(tag); }); } diff --git a/src/main/java/com/simibubi/create/foundation/blockEntity/behaviour/BlockEntityBehaviour.java b/src/main/java/com/simibubi/create/foundation/blockEntity/behaviour/BlockEntityBehaviour.java index d52125dea1..a15e57aef9 100644 --- a/src/main/java/com/simibubi/create/foundation/blockEntity/behaviour/BlockEntityBehaviour.java +++ b/src/main/java/com/simibubi/create/foundation/blockEntity/behaviour/BlockEntityBehaviour.java @@ -44,6 +44,13 @@ public abstract class BlockEntityBehaviour { public void write(CompoundTag nbt, boolean clientPacket) { } + + /** + * Called when isSafeNBT == true. Defaults to write() + */ + public void writeSafe(CompoundTag nbt) { + write(nbt, false); + } public boolean isSafeNBT() { return false; diff --git a/src/main/java/com/simibubi/create/foundation/gui/menu/GhostItemMenu.java b/src/main/java/com/simibubi/create/foundation/gui/menu/GhostItemMenu.java index b7d619cb82..a2cef80cf9 100644 --- a/src/main/java/com/simibubi/create/foundation/gui/menu/GhostItemMenu.java +++ b/src/main/java/com/simibubi/create/foundation/gui/menu/GhostItemMenu.java @@ -81,6 +81,11 @@ public abstract class GhostItemMenu extends MenuBase implements IClearable ghostInventory.setStackInSlot(slot, insert); getSlot(slotId).setChanged(); } + + @Override + protected boolean moveItemStackTo(ItemStack pStack, int pStartIndex, int pEndIndex, boolean pReverseDirection) { + return false; + } @Override public ItemStack quickMoveStack(Player playerIn, int index) { diff --git a/src/main/java/com/simibubi/create/foundation/utility/BlockHelper.java b/src/main/java/com/simibubi/create/foundation/utility/BlockHelper.java index 95110014ab..637ec761da 100644 --- a/src/main/java/com/simibubi/create/foundation/utility/BlockHelper.java +++ b/src/main/java/com/simibubi/create/foundation/utility/BlockHelper.java @@ -1,6 +1,5 @@ package com.simibubi.create.foundation.utility; -import java.util.function.BiConsumer; import java.util.function.Consumer; import javax.annotation.Nullable; @@ -16,7 +15,6 @@ import com.simibubi.create.content.processing.burner.BlazeBurnerBlock; import com.simibubi.create.content.processing.burner.BlazeBurnerBlock.HeatLevel; import com.simibubi.create.foundation.blockEntity.IMergeableBE; import com.simibubi.create.foundation.blockEntity.IMultiBlockEntityContainer; - import com.simibubi.create.impl.schematic.nbt.SchematicSafeNBTRegistryImpl; import net.createmod.catnip.utility.NBTProcessors; diff --git a/src/main/resources/assets/create/models/block/contraption_controls/block.json b/src/main/resources/assets/create/models/block/contraption_controls/block.json index e6fb5d0d95..6574460079 100644 --- a/src/main/resources/assets/create/models/block/contraption_controls/block.json +++ b/src/main/resources/assets/create/models/block/contraption_controls/block.json @@ -11,7 +11,7 @@ "to": [16, 16, 16], "faces": { "north": {"uv": [0, 9, 1, 16], "texture": "#4"}, - "east": {"uv": [13, 0, 8, 7], "texture": "#4"}, + "east": {"uv": [16, 0, 11, 7], "texture": "#4"}, "south": {"uv": [7, 0, 8, 7], "texture": "#4"}, "west": {"uv": [16, 9, 11, 16], "texture": "#4"}, "up": {"uv": [0, 0, 1, 5], "rotation": 180, "texture": "#1_7"}, @@ -35,7 +35,7 @@ "north": {"uv": [7, 9, 8, 16], "texture": "#4"}, "east": {"uv": [11, 9, 16, 16], "texture": "#4"}, "south": {"uv": [0, 0, 1, 7], "texture": "#4"}, - "west": {"uv": [8, 0, 13, 7], "texture": "#4"}, + "west": {"uv": [11, 0, 16, 7], "texture": "#4"}, "up": {"uv": [7, 0, 8, 5], "rotation": 180, "texture": "#1_7"}, "down": {"uv": [7, 11, 8, 16], "rotation": 180, "texture": "#1_7"} } @@ -67,15 +67,16 @@ } }, { - "from": [0, 0, 0], + "from": [0, 0, 4], "to": [16, 2, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 4]}, "faces": { - "north": {"uv": [0, 0, 16, 2], "texture": "#particle"}, - "east": {"uv": [0, 0, 16, 2], "texture": "#particle"}, - "south": {"uv": [0, 0, 16, 2], "texture": "#particle"}, - "west": {"uv": [0, 0, 16, 2], "texture": "#particle"}, - "up": {"uv": [0, 0, 16, 16], "texture": "#particle"}, - "down": {"uv": [0, 0, 16, 16], "texture": "#particle"} + "north": {"uv": [0, 7, 8, 8], "texture": "#4"}, + "east": {"uv": [16, 7, 10, 8], "texture": "#4"}, + "south": {"uv": [0, 7, 8, 8], "texture": "#4"}, + "west": {"uv": [10, 7, 16, 8], "texture": "#4"}, + "up": {"uv": [8, 10, 16, 16], "texture": "#1_7"}, + "down": {"uv": [16, 16, 8, 10], "texture": "#1_7"} } } ], diff --git a/src/main/resources/assets/create/models/block/contraption_controls/item.json b/src/main/resources/assets/create/models/block/contraption_controls/item.json index cd7f51f565..b2b0603903 100644 --- a/src/main/resources/assets/create/models/block/contraption_controls/item.json +++ b/src/main/resources/assets/create/models/block/contraption_controls/item.json @@ -12,7 +12,7 @@ "rotation": {"angle": 0, "axis": "y", "origin": [0, 2, 0]}, "faces": { "north": {"uv": [0, 9, 1, 16], "texture": "#4"}, - "east": {"uv": [13, 0, 8, 7], "texture": "#4"}, + "east": {"uv": [16, 0, 11, 7], "texture": "#4"}, "south": {"uv": [7, 0, 8, 7], "texture": "#4"}, "west": {"uv": [16, 9, 11, 16], "texture": "#4"}, "up": {"uv": [0, 0, 1, 5], "rotation": 180, "texture": "#1_7"}, @@ -37,7 +37,7 @@ "north": {"uv": [7, 9, 8, 16], "texture": "#4"}, "east": {"uv": [11, 9, 16, 16], "texture": "#4"}, "south": {"uv": [0, 0, 1, 7], "texture": "#4"}, - "west": {"uv": [8, 0, 13, 7], "texture": "#4"}, + "west": {"uv": [11, 0, 16, 7], "texture": "#4"}, "up": {"uv": [7, 0, 8, 5], "rotation": 180, "texture": "#1_7"}, "down": {"uv": [7, 11, 8, 16], "rotation": 180, "texture": "#1_7"} } @@ -90,15 +90,16 @@ } }, { - "from": [0, 0, 0], + "from": [0, 0, 4], "to": [16, 2, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 4]}, "faces": { - "north": {"uv": [0, 0, 16, 2], "texture": "#particle"}, - "east": {"uv": [0, 0, 16, 2], "texture": "#particle"}, - "south": {"uv": [0, 0, 16, 2], "texture": "#particle"}, - "west": {"uv": [0, 0, 16, 2], "texture": "#particle"}, - "up": {"uv": [0, 0, 16, 16], "texture": "#particle"}, - "down": {"uv": [0, 0, 16, 16], "texture": "#particle"} + "north": {"uv": [0, 7, 8, 8], "texture": "#4"}, + "east": {"uv": [16, 7, 10, 8], "texture": "#4"}, + "south": {"uv": [0, 7, 8, 8], "texture": "#4"}, + "west": {"uv": [10, 7, 16, 8], "texture": "#4"}, + "up": {"uv": [8, 10, 16, 16], "texture": "#1_7"}, + "down": {"uv": [16, 16, 8, 10], "texture": "#1_7"} } } ], diff --git a/src/main/resources/assets/create/models/block/controls/block_closed.json b/src/main/resources/assets/create/models/block/controls/block_closed.json index de8d33a474..8b42b4eefd 100644 --- a/src/main/resources/assets/create/models/block/controls/block_closed.json +++ b/src/main/resources/assets/create/models/block/controls/block_closed.json @@ -1,7 +1,6 @@ { "credit": "Made with Blockbench", "textures": { - "3": "create:block/train_controller_base", "4": "create:block/controls_frame", "1_7": "create:block/controls", "particle": "create:block/bogey/particle" @@ -13,7 +12,7 @@ "rotation": {"angle": 0, "axis": "y", "origin": [0, 2, 0]}, "faces": { "north": {"uv": [0, 9, 1, 16], "texture": "#4"}, - "east": {"uv": [13, 0, 8, 7], "texture": "#4"}, + "east": {"uv": [16, 0, 11, 7], "texture": "#4"}, "south": {"uv": [7, 0, 8, 7], "texture": "#4"}, "west": {"uv": [16, 9, 11, 16], "texture": "#4"}, "up": {"uv": [0, 0, 1, 5], "rotation": 180, "texture": "#1_7"}, @@ -38,7 +37,7 @@ "north": {"uv": [7, 9, 8, 16], "texture": "#4"}, "east": {"uv": [11, 9, 16, 16], "texture": "#4"}, "south": {"uv": [0, 0, 1, 7], "texture": "#4"}, - "west": {"uv": [8, 0, 13, 7], "texture": "#4"}, + "west": {"uv": [11, 0, 16, 7], "texture": "#4"}, "up": {"uv": [7, 0, 8, 5], "rotation": 180, "texture": "#1_7"}, "down": {"uv": [7, 11, 8, 16], "rotation": 180, "texture": "#1_7"} } @@ -64,15 +63,16 @@ } }, { - "from": [0, 0, 0], + "from": [0, 0, 4], "to": [16, 2, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 4]}, "faces": { - "north": {"uv": [0, 0, 16, 2], "texture": "#3"}, - "east": {"uv": [0, 0, 16, 2], "texture": "#3"}, - "south": {"uv": [0, 0, 16, 2], "texture": "#3"}, - "west": {"uv": [0, 0, 16, 2], "texture": "#3"}, - "up": {"uv": [0, 0, 16, 16], "texture": "#3"}, - "down": {"uv": [0, 0, 16, 16], "texture": "#3"} + "north": {"uv": [0, 7, 8, 8], "texture": "#4"}, + "east": {"uv": [16, 7, 10, 8], "texture": "#4"}, + "south": {"uv": [0, 7, 8, 8], "texture": "#4"}, + "west": {"uv": [10, 7, 16, 8], "texture": "#4"}, + "up": {"uv": [8, 10, 16, 16], "texture": "#1_7"}, + "down": {"uv": [8, 16, 16, 10], "texture": "#1_7"} } } ], diff --git a/src/main/resources/assets/create/models/block/controls/block_open.json b/src/main/resources/assets/create/models/block/controls/block_open.json index cf487782cb..8bdfc618e2 100644 --- a/src/main/resources/assets/create/models/block/controls/block_open.json +++ b/src/main/resources/assets/create/models/block/controls/block_open.json @@ -1,7 +1,6 @@ { "credit": "Made with Blockbench", "textures": { - "3": "create:block/train_controller_base", "4": "create:block/controls_frame", "1_7": "create:block/controls", "particle": "create:block/bogey/particle" @@ -13,7 +12,7 @@ "rotation": {"angle": 0, "axis": "y", "origin": [0, 2, 0]}, "faces": { "north": {"uv": [0, 9, 1, 16], "texture": "#4"}, - "east": {"uv": [13, 0, 8, 7], "texture": "#4"}, + "east": {"uv": [16, 0, 11, 7], "texture": "#4"}, "south": {"uv": [7, 0, 8, 7], "texture": "#4"}, "west": {"uv": [16, 9, 11, 16], "texture": "#4"}, "up": {"uv": [0, 0, 1, 5], "rotation": 180, "texture": "#1_7"}, @@ -38,7 +37,7 @@ "north": {"uv": [7, 9, 8, 16], "texture": "#4"}, "east": {"uv": [11, 9, 16, 16], "texture": "#4"}, "south": {"uv": [0, 0, 1, 7], "texture": "#4"}, - "west": {"uv": [8, 0, 13, 7], "texture": "#4"}, + "west": {"uv": [11, 0, 16, 7], "texture": "#4"}, "up": {"uv": [7, 0, 8, 5], "rotation": 180, "texture": "#1_7"}, "down": {"uv": [7, 11, 8, 16], "rotation": 180, "texture": "#1_7"} } @@ -64,15 +63,16 @@ } }, { - "from": [0, 0, 0], + "from": [0, 0, 4], "to": [16, 2, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 4]}, "faces": { - "north": {"uv": [0, 0, 16, 2], "texture": "#3"}, - "east": {"uv": [0, 0, 16, 2], "texture": "#3"}, - "south": {"uv": [0, 0, 16, 2], "texture": "#3"}, - "west": {"uv": [0, 0, 16, 2], "texture": "#3"}, - "up": {"uv": [0, 0, 16, 16], "texture": "#3"}, - "down": {"uv": [0, 0, 16, 16], "texture": "#3"} + "north": {"uv": [0, 7, 8, 8], "texture": "#4"}, + "east": {"uv": [16, 7, 10, 8], "texture": "#4"}, + "south": {"uv": [0, 7, 8, 8], "texture": "#4"}, + "west": {"uv": [10, 7, 16, 8], "texture": "#4"}, + "up": {"uv": [8, 10, 16, 16], "texture": "#1_7"}, + "down": {"uv": [8, 16, 16, 10], "texture": "#1_7"} } } ], diff --git a/src/main/resources/assets/create/models/block/controls/block_virtual.json b/src/main/resources/assets/create/models/block/controls/block_virtual.json index 6e2b4c4701..7bda285b6a 100644 --- a/src/main/resources/assets/create/models/block/controls/block_virtual.json +++ b/src/main/resources/assets/create/models/block/controls/block_virtual.json @@ -1,7 +1,6 @@ { "credit": "Made with Blockbench", "textures": { - "3": "create:block/train_controller_base", "4": "create:block/controls_frame", "1_7": "create:block/controls", "particle": "create:block/bogey/particle" @@ -47,7 +46,7 @@ "rotation": {"angle": 0, "axis": "y", "origin": [0, 2, 0]}, "faces": { "north": {"uv": [0, 9, 1, 16], "texture": "#4"}, - "east": {"uv": [13, 0, 8, 7], "texture": "#4"}, + "east": {"uv": [16, 0, 11, 7], "texture": "#4"}, "south": {"uv": [7, 0, 8, 7], "texture": "#4"}, "west": {"uv": [16, 9, 11, 16], "texture": "#4"}, "up": {"uv": [0, 0, 1, 5], "rotation": 180, "texture": "#1_7"}, @@ -72,7 +71,7 @@ "north": {"uv": [7, 9, 8, 16], "texture": "#4"}, "east": {"uv": [11, 9, 16, 16], "texture": "#4"}, "south": {"uv": [0, 0, 1, 7], "texture": "#4"}, - "west": {"uv": [8, 0, 13, 7], "texture": "#4"}, + "west": {"uv": [11, 0, 16, 7], "texture": "#4"}, "up": {"uv": [7, 0, 8, 5], "rotation": 180, "texture": "#1_7"}, "down": {"uv": [7, 11, 8, 16], "rotation": 180, "texture": "#1_7"} } @@ -98,15 +97,16 @@ } }, { - "from": [0, 0, 0], + "from": [0, 0, 4], "to": [16, 2, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 4]}, "faces": { - "north": {"uv": [0, 0, 16, 2], "texture": "#3"}, - "east": {"uv": [0, 0, 16, 2], "texture": "#3"}, - "south": {"uv": [0, 0, 16, 2], "texture": "#3"}, - "west": {"uv": [0, 0, 16, 2], "texture": "#3"}, - "up": {"uv": [0, 0, 16, 16], "texture": "#3"}, - "down": {"uv": [0, 0, 16, 16], "texture": "#3"} + "north": {"uv": [0, 7, 8, 8], "texture": "#4"}, + "east": {"uv": [16, 7, 10, 8], "texture": "#4"}, + "south": {"uv": [0, 7, 8, 8], "texture": "#4"}, + "west": {"uv": [10, 7, 16, 8], "texture": "#4"}, + "up": {"uv": [8, 10, 16, 16], "texture": "#1_7"}, + "down": {"uv": [8, 16, 16, 10], "texture": "#1_7"} } } ] diff --git a/src/main/resources/assets/create/models/block/controls/item.json b/src/main/resources/assets/create/models/block/controls/item.json index 70eebc097e..5e84fb86a4 100644 --- a/src/main/resources/assets/create/models/block/controls/item.json +++ b/src/main/resources/assets/create/models/block/controls/item.json @@ -47,7 +47,7 @@ "rotation": {"angle": 0, "axis": "y", "origin": [0, 2, 0]}, "faces": { "north": {"uv": [0, 9, 1, 16], "texture": "#4"}, - "east": {"uv": [13, 0, 8, 7], "texture": "#4"}, + "east": {"uv": [16, 0, 11, 7], "texture": "#4"}, "south": {"uv": [7, 0, 8, 7], "texture": "#4"}, "west": {"uv": [16, 9, 11, 16], "texture": "#4"}, "up": {"uv": [0, 0, 1, 5], "rotation": 180, "texture": "#1_7"}, @@ -72,7 +72,7 @@ "north": {"uv": [7, 9, 8, 16], "texture": "#4"}, "east": {"uv": [11, 9, 16, 16], "texture": "#4"}, "south": {"uv": [0, 0, 1, 7], "texture": "#4"}, - "west": {"uv": [8, 0, 13, 7], "texture": "#4"}, + "west": {"uv": [11, 0, 16, 7], "texture": "#4"}, "up": {"uv": [7, 0, 8, 5], "rotation": 180, "texture": "#1_7"}, "down": {"uv": [7, 11, 8, 16], "rotation": 180, "texture": "#1_7"} } @@ -98,15 +98,16 @@ } }, { - "from": [0, 0, 0], + "from": [0, 0, 4], "to": [16, 2, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 4]}, "faces": { "north": {"uv": [0, 0, 16, 2], "texture": "#3"}, - "east": {"uv": [0, 0, 16, 2], "texture": "#3"}, + "east": {"uv": [16, 7, 10, 8], "texture": "#4"}, "south": {"uv": [0, 0, 16, 2], "texture": "#3"}, - "west": {"uv": [0, 0, 16, 2], "texture": "#3"}, - "up": {"uv": [0, 0, 16, 16], "rotation": 90, "texture": "#3"}, - "down": {"uv": [0, 0, 16, 16], "rotation": 90, "texture": "#3"} + "west": {"uv": [10, 7, 16, 8], "texture": "#4"}, + "up": {"uv": [8, 10, 16, 16], "texture": "#1_7"}, + "down": {"uv": [16, 16, 8, 10], "texture": "#1_7"} } } ], diff --git a/src/main/resources/assets/create/models/block/steam_whistle/block_large_floor.json b/src/main/resources/assets/create/models/block/steam_whistle/block_large_floor.json index 554ce39a23..94080c1d1c 100644 --- a/src/main/resources/assets/create/models/block/steam_whistle/block_large_floor.json +++ b/src/main/resources/assets/create/models/block/steam_whistle/block_large_floor.json @@ -17,7 +17,7 @@ "south": {"uv": [1, 13, 15, 16], "texture": "#2"}, "west": {"uv": [1, 13, 15, 16], "texture": "#2"}, "up": {"uv": [1, 0, 15, 14], "texture": "#2"}, - "down": {"uv": [8.5, 8.5, 15.5, 15.5], "texture": "#1"} + "down": {"uv": [0.5, 8.5, 7.5, 15.5], "texture": "#1"} } }, { diff --git a/src/main/resources/assets/create/models/block/steam_whistle/block_large_wall.json b/src/main/resources/assets/create/models/block/steam_whistle/block_large_wall.json index 140012a727..a037884ba2 100644 --- a/src/main/resources/assets/create/models/block/steam_whistle/block_large_wall.json +++ b/src/main/resources/assets/create/models/block/steam_whistle/block_large_wall.json @@ -15,7 +15,7 @@ "faces": { "north": {"uv": [1, 0, 15, 14], "rotation": 180, "texture": "#2"}, "east": {"uv": [1, 13, 15, 16], "rotation": 90, "texture": "#2"}, - "south": {"uv": [8.5, 8.5, 15.5, 15.5], "texture": "#1"}, + "south": {"uv": [0.5, 8.5, 7.5, 15.5], "texture": "#1"}, "west": {"uv": [1, 13, 15, 16], "rotation": 270, "texture": "#2"}, "up": {"uv": [1, 13, 15, 16], "texture": "#2"}, "down": {"uv": [1, 13, 15, 16], "rotation": 180, "texture": "#2"} diff --git a/src/main/resources/assets/create/models/block/steam_whistle/block_medium_floor.json b/src/main/resources/assets/create/models/block/steam_whistle/block_medium_floor.json index 720041aa91..b23bce0e4e 100644 --- a/src/main/resources/assets/create/models/block/steam_whistle/block_medium_floor.json +++ b/src/main/resources/assets/create/models/block/steam_whistle/block_medium_floor.json @@ -17,7 +17,7 @@ "south": {"uv": [1, 13, 15, 16], "texture": "#2"}, "west": {"uv": [1, 13, 15, 16], "texture": "#2"}, "up": {"uv": [1, 0, 15, 14], "texture": "#2"}, - "down": {"uv": [8.5, 8.5, 15.5, 15.5], "texture": "#1"} + "down": {"uv": [0.5, 8.5, 7.5, 15.5], "texture": "#1"} } }, { diff --git a/src/main/resources/assets/create/models/block/steam_whistle/block_medium_wall.json b/src/main/resources/assets/create/models/block/steam_whistle/block_medium_wall.json index 5406f072f8..17468966d7 100644 --- a/src/main/resources/assets/create/models/block/steam_whistle/block_medium_wall.json +++ b/src/main/resources/assets/create/models/block/steam_whistle/block_medium_wall.json @@ -15,7 +15,7 @@ "faces": { "north": {"uv": [1, 0, 15, 14], "rotation": 180, "texture": "#2"}, "east": {"uv": [1, 13, 15, 16], "rotation": 90, "texture": "#2"}, - "south": {"uv": [8.5, 8.5, 15.5, 15.5], "texture": "#1"}, + "south": {"uv": [0.5, 8.5, 7.5, 15.5], "texture": "#1"}, "west": {"uv": [1, 13, 15, 16], "rotation": 270, "texture": "#2"}, "up": {"uv": [1, 13, 15, 16], "texture": "#2"}, "down": {"uv": [1, 13, 15, 16], "rotation": 180, "texture": "#2"} diff --git a/src/main/resources/assets/create/models/block/steam_whistle/block_small_floor.json b/src/main/resources/assets/create/models/block/steam_whistle/block_small_floor.json index 89a37f9c64..99205b611e 100644 --- a/src/main/resources/assets/create/models/block/steam_whistle/block_small_floor.json +++ b/src/main/resources/assets/create/models/block/steam_whistle/block_small_floor.json @@ -17,7 +17,7 @@ "south": {"uv": [1, 13, 15, 16], "texture": "#2"}, "west": {"uv": [1, 13, 15, 16], "texture": "#2"}, "up": {"uv": [1, 0, 15, 14], "texture": "#2"}, - "down": {"uv": [8.5, 8.5, 15.5, 15.5], "texture": "#1"} + "down": {"uv": [0.5, 8.5, 7.5, 15.5], "texture": "#1"} } }, { diff --git a/src/main/resources/assets/create/models/block/steam_whistle/block_small_wall.json b/src/main/resources/assets/create/models/block/steam_whistle/block_small_wall.json index 6540fb7255..649e7196a1 100644 --- a/src/main/resources/assets/create/models/block/steam_whistle/block_small_wall.json +++ b/src/main/resources/assets/create/models/block/steam_whistle/block_small_wall.json @@ -15,7 +15,7 @@ "faces": { "north": {"uv": [1, 0, 15, 14], "rotation": 180, "texture": "#2"}, "east": {"uv": [1, 13, 15, 16], "rotation": 90, "texture": "#2"}, - "south": {"uv": [8.5, 8.5, 15.5, 15.5], "texture": "#1"}, + "south": {"uv": [0.5, 8.5, 7.5, 15.5], "texture": "#1"}, "west": {"uv": [1, 13, 15, 16], "rotation": 270, "texture": "#2"}, "up": {"uv": [1, 13, 15, 16], "texture": "#2"}, "down": {"uv": [1, 13, 15, 16], "rotation": 180, "texture": "#2"} diff --git a/src/main/resources/assets/create/models/block/steam_whistle/item.json b/src/main/resources/assets/create/models/block/steam_whistle/item.json index 7e9e29a7c8..8be2aa4f0d 100644 --- a/src/main/resources/assets/create/models/block/steam_whistle/item.json +++ b/src/main/resources/assets/create/models/block/steam_whistle/item.json @@ -17,7 +17,7 @@ "south": {"uv": [1, 13, 15, 16], "texture": "#2"}, "west": {"uv": [1, 13, 15, 16], "texture": "#2"}, "up": {"uv": [1, 0, 15, 14], "texture": "#2"}, - "down": {"uv": [8.5, 8.5, 15.5, 15.5], "texture": "#1"} + "down": {"uv": [0.5, 8.5, 7.5, 15.5], "texture": "#1"} } }, { diff --git a/src/main/resources/assets/create/models/block/table_cloth/price_tag_side.json b/src/main/resources/assets/create/models/block/table_cloth/price_tag_side.json index ea0c459ca7..92023a83f5 100644 --- a/src/main/resources/assets/create/models/block/table_cloth/price_tag_side.json +++ b/src/main/resources/assets/create/models/block/table_cloth/price_tag_side.json @@ -8,11 +8,11 @@ "elements": [ { "from": [1, -5.75, -1.25], - "to": [7, 1.25, -0.25], + "to": [7, 1.25, 0.75], "rotation": {"angle": 0, "axis": "y", "origin": [5, -0.75, -2.25]}, "faces": { - "north": {"uv": [0, 0, 6, 7], "texture": "#1"}, - "up": {"uv": [0, 0, 6, 1], "texture": "#1"} + "north": {"uv": [0, 1, 6, 8], "texture": "#1"}, + "up": {"uv": [0, 0, 6, 2], "texture": "#1"} } } ], diff --git a/src/main/resources/assets/create/models/block/table_cloth/price_tag_top.json b/src/main/resources/assets/create/models/block/table_cloth/price_tag_top.json index edbfa3dd42..4a1b50513d 100644 --- a/src/main/resources/assets/create/models/block/table_cloth/price_tag_top.json +++ b/src/main/resources/assets/create/models/block/table_cloth/price_tag_top.json @@ -11,8 +11,8 @@ "to": [11, 1.25, 4.75], "rotation": {"angle": 0, "axis": "y", "origin": [5, 0.25, -1.25]}, "faces": { - "north": {"uv": [7, 1, 13, 2], "texture": "#1"}, - "up": {"uv": [7, 1, 13, 7], "texture": "#1"} + "north": {"uv": [0, 1, 6, 2], "texture": "#1"}, + "up": {"uv": [0, 2, 6, 8], "texture": "#1"} } } ], diff --git a/src/main/resources/assets/create/textures/block/contraption_controls.png b/src/main/resources/assets/create/textures/block/contraption_controls.png index 626874b124..9c66ffd214 100644 Binary files a/src/main/resources/assets/create/textures/block/contraption_controls.png and b/src/main/resources/assets/create/textures/block/contraption_controls.png differ diff --git a/src/main/resources/assets/create/textures/block/contraption_controls_frame.png b/src/main/resources/assets/create/textures/block/contraption_controls_frame.png index 4065a9f9c0..a0d50f089e 100644 Binary files a/src/main/resources/assets/create/textures/block/contraption_controls_frame.png and b/src/main/resources/assets/create/textures/block/contraption_controls_frame.png differ diff --git a/src/main/resources/assets/create/textures/block/controls.png b/src/main/resources/assets/create/textures/block/controls.png index 0244791e92..bad2610ca6 100644 Binary files a/src/main/resources/assets/create/textures/block/controls.png and b/src/main/resources/assets/create/textures/block/controls.png differ diff --git a/src/main/resources/assets/create/textures/block/controls_frame.png b/src/main/resources/assets/create/textures/block/controls_frame.png index 671dcbc592..4268b75f70 100644 Binary files a/src/main/resources/assets/create/textures/block/controls_frame.png and b/src/main/resources/assets/create/textures/block/controls_frame.png differ diff --git a/src/main/resources/assets/create/textures/block/engine.png b/src/main/resources/assets/create/textures/block/engine.png index 3cf96c02ad..699602cee2 100644 Binary files a/src/main/resources/assets/create/textures/block/engine.png and b/src/main/resources/assets/create/textures/block/engine.png differ diff --git a/src/main/resources/assets/create/textures/block/pipes_connected.png b/src/main/resources/assets/create/textures/block/pipes_connected.png index 99f144c75a..6e85df9c90 100644 Binary files a/src/main/resources/assets/create/textures/block/pipes_connected.png and b/src/main/resources/assets/create/textures/block/pipes_connected.png differ diff --git a/src/main/resources/assets/create/textures/block/table_cloth/andesite.png b/src/main/resources/assets/create/textures/block/table_cloth/andesite.png index c41449947a..7cfb2da463 100644 Binary files a/src/main/resources/assets/create/textures/block/table_cloth/andesite.png and b/src/main/resources/assets/create/textures/block/table_cloth/andesite.png differ diff --git a/src/main/resources/assets/create/textures/block/table_cloth/brass.png b/src/main/resources/assets/create/textures/block/table_cloth/brass.png index 6758848756..098a492315 100644 Binary files a/src/main/resources/assets/create/textures/block/table_cloth/brass.png and b/src/main/resources/assets/create/textures/block/table_cloth/brass.png differ diff --git a/src/main/resources/assets/create/textures/block/table_cloth/copper.png b/src/main/resources/assets/create/textures/block/table_cloth/copper.png index 8fe48660ee..0d5012f171 100644 Binary files a/src/main/resources/assets/create/textures/block/table_cloth/copper.png and b/src/main/resources/assets/create/textures/block/table_cloth/copper.png differ diff --git a/src/main/resources/assets/create/textures/block/table_cloth/price_tag.png b/src/main/resources/assets/create/textures/block/table_cloth/price_tag.png index f32cfa0cff..6300c1482c 100644 Binary files a/src/main/resources/assets/create/textures/block/table_cloth/price_tag.png and b/src/main/resources/assets/create/textures/block/table_cloth/price_tag.png differ