Skip to content

Commit 4bdf596

Browse files
committed
Split button textures into separate sprites
1 parent f69d75d commit 4bdf596

13 files changed

+39
-44
lines changed

common/src/main/java/com/mrbysco/armorposer/client/gui/ArmorStandScreen.java

+39-12
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package com.mrbysco.armorposer.client.gui;
22

3+
import com.mrbysco.armorposer.Reference;
34
import com.mrbysco.armorposer.client.gui.widgets.NumberFieldBox;
4-
import com.mrbysco.armorposer.client.gui.widgets.PoseImageButton;
55
import com.mrbysco.armorposer.client.gui.widgets.ToggleButton;
66
import com.mrbysco.armorposer.data.SwapData;
77
import com.mrbysco.armorposer.platform.Services;
@@ -11,8 +11,10 @@
1111
import net.minecraft.client.gui.GuiGraphics;
1212
import net.minecraft.client.gui.components.Button;
1313
import net.minecraft.client.gui.components.EditBox;
14+
import net.minecraft.client.gui.components.ImageButton;
1415
import net.minecraft.client.gui.components.LockIconButton;
1516
import net.minecraft.client.gui.components.Tooltip;
17+
import net.minecraft.client.gui.components.WidgetSprites;
1618
import net.minecraft.client.gui.screens.Screen;
1719
import net.minecraft.client.resources.language.I18n;
1820
import net.minecraft.nbt.CompoundTag;
@@ -21,10 +23,26 @@
2123
import net.minecraft.nbt.ListTag;
2224
import net.minecraft.nbt.TagParser;
2325
import net.minecraft.network.chat.Component;
26+
import net.minecraft.resources.ResourceLocation;
2427
import net.minecraft.world.entity.decoration.ArmorStand;
2528
import net.minecraft.world.phys.Vec3;
2629

2730
public class ArmorStandScreen extends Screen {
31+
private static final WidgetSprites MIRROR_POSE_SPRITES = new WidgetSprites(
32+
new ResourceLocation(Reference.MOD_ID, "widget/mirror_pose"), new ResourceLocation(Reference.MOD_ID, "widget/mirror_pose_highlighted")
33+
);
34+
private static final WidgetSprites MIRROR_LEGS_SPRITES = new WidgetSprites(
35+
new ResourceLocation(Reference.MOD_ID, "widget/mirror_legs"), new ResourceLocation(Reference.MOD_ID, "widget/mirror_legs_highlighted")
36+
);
37+
private static final WidgetSprites MIRROR_ARMS_SPRITES = new WidgetSprites(
38+
new ResourceLocation(Reference.MOD_ID, "widget/mirror_arms"), new ResourceLocation(Reference.MOD_ID, "widget/mirror_arms_highlighted")
39+
);
40+
private static final WidgetSprites SWAP_TO_HEAD_SPRITES = new WidgetSprites(
41+
new ResourceLocation(Reference.MOD_ID, "widget/swap_to_head"), new ResourceLocation(Reference.MOD_ID, "widget/swap_to_head_highlighted")
42+
);
43+
private static final WidgetSprites MIRROR_HANDS_SPRITES = new WidgetSprites(
44+
new ResourceLocation(Reference.MOD_ID, "widget/mirror_hands"), new ResourceLocation(Reference.MOD_ID, "widget/mirror_hands_highlighted")
45+
);
2846
private final ArmorStand entityArmorStand;
2947
private final ArmorStandData armorStandData;
3048

@@ -152,14 +170,14 @@ public void init() {
152170
}).bounds(offsetX + 66, offsetY + 22, 64, 20).tooltip(Tooltip.create(Component.translatable("armorposer.gui.tooltip.paste"))).build());
153171

