diff --git a/src/main/java/nl/requios/effortlessbuilding/AllGuiTextures.java b/src/main/java/nl/requios/effortlessbuilding/AllGuiTextures.java index 3843a43..10f40b4 100644 --- a/src/main/java/nl/requios/effortlessbuilding/AllGuiTextures.java +++ b/src/main/java/nl/requios/effortlessbuilding/AllGuiTextures.java @@ -11,9 +11,14 @@ import nl.requios.effortlessbuilding.create.foundation.gui.element.ScreenElement import nl.requios.effortlessbuilding.create.foundation.utility.Color; public enum AllGuiTextures implements ScreenElement { - ARRAY_ENTRY("modifiers", 256, 60), - MIRROR_ENTRY("modifiers", 0, 60, 256, 60), - RADIAL_MIRROR_ENTRY("modifiers", 0, 120, 256, 60), + ARRAY_ENTRY("modifiers", 226, 60), + MIRROR_ENTRY("modifiers", 0, 60, 226, 60), + RADIAL_MIRROR_ENTRY("modifiers", 0, 120, 226, 60), + ENABLE_BUTTON_BACKGROUND("modifiers", 234, 0, 9, 9), + CHECKMARK("modifiers", 243, 0, 10, 9), + ARROW_UP("modifiers", 234, 9, 9, 9), + ARROW_DOWN("modifiers", 243, 9, 9, 9), + TRASH("modifiers", 234, 18, 9, 9), ; public final ResourceLocation location; public int width, height; diff --git a/src/main/java/nl/requios/effortlessbuilding/ClientEvents.java b/src/main/java/nl/requios/effortlessbuilding/ClientEvents.java index e2eaf8c..f72be3b 100644 --- a/src/main/java/nl/requios/effortlessbuilding/ClientEvents.java +++ b/src/main/java/nl/requios/effortlessbuilding/ClientEvents.java @@ -91,7 +91,6 @@ public class ClientEvents { BuildModeEnum buildMode = EffortlessBuildingClient.BUILD_MODES.getBuildMode(); if (mc.screen != null || - buildMode == BuildModeEnum.DISABLED || RadialMenu.instance.isVisible()) { return; } diff --git a/src/main/java/nl/requios/effortlessbuilding/CommonEvents.java b/src/main/java/nl/requios/effortlessbuilding/CommonEvents.java index 5f2d84e..4318d0e 100644 --- a/src/main/java/nl/requios/effortlessbuilding/CommonEvents.java +++ b/src/main/java/nl/requios/effortlessbuilding/CommonEvents.java @@ -13,6 +13,7 @@ import net.minecraftforge.event.TickEvent; import net.minecraftforge.event.entity.player.PlayerEvent; import net.minecraftforge.event.level.BlockEvent; import net.minecraftforge.eventbus.api.SubscribeEvent; +import net.minecraftforge.fml.LogicalSide; import net.minecraftforge.fml.common.Mod.EventBusSubscriber; import nl.requios.effortlessbuilding.systems.UndoRedo; import nl.requios.effortlessbuilding.compatibility.CompatHelper; @@ -32,8 +33,9 @@ public class CommonEvents { @SubscribeEvent public static void onTick(TickEvent.LevelTickEvent event) { if (event.phase != TickEvent.Phase.START) return; + if (event.side == LogicalSide.CLIENT) return; - EffortlessBuilding.DELAYED_BLOCK_PLACER.tick(); + EffortlessBuilding.SERVER_BLOCK_PLACER.tick(); } //Cancel event if necessary. Nothing more, rest is handled on mouseclick @@ -128,4 +130,4 @@ public class CommonEvents { //TODO disable build mode and modifiers? } -} \ No newline at end of file +} diff --git a/src/main/java/nl/requios/effortlessbuilding/EffortlessBuilding.java b/src/main/java/nl/requios/effortlessbuilding/EffortlessBuilding.java index 0bc7b3c..42c782d 100644 --- a/src/main/java/nl/requios/effortlessbuilding/EffortlessBuilding.java +++ b/src/main/java/nl/requios/effortlessbuilding/EffortlessBuilding.java @@ -22,7 +22,6 @@ import nl.requios.effortlessbuilding.compatibility.CompatHelper; import nl.requios.effortlessbuilding.gui.DiamondRandomizerBagContainer; import nl.requios.effortlessbuilding.gui.GoldenRandomizerBagContainer; import nl.requios.effortlessbuilding.gui.RandomizerBagContainer; -import nl.requios.effortlessbuilding.systems.DelayedBlockPlacer; import nl.requios.effortlessbuilding.item.*; import nl.requios.effortlessbuilding.network.PacketHandler; import nl.requios.effortlessbuilding.proxy.ClientProxy; @@ -42,7 +41,6 @@ public class EffortlessBuilding { public static IProxy proxy = DistExecutor.unsafeRunForDist(() -> ClientProxy::new, () -> ServerProxy::new); public static final ServerBlockPlacer SERVER_BLOCK_PLACER = new ServerBlockPlacer(); - public static final DelayedBlockPlacer DELAYED_BLOCK_PLACER = new DelayedBlockPlacer(); //Registration private static final DeferredRegister ITEMS = DeferredRegister.create(ForgeRegistries.ITEMS, MODID); diff --git a/src/main/java/nl/requios/effortlessbuilding/buildmode/BuildModeEnum.java b/src/main/java/nl/requios/effortlessbuilding/buildmode/BuildModeEnum.java index 859f31a..0dabaf5 100644 --- a/src/main/java/nl/requios/effortlessbuilding/buildmode/BuildModeEnum.java +++ b/src/main/java/nl/requios/effortlessbuilding/buildmode/BuildModeEnum.java @@ -1,20 +1,21 @@ package nl.requios.effortlessbuilding.buildmode; +import nl.requios.effortlessbuilding.AllIcons; import nl.requios.effortlessbuilding.buildmode.buildmodes.*; public enum BuildModeEnum { - DISABLED("normal", new Disabled(), BuildModeCategoryEnum.BASIC), - SINGLE("normal_plus", new Single(), BuildModeCategoryEnum.BASIC, ModeOptions.OptionEnum.BUILD_SPEED), - LINE("line", new Line(), BuildModeCategoryEnum.BASIC /*, OptionEnum.THICKNESS*/), - WALL("wall", new Wall(), BuildModeCategoryEnum.BASIC, ModeOptions.OptionEnum.FILL), - FLOOR("floor", new Floor(), BuildModeCategoryEnum.BASIC, ModeOptions.OptionEnum.FILL), - CUBE("cube", new Cube(), BuildModeCategoryEnum.BASIC, ModeOptions.OptionEnum.CUBE_FILL), - DIAGONAL_LINE("diagonal_line", new DiagonalLine(), BuildModeCategoryEnum.DIAGONAL /*, OptionEnum.THICKNESS*/), - DIAGONAL_WALL("diagonal_wall", new DiagonalWall(), BuildModeCategoryEnum.DIAGONAL /*, OptionEnum.FILL*/), - SLOPE_FLOOR("slope_floor", new SlopeFloor(), BuildModeCategoryEnum.DIAGONAL, ModeOptions.OptionEnum.RAISED_EDGE), - CIRCLE("circle", new Circle(), BuildModeCategoryEnum.CIRCULAR, ModeOptions.OptionEnum.CIRCLE_START, ModeOptions.OptionEnum.FILL), - CYLINDER("cylinder", new Cylinder(), BuildModeCategoryEnum.CIRCULAR, ModeOptions.OptionEnum.CIRCLE_START, ModeOptions.OptionEnum.FILL), - SPHERE("sphere", new Sphere(), BuildModeCategoryEnum.CIRCULAR, ModeOptions.OptionEnum.CIRCLE_START, ModeOptions.OptionEnum.FILL); + DISABLED("normal", new Disabled(), BuildModeCategoryEnum.BASIC, AllIcons.I_DISABLE), + SINGLE("normal_plus", new Single(), BuildModeCategoryEnum.BASIC, AllIcons.I_SINGLE, ModeOptions.OptionEnum.BUILD_SPEED), + LINE("line", new Line(), BuildModeCategoryEnum.BASIC, AllIcons.I_LINE /*, OptionEnum.THICKNESS*/), + WALL("wall", new Wall(), BuildModeCategoryEnum.BASIC, AllIcons.I_WALL, ModeOptions.OptionEnum.FILL), + FLOOR("floor", new Floor(), BuildModeCategoryEnum.BASIC, AllIcons.I_FLOOR, ModeOptions.OptionEnum.FILL), + CUBE("cube", new Cube(), BuildModeCategoryEnum.BASIC, AllIcons.I_CUBE, ModeOptions.OptionEnum.CUBE_FILL), + DIAGONAL_LINE("diagonal_line", new DiagonalLine(), BuildModeCategoryEnum.DIAGONAL, AllIcons.I_DIAGONAL_LINE /*, OptionEnum.THICKNESS*/), + DIAGONAL_WALL("diagonal_wall", new DiagonalWall(), BuildModeCategoryEnum.DIAGONAL, AllIcons.I_DIAGONAL_WALL /*, OptionEnum.FILL*/), + SLOPE_FLOOR("slope_floor", new SlopeFloor(), BuildModeCategoryEnum.DIAGONAL, AllIcons.I_SLOPED_FLOOR, ModeOptions.OptionEnum.RAISED_EDGE), + CIRCLE("circle", new Circle(), BuildModeCategoryEnum.CIRCULAR, AllIcons.I_CIRCLE, ModeOptions.OptionEnum.CIRCLE_START, ModeOptions.OptionEnum.FILL), + CYLINDER("cylinder", new Cylinder(), BuildModeCategoryEnum.CIRCULAR, AllIcons.I_CYLINDER, ModeOptions.OptionEnum.CIRCLE_START, ModeOptions.OptionEnum.FILL), + SPHERE("sphere", new Sphere(), BuildModeCategoryEnum.CIRCULAR, AllIcons.I_SPHERE, ModeOptions.OptionEnum.CIRCLE_START, ModeOptions.OptionEnum.FILL); // PYRAMID("pyramid", new Pyramid(), BuildModeCategoryEnum.ROOF), // CONE("cone", new Cone(), BuildModeCategoryEnum.ROOF), // DOME("dome", new Dome(), BuildModeCategoryEnum.ROOF); @@ -22,12 +23,14 @@ public enum BuildModeEnum { private final String name; public final IBuildMode instance; public final BuildModeCategoryEnum category; + public final AllIcons icon; public final ModeOptions.OptionEnum[] options; - BuildModeEnum(String name, IBuildMode instance, BuildModeCategoryEnum category, ModeOptions.OptionEnum... options) { + BuildModeEnum(String name, IBuildMode instance, BuildModeCategoryEnum category, AllIcons icon, ModeOptions.OptionEnum... options) { this.name = name; this.instance = instance; this.category = category; + this.icon = icon; this.options = options; } diff --git a/src/main/java/nl/requios/effortlessbuilding/buildmode/ModeOptions.java b/src/main/java/nl/requios/effortlessbuilding/buildmode/ModeOptions.java index 1142b86..a7ccc6c 100644 --- a/src/main/java/nl/requios/effortlessbuilding/buildmode/ModeOptions.java +++ b/src/main/java/nl/requios/effortlessbuilding/buildmode/ModeOptions.java @@ -3,6 +3,7 @@ package nl.requios.effortlessbuilding.buildmode; import net.minecraft.world.entity.player.Player; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; +import nl.requios.effortlessbuilding.AllIcons; import nl.requios.effortlessbuilding.ClientEvents; import nl.requios.effortlessbuilding.EffortlessBuilding; import nl.requios.effortlessbuilding.EffortlessBuildingClient; @@ -104,46 +105,60 @@ public class ModeOptions { action != ActionEnum.OPEN_MODIFIER_SETTINGS && action != ActionEnum.OPEN_PLAYER_SETTINGS) { - EffortlessBuilding.logTranslate(player, "", action.name, "", true); + EffortlessBuilding.logTranslate(player, "", action.getNameKey(), "", true); } } public enum ActionEnum { - UNDO("effortlessbuilding.action.undo"), - REDO("effortlessbuilding.action.redo"), - OPEN_MODIFIER_SETTINGS("effortlessbuilding.action.open_modifier_settings"), - OPEN_PLAYER_SETTINGS("effortlessbuilding.action.open_player_settings"), + UNDO("undo", AllIcons.I_UNDO), + REDO("redo", AllIcons.I_REDO), + OPEN_MODIFIER_SETTINGS("open_modifier_settings", AllIcons.I_SETTINGS), + OPEN_PLAYER_SETTINGS("open_player_settings", AllIcons.I_SETTINGS), - REPLACE_ONLY_AIR("effortlessbuilding.action.replace_only_air"), - REPLACE_BLOCKS_AND_AIR("effortlessbuilding.action.replace_blocks_and_air"), - REPLACE_ONLY_BLOCKS("effortlessbuilding.action.replace_only_blocks"), - REPLACE_FILTERED_BY_OFFHAND("effortlessbuilding.action.replace_filtered_by_offhand"), - TOGGLE_PROTECT_TILE_ENTITIES("effortlessbuilding.action.toggle_protect_tile_entities"), + REPLACE_ONLY_AIR("replace_only_air", AllIcons.I_REPLACE), + REPLACE_BLOCKS_AND_AIR("replace_blocks_and_air", AllIcons.I_REPLACE), + REPLACE_ONLY_BLOCKS("replace_only_blocks", AllIcons.I_REPLACE), + REPLACE_FILTERED_BY_OFFHAND("replace_filtered_by_offhand", AllIcons.I_REPLACE), + TOGGLE_PROTECT_TILE_ENTITIES("toggle_protect_tile_entities", AllIcons.I_REPLACE), - NORMAL_SPEED("effortlessbuilding.action.normal_speed"), - FAST_SPEED("effortlessbuilding.action.fast_speed"), + NORMAL_SPEED("normal_speed", AllIcons.I_NORMAL_SPEED), + FAST_SPEED("fast_speed", AllIcons.I_FAST_SPEED), - FULL("effortlessbuilding.action.full"), - HOLLOW("effortlessbuilding.action.hollow"), + FULL("full", AllIcons.I_FILLED), + HOLLOW("hollow", AllIcons.I_HOLLOW), - CUBE_FULL("effortlessbuilding.action.full"), - CUBE_HOLLOW("effortlessbuilding.action.hollow"), - CUBE_SKELETON("effortlessbuilding.action.skeleton"), + CUBE_FULL("full", AllIcons.I_CUBE_FILLED), + CUBE_HOLLOW("hollow", AllIcons.I_CUBE_HOLLOW), + CUBE_SKELETON("skeleton", AllIcons.I_CUBE_SKELETON), - SHORT_EDGE("effortlessbuilding.action.short_edge"), - LONG_EDGE("effortlessbuilding.action.long_edge"), + SHORT_EDGE("short_edge", AllIcons.I_SHORT_EDGE), + LONG_EDGE("long_edge", AllIcons.I_LONG_EDGE), - THICKNESS_1("effortlessbuilding.action.thickness_1"), - THICKNESS_3("effortlessbuilding.action.thickness_3"), - THICKNESS_5("effortlessbuilding.action.thickness_5"), + THICKNESS_1("thickness_1", AllIcons.I_THICKNESS_1), + THICKNESS_3("thickness_3", AllIcons.I_THICKNESS_3), + THICKNESS_5("thickness_5", AllIcons.I_THICKNESS_5), - CIRCLE_START_CORNER("effortlessbuilding.action.start_corner"), - CIRCLE_START_CENTER("effortlessbuilding.action.start_center"); + CIRCLE_START_CORNER("start_corner", AllIcons.I_CIRCLE_START_CORNER), + CIRCLE_START_CENTER("start_center", AllIcons.I_CIRCLE_START_CENTER); public String name; + public AllIcons icon; - ActionEnum(String name) { + ActionEnum(String name, AllIcons icon) { this.name = name; + this.icon = icon; + } + + public String getName() { + return name; + } + + public String getNameKey() { + return "effortlessbuilding.action." + name; + } + + public String getDescriptionKey() { + return "effortlessbuilding.action." + name + ".description"; } } diff --git a/src/main/java/nl/requios/effortlessbuilding/buildmodifier/Array.java b/src/main/java/nl/requios/effortlessbuilding/buildmodifier/Array.java index dda4fb3..8e2377b 100644 --- a/src/main/java/nl/requios/effortlessbuilding/buildmodifier/Array.java +++ b/src/main/java/nl/requios/effortlessbuilding/buildmodifier/Array.java @@ -37,6 +37,7 @@ public class Array extends BaseModifier { var newBlockEntry = new BlockEntry(pos); newBlockEntry.copyRotationSettingsFrom(blockEntry); + blocks.add(newBlockEntry); } } } diff --git a/src/main/java/nl/requios/effortlessbuilding/buildmodifier/BuildModifiers.java b/src/main/java/nl/requios/effortlessbuilding/buildmodifier/BuildModifiers.java index 32dc5d1..ee9a3b7 100644 --- a/src/main/java/nl/requios/effortlessbuilding/buildmodifier/BuildModifiers.java +++ b/src/main/java/nl/requios/effortlessbuilding/buildmodifier/BuildModifiers.java @@ -1,33 +1,10 @@ package nl.requios.effortlessbuilding.buildmodifier; -import net.minecraft.nbt.CompoundTag; -import net.minecraft.nbt.NbtUtils; import net.minecraft.nbt.Tag; -import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.level.block.Blocks; import net.minecraft.world.entity.player.Player; -import net.minecraft.world.item.BlockItem; -import net.minecraft.world.item.context.BlockPlaceContext; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.item.context.UseOnContext; -import net.minecraft.core.Direction; -import net.minecraft.world.InteractionHand; -import net.minecraft.core.BlockPos; -import net.minecraft.world.phys.BlockHitResult; -import net.minecraft.world.phys.Vec3; -import net.minecraft.world.level.Level; -import nl.requios.effortlessbuilding.CommonConfig; import nl.requios.effortlessbuilding.EffortlessBuilding; -import nl.requios.effortlessbuilding.compatibility.CompatHelper; import nl.requios.effortlessbuilding.create.foundation.utility.NBTHelper; -import nl.requios.effortlessbuilding.systems.DelayedBlockPlacer; -import nl.requios.effortlessbuilding.systems.UndoRedo; import nl.requios.effortlessbuilding.utilities.BlockSet; -import nl.requios.effortlessbuilding.utilities.ReachHelper; -import nl.requios.effortlessbuilding.utilities.SurvivalHelper; -import nl.requios.effortlessbuilding.item.AbstractRandomizerBagItem; -import nl.requios.effortlessbuilding.utilities.UndoRedoBlockSet; import java.util.ArrayList; import java.util.Collections; diff --git a/src/main/java/nl/requios/effortlessbuilding/buildmodifier/Mirror.java b/src/main/java/nl/requios/effortlessbuilding/buildmodifier/Mirror.java index f5db9ef..5561f1a 100644 --- a/src/main/java/nl/requios/effortlessbuilding/buildmodifier/Mirror.java +++ b/src/main/java/nl/requios/effortlessbuilding/buildmodifier/Mirror.java @@ -1,5 +1,6 @@ package nl.requios.effortlessbuilding.buildmodifier; +import net.minecraft.client.Minecraft; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.NbtUtils; import net.minecraft.nbt.Tag; @@ -19,6 +20,13 @@ public class Mirror extends BaseModifier { public boolean drawLines = true; public boolean drawPlanes = true; + public Mirror() { + super(); + var player = Minecraft.getInstance().player; + if (player != null) + position = Vec3.atLowerCornerOf(Minecraft.getInstance().player.blockPosition()); + } + @Override public void findCoordinates(BlockSet blocks, Player player) { if (!(enabled && (mirrorX || mirrorY || mirrorZ))) return; @@ -43,6 +51,7 @@ public class Mirror extends BaseModifier { var newBlockEntry = new BlockEntry(newBlockPos); newBlockEntry.copyRotationSettingsFrom(blockEntry); newBlockEntry.mirrorX = !newBlockEntry.mirrorX; + blocks.add(newBlockEntry); if (mirrorY) performMirrorY(blocks, newBlockEntry); if (mirrorZ) performMirrorZ(blocks, newBlockEntry); @@ -58,6 +67,7 @@ public class Mirror extends BaseModifier { var newBlockEntry = new BlockEntry(newBlockPos); newBlockEntry.copyRotationSettingsFrom(blockEntry); newBlockEntry.mirrorY = !newBlockEntry.mirrorY; + blocks.add(newBlockEntry); if (mirrorZ) performMirrorZ(blocks, newBlockEntry); } @@ -72,6 +82,7 @@ public class Mirror extends BaseModifier { var newBlockEntry = new BlockEntry(newBlockPos); newBlockEntry.copyRotationSettingsFrom(blockEntry); newBlockEntry.mirrorZ = !newBlockEntry.mirrorZ; + blocks.add(newBlockEntry); } public boolean isWithinRange(BlockPos blockPos) { @@ -83,6 +94,29 @@ public class Mirror extends BaseModifier { public int getReach() { return radius * 2; //Change ModifierSettings#setReachUpgrade too } + + public void toggleMirrorAxis(int index) { + switch (index) { + case 0 -> mirrorX = !mirrorX; + case 1 -> mirrorY = !mirrorY; + case 2 -> mirrorZ = !mirrorZ; + } + } + + public boolean getMirrorAxis(int index) { + switch (index) { + case 0 -> { + return mirrorX; + } + case 1 -> { + return mirrorY; + } + case 2 -> { + return mirrorZ; + } + } + return false; + } @Override public CompoundTag serializeNBT() { diff --git a/src/main/java/nl/requios/effortlessbuilding/buildmodifier/RadialMirror.java b/src/main/java/nl/requios/effortlessbuilding/buildmodifier/RadialMirror.java index 944a175..9a0f7e3 100644 --- a/src/main/java/nl/requios/effortlessbuilding/buildmodifier/RadialMirror.java +++ b/src/main/java/nl/requios/effortlessbuilding/buildmodifier/RadialMirror.java @@ -73,6 +73,8 @@ public class RadialMirror extends BaseModifier { //rotate block double angleToCenter = Mth.atan2(relNewVec.x, relNewVec.z); //between -PI and PI rotateBlockEntry(newBlockEntry, angleToCenter, doAlternate); + + blocks.add(newBlockEntry); } } diff --git a/src/main/java/nl/requios/effortlessbuilding/create/foundation/gui/AbstractSimiScreen.java b/src/main/java/nl/requios/effortlessbuilding/create/foundation/gui/AbstractSimiScreen.java index cc71dfb..26d1b8f 100644 --- a/src/main/java/nl/requios/effortlessbuilding/create/foundation/gui/AbstractSimiScreen.java +++ b/src/main/java/nl/requios/effortlessbuilding/create/foundation/gui/AbstractSimiScreen.java @@ -12,6 +12,7 @@ import net.minecraft.client.gui.screens.Screen; import net.minecraft.network.chat.Component; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; +import nl.requios.effortlessbuilding.gui.buildmodifier.ModifiersScreenList; import java.util.Collection; import java.util.List; @@ -146,7 +147,13 @@ public abstract class AbstractSimiScreen extends Screen { int tty = simiWidget.lockedTooltipY == -1 ? mouseY : simiWidget.lockedTooltipY + simiWidget.y; renderComponentTooltip(ms, tooltip, ttx, tty); } + + //Added + if (widget instanceof ModifiersScreenList list) { + list.renderWindowForeground(ms, mouseX, mouseY, partialTicks); + } } + } protected void endFrame() {} diff --git a/src/main/java/nl/requios/effortlessbuilding/create/foundation/gui/widget/ScrollInput.java b/src/main/java/nl/requios/effortlessbuilding/create/foundation/gui/widget/ScrollInput.java index 44423b3..bb7e674 100644 --- a/src/main/java/nl/requios/effortlessbuilding/create/foundation/gui/widget/ScrollInput.java +++ b/src/main/java/nl/requios/effortlessbuilding/create/foundation/gui/widget/ScrollInput.java @@ -132,7 +132,8 @@ public class ScrollInput extends AbstractSimiWidget { onChanged(); } - return priorState != state; +// return priorState != state; + return true; //Changed } protected void clampState() { diff --git a/src/main/java/nl/requios/effortlessbuilding/create/foundation/utility/outliner/Outliner.java b/src/main/java/nl/requios/effortlessbuilding/create/foundation/utility/outliner/Outliner.java index c1df937..5588623 100644 --- a/src/main/java/nl/requios/effortlessbuilding/create/foundation/utility/outliner/Outliner.java +++ b/src/main/java/nl/requios/effortlessbuilding/create/foundation/utility/outliner/Outliner.java @@ -154,7 +154,7 @@ public class Outliner { public static class OutlineEntry { - static final int fadeTicks = 8; + static final int fadeTicks = 4; private Outline outline; private int ticksTillRemoval; diff --git a/src/main/java/nl/requios/effortlessbuilding/gui/buildmode/RadialMenu.java b/src/main/java/nl/requios/effortlessbuilding/gui/buildmode/RadialMenu.java index b793e18..3b10d16 100644 --- a/src/main/java/nl/requios/effortlessbuilding/gui/buildmode/RadialMenu.java +++ b/src/main/java/nl/requios/effortlessbuilding/gui/buildmode/RadialMenu.java @@ -19,6 +19,7 @@ import net.minecraft.resources.ResourceLocation; import net.minecraft.sounds.SoundEvents; import net.minecraft.sounds.SoundSource; import net.minecraft.util.RandomSource; +import nl.requios.effortlessbuilding.AllIcons; import nl.requios.effortlessbuilding.ClientEvents; import nl.requios.effortlessbuilding.EffortlessBuilding; import nl.requios.effortlessbuilding.EffortlessBuildingClient; @@ -296,9 +297,8 @@ public class RadialMenu extends Screen { final double x = (menuRegion.x1 + menuRegion.x2) * 0.5 * (ringOuterEdge * 0.55 + 0.45 * ringInnerEdge); final double y = (menuRegion.y1 + menuRegion.y2) * 0.5 * (ringOuterEdge * 0.55 + 0.45 * ringInnerEdge); - - RenderSystem.setShaderTexture(0, new ResourceLocation(EffortlessBuilding.MODID, "textures/icons/" + menuRegion.mode.name().toLowerCase() + ".png")); - blit(ms, (int) (middleX + x - 8), (int) (middleY + y - 8), 16, 16, 0, 0, 18, 18, 18, 18); + + menuRegion.mode.icon.render(ms, (int) (middleX + x - 8), (int) (middleY + y - 8)); } //Draw action icons @@ -307,8 +307,7 @@ public class RadialMenu extends Screen { final double x = (button.x1 + button.x2) / 2 + 0.01; final double y = (button.y1 + button.y2) / 2 + 0.01; - RenderSystem.setShaderTexture(0, new ResourceLocation(EffortlessBuilding.MODID, "textures/icons/" + button.action.name().toLowerCase() + ".png")); - blit(ms, (int) (middleX + x - 8), (int) (middleY + y - 8), 16, 16, 0, 0, 18, 18, 18, 18); + button.action.icon.render(ms, (int) (middleX + x - 8), (int) (middleY + y - 8)); } ms.popPose(); @@ -512,10 +511,10 @@ public class RadialMenu extends Screen { public MenuButton(final ActionEnum action, final double x, final double y, final Direction textSide) { - this.name = I18n.get(action.name); + this.name = I18n.get(action.getNameKey()); - if (I18n.exists(action.name + ".description")) { - this.description = I18n.get(action.name + ".description"); + if (I18n.exists(action.getDescriptionKey())) { + this.description = I18n.get(action.getDescriptionKey()); } this.action = action; diff --git a/src/main/java/nl/requios/effortlessbuilding/gui/buildmodifier/ArrayEntry.java b/src/main/java/nl/requios/effortlessbuilding/gui/buildmodifier/ArrayEntry.java index c113e02..4bd2377 100644 --- a/src/main/java/nl/requios/effortlessbuilding/gui/buildmodifier/ArrayEntry.java +++ b/src/main/java/nl/requios/effortlessbuilding/gui/buildmodifier/ArrayEntry.java @@ -1,74 +1,47 @@ package nl.requios.effortlessbuilding.gui.buildmodifier; import com.mojang.blaze3d.vertex.PoseStack; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.components.Widget; -import net.minecraft.client.gui.screens.Screen; -import net.minecraft.core.BlockPos; -import net.minecraft.network.chat.Component; import net.minecraft.ChatFormatting; +import net.minecraft.client.Minecraft; +import net.minecraft.network.chat.Component; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; import nl.requios.effortlessbuilding.AllGuiTextures; -import nl.requios.effortlessbuilding.EffortlessBuilding; import nl.requios.effortlessbuilding.buildmodifier.Array; import nl.requios.effortlessbuilding.buildmodifier.BaseModifier; -import nl.requios.effortlessbuilding.create.foundation.gui.AbstractSimiScreen; -import nl.requios.effortlessbuilding.create.foundation.gui.widget.Label; import nl.requios.effortlessbuilding.create.foundation.gui.widget.ScrollInput; -import nl.requios.effortlessbuilding.create.foundation.utility.Components; -import nl.requios.effortlessbuilding.create.foundation.utility.FontHelper; -import nl.requios.effortlessbuilding.gui.elements.GuiCheckBoxFixed; -import nl.requios.effortlessbuilding.gui.elements.GuiNumberField; -import nl.requios.effortlessbuilding.gui.elements.GuiScrollPane; +import nl.requios.effortlessbuilding.gui.elements.LabeledScrollInput; import nl.requios.effortlessbuilding.utilities.MathHelper; import nl.requios.effortlessbuilding.utilities.ReachHelper; -import java.util.ArrayList; -import java.util.List; import java.util.Vector; @OnlyIn(Dist.CLIENT) public class ArrayEntry extends BaseModifierEntry { protected Vector offsetInputs = new Vector<>(3); - protected Vector