tbvns пре 5 месеци
родитељ
комит
5d2af00410

+ 28 - 4
src/client/java/xyz/tbvns/rogue_block/client/Gui/UpgradeComponent.java

@@ -3,14 +3,12 @@ package xyz.tbvns.rogue_block.client.Gui;
 import io.wispforest.owo.ui.component.Components;
 import io.wispforest.owo.ui.container.FlowLayout;
 import io.wispforest.owo.ui.container.GridLayout;
-import io.wispforest.owo.ui.core.Component;
-import io.wispforest.owo.ui.core.ParentComponent;
-import io.wispforest.owo.ui.core.Positioning;
-import io.wispforest.owo.ui.core.Sizing;
+import io.wispforest.owo.ui.core.*;
 import io.wispforest.owo.ui.event.MouseEnter;
 import lombok.AllArgsConstructor;
 import net.kyori.adventure.platform.fabric.FabricAudiences;
 import net.kyori.adventure.platform.fabric.FabricServerAudiences;
+import net.minecraft.client.gui.DrawContext;
 import net.minecraft.item.ItemStack;
 import net.minecraft.text.OrderedText;
 import net.minecraft.text.Text;
@@ -48,6 +46,32 @@ public class UpgradeComponent {
         itemComponent = item;
     }
 
+    public void drawLine(DrawContext context) {
+        if (upgrade.getParent() != null) {
+            try {
+
+                int pX = ((Upgrade) upgrade.getParent().getConstructor().newInstance()).getGuiPos()[0] + 8 + (int) UpgradeScreen.posX;
+                int pY = ((Upgrade) upgrade.getParent().getConstructor().newInstance()).getGuiPos()[1] + 8 + (int) UpgradeScreen.posY;
+
+                int tempX = upgrade.getGuiPos()[0] + 8 + (int) UpgradeScreen.posX;
+                int tempY = upgrade.getGuiPos()[1] + 8 + (int) UpgradeScreen.posY;
+
+                context.drawHorizontalLine( tempX - (tempX - pX),
+                        tempX,
+                        tempY,
+                        new Color(1, 1, 1, 1).argb()
+                );
+                context.drawVerticalLine(tempX - (tempX - pX),
+                        tempY - (tempY - pY),
+                        tempY,
+                        new Color(1, 1, 1, 1).argb()
+                );
+            } catch (Exception e) {
+                throw new RuntimeException(e);
+            }
+        }
+    }
+
     public Component getTextureComponent(Identifier identifier, Component item) {
         Component component =
             Components.texture(

+ 10 - 2
src/client/java/xyz/tbvns/rogue_block/client/Gui/UpgradeScreen.java

@@ -19,8 +19,8 @@ import java.util.ArrayList;
 import java.util.List;
 
 public class UpgradeScreen extends BaseOwoScreen<FlowLayout> {
-    double posX = 0;
-    double posY = 0;
+    static double posX = 0;
+    static double posY = 0;
 
     public static Text toolTip;
     static List<UpgradeComponent> components = new ArrayList<>();
@@ -32,6 +32,10 @@ public class UpgradeScreen extends BaseOwoScreen<FlowLayout> {
 
     @Override
     protected void build(FlowLayout rootComponent) {
+        posX = 0; posY = 0;
+        components.clear();
+        toolTip = null;
+
         rootComponent.mouseDrag().subscribe((mouseX, mouseY, deltaX, deltaY, button) -> {
             posX += deltaX;
             posY += deltaY;
@@ -56,6 +60,10 @@ public class UpgradeScreen extends BaseOwoScreen<FlowLayout> {
         if (toolTip != null && !toolTip.equals(Text.empty())) {
             setTooltip(toolTip);
         }
+
+        for (UpgradeComponent component : components) {
+            component.drawLine(context);
+        }
         super.render(context, mouseX, mouseY, delta);
     }
 

+ 52 - 0
src/main/java/xyz/tbvns/rogue_block/Upgrades/RegisteredUpgrades/RegenUpgrade2.java

@@ -0,0 +1,52 @@
+package xyz.tbvns.rogue_block.Upgrades.RegisteredUpgrades;
+
+import net.minecraft.entity.effect.StatusEffectInstance;
+import net.minecraft.entity.effect.StatusEffects;
+import net.minecraft.item.ItemStack;
+import net.minecraft.item.Items;
+import net.minecraft.server.network.ServerPlayerEntity;
+import xyz.tbvns.rogue_block.Upgrades.PassiveUpgrade;
+import xyz.tbvns.rogue_block.Upgrades.Upgrade;
+import xyz.tbvns.rogue_block.Upgrades.UpgradeRarity;
+
+public class RegenUpgrade2 implements PassiveUpgrade {
+    @Override
+    public int getCost() {
+        return 10;
+    }
+
+    @Override
+    public void executeOnStart(ServerPlayerEntity player) {
+        player.addStatusEffect(new StatusEffectInstance(StatusEffects.REGENERATION, StatusEffectInstance.INFINITE));
+    }
+
+    @Override
+    public String getName() {
+        return "Regeneration 2";
+    }
+
+    @Override
+    public String getDesc() {
+        return "Provide you with a constant regeneration 2 effect";
+    }
+
+    @Override
+    public int[] getGuiPos() {
+        return new int[]{50, 100};
+    }
+
+    @Override
+    public ItemStack itemDisplay() {
+        return Items.POTION.getDefaultStack();
+    }
+
+    @Override
+    public UpgradeRarity getRarity() {
+        return UpgradeRarity.medium;
+    }
+
+    @Override
+    public Class getParent() {
+        return RegenUpgrade.class;
+    }
+}