|
@@ -6,6 +6,8 @@ import io.wispforest.owo.ui.container.GridLayout;
|
|
import io.wispforest.owo.ui.core.*;
|
|
import io.wispforest.owo.ui.core.*;
|
|
import io.wispforest.owo.ui.event.MouseEnter;
|
|
import io.wispforest.owo.ui.event.MouseEnter;
|
|
import lombok.AllArgsConstructor;
|
|
import lombok.AllArgsConstructor;
|
|
|
|
+import net.fabricmc.fabric.api.client.networking.v1.ClientPlayConnectionEvents;
|
|
|
|
+import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking;
|
|
import net.kyori.adventure.platform.fabric.FabricAudiences;
|
|
import net.kyori.adventure.platform.fabric.FabricAudiences;
|
|
import net.kyori.adventure.platform.fabric.FabricServerAudiences;
|
|
import net.kyori.adventure.platform.fabric.FabricServerAudiences;
|
|
import net.minecraft.client.gui.DrawContext;
|
|
import net.minecraft.client.gui.DrawContext;
|
|
@@ -13,9 +15,11 @@ import net.minecraft.item.ItemStack;
|
|
import net.minecraft.text.OrderedText;
|
|
import net.minecraft.text.OrderedText;
|
|
import net.minecraft.text.Text;
|
|
import net.minecraft.text.Text;
|
|
import net.minecraft.util.Identifier;
|
|
import net.minecraft.util.Identifier;
|
|
|
|
+import xyz.tbvns.rogue_block.Packets.registeredPackets.BuyUpgradePacket;
|
|
import xyz.tbvns.rogue_block.Upgrades.Upgrade;
|
|
import xyz.tbvns.rogue_block.Upgrades.Upgrade;
|
|
import xyz.tbvns.rogue_block.Upgrades.UpgradeRarity;
|
|
import xyz.tbvns.rogue_block.Upgrades.UpgradeRarity;
|
|
import xyz.tbvns.rogue_block.Utils;
|
|
import xyz.tbvns.rogue_block.Utils;
|
|
|
|
+import xyz.tbvns.rogue_block.client.Networking.NetworkManager;
|
|
import xyz.tbvns.rogue_block.client.Rogue_blockClient;
|
|
import xyz.tbvns.rogue_block.client.Rogue_blockClient;
|
|
|
|
|
|
import java.util.List;
|
|
import java.util.List;
|
|
@@ -24,6 +28,7 @@ public class UpgradeComponent {
|
|
Upgrade upgrade;
|
|
Upgrade upgrade;
|
|
boolean isHovered = false;
|
|
boolean isHovered = false;
|
|
double x, y;
|
|
double x, y;
|
|
|
|
+ public boolean isOwned;
|
|
|
|
|
|
Component textureComponent;
|
|
Component textureComponent;
|
|
Component itemComponent;
|
|
Component itemComponent;
|
|
@@ -37,13 +42,18 @@ public class UpgradeComponent {
|
|
public void add(FlowLayout layout) {
|
|
public void add(FlowLayout layout) {
|
|
Component item = Components.item(upgrade.itemDisplay());
|
|
Component item = Components.item(upgrade.itemDisplay());
|
|
item.positioning().set(Positioning.absolute((int) x, (int) y));
|
|
item.positioning().set(Positioning.absolute((int) x, (int) y));
|
|
- Component component = getTextureComponent(upgrade.getRarity().unobtained, item);
|
|
|
|
|
|
|
|
- layout.child(component);
|
|
|
|
- layout.child(item);
|
|
|
|
|
|
+ if (isOwned) {
|
|
|
|
+ textureComponent = getTextureComponent(upgrade.getRarity().obtained, item);
|
|
|
|
+ layout.child(textureComponent);
|
|
|
|
+ } else {
|
|
|
|
+ textureComponent = getTextureComponent(upgrade.getRarity().unobtained, item);
|
|
|
|
+ layout.child(textureComponent);
|
|
|
|
+ }
|
|
|
|
|
|
- textureComponent = component;
|
|
|
|
|
|
+ layout.child(item);
|
|
itemComponent = item;
|
|
itemComponent = item;
|
|
|
|
+
|
|
}
|
|
}
|
|
|
|
|
|
public void drawLine(DrawContext context) {
|
|
public void drawLine(DrawContext context) {
|
|
@@ -101,13 +111,25 @@ public class UpgradeComponent {
|
|
});
|
|
});
|
|
|
|
|
|
component.mouseDown().subscribe((mouseX, mouseY, button) -> {
|
|
component.mouseDown().subscribe((mouseX, mouseY, button) -> {
|
|
- ParentComponent parentComponent = textureComponent.root();
|
|
|
|
- textureComponent.remove();
|
|
|
|
- FlowLayout layout = (FlowLayout) parentComponent;
|
|
|
|
- textureComponent = getTextureComponent(upgrade.getRarity().obtained, item);
|
|
|
|
- layout.child(textureComponent);
|
|
|
|
- return true;
|
|
|
|
|
|
+ if (buy()) {
|
|
|
|
+ ParentComponent parentComponent = textureComponent.root();
|
|
|
|
+ textureComponent.remove();
|
|
|
|
+ FlowLayout layout = (FlowLayout) parentComponent;
|
|
|
|
+ textureComponent = getTextureComponent(upgrade.getRarity().obtained, item);
|
|
|
|
+ layout.child(textureComponent);
|
|
|
|
+ return true;
|
|
|
|
+ }
|
|
|
|
+ return false;
|
|
});
|
|
});
|
|
return component;
|
|
return component;
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ public boolean buy() {
|
|
|
|
+ if (NetworkManager.playerData.getPoints() >= upgrade.getCost() && !isOwned) {
|
|
|
|
+ ClientPlayNetworking.send(new BuyUpgradePacket(upgrade.getId().asString()));
|
|
|
|
+ isOwned = true;
|
|
|
|
+ return true;
|
|
|
|
+ }
|
|
|
|
+ return false;
|
|
|
|
+ }
|
|
}
|
|
}
|