Skip to content

Commit

Permalink
switch allowVisits and allowRequests buttons to checkboxes
Browse files Browse the repository at this point in the history
  • Loading branch information
MelanX committed Apr 10, 2024
1 parent b9d6526 commit cb49a57
Show file tree
Hide file tree
Showing 6 changed files with 33 additions and 68 deletions.
Expand Up @@ -3,10 +3,10 @@
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Lists;
import com.mojang.blaze3d.vertex.PoseStack;
import de.melanx.skyblockbuilder.client.SizeableCheckbox;
import de.melanx.skyguis.client.screen.BaseScreen;
import de.melanx.skyguis.client.widget.RenderArea;
import de.melanx.skyguis.client.widget.ScrollbarWidget;
import de.melanx.skyguis.client.widget.sizable.SizeableCheckbox;
import de.melanx.skyguis.util.ComponentBuilder;
import de.melanx.skyguis.util.TextHelper;
import net.minecraft.client.gui.Font;
Expand Down
Expand Up @@ -2,6 +2,7 @@

import com.google.common.collect.Sets;
import com.mojang.authlib.GameProfile;
import de.melanx.skyblockbuilder.client.SizeableCheckbox;
import de.melanx.skyblockbuilder.data.SkyblockSavedData;
import de.melanx.skyblockbuilder.data.Team;
import de.melanx.skyguis.SkyGUIs;
Expand All @@ -10,7 +11,6 @@
import de.melanx.skyguis.client.screen.base.list.PlayerListScreen;
import de.melanx.skyguis.client.screen.notification.InformationScreen;
import de.melanx.skyguis.client.screen.notification.YouSureScreen;
import de.melanx.skyguis.client.widget.sizable.SizeableCheckbox;
import de.melanx.skyguis.util.ComponentBuilder;
import de.melanx.skyguis.util.LoadingResult;
import de.melanx.skyguis.util.TextHelper;
Expand Down
@@ -1,6 +1,7 @@
package de.melanx.skyguis.client.screen.edit;

import com.mojang.authlib.GameProfile;
import de.melanx.skyblockbuilder.client.SizeableCheckbox;
import de.melanx.skyblockbuilder.data.Team;
import de.melanx.skyguis.SkyGUIs;
import de.melanx.skyguis.client.screen.BaseScreen;
Expand All @@ -9,7 +10,6 @@
import de.melanx.skyguis.client.screen.info.AllTeamsScreen;
import de.melanx.skyguis.client.screen.notification.InformationScreen;
import de.melanx.skyguis.client.screen.notification.YouSureScreen;
import de.melanx.skyguis.client.widget.sizable.SizeableCheckbox;
import de.melanx.skyguis.util.ComponentBuilder;
import de.melanx.skyguis.util.LoadingResult;
import de.melanx.skyguis.util.TextHelper;
Expand Down
@@ -1,5 +1,6 @@
package de.melanx.skyguis.client.screen.info;

import de.melanx.skyblockbuilder.client.SizeableCheckbox;
import de.melanx.skyblockbuilder.config.common.PermissionsConfig;
import de.melanx.skyblockbuilder.config.common.TemplatesConfig;
import de.melanx.skyblockbuilder.data.Team;
Expand All @@ -19,7 +20,6 @@
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.GuiGraphics;
import net.minecraft.client.gui.components.Button;
import net.minecraft.client.gui.components.Tooltip;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
import net.minecraft.core.particles.ParticleTypes;
Expand Down Expand Up @@ -51,6 +51,9 @@ public class TeamEditScreen extends BaseScreen implements LoadingResultHandler {
private static final Component ALLOWED = ComponentBuilder.text("allowed").withStyle(ChatFormatting.GREEN);
private static final Component DISALLOWED = ComponentBuilder.text("disallowed").withStyle(ChatFormatting.RED);

private static final int LEFT_PADDING = 10;
private static final int CHECKBOX_X = LEFT_PADDING + Math.max(TextHelper.stringLength(ALLOW_VISITS), TextHelper.stringLength(ALLOW_REQUESTS));

private final Team team;
private final BaseScreen prev;
private final Random random;
Expand All @@ -60,7 +63,7 @@ public class TeamEditScreen extends BaseScreen implements LoadingResultHandler {
private boolean posValid;

public TeamEditScreen(Team team, BaseScreen prev) {
super(Component.literal(team.getName()), 245, 231);
super(Component.literal(team.getName()), 245, 220);
this.team = team;
this.prev = prev;
this.random = new Random();
Expand Down Expand Up @@ -94,7 +97,7 @@ protected void init() {
}
this.onClose();
})
.bounds(this.x(10), this.y(45), 70, 20)
.bounds(this.x(LEFT_PADDING), this.y(45), 70, 20)
.build());

