diff --git a/src/generated/resources/.cache/cache b/src/generated/resources/.cache/cache index 09d057eca..9242273a8 100644 --- a/src/generated/resources/.cache/cache +++ b/src/generated/resources/.cache/cache @@ -1129,7 +1129,7 @@ d13df8a5920c5778d98081fb0e97f045e2fd46a2 assets/create/models/block/horizontal_f a5938ddd48109f067a19a90a0f9abab655c18821 assets/create/models/block/horizontal_framed_glass_pane_post.json 41645919ece236df5804a5a73ef682720194de34 assets/create/models/block/horizontal_framed_glass_pane_side.json 8bc0abaabdc62d0c27730dba7eb6da54607b7e96 assets/create/models/block/horizontal_framed_glass_pane_side_alt.json -07c1e1bcd87766cf324ac11ce1488856d1db86c3 assets/create/models/block/industrial_iron_block.json +cb425a5ba6d27004e071b407a2d262b702bba065 assets/create/models/block/industrial_iron_block.json 35253c91ed72c7c2ce981c384d334c1113851469 assets/create/models/block/jungle_window.json 65da656d412d973865f50ab7f02e278fe5398bea assets/create/models/block/jungle_window_pane_noside.json 9f4144df2e6b35c1fad04e594be5adb3b107bdb8 assets/create/models/block/jungle_window_pane_noside_alt.json diff --git a/src/generated/resources/assets/create/models/block/industrial_iron_block.json b/src/generated/resources/assets/create/models/block/industrial_iron_block.json index 555454819..6b62aa6ff 100644 --- a/src/generated/resources/assets/create/models/block/industrial_iron_block.json +++ b/src/generated/resources/assets/create/models/block/industrial_iron_block.json @@ -1,6 +1,7 @@ { - "parent": "minecraft:block/cube_all", + "parent": "minecraft:block/cube_column", "textures": { - "all": "create:block/industrial_iron_block" + "side": "create:block/industrial_iron_block", + "end": "create:block/industrial_iron_block_top" } } \ 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 16da50350..545277640 100644 --- a/src/main/java/com/simibubi/create/AllBlocks.java +++ b/src/main/java/com/simibubi/create/AllBlocks.java @@ -2238,7 +2238,9 @@ public class AllBlocks { .properties(p -> p.sound(SoundType.NETHERITE_BLOCK)) .properties(p -> p.requiresCorrectToolForDrops()) .transform(pickaxeOnly()) - .blockstate(simpleCubeAll("industrial_iron_block")) + .blockstate((c, p) -> p.simpleBlock(c.get(), p.models() + .cubeColumn(c.getName(), p.modLoc("block/industrial_iron_block"), + p.modLoc("block/industrial_iron_block_top")))) .tag(AllBlockTags.WRENCH_PICKUP.tag) .lang("Block of Industrial Iron") .recipe((c, p) -> p.stonecutting(DataIngredient.tag(Tags.Items.INGOTS_IRON), c::get, 2)) diff --git a/src/main/java/com/simibubi/create/AllShapes.java b/src/main/java/com/simibubi/create/AllShapes.java index eccd213e5..0df89e703 100644 --- a/src/main/java/com/simibubi/create/AllShapes.java +++ b/src/main/java/com/simibubi/create/AllShapes.java @@ -253,8 +253,8 @@ public class AllShapes { .build(), SPOUT = shape(1, 2, 1, 15, 14, 15).add(2, 0, 2, 14, 16, 14) .build(), - MILLSTONE = shape(0, 0, 0, 16, 6, 16).add(2, 6, 2, 14, 13, 14) - .add(3, 13, 3, 13, 16, 13) + MILLSTONE = shape(0, 0, 0, 16, 6, 16).add(2, 6, 2, 14, 12, 14) + .add(3, 12, 3, 13, 16, 13) .build(), CUCKOO_CLOCK = shape(1, 0, 1, 15, 19, 15).build(), GAUGE_SHAPE_UP = shape(1, 0, 0, 15, 2, 16).add(2, 2, 1, 14, 14, 15) diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/actors/RollerRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/components/actors/RollerRenderer.java index a2e56d578..3d051214c 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/actors/RollerRenderer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/actors/RollerRenderer.java @@ -64,9 +64,9 @@ public class RollerRenderer extends SmartBlockEntityRenderer if (context.contraption.stalled) speed = 0; - superBuffer.translate(Vec3.atLowerCornerOf(facing.getNormal()) - .scale(17 / 16f)) - .transform(matrices.getModel()); + superBuffer.transform(matrices.getModel()) + .translate(Vec3.atLowerCornerOf(facing.getNormal()) + .scale(17 / 16f)); HarvesterRenderer.transform(context.world, facing, superBuffer, speed, Vec3.ZERO); PoseStack viewProjection = matrices.getViewProjection(); diff --git a/src/main/java/com/simibubi/create/content/contraptions/fluids/actors/FluidDrainingBehaviour.java b/src/main/java/com/simibubi/create/content/contraptions/fluids/actors/FluidDrainingBehaviour.java index e69476af3..9de3aae43 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/fluids/actors/FluidDrainingBehaviour.java +++ b/src/main/java/com/simibubi/create/content/contraptions/fluids/actors/FluidDrainingBehaviour.java @@ -83,10 +83,21 @@ public class FluidDrainingBehaviour extends FluidManipulationBehaviour { if (validationFrontier.isEmpty() && !queue.isEmpty() && !simulate && revalidateIn == 0) revalidate(root); + if (infinite) { + blockEntity.award(AllAdvancements.HOSE_PULLEY); + if (FluidHelper.isLava(fluid)) + blockEntity.award(AllAdvancements.HOSE_PULLEY_LAVA); + + playEffect(world, root, fluid, true); + return true; + } + while (!queue.isEmpty()) { // Dont dequeue here, so we can decide not to dequeue a valid entry when // simulating - BlockPos currentPos = queue.first().pos(); + BlockPos currentPos = queue.first() + .pos(); + BlockState blockState = world.getBlockState(currentPos); BlockState emptied = blockState; Fluid fluid = Fluids.EMPTY; @@ -137,12 +148,6 @@ public class FluidDrainingBehaviour extends FluidManipulationBehaviour { playEffect(world, currentPos, fluid, true); blockEntity.award(AllAdvancements.HOSE_PULLEY); - if (infinite) { - if (FluidHelper.isLava(fluid)) - blockEntity.award(AllAdvancements.HOSE_PULLEY_LAVA); - return true; - } - if (!blockEntity.isVirtual()) world.setBlock(currentPos, emptied, 2 | 16); affectedArea = BBHelper.encapsulate(affectedArea, currentPos); @@ -273,20 +278,11 @@ public class FluidDrainingBehaviour extends FluidManipulationBehaviour { visited.clear(); } - Level world = getWorld(); int maxBlocks = maxBlocks(); if (visited.size() > maxBlocks && canDrainInfinitely(fluid) && !queue.isEmpty()) { infinite = true; - // Find first block with valid fluid - while (true) { - BlockPos first = queue.first().pos(); - if (canPullFluidsFrom(world.getBlockState(first), first) != FluidBlockType.SOURCE) { - queue.dequeue(); - continue; - } - break; - } - BlockPos firstValid = queue.first().pos(); + BlockPos firstValid = queue.first() + .pos(); frontier.clear(); visited.clear(); queue.clear(); diff --git a/src/main/java/com/simibubi/create/content/logistics/block/belts/tunnel/BrassTunnelBlockEntity.java b/src/main/java/com/simibubi/create/content/logistics/block/belts/tunnel/BrassTunnelBlockEntity.java index 819ded765..4795d42a4 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/belts/tunnel/BrassTunnelBlockEntity.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/belts/tunnel/BrassTunnelBlockEntity.java @@ -21,7 +21,6 @@ import com.simibubi.create.content.logistics.block.funnel.BeltFunnelBlock; import com.simibubi.create.content.logistics.block.funnel.BeltFunnelBlock.Shape; import com.simibubi.create.content.logistics.block.funnel.FunnelBlock; import com.simibubi.create.foundation.blockEntity.BlockEntityBehaviour; -import com.simibubi.create.foundation.blockEntity.behaviour.CenteredSideValueBoxTransform; import com.simibubi.create.foundation.blockEntity.behaviour.belt.DirectBeltInputBehaviour; import com.simibubi.create.foundation.blockEntity.behaviour.filtering.FilteringBehaviour; import com.simibubi.create.foundation.blockEntity.behaviour.filtering.SidedFilteringBehaviour; @@ -66,7 +65,7 @@ public class BrassTunnelBlockEntity extends BeltTunnelBlockEntity implements IHa ItemStack stackToDistribute; Direction stackEnteredFrom; - + float distributionProgress; int distributionDistanceLeft; int distributionDistanceRight; @@ -98,8 +97,9 @@ public class BrassTunnelBlockEntity extends BeltTunnelBlockEntity implements IHa public void addBehaviours(List behaviours) { super.addBehaviours(behaviours); behaviours.add(selectionMode = new ScrollOptionBehaviour<>(SelectionMode.class, - Lang.translateDirect("logistics.when_multiple_outputs_available"), this, - new CenteredSideValueBoxTransform((state, d) -> d == Direction.UP))); + Lang.translateDirect("logistics.when_multiple_outputs_available"), this, new BrassTunnelModeSlot())); + + selectionMode.onlyActiveWhen(this::hasDistributionBehaviour); // Propagate settings across connected tunnels selectionMode.withCallback(setting -> { @@ -159,7 +159,8 @@ public class BrassTunnelBlockEntity extends BeltTunnelBlockEntity implements IHa continue; distributionTargets.get(!tunnel.flapFilterEmpty(output)) .add(Pair.of(tunnel.worldPosition, output)); - int distance = tunnel.worldPosition.getX() + tunnel.worldPosition.getZ() - worldPosition.getX() - worldPosition.getZ(); + int distance = tunnel.worldPosition.getX() + tunnel.worldPosition.getZ() - worldPosition.getX() + - worldPosition.getZ(); if (distance < 0) distributionDistanceLeft = Math.max(distributionDistanceLeft, -distance); else @@ -527,7 +528,7 @@ public class BrassTunnelBlockEntity extends BeltTunnelBlockEntity implements IHa continue; if (!tunnelBE.sides.contains(direction)) continue; - + BlockPos offset = tunnelBE.worldPosition.below() .relative(direction); @@ -578,11 +579,11 @@ public class BrassTunnelBlockEntity extends BeltTunnelBlockEntity implements IHa compound.putBoolean("SyncedOutput", syncedOutputActive); compound.putBoolean("ConnectedLeft", connectedLeft); compound.putBoolean("ConnectedRight", connectedRight); - + compound.put("StackToDistribute", stackToDistribute.serializeNBT()); if (stackEnteredFrom != null) NBTHelper.writeEnum(compound, "StackEnteredFrom", stackEnteredFrom); - + compound.putFloat("DistributionProgress", distributionProgress); compound.putInt("PreviousIndex", previousOutputIndex); compound.putInt("DistanceLeft", distributionDistanceLeft); @@ -610,7 +611,7 @@ public class BrassTunnelBlockEntity extends BeltTunnelBlockEntity implements IHa syncedOutputActive = compound.getBoolean("SyncedOutput"); connectedLeft = compound.getBoolean("ConnectedLeft"); connectedRight = compound.getBoolean("ConnectedRight"); - + stackToDistribute = ItemStack.of(compound.getCompound("StackToDistribute")); stackEnteredFrom = compound.contains("StackEnteredFrom") ? NBTHelper.readEnum(compound, "StackEnteredFrom", Direction.class) @@ -718,7 +719,7 @@ public class BrassTunnelBlockEntity extends BeltTunnelBlockEntity implements IHa super.invalidate(); tunnelCapability.invalidate(); } - + @Override public void destroy() { super.destroy(); @@ -781,20 +782,22 @@ public class BrassTunnelBlockEntity extends BeltTunnelBlockEntity implements IHa List allStacks = grabAllStacksOfGroup(true); if (allStacks.isEmpty()) return false; - + tooltip.add(componentSpacing.plainCopy() .append(Lang.translateDirect("tooltip.brass_tunnel.contains")) .withStyle(ChatFormatting.WHITE)); for (ItemStack item : allStacks) { tooltip.add(componentSpacing.plainCopy() - .append(Lang.translateDirect("tooltip.brass_tunnel.contains_entry", Components.translatable(item.getDescriptionId()) - .getString(), item.getCount())) + .append(Lang.translateDirect("tooltip.brass_tunnel.contains_entry", + Components.translatable(item.getDescriptionId()) + .getString(), + item.getCount())) .withStyle(ChatFormatting.GRAY)); } tooltip.add(componentSpacing.plainCopy() .append(Lang.translateDirect("tooltip.brass_tunnel.retrieve")) .withStyle(ChatFormatting.DARK_GRAY)); - + return true; } diff --git a/src/main/java/com/simibubi/create/content/logistics/block/belts/tunnel/BrassTunnelCTBehaviour.java b/src/main/java/com/simibubi/create/content/logistics/block/belts/tunnel/BrassTunnelCTBehaviour.java index e6bbc3711..9b34ce129 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/belts/tunnel/BrassTunnelCTBehaviour.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/belts/tunnel/BrassTunnelCTBehaviour.java @@ -4,39 +4,45 @@ import org.jetbrains.annotations.Nullable; import com.simibubi.create.AllSpriteShifts; import com.simibubi.create.foundation.block.connected.CTSpriteShiftEntry; +import com.simibubi.create.foundation.block.connected.CTType; import com.simibubi.create.foundation.block.connected.ConnectedTextureBehaviour; import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.world.level.BlockAndTintGetter; -import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.state.BlockState; public class BrassTunnelCTBehaviour extends ConnectedTextureBehaviour.Base { + @Override + public @Nullable CTType getDataType(BlockAndTintGetter world, BlockPos pos, BlockState state, Direction direction) { + if (!(world.getBlockEntity(pos) instanceof BrassTunnelBlockEntity tunnelBE) + || !tunnelBE.hasDistributionBehaviour()) + return null; + return super.getDataType(world, pos, state, direction); + } + @Override public CTSpriteShiftEntry getShift(BlockState state, Direction direction, @Nullable TextureAtlasSprite sprite) { return direction == Direction.UP ? AllSpriteShifts.BRASS_TUNNEL_TOP : null; } - + @Override protected boolean reverseUVs(BlockState state, Direction face) { return true; } @Override - public boolean connectsTo(BlockState state, BlockState other, BlockAndTintGetter reader, BlockPos pos, BlockPos otherPos, - Direction face) { + public boolean connectsTo(BlockState state, BlockState other, BlockAndTintGetter reader, BlockPos pos, + BlockPos otherPos, Direction face) { int yDiff = otherPos.getY() - pos.getY(); int zDiff = otherPos.getZ() - pos.getZ(); if (yDiff != 0) return false; - BlockEntity be = reader.getBlockEntity(pos); - if (!(be instanceof BrassTunnelBlockEntity)) + if (!(reader.getBlockEntity(pos) instanceof BrassTunnelBlockEntity tunnelBE)) return false; - BrassTunnelBlockEntity tunnelBE = (BrassTunnelBlockEntity) be; boolean leftSide = zDiff > 0; return tunnelBE.isConnected(leftSide); } diff --git a/src/main/java/com/simibubi/create/content/logistics/block/belts/tunnel/BrassTunnelModeSlot.java b/src/main/java/com/simibubi/create/content/logistics/block/belts/tunnel/BrassTunnelModeSlot.java new file mode 100644 index 000000000..df78e2e6e --- /dev/null +++ b/src/main/java/com/simibubi/create/content/logistics/block/belts/tunnel/BrassTunnelModeSlot.java @@ -0,0 +1,18 @@ +package com.simibubi.create.content.logistics.block.belts.tunnel; + +import com.simibubi.create.foundation.blockEntity.behaviour.CenteredSideValueBoxTransform; + +import net.minecraft.core.Direction; + +public class BrassTunnelModeSlot extends CenteredSideValueBoxTransform { + + public BrassTunnelModeSlot() { + super((state, d) -> d == Direction.UP); + } + + @Override + public int getOverrideColor() { + return 0x592424; + } + +} diff --git a/src/main/java/com/simibubi/create/content/logistics/block/diodes/BrassDiodeScrollSlot.java b/src/main/java/com/simibubi/create/content/logistics/block/diodes/BrassDiodeScrollSlot.java index c7ff8f1bc..c68cbb2ce 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/diodes/BrassDiodeScrollSlot.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/diodes/BrassDiodeScrollSlot.java @@ -25,4 +25,9 @@ public class BrassDiodeScrollSlot extends ValueBoxTransform { .rotateX(90); } + @Override + public int getOverrideColor() { + return 0x592424; + } + } diff --git a/src/main/java/com/simibubi/create/content/logistics/block/display/AllDisplayBehaviours.java b/src/main/java/com/simibubi/create/content/logistics/block/display/AllDisplayBehaviours.java index 395df3671..9ac06e8fe 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/display/AllDisplayBehaviours.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/display/AllDisplayBehaviours.java @@ -28,6 +28,7 @@ import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.entity.SignBlockEntity; import net.minecraft.world.level.block.state.BlockState; import net.minecraftforge.registries.ForgeRegistries; @@ -222,6 +223,10 @@ public class AllDisplayBehaviours { DisplayTarget targetOfBlock = targetOf(blockState); DisplayTarget targetOfBlockEntity = blockEntity == null ? null : targetOf(blockEntity); + // Commonly added by mods, but with a non-vanilla blockentitytype + if (targetOfBlockEntity == null && blockEntity instanceof SignBlockEntity) + targetOfBlockEntity = targetOf(BlockEntityType.SIGN); + if (targetOfBlockEntity == null) return targetOfBlock; return targetOfBlockEntity; diff --git a/src/main/java/com/simibubi/create/content/logistics/block/display/source/BoilerDisplaySource.java b/src/main/java/com/simibubi/create/content/logistics/block/display/source/BoilerDisplaySource.java index 3739c7491..cd5587d49 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/display/source/BoilerDisplaySource.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/display/source/BoilerDisplaySource.java @@ -134,9 +134,9 @@ public class BoilerDisplaySource extends DisplaySource { } return Stream.of(List.of(Lang.translateDirect(label, boiler.getHeatLevelTextComponent())), - List.of(size, boiler.getSizeComponent(!forFlapDisplay, forFlapDisplay, ChatFormatting.BLACK)), - List.of(water, boiler.getWaterComponent(!forFlapDisplay, forFlapDisplay, ChatFormatting.BLACK)), - List.of(heat, boiler.getHeatComponent(!forFlapDisplay, forFlapDisplay, ChatFormatting.BLACK))); + List.of(size, boiler.getSizeComponent(!forFlapDisplay, forFlapDisplay, ChatFormatting.RESET)), + List.of(water, boiler.getWaterComponent(!forFlapDisplay, forFlapDisplay, ChatFormatting.RESET)), + List.of(heat, boiler.getHeatComponent(!forFlapDisplay, forFlapDisplay, ChatFormatting.RESET))); } private int labelWidth() { diff --git a/src/main/java/com/simibubi/create/foundation/block/connected/CTModel.java b/src/main/java/com/simibubi/create/foundation/block/connected/CTModel.java index 5ebc760b0..11465af71 100644 --- a/src/main/java/com/simibubi/create/foundation/block/connected/CTModel.java +++ b/src/main/java/com/simibubi/create/foundation/block/connected/CTModel.java @@ -50,7 +50,7 @@ public class CTModel extends BakedModelWrapperWithData { && !(actualState.getBlock()instanceof CopycatBlock ufb && !ufb.canFaceBeOccluded(actualState, face))) continue; - CTType dataType = behaviour.getDataType(state, face); + CTType dataType = behaviour.getDataType(world, pos, state, face); if (dataType == null) continue; CTContext context = behaviour.buildContext(world, pos, state, face, dataType.getContextRequirement()); diff --git a/src/main/java/com/simibubi/create/foundation/block/connected/ConnectedTextureBehaviour.java b/src/main/java/com/simibubi/create/foundation/block/connected/ConnectedTextureBehaviour.java index 2aebf798a..19ab70b89 100644 --- a/src/main/java/com/simibubi/create/foundation/block/connected/ConnectedTextureBehaviour.java +++ b/src/main/java/com/simibubi/create/foundation/block/connected/ConnectedTextureBehaviour.java @@ -21,7 +21,7 @@ public abstract class ConnectedTextureBehaviour { // TODO: allow more than one data type per state/face? @Nullable - public abstract CTType getDataType(BlockState state, Direction direction); + public abstract CTType getDataType(BlockAndTintGetter world, BlockPos pos, BlockState state, Direction direction); public boolean buildContextForOccludedDirections() { return false; @@ -32,7 +32,7 @@ public abstract class ConnectedTextureBehaviour { BlockPos blockingPos = otherPos.relative(face); BlockState blockState = reader.getBlockState(pos); - if (blockState.getBlock()instanceof CopycatBlock ufb + if (blockState.getBlock() instanceof CopycatBlock ufb && ufb.isUnblockableConnectivitySide(reader, blockState, face, pos, otherPos)) return false; @@ -60,7 +60,7 @@ public abstract class ConnectedTextureBehaviour { .relative(vertical, sv); BlockState blockState = reader.getBlockState(pos); - if (blockState.getBlock()instanceof CopycatBlock ufb + if (blockState.getBlock() instanceof CopycatBlock ufb && ufb.isIgnoredConnectivitySide(reader, blockState, face, pos, p)) return false; @@ -73,7 +73,7 @@ public abstract class ConnectedTextureBehaviour { BlockPos toPos) { BlockState blockState = reader.getBlockState(toPos); - if (blockState.getBlock()instanceof CopycatBlock ufb) { + if (blockState.getBlock() instanceof CopycatBlock ufb) { BlockState connectiveMaterial = ufb.getConnectiveMaterial(reader, reference, face, fromPos, toPos); return connectiveMaterial == null ? blockState : connectiveMaterial; } @@ -274,7 +274,7 @@ public abstract class ConnectedTextureBehaviour { @Override @Nullable - public CTType getDataType(BlockState state, Direction direction) { + public CTType getDataType(BlockAndTintGetter world, BlockPos pos, BlockState state, Direction direction) { CTSpriteShiftEntry shift = getShift(state, direction, null); if (shift == null) { return null; diff --git a/src/main/java/com/simibubi/create/foundation/blockEntity/behaviour/ValueBox.java b/src/main/java/com/simibubi/create/foundation/blockEntity/behaviour/ValueBox.java index 5f127af71..662c3ea99 100644 --- a/src/main/java/com/simibubi/create/foundation/blockEntity/behaviour/ValueBox.java +++ b/src/main/java/com/simibubi/create/foundation/blockEntity/behaviour/ValueBox.java @@ -30,8 +30,8 @@ public class ValueBox extends ChasingAABBOutline { protected Component scrollTooltip = Components.immutableEmpty(); protected Vec3 labelOffset = Vec3.ZERO; - protected int passiveColor; - protected int highlightColor; + public int overrideColor = -1; + public boolean isPassive; protected BlockPos pos; @@ -65,6 +65,11 @@ public class ValueBox extends ChasingAABBOutline { this.isPassive = passive; return this; } + + public ValueBox withColor(int color) { + this.overrideColor = color; + return this; + } @Override public void render(PoseStack ms, SuperRenderTypeBuffer buffer, float pt) { @@ -183,7 +188,7 @@ public class ValueBox extends ChasingAABBOutline { Font font = Minecraft.getInstance().font; float scale = 3; ms.scale(scale, scale, 1); - ms.translate(-4, -4, 5); + ms.translate(-4, -3.75, 5); int stringWidth = font.width(text); float numberScale = (float) font.lineHeight / stringWidth; @@ -195,7 +200,8 @@ public class ValueBox extends ChasingAABBOutline { ms.scale(numberScale, numberScale, numberScale); ms.translate(singleDigit ? stringWidth / 2 : 0, singleDigit ? -verticalMargin : verticalMargin, 0); - renderHoveringText(ms, buffer, text, 0xEDEDED, 0x4f4f4f); + int overrideColor = transform.getOverrideColor(); + renderHoveringText(ms, buffer, text, overrideColor != -1 ? overrideColor : 0xEDEDED); } } @@ -214,17 +220,16 @@ public class ValueBox extends ChasingAABBOutline { float scale = 2 * 16; ms.scale(scale, scale, scale); ms.translate(-.5f, -.5f, 5 / 32f); - icon.render(ms, buffer, 0xFFFFFF); + + int overrideColor = transform.getOverrideColor(); + icon.render(ms, buffer, overrideColor != -1 ? overrideColor : 0xFFFFFF); } } - protected void renderHoveringText(PoseStack ms, MultiBufferSource buffer, Component text, int color, - int shadowColor) { + protected void renderHoveringText(PoseStack ms, MultiBufferSource buffer, Component text, int color) { ms.pushPose(); drawString(ms, buffer, text, 0, 0, color); - ms.translate(0, 0, -.25); - drawString(ms, buffer, text, 1, 1, shadowColor); ms.popPose(); } diff --git a/src/main/java/com/simibubi/create/foundation/blockEntity/behaviour/ValueBoxTransform.java b/src/main/java/com/simibubi/create/foundation/blockEntity/behaviour/ValueBoxTransform.java index e3495d993..e449b0fcc 100644 --- a/src/main/java/com/simibubi/create/foundation/blockEntity/behaviour/ValueBoxTransform.java +++ b/src/main/java/com/simibubi/create/foundation/blockEntity/behaviour/ValueBoxTransform.java @@ -43,6 +43,10 @@ public abstract class ValueBoxTransform { public boolean shouldRender(BlockState state) { return state.getMaterial() != Material.AIR && getLocalOffset(state) != null; } + + public int getOverrideColor() { + return -1; + } protected Vec3 rotateHorizontally(BlockState state, Vec3 vec) { float yRot = 0; diff --git a/src/main/resources/assets/create/models/block/chute/block_diagonal_encased.json b/src/main/resources/assets/create/models/block/chute/block_diagonal_encased.json index 171bec4b5..ce1871c01 100644 --- a/src/main/resources/assets/create/models/block/chute/block_diagonal_encased.json +++ b/src/main/resources/assets/create/models/block/chute/block_diagonal_encased.json @@ -4,6 +4,7 @@ "textures": { "3": "create:block/chute", "4": "create:block/chute_large", + "5": "create:block/industrial_iron_block_top", "particle": "create:block/industrial_iron_block" }, "elements": [ @@ -15,7 +16,7 @@ "east": {"uv": [0, 0, 16, 16], "texture": "#particle"}, "south": {"uv": [0, 0, 16, 16], "texture": "#particle"}, "west": {"uv": [0, 0, 16, 16], "texture": "#particle"}, - "up": {"uv": [0, 0, 16, 16], "texture": "#particle"}, + "up": {"uv": [0, 0, 16, 16], "texture": "#5"}, "down": {"uv": [0, 0, 8, 8], "texture": "#4"} } }, 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 82d694c11..c5a41c6dc 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 @@ -22,7 +22,7 @@ "from": [2, 5, 14], "to": [14, 14, 16], "faces": { - "north": {"uv": [1, 0, 7, 4.5], "texture": "#1_7"}, + "north": {"uv": [1, 0, 7, 3.5], "texture": "#1_7"}, "south": {"uv": [1, 0, 7, 4.5], "texture": "#4"}, "up": {"uv": [1, 0, 7, 1], "rotation": 180, "texture": "#4"} } @@ -42,7 +42,8 @@ }, { "from": [2, 5, 7], - "to": [14, 10, 15], + "to": [14, 10.1, 15], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0.1, 0]}, "faces": { "north": {"uv": [1, 16, 7, 13.5], "rotation": 180, "texture": "#4"}, "down": {"uv": [1, 16, 7, 12], "rotation": 180, "texture": "#4"} @@ -58,9 +59,9 @@ } }, { - "from": [2, 9, 7], - "to": [14, 10, 15], - "rotation": {"angle": -22.5, "axis": "x", "origin": [8, 10, 7]}, + "from": [2, 9.1, 7], + "to": [14, 10.1, 15], + "rotation": {"angle": -22.5, "axis": "x", "origin": [8, 10.1, 7]}, "faces": { "up": {"uv": [1, 9.5, 7, 13.5], "rotation": 180, "texture": "#4"} } diff --git a/src/main/resources/assets/create/models/block/mechanical_mixer/item.json b/src/main/resources/assets/create/models/block/mechanical_mixer/item.json index 88a8a8ef7..e51e594a9 100644 --- a/src/main/resources/assets/create/models/block/mechanical_mixer/item.json +++ b/src/main/resources/assets/create/models/block/mechanical_mixer/item.json @@ -314,8 +314,8 @@ }, "gui": { "rotation": [30, 225, 0], - "translation": [0, -1.5, 0], - "scale": [0.4, 0.4, 0.4] + "translation": [0, -2.25, 0], + "scale": [0.45, 0.45, 0.45] }, "fixed": { "translation": [0, -3, 0], diff --git a/src/main/resources/assets/create/models/block/millstone/block.json b/src/main/resources/assets/create/models/block/millstone/block.json index 68afc7d11..073d639d5 100644 --- a/src/main/resources/assets/create/models/block/millstone/block.json +++ b/src/main/resources/assets/create/models/block/millstone/block.json @@ -4,66 +4,10 @@ "textures": { "0": "create:block/gearbox", "5": "create:block/millstone", - "6": "block/polished_andesite", - "13": "block/stripped_spruce_log", - "particle": "block/polished_andesite" + "8": "create:block/andesite_casing", + "particle": "create:block/palettes/stone_types/cap/andesite_cut_cap" }, "elements": [ - { - "from": [3, 13, 3], - "to": [5, 16, 13], - "faces": { - "north": {"uv": [0, 3, 3, 5], "rotation": 90, "texture": "#13"}, - "east": {"uv": [0, 0, 10, 3], "texture": "#13"}, - "south": {"uv": [0, 0, 3, 2], "rotation": 90, "texture": "#13"}, - "west": {"uv": [0, 0, 3, 10], "rotation": 90, "texture": "#13"}, - "up": {"uv": [5, 3, 7, 13], "texture": "#13"}, - "down": {"uv": [0, 0, 2, 10], "texture": "#13"} - } - }, - { - "from": [11, 13, 3], - "to": [13, 16, 13], - "faces": { - "north": {"uv": [0, 7, 3, 9], "rotation": 90, "texture": "#13"}, - "east": {"uv": [0, 10, 3, 0], "rotation": 90, "texture": "#13"}, - "south": {"uv": [0, 0, 3, 2], "rotation": 90, "texture": "#13"}, - "west": {"uv": [10, 0, 0, 3], "texture": "#13"}, - "up": {"uv": [5, 2, 3, 12], "texture": "#13"}, - "down": {"uv": [2, 0, 0, 10], "texture": "#13"} - } - }, - { - "from": [5, 13, 11], - "to": [11, 16, 13], - "faces": { - "north": {"uv": [0, 0, 6, 3], "texture": "#13"}, - "east": {"uv": [0, 0, 2, 3], "texture": "#13"}, - "south": {"uv": [0, 3, 3, 9], "rotation": 90, "texture": "#13"}, - "west": {"uv": [0, 0, 2, 3], "texture": "#13"}, - "up": {"uv": [10, 4, 12, 10], "rotation": 90, "texture": "#13"}, - "down": {"uv": [0, 0, 6, 2], "texture": "#13"} - } - }, - { - "from": [5, 13, 5], - "to": [11, 15, 11], - "faces": { - "up": {"uv": [6, 0, 9, 3], "rotation": 90, "texture": "#5"} - } - }, - { - "from": [5, 13, 3], - "to": [11, 16, 5], - "faces": { - "north": {"uv": [0, 9, 3, 3], "rotation": 90, "texture": "#13"}, - "east": {"uv": [2, 0, 0, 3], "texture": "#13"}, - "south": {"uv": [6, 0, 0, 3], "texture": "#13"}, - "west": {"uv": [2, 0, 0, 3], "texture": "#13"}, - "up": {"uv": [7, 3, 5, 9], "rotation": 270, "texture": "#13"}, - "down": {"uv": [0, 2, 6, 0], "texture": "#13"} - } - }, { "name": "bottom", "from": [0, 0, 0], @@ -73,7 +17,7 @@ "east": {"uv": [7, 13, 8, 16], "texture": "#5"}, "south": {"uv": [0, 13, 8, 16], "texture": "#5"}, "west": {"uv": [0, 13, 1, 16], "texture": "#5"}, - "up": {"uv": [0.5, 8.5, 8.5, 9.5], "texture": "#5"}, + "up": {"uv": [0, 0, 16, 2], "texture": "#8"}, "down": {"uv": [0, 14, 16, 16], "texture": "#0"} } }, @@ -86,7 +30,7 @@ "east": {"uv": [8, 13, 7, 16], "texture": "#5"}, "south": {"uv": [8, 13, 0, 16], "texture": "#5"}, "west": {"uv": [1, 13, 0, 16], "texture": "#5"}, - "up": {"uv": [0.5, 9.5, 8.5, 8.5], "texture": "#5"}, + "up": {"uv": [0, 0, 16, 2], "rotation": 180, "texture": "#8"}, "down": {"uv": [0, 16, 16, 14], "texture": "#0"} } }, @@ -96,7 +40,7 @@ "faces": { "east": {"uv": [1, 13, 7, 16], "texture": "#5"}, "west": {"uv": [1, 13, 7, 16], "texture": "#5"}, - "up": {"uv": [1.5, 8.5, 7.5, 9.5], "rotation": 270, "texture": "#5"}, + "up": {"uv": [0, 14, 2, 2], "texture": "#8"}, "down": {"uv": [0, 2, 2, 14], "texture": "#0"} } }, @@ -106,7 +50,7 @@ "faces": { "east": {"uv": [7, 13, 1, 16], "texture": "#5"}, "west": {"uv": [7, 13, 1, 16], "texture": "#5"}, - "up": {"uv": [1.5, 9.5, 7.5, 8.5], "rotation": 270, "texture": "#5"}, + "up": {"uv": [0, 14, 2, 2], "rotation": 180, "texture": "#8"}, "down": {"uv": [2, 2, 0, 14], "texture": "#0"} } }, @@ -114,50 +58,30 @@ "from": [2, 1, 2], "to": [14, 6, 14], "faces": { - "up": {"uv": [2, 2, 14, 14], "rotation": 270, "texture": "#6"}, + "up": {"uv": [0, 0, 6, 6], "rotation": 270, "texture": "#5"}, "down": {"uv": [2, 2, 14, 14], "texture": "#0"} } + }, + { + "from": [3, 12, 3], + "to": [13, 16, 13], + "faces": { + "north": {"uv": [11, 9, 16, 11], "texture": "#5"}, + "east": {"uv": [11, 9, 16, 11], "texture": "#5"}, + "south": {"uv": [11, 9, 16, 11], "texture": "#5"}, + "west": {"uv": [11, 9, 16, 11], "texture": "#5"}, + "up": {"uv": [16, 11, 11, 16], "texture": "#5"}, + "down": {"uv": [16, 11, 11, 16], "texture": "#5"} + } } ], - "display": { - "thirdperson_righthand": { - "rotation": [75, -149, 0], - "translation": [0, 2.5, 0], - "scale": [0.375, 0.375, 0.375] - }, - "thirdperson_lefthand": { - "rotation": [75, -149, 0], - "translation": [0, 2.5, 0], - "scale": [0.375, 0.375, 0.375] - }, - "firstperson_righthand": { - "rotation": [0, -55, 0], - "scale": [0.4, 0.4, 0.4] - }, - "firstperson_lefthand": { - "rotation": [0, -55, 0], - "scale": [0.4, 0.4, 0.4] - }, - "ground": { - "translation": [0, 1, 1.25], - "scale": [0.25, 0.25, 0.25] - }, - "gui": { - "rotation": [30, 45, 0], - "translation": [2.5, -0.5, 0], - "scale": [0.625, 0.625, 0.625] - }, - "fixed": { - "rotation": [0, 180, 0], - "translation": [0, 1.75, -4.5], - "scale": [0.5, 0.5, 0.5] - } - }, - "groups": [0, 1, 2, 3, 4, + "groups": [ { "name": "bottom", "origin": [8, 8, 8], - "children": [5, 6, 7, 8, 9] - } + "color": 0, + "children": [0, 1, 2, 3, 4] + }, + 5 ] } \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/millstone/inner.json b/src/main/resources/assets/create/models/block/millstone/inner.json index 7ed24f315..65af3b42b 100644 --- a/src/main/resources/assets/create/models/block/millstone/inner.json +++ b/src/main/resources/assets/create/models/block/millstone/inner.json @@ -11,8 +11,9 @@ "elements": [ { "name": "Gear5", - "from": [6.5, 6.5, -1], - "to": [9.5, 12.5, 17], + "from": [6.5, 6, -1], + "to": [9.5, 12, 17], + "rotation": {"angle": 0, "axis": "y", "origin": [0, -0.5, 0]}, "faces": { "north": {"uv": [9, 10, 10.5, 13], "texture": "#5"}, "east": {"uv": [0, 10, 9, 13], "texture": "#5"}, @@ -24,9 +25,9 @@ }, { "name": "Gear6", - "from": [6.5, 6.5, -1], - "to": [9.5, 12.5, 17], - "rotation": {"angle": 45, "axis": "y", "origin": [8, 8, 8]}, + "from": [6.5, 6, -1], + "to": [9.5, 12, 17], + "rotation": {"angle": 45, "axis": "y", "origin": [8, 7.5, 8]}, "faces": { "north": {"uv": [9, 10, 10.5, 13], "texture": "#5"}, "east": {"uv": [0, 10, 9, 13], "texture": "#5"}, @@ -38,9 +39,9 @@ }, { "name": "Gear7", - "from": [-1, 6.5, 6.5], - "to": [17, 12.5, 9.5], - "rotation": {"angle": 45, "axis": "y", "origin": [8, 8, 8]}, + "from": [-1, 6, 6.5], + "to": [17, 12, 9.5], + "rotation": {"angle": 45, "axis": "y", "origin": [8, 7.5, 8]}, "faces": { "north": {"uv": [0, 10, 9, 13], "texture": "#5"}, "east": {"uv": [9, 10, 10.5, 13], "texture": "#5"}, @@ -52,8 +53,9 @@ }, { "name": "Gear7", - "from": [-1, 6.5, 6.5], - "to": [17, 12.5, 9.5], + "from": [-1, 6, 6.5], + "to": [17, 12, 9.5], + "rotation": {"angle": 0, "axis": "y", "origin": [0, -0.5, 0]}, "faces": { "north": {"uv": [0, 10, 9, 13], "texture": "#5"}, "east": {"uv": [9, 10, 10.5, 13], "texture": "#5"}, @@ -65,9 +67,9 @@ }, { "name": "GearCaseInner", - "from": [2, 7, 2], - "to": [14, 12, 14], - "rotation": {"angle": 0, "axis": "y", "origin": [8, 8.5, 8]}, + "from": [2, 6.5, 2], + "to": [14, 11.5, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, "faces": { "north": {"uv": [0, 6, 6, 8.5], "texture": "#5"}, "east": {"uv": [0, 6, 6, 8.5], "texture": "#5"}, @@ -77,19 +79,6 @@ "down": {"uv": [0, 0, 6, 6], "texture": "#5"} } }, - { - "name": "GearCaseOuter", - "from": [4, 6, 4], - "to": [12, 13, 12], - "faces": { - "north": {"uv": [6, 4.5, 10, 8], "texture": "#5"}, - "east": {"uv": [6, 4.5, 10, 8], "texture": "#5"}, - "south": {"uv": [6, 4.5, 10, 8], "texture": "#5"}, - "west": {"uv": [6, 4.5, 10, 8], "texture": "#5"}, - "up": {"uv": [1, 1, 5, 5], "texture": "#5"}, - "down": {"uv": [1, 1, 5, 5], "texture": "#5"} - } - }, { "name": "Axis", "from": [6, 0, 6], @@ -142,12 +131,14 @@ { "name": "cogwheel", "origin": [8, 8, 8], - "children": [0, 1, 2, 3, 4, 5] + "color": 0, + "children": [0, 1, 2, 3, 4] }, { "name": "shaft_half", "origin": [8, 8, 8], - "children": [6] + "color": 0, + "children": [5] } ] } \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/millstone/item.json b/src/main/resources/assets/create/models/block/millstone/item.json index 643f75be3..37c07bdd9 100644 --- a/src/main/resources/assets/create/models/block/millstone/item.json +++ b/src/main/resources/assets/create/models/block/millstone/item.json @@ -3,16 +3,16 @@ "parent": "block/block", "textures": { "0": "create:block/gearbox", - "3": "block/stripped_spruce_log", "5": "create:block/millstone", - "6": "block/polished_andesite", - "particle": "block/polished_andesite" + "8": "create:block/andesite_casing", + "particle": "create:block/palettes/stone_types/cap/andesite_cut_cap" }, "elements": [ { "name": "Gear5", - "from": [6.5, 6.5, -1], - "to": [9.5, 12.5, 17], + "from": [6.5, 6, -1], + "to": [9.5, 12, 17], + "rotation": {"angle": 0, "axis": "y", "origin": [0, -0.5, 0]}, "faces": { "north": {"uv": [9, 10, 10.5, 13], "texture": "#5"}, "east": {"uv": [0, 10, 9, 13], "texture": "#5"}, @@ -24,9 +24,9 @@ }, { "name": "Gear6", - "from": [6.5, 6.5, -1], - "to": [9.5, 12.5, 17], - "rotation": {"angle": 45, "axis": "y", "origin": [8, 8, 8]}, + "from": [6.5, 6, -1], + "to": [9.5, 12, 17], + "rotation": {"angle": 45, "axis": "y", "origin": [8, 7.5, 8]}, "faces": { "north": {"uv": [9, 10, 10.5, 13], "texture": "#5"}, "east": {"uv": [0, 10, 9, 13], "texture": "#5"}, @@ -38,9 +38,9 @@ }, { "name": "Gear7", - "from": [-1, 6.5, 6.5], - "to": [17, 12.5, 9.5], - "rotation": {"angle": 45, "axis": "y", "origin": [8, 8, 8]}, + "from": [-1, 6, 6.5], + "to": [17, 12, 9.5], + "rotation": {"angle": 45, "axis": "y", "origin": [8, 7.5, 8]}, "faces": { "north": {"uv": [0, 10, 9, 13], "texture": "#5"}, "east": {"uv": [9, 10, 10.5, 13], "texture": "#5"}, @@ -52,8 +52,9 @@ }, { "name": "Gear7", - "from": [-1, 6.5, 6.5], - "to": [17, 12.5, 9.5], + "from": [-1, 6, 6.5], + "to": [17, 12, 9.5], + "rotation": {"angle": 0, "axis": "y", "origin": [0, -0.5, 0]}, "faces": { "north": {"uv": [0, 10, 9, 13], "texture": "#5"}, "east": {"uv": [9, 10, 10.5, 13], "texture": "#5"}, @@ -65,8 +66,9 @@ }, { "name": "GearCaseInner", - "from": [2, 6.6, 2], - "to": [14, 11.6, 14], + "from": [2, 6.1, 2], + "to": [14, 11.1, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [0, -0.5, 0]}, "faces": { "north": {"uv": [0, 6, 6, 8.5], "texture": "#5"}, "east": {"uv": [0, 6, 6, 8.5], "texture": "#5"}, @@ -78,8 +80,9 @@ }, { "name": "GearCaseOuter", - "from": [4, 6, 4], - "to": [12, 13, 12], + "from": [4, 5.5, 4], + "to": [12, 12.5, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [0, -0.5, 0]}, "faces": { "north": {"uv": [1, 1.5, 5, 5], "texture": "#5"}, "east": {"uv": [1, 1.5, 5, 5], "texture": "#5"}, @@ -87,13 +90,6 @@ "west": {"uv": [1, 1.5, 5, 5], "texture": "#5"} } }, - { - "from": [5, 13, 5], - "to": [11, 15, 11], - "faces": { - "up": {"uv": [6, 0, 9, 3], "rotation": 90, "texture": "#5"} - } - }, { "name": "bottom", "from": [0, 0, 0], @@ -103,7 +99,7 @@ "east": {"uv": [7, 13, 8, 16], "texture": "#5"}, "south": {"uv": [0, 13, 8, 16], "texture": "#5"}, "west": {"uv": [0, 13, 1, 16], "texture": "#5"}, - "up": {"uv": [0.5, 8.5, 8.5, 9.5], "texture": "#5"}, + "up": {"uv": [0, 0, 16, 2], "texture": "#8"}, "down": {"uv": [0, 14, 16, 16], "texture": "#0"} } }, @@ -116,7 +112,7 @@ "east": {"uv": [8, 13, 7, 16], "texture": "#5"}, "south": {"uv": [8, 13, 0, 16], "texture": "#5"}, "west": {"uv": [1, 13, 0, 16], "texture": "#5"}, - "up": {"uv": [0.5, 9.5, 8.5, 8.5], "texture": "#5"}, + "up": {"uv": [0, 0, 16, 2], "rotation": 180, "texture": "#8"}, "down": {"uv": [0, 16, 16, 14], "texture": "#0"} } }, @@ -126,7 +122,7 @@ "faces": { "east": {"uv": [1, 13, 7, 16], "texture": "#5"}, "west": {"uv": [1, 13, 7, 16], "texture": "#5"}, - "up": {"uv": [1.5, 8.5, 7.5, 9.5], "rotation": 270, "texture": "#5"}, + "up": {"uv": [0, 14, 2, 2], "texture": "#8"}, "down": {"uv": [0, 2, 2, 14], "texture": "#0"} } }, @@ -136,7 +132,7 @@ "faces": { "east": {"uv": [7, 13, 1, 16], "texture": "#5"}, "west": {"uv": [7, 13, 1, 16], "texture": "#5"}, - "up": {"uv": [1.5, 9.5, 7.5, 8.5], "rotation": 270, "texture": "#5"}, + "up": {"uv": [0, 14, 2, 2], "rotation": 180, "texture": "#8"}, "down": {"uv": [2, 2, 0, 14], "texture": "#0"} } }, @@ -144,56 +140,20 @@ "from": [2, 1, 2], "to": [14, 6, 14], "faces": { - "up": {"uv": [2, 2, 14, 14], "rotation": 270, "texture": "#6"}, + "up": {"uv": [0, 0, 6, 6], "rotation": 270, "texture": "#5"}, "down": {"uv": [2, 2, 14, 14], "texture": "#0"} } }, { - "from": [11, 13, 3], + "from": [3, 12, 3], "to": [13, 16, 13], "faces": { - "north": {"uv": [0, 7, 3, 9], "rotation": 90, "texture": "#3"}, - "east": {"uv": [0, 10, 3, 0], "rotation": 90, "texture": "#3"}, - "south": {"uv": [0, 0, 3, 2], "rotation": 90, "texture": "#3"}, - "west": {"uv": [10, 0, 0, 3], "texture": "#3"}, - "up": {"uv": [5, 2, 3, 12], "texture": "#3"}, - "down": {"uv": [2, 0, 0, 10], "texture": "#3"} - } - }, - { - "from": [5, 13, 11], - "to": [11, 16, 13], - "faces": { - "north": {"uv": [0, 0, 6, 3], "texture": "#3"}, - "east": {"uv": [0, 0, 2, 3], "texture": "#3"}, - "south": {"uv": [0, 3, 3, 9], "rotation": 90, "texture": "#3"}, - "west": {"uv": [0, 0, 2, 3], "texture": "#3"}, - "up": {"uv": [10, 4, 12, 10], "rotation": 90, "texture": "#3"}, - "down": {"uv": [0, 0, 6, 2], "texture": "#3"} - } - }, - { - "from": [5, 13, 3], - "to": [11, 16, 5], - "faces": { - "north": {"uv": [0, 9, 3, 3], "rotation": 90, "texture": "#3"}, - "east": {"uv": [2, 0, 0, 3], "texture": "#3"}, - "south": {"uv": [6, 0, 0, 3], "texture": "#3"}, - "west": {"uv": [2, 0, 0, 3], "texture": "#3"}, - "up": {"uv": [7, 3, 5, 9], "rotation": 270, "texture": "#3"}, - "down": {"uv": [0, 2, 6, 0], "texture": "#3"} - } - }, - { - "from": [3, 13, 3], - "to": [5, 16, 13], - "faces": { - "north": {"uv": [0, 3, 3, 5], "rotation": 90, "texture": "#3"}, - "east": {"uv": [0, 0, 10, 3], "texture": "#3"}, - "south": {"uv": [0, 0, 3, 2], "rotation": 90, "texture": "#3"}, - "west": {"uv": [0, 0, 3, 10], "rotation": 90, "texture": "#3"}, - "up": {"uv": [5, 3, 7, 13], "texture": "#3"}, - "down": {"uv": [0, 0, 2, 10], "texture": "#3"} + "north": {"uv": [11, 9, 16, 11], "texture": "#5"}, + "east": {"uv": [11, 9, 16, 11], "texture": "#5"}, + "south": {"uv": [11, 9, 16, 11], "texture": "#5"}, + "west": {"uv": [11, 9, 16, 11], "texture": "#5"}, + "up": {"uv": [16, 11, 11, 16], "texture": "#5"}, + "down": {"uv": [16, 11, 11, 16], "texture": "#5"} } } ], @@ -201,11 +161,15 @@ { "name": "cogwheel", "origin": [8, 8, 8], + "color": 0, "children": [0, 1, 2, 3, 4, 5] - }, 6, + }, { "name": "bottom", "origin": [8, 8, 8], - "children": [7, 8, 9, 10, 11] - }, 12, 13, 14, 15] + "color": 0, + "children": [6, 7, 8, 9, 10] + }, + 11 + ] } \ No newline at end of file diff --git a/src/main/resources/assets/create/textures/block/diodes/pulse_extender/idle.png b/src/main/resources/assets/create/textures/block/diodes/pulse_extender/idle.png index 531db9e34..a9d512542 100644 Binary files a/src/main/resources/assets/create/textures/block/diodes/pulse_extender/idle.png and b/src/main/resources/assets/create/textures/block/diodes/pulse_extender/idle.png differ diff --git a/src/main/resources/assets/create/textures/block/diodes/pulse_extender/item.png b/src/main/resources/assets/create/textures/block/diodes/pulse_extender/item.png index da2eae40a..b1b0c4a9b 100644 Binary files a/src/main/resources/assets/create/textures/block/diodes/pulse_extender/item.png and b/src/main/resources/assets/create/textures/block/diodes/pulse_extender/item.png differ diff --git a/src/main/resources/assets/create/textures/block/diodes/pulse_extender/powered.png b/src/main/resources/assets/create/textures/block/diodes/pulse_extender/powered.png index 6bdd19653..359ff2ea9 100644 Binary files a/src/main/resources/assets/create/textures/block/diodes/pulse_extender/powered.png and b/src/main/resources/assets/create/textures/block/diodes/pulse_extender/powered.png differ diff --git a/src/main/resources/assets/create/textures/block/diodes/pulse_extender/powered_powering.png b/src/main/resources/assets/create/textures/block/diodes/pulse_extender/powered_powering.png index 37b62271b..94628093d 100644 Binary files a/src/main/resources/assets/create/textures/block/diodes/pulse_extender/powered_powering.png and b/src/main/resources/assets/create/textures/block/diodes/pulse_extender/powered_powering.png differ diff --git a/src/main/resources/assets/create/textures/block/diodes/pulse_extender/powering.png b/src/main/resources/assets/create/textures/block/diodes/pulse_extender/powering.png index bb8942a53..41744592b 100644 Binary files a/src/main/resources/assets/create/textures/block/diodes/pulse_extender/powering.png and b/src/main/resources/assets/create/textures/block/diodes/pulse_extender/powering.png differ diff --git a/src/main/resources/assets/create/textures/block/diodes/pulse_repeater/idle.png b/src/main/resources/assets/create/textures/block/diodes/pulse_repeater/idle.png index ce7e369e8..84e70803f 100644 Binary files a/src/main/resources/assets/create/textures/block/diodes/pulse_repeater/idle.png and b/src/main/resources/assets/create/textures/block/diodes/pulse_repeater/idle.png differ diff --git a/src/main/resources/assets/create/textures/block/diodes/pulse_repeater/item.png b/src/main/resources/assets/create/textures/block/diodes/pulse_repeater/item.png index 9b3e3e328..1237aef80 100644 Binary files a/src/main/resources/assets/create/textures/block/diodes/pulse_repeater/item.png and b/src/main/resources/assets/create/textures/block/diodes/pulse_repeater/item.png differ diff --git a/src/main/resources/assets/create/textures/block/diodes/pulse_repeater/powered.png b/src/main/resources/assets/create/textures/block/diodes/pulse_repeater/powered.png index f02e6e85f..8b28ecbaa 100644 Binary files a/src/main/resources/assets/create/textures/block/diodes/pulse_repeater/powered.png and b/src/main/resources/assets/create/textures/block/diodes/pulse_repeater/powered.png differ diff --git a/src/main/resources/assets/create/textures/block/diodes/pulse_repeater/powered_powering.png b/src/main/resources/assets/create/textures/block/diodes/pulse_repeater/powered_powering.png index 58d2cc439..27e9929d8 100644 Binary files a/src/main/resources/assets/create/textures/block/diodes/pulse_repeater/powered_powering.png and b/src/main/resources/assets/create/textures/block/diodes/pulse_repeater/powered_powering.png differ diff --git a/src/main/resources/assets/create/textures/block/diodes/pulse_repeater/powering.png b/src/main/resources/assets/create/textures/block/diodes/pulse_repeater/powering.png index 4318b67cb..ae3bbd232 100644 Binary files a/src/main/resources/assets/create/textures/block/diodes/pulse_repeater/powering.png and b/src/main/resources/assets/create/textures/block/diodes/pulse_repeater/powering.png differ diff --git a/src/main/resources/assets/create/textures/block/millstone.png b/src/main/resources/assets/create/textures/block/millstone.png index 0abfabce8..27f5babca 100644 Binary files a/src/main/resources/assets/create/textures/block/millstone.png and b/src/main/resources/assets/create/textures/block/millstone.png differ