154172
offsetX = this.width - 20;
155-
this.addRenderableWidget(new PoseImageButton(offsetX - (22 * 6) - 30, offsetY, (button) -> {
173+
ImageButton mirrorPose = this.addRenderableWidget(new ImageButton(offsetX - (22 * 6) - 30, offsetY, 20, 20, MIRROR_POSE_SPRITES, (button) -> {
156174
//Mirror head
157175
float[] head = new float[]{poseTextFields[0].getFloat(), poseTextFields[1].getFloat(), poseTextFields[2].getFloat()};
158176
poseTextFields[0].setValue(String.valueOf(head[0]));
159177
poseTextFields[1].setValue(String.valueOf(head[1] != 0 ? -head[1] : 0));
160178
poseTextFields[2].setValue(String.valueOf(head[2] != 0 ? -head[2] : 0));
161179

162-
//Mirror head
180+
//Mirror Body
163181
float[] body = new float[]{poseTextFields[3].getFloat(), poseTextFields[4].getFloat(), poseTextFields[5].getFloat()};
164182
poseTextFields[3].setValue(String.valueOf(body[0]));
165183
poseTextFields[4].setValue(String.valueOf(body[1] != 0 ? -body[1] : 0));
@@ -188,9 +206,10 @@ public void init() {
188206
poseTextFields[15].setValue(String.valueOf(leftArm[0]));
189207
poseTextFields[16].setValue(String.valueOf(leftArm[1] != 0 ? -leftArm[1] : 0));
190208
poseTextFields[17].setValue(String.valueOf(leftArm[2] != 0 ? -leftArm[2] : 0));
209+
}));
210+
mirrorPose.setTooltip(Tooltip.create(Component.translatable("armorposer.gui.tooltip.mirror")));
191211

192-
}, 0, Tooltip.create(Component.translatable("armorposer.gui.tooltip.mirror"))));
193-
this.addRenderableWidget(new PoseImageButton(offsetX - (22 * 5) - 30, offsetY, (button) -> {
212+
ImageButton mirrorLegs = this.addRenderableWidget(new ImageButton(offsetX - (22 * 5) - 30, offsetY, 20, 20, MIRROR_LEGS_SPRITES, (button) -> {
194213
//Mirror Legs
195214
float[] leftLeg = new float[]{poseTextFields[6].getFloat(), poseTextFields[7].getFloat(), poseTextFields[8].getFloat()};
196215
float[] rightLeg = new float[]{poseTextFields[9].getFloat(), poseTextFields[10].getFloat(), poseTextFields[11].getFloat()};
@@ -202,8 +221,10 @@ public void init() {
202221
poseTextFields[9].setValue(String.valueOf(leftLeg[0]));
203222
poseTextFields[10].setValue(String.valueOf(leftLeg[1] != 0 ? -leftLeg[1] : 0));
204223
poseTextFields[11].setValue(String.valueOf(leftLeg[2] != 0 ? -leftLeg[2] : 0));
205-
}, 1, Tooltip.create(Component.translatable("armorposer.gui.tooltip.mirror_legs"))));
206-
this.addRenderableWidget(new PoseImageButton(offsetX - (22 * 4) - 30, offsetY, (button) -> {
224+
}));
225+
mirrorLegs.setTooltip(Tooltip.create(Component.translatable("armorposer.gui.tooltip.mirror_legs")));
226+
227+
ImageButton mirrorArms = this.addRenderableWidget(new ImageButton(offsetX - (22 * 4) - 30, offsetY, 20, 20, MIRROR_ARMS_SPRITES, (button) -> {
207228
//Mirror Arms
208229
float[] leftArm = new float[]{poseTextFields[12].getFloat(), poseTextFields[13].getFloat(), poseTextFields[14].getFloat()};
209230
float[] rightArm = new float[]{poseTextFields[15].getFloat(), poseTextFields[16].getFloat(), poseTextFields[17].getFloat()};
@@ -215,17 +236,23 @@ public void init() {
215236
poseTextFields[15].setValue(String.valueOf(leftArm[0]));
216237
poseTextFields[16].setValue(String.valueOf(leftArm[1] != 0 ? -leftArm[1] : 0));
217238
poseTextFields[17].setValue(String.valueOf(leftArm[2] != 0 ? -leftArm[2] : 0));
218-
}, 2, Tooltip.create(Component.translatable("armorposer.gui.tooltip.mirror_arms"))));
219-
this.addRenderableWidget(new PoseImageButton(offsetX - (22 * 3) - 30, offsetY, (button) -> {
239+
}));
240+
mirrorArms.setTooltip(Tooltip.create(Component.translatable("armorposer.gui.tooltip.mirror_arms")));
241+
242+
ImageButton swapToHead = this.addRenderableWidget(new ImageButton(offsetX - (22 * 3) - 30, offsetY, 20, 20, SWAP_TO_HEAD_SPRITES, (button) -> {
220243
//Swap item in main hand with head
221244
Services.PLATFORM.swapSlots(this.entityArmorStand, SwapData.Action.SWAP_WITH_HEAD);
222245

223-
}, 3, Tooltip.create(Component.translatable("armorposer.gui.tooltip.swap_head"))));
224-
this.addRenderableWidget(new PoseImageButton(offsetX - (22 * 2) - 30, offsetY, (button) -> {
246+
}));
247+
swapToHead.setTooltip(Tooltip.create(Component.translatable("armorposer.gui.tooltip.swap_head")));
248+
249+
ImageButton swapHands = this.addRenderableWidget(new ImageButton(offsetX - (22 * 2) - 30, offsetY, 20, 20, MIRROR_HANDS_SPRITES, (button) -> {
225250
//Swap item in main and offhand
226251
Services.PLATFORM.swapSlots(this.entityArmorStand, SwapData.Action.SWAP_HANDS);
227252

228-
}, 4, Tooltip.create(Component.translatable("armorposer.gui.tooltip.swap_hands"))));
253+
}));
254+
swapHands.setTooltip(Tooltip.create(Component.translatable("armorposer.gui.tooltip.swap_hands")));
255+
229256
this.addRenderableWidget(this.lockButton = new LockIconButton(offsetX - (22) - 30, offsetY, (button) -> {
230257
this.lockButton.setLocked(!this.lockButton.isLocked());
231258
}));

common/src/main/java/com/mrbysco/armorposer/client/gui/widgets/PoseImageButton.java

-32
This file was deleted.
Binary file not shown.
Loading
Loading
Loading
Loading
Loading

0 commit comments

Comments
 (0)