this.addButton = this.addRenderableWidget(Button.builder(ADD, button -> {
Expand All @@ -111,7 +114,7 @@ protected void init() {
//noinspection ConstantConditions
Vec3 pos = Minecraft.getInstance().player.position();
String posStr = (int) pos.x + " " + (int) pos.y + " " + (int) pos.z;
this.posBox = new BlinkingEditBox(this.font, this.x(10), this.y(70), 145, 18, Component.literal(posStr));
this.posBox = new BlinkingEditBox(this.font, this.x(LEFT_PADDING), this.y(70), 145, 18, Component.literal(posStr));
this.posBox.setValue(posStr);
this.posBox.setMaxLength(Short.MAX_VALUE);
this.addRenderableWidget(this.posBox);
Expand All @@ -128,25 +131,31 @@ protected void init() {
.build());

this.addRenderableWidget(Button.builder(SHOW, button -> Minecraft.getInstance().setScreen(new TeamPlayersScreen(this.team, this)))
.bounds(this.x(10), this.y(115), 90, 20)
.bounds(this.x(LEFT_PADDING), this.y(115), 90, 20)
.build());

this.addRenderableWidget(Button.builder(INVITE, button -> Minecraft.getInstance().setScreen(new InvitablePlayersScreen(this.team, this)))
.bounds(this.x(105), this.y(115), 90, 20)
.build());

this.addRenderableWidget(Button.builder(ALLOW_VISITS, button -> ToggleButtons.toggleState(this.team, button, VISIT_BASE, ToggleButtons.Type.VISITS))
.tooltip(Tooltip.create(VISIT_BASE.copy().append(this.team.allowsVisits() ? ALLOWED : DISALLOWED)))
.bounds(this.x(10), this.y(161), 90, 20)
.build());
this.addRenderableWidget(new SizeableCheckbox(this.x(CHECKBOX_X + 5), this.y(147), 10, this.team.allowsVisits(), VISIT_BASE.copy().append(this.team.allowsVisits() ? ALLOWED : DISALLOWED)) {
@Override
public void onPress() {
super.onPress();
ToggleButtons.toggleState(TeamEditScreen.this.team, this, VISIT_BASE, ToggleButtons.Type.VISITS);
}
});

this.addRenderableWidget(Button.builder(ALLOW_REQUESTS, button -> ToggleButtons.toggleState(this.team, button, REQUEST_BASE, ToggleButtons.Type.JOIN_REQUEST))
.tooltip(Tooltip.create(REQUEST_BASE.copy().append(this.team.allowsJoinRequests() ? ALLOWED : DISALLOWED)))
.bounds(this.x(105), this.y(161), 90, 20)
.build());
this.addRenderableWidget(new SizeableCheckbox(this.x(CHECKBOX_X + 5), this.y(162), 10, this.team.allowsJoinRequests(), REQUEST_BASE.copy().append(this.team.allowsJoinRequests() ? ALLOWED : DISALLOWED)) {
@Override
public void onPress() {
super.onPress();
ToggleButtons.toggleState(TeamEditScreen.this.team, this, REQUEST_BASE, ToggleButtons.Type.JOIN_REQUEST);
}
});

this.addRenderableWidget(Button.builder(PREV_SCREEN_COMPONENT, button -> Minecraft.getInstance().setScreen(this.prev))
.bounds(this.x(10), this.y(201), 226, 20)
.bounds(this.x(LEFT_PADDING), this.y(this.ySize - 30), 226, 20)
.build());

if (!PermissionsConfig.selfManage || !PermissionsConfig.Spawns.modifySpawns) {
Expand Down Expand Up @@ -174,9 +183,10 @@ public void render_(@Nonnull GuiGraphics guiGraphics, int mouseX, int mouseY, fl
super.render_(guiGraphics, mouseX, mouseY, partialTick);
this.renderTitle(guiGraphics);

guiGraphics.drawString(this.font, SPAWNS, this.x(10), this.y(30), Color.DARK_GRAY.getRGB(), false);
guiGraphics.drawString(this.font, MEMBERS, this.x(10), this.y(100), Color.DARK_GRAY.getRGB(), false);
guiGraphics.drawString(this.font, REQUESTS, this.x(10), this.y(146), Color.DARK_GRAY.getRGB(), false);
guiGraphics.drawString(this.font, SPAWNS, this.x(LEFT_PADDING), this.y(30), Color.DARK_GRAY.getRGB(), false);
guiGraphics.drawString(this.font, MEMBERS, this.x(LEFT_PADDING), this.y(100), Color.DARK_GRAY.getRGB(), false);
guiGraphics.drawString(this.font, ALLOW_VISITS, this.x(LEFT_PADDING), this.y(149), Color.DARK_GRAY.getRGB(), false);
guiGraphics.drawString(this.font, ALLOW_REQUESTS, this.x(LEFT_PADDING), this.y(164), Color.DARK_GRAY.getRGB(), false);

if (!this.posValid) {
guiGraphics.pose().pushPose();
Expand Down

This file was deleted.

6 changes: 3 additions & 3 deletions src/main/java/de/melanx/skyguis/util/ToggleButtons.java
Expand Up @@ -3,7 +3,7 @@
import de.melanx.skyblockbuilder.data.Team;
import de.melanx.skyguis.SkyGUIs;
import net.minecraft.ChatFormatting;
import net.minecraft.client.gui.components.Button;
import net.minecraft.client.gui.components.AbstractWidget;
import net.minecraft.client.gui.components.Tooltip;
import net.minecraft.network.chat.Component;
import net.minecraft.network.chat.MutableComponent;
Expand All @@ -13,12 +13,12 @@ public class ToggleButtons {
private static final Component ALLOWED = ComponentBuilder.text("allowed").withStyle(ChatFormatting.GREEN);
private static final Component DISALLOWED = ComponentBuilder.text("disallowed").withStyle(ChatFormatting.RED);

public static void toggleState(Team team, Button button, MutableComponent base, Type type) {
public static void toggleState(Team team, AbstractWidget widget, MutableComponent base, Type type) {
switch (type) {
case VISITS -> team.setAllowVisit(!team.allowsVisits());
case JOIN_REQUEST -> team.setAllowJoinRequest(!team.allowsJoinRequests());
}
button.setTooltip(Tooltip.create(base.copy().append(getStatus(team, type) ? ALLOWED : DISALLOWED)));
widget.setTooltip(Tooltip.create(base.copy().append(getStatus(team, type) ? ALLOWED : DISALLOWED)));
SkyGUIs.getNetwork().toggleState(team, type);
}

Expand Down

0 comments on commit cb49a57

Please sign in to comment.