From 6e9e70ae96d07fc458f84ed23dd16761ad576555 Mon Sep 17 00:00:00 2001 From: rettichlp Date: Mon, 4 Sep 2023 22:23:03 +0200 Subject: [PATCH 01/25] Add RenderController and VersionedRenderController for 1.12.2, add RenderWorldEvent to ScreenRenderListener --- .../unicacityaddon/UnicacityAddon.java | 5 + .../controller/RenderController.java | 16 ++ .../listener/ScreenRenderListener.java | 14 ++ .../v1_12_2/VersionedRenderController.java | 182 ++++++++++++++++++ 4 files changed, 217 insertions(+) create mode 100644 core/src/main/java/com/rettichlp/unicacityaddon/controller/RenderController.java create mode 100644 game-runner/src/v1_12_2/java/com/rettichlp/unicacityaddon/v1_12_2/VersionedRenderController.java diff --git a/core/src/main/java/com/rettichlp/unicacityaddon/UnicacityAddon.java b/core/src/main/java/com/rettichlp/unicacityaddon/UnicacityAddon.java index 4934456e..9fc34639 100644 --- a/core/src/main/java/com/rettichlp/unicacityaddon/UnicacityAddon.java +++ b/core/src/main/java/com/rettichlp/unicacityaddon/UnicacityAddon.java @@ -15,6 +15,7 @@ import com.rettichlp.unicacityaddon.controller.DeadBodyController; import com.rettichlp.unicacityaddon.controller.GuiController; import com.rettichlp.unicacityaddon.controller.PlayerListController; +import com.rettichlp.unicacityaddon.controller.RenderController; import com.rettichlp.unicacityaddon.controller.ScreenshotController; import com.rettichlp.unicacityaddon.controller.SoundController; import com.rettichlp.unicacityaddon.controller.TransportController; @@ -153,6 +154,10 @@ public PlayerListController playerListController() { return controller().getPlayerListController(); } + public RenderController renderController() { + return controller().getRenderController(); + } + public ScreenshotController screenshotController() { return controller().getScreenshotController(); } diff --git a/core/src/main/java/com/rettichlp/unicacityaddon/controller/RenderController.java b/core/src/main/java/com/rettichlp/unicacityaddon/controller/RenderController.java new file mode 100644 index 00000000..be0f223b --- /dev/null +++ b/core/src/main/java/com/rettichlp/unicacityaddon/controller/RenderController.java @@ -0,0 +1,16 @@ +package com.rettichlp.unicacityaddon.controller; + +import net.labymod.api.reference.annotation.Referenceable; +import net.labymod.api.util.Color; +import net.labymod.api.util.math.vector.FloatVector3; +import org.jetbrains.annotations.Nullable; + +/** + * @author RettichLP + */ +@Nullable +@Referenceable +public abstract class RenderController { + + public abstract void drawFacade(FloatVector3 first, FloatVector3 second, Color c, double height); +} diff --git a/core/src/main/java/com/rettichlp/unicacityaddon/listener/ScreenRenderListener.java b/core/src/main/java/com/rettichlp/unicacityaddon/listener/ScreenRenderListener.java index 7c4c4b8e..a2718b25 100644 --- a/core/src/main/java/com/rettichlp/unicacityaddon/listener/ScreenRenderListener.java +++ b/core/src/main/java/com/rettichlp/unicacityaddon/listener/ScreenRenderListener.java @@ -8,7 +8,10 @@ import net.labymod.api.client.world.item.ItemStack; import net.labymod.api.event.Subscribe; import net.labymod.api.event.client.render.ScreenRenderEvent; +import net.labymod.api.event.client.render.world.RenderWorldEvent; import net.labymod.api.event.client.world.ItemStackTooltipEvent; +import net.labymod.api.util.Color; +import net.labymod.api.util.math.vector.FloatVector3; import java.util.ArrayList; import java.util.List; @@ -49,6 +52,17 @@ public void onScreenRender(ScreenRenderEvent e) { } } + /** + * Quote: Slime Daddy - Lilu + */ + @Subscribe + public void onRenderWorld(RenderWorldEvent e) { + if (this.unicacityAddon.utilService().isUnicacity()) { + this.unicacityAddon.renderController().drawFacade(new FloatVector3(236, 69, -551), new FloatVector3(236, 69, -495), Color.GREEN, 256); + this.unicacityAddon.renderController().drawFacade(new FloatVector3(236, 69, -495), new FloatVector3(291, 69, -495), Color.GREEN, 256); + } + } + @Subscribe public void onItemStackTooltip(ItemStackTooltipEvent e) { ItemStack itemStack = e.itemStack(); diff --git a/game-runner/src/v1_12_2/java/com/rettichlp/unicacityaddon/v1_12_2/VersionedRenderController.java b/game-runner/src/v1_12_2/java/com/rettichlp/unicacityaddon/v1_12_2/VersionedRenderController.java new file mode 100644 index 00000000..94568179 --- /dev/null +++ b/game-runner/src/v1_12_2/java/com/rettichlp/unicacityaddon/v1_12_2/VersionedRenderController.java @@ -0,0 +1,182 @@ +package com.rettichlp.unicacityaddon.v1_12_2; + +import com.rettichlp.unicacityaddon.controller.RenderController; +import net.labymod.api.models.Implements; +import net.labymod.api.util.Color; +import net.labymod.api.util.math.vector.FloatVector3; +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.BufferBuilder; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.util.math.AxisAlignedBB; + +import javax.inject.Singleton; + +import static net.minecraft.client.renderer.vertex.DefaultVertexFormats.POSITION; +import static net.minecraft.client.renderer.vertex.DefaultVertexFormats.POSITION_TEX; +import static org.lwjgl.opengl.GL11.*; + +@Singleton +@Implements(RenderController.class) +public class VersionedRenderController extends RenderController { + + @Override + public void drawFacade(FloatVector3 first, FloatVector3 second, Color c, double height) { + // length of facade + double length; + + if (first.getX() == second.getX()) { // modify z + // lower location + FloatVector3 lower = first.getZ() <= second.getZ() ? first : second; + + double x = lower.getX() - Minecraft.getMinecraft().getRenderManager().viewerPosX; + double y = lower.getY() - Minecraft.getMinecraft().getRenderManager().viewerPosY; + double z = lower.getZ() - Minecraft.getMinecraft().getRenderManager().viewerPosZ; + + // length + length = Math.abs(first.getZ() - second.getZ()); + + // draw + glPushMatrix(); + gl(c.withAlpha(0.3f), () -> { + drawColorBox(new AxisAlignedBB(x, y, z, x, height, z + length), 0F, 0F, 0F, 0F); + glColor4d(0, 0, 0, 0.5); + drawSelectionBoundingBox(new AxisAlignedBB(x, y, z, x, height, z + length)); + glLineWidth(2.0F); + }); + glPopMatrix(); + } else if (first.getZ() == second.getZ()) { // modify x + // lower location + FloatVector3 lower = first.getX() <= second.getX() ? first : second; + + double x = lower.getX() - Minecraft.getMinecraft().getRenderManager().viewerPosX; + double y = lower.getY() - Minecraft.getMinecraft().getRenderManager().viewerPosY; + double z = lower.getZ() - Minecraft.getMinecraft().getRenderManager().viewerPosZ; + + // length + length = Math.abs(first.getX() - second.getX()); + + // draw + glPushMatrix(); + gl(c.withAlpha(0.3f), () -> { + drawColorBox(new AxisAlignedBB(x, -255, z, x + length, height, z), 0F, 0F, 0F, 0F); + glColor4d(0, 0, 0, 0.5); + drawSelectionBoundingBox(new AxisAlignedBB(x, -255, z, x + length, height, z)); + glLineWidth(2.0F); + }); + glPopMatrix(); + } else { + throw new IllegalArgumentException("Positions are not in a row."); + } + } + + private void gl(Color c, Runnable runnable) { + glBlendFunc(770, 771); + glEnable(GL_BLEND); + glLineWidth(2.0F); + glDisable(GL_TEXTURE_2D); + glDisable(GL_DEPTH_TEST); + glDepthMask(false); + glColor4f(c.getRed() / 255f, c.getGreen() / 255f, c.getBlue() / 255f, c.getAlpha() / 255f); + + runnable.run(); + + glEnable(GL_TEXTURE_2D); + glEnable(GL_DEPTH_TEST); + glDepthMask(true); + glDisable(GL_BLEND); + } + + private void drawColorBox(AxisAlignedBB axisalignedbb, float red, float green, float blue, float alpha) { + Tessellator tessellator = Tessellator.getInstance(); + BufferBuilder bufferBuilder = tessellator.getBuffer(); + bufferBuilder.begin(7, POSITION_TEX);// Starts X. + bufferBuilder.pos(axisalignedbb.minX, axisalignedbb.minY, axisalignedbb.minZ).color(red, green, blue, alpha).endVertex(); + bufferBuilder.pos(axisalignedbb.minX, axisalignedbb.maxY, axisalignedbb.minZ).color(red, green, blue, alpha).endVertex(); + bufferBuilder.pos(axisalignedbb.maxX, axisalignedbb.minY, axisalignedbb.minZ).color(red, green, blue, alpha).endVertex(); + bufferBuilder.pos(axisalignedbb.maxX, axisalignedbb.maxY, axisalignedbb.minZ).color(red, green, blue, alpha).endVertex(); + bufferBuilder.pos(axisalignedbb.maxX, axisalignedbb.minY, axisalignedbb.maxZ).color(red, green, blue, alpha).endVertex(); + bufferBuilder.pos(axisalignedbb.maxX, axisalignedbb.maxY, axisalignedbb.maxZ).color(red, green, blue, alpha).endVertex(); + bufferBuilder.pos(axisalignedbb.minX, axisalignedbb.minY, axisalignedbb.maxZ).color(red, green, blue, alpha).endVertex(); + bufferBuilder.pos(axisalignedbb.minX, axisalignedbb.maxY, axisalignedbb.maxZ).color(red, green, blue, alpha).endVertex(); + tessellator.draw(); + bufferBuilder.begin(7, POSITION_TEX); + bufferBuilder.pos(axisalignedbb.maxX, axisalignedbb.maxY, axisalignedbb.minZ).color(red, green, blue, alpha).endVertex(); + bufferBuilder.pos(axisalignedbb.maxX, axisalignedbb.minY, axisalignedbb.minZ).color(red, green, blue, alpha).endVertex(); + bufferBuilder.pos(axisalignedbb.minX, axisalignedbb.maxY, axisalignedbb.minZ).color(red, green, blue, alpha).endVertex(); + bufferBuilder.pos(axisalignedbb.minX, axisalignedbb.minY, axisalignedbb.minZ).color(red, green, blue, alpha).endVertex(); + bufferBuilder.pos(axisalignedbb.minX, axisalignedbb.maxY, axisalignedbb.maxZ).color(red, green, blue, alpha).endVertex(); + bufferBuilder.pos(axisalignedbb.minX, axisalignedbb.minY, axisalignedbb.maxZ).color(red, green, blue, alpha).endVertex(); + bufferBuilder.pos(axisalignedbb.maxX, axisalignedbb.maxY, axisalignedbb.maxZ).color(red, green, blue, alpha).endVertex(); + bufferBuilder.pos(axisalignedbb.maxX, axisalignedbb.minY, axisalignedbb.maxZ).color(red, green, blue, alpha).endVertex(); + tessellator.draw();// Ends X. + bufferBuilder.begin(7, POSITION_TEX);// Starts Y. + bufferBuilder.pos(axisalignedbb.minX, axisalignedbb.maxY, axisalignedbb.minZ).color(red, green, blue, alpha).endVertex(); + bufferBuilder.pos(axisalignedbb.maxX, axisalignedbb.maxY, axisalignedbb.minZ).color(red, green, blue, alpha).endVertex(); + bufferBuilder.pos(axisalignedbb.maxX, axisalignedbb.maxY, axisalignedbb.maxZ).color(red, green, blue, alpha).endVertex(); + bufferBuilder.pos(axisalignedbb.minX, axisalignedbb.maxY, axisalignedbb.maxZ).color(red, green, blue, alpha).endVertex(); + bufferBuilder.pos(axisalignedbb.minX, axisalignedbb.maxY, axisalignedbb.minZ).color(red, green, blue, alpha).endVertex(); + bufferBuilder.pos(axisalignedbb.minX, axisalignedbb.maxY, axisalignedbb.maxZ).color(red, green, blue, alpha).endVertex(); + bufferBuilder.pos(axisalignedbb.maxX, axisalignedbb.maxY, axisalignedbb.maxZ).color(red, green, blue, alpha).endVertex(); + bufferBuilder.pos(axisalignedbb.maxX, axisalignedbb.maxY, axisalignedbb.minZ).color(red, green, blue, alpha).endVertex(); + tessellator.draw(); + bufferBuilder.begin(7, POSITION_TEX); + bufferBuilder.pos(axisalignedbb.minX, axisalignedbb.minY, axisalignedbb.minZ).color(red, green, blue, alpha).endVertex(); + bufferBuilder.pos(axisalignedbb.maxX, axisalignedbb.minY, axisalignedbb.minZ).color(red, green, blue, alpha).endVertex(); + bufferBuilder.pos(axisalignedbb.maxX, axisalignedbb.minY, axisalignedbb.maxZ).color(red, green, blue, alpha).endVertex(); + bufferBuilder.pos(axisalignedbb.minX, axisalignedbb.minY, axisalignedbb.maxZ).color(red, green, blue, alpha).endVertex(); + bufferBuilder.pos(axisalignedbb.minX, axisalignedbb.minY, axisalignedbb.minZ).color(red, green, blue, alpha).endVertex(); + bufferBuilder.pos(axisalignedbb.minX, axisalignedbb.minY, axisalignedbb.maxZ).color(red, green, blue, alpha).endVertex(); + bufferBuilder.pos(axisalignedbb.maxX, axisalignedbb.minY, axisalignedbb.maxZ).color(red, green, blue, alpha).endVertex(); + bufferBuilder.pos(axisalignedbb.maxX, axisalignedbb.minY, axisalignedbb.minZ).color(red, green, blue, alpha).endVertex(); + tessellator.draw();// Ends Y. + bufferBuilder.begin(7, POSITION_TEX);// Starts Z. + bufferBuilder.pos(axisalignedbb.minX, axisalignedbb.minY, axisalignedbb.minZ).color(red, green, blue, alpha).endVertex(); + bufferBuilder.pos(axisalignedbb.minX, axisalignedbb.maxY, axisalignedbb.minZ).color(red, green, blue, alpha).endVertex(); + bufferBuilder.pos(axisalignedbb.minX, axisalignedbb.minY, axisalignedbb.maxZ).color(red, green, blue, alpha).endVertex(); + bufferBuilder.pos(axisalignedbb.minX, axisalignedbb.maxY, axisalignedbb.maxZ).color(red, green, blue, alpha).endVertex(); + bufferBuilder.pos(axisalignedbb.maxX, axisalignedbb.minY, axisalignedbb.maxZ).color(red, green, blue, alpha).endVertex(); + bufferBuilder.pos(axisalignedbb.maxX, axisalignedbb.maxY, axisalignedbb.maxZ).color(red, green, blue, alpha).endVertex(); + bufferBuilder.pos(axisalignedbb.maxX, axisalignedbb.minY, axisalignedbb.minZ).color(red, green, blue, alpha).endVertex(); + bufferBuilder.pos(axisalignedbb.maxX, axisalignedbb.maxY, axisalignedbb.minZ).color(red, green, blue, alpha).endVertex(); + tessellator.draw(); + bufferBuilder.begin(7, POSITION_TEX); + bufferBuilder.pos(axisalignedbb.minX, axisalignedbb.maxY, axisalignedbb.maxZ).color(red, green, blue, alpha).endVertex(); + bufferBuilder.pos(axisalignedbb.minX, axisalignedbb.minY, axisalignedbb.maxZ).color(red, green, blue, alpha).endVertex(); + bufferBuilder.pos(axisalignedbb.minX, axisalignedbb.maxY, axisalignedbb.minZ).color(red, green, blue, alpha).endVertex(); + bufferBuilder.pos(axisalignedbb.minX, axisalignedbb.minY, axisalignedbb.minZ).color(red, green, blue, alpha).endVertex(); + bufferBuilder.pos(axisalignedbb.maxX, axisalignedbb.maxY, axisalignedbb.minZ).color(red, green, blue, alpha).endVertex(); + bufferBuilder.pos(axisalignedbb.maxX, axisalignedbb.minY, axisalignedbb.minZ).color(red, green, blue, alpha).endVertex(); + bufferBuilder.pos(axisalignedbb.maxX, axisalignedbb.maxY, axisalignedbb.maxZ).color(red, green, blue, alpha).endVertex(); + bufferBuilder.pos(axisalignedbb.maxX, axisalignedbb.minY, axisalignedbb.maxZ).color(red, green, blue, alpha).endVertex(); + tessellator.draw();// Ends Z. + } + + private void drawSelectionBoundingBox(AxisAlignedBB boundingBox) { + Tessellator tessellator = Tessellator.getInstance(); + BufferBuilder bufferBuilder = tessellator.getBuffer(); + bufferBuilder.begin(3, POSITION); + bufferBuilder.pos(boundingBox.minX, boundingBox.minY, boundingBox.minZ).endVertex(); + bufferBuilder.pos(boundingBox.maxX, boundingBox.minY, boundingBox.minZ).endVertex(); + bufferBuilder.pos(boundingBox.maxX, boundingBox.minY, boundingBox.maxZ).endVertex(); + bufferBuilder.pos(boundingBox.minX, boundingBox.minY, boundingBox.maxZ).endVertex(); + bufferBuilder.pos(boundingBox.minX, boundingBox.minY, boundingBox.minZ).endVertex(); + tessellator.draw(); + bufferBuilder.begin(3, POSITION); + bufferBuilder.pos(boundingBox.minX, boundingBox.maxY, boundingBox.minZ).endVertex(); + bufferBuilder.pos(boundingBox.maxX, boundingBox.maxY, boundingBox.minZ).endVertex(); + bufferBuilder.pos(boundingBox.maxX, boundingBox.maxY, boundingBox.maxZ).endVertex(); + bufferBuilder.pos(boundingBox.minX, boundingBox.maxY, boundingBox.maxZ).endVertex(); + bufferBuilder.pos(boundingBox.minX, boundingBox.maxY, boundingBox.minZ).endVertex(); + tessellator.draw(); + bufferBuilder.begin(1, POSITION); + bufferBuilder.pos(boundingBox.minX, boundingBox.minY, boundingBox.minZ).endVertex(); + bufferBuilder.pos(boundingBox.minX, boundingBox.maxY, boundingBox.minZ).endVertex(); + bufferBuilder.pos(boundingBox.maxX, boundingBox.minY, boundingBox.minZ).endVertex(); + bufferBuilder.pos(boundingBox.maxX, boundingBox.maxY, boundingBox.minZ).endVertex(); + bufferBuilder.pos(boundingBox.maxX, boundingBox.minY, boundingBox.maxZ).endVertex(); + bufferBuilder.pos(boundingBox.maxX, boundingBox.maxY, boundingBox.maxZ).endVertex(); + bufferBuilder.pos(boundingBox.minX, boundingBox.minY, boundingBox.maxZ).endVertex(); + bufferBuilder.pos(boundingBox.minX, boundingBox.maxY, boundingBox.maxZ).endVertex(); + tessellator.draw(); + } +} \ No newline at end of file From fd56f77d6598360c0d57991443c1317180c413f0 Mon Sep 17 00:00:00 2001 From: rettichlp Date: Tue, 5 Sep 2023 23:05:40 +0200 Subject: [PATCH 02/25] Add toggle hot key and update gangzones --- .../hotkey/DefaultHotkeyConfiguration.java | 8 +++ .../config/hotkey/HotkeyConfiguration.java | 2 + .../base/enums/faction/Gangzone.java | 69 +++++++++++++++++++ .../listener/ScreenRenderListener.java | 25 +++++-- .../v1_12_2/VersionedRenderController.java | 22 +++--- 5 files changed, 110 insertions(+), 16 deletions(-) create mode 100644 core/src/main/java/com/rettichlp/unicacityaddon/base/enums/faction/Gangzone.java diff --git a/core/src/main/java/com/rettichlp/unicacityaddon/base/config/hotkey/DefaultHotkeyConfiguration.java b/core/src/main/java/com/rettichlp/unicacityaddon/base/config/hotkey/DefaultHotkeyConfiguration.java index 5e09c3d9..40be3555 100644 --- a/core/src/main/java/com/rettichlp/unicacityaddon/base/config/hotkey/DefaultHotkeyConfiguration.java +++ b/core/src/main/java/com/rettichlp/unicacityaddon/base/config/hotkey/DefaultHotkeyConfiguration.java @@ -40,6 +40,9 @@ public class DefaultHotkeyConfiguration extends Config implements HotkeyConfigur @KeyBindSetting private final ConfigProperty screenshot = new ConfigProperty<>(Key.NONE); + @KeyBindSetting + private final ConfigProperty showGangzones = new ConfigProperty<>(Key.NONE); + @Override public ConfigProperty enabled() { return this.enabled; @@ -84,4 +87,9 @@ public ConfigProperty aEquip() { public ConfigProperty screenshot() { return this.screenshot; } + + @Override + public ConfigProperty showGangzones() { + return this.showGangzones; + } } \ No newline at end of file diff --git a/core/src/main/java/com/rettichlp/unicacityaddon/base/config/hotkey/HotkeyConfiguration.java b/core/src/main/java/com/rettichlp/unicacityaddon/base/config/hotkey/HotkeyConfiguration.java index 76e87918..453e17b2 100644 --- a/core/src/main/java/com/rettichlp/unicacityaddon/base/config/hotkey/HotkeyConfiguration.java +++ b/core/src/main/java/com/rettichlp/unicacityaddon/base/config/hotkey/HotkeyConfiguration.java @@ -25,4 +25,6 @@ public interface HotkeyConfiguration { ConfigProperty aEquip(); ConfigProperty screenshot(); + + ConfigProperty showGangzones(); } \ No newline at end of file diff --git a/core/src/main/java/com/rettichlp/unicacityaddon/base/enums/faction/Gangzone.java b/core/src/main/java/com/rettichlp/unicacityaddon/base/enums/faction/Gangzone.java new file mode 100644 index 00000000..25f811e3 --- /dev/null +++ b/core/src/main/java/com/rettichlp/unicacityaddon/base/enums/faction/Gangzone.java @@ -0,0 +1,69 @@ +package com.rettichlp.unicacityaddon.base.enums.faction; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import net.labymod.api.util.Pair; +import net.labymod.api.util.math.vector.FloatVector3; + +import java.util.List; + +/** + * @author RettichLP + */ +@Getter +@AllArgsConstructor +public enum Gangzone { + + LE_MILIEU(List.of( + Pair.of(new FloatVector3(262, 69, -313), new FloatVector3(262, 69, -219)), + Pair.of(new FloatVector3(262, 69, -219), new FloatVector3(337, 69, -219)), + Pair.of(new FloatVector3(337, 69, -219), new FloatVector3(337, 69, -313)), + Pair.of(new FloatVector3(337, 69, -313), new FloatVector3(262, 69, -313)))), + MAFIA(List.of( + Pair.of(new FloatVector3(-56, 69, -478), new FloatVector3(-56, 69, -427)), + Pair.of(new FloatVector3(-56, 69, -427), new FloatVector3(47, 69, -427)), + Pair.of(new FloatVector3(47, 69, -427), new FloatVector3(47, 69, -509)), + Pair.of(new FloatVector3(47, 69, -509), new FloatVector3(-35, 69, -509)), + Pair.of(new FloatVector3(-35, 69, -509), new FloatVector3(-35, 69, -478)), + Pair.of(new FloatVector3(-35, 69, -478), new FloatVector3(-56, 69, -478)))), + MEX(List.of( + Pair.of(new FloatVector3(-343, 69, -149), new FloatVector3(-343, 69, -84)), + Pair.of(new FloatVector3(-343, 69, -84), new FloatVector3(-251, 69, -84)), + Pair.of(new FloatVector3(-251, 69, -84), new FloatVector3(-251, 69, -149)), + Pair.of(new FloatVector3(-251, 69, -149), new FloatVector3(-343, 69, -149)))), + HAFEN(List.of( + Pair.of(new FloatVector3(-423, 69, 2), new FloatVector3(-423, 69, 177)), + Pair.of(new FloatVector3(-423, 69, 177), new FloatVector3(-322, 69, 177)), + Pair.of(new FloatVector3(-322, 69, 177), new FloatVector3(-322, 69, 2)), + Pair.of(new FloatVector3(-322, 69, 2), new FloatVector3(-423, 69, 2)))), + WESTSIDEBALLAS(List.of( + Pair.of(new FloatVector3(-199, 69, 142), new FloatVector3(-199, 69, 272)), + Pair.of(new FloatVector3(-199, 69, 272), new FloatVector3(-121, 69, 272)), + Pair.of(new FloatVector3(-121, 69, 272), new FloatVector3(-121, 69, 142)), + Pair.of(new FloatVector3(-121, 69, 142), new FloatVector3(-199, 69, 142)))), +// HAFEN(List.of( +// Pair.of(new FloatVector3(, 69, ), new FloatVector3(, 69, )), +// Pair.of(new FloatVector3(, 69, ), new FloatVector3(, 69, )), +// Pair.of(new FloatVector3(, 69, ), new FloatVector3(, 69, )), +// Pair.of(new FloatVector3(, 69, ), new FloatVector3(, 69, )))), + FARM(List.of( + Pair.of(new FloatVector3(455, 69, 483), new FloatVector3(455, 69, 562)), + Pair.of(new FloatVector3(455, 69, 562), new FloatVector3(522, 69, 562)), + Pair.of(new FloatVector3(522, 69, 562), new FloatVector3(522, 69, 568)), + Pair.of(new FloatVector3(522, 69, 568), new FloatVector3(550, 69, 568)), + Pair.of(new FloatVector3(550, 69, 568), new FloatVector3(550, 69, 562)), + Pair.of(new FloatVector3(550, 69, 562), new FloatVector3(551, 69, 562)), + Pair.of(new FloatVector3(551, 69, 562), new FloatVector3(551, 69, 551)), + Pair.of(new FloatVector3(551, 69, 551), new FloatVector3(550, 69, 551)), + Pair.of(new FloatVector3(550, 69, 551), new FloatVector3(550, 69, 544)), + Pair.of(new FloatVector3(550, 69, 544), new FloatVector3(525, 69, 544)), + Pair.of(new FloatVector3(525, 69, 544), new FloatVector3(525, 69, 483)), + Pair.of(new FloatVector3(525, 69, 483), new FloatVector3(455, 69, 483)))), + YACHTHAFEN(List.of( + Pair.of(new FloatVector3(236, 69, -551), new FloatVector3(236, 69, -495)), + Pair.of(new FloatVector3(236, 69, -495), new FloatVector3(292, 69, -495)), + Pair.of(new FloatVector3(292, 69, -495), new FloatVector3(292, 69, -551)), + Pair.of(new FloatVector3(292, 69, -551), new FloatVector3(236, 69, -551)))); + + private final List> facades; +} diff --git a/core/src/main/java/com/rettichlp/unicacityaddon/listener/ScreenRenderListener.java b/core/src/main/java/com/rettichlp/unicacityaddon/listener/ScreenRenderListener.java index a2718b25..565421e5 100644 --- a/core/src/main/java/com/rettichlp/unicacityaddon/listener/ScreenRenderListener.java +++ b/core/src/main/java/com/rettichlp/unicacityaddon/listener/ScreenRenderListener.java @@ -2,18 +2,21 @@ import com.rettichlp.unicacityaddon.UnicacityAddon; import com.rettichlp.unicacityaddon.base.enums.Weapon; +import com.rettichlp.unicacityaddon.base.enums.faction.Gangzone; +import com.rettichlp.unicacityaddon.base.events.HotkeyEvent; import com.rettichlp.unicacityaddon.base.events.UnicacityAddonTickEvent; import com.rettichlp.unicacityaddon.base.registry.annotation.UCEvent; import com.rettichlp.unicacityaddon.commands.GetGunPatternCommand; +import net.labymod.api.client.gui.screen.key.Key; import net.labymod.api.client.world.item.ItemStack; import net.labymod.api.event.Subscribe; import net.labymod.api.event.client.render.ScreenRenderEvent; import net.labymod.api.event.client.render.world.RenderWorldEvent; import net.labymod.api.event.client.world.ItemStackTooltipEvent; import net.labymod.api.util.Color; -import net.labymod.api.util.math.vector.FloatVector3; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import java.util.concurrent.TimeUnit; @@ -25,6 +28,7 @@ public class ScreenRenderListener { public static int lastHoveredSlotNumber = -1; public static List settingPath = new ArrayList<>(); + private boolean showGangzones = false; private final UnicacityAddon unicacityAddon; @@ -53,13 +57,15 @@ public void onScreenRender(ScreenRenderEvent e) { } /** - * Quote: Slime Daddy - Lilu + * Quote: "Ohhhh ein Slime Daddy!" - Liiluu, 04.09.2023 */ @Subscribe public void onRenderWorld(RenderWorldEvent e) { - if (this.unicacityAddon.utilService().isUnicacity()) { - this.unicacityAddon.renderController().drawFacade(new FloatVector3(236, 69, -551), new FloatVector3(236, 69, -495), Color.GREEN, 256); - this.unicacityAddon.renderController().drawFacade(new FloatVector3(236, 69, -495), new FloatVector3(291, 69, -495), Color.GREEN, 256); + if (this.unicacityAddon.utilService().isUnicacity() && this.showGangzones) { + Color c = Color.ORANGE; + Arrays.stream(Gangzone.values()) + .forEach(gangzone -> gangzone.getFacades() + .forEach(posPair -> this.unicacityAddon.renderController().drawFacade(posPair.getFirst(), posPair.getSecond(), c, 50))); } } @@ -75,4 +81,13 @@ public void onUnicacityAddonTick(UnicacityAddonTickEvent e) { this.unicacityAddon.deadBodyController().updateDisplayName(this.unicacityAddon); } } + + @Subscribe + public void onHotkey(HotkeyEvent e) { + Key key = e.getKey(); + + if (key.equals(this.unicacityAddon.configuration().hotkey().showGangzones().get()) && e.isRealIngame()) { + this.showGangzones = !this.showGangzones; + } + } } \ No newline at end of file diff --git a/game-runner/src/v1_12_2/java/com/rettichlp/unicacityaddon/v1_12_2/VersionedRenderController.java b/game-runner/src/v1_12_2/java/com/rettichlp/unicacityaddon/v1_12_2/VersionedRenderController.java index 94568179..256caef9 100644 --- a/game-runner/src/v1_12_2/java/com/rettichlp/unicacityaddon/v1_12_2/VersionedRenderController.java +++ b/game-runner/src/v1_12_2/java/com/rettichlp/unicacityaddon/v1_12_2/VersionedRenderController.java @@ -37,10 +37,10 @@ public void drawFacade(FloatVector3 first, FloatVector3 second, Color c, double // draw glPushMatrix(); - gl(c.withAlpha(0.3f), () -> { - drawColorBox(new AxisAlignedBB(x, y, z, x, height, z + length), 0F, 0F, 0F, 0F); + gl(c.withAlpha(0.12f), () -> { + drawColorBox(new AxisAlignedBB(x, -height, z, x, height, z + length), 0F, 0F, 0F, 0F); glColor4d(0, 0, 0, 0.5); - drawSelectionBoundingBox(new AxisAlignedBB(x, y, z, x, height, z + length)); + drawSelectionBoundingBox(new AxisAlignedBB(x, -height, z, x, height, z + length)); glLineWidth(2.0F); }); glPopMatrix(); @@ -57,15 +57,15 @@ public void drawFacade(FloatVector3 first, FloatVector3 second, Color c, double // draw glPushMatrix(); - gl(c.withAlpha(0.3f), () -> { - drawColorBox(new AxisAlignedBB(x, -255, z, x + length, height, z), 0F, 0F, 0F, 0F); + gl(c.withAlpha(0.12f), () -> { + drawColorBox(new AxisAlignedBB(x, -height, z, x + length, height, z), 0F, 0F, 0F, 0F); glColor4d(0, 0, 0, 0.5); - drawSelectionBoundingBox(new AxisAlignedBB(x, -255, z, x + length, height, z)); + drawSelectionBoundingBox(new AxisAlignedBB(x, -height, z, x + length, height, z)); glLineWidth(2.0F); }); glPopMatrix(); } else { - throw new IllegalArgumentException("Positions are not in a row."); + throw new IllegalArgumentException("Positions are not in a row: " + first + " and " + second); } } @@ -74,15 +74,15 @@ private void gl(Color c, Runnable runnable) { glEnable(GL_BLEND); glLineWidth(2.0F); glDisable(GL_TEXTURE_2D); - glDisable(GL_DEPTH_TEST); - glDepthMask(false); +// glDisable(GL_DEPTH_TEST); +// glDepthMask(false); glColor4f(c.getRed() / 255f, c.getGreen() / 255f, c.getBlue() / 255f, c.getAlpha() / 255f); runnable.run(); glEnable(GL_TEXTURE_2D); - glEnable(GL_DEPTH_TEST); - glDepthMask(true); +// glEnable(GL_DEPTH_TEST); +// glDepthMask(true); glDisable(GL_BLEND); } From 49c6048365cfd263ff9defed83b9cdc5a05fda1f Mon Sep 17 00:00:00 2001 From: rettichlp Date: Fri, 8 Sep 2023 13:49:58 +0200 Subject: [PATCH 03/25] Add color to faction --- .../base/enums/faction/Faction.java | 77 ++++++------------- 1 file changed, 23 insertions(+), 54 deletions(-) diff --git a/core/src/main/java/com/rettichlp/unicacityaddon/base/enums/faction/Faction.java b/core/src/main/java/com/rettichlp/unicacityaddon/base/enums/faction/Faction.java index cf481498..1beb8243 100644 --- a/core/src/main/java/com/rettichlp/unicacityaddon/base/enums/faction/Faction.java +++ b/core/src/main/java/com/rettichlp/unicacityaddon/base/enums/faction/Faction.java @@ -12,61 +12,22 @@ @AllArgsConstructor public enum Faction { - NULL("", "Keine Auswahl", "", false, -1, -1, ""), - FBI("fbi", "FBI", "FBI", false, 106, 107, Message.getBuilder() - .of("◤").color(ColorCode.DARK_GRAY).advance() - .of("✯").color(ColorCode.DARK_BLUE).advance() - .of("◢").color(ColorCode.DARK_GRAY).advance().create()), - POLIZEI("polizei", "Polizei", "Polizei", false, 78, 79, Message.getBuilder() - .of("◤").color(ColorCode.DARK_GRAY).advance() - .of("✯").color(ColorCode.BLUE).advance() - .of("◢").color(ColorCode.DARK_GRAY).advance().create()), - RETTUNGSDIENST("rettungsdienst", "Rettungsdienst", "Rettungsdienst", false, 118, 119, Message.getBuilder() - .of("◤").color(ColorCode.DARK_GRAY).advance() - .of("✚").color(ColorCode.DARK_RED).advance() - .of("◢").color(ColorCode.DARK_GRAY).advance().create()), + NULL("", "Keine Auswahl", "", false, -1, -1, ColorCode.GRAY, ""), + FBI("fbi", "FBI", "FBI", false, 106, 107, ColorCode.DARK_BLUE, "✯"), + POLIZEI("polizei", "Polizei", "Polizei", false, 78, 79, ColorCode.BLUE, "✯"), + RETTUNGSDIENST("rettungsdienst", "Rettungsdienst", "Rettungsdienst", false, 118, 119, ColorCode.DARK_RED, "✚"), - CALDERON("calderon", "Calderón Kartell", "Kartell", true, 154, 155, Message.getBuilder() - .of("◤").color(ColorCode.DARK_GRAY).advance() - .of("☀").color(ColorCode.GOLD).advance() - .of("◢").color(ColorCode.DARK_GRAY).advance().create()), - KERZAKOV("kerzakov", "Kerzakov Familie", "Kerzakov", true, 166, 167, Message.getBuilder() - .of("◤").color(ColorCode.DARK_GRAY).advance() - .of("✮").color(ColorCode.RED).advance() - .of("◢").color(ColorCode.DARK_GRAY).advance().create()), - LACOSANOSTRA("lacosanostra", "La Cosa Nostra", "Mafia", true, 130, 131, Message.getBuilder() - .of("◤").color(ColorCode.DARK_GRAY).advance() - .of("⚜").color(ColorCode.DARK_AQUA).advance() - .of("◢").color(ColorCode.DARK_GRAY).advance().create()), - LEMILIEU("le_milieu", "Le Milieu", "France", true, 179, 180, Message.getBuilder() - .of("◤").color(ColorCode.DARK_GRAY).advance() - .of("Ⓜ").color(ColorCode.DARK_AQUA).advance() - .of("◢").color(ColorCode.DARK_GRAY).advance().create()), - OBRIEN("obrien", "O'brien Familie", "Obrien", true, 191, 192, Message.getBuilder() - .of("◤").color(ColorCode.DARK_GRAY).advance() - .of("☘").color(ColorCode.DARK_GREEN).advance() - .of("◢").color(ColorCode.DARK_GRAY).advance().create()), - WESTSIDEBALLAS("westsideballas", "Westside Ballas", "Gang", true, 142, 143, Message.getBuilder() - .of("◤").color(ColorCode.DARK_GRAY).advance() - .of("☠").color(ColorCode.DARK_PURPLE).advance() - .of("◢").color(ColorCode.DARK_GRAY).advance().create()), + CALDERON("calderon", "Calderón Kartell", "Kartell", true, 154, 155, ColorCode.GOLD, "☀"), + KERZAKOV("kerzakov", "Kerzakov Familie", "Kerzakov", true, 166, 167, ColorCode.RED, "✮"), + LACOSANOSTRA("lacosanostra", "La Cosa Nostra", "Mafia", true, 130, 131, ColorCode.DARK_AQUA, "⚜"), + LEMILIEU("le_milieu", "Le Milieu", "France", true, 179, 180, ColorCode.DARK_AQUA, "Ⓜ"), + OBRIEN("obrien", "O'brien Familie", "Obrien", true, 191, 192, ColorCode.DARK_GREEN, "☘"), + WESTSIDEBALLAS("westsideballas", "Westside Ballas", "Gang", true, 142, 143, ColorCode.DARK_PURPLE, "☠"), - HITMAN("hitman", "Hitman", "Hitman", false, 215, 216, Message.getBuilder() - .of("◤").color(ColorCode.DARK_GRAY).advance() - .of("➹").color(ColorCode.AQUA).advance() - .of("◢").color(ColorCode.DARK_GRAY).advance().create()), - KIRCHE("kirche", "Kirche", "Kirche", false, 227, 228, Message.getBuilder() - .of("◤").color(ColorCode.DARK_GRAY).advance() - .of("†").color(ColorCode.LIGHT_PURPLE).advance() - .of("◢").color(ColorCode.DARK_GRAY).advance().create()), - NEWS("news", "News Agency", "News", false, 239, 240, Message.getBuilder() - .of("◤").color(ColorCode.DARK_GRAY).advance() - .of("✉").color(ColorCode.YELLOW).advance() - .of("◢").color(ColorCode.DARK_GRAY).advance().create()), - TERRORISTEN("terroristen", "Terroristen", "Terroristen", false, 203, 204, Message.getBuilder() - .of("◤").color(ColorCode.DARK_GRAY).advance() - .of("❇").color(ColorCode.GRAY).advance() - .of("◢").color(ColorCode.DARK_GRAY).advance().create()); + HITMAN("hitman", "Hitman", "Hitman", false, 215, 216, ColorCode.AQUA, "➹"), + KIRCHE("kirche", "Kirche", "Kirche", false, 227, 228, ColorCode.LIGHT_PURPLE, "†"), + NEWS("news", "News Agency", "News", false, 239, 240, ColorCode.YELLOW, "✉"), + TERRORISTEN("terroristen", "Terroristen", "Terroristen", false, 203, 204, ColorCode.GRAY, "❇"); private final String apiName; private final String displayName; @@ -74,12 +35,20 @@ public enum Faction { private final boolean isBadFaction; private final int publicChannelId; private final int abstractedChannelId; - private final String nameTagSuffix; + private final ColorCode color; + private final String icon; public String getWebsiteUrl() { return this.equals(NULL) ? null : "https://unicacity.de/fraktionen/" + getApiName(); } + public String getNameTagSuffix() { + return Message.getBuilder() + .of("◤").color(ColorCode.DARK_GRAY).advance() + .of(this.icon).color(this.color).advance() + .of("◢").color(ColorCode.DARK_GRAY).advance().create(); + } + public static Faction getFactionByDisplayName(String s) { for (Faction faction : Faction.values()) { if (faction.getDisplayName().equalsIgnoreCase(s)) From 74b8e8bea40425a8c182f1afe4d98e396ad2173d Mon Sep 17 00:00:00 2001 From: rettichlp Date: Fri, 8 Sep 2023 13:56:18 +0200 Subject: [PATCH 04/25] Add Gangzone type and GangzoneService --- .../unicacityaddon/gangzone/Gangzone.java | 15 ++ .../gangzone/GangzoneService.java | 11 ++ .../base/gangzones/DefaultGangzone.java | 54 ++++++ .../gangzones/DefaultGangzoneService.java | 176 ++++++++++++++++++ 4 files changed, 256 insertions(+) create mode 100644 api/src/main/java/com/rettichlp/unicacityaddon/gangzone/Gangzone.java create mode 100644 api/src/main/java/com/rettichlp/unicacityaddon/gangzone/GangzoneService.java create mode 100644 core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/DefaultGangzone.java create mode 100644 core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/DefaultGangzoneService.java diff --git a/api/src/main/java/com/rettichlp/unicacityaddon/gangzone/Gangzone.java b/api/src/main/java/com/rettichlp/unicacityaddon/gangzone/Gangzone.java new file mode 100644 index 00000000..81f27972 --- /dev/null +++ b/api/src/main/java/com/rettichlp/unicacityaddon/gangzone/Gangzone.java @@ -0,0 +1,15 @@ +package com.rettichlp.unicacityaddon.gangzone; + +import net.labymod.api.client.world.object.WorldObject; +import net.labymod.api.util.Pair; +import net.labymod.api.util.math.vector.FloatVector3; + +import java.awt.Color; +import java.util.List; + +public interface Gangzone extends WorldObject { + + Color color(); + + List> facades(); +} diff --git a/api/src/main/java/com/rettichlp/unicacityaddon/gangzone/GangzoneService.java b/api/src/main/java/com/rettichlp/unicacityaddon/gangzone/GangzoneService.java new file mode 100644 index 00000000..87c1d4b3 --- /dev/null +++ b/api/src/main/java/com/rettichlp/unicacityaddon/gangzone/GangzoneService.java @@ -0,0 +1,11 @@ +package com.rettichlp.unicacityaddon.gangzone; + +import net.labymod.api.reference.annotation.Referenceable; + +import java.util.Collection; + +@Referenceable +public interface GangzoneService { + + Collection getAllGangzones(); +} diff --git a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/DefaultGangzone.java b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/DefaultGangzone.java new file mode 100644 index 00000000..efd846bb --- /dev/null +++ b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/DefaultGangzone.java @@ -0,0 +1,54 @@ +package com.rettichlp.unicacityaddon.base.gangzones; + +import com.rettichlp.unicacityaddon.gangzone.Gangzone; +import net.labymod.api.Laby; +import net.labymod.api.client.render.RenderPipeline; +import net.labymod.api.client.render.matrix.Stack; +import net.labymod.api.client.world.MinecraftCamera; +import net.labymod.api.client.world.object.AbstractWorldObject; +import net.labymod.api.util.Pair; +import net.labymod.api.util.bounds.Rectangle; +import net.labymod.api.util.math.vector.FloatVector3; +import org.jetbrains.annotations.NotNull; + +import java.awt.*; +import java.util.List; + +public class DefaultGangzone extends AbstractWorldObject implements Gangzone { + + private final Color color; + private final List> facades; + + public DefaultGangzone(Color color, List> facades) { +// super(); + this.color = color; + this.facades = facades; + } + + @Override + public Color color() { + return this.color; + } + + @Override + public List> facades() { + return this.facades; + } + + @Override + public boolean isSeeThrough() { + return super.isSeeThrough(); + } + + @Override + public void renderInWorld(@NotNull MinecraftCamera cam, @NotNull Stack stack, float x, float y, float z, float delta, boolean darker) { + stack.push(); + + RenderPipeline render = Laby.references().renderPipeline(); + + render.rectangleRenderer() + .renderRectangle(stack, Rectangle.absolute(1, 1, 1, 5), Color.RED); + + stack.pop(); + } +} diff --git a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/DefaultGangzoneService.java b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/DefaultGangzoneService.java new file mode 100644 index 00000000..8fa8ddc7 --- /dev/null +++ b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/DefaultGangzoneService.java @@ -0,0 +1,176 @@ +package com.rettichlp.unicacityaddon.base.gangzones; + +import com.rettichlp.unicacityaddon.UnicacityAddon; +import com.rettichlp.unicacityaddon.base.enums.faction.Faction; +import com.rettichlp.unicacityaddon.gangzone.Gangzone; +import com.rettichlp.unicacityaddon.gangzone.GangzoneService; +import net.labymod.api.Laby; +import net.labymod.api.client.world.object.WorldObjectRegistry; +import net.labymod.api.models.Implements; +import net.labymod.api.util.Pair; +import net.labymod.api.util.math.vector.FloatVector3; + +import javax.inject.Singleton; +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +@Singleton +@Implements(GangzoneService.class) +public class DefaultGangzoneService implements GangzoneService { + + private final WorldObjectRegistry worldObjectRegistry; + + private final Collection gangzones; + + private UnicacityAddon unicacityAddon; + + public DefaultGangzoneService() { + this.worldObjectRegistry = Laby.references().worldObjectRegistry(); + + this.gangzones = new ArrayList<>(); + } + + public void load(UnicacityAddon unicacityAddon) { + this.unicacityAddon = unicacityAddon; + + for (Gangzone gangzone : this.getAllGangzones()) { + this.gangzones.add(gangzone); + this.worldObjectRegistry.register(gangzone); + } + } + + @Override + public Collection getAllGangzones() { + return List.of( + new DefaultGangzone(Faction.CALDERON.getColor().getColor(), List.of( + Pair.of(new FloatVector3(-343, 69, -149), new FloatVector3(-343, 69, -84)), + Pair.of(new FloatVector3(-343, 69, -84), new FloatVector3(-251, 69, -84)), + Pair.of(new FloatVector3(-251, 69, -84), new FloatVector3(-251, 69, -149)), + Pair.of(new FloatVector3(-251, 69, -149), new FloatVector3(-343, 69, -149)) + )), + new DefaultGangzone(Faction.LACOSANOSTRA.getColor().getColor(), List.of( + Pair.of(new FloatVector3(-56, 69, -478), new FloatVector3(-56, 69, -427)), + Pair.of(new FloatVector3(-56, 69, -427), new FloatVector3(47, 69, -427)), + Pair.of(new FloatVector3(47, 69, -427), new FloatVector3(47, 69, -509)), + Pair.of(new FloatVector3(47, 69, -509), new FloatVector3(-35, 69, -509)), + Pair.of(new FloatVector3(-35, 69, -509), new FloatVector3(-35, 69, -478)), + Pair.of(new FloatVector3(-35, 69, -478), new FloatVector3(-56, 69, -478)) + )), + new DefaultGangzone(Faction.LEMILIEU.getColor().getColor(), List.of( + Pair.of(new FloatVector3(262, 69, -313), new FloatVector3(262, 69, -219)), + Pair.of(new FloatVector3(262, 69, -219), new FloatVector3(337, 69, -219)), + Pair.of(new FloatVector3(337, 69, -219), new FloatVector3(337, 69, -313)), + Pair.of(new FloatVector3(337, 69, -313), new FloatVector3(262, 69, -313)) + )), + new DefaultGangzone(Faction.OBRIEN.getColor().getColor(), List.of( + Pair.of(new FloatVector3(687, 69, 490), new FloatVector3(687, 69, 593)), + Pair.of(new FloatVector3(687, 69, 593), new FloatVector3(761, 69, 593)), + Pair.of(new FloatVector3(761, 69, 593), new FloatVector3(761, 69, 490)), + Pair.of(new FloatVector3(761, 69, 490), new FloatVector3(687, 69, 490)) + )), + new DefaultGangzone(Faction.WESTSIDEBALLAS.getColor().getColor(), List.of( + Pair.of(new FloatVector3(-199, 69, 142), new FloatVector3(-199, 69, 272)), + Pair.of(new FloatVector3(-199, 69, 272), new FloatVector3(-121, 69, 272)), + Pair.of(new FloatVector3(-121, 69, 272), new FloatVector3(-121, 69, 142)), + Pair.of(new FloatVector3(-121, 69, 142), new FloatVector3(-199, 69, 142)) + )), + new DefaultGangzone(Faction.KERZAKOV.getColor().getColor(), List.of( + Pair.of(new FloatVector3(863, 69, 160), new FloatVector3(863, 69, 239)), + Pair.of(new FloatVector3(863, 69, 239), new FloatVector3(956, 69, 239)), + Pair.of(new FloatVector3(956, 69, 239), new FloatVector3(956, 69, 160)), + Pair.of(new FloatVector3(956, 69, 160), new FloatVector3(863, 69, 160)) + )), + // attackable: ALTSTADT + new DefaultGangzone(Faction.NULL.getColor().getColor(), List.of( + Pair.of(new FloatVector3(195, 69, 589), new FloatVector3(195, 69, 637)), + Pair.of(new FloatVector3(195, 69, 637), new FloatVector3(182, 69, 637)), + Pair.of(new FloatVector3(182, 69, 637), new FloatVector3(182, 69, 647)), + Pair.of(new FloatVector3(182, 69, 647), new FloatVector3(174, 69, 647)), + Pair.of(new FloatVector3(174, 69, 647), new FloatVector3(174, 69, 677)), + Pair.of(new FloatVector3(174, 69, 677), new FloatVector3(178, 69, 677)), + Pair.of(new FloatVector3(178, 69, 677), new FloatVector3(178, 69, 687)), + Pair.of(new FloatVector3(178, 69, 687), new FloatVector3(182, 69, 687)), + Pair.of(new FloatVector3(182, 69, 687), new FloatVector3(182, 69, 745)), + Pair.of(new FloatVector3(182, 69, 745), new FloatVector3(176, 69, 745)), + Pair.of(new FloatVector3(176, 69, 745), new FloatVector3(176, 69, 768)), + Pair.of(new FloatVector3(176, 69, 768), new FloatVector3(182, 69, 768)), + Pair.of(new FloatVector3(182, 69, 768), new FloatVector3(182, 69, 794)), + Pair.of(new FloatVector3(182, 69, 794), new FloatVector3(192, 69, 794)), + Pair.of(new FloatVector3(192, 69, 794), new FloatVector3(192, 69, 848)), + Pair.of(new FloatVector3(192, 69, 848), new FloatVector3(304, 69, 848)), + Pair.of(new FloatVector3(304, 69, 848), new FloatVector3(304, 69, 824)), + Pair.of(new FloatVector3(304, 69, 824), new FloatVector3(316, 69, 824)), + Pair.of(new FloatVector3(316, 69, 824), new FloatVector3(316, 69, 803)), + Pair.of(new FloatVector3(316, 69, 803), new FloatVector3(314, 69, 803)), + Pair.of(new FloatVector3(314, 69, 803), new FloatVector3(314, 69, 786)), + Pair.of(new FloatVector3(314, 69, 786), new FloatVector3(313, 69, 786)), + Pair.of(new FloatVector3(313, 69, 786), new FloatVector3(313, 69, 589)), + Pair.of(new FloatVector3(313, 69, 589), new FloatVector3(195, 69, 589)) + )), + // attackable: FARM + new DefaultGangzone(Faction.NULL.getColor().getColor(), List.of( + Pair.of(new FloatVector3(455, 69, 483), new FloatVector3(455, 69, 562)), + Pair.of(new FloatVector3(455, 69, 562), new FloatVector3(522, 69, 562)), + Pair.of(new FloatVector3(522, 69, 562), new FloatVector3(522, 69, 568)), + Pair.of(new FloatVector3(522, 69, 568), new FloatVector3(550, 69, 568)), + Pair.of(new FloatVector3(550, 69, 568), new FloatVector3(550, 69, 562)), + Pair.of(new FloatVector3(550, 69, 562), new FloatVector3(551, 69, 562)), + Pair.of(new FloatVector3(551, 69, 562), new FloatVector3(551, 69, 551)), + Pair.of(new FloatVector3(551, 69, 551), new FloatVector3(550, 69, 551)), + Pair.of(new FloatVector3(550, 69, 551), new FloatVector3(550, 69, 544)), + Pair.of(new FloatVector3(550, 69, 544), new FloatVector3(525, 69, 544)), + Pair.of(new FloatVector3(525, 69, 544), new FloatVector3(525, 69, 483)), + Pair.of(new FloatVector3(525, 69, 483), new FloatVector3(455, 69, 483)) + )), + // attackable: HAFEN + new DefaultGangzone(Faction.NULL.getColor().getColor(), List.of( + Pair.of(new FloatVector3(-423, 69, 2), new FloatVector3(-423, 69, 177)), + Pair.of(new FloatVector3(-423, 69, 177), new FloatVector3(-322, 69, 177)), + Pair.of(new FloatVector3(-322, 69, 177), new FloatVector3(-322, 69, 2)), + Pair.of(new FloatVector3(-322, 69, 2), new FloatVector3(-423, 69, 2)) + )), + // attackable: PLATTENBAU + new DefaultGangzone(Faction.NULL.getColor().getColor(), List.of( + Pair.of(new FloatVector3(-525, 69, 415), new FloatVector3(-525, 69, 447)), + Pair.of(new FloatVector3(-525, 69, 447), new FloatVector3(-510, 69, 447)), + Pair.of(new FloatVector3(-510, 69, 447), new FloatVector3(-510, 69, 439)), + Pair.of(new FloatVector3(-510, 69, 439), new FloatVector3(-486, 69, 439)), + Pair.of(new FloatVector3(-486, 69, 439), new FloatVector3(-486, 69, 429)), + Pair.of(new FloatVector3(-486, 69, 429), new FloatVector3(-411, 69, 429)), + Pair.of(new FloatVector3(-411, 69, 429), new FloatVector3(-411, 69, 392)), + Pair.of(new FloatVector3(-411, 69, 392), new FloatVector3(-418, 69, 392)), + Pair.of(new FloatVector3(-418, 69, 392), new FloatVector3(-418, 69, 378)), + Pair.of(new FloatVector3(-418, 69, 378), new FloatVector3(-480, 69, 378)), + Pair.of(new FloatVector3(-480, 69, 378), new FloatVector3(-480, 69, 413)), + Pair.of(new FloatVector3(-480, 69, 413), new FloatVector3(-486, 69, 413)), + Pair.of(new FloatVector3(-486, 69, 413), new FloatVector3(-486, 69, 406)), + Pair.of(new FloatVector3(-486, 69, 406), new FloatVector3(-496, 69, 406)), + Pair.of(new FloatVector3(-496, 69, 406), new FloatVector3(-496, 69, 415)), + Pair.of(new FloatVector3(-496, 69, 415), new FloatVector3(-525, 69, 415)) + )), + // attackable: ROTLICHT + new DefaultGangzone(Faction.NULL.getColor().getColor(), List.of( + Pair.of(new FloatVector3(691, 69, -29), new FloatVector3(691, 69, 60)), + Pair.of(new FloatVector3(691, 69, 60), new FloatVector3(763, 69, 60)), + Pair.of(new FloatVector3(763, 69, 60), new FloatVector3(763, 69, 58)), + Pair.of(new FloatVector3(763, 69, 58), new FloatVector3(764, 69, 58)), + Pair.of(new FloatVector3(764, 69, 58), new FloatVector3(764, 69, 56)), + Pair.of(new FloatVector3(764, 69, 56), new FloatVector3(765, 69, 56)), + Pair.of(new FloatVector3(765, 69, 56), new FloatVector3(765, 69, 55)), + Pair.of(new FloatVector3(765, 69, 55), new FloatVector3(767, 69, 55)), + Pair.of(new FloatVector3(767, 69, 55), new FloatVector3(767, 69, 54)), + Pair.of(new FloatVector3(767, 69, 54), new FloatVector3(807, 69, 54)), + Pair.of(new FloatVector3(807, 69, 54), new FloatVector3(807, 69, -29)), + Pair.of(new FloatVector3(807, 69, -29), new FloatVector3(691, 69, -29)) + )), + // attackable: YACHTHAFEN + new DefaultGangzone(Faction.NULL.getColor().getColor(), List.of( + Pair.of(new FloatVector3(236, 69, -551), new FloatVector3(236, 69, -495)), + Pair.of(new FloatVector3(236, 69, -495), new FloatVector3(292, 69, -495)), + Pair.of(new FloatVector3(292, 69, -495), new FloatVector3(292, 69, -551)), + Pair.of(new FloatVector3(292, 69, -551), new FloatVector3(236, 69, -551)) + )) + ); + } +} From ce1b011bef32bdd8c3400f5bb853c0f8eca317f5 Mon Sep 17 00:00:00 2001 From: rettichlp Date: Fri, 8 Sep 2023 13:58:32 +0200 Subject: [PATCH 05/25] Update old gangzone handling --- .../base/enums/faction/Gangzone.java | 94 +++++++++++++++---- .../controller/RenderController.java | 2 +- .../listener/ScreenRenderListener.java | 4 +- .../v1_12_2/VersionedRenderController.java | 20 ++-- 4 files changed, 90 insertions(+), 30 deletions(-) diff --git a/core/src/main/java/com/rettichlp/unicacityaddon/base/enums/faction/Gangzone.java b/core/src/main/java/com/rettichlp/unicacityaddon/base/enums/faction/Gangzone.java index 25f811e3..62e5eabd 100644 --- a/core/src/main/java/com/rettichlp/unicacityaddon/base/enums/faction/Gangzone.java +++ b/core/src/main/java/com/rettichlp/unicacityaddon/base/enums/faction/Gangzone.java @@ -2,6 +2,7 @@ import lombok.AllArgsConstructor; import lombok.Getter; +import net.labymod.api.util.Color; import net.labymod.api.util.Pair; import net.labymod.api.util.math.vector.FloatVector3; @@ -14,39 +15,39 @@ @AllArgsConstructor public enum Gangzone { - LE_MILIEU(List.of( + LE_MILIEU(Color.DARK_GRAY, List.of( Pair.of(new FloatVector3(262, 69, -313), new FloatVector3(262, 69, -219)), Pair.of(new FloatVector3(262, 69, -219), new FloatVector3(337, 69, -219)), Pair.of(new FloatVector3(337, 69, -219), new FloatVector3(337, 69, -313)), Pair.of(new FloatVector3(337, 69, -313), new FloatVector3(262, 69, -313)))), - MAFIA(List.of( + MAFIA(Color.CYAN, List.of( Pair.of(new FloatVector3(-56, 69, -478), new FloatVector3(-56, 69, -427)), Pair.of(new FloatVector3(-56, 69, -427), new FloatVector3(47, 69, -427)), Pair.of(new FloatVector3(47, 69, -427), new FloatVector3(47, 69, -509)), Pair.of(new FloatVector3(47, 69, -509), new FloatVector3(-35, 69, -509)), Pair.of(new FloatVector3(-35, 69, -509), new FloatVector3(-35, 69, -478)), Pair.of(new FloatVector3(-35, 69, -478), new FloatVector3(-56, 69, -478)))), - MEX(List.of( + MEX(Color.YELLOW, List.of( Pair.of(new FloatVector3(-343, 69, -149), new FloatVector3(-343, 69, -84)), Pair.of(new FloatVector3(-343, 69, -84), new FloatVector3(-251, 69, -84)), Pair.of(new FloatVector3(-251, 69, -84), new FloatVector3(-251, 69, -149)), Pair.of(new FloatVector3(-251, 69, -149), new FloatVector3(-343, 69, -149)))), - HAFEN(List.of( - Pair.of(new FloatVector3(-423, 69, 2), new FloatVector3(-423, 69, 177)), - Pair.of(new FloatVector3(-423, 69, 177), new FloatVector3(-322, 69, 177)), - Pair.of(new FloatVector3(-322, 69, 177), new FloatVector3(-322, 69, 2)), - Pair.of(new FloatVector3(-322, 69, 2), new FloatVector3(-423, 69, 2)))), - WESTSIDEBALLAS(List.of( + WESTSIDEBALLAS(Color.MAGENTA, List.of( Pair.of(new FloatVector3(-199, 69, 142), new FloatVector3(-199, 69, 272)), Pair.of(new FloatVector3(-199, 69, 272), new FloatVector3(-121, 69, 272)), Pair.of(new FloatVector3(-121, 69, 272), new FloatVector3(-121, 69, 142)), Pair.of(new FloatVector3(-121, 69, 142), new FloatVector3(-199, 69, 142)))), -// HAFEN(List.of( -// Pair.of(new FloatVector3(, 69, ), new FloatVector3(, 69, )), -// Pair.of(new FloatVector3(, 69, ), new FloatVector3(, 69, )), -// Pair.of(new FloatVector3(, 69, ), new FloatVector3(, 69, )), -// Pair.of(new FloatVector3(, 69, ), new FloatVector3(, 69, )))), - FARM(List.of( + OBRIEN(Color.GREEN, List.of( + Pair.of(new FloatVector3(687, 69, 490), new FloatVector3(687, 69, 593)), + Pair.of(new FloatVector3(687, 69, 593), new FloatVector3(761, 69, 593)), + Pair.of(new FloatVector3(761, 69, 593), new FloatVector3(761, 69, 490)), + Pair.of(new FloatVector3(761, 69, 490), new FloatVector3(687, 69, 490)))), + KERZAKOV(Color.RED, List.of( + Pair.of(new FloatVector3(863, 69, 160), new FloatVector3(863, 69, 239)), + Pair.of(new FloatVector3(863, 69, 239), new FloatVector3(956, 69, 239)), + Pair.of(new FloatVector3(956, 69, 239), new FloatVector3(956, 69, 160)), + Pair.of(new FloatVector3(956, 69, 160), new FloatVector3(863, 69, 160)))), + FARM(Color.LIGHT_GRAY, List.of( Pair.of(new FloatVector3(455, 69, 483), new FloatVector3(455, 69, 562)), Pair.of(new FloatVector3(455, 69, 562), new FloatVector3(522, 69, 562)), Pair.of(new FloatVector3(522, 69, 562), new FloatVector3(522, 69, 568)), @@ -59,11 +60,72 @@ public enum Gangzone { Pair.of(new FloatVector3(550, 69, 544), new FloatVector3(525, 69, 544)), Pair.of(new FloatVector3(525, 69, 544), new FloatVector3(525, 69, 483)), Pair.of(new FloatVector3(525, 69, 483), new FloatVector3(455, 69, 483)))), - YACHTHAFEN(List.of( + ROTLICHT(Color.LIGHT_GRAY, List.of( + Pair.of(new FloatVector3(691, 69, -29), new FloatVector3(691, 69, 60)), + Pair.of(new FloatVector3(691, 69, 60), new FloatVector3(763, 69, 60)), + Pair.of(new FloatVector3(763, 69, 60), new FloatVector3(763, 69, 58)), + Pair.of(new FloatVector3(763, 69, 58), new FloatVector3(764, 69, 58)), + Pair.of(new FloatVector3(764, 69, 58), new FloatVector3(764, 69, 56)), + Pair.of(new FloatVector3(764, 69, 56), new FloatVector3(765, 69, 56)), + Pair.of(new FloatVector3(765, 69, 56), new FloatVector3(765, 69, 55)), + Pair.of(new FloatVector3(765, 69, 55), new FloatVector3(767, 69, 55)), + Pair.of(new FloatVector3(767, 69, 55), new FloatVector3(767, 69, 54)), + Pair.of(new FloatVector3(767, 69, 54), new FloatVector3(807, 69, 54)), + Pair.of(new FloatVector3(807, 69, 54), new FloatVector3(807, 69, -29)), + Pair.of(new FloatVector3(807, 69, -29), new FloatVector3(691, 69, -29)))), + HAFEN(Color.LIGHT_GRAY, List.of( + Pair.of(new FloatVector3(-423, 69, 2), new FloatVector3(-423, 69, 177)), + Pair.of(new FloatVector3(-423, 69, 177), new FloatVector3(-322, 69, 177)), + Pair.of(new FloatVector3(-322, 69, 177), new FloatVector3(-322, 69, 2)), + Pair.of(new FloatVector3(-322, 69, 2), new FloatVector3(-423, 69, 2)))), + PLATTENBAU(Color.LIGHT_GRAY, List.of( + Pair.of(new FloatVector3(-525, 69, 415), new FloatVector3(-525, 69, 447)), + Pair.of(new FloatVector3(-525, 69, 447), new FloatVector3(-510, 69, 447)), + Pair.of(new FloatVector3(-510, 69, 447), new FloatVector3(-510, 69, 439)), + Pair.of(new FloatVector3(-510, 69, 439), new FloatVector3(-486, 69, 439)), + Pair.of(new FloatVector3(-486, 69, 439), new FloatVector3(-486, 69, 429)), + Pair.of(new FloatVector3(-486, 69, 429), new FloatVector3(-411, 69, 429)), + Pair.of(new FloatVector3(-411, 69, 429), new FloatVector3(-411, 69, 392)), + Pair.of(new FloatVector3(-411, 69, 392), new FloatVector3(-418, 69, 392)), + Pair.of(new FloatVector3(-418, 69, 392), new FloatVector3(-418, 69, 378)), + Pair.of(new FloatVector3(-418, 69, 378), new FloatVector3(-480, 69, 378)), + Pair.of(new FloatVector3(-480, 69, 378), new FloatVector3(-480, 69, 413)), + Pair.of(new FloatVector3(-480, 69, 413), new FloatVector3(-486, 69, 413)), + Pair.of(new FloatVector3(-486, 69, 413), new FloatVector3(-486, 69, 406)), + Pair.of(new FloatVector3(-486, 69, 406), new FloatVector3(-496, 69, 406)), + Pair.of(new FloatVector3(-496, 69, 406), new FloatVector3(-496, 69, 415)), + Pair.of(new FloatVector3(-496, 69, 415), new FloatVector3(-525, 69, 415)))), + ALTSTADT(Color.LIGHT_GRAY, List.of( + Pair.of(new FloatVector3(195, 69, 589), new FloatVector3(195, 69, 637)), + Pair.of(new FloatVector3(195, 69, 637), new FloatVector3(182, 69, 637)), + Pair.of(new FloatVector3(182, 69, 637), new FloatVector3(182, 69, 647)), + Pair.of(new FloatVector3(182, 69, 647), new FloatVector3(174, 69, 647)), + Pair.of(new FloatVector3(174, 69, 647), new FloatVector3(174, 69, 677)), + Pair.of(new FloatVector3(174, 69, 677), new FloatVector3(178, 69, 677)), + Pair.of(new FloatVector3(178, 69, 677), new FloatVector3(178, 69, 687)), + Pair.of(new FloatVector3(178, 69, 687), new FloatVector3(182, 69, 687)), + Pair.of(new FloatVector3(182, 69, 687), new FloatVector3(182, 69, 745)), + Pair.of(new FloatVector3(182, 69, 745), new FloatVector3(176, 69, 745)), + Pair.of(new FloatVector3(176, 69, 745), new FloatVector3(176, 69, 768)), + Pair.of(new FloatVector3(176, 69, 768), new FloatVector3(182, 69, 768)), + Pair.of(new FloatVector3(182, 69, 768), new FloatVector3(182, 69, 794)), + Pair.of(new FloatVector3(182, 69, 794), new FloatVector3(192, 69, 794)), + Pair.of(new FloatVector3(192, 69, 794), new FloatVector3(192, 69, 848)), + Pair.of(new FloatVector3(192, 69, 848), new FloatVector3(304, 69, 848)), + Pair.of(new FloatVector3(304, 69, 848), new FloatVector3(304, 69, 824)), + Pair.of(new FloatVector3(304, 69, 824), new FloatVector3(316, 69, 824)), + Pair.of(new FloatVector3(316, 69, 824), new FloatVector3(316, 69, 803)), + Pair.of(new FloatVector3(316, 69, 803), new FloatVector3(314, 69, 803)), + Pair.of(new FloatVector3(314, 69, 803), new FloatVector3(314, 69, 786)), + Pair.of(new FloatVector3(314, 69, 786), new FloatVector3(313, 69, 786)), + Pair.of(new FloatVector3(313, 69, 786), new FloatVector3(313, 69, 589)), + Pair.of(new FloatVector3(313, 69, 589), new FloatVector3(195, 69, 589)))), + YACHTHAFEN(Color.LIGHT_GRAY, List.of( Pair.of(new FloatVector3(236, 69, -551), new FloatVector3(236, 69, -495)), Pair.of(new FloatVector3(236, 69, -495), new FloatVector3(292, 69, -495)), Pair.of(new FloatVector3(292, 69, -495), new FloatVector3(292, 69, -551)), Pair.of(new FloatVector3(292, 69, -551), new FloatVector3(236, 69, -551)))); + private final Color color; private final List> facades; } diff --git a/core/src/main/java/com/rettichlp/unicacityaddon/controller/RenderController.java b/core/src/main/java/com/rettichlp/unicacityaddon/controller/RenderController.java index be0f223b..668d04ef 100644 --- a/core/src/main/java/com/rettichlp/unicacityaddon/controller/RenderController.java +++ b/core/src/main/java/com/rettichlp/unicacityaddon/controller/RenderController.java @@ -12,5 +12,5 @@ @Referenceable public abstract class RenderController { - public abstract void drawFacade(FloatVector3 first, FloatVector3 second, Color c, double height); + public abstract void drawFacade(FloatVector3 first, FloatVector3 second, Color c); } diff --git a/core/src/main/java/com/rettichlp/unicacityaddon/listener/ScreenRenderListener.java b/core/src/main/java/com/rettichlp/unicacityaddon/listener/ScreenRenderListener.java index 565421e5..32731214 100644 --- a/core/src/main/java/com/rettichlp/unicacityaddon/listener/ScreenRenderListener.java +++ b/core/src/main/java/com/rettichlp/unicacityaddon/listener/ScreenRenderListener.java @@ -13,7 +13,6 @@ import net.labymod.api.event.client.render.ScreenRenderEvent; import net.labymod.api.event.client.render.world.RenderWorldEvent; import net.labymod.api.event.client.world.ItemStackTooltipEvent; -import net.labymod.api.util.Color; import java.util.ArrayList; import java.util.Arrays; @@ -62,10 +61,9 @@ public void onScreenRender(ScreenRenderEvent e) { @Subscribe public void onRenderWorld(RenderWorldEvent e) { if (this.unicacityAddon.utilService().isUnicacity() && this.showGangzones) { - Color c = Color.ORANGE; Arrays.stream(Gangzone.values()) .forEach(gangzone -> gangzone.getFacades() - .forEach(posPair -> this.unicacityAddon.renderController().drawFacade(posPair.getFirst(), posPair.getSecond(), c, 50))); + .forEach(posPair -> this.unicacityAddon.renderController().drawFacade(posPair.getFirst(), posPair.getSecond(), gangzone.getColor()))); } } diff --git a/game-runner/src/v1_12_2/java/com/rettichlp/unicacityaddon/v1_12_2/VersionedRenderController.java b/game-runner/src/v1_12_2/java/com/rettichlp/unicacityaddon/v1_12_2/VersionedRenderController.java index 256caef9..e302636d 100644 --- a/game-runner/src/v1_12_2/java/com/rettichlp/unicacityaddon/v1_12_2/VersionedRenderController.java +++ b/game-runner/src/v1_12_2/java/com/rettichlp/unicacityaddon/v1_12_2/VersionedRenderController.java @@ -20,7 +20,7 @@ public class VersionedRenderController extends RenderController { @Override - public void drawFacade(FloatVector3 first, FloatVector3 second, Color c, double height) { + public void drawFacade(FloatVector3 first, FloatVector3 second, Color c) { // length of facade double length; @@ -29,7 +29,7 @@ public void drawFacade(FloatVector3 first, FloatVector3 second, Color c, double FloatVector3 lower = first.getZ() <= second.getZ() ? first : second; double x = lower.getX() - Minecraft.getMinecraft().getRenderManager().viewerPosX; - double y = lower.getY() - Minecraft.getMinecraft().getRenderManager().viewerPosY; + double y = 0 - Minecraft.getMinecraft().getRenderManager().viewerPosY; double z = lower.getZ() - Minecraft.getMinecraft().getRenderManager().viewerPosZ; // length @@ -38,9 +38,9 @@ public void drawFacade(FloatVector3 first, FloatVector3 second, Color c, double // draw glPushMatrix(); gl(c.withAlpha(0.12f), () -> { - drawColorBox(new AxisAlignedBB(x, -height, z, x, height, z + length), 0F, 0F, 0F, 0F); + drawColorBox(new AxisAlignedBB(x, y, z, x, y + 100, z + length), 0F, 0F, 0F, 0F); glColor4d(0, 0, 0, 0.5); - drawSelectionBoundingBox(new AxisAlignedBB(x, -height, z, x, height, z + length)); + drawSelectionBoundingBox(new AxisAlignedBB(x, y, z, x, y + 100, z + length)); glLineWidth(2.0F); }); glPopMatrix(); @@ -49,7 +49,7 @@ public void drawFacade(FloatVector3 first, FloatVector3 second, Color c, double FloatVector3 lower = first.getX() <= second.getX() ? first : second; double x = lower.getX() - Minecraft.getMinecraft().getRenderManager().viewerPosX; - double y = lower.getY() - Minecraft.getMinecraft().getRenderManager().viewerPosY; + double y = 0 - Minecraft.getMinecraft().getRenderManager().viewerPosY; double z = lower.getZ() - Minecraft.getMinecraft().getRenderManager().viewerPosZ; // length @@ -58,9 +58,9 @@ public void drawFacade(FloatVector3 first, FloatVector3 second, Color c, double // draw glPushMatrix(); gl(c.withAlpha(0.12f), () -> { - drawColorBox(new AxisAlignedBB(x, -height, z, x + length, height, z), 0F, 0F, 0F, 0F); + drawColorBox(new AxisAlignedBB(x, y, z, x + length, y + 100, z), 0F, 0F, 0F, 0F); glColor4d(0, 0, 0, 0.5); - drawSelectionBoundingBox(new AxisAlignedBB(x, -height, z, x + length, height, z)); + drawSelectionBoundingBox(new AxisAlignedBB(x, y, z, x + length, y + 100, z)); glLineWidth(2.0F); }); glPopMatrix(); @@ -70,19 +70,19 @@ public void drawFacade(FloatVector3 first, FloatVector3 second, Color c, double } private void gl(Color c, Runnable runnable) { - glBlendFunc(770, 771); + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); glEnable(GL_BLEND); glLineWidth(2.0F); glDisable(GL_TEXTURE_2D); // glDisable(GL_DEPTH_TEST); -// glDepthMask(false); + glDepthMask(false); glColor4f(c.getRed() / 255f, c.getGreen() / 255f, c.getBlue() / 255f, c.getAlpha() / 255f); runnable.run(); glEnable(GL_TEXTURE_2D); // glEnable(GL_DEPTH_TEST); -// glDepthMask(true); + glDepthMask(true); glDisable(GL_BLEND); } From 05af8eaf7d2fd3f7c2c3eff65d5b5094b184b8c7 Mon Sep 17 00:00:00 2001 From: rettichlp Date: Sun, 10 Sep 2023 21:03:51 +0200 Subject: [PATCH 06/25] Update abstract gangzones --- .../unicacityaddon/gangzone/Gangzone.java | 15 -- .../gangzone/GangzoneService.java | 11 -- .../gangzones/AbstractAttackableGangzone.java | 26 +++ .../base/gangzones/AbstractGangzone.java | 41 ++++ .../gangzones/AttackableGangzoneAltstadt.java | 55 ++++++ .../gangzones/AttackableGangzoneFarm.java | 43 +++++ .../gangzones/AttackableGangzoneHafen.java | 35 ++++ .../AttackableGangzonePlattenbau.java | 47 +++++ .../gangzones/AttackableGangzoneRotlicht.java | 43 +++++ .../AttackableGangzoneYachthafen.java | 35 ++++ .../base/gangzones/DefaultGangzone.java | 54 ------ .../gangzones/DefaultGangzoneService.java | 176 ------------------ .../base/gangzones/GangzoneCalderon.java | 30 +++ .../base/gangzones/GangzoneKerzakov.java | 30 +++ .../base/gangzones/GangzoneLaCosaNostra.java | 32 ++++ .../base/gangzones/GangzoneLeMilieu.java | 30 +++ .../base/gangzones/GangzoneObrien.java | 30 +++ .../gangzones/GangzoneWestsideballas.java | 30 +++ .../listener/ScreenRenderListener.java | 8 +- 19 files changed, 510 insertions(+), 261 deletions(-) delete mode 100644 api/src/main/java/com/rettichlp/unicacityaddon/gangzone/Gangzone.java delete mode 100644 api/src/main/java/com/rettichlp/unicacityaddon/gangzone/GangzoneService.java create mode 100644 core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/AbstractAttackableGangzone.java create mode 100644 core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/AbstractGangzone.java create mode 100644 core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/AttackableGangzoneAltstadt.java create mode 100644 core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/AttackableGangzoneFarm.java create mode 100644 core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/AttackableGangzoneHafen.java create mode 100644 core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/AttackableGangzonePlattenbau.java create mode 100644 core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/AttackableGangzoneRotlicht.java create mode 100644 core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/AttackableGangzoneYachthafen.java delete mode 100644 core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/DefaultGangzone.java delete mode 100644 core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/DefaultGangzoneService.java create mode 100644 core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/GangzoneCalderon.java create mode 100644 core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/GangzoneKerzakov.java create mode 100644 core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/GangzoneLaCosaNostra.java create mode 100644 core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/GangzoneLeMilieu.java create mode 100644 core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/GangzoneObrien.java create mode 100644 core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/GangzoneWestsideballas.java diff --git a/api/src/main/java/com/rettichlp/unicacityaddon/gangzone/Gangzone.java b/api/src/main/java/com/rettichlp/unicacityaddon/gangzone/Gangzone.java deleted file mode 100644 index 81f27972..00000000 --- a/api/src/main/java/com/rettichlp/unicacityaddon/gangzone/Gangzone.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.rettichlp.unicacityaddon.gangzone; - -import net.labymod.api.client.world.object.WorldObject; -import net.labymod.api.util.Pair; -import net.labymod.api.util.math.vector.FloatVector3; - -import java.awt.Color; -import java.util.List; - -public interface Gangzone extends WorldObject { - - Color color(); - - List> facades(); -} diff --git a/api/src/main/java/com/rettichlp/unicacityaddon/gangzone/GangzoneService.java b/api/src/main/java/com/rettichlp/unicacityaddon/gangzone/GangzoneService.java deleted file mode 100644 index 87c1d4b3..00000000 --- a/api/src/main/java/com/rettichlp/unicacityaddon/gangzone/GangzoneService.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.rettichlp.unicacityaddon.gangzone; - -import net.labymod.api.reference.annotation.Referenceable; - -import java.util.Collection; - -@Referenceable -public interface GangzoneService { - - Collection getAllGangzones(); -} diff --git a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/AbstractAttackableGangzone.java b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/AbstractAttackableGangzone.java new file mode 100644 index 00000000..b22c8eed --- /dev/null +++ b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/AbstractAttackableGangzone.java @@ -0,0 +1,26 @@ +package com.rettichlp.unicacityaddon.base.gangzones; + +import com.rettichlp.unicacityaddon.UnicacityAddon; +import com.rettichlp.unicacityaddon.base.text.ColorCode; +import net.labymod.api.util.Color; +import net.labymod.api.util.Pair; +import net.labymod.api.util.math.vector.FloatVector3; + +import java.util.List; + +public abstract class AbstractAttackableGangzone extends AbstractGangzone { + + private final UnicacityAddon unicacityAddon; + + public AbstractAttackableGangzone(UnicacityAddon unicacityAddon) { + super(unicacityAddon); + this.unicacityAddon = unicacityAddon; + } + + public abstract List> gangwarFacades(); + + public void renderGangwarArea() { + Color color = ColorCode.GRAY.getLabymodColor(); + this.gangzoneFacades().forEach(posPair -> this.unicacityAddon.renderController().drawFacade(posPair.getFirst(), posPair.getSecond(), color)); + } +} diff --git a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/AbstractGangzone.java b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/AbstractGangzone.java new file mode 100644 index 00000000..928fd847 --- /dev/null +++ b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/AbstractGangzone.java @@ -0,0 +1,41 @@ +package com.rettichlp.unicacityaddon.base.gangzones; + +import com.rettichlp.unicacityaddon.UnicacityAddon; +import com.rettichlp.unicacityaddon.base.enums.faction.Faction; +import com.rettichlp.unicacityaddon.base.text.ColorCode; +import net.labymod.api.util.Color; +import net.labymod.api.util.Pair; +import net.labymod.api.util.math.vector.FloatVector3; + +import java.util.List; +import java.util.Optional; + +public abstract class AbstractGangzone { + + private final UnicacityAddon unicacityAddon; + + public AbstractGangzone(UnicacityAddon unicacityAddon) { + this.unicacityAddon = unicacityAddon; + } + + public abstract Faction owner(); + + public abstract List> gangzoneFacades(); + + public void renderGangzoneArea() { + Color color = Optional.ofNullable(this.owner()).map(faction -> faction.getColor().getLabymodColor()).orElse(ColorCode.GRAY.getLabymodColor()); + this.gangzoneFacades().forEach(posPair -> this.unicacityAddon.renderController().drawFacade(posPair.getFirst(), posPair.getSecond(), color)); + } + +// @Override +// public void renderInWorld(@NotNull MinecraftCamera cam, @NotNull Stack stack, float x, float y, float z, float delta, boolean darker) { +// stack.push(); +// +// RenderPipeline render = Laby.references().renderPipeline(); +// +// render.rectangleRenderer() +// .renderRectangle(stack, Rectangle.absolute(1, 1, 1, 5), Color.RED); +// +// stack.pop(); +// } +} diff --git a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/AttackableGangzoneAltstadt.java b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/AttackableGangzoneAltstadt.java new file mode 100644 index 00000000..625e2f52 --- /dev/null +++ b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/AttackableGangzoneAltstadt.java @@ -0,0 +1,55 @@ +package com.rettichlp.unicacityaddon.base.gangzones; + +import com.rettichlp.unicacityaddon.UnicacityAddon; +import com.rettichlp.unicacityaddon.base.enums.faction.Faction; +import net.labymod.api.util.Pair; +import net.labymod.api.util.math.vector.FloatVector3; + +import java.util.List; + +public class AttackableGangzoneAltstadt extends AbstractAttackableGangzone { + + public AttackableGangzoneAltstadt(UnicacityAddon unicacityAddon) { + super(unicacityAddon); + } + + @Override + public Faction owner() { + return null; + } + + @Override + public List> gangzoneFacades() { + return List.of( + Pair.of(new FloatVector3(195, 69, 589), new FloatVector3(195, 69, 637)), + Pair.of(new FloatVector3(195, 69, 637), new FloatVector3(182, 69, 637)), + Pair.of(new FloatVector3(182, 69, 637), new FloatVector3(182, 69, 647)), + Pair.of(new FloatVector3(182, 69, 647), new FloatVector3(174, 69, 647)), + Pair.of(new FloatVector3(174, 69, 647), new FloatVector3(174, 69, 677)), + Pair.of(new FloatVector3(174, 69, 677), new FloatVector3(178, 69, 677)), + Pair.of(new FloatVector3(178, 69, 677), new FloatVector3(178, 69, 687)), + Pair.of(new FloatVector3(178, 69, 687), new FloatVector3(182, 69, 687)), + Pair.of(new FloatVector3(182, 69, 687), new FloatVector3(182, 69, 745)), + Pair.of(new FloatVector3(182, 69, 745), new FloatVector3(176, 69, 745)), + Pair.of(new FloatVector3(176, 69, 745), new FloatVector3(176, 69, 768)), + Pair.of(new FloatVector3(176, 69, 768), new FloatVector3(182, 69, 768)), + Pair.of(new FloatVector3(182, 69, 768), new FloatVector3(182, 69, 794)), + Pair.of(new FloatVector3(182, 69, 794), new FloatVector3(192, 69, 794)), + Pair.of(new FloatVector3(192, 69, 794), new FloatVector3(192, 69, 848)), + Pair.of(new FloatVector3(192, 69, 848), new FloatVector3(304, 69, 848)), + Pair.of(new FloatVector3(304, 69, 848), new FloatVector3(304, 69, 824)), + Pair.of(new FloatVector3(304, 69, 824), new FloatVector3(316, 69, 824)), + Pair.of(new FloatVector3(316, 69, 824), new FloatVector3(316, 69, 803)), + Pair.of(new FloatVector3(316, 69, 803), new FloatVector3(314, 69, 803)), + Pair.of(new FloatVector3(314, 69, 803), new FloatVector3(314, 69, 786)), + Pair.of(new FloatVector3(314, 69, 786), new FloatVector3(313, 69, 786)), + Pair.of(new FloatVector3(313, 69, 786), new FloatVector3(313, 69, 589)), + Pair.of(new FloatVector3(313, 69, 589), new FloatVector3(195, 69, 589)) + ); + } + + @Override + public List> gangwarFacades() { + return null; + } +} diff --git a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/AttackableGangzoneFarm.java b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/AttackableGangzoneFarm.java new file mode 100644 index 00000000..c8902b37 --- /dev/null +++ b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/AttackableGangzoneFarm.java @@ -0,0 +1,43 @@ +package com.rettichlp.unicacityaddon.base.gangzones; + +import com.rettichlp.unicacityaddon.UnicacityAddon; +import com.rettichlp.unicacityaddon.base.enums.faction.Faction; +import net.labymod.api.util.Pair; +import net.labymod.api.util.math.vector.FloatVector3; + +import java.util.List; + +public class AttackableGangzoneFarm extends AbstractAttackableGangzone { + + public AttackableGangzoneFarm(UnicacityAddon unicacityAddon) { + super(unicacityAddon); + } + + @Override + public Faction owner() { + return null; + } + + @Override + public List> gangzoneFacades() { + return List.of( + Pair.of(new FloatVector3(455, 69, 483), new FloatVector3(455, 69, 562)), + Pair.of(new FloatVector3(455, 69, 562), new FloatVector3(522, 69, 562)), + Pair.of(new FloatVector3(522, 69, 562), new FloatVector3(522, 69, 568)), + Pair.of(new FloatVector3(522, 69, 568), new FloatVector3(550, 69, 568)), + Pair.of(new FloatVector3(550, 69, 568), new FloatVector3(550, 69, 562)), + Pair.of(new FloatVector3(550, 69, 562), new FloatVector3(551, 69, 562)), + Pair.of(new FloatVector3(551, 69, 562), new FloatVector3(551, 69, 551)), + Pair.of(new FloatVector3(551, 69, 551), new FloatVector3(550, 69, 551)), + Pair.of(new FloatVector3(550, 69, 551), new FloatVector3(550, 69, 544)), + Pair.of(new FloatVector3(550, 69, 544), new FloatVector3(525, 69, 544)), + Pair.of(new FloatVector3(525, 69, 544), new FloatVector3(525, 69, 483)), + Pair.of(new FloatVector3(525, 69, 483), new FloatVector3(455, 69, 483)) + ); + } + + @Override + public List> gangwarFacades() { + return null; + } +} diff --git a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/AttackableGangzoneHafen.java b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/AttackableGangzoneHafen.java new file mode 100644 index 00000000..8a225883 --- /dev/null +++ b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/AttackableGangzoneHafen.java @@ -0,0 +1,35 @@ +package com.rettichlp.unicacityaddon.base.gangzones; + +import com.rettichlp.unicacityaddon.UnicacityAddon; +import com.rettichlp.unicacityaddon.base.enums.faction.Faction; +import net.labymod.api.util.Pair; +import net.labymod.api.util.math.vector.FloatVector3; + +import java.util.List; + +public class AttackableGangzoneHafen extends AbstractAttackableGangzone { + + public AttackableGangzoneHafen(UnicacityAddon unicacityAddon) { + super(unicacityAddon); + } + + @Override + public Faction owner() { + return null; + } + + @Override + public List> gangzoneFacades() { + return List.of( + Pair.of(new FloatVector3(-423, 69, 2), new FloatVector3(-423, 69, 177)), + Pair.of(new FloatVector3(-423, 69, 177), new FloatVector3(-322, 69, 177)), + Pair.of(new FloatVector3(-322, 69, 177), new FloatVector3(-322, 69, 2)), + Pair.of(new FloatVector3(-322, 69, 2), new FloatVector3(-423, 69, 2)) + ); + } + + @Override + public List> gangwarFacades() { + return null; + } +} diff --git a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/AttackableGangzonePlattenbau.java b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/AttackableGangzonePlattenbau.java new file mode 100644 index 00000000..ad1240d8 --- /dev/null +++ b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/AttackableGangzonePlattenbau.java @@ -0,0 +1,47 @@ +package com.rettichlp.unicacityaddon.base.gangzones; + +import com.rettichlp.unicacityaddon.UnicacityAddon; +import com.rettichlp.unicacityaddon.base.enums.faction.Faction; +import net.labymod.api.util.Pair; +import net.labymod.api.util.math.vector.FloatVector3; + +import java.util.List; + +public class AttackableGangzonePlattenbau extends AbstractAttackableGangzone { + + public AttackableGangzonePlattenbau(UnicacityAddon unicacityAddon) { + super(unicacityAddon); + } + + @Override + public Faction owner() { + return null; + } + + @Override + public List> gangzoneFacades() { + return List.of( + Pair.of(new FloatVector3(-525, 69, 415), new FloatVector3(-525, 69, 447)), + Pair.of(new FloatVector3(-525, 69, 447), new FloatVector3(-510, 69, 447)), + Pair.of(new FloatVector3(-510, 69, 447), new FloatVector3(-510, 69, 439)), + Pair.of(new FloatVector3(-510, 69, 439), new FloatVector3(-486, 69, 439)), + Pair.of(new FloatVector3(-486, 69, 439), new FloatVector3(-486, 69, 429)), + Pair.of(new FloatVector3(-486, 69, 429), new FloatVector3(-411, 69, 429)), + Pair.of(new FloatVector3(-411, 69, 429), new FloatVector3(-411, 69, 392)), + Pair.of(new FloatVector3(-411, 69, 392), new FloatVector3(-418, 69, 392)), + Pair.of(new FloatVector3(-418, 69, 392), new FloatVector3(-418, 69, 378)), + Pair.of(new FloatVector3(-418, 69, 378), new FloatVector3(-480, 69, 378)), + Pair.of(new FloatVector3(-480, 69, 378), new FloatVector3(-480, 69, 413)), + Pair.of(new FloatVector3(-480, 69, 413), new FloatVector3(-486, 69, 413)), + Pair.of(new FloatVector3(-486, 69, 413), new FloatVector3(-486, 69, 406)), + Pair.of(new FloatVector3(-486, 69, 406), new FloatVector3(-496, 69, 406)), + Pair.of(new FloatVector3(-496, 69, 406), new FloatVector3(-496, 69, 415)), + Pair.of(new FloatVector3(-496, 69, 415), new FloatVector3(-525, 69, 415)) + ); + } + + @Override + public List> gangwarFacades() { + return null; + } +} diff --git a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/AttackableGangzoneRotlicht.java b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/AttackableGangzoneRotlicht.java new file mode 100644 index 00000000..97c9096f --- /dev/null +++ b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/AttackableGangzoneRotlicht.java @@ -0,0 +1,43 @@ +package com.rettichlp.unicacityaddon.base.gangzones; + +import com.rettichlp.unicacityaddon.UnicacityAddon; +import com.rettichlp.unicacityaddon.base.enums.faction.Faction; +import net.labymod.api.util.Pair; +import net.labymod.api.util.math.vector.FloatVector3; + +import java.util.List; + +public class AttackableGangzoneRotlicht extends AbstractAttackableGangzone { + + public AttackableGangzoneRotlicht(UnicacityAddon unicacityAddon) { + super(unicacityAddon); + } + + @Override + public Faction owner() { + return null; + } + + @Override + public List> gangzoneFacades() { + return List.of( + Pair.of(new FloatVector3(691, 69, -29), new FloatVector3(691, 69, 60)), + Pair.of(new FloatVector3(691, 69, 60), new FloatVector3(763, 69, 60)), + Pair.of(new FloatVector3(763, 69, 60), new FloatVector3(763, 69, 58)), + Pair.of(new FloatVector3(763, 69, 58), new FloatVector3(764, 69, 58)), + Pair.of(new FloatVector3(764, 69, 58), new FloatVector3(764, 69, 56)), + Pair.of(new FloatVector3(764, 69, 56), new FloatVector3(765, 69, 56)), + Pair.of(new FloatVector3(765, 69, 56), new FloatVector3(765, 69, 55)), + Pair.of(new FloatVector3(765, 69, 55), new FloatVector3(767, 69, 55)), + Pair.of(new FloatVector3(767, 69, 55), new FloatVector3(767, 69, 54)), + Pair.of(new FloatVector3(767, 69, 54), new FloatVector3(807, 69, 54)), + Pair.of(new FloatVector3(807, 69, 54), new FloatVector3(807, 69, -29)), + Pair.of(new FloatVector3(807, 69, -29), new FloatVector3(691, 69, -29)) + ); + } + + @Override + public List> gangwarFacades() { + return null; + } +} diff --git a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/AttackableGangzoneYachthafen.java b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/AttackableGangzoneYachthafen.java new file mode 100644 index 00000000..a657c560 --- /dev/null +++ b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/AttackableGangzoneYachthafen.java @@ -0,0 +1,35 @@ +package com.rettichlp.unicacityaddon.base.gangzones; + +import com.rettichlp.unicacityaddon.UnicacityAddon; +import com.rettichlp.unicacityaddon.base.enums.faction.Faction; +import net.labymod.api.util.Pair; +import net.labymod.api.util.math.vector.FloatVector3; + +import java.util.List; + +public class AttackableGangzoneYachthafen extends AbstractAttackableGangzone { + + public AttackableGangzoneYachthafen(UnicacityAddon unicacityAddon) { + super(unicacityAddon); + } + + @Override + public Faction owner() { + return null; + } + + @Override + public List> gangzoneFacades() { + return List.of( + Pair.of(new FloatVector3(236, 69, -551), new FloatVector3(236, 69, -495)), + Pair.of(new FloatVector3(236, 69, -495), new FloatVector3(292, 69, -495)), + Pair.of(new FloatVector3(292, 69, -495), new FloatVector3(292, 69, -551)), + Pair.of(new FloatVector3(292, 69, -551), new FloatVector3(236, 69, -551)) + ); + } + + @Override + public List> gangwarFacades() { + return null; + } +} diff --git a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/DefaultGangzone.java b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/DefaultGangzone.java deleted file mode 100644 index efd846bb..00000000 --- a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/DefaultGangzone.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.rettichlp.unicacityaddon.base.gangzones; - -import com.rettichlp.unicacityaddon.gangzone.Gangzone; -import net.labymod.api.Laby; -import net.labymod.api.client.render.RenderPipeline; -import net.labymod.api.client.render.matrix.Stack; -import net.labymod.api.client.world.MinecraftCamera; -import net.labymod.api.client.world.object.AbstractWorldObject; -import net.labymod.api.util.Pair; -import net.labymod.api.util.bounds.Rectangle; -import net.labymod.api.util.math.vector.FloatVector3; -import org.jetbrains.annotations.NotNull; - -import java.awt.*; -import java.util.List; - -public class DefaultGangzone extends AbstractWorldObject implements Gangzone { - - private final Color color; - private final List> facades; - - public DefaultGangzone(Color color, List> facades) { -// super(); - this.color = color; - this.facades = facades; - } - - @Override - public Color color() { - return this.color; - } - - @Override - public List> facades() { - return this.facades; - } - - @Override - public boolean isSeeThrough() { - return super.isSeeThrough(); - } - - @Override - public void renderInWorld(@NotNull MinecraftCamera cam, @NotNull Stack stack, float x, float y, float z, float delta, boolean darker) { - stack.push(); - - RenderPipeline render = Laby.references().renderPipeline(); - - render.rectangleRenderer() - .renderRectangle(stack, Rectangle.absolute(1, 1, 1, 5), Color.RED); - - stack.pop(); - } -} diff --git a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/DefaultGangzoneService.java b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/DefaultGangzoneService.java deleted file mode 100644 index 8fa8ddc7..00000000 --- a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/DefaultGangzoneService.java +++ /dev/null @@ -1,176 +0,0 @@ -package com.rettichlp.unicacityaddon.base.gangzones; - -import com.rettichlp.unicacityaddon.UnicacityAddon; -import com.rettichlp.unicacityaddon.base.enums.faction.Faction; -import com.rettichlp.unicacityaddon.gangzone.Gangzone; -import com.rettichlp.unicacityaddon.gangzone.GangzoneService; -import net.labymod.api.Laby; -import net.labymod.api.client.world.object.WorldObjectRegistry; -import net.labymod.api.models.Implements; -import net.labymod.api.util.Pair; -import net.labymod.api.util.math.vector.FloatVector3; - -import javax.inject.Singleton; -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; - -@Singleton -@Implements(GangzoneService.class) -public class DefaultGangzoneService implements GangzoneService { - - private final WorldObjectRegistry worldObjectRegistry; - - private final Collection gangzones; - - private UnicacityAddon unicacityAddon; - - public DefaultGangzoneService() { - this.worldObjectRegistry = Laby.references().worldObjectRegistry(); - - this.gangzones = new ArrayList<>(); - } - - public void load(UnicacityAddon unicacityAddon) { - this.unicacityAddon = unicacityAddon; - - for (Gangzone gangzone : this.getAllGangzones()) { - this.gangzones.add(gangzone); - this.worldObjectRegistry.register(gangzone); - } - } - - @Override - public Collection getAllGangzones() { - return List.of( - new DefaultGangzone(Faction.CALDERON.getColor().getColor(), List.of( - Pair.of(new FloatVector3(-343, 69, -149), new FloatVector3(-343, 69, -84)), - Pair.of(new FloatVector3(-343, 69, -84), new FloatVector3(-251, 69, -84)), - Pair.of(new FloatVector3(-251, 69, -84), new FloatVector3(-251, 69, -149)), - Pair.of(new FloatVector3(-251, 69, -149), new FloatVector3(-343, 69, -149)) - )), - new DefaultGangzone(Faction.LACOSANOSTRA.getColor().getColor(), List.of( - Pair.of(new FloatVector3(-56, 69, -478), new FloatVector3(-56, 69, -427)), - Pair.of(new FloatVector3(-56, 69, -427), new FloatVector3(47, 69, -427)), - Pair.of(new FloatVector3(47, 69, -427), new FloatVector3(47, 69, -509)), - Pair.of(new FloatVector3(47, 69, -509), new FloatVector3(-35, 69, -509)), - Pair.of(new FloatVector3(-35, 69, -509), new FloatVector3(-35, 69, -478)), - Pair.of(new FloatVector3(-35, 69, -478), new FloatVector3(-56, 69, -478)) - )), - new DefaultGangzone(Faction.LEMILIEU.getColor().getColor(), List.of( - Pair.of(new FloatVector3(262, 69, -313), new FloatVector3(262, 69, -219)), - Pair.of(new FloatVector3(262, 69, -219), new FloatVector3(337, 69, -219)), - Pair.of(new FloatVector3(337, 69, -219), new FloatVector3(337, 69, -313)), - Pair.of(new FloatVector3(337, 69, -313), new FloatVector3(262, 69, -313)) - )), - new DefaultGangzone(Faction.OBRIEN.getColor().getColor(), List.of( - Pair.of(new FloatVector3(687, 69, 490), new FloatVector3(687, 69, 593)), - Pair.of(new FloatVector3(687, 69, 593), new FloatVector3(761, 69, 593)), - Pair.of(new FloatVector3(761, 69, 593), new FloatVector3(761, 69, 490)), - Pair.of(new FloatVector3(761, 69, 490), new FloatVector3(687, 69, 490)) - )), - new DefaultGangzone(Faction.WESTSIDEBALLAS.getColor().getColor(), List.of( - Pair.of(new FloatVector3(-199, 69, 142), new FloatVector3(-199, 69, 272)), - Pair.of(new FloatVector3(-199, 69, 272), new FloatVector3(-121, 69, 272)), - Pair.of(new FloatVector3(-121, 69, 272), new FloatVector3(-121, 69, 142)), - Pair.of(new FloatVector3(-121, 69, 142), new FloatVector3(-199, 69, 142)) - )), - new DefaultGangzone(Faction.KERZAKOV.getColor().getColor(), List.of( - Pair.of(new FloatVector3(863, 69, 160), new FloatVector3(863, 69, 239)), - Pair.of(new FloatVector3(863, 69, 239), new FloatVector3(956, 69, 239)), - Pair.of(new FloatVector3(956, 69, 239), new FloatVector3(956, 69, 160)), - Pair.of(new FloatVector3(956, 69, 160), new FloatVector3(863, 69, 160)) - )), - // attackable: ALTSTADT - new DefaultGangzone(Faction.NULL.getColor().getColor(), List.of( - Pair.of(new FloatVector3(195, 69, 589), new FloatVector3(195, 69, 637)), - Pair.of(new FloatVector3(195, 69, 637), new FloatVector3(182, 69, 637)), - Pair.of(new FloatVector3(182, 69, 637), new FloatVector3(182, 69, 647)), - Pair.of(new FloatVector3(182, 69, 647), new FloatVector3(174, 69, 647)), - Pair.of(new FloatVector3(174, 69, 647), new FloatVector3(174, 69, 677)), - Pair.of(new FloatVector3(174, 69, 677), new FloatVector3(178, 69, 677)), - Pair.of(new FloatVector3(178, 69, 677), new FloatVector3(178, 69, 687)), - Pair.of(new FloatVector3(178, 69, 687), new FloatVector3(182, 69, 687)), - Pair.of(new FloatVector3(182, 69, 687), new FloatVector3(182, 69, 745)), - Pair.of(new FloatVector3(182, 69, 745), new FloatVector3(176, 69, 745)), - Pair.of(new FloatVector3(176, 69, 745), new FloatVector3(176, 69, 768)), - Pair.of(new FloatVector3(176, 69, 768), new FloatVector3(182, 69, 768)), - Pair.of(new FloatVector3(182, 69, 768), new FloatVector3(182, 69, 794)), - Pair.of(new FloatVector3(182, 69, 794), new FloatVector3(192, 69, 794)), - Pair.of(new FloatVector3(192, 69, 794), new FloatVector3(192, 69, 848)), - Pair.of(new FloatVector3(192, 69, 848), new FloatVector3(304, 69, 848)), - Pair.of(new FloatVector3(304, 69, 848), new FloatVector3(304, 69, 824)), - Pair.of(new FloatVector3(304, 69, 824), new FloatVector3(316, 69, 824)), - Pair.of(new FloatVector3(316, 69, 824), new FloatVector3(316, 69, 803)), - Pair.of(new FloatVector3(316, 69, 803), new FloatVector3(314, 69, 803)), - Pair.of(new FloatVector3(314, 69, 803), new FloatVector3(314, 69, 786)), - Pair.of(new FloatVector3(314, 69, 786), new FloatVector3(313, 69, 786)), - Pair.of(new FloatVector3(313, 69, 786), new FloatVector3(313, 69, 589)), - Pair.of(new FloatVector3(313, 69, 589), new FloatVector3(195, 69, 589)) - )), - // attackable: FARM - new DefaultGangzone(Faction.NULL.getColor().getColor(), List.of( - Pair.of(new FloatVector3(455, 69, 483), new FloatVector3(455, 69, 562)), - Pair.of(new FloatVector3(455, 69, 562), new FloatVector3(522, 69, 562)), - Pair.of(new FloatVector3(522, 69, 562), new FloatVector3(522, 69, 568)), - Pair.of(new FloatVector3(522, 69, 568), new FloatVector3(550, 69, 568)), - Pair.of(new FloatVector3(550, 69, 568), new FloatVector3(550, 69, 562)), - Pair.of(new FloatVector3(550, 69, 562), new FloatVector3(551, 69, 562)), - Pair.of(new FloatVector3(551, 69, 562), new FloatVector3(551, 69, 551)), - Pair.of(new FloatVector3(551, 69, 551), new FloatVector3(550, 69, 551)), - Pair.of(new FloatVector3(550, 69, 551), new FloatVector3(550, 69, 544)), - Pair.of(new FloatVector3(550, 69, 544), new FloatVector3(525, 69, 544)), - Pair.of(new FloatVector3(525, 69, 544), new FloatVector3(525, 69, 483)), - Pair.of(new FloatVector3(525, 69, 483), new FloatVector3(455, 69, 483)) - )), - // attackable: HAFEN - new DefaultGangzone(Faction.NULL.getColor().getColor(), List.of( - Pair.of(new FloatVector3(-423, 69, 2), new FloatVector3(-423, 69, 177)), - Pair.of(new FloatVector3(-423, 69, 177), new FloatVector3(-322, 69, 177)), - Pair.of(new FloatVector3(-322, 69, 177), new FloatVector3(-322, 69, 2)), - Pair.of(new FloatVector3(-322, 69, 2), new FloatVector3(-423, 69, 2)) - )), - // attackable: PLATTENBAU - new DefaultGangzone(Faction.NULL.getColor().getColor(), List.of( - Pair.of(new FloatVector3(-525, 69, 415), new FloatVector3(-525, 69, 447)), - Pair.of(new FloatVector3(-525, 69, 447), new FloatVector3(-510, 69, 447)), - Pair.of(new FloatVector3(-510, 69, 447), new FloatVector3(-510, 69, 439)), - Pair.of(new FloatVector3(-510, 69, 439), new FloatVector3(-486, 69, 439)), - Pair.of(new FloatVector3(-486, 69, 439), new FloatVector3(-486, 69, 429)), - Pair.of(new FloatVector3(-486, 69, 429), new FloatVector3(-411, 69, 429)), - Pair.of(new FloatVector3(-411, 69, 429), new FloatVector3(-411, 69, 392)), - Pair.of(new FloatVector3(-411, 69, 392), new FloatVector3(-418, 69, 392)), - Pair.of(new FloatVector3(-418, 69, 392), new FloatVector3(-418, 69, 378)), - Pair.of(new FloatVector3(-418, 69, 378), new FloatVector3(-480, 69, 378)), - Pair.of(new FloatVector3(-480, 69, 378), new FloatVector3(-480, 69, 413)), - Pair.of(new FloatVector3(-480, 69, 413), new FloatVector3(-486, 69, 413)), - Pair.of(new FloatVector3(-486, 69, 413), new FloatVector3(-486, 69, 406)), - Pair.of(new FloatVector3(-486, 69, 406), new FloatVector3(-496, 69, 406)), - Pair.of(new FloatVector3(-496, 69, 406), new FloatVector3(-496, 69, 415)), - Pair.of(new FloatVector3(-496, 69, 415), new FloatVector3(-525, 69, 415)) - )), - // attackable: ROTLICHT - new DefaultGangzone(Faction.NULL.getColor().getColor(), List.of( - Pair.of(new FloatVector3(691, 69, -29), new FloatVector3(691, 69, 60)), - Pair.of(new FloatVector3(691, 69, 60), new FloatVector3(763, 69, 60)), - Pair.of(new FloatVector3(763, 69, 60), new FloatVector3(763, 69, 58)), - Pair.of(new FloatVector3(763, 69, 58), new FloatVector3(764, 69, 58)), - Pair.of(new FloatVector3(764, 69, 58), new FloatVector3(764, 69, 56)), - Pair.of(new FloatVector3(764, 69, 56), new FloatVector3(765, 69, 56)), - Pair.of(new FloatVector3(765, 69, 56), new FloatVector3(765, 69, 55)), - Pair.of(new FloatVector3(765, 69, 55), new FloatVector3(767, 69, 55)), - Pair.of(new FloatVector3(767, 69, 55), new FloatVector3(767, 69, 54)), - Pair.of(new FloatVector3(767, 69, 54), new FloatVector3(807, 69, 54)), - Pair.of(new FloatVector3(807, 69, 54), new FloatVector3(807, 69, -29)), - Pair.of(new FloatVector3(807, 69, -29), new FloatVector3(691, 69, -29)) - )), - // attackable: YACHTHAFEN - new DefaultGangzone(Faction.NULL.getColor().getColor(), List.of( - Pair.of(new FloatVector3(236, 69, -551), new FloatVector3(236, 69, -495)), - Pair.of(new FloatVector3(236, 69, -495), new FloatVector3(292, 69, -495)), - Pair.of(new FloatVector3(292, 69, -495), new FloatVector3(292, 69, -551)), - Pair.of(new FloatVector3(292, 69, -551), new FloatVector3(236, 69, -551)) - )) - ); - } -} diff --git a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/GangzoneCalderon.java b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/GangzoneCalderon.java new file mode 100644 index 00000000..f527eb0f --- /dev/null +++ b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/GangzoneCalderon.java @@ -0,0 +1,30 @@ +package com.rettichlp.unicacityaddon.base.gangzones; + +import com.rettichlp.unicacityaddon.UnicacityAddon; +import com.rettichlp.unicacityaddon.base.enums.faction.Faction; +import net.labymod.api.util.Pair; +import net.labymod.api.util.math.vector.FloatVector3; + +import java.util.List; + +public class GangzoneCalderon extends AbstractGangzone { + + public GangzoneCalderon(UnicacityAddon unicacityAddon) { + super(unicacityAddon); + } + + @Override + public Faction owner() { + return Faction.CALDERON; + } + + @Override + public List> gangzoneFacades() { + return List.of( + Pair.of(new FloatVector3(-343, 69, -149), new FloatVector3(-343, 69, -84)), + Pair.of(new FloatVector3(-343, 69, -84), new FloatVector3(-251, 69, -84)), + Pair.of(new FloatVector3(-251, 69, -84), new FloatVector3(-251, 69, -149)), + Pair.of(new FloatVector3(-251, 69, -149), new FloatVector3(-343, 69, -149)) + ); + } +} diff --git a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/GangzoneKerzakov.java b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/GangzoneKerzakov.java new file mode 100644 index 00000000..80453105 --- /dev/null +++ b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/GangzoneKerzakov.java @@ -0,0 +1,30 @@ +package com.rettichlp.unicacityaddon.base.gangzones; + +import com.rettichlp.unicacityaddon.UnicacityAddon; +import com.rettichlp.unicacityaddon.base.enums.faction.Faction; +import net.labymod.api.util.Pair; +import net.labymod.api.util.math.vector.FloatVector3; + +import java.util.List; + +public class GangzoneKerzakov extends AbstractGangzone { + + public GangzoneKerzakov(UnicacityAddon unicacityAddon) { + super(unicacityAddon); + } + + @Override + public Faction owner() { + return Faction.KERZAKOV; + } + + @Override + public List> gangzoneFacades() { + return List.of( + Pair.of(new FloatVector3(863, 69, 160), new FloatVector3(863, 69, 239)), + Pair.of(new FloatVector3(863, 69, 239), new FloatVector3(956, 69, 239)), + Pair.of(new FloatVector3(956, 69, 239), new FloatVector3(956, 69, 160)), + Pair.of(new FloatVector3(956, 69, 160), new FloatVector3(863, 69, 160)) + ); + } +} diff --git a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/GangzoneLaCosaNostra.java b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/GangzoneLaCosaNostra.java new file mode 100644 index 00000000..674b0e7b --- /dev/null +++ b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/GangzoneLaCosaNostra.java @@ -0,0 +1,32 @@ +package com.rettichlp.unicacityaddon.base.gangzones; + +import com.rettichlp.unicacityaddon.UnicacityAddon; +import com.rettichlp.unicacityaddon.base.enums.faction.Faction; +import net.labymod.api.util.Pair; +import net.labymod.api.util.math.vector.FloatVector3; + +import java.util.List; + +public class GangzoneLaCosaNostra extends AbstractGangzone { + + public GangzoneLaCosaNostra(UnicacityAddon unicacityAddon) { + super(unicacityAddon); + } + + @Override + public Faction owner() { + return Faction.LACOSANOSTRA; + } + + @Override + public List> gangzoneFacades() { + return List.of( + Pair.of(new FloatVector3(-56, 69, -478), new FloatVector3(-56, 69, -427)), + Pair.of(new FloatVector3(-56, 69, -427), new FloatVector3(47, 69, -427)), + Pair.of(new FloatVector3(47, 69, -427), new FloatVector3(47, 69, -509)), + Pair.of(new FloatVector3(47, 69, -509), new FloatVector3(-35, 69, -509)), + Pair.of(new FloatVector3(-35, 69, -509), new FloatVector3(-35, 69, -478)), + Pair.of(new FloatVector3(-35, 69, -478), new FloatVector3(-56, 69, -478)) + ); + } +} diff --git a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/GangzoneLeMilieu.java b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/GangzoneLeMilieu.java new file mode 100644 index 00000000..a95848e0 --- /dev/null +++ b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/GangzoneLeMilieu.java @@ -0,0 +1,30 @@ +package com.rettichlp.unicacityaddon.base.gangzones; + +import com.rettichlp.unicacityaddon.UnicacityAddon; +import com.rettichlp.unicacityaddon.base.enums.faction.Faction; +import net.labymod.api.util.Pair; +import net.labymod.api.util.math.vector.FloatVector3; + +import java.util.List; + +public class GangzoneLeMilieu extends AbstractGangzone { + + public GangzoneLeMilieu(UnicacityAddon unicacityAddon) { + super(unicacityAddon); + } + + @Override + public Faction owner() { + return Faction.LEMILIEU; + } + + @Override + public List> gangzoneFacades() { + return List.of( + Pair.of(new FloatVector3(262, 69, -313), new FloatVector3(262, 69, -219)), + Pair.of(new FloatVector3(262, 69, -219), new FloatVector3(337, 69, -219)), + Pair.of(new FloatVector3(337, 69, -219), new FloatVector3(337, 69, -313)), + Pair.of(new FloatVector3(337, 69, -313), new FloatVector3(262, 69, -313)) + ); + } +} diff --git a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/GangzoneObrien.java b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/GangzoneObrien.java new file mode 100644 index 00000000..f04a853e --- /dev/null +++ b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/GangzoneObrien.java @@ -0,0 +1,30 @@ +package com.rettichlp.unicacityaddon.base.gangzones; + +import com.rettichlp.unicacityaddon.UnicacityAddon; +import com.rettichlp.unicacityaddon.base.enums.faction.Faction; +import net.labymod.api.util.Pair; +import net.labymod.api.util.math.vector.FloatVector3; + +import java.util.List; + +public class GangzoneObrien extends AbstractGangzone { + + public GangzoneObrien(UnicacityAddon unicacityAddon) { + super(unicacityAddon); + } + + @Override + public Faction owner() { + return Faction.OBRIEN; + } + + @Override + public List> gangzoneFacades() { + return List.of( + Pair.of(new FloatVector3(687, 69, 490), new FloatVector3(687, 69, 593)), + Pair.of(new FloatVector3(687, 69, 593), new FloatVector3(761, 69, 593)), + Pair.of(new FloatVector3(761, 69, 593), new FloatVector3(761, 69, 490)), + Pair.of(new FloatVector3(761, 69, 490), new FloatVector3(687, 69, 490)) + ); + } +} diff --git a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/GangzoneWestsideballas.java b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/GangzoneWestsideballas.java new file mode 100644 index 00000000..0962380c --- /dev/null +++ b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/GangzoneWestsideballas.java @@ -0,0 +1,30 @@ +package com.rettichlp.unicacityaddon.base.gangzones; + +import com.rettichlp.unicacityaddon.UnicacityAddon; +import com.rettichlp.unicacityaddon.base.enums.faction.Faction; +import net.labymod.api.util.Pair; +import net.labymod.api.util.math.vector.FloatVector3; + +import java.util.List; + +public class GangzoneWestsideballas extends AbstractGangzone { + + public GangzoneWestsideballas(UnicacityAddon unicacityAddon) { + super(unicacityAddon); + } + + @Override + public Faction owner() { + return Faction.WESTSIDEBALLAS; + } + + @Override + public List> gangzoneFacades() { + return List.of( + Pair.of(new FloatVector3(-199, 69, 142), new FloatVector3(-199, 69, 272)), + Pair.of(new FloatVector3(-199, 69, 272), new FloatVector3(-121, 69, 272)), + Pair.of(new FloatVector3(-121, 69, 272), new FloatVector3(-121, 69, 142)), + Pair.of(new FloatVector3(-121, 69, 142), new FloatVector3(-199, 69, 142)) + ); + } +} diff --git a/core/src/main/java/com/rettichlp/unicacityaddon/listener/ScreenRenderListener.java b/core/src/main/java/com/rettichlp/unicacityaddon/listener/ScreenRenderListener.java index 32731214..c9bba557 100644 --- a/core/src/main/java/com/rettichlp/unicacityaddon/listener/ScreenRenderListener.java +++ b/core/src/main/java/com/rettichlp/unicacityaddon/listener/ScreenRenderListener.java @@ -2,9 +2,9 @@ import com.rettichlp.unicacityaddon.UnicacityAddon; import com.rettichlp.unicacityaddon.base.enums.Weapon; -import com.rettichlp.unicacityaddon.base.enums.faction.Gangzone; import com.rettichlp.unicacityaddon.base.events.HotkeyEvent; import com.rettichlp.unicacityaddon.base.events.UnicacityAddonTickEvent; +import com.rettichlp.unicacityaddon.base.gangzones.AttackableGangzoneHafen; import com.rettichlp.unicacityaddon.base.registry.annotation.UCEvent; import com.rettichlp.unicacityaddon.commands.GetGunPatternCommand; import net.labymod.api.client.gui.screen.key.Key; @@ -15,7 +15,6 @@ import net.labymod.api.event.client.world.ItemStackTooltipEvent; import java.util.ArrayList; -import java.util.Arrays; import java.util.List; import java.util.concurrent.TimeUnit; @@ -61,9 +60,8 @@ public void onScreenRender(ScreenRenderEvent e) { @Subscribe public void onRenderWorld(RenderWorldEvent e) { if (this.unicacityAddon.utilService().isUnicacity() && this.showGangzones) { - Arrays.stream(Gangzone.values()) - .forEach(gangzone -> gangzone.getFacades() - .forEach(posPair -> this.unicacityAddon.renderController().drawFacade(posPair.getFirst(), posPair.getSecond(), gangzone.getColor()))); + new AttackableGangzoneHafen(this.unicacityAddon).renderGangwarArea(); + new AttackableGangzoneHafen(this.unicacityAddon).renderGangzoneArea(); } } From 35ef00d7c60fa6896fcc4f28afdd0b4602d24265 Mon Sep 17 00:00:00 2001 From: rettichlp Date: Sun, 10 Sep 2023 21:04:23 +0200 Subject: [PATCH 07/25] Add getter for LabyMod color to ColorCode enum --- .../com/rettichlp/unicacityaddon/base/text/ColorCode.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/core/src/main/java/com/rettichlp/unicacityaddon/base/text/ColorCode.java b/core/src/main/java/com/rettichlp/unicacityaddon/base/text/ColorCode.java index 81c73aaa..02ba3c75 100644 --- a/core/src/main/java/com/rettichlp/unicacityaddon/base/text/ColorCode.java +++ b/core/src/main/java/com/rettichlp/unicacityaddon/base/text/ColorCode.java @@ -34,4 +34,8 @@ public enum ColorCode { private final String code; private final TextColor textColor; private final Color color; + + public net.labymod.api.util.Color getLabymodColor() { + return net.labymod.api.util.Color.of(this.color.getRGB()); + } } \ No newline at end of file From 81261661d169086dac209f1627928d10856b5f53 Mon Sep 17 00:00:00 2001 From: rettichlp Date: Sun, 10 Sep 2023 22:05:52 +0200 Subject: [PATCH 08/25] Update abstract gangzones and register them with UCGangzone annotation --- .../gangzones/AbstractAttackableGangzone.java | 13 ++-- .../base/gangzones/AbstractGangzone.java | 25 ++------ .../gangzones/AttackableGangzoneAltstadt.java | 15 ++--- .../gangzones/AttackableGangzoneFarm.java | 15 ++--- .../gangzones/AttackableGangzoneHafen.java | 15 ++--- .../AttackableGangzonePlattenbau.java | 15 ++--- .../gangzones/AttackableGangzoneRotlicht.java | 15 ++--- .../AttackableGangzoneYachthafen.java | 15 ++--- .../base/gangzones/GangzoneCalderon.java | 11 ++-- .../base/gangzones/GangzoneKerzakov.java | 11 ++-- .../base/gangzones/GangzoneLaCosaNostra.java | 11 ++-- .../base/gangzones/GangzoneLeMilieu.java | 11 ++-- .../base/gangzones/GangzoneObrien.java | 11 ++-- .../gangzones/GangzoneWestsideballas.java | 11 ++-- .../base/registry/Registry.java | 62 +++++++++++++++++++ .../base/registry/annotation/UCGangzone.java | 20 ++++++ .../listener/ScreenRenderListener.java | 11 +++- 17 files changed, 164 insertions(+), 123 deletions(-) create mode 100644 core/src/main/java/com/rettichlp/unicacityaddon/base/registry/annotation/UCGangzone.java diff --git a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/AbstractAttackableGangzone.java b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/AbstractAttackableGangzone.java index b22c8eed..b4cf006d 100644 --- a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/AbstractAttackableGangzone.java +++ b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/AbstractAttackableGangzone.java @@ -1,7 +1,7 @@ package com.rettichlp.unicacityaddon.base.gangzones; import com.rettichlp.unicacityaddon.UnicacityAddon; -import com.rettichlp.unicacityaddon.base.text.ColorCode; +import com.rettichlp.unicacityaddon.base.registry.annotation.UCGangzone; import net.labymod.api.util.Color; import net.labymod.api.util.Pair; import net.labymod.api.util.math.vector.FloatVector3; @@ -10,17 +10,20 @@ public abstract class AbstractAttackableGangzone extends AbstractGangzone { + private final UCGangzone ucGangzone; + private final UnicacityAddon unicacityAddon; - public AbstractAttackableGangzone(UnicacityAddon unicacityAddon) { - super(unicacityAddon); + public AbstractAttackableGangzone(UnicacityAddon unicacityAddon, UCGangzone ucGangzone) { + super(unicacityAddon, ucGangzone); this.unicacityAddon = unicacityAddon; + this.ucGangzone = ucGangzone; } public abstract List> gangwarFacades(); public void renderGangwarArea() { - Color color = ColorCode.GRAY.getLabymodColor(); - this.gangzoneFacades().forEach(posPair -> this.unicacityAddon.renderController().drawFacade(posPair.getFirst(), posPair.getSecond(), color)); + Color color = ucGangzone.owner().getColor().getLabymodColor(); + this.gangwarFacades().forEach(posPair -> this.unicacityAddon.renderController().drawFacade(posPair.getFirst(), posPair.getSecond(), color)); } } diff --git a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/AbstractGangzone.java b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/AbstractGangzone.java index 928fd847..34213e9e 100644 --- a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/AbstractGangzone.java +++ b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/AbstractGangzone.java @@ -1,41 +1,28 @@ package com.rettichlp.unicacityaddon.base.gangzones; import com.rettichlp.unicacityaddon.UnicacityAddon; -import com.rettichlp.unicacityaddon.base.enums.faction.Faction; -import com.rettichlp.unicacityaddon.base.text.ColorCode; +import com.rettichlp.unicacityaddon.base.registry.annotation.UCGangzone; import net.labymod.api.util.Color; import net.labymod.api.util.Pair; import net.labymod.api.util.math.vector.FloatVector3; import java.util.List; -import java.util.Optional; public abstract class AbstractGangzone { + private final UCGangzone ucGangzone; + private final UnicacityAddon unicacityAddon; - public AbstractGangzone(UnicacityAddon unicacityAddon) { + public AbstractGangzone(UnicacityAddon unicacityAddon, UCGangzone ucGangzone) { this.unicacityAddon = unicacityAddon; + this.ucGangzone = ucGangzone; } - public abstract Faction owner(); - public abstract List> gangzoneFacades(); public void renderGangzoneArea() { - Color color = Optional.ofNullable(this.owner()).map(faction -> faction.getColor().getLabymodColor()).orElse(ColorCode.GRAY.getLabymodColor()); + Color color = this.ucGangzone.owner().getColor().getLabymodColor(); this.gangzoneFacades().forEach(posPair -> this.unicacityAddon.renderController().drawFacade(posPair.getFirst(), posPair.getSecond(), color)); } - -// @Override -// public void renderInWorld(@NotNull MinecraftCamera cam, @NotNull Stack stack, float x, float y, float z, float delta, boolean darker) { -// stack.push(); -// -// RenderPipeline render = Laby.references().renderPipeline(); -// -// render.rectangleRenderer() -// .renderRectangle(stack, Rectangle.absolute(1, 1, 1, 5), Color.RED); -// -// stack.pop(); -// } } diff --git a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/AttackableGangzoneAltstadt.java b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/AttackableGangzoneAltstadt.java index 625e2f52..8dbedd29 100644 --- a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/AttackableGangzoneAltstadt.java +++ b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/AttackableGangzoneAltstadt.java @@ -1,21 +1,18 @@ package com.rettichlp.unicacityaddon.base.gangzones; import com.rettichlp.unicacityaddon.UnicacityAddon; -import com.rettichlp.unicacityaddon.base.enums.faction.Faction; +import com.rettichlp.unicacityaddon.base.registry.annotation.UCGangzone; import net.labymod.api.util.Pair; import net.labymod.api.util.math.vector.FloatVector3; +import java.util.Collections; import java.util.List; +@UCGangzone public class AttackableGangzoneAltstadt extends AbstractAttackableGangzone { - public AttackableGangzoneAltstadt(UnicacityAddon unicacityAddon) { - super(unicacityAddon); - } - - @Override - public Faction owner() { - return null; + public AttackableGangzoneAltstadt(UnicacityAddon unicacityAddon, UCGangzone ucGangzone) { + super(unicacityAddon, ucGangzone); } @Override @@ -50,6 +47,6 @@ public List> gangzoneFacades() { @Override public List> gangwarFacades() { - return null; + return Collections.emptyList(); } } diff --git a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/AttackableGangzoneFarm.java b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/AttackableGangzoneFarm.java index c8902b37..02dd75d5 100644 --- a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/AttackableGangzoneFarm.java +++ b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/AttackableGangzoneFarm.java @@ -1,21 +1,18 @@ package com.rettichlp.unicacityaddon.base.gangzones; import com.rettichlp.unicacityaddon.UnicacityAddon; -import com.rettichlp.unicacityaddon.base.enums.faction.Faction; +import com.rettichlp.unicacityaddon.base.registry.annotation.UCGangzone; import net.labymod.api.util.Pair; import net.labymod.api.util.math.vector.FloatVector3; +import java.util.Collections; import java.util.List; +@UCGangzone public class AttackableGangzoneFarm extends AbstractAttackableGangzone { - public AttackableGangzoneFarm(UnicacityAddon unicacityAddon) { - super(unicacityAddon); - } - - @Override - public Faction owner() { - return null; + public AttackableGangzoneFarm(UnicacityAddon unicacityAddon, UCGangzone ucGangzone) { + super(unicacityAddon, ucGangzone); } @Override @@ -38,6 +35,6 @@ public List> gangzoneFacades() { @Override public List> gangwarFacades() { - return null; + return Collections.emptyList(); } } diff --git a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/AttackableGangzoneHafen.java b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/AttackableGangzoneHafen.java index 8a225883..0afe8878 100644 --- a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/AttackableGangzoneHafen.java +++ b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/AttackableGangzoneHafen.java @@ -1,21 +1,18 @@ package com.rettichlp.unicacityaddon.base.gangzones; import com.rettichlp.unicacityaddon.UnicacityAddon; -import com.rettichlp.unicacityaddon.base.enums.faction.Faction; +import com.rettichlp.unicacityaddon.base.registry.annotation.UCGangzone; import net.labymod.api.util.Pair; import net.labymod.api.util.math.vector.FloatVector3; +import java.util.Collections; import java.util.List; +@UCGangzone public class AttackableGangzoneHafen extends AbstractAttackableGangzone { - public AttackableGangzoneHafen(UnicacityAddon unicacityAddon) { - super(unicacityAddon); - } - - @Override - public Faction owner() { - return null; + public AttackableGangzoneHafen(UnicacityAddon unicacityAddon, UCGangzone ucGangzone) { + super(unicacityAddon, ucGangzone); } @Override @@ -30,6 +27,6 @@ public List> gangzoneFacades() { @Override public List> gangwarFacades() { - return null; + return Collections.emptyList(); } } diff --git a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/AttackableGangzonePlattenbau.java b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/AttackableGangzonePlattenbau.java index ad1240d8..ad794751 100644 --- a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/AttackableGangzonePlattenbau.java +++ b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/AttackableGangzonePlattenbau.java @@ -1,21 +1,18 @@ package com.rettichlp.unicacityaddon.base.gangzones; import com.rettichlp.unicacityaddon.UnicacityAddon; -import com.rettichlp.unicacityaddon.base.enums.faction.Faction; +import com.rettichlp.unicacityaddon.base.registry.annotation.UCGangzone; import net.labymod.api.util.Pair; import net.labymod.api.util.math.vector.FloatVector3; +import java.util.Collections; import java.util.List; +@UCGangzone public class AttackableGangzonePlattenbau extends AbstractAttackableGangzone { - public AttackableGangzonePlattenbau(UnicacityAddon unicacityAddon) { - super(unicacityAddon); - } - - @Override - public Faction owner() { - return null; + public AttackableGangzonePlattenbau(UnicacityAddon unicacityAddon, UCGangzone ucGangzone) { + super(unicacityAddon, ucGangzone); } @Override @@ -42,6 +39,6 @@ public List> gangzoneFacades() { @Override public List> gangwarFacades() { - return null; + return Collections.emptyList(); } } diff --git a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/AttackableGangzoneRotlicht.java b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/AttackableGangzoneRotlicht.java index 97c9096f..207b4943 100644 --- a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/AttackableGangzoneRotlicht.java +++ b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/AttackableGangzoneRotlicht.java @@ -1,21 +1,18 @@ package com.rettichlp.unicacityaddon.base.gangzones; import com.rettichlp.unicacityaddon.UnicacityAddon; -import com.rettichlp.unicacityaddon.base.enums.faction.Faction; +import com.rettichlp.unicacityaddon.base.registry.annotation.UCGangzone; import net.labymod.api.util.Pair; import net.labymod.api.util.math.vector.FloatVector3; +import java.util.Collections; import java.util.List; +@UCGangzone public class AttackableGangzoneRotlicht extends AbstractAttackableGangzone { - public AttackableGangzoneRotlicht(UnicacityAddon unicacityAddon) { - super(unicacityAddon); - } - - @Override - public Faction owner() { - return null; + public AttackableGangzoneRotlicht(UnicacityAddon unicacityAddon, UCGangzone ucGangzone) { + super(unicacityAddon, ucGangzone); } @Override @@ -38,6 +35,6 @@ public List> gangzoneFacades() { @Override public List> gangwarFacades() { - return null; + return Collections.emptyList(); } } diff --git a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/AttackableGangzoneYachthafen.java b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/AttackableGangzoneYachthafen.java index a657c560..1c3108af 100644 --- a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/AttackableGangzoneYachthafen.java +++ b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/AttackableGangzoneYachthafen.java @@ -1,21 +1,18 @@ package com.rettichlp.unicacityaddon.base.gangzones; import com.rettichlp.unicacityaddon.UnicacityAddon; -import com.rettichlp.unicacityaddon.base.enums.faction.Faction; +import com.rettichlp.unicacityaddon.base.registry.annotation.UCGangzone; import net.labymod.api.util.Pair; import net.labymod.api.util.math.vector.FloatVector3; +import java.util.Collections; import java.util.List; +@UCGangzone public class AttackableGangzoneYachthafen extends AbstractAttackableGangzone { - public AttackableGangzoneYachthafen(UnicacityAddon unicacityAddon) { - super(unicacityAddon); - } - - @Override - public Faction owner() { - return null; + public AttackableGangzoneYachthafen(UnicacityAddon unicacityAddon, UCGangzone ucGangzone) { + super(unicacityAddon, ucGangzone); } @Override @@ -30,6 +27,6 @@ public List> gangzoneFacades() { @Override public List> gangwarFacades() { - return null; + return Collections.emptyList(); } } diff --git a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/GangzoneCalderon.java b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/GangzoneCalderon.java index f527eb0f..d7c652a9 100644 --- a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/GangzoneCalderon.java +++ b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/GangzoneCalderon.java @@ -2,20 +2,17 @@ import com.rettichlp.unicacityaddon.UnicacityAddon; import com.rettichlp.unicacityaddon.base.enums.faction.Faction; +import com.rettichlp.unicacityaddon.base.registry.annotation.UCGangzone; import net.labymod.api.util.Pair; import net.labymod.api.util.math.vector.FloatVector3; import java.util.List; +@UCGangzone(owner = Faction.CALDERON) public class GangzoneCalderon extends AbstractGangzone { - public GangzoneCalderon(UnicacityAddon unicacityAddon) { - super(unicacityAddon); - } - - @Override - public Faction owner() { - return Faction.CALDERON; + public GangzoneCalderon(UnicacityAddon unicacityAddon, UCGangzone ucGangzone) { + super(unicacityAddon, ucGangzone); } @Override diff --git a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/GangzoneKerzakov.java b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/GangzoneKerzakov.java index 80453105..fca04779 100644 --- a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/GangzoneKerzakov.java +++ b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/GangzoneKerzakov.java @@ -2,20 +2,17 @@ import com.rettichlp.unicacityaddon.UnicacityAddon; import com.rettichlp.unicacityaddon.base.enums.faction.Faction; +import com.rettichlp.unicacityaddon.base.registry.annotation.UCGangzone; import net.labymod.api.util.Pair; import net.labymod.api.util.math.vector.FloatVector3; import java.util.List; +@UCGangzone(owner = Faction.KERZAKOV) public class GangzoneKerzakov extends AbstractGangzone { - public GangzoneKerzakov(UnicacityAddon unicacityAddon) { - super(unicacityAddon); - } - - @Override - public Faction owner() { - return Faction.KERZAKOV; + public GangzoneKerzakov(UnicacityAddon unicacityAddon, UCGangzone ucGangzone) { + super(unicacityAddon, ucGangzone); } @Override diff --git a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/GangzoneLaCosaNostra.java b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/GangzoneLaCosaNostra.java index 674b0e7b..86dead8f 100644 --- a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/GangzoneLaCosaNostra.java +++ b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/GangzoneLaCosaNostra.java @@ -2,20 +2,17 @@ import com.rettichlp.unicacityaddon.UnicacityAddon; import com.rettichlp.unicacityaddon.base.enums.faction.Faction; +import com.rettichlp.unicacityaddon.base.registry.annotation.UCGangzone; import net.labymod.api.util.Pair; import net.labymod.api.util.math.vector.FloatVector3; import java.util.List; +@UCGangzone(owner = Faction.LACOSANOSTRA) public class GangzoneLaCosaNostra extends AbstractGangzone { - public GangzoneLaCosaNostra(UnicacityAddon unicacityAddon) { - super(unicacityAddon); - } - - @Override - public Faction owner() { - return Faction.LACOSANOSTRA; + public GangzoneLaCosaNostra(UnicacityAddon unicacityAddon, UCGangzone ucGangzone) { + super(unicacityAddon, ucGangzone); } @Override diff --git a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/GangzoneLeMilieu.java b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/GangzoneLeMilieu.java index a95848e0..54403b55 100644 --- a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/GangzoneLeMilieu.java +++ b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/GangzoneLeMilieu.java @@ -2,20 +2,17 @@ import com.rettichlp.unicacityaddon.UnicacityAddon; import com.rettichlp.unicacityaddon.base.enums.faction.Faction; +import com.rettichlp.unicacityaddon.base.registry.annotation.UCGangzone; import net.labymod.api.util.Pair; import net.labymod.api.util.math.vector.FloatVector3; import java.util.List; +@UCGangzone(owner = Faction.LEMILIEU) public class GangzoneLeMilieu extends AbstractGangzone { - public GangzoneLeMilieu(UnicacityAddon unicacityAddon) { - super(unicacityAddon); - } - - @Override - public Faction owner() { - return Faction.LEMILIEU; + public GangzoneLeMilieu(UnicacityAddon unicacityAddon, UCGangzone ucGangzone) { + super(unicacityAddon, ucGangzone); } @Override diff --git a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/GangzoneObrien.java b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/GangzoneObrien.java index f04a853e..6ac2b589 100644 --- a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/GangzoneObrien.java +++ b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/GangzoneObrien.java @@ -2,20 +2,17 @@ import com.rettichlp.unicacityaddon.UnicacityAddon; import com.rettichlp.unicacityaddon.base.enums.faction.Faction; +import com.rettichlp.unicacityaddon.base.registry.annotation.UCGangzone; import net.labymod.api.util.Pair; import net.labymod.api.util.math.vector.FloatVector3; import java.util.List; +@UCGangzone(owner = Faction.OBRIEN) public class GangzoneObrien extends AbstractGangzone { - public GangzoneObrien(UnicacityAddon unicacityAddon) { - super(unicacityAddon); - } - - @Override - public Faction owner() { - return Faction.OBRIEN; + public GangzoneObrien(UnicacityAddon unicacityAddon, UCGangzone ucGangzone) { + super(unicacityAddon, ucGangzone); } @Override diff --git a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/GangzoneWestsideballas.java b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/GangzoneWestsideballas.java index 0962380c..93edab3e 100644 --- a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/GangzoneWestsideballas.java +++ b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/GangzoneWestsideballas.java @@ -2,20 +2,17 @@ import com.rettichlp.unicacityaddon.UnicacityAddon; import com.rettichlp.unicacityaddon.base.enums.faction.Faction; +import com.rettichlp.unicacityaddon.base.registry.annotation.UCGangzone; import net.labymod.api.util.Pair; import net.labymod.api.util.math.vector.FloatVector3; import java.util.List; +@UCGangzone(owner = Faction.WESTSIDEBALLAS) public class GangzoneWestsideballas extends AbstractGangzone { - public GangzoneWestsideballas(UnicacityAddon unicacityAddon) { - super(unicacityAddon); - } - - @Override - public Faction owner() { - return Faction.WESTSIDEBALLAS; + public GangzoneWestsideballas(UnicacityAddon unicacityAddon, UCGangzone ucGangzone) { + super(unicacityAddon, ucGangzone); } @Override diff --git a/core/src/main/java/com/rettichlp/unicacityaddon/base/registry/Registry.java b/core/src/main/java/com/rettichlp/unicacityaddon/base/registry/Registry.java index 2a738171..5c9a55a3 100644 --- a/core/src/main/java/com/rettichlp/unicacityaddon/base/registry/Registry.java +++ b/core/src/main/java/com/rettichlp/unicacityaddon/base/registry/Registry.java @@ -3,9 +3,23 @@ import com.google.common.collect.Sets; import com.rettichlp.unicacityaddon.UnicacityAddon; import com.rettichlp.unicacityaddon.badge.NoPushBadge; +import com.rettichlp.unicacityaddon.base.gangzones.AbstractGangzone; +import com.rettichlp.unicacityaddon.base.gangzones.AttackableGangzoneAltstadt; +import com.rettichlp.unicacityaddon.base.gangzones.AttackableGangzoneFarm; +import com.rettichlp.unicacityaddon.base.gangzones.AttackableGangzoneHafen; +import com.rettichlp.unicacityaddon.base.gangzones.AttackableGangzonePlattenbau; +import com.rettichlp.unicacityaddon.base.gangzones.AttackableGangzoneRotlicht; +import com.rettichlp.unicacityaddon.base.gangzones.AttackableGangzoneYachthafen; +import com.rettichlp.unicacityaddon.base.gangzones.GangzoneCalderon; +import com.rettichlp.unicacityaddon.base.gangzones.GangzoneKerzakov; +import com.rettichlp.unicacityaddon.base.gangzones.GangzoneLaCosaNostra; +import com.rettichlp.unicacityaddon.base.gangzones.GangzoneLeMilieu; +import com.rettichlp.unicacityaddon.base.gangzones.GangzoneObrien; +import com.rettichlp.unicacityaddon.base.gangzones.GangzoneWestsideballas; import com.rettichlp.unicacityaddon.base.registry.annotation.UCBadge; import com.rettichlp.unicacityaddon.base.registry.annotation.UCCommand; import com.rettichlp.unicacityaddon.base.registry.annotation.UCEvent; +import com.rettichlp.unicacityaddon.base.registry.annotation.UCGangzone; import com.rettichlp.unicacityaddon.base.registry.annotation.UCNameTag; import com.rettichlp.unicacityaddon.commands.ABuyCommand; import com.rettichlp.unicacityaddon.commands.ActivityCommand; @@ -199,6 +213,10 @@ public class Registry { @Getter private final Set commands = new HashSet<>(); + @Accessors(fluent = true) + @Getter + private final Set gangzones = new HashSet<>(); + private final HashSet> badgeList = Sets.newHashSet( NoPushBadge.class ); @@ -380,6 +398,21 @@ public class Registry { YasinCommand.class ); + private final HashSet> gangzoneList = Sets.newHashSet( + AttackableGangzoneAltstadt.class, + AttackableGangzoneFarm.class, + AttackableGangzoneHafen.class, + AttackableGangzonePlattenbau.class, + AttackableGangzoneRotlicht.class, + AttackableGangzoneYachthafen.class, + GangzoneCalderon.class, + GangzoneKerzakov.class, + GangzoneLaCosaNostra.class, + GangzoneLeMilieu.class, + GangzoneObrien.class, + GangzoneWestsideballas.class + ); + private final UnicacityAddon unicacityAddon; public Registry(UnicacityAddon unicacityAddon) { @@ -511,4 +544,33 @@ public void registerCommands() { }); this.unicacityAddon.logger().info("Registered {}/{} Commands, {} skipped (deactivated)", registeredCommandCount, commandClassSet.size() - deactivatedCommandCount.get(), deactivatedCommandCount.get()); } + + public void registerGangzones() { + AtomicInteger registeredGangzoneCount = new AtomicInteger(); + AtomicInteger deactivatedGangzoneCount = new AtomicInteger(); + Set> gangzoneClassSet = this.gangzoneList; + gangzoneClassSet.remove(UnicacityCommand.class); + gangzoneClassSet.stream() + .filter(gangzoneClass -> gangzoneClass.isAnnotationPresent(UCGangzone.class)) + .forEach(gangzoneClass -> { + UCGangzone ucGangzone = gangzoneClass.getAnnotation(UCGangzone.class); + if (ucGangzone.deactivated()) { + deactivatedGangzoneCount.getAndIncrement(); + } else { + try { + AbstractGangzone gangzone = (AbstractGangzone) gangzoneClass.getConstructor(UnicacityAddon.class, UCGangzone.class).newInstance(this.unicacityAddon, ucGangzone); + + Objects.requireNonNull(gangzone, "Gangzone"); + this.gangzones.add(gangzone); + + registeredGangzoneCount.getAndIncrement(); + } catch (InvocationTargetException | NoSuchMethodException | IllegalAccessException | + InstantiationException e) { + this.unicacityAddon.logger().warn("Can't register Gangzone: {}", gangzoneClass.getSimpleName()); + this.unicacityAddon.logger().error(e.getMessage()); + } + } + }); + this.unicacityAddon.logger().info("Registered {}/{} Gangzones, {} skipped (deactivated)", registeredGangzoneCount, gangzoneClassSet.size() - deactivatedGangzoneCount.get(), deactivatedGangzoneCount.get()); + } } diff --git a/core/src/main/java/com/rettichlp/unicacityaddon/base/registry/annotation/UCGangzone.java b/core/src/main/java/com/rettichlp/unicacityaddon/base/registry/annotation/UCGangzone.java new file mode 100644 index 00000000..7d03fc84 --- /dev/null +++ b/core/src/main/java/com/rettichlp/unicacityaddon/base/registry/annotation/UCGangzone.java @@ -0,0 +1,20 @@ +package com.rettichlp.unicacityaddon.base.registry.annotation; + +import com.rettichlp.unicacityaddon.base.enums.faction.Faction; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * @author RettichLP + */ +@Retention(RetentionPolicy.RUNTIME) +@Target(ElementType.TYPE) +public @interface UCGangzone { + + Faction owner() default Faction.NULL; + + boolean deactivated() default false; +} \ No newline at end of file diff --git a/core/src/main/java/com/rettichlp/unicacityaddon/listener/ScreenRenderListener.java b/core/src/main/java/com/rettichlp/unicacityaddon/listener/ScreenRenderListener.java index c9bba557..c9582536 100644 --- a/core/src/main/java/com/rettichlp/unicacityaddon/listener/ScreenRenderListener.java +++ b/core/src/main/java/com/rettichlp/unicacityaddon/listener/ScreenRenderListener.java @@ -4,7 +4,7 @@ import com.rettichlp.unicacityaddon.base.enums.Weapon; import com.rettichlp.unicacityaddon.base.events.HotkeyEvent; import com.rettichlp.unicacityaddon.base.events.UnicacityAddonTickEvent; -import com.rettichlp.unicacityaddon.base.gangzones.AttackableGangzoneHafen; +import com.rettichlp.unicacityaddon.base.gangzones.AbstractAttackableGangzone; import com.rettichlp.unicacityaddon.base.registry.annotation.UCEvent; import com.rettichlp.unicacityaddon.commands.GetGunPatternCommand; import net.labymod.api.client.gui.screen.key.Key; @@ -60,8 +60,13 @@ public void onScreenRender(ScreenRenderEvent e) { @Subscribe public void onRenderWorld(RenderWorldEvent e) { if (this.unicacityAddon.utilService().isUnicacity() && this.showGangzones) { - new AttackableGangzoneHafen(this.unicacityAddon).renderGangwarArea(); - new AttackableGangzoneHafen(this.unicacityAddon).renderGangzoneArea(); + this.unicacityAddon.registry().gangzones().forEach(gangzone -> { + gangzone.renderGangzoneArea(); + + if (gangzone instanceof AbstractAttackableGangzone attackableGangzone) { + attackableGangzone.renderGangwarArea(); + } + }); } } From c067fd715450feaca56c1ba4259286a0629ae85a Mon Sep 17 00:00:00 2001 From: rettichlp Date: Sun, 10 Sep 2023 22:06:31 +0200 Subject: [PATCH 09/25] Add registration process to UnicacityAddon --- .../main/java/com/rettichlp/unicacityaddon/UnicacityAddon.java | 1 + 1 file changed, 1 insertion(+) diff --git a/core/src/main/java/com/rettichlp/unicacityaddon/UnicacityAddon.java b/core/src/main/java/com/rettichlp/unicacityaddon/UnicacityAddon.java index 9fc34639..8c512e0c 100644 --- a/core/src/main/java/com/rettichlp/unicacityaddon/UnicacityAddon.java +++ b/core/src/main/java/com/rettichlp/unicacityaddon/UnicacityAddon.java @@ -131,6 +131,7 @@ protected void enable() { this.registry.registerHudWidgets(); this.registry.registerListeners(); this.registry.registerCommands(); + this.registry.registerGangzones(); new Thread(this.teamSpeakAPI::initialize).start(); From bdfe8370bd65b7fc118c9f66c41ef47da0ab2f92 Mon Sep 17 00:00:00 2001 From: rettichlp Date: Sun, 10 Sep 2023 22:09:03 +0200 Subject: [PATCH 10/25] Refactor gangzones with shorter name --- ...bleGangzoneAltstadt.java => Altstadt.java} | 4 +- .../{GangzoneCalderon.java => Calderon.java} | 4 +- ...{AttackableGangzoneFarm.java => Farm.java} | 4 +- ...ttackableGangzoneHafen.java => Hafen.java} | 4 +- .../{GangzoneKerzakov.java => Kerzakov.java} | 4 +- ...oneLaCosaNostra.java => LaCosaNostra.java} | 4 +- .../{GangzoneLeMilieu.java => LeMilieu.java} | 4 +- .../{GangzoneObrien.java => Obrien.java} | 4 +- ...angzonePlattenbau.java => Plattenbau.java} | 4 +- ...bleGangzoneRotlicht.java => Rotlicht.java} | 4 +- ...estsideballas.java => Westsideballas.java} | 4 +- ...angzoneYachthafen.java => Yachthafen.java} | 4 +- .../base/registry/Registry.java | 48 +++++++++---------- 13 files changed, 48 insertions(+), 48 deletions(-) rename core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/{AttackableGangzoneAltstadt.java => Altstadt.java} (94%) rename core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/{GangzoneCalderon.java => Calderon.java} (86%) rename core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/{AttackableGangzoneFarm.java => Farm.java} (91%) rename core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/{AttackableGangzoneHafen.java => Hafen.java} (85%) rename core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/{GangzoneKerzakov.java => Kerzakov.java} (86%) rename core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/{GangzoneLaCosaNostra.java => LaCosaNostra.java} (88%) rename core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/{GangzoneLeMilieu.java => LeMilieu.java} (86%) rename core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/{GangzoneObrien.java => Obrien.java} (87%) rename core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/{AttackableGangzonePlattenbau.java => Plattenbau.java} (92%) rename core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/{AttackableGangzoneRotlicht.java => Rotlicht.java} (90%) rename core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/{GangzoneWestsideballas.java => Westsideballas.java} (86%) rename core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/{AttackableGangzoneYachthafen.java => Yachthafen.java} (85%) diff --git a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/AttackableGangzoneAltstadt.java b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/Altstadt.java similarity index 94% rename from core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/AttackableGangzoneAltstadt.java rename to core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/Altstadt.java index 8dbedd29..5ac73290 100644 --- a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/AttackableGangzoneAltstadt.java +++ b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/Altstadt.java @@ -9,9 +9,9 @@ import java.util.List; @UCGangzone -public class AttackableGangzoneAltstadt extends AbstractAttackableGangzone { +public class Altstadt extends AbstractAttackableGangzone { - public AttackableGangzoneAltstadt(UnicacityAddon unicacityAddon, UCGangzone ucGangzone) { + public Altstadt(UnicacityAddon unicacityAddon, UCGangzone ucGangzone) { super(unicacityAddon, ucGangzone); } diff --git a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/GangzoneCalderon.java b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/Calderon.java similarity index 86% rename from core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/GangzoneCalderon.java rename to core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/Calderon.java index d7c652a9..cf8d109b 100644 --- a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/GangzoneCalderon.java +++ b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/Calderon.java @@ -9,9 +9,9 @@ import java.util.List; @UCGangzone(owner = Faction.CALDERON) -public class GangzoneCalderon extends AbstractGangzone { +public class Calderon extends AbstractGangzone { - public GangzoneCalderon(UnicacityAddon unicacityAddon, UCGangzone ucGangzone) { + public Calderon(UnicacityAddon unicacityAddon, UCGangzone ucGangzone) { super(unicacityAddon, ucGangzone); } diff --git a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/AttackableGangzoneFarm.java b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/Farm.java similarity index 91% rename from core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/AttackableGangzoneFarm.java rename to core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/Farm.java index 02dd75d5..6e8669c4 100644 --- a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/AttackableGangzoneFarm.java +++ b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/Farm.java @@ -9,9 +9,9 @@ import java.util.List; @UCGangzone -public class AttackableGangzoneFarm extends AbstractAttackableGangzone { +public class Farm extends AbstractAttackableGangzone { - public AttackableGangzoneFarm(UnicacityAddon unicacityAddon, UCGangzone ucGangzone) { + public Farm(UnicacityAddon unicacityAddon, UCGangzone ucGangzone) { super(unicacityAddon, ucGangzone); } diff --git a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/AttackableGangzoneHafen.java b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/Hafen.java similarity index 85% rename from core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/AttackableGangzoneHafen.java rename to core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/Hafen.java index 0afe8878..cdce8692 100644 --- a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/AttackableGangzoneHafen.java +++ b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/Hafen.java @@ -9,9 +9,9 @@ import java.util.List; @UCGangzone -public class AttackableGangzoneHafen extends AbstractAttackableGangzone { +public class Hafen extends AbstractAttackableGangzone { - public AttackableGangzoneHafen(UnicacityAddon unicacityAddon, UCGangzone ucGangzone) { + public Hafen(UnicacityAddon unicacityAddon, UCGangzone ucGangzone) { super(unicacityAddon, ucGangzone); } diff --git a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/GangzoneKerzakov.java b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/Kerzakov.java similarity index 86% rename from core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/GangzoneKerzakov.java rename to core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/Kerzakov.java index fca04779..f3a6612e 100644 --- a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/GangzoneKerzakov.java +++ b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/Kerzakov.java @@ -9,9 +9,9 @@ import java.util.List; @UCGangzone(owner = Faction.KERZAKOV) -public class GangzoneKerzakov extends AbstractGangzone { +public class Kerzakov extends AbstractGangzone { - public GangzoneKerzakov(UnicacityAddon unicacityAddon, UCGangzone ucGangzone) { + public Kerzakov(UnicacityAddon unicacityAddon, UCGangzone ucGangzone) { super(unicacityAddon, ucGangzone); } diff --git a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/GangzoneLaCosaNostra.java b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/LaCosaNostra.java similarity index 88% rename from core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/GangzoneLaCosaNostra.java rename to core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/LaCosaNostra.java index 86dead8f..3ad4486f 100644 --- a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/GangzoneLaCosaNostra.java +++ b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/LaCosaNostra.java @@ -9,9 +9,9 @@ import java.util.List; @UCGangzone(owner = Faction.LACOSANOSTRA) -public class GangzoneLaCosaNostra extends AbstractGangzone { +public class LaCosaNostra extends AbstractGangzone { - public GangzoneLaCosaNostra(UnicacityAddon unicacityAddon, UCGangzone ucGangzone) { + public LaCosaNostra(UnicacityAddon unicacityAddon, UCGangzone ucGangzone) { super(unicacityAddon, ucGangzone); } diff --git a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/GangzoneLeMilieu.java b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/LeMilieu.java similarity index 86% rename from core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/GangzoneLeMilieu.java rename to core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/LeMilieu.java index 54403b55..4cd4e455 100644 --- a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/GangzoneLeMilieu.java +++ b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/LeMilieu.java @@ -9,9 +9,9 @@ import java.util.List; @UCGangzone(owner = Faction.LEMILIEU) -public class GangzoneLeMilieu extends AbstractGangzone { +public class LeMilieu extends AbstractGangzone { - public GangzoneLeMilieu(UnicacityAddon unicacityAddon, UCGangzone ucGangzone) { + public LeMilieu(UnicacityAddon unicacityAddon, UCGangzone ucGangzone) { super(unicacityAddon, ucGangzone); } diff --git a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/GangzoneObrien.java b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/Obrien.java similarity index 87% rename from core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/GangzoneObrien.java rename to core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/Obrien.java index 6ac2b589..07b58ab6 100644 --- a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/GangzoneObrien.java +++ b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/Obrien.java @@ -9,9 +9,9 @@ import java.util.List; @UCGangzone(owner = Faction.OBRIEN) -public class GangzoneObrien extends AbstractGangzone { +public class Obrien extends AbstractGangzone { - public GangzoneObrien(UnicacityAddon unicacityAddon, UCGangzone ucGangzone) { + public Obrien(UnicacityAddon unicacityAddon, UCGangzone ucGangzone) { super(unicacityAddon, ucGangzone); } diff --git a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/AttackableGangzonePlattenbau.java b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/Plattenbau.java similarity index 92% rename from core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/AttackableGangzonePlattenbau.java rename to core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/Plattenbau.java index ad794751..81c78003 100644 --- a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/AttackableGangzonePlattenbau.java +++ b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/Plattenbau.java @@ -9,9 +9,9 @@ import java.util.List; @UCGangzone -public class AttackableGangzonePlattenbau extends AbstractAttackableGangzone { +public class Plattenbau extends AbstractAttackableGangzone { - public AttackableGangzonePlattenbau(UnicacityAddon unicacityAddon, UCGangzone ucGangzone) { + public Plattenbau(UnicacityAddon unicacityAddon, UCGangzone ucGangzone) { super(unicacityAddon, ucGangzone); } diff --git a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/AttackableGangzoneRotlicht.java b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/Rotlicht.java similarity index 90% rename from core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/AttackableGangzoneRotlicht.java rename to core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/Rotlicht.java index 207b4943..aaac16ce 100644 --- a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/AttackableGangzoneRotlicht.java +++ b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/Rotlicht.java @@ -9,9 +9,9 @@ import java.util.List; @UCGangzone -public class AttackableGangzoneRotlicht extends AbstractAttackableGangzone { +public class Rotlicht extends AbstractAttackableGangzone { - public AttackableGangzoneRotlicht(UnicacityAddon unicacityAddon, UCGangzone ucGangzone) { + public Rotlicht(UnicacityAddon unicacityAddon, UCGangzone ucGangzone) { super(unicacityAddon, ucGangzone); } diff --git a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/GangzoneWestsideballas.java b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/Westsideballas.java similarity index 86% rename from core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/GangzoneWestsideballas.java rename to core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/Westsideballas.java index 93edab3e..35b9879b 100644 --- a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/GangzoneWestsideballas.java +++ b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/Westsideballas.java @@ -9,9 +9,9 @@ import java.util.List; @UCGangzone(owner = Faction.WESTSIDEBALLAS) -public class GangzoneWestsideballas extends AbstractGangzone { +public class Westsideballas extends AbstractGangzone { - public GangzoneWestsideballas(UnicacityAddon unicacityAddon, UCGangzone ucGangzone) { + public Westsideballas(UnicacityAddon unicacityAddon, UCGangzone ucGangzone) { super(unicacityAddon, ucGangzone); } diff --git a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/AttackableGangzoneYachthafen.java b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/Yachthafen.java similarity index 85% rename from core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/AttackableGangzoneYachthafen.java rename to core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/Yachthafen.java index 1c3108af..ac449449 100644 --- a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/AttackableGangzoneYachthafen.java +++ b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/Yachthafen.java @@ -9,9 +9,9 @@ import java.util.List; @UCGangzone -public class AttackableGangzoneYachthafen extends AbstractAttackableGangzone { +public class Yachthafen extends AbstractAttackableGangzone { - public AttackableGangzoneYachthafen(UnicacityAddon unicacityAddon, UCGangzone ucGangzone) { + public Yachthafen(UnicacityAddon unicacityAddon, UCGangzone ucGangzone) { super(unicacityAddon, ucGangzone); } diff --git a/core/src/main/java/com/rettichlp/unicacityaddon/base/registry/Registry.java b/core/src/main/java/com/rettichlp/unicacityaddon/base/registry/Registry.java index 5c9a55a3..3431ab2e 100644 --- a/core/src/main/java/com/rettichlp/unicacityaddon/base/registry/Registry.java +++ b/core/src/main/java/com/rettichlp/unicacityaddon/base/registry/Registry.java @@ -4,18 +4,18 @@ import com.rettichlp.unicacityaddon.UnicacityAddon; import com.rettichlp.unicacityaddon.badge.NoPushBadge; import com.rettichlp.unicacityaddon.base.gangzones.AbstractGangzone; -import com.rettichlp.unicacityaddon.base.gangzones.AttackableGangzoneAltstadt; -import com.rettichlp.unicacityaddon.base.gangzones.AttackableGangzoneFarm; -import com.rettichlp.unicacityaddon.base.gangzones.AttackableGangzoneHafen; -import com.rettichlp.unicacityaddon.base.gangzones.AttackableGangzonePlattenbau; -import com.rettichlp.unicacityaddon.base.gangzones.AttackableGangzoneRotlicht; -import com.rettichlp.unicacityaddon.base.gangzones.AttackableGangzoneYachthafen; -import com.rettichlp.unicacityaddon.base.gangzones.GangzoneCalderon; -import com.rettichlp.unicacityaddon.base.gangzones.GangzoneKerzakov; -import com.rettichlp.unicacityaddon.base.gangzones.GangzoneLaCosaNostra; -import com.rettichlp.unicacityaddon.base.gangzones.GangzoneLeMilieu; -import com.rettichlp.unicacityaddon.base.gangzones.GangzoneObrien; -import com.rettichlp.unicacityaddon.base.gangzones.GangzoneWestsideballas; +import com.rettichlp.unicacityaddon.base.gangzones.Altstadt; +import com.rettichlp.unicacityaddon.base.gangzones.Farm; +import com.rettichlp.unicacityaddon.base.gangzones.Hafen; +import com.rettichlp.unicacityaddon.base.gangzones.Plattenbau; +import com.rettichlp.unicacityaddon.base.gangzones.Rotlicht; +import com.rettichlp.unicacityaddon.base.gangzones.Yachthafen; +import com.rettichlp.unicacityaddon.base.gangzones.Calderon; +import com.rettichlp.unicacityaddon.base.gangzones.Kerzakov; +import com.rettichlp.unicacityaddon.base.gangzones.LaCosaNostra; +import com.rettichlp.unicacityaddon.base.gangzones.LeMilieu; +import com.rettichlp.unicacityaddon.base.gangzones.Obrien; +import com.rettichlp.unicacityaddon.base.gangzones.Westsideballas; import com.rettichlp.unicacityaddon.base.registry.annotation.UCBadge; import com.rettichlp.unicacityaddon.base.registry.annotation.UCCommand; import com.rettichlp.unicacityaddon.base.registry.annotation.UCEvent; @@ -399,18 +399,18 @@ public class Registry { ); private final HashSet> gangzoneList = Sets.newHashSet( - AttackableGangzoneAltstadt.class, - AttackableGangzoneFarm.class, - AttackableGangzoneHafen.class, - AttackableGangzonePlattenbau.class, - AttackableGangzoneRotlicht.class, - AttackableGangzoneYachthafen.class, - GangzoneCalderon.class, - GangzoneKerzakov.class, - GangzoneLaCosaNostra.class, - GangzoneLeMilieu.class, - GangzoneObrien.class, - GangzoneWestsideballas.class + Altstadt.class, + Farm.class, + Hafen.class, + Plattenbau.class, + Rotlicht.class, + Yachthafen.class, + Calderon.class, + Kerzakov.class, + LaCosaNostra.class, + LeMilieu.class, + Obrien.class, + Westsideballas.class ); private final UnicacityAddon unicacityAddon; From 5547b8ab18a3d51076b29db1a59c7a4bb121395e Mon Sep 17 00:00:00 2001 From: rettichlp Date: Sun, 10 Sep 2023 22:36:36 +0200 Subject: [PATCH 11/25] Fix faction icon processing --- .../rettichlp/unicacityaddon/base/enums/faction/Faction.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/src/main/java/com/rettichlp/unicacityaddon/base/enums/faction/Faction.java b/core/src/main/java/com/rettichlp/unicacityaddon/base/enums/faction/Faction.java index 1beb8243..7d78f609 100644 --- a/core/src/main/java/com/rettichlp/unicacityaddon/base/enums/faction/Faction.java +++ b/core/src/main/java/com/rettichlp/unicacityaddon/base/enums/faction/Faction.java @@ -43,10 +43,10 @@ public String getWebsiteUrl() { } public String getNameTagSuffix() { - return Message.getBuilder() + return this.icon != null ? Message.getBuilder() .of("◤").color(ColorCode.DARK_GRAY).advance() .of(this.icon).color(this.color).advance() - .of("◢").color(ColorCode.DARK_GRAY).advance().create(); + .of("◢").color(ColorCode.DARK_GRAY).advance().create() : ""; } public static Faction getFactionByDisplayName(String s) { From dc73793dd4306ecc8ab3d23ce35c80d4234ff576 Mon Sep 17 00:00:00 2001 From: rettichlp Date: Sun, 10 Sep 2023 22:37:12 +0200 Subject: [PATCH 12/25] Remove UCGangzone annotation from AbstractAttackableGangzone --- .../base/gangzones/AbstractAttackableGangzone.java | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/AbstractAttackableGangzone.java b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/AbstractAttackableGangzone.java index b4cf006d..d173a299 100644 --- a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/AbstractAttackableGangzone.java +++ b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/AbstractAttackableGangzone.java @@ -2,6 +2,7 @@ import com.rettichlp.unicacityaddon.UnicacityAddon; import com.rettichlp.unicacityaddon.base.registry.annotation.UCGangzone; +import com.rettichlp.unicacityaddon.base.text.ColorCode; import net.labymod.api.util.Color; import net.labymod.api.util.Pair; import net.labymod.api.util.math.vector.FloatVector3; @@ -10,20 +11,17 @@ public abstract class AbstractAttackableGangzone extends AbstractGangzone { - private final UCGangzone ucGangzone; - private final UnicacityAddon unicacityAddon; public AbstractAttackableGangzone(UnicacityAddon unicacityAddon, UCGangzone ucGangzone) { super(unicacityAddon, ucGangzone); this.unicacityAddon = unicacityAddon; - this.ucGangzone = ucGangzone; } public abstract List> gangwarFacades(); public void renderGangwarArea() { - Color color = ucGangzone.owner().getColor().getLabymodColor(); + Color color = ColorCode.GOLD.getLabymodColor(); this.gangwarFacades().forEach(posPair -> this.unicacityAddon.renderController().drawFacade(posPair.getFirst(), posPair.getSecond(), color)); } } From 1267e3165e0562a947ab3666b8e1cfb182650fd1 Mon Sep 17 00:00:00 2001 From: rettichlp Date: Sun, 10 Sep 2023 22:37:43 +0200 Subject: [PATCH 13/25] Add gangwar area to Hafen and Yachthafen --- .../rettichlp/unicacityaddon/base/gangzones/Hafen.java | 8 ++++++-- .../unicacityaddon/base/gangzones/Yachthafen.java | 8 ++++++-- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/Hafen.java b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/Hafen.java index cdce8692..9cd6240e 100644 --- a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/Hafen.java +++ b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/Hafen.java @@ -5,7 +5,6 @@ import net.labymod.api.util.Pair; import net.labymod.api.util.math.vector.FloatVector3; -import java.util.Collections; import java.util.List; @UCGangzone @@ -27,6 +26,11 @@ public List> gangzoneFacades() { @Override public List> gangwarFacades() { - return Collections.emptyList(); + return List.of( + Pair.of(new FloatVector3(-473, 69, -48), new FloatVector3(-473, 69, 227)), + Pair.of(new FloatVector3(-473, 69, 227), new FloatVector3(-272, 69, 227)), + Pair.of(new FloatVector3(-272, 69, 227), new FloatVector3(-272, 69, -48)), + Pair.of(new FloatVector3(-272, 69, -48), new FloatVector3(-473, 69, -48)) + ); } } diff --git a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/Yachthafen.java b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/Yachthafen.java index ac449449..5f8d5137 100644 --- a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/Yachthafen.java +++ b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/Yachthafen.java @@ -5,7 +5,6 @@ import net.labymod.api.util.Pair; import net.labymod.api.util.math.vector.FloatVector3; -import java.util.Collections; import java.util.List; @UCGangzone @@ -27,6 +26,11 @@ public List> gangzoneFacades() { @Override public List> gangwarFacades() { - return Collections.emptyList(); + return List.of( + Pair.of(new FloatVector3(186, 69, -601), new FloatVector3(186, 69, -445)), + Pair.of(new FloatVector3(186, 69, -445), new FloatVector3(342, 69, -445)), + Pair.of(new FloatVector3(342, 69, -445), new FloatVector3(342, 69, -601)), + Pair.of(new FloatVector3(342, 69, -601), new FloatVector3(186, 69, -601)) + ); } } From 0c64bdcc26b97e3d254b1983dee627c047c4685f Mon Sep 17 00:00:00 2001 From: rettichlp Date: Sun, 10 Sep 2023 22:39:21 +0200 Subject: [PATCH 14/25] Fix faction icon processing for non faction players --- .../rettichlp/unicacityaddon/base/enums/faction/Faction.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/main/java/com/rettichlp/unicacityaddon/base/enums/faction/Faction.java b/core/src/main/java/com/rettichlp/unicacityaddon/base/enums/faction/Faction.java index 7d78f609..d8aa3f4d 100644 --- a/core/src/main/java/com/rettichlp/unicacityaddon/base/enums/faction/Faction.java +++ b/core/src/main/java/com/rettichlp/unicacityaddon/base/enums/faction/Faction.java @@ -43,7 +43,7 @@ public String getWebsiteUrl() { } public String getNameTagSuffix() { - return this.icon != null ? Message.getBuilder() + return !this.equals(NULL) ? Message.getBuilder() .of("◤").color(ColorCode.DARK_GRAY).advance() .of(this.icon).color(this.color).advance() .of("◢").color(ColorCode.DARK_GRAY).advance().create() : ""; From 1faff02f7844c244ef74d5dc488900600116b57d Mon Sep 17 00:00:00 2001 From: rettichlp Date: Mon, 11 Sep 2023 23:50:28 +0200 Subject: [PATCH 15/25] Add gangwar debug switch --- .../base/config/DefaultUnicacityAddonConfiguration.java | 8 ++++++++ .../base/config/UnicacityAddonConfiguration.java | 2 ++ 2 files changed, 10 insertions(+) diff --git a/core/src/main/java/com/rettichlp/unicacityaddon/base/config/DefaultUnicacityAddonConfiguration.java b/core/src/main/java/com/rettichlp/unicacityaddon/base/config/DefaultUnicacityAddonConfiguration.java index 663d4aa0..de2d9573 100644 --- a/core/src/main/java/com/rettichlp/unicacityaddon/base/config/DefaultUnicacityAddonConfiguration.java +++ b/core/src/main/java/com/rettichlp/unicacityaddon/base/config/DefaultUnicacityAddonConfiguration.java @@ -105,6 +105,9 @@ public class DefaultUnicacityAddonConfiguration extends AddonConfig implements U @SwitchSetting private final ConfigProperty debug = new ConfigProperty<>(false); + @SwitchSetting + private final ConfigProperty gangwar = new ConfigProperty<>(false); + @SwitchSetting private final ConfigProperty local = new ConfigProperty<>(false); @@ -203,6 +206,11 @@ public ConfigProperty debug() { return this.debug; } + @Override + public ConfigProperty gangwar() { + return this.gangwar; + } + @Override public ConfigProperty local() { return this.local; diff --git a/core/src/main/java/com/rettichlp/unicacityaddon/base/config/UnicacityAddonConfiguration.java b/core/src/main/java/com/rettichlp/unicacityaddon/base/config/UnicacityAddonConfiguration.java index d74164c8..aa12c98c 100644 --- a/core/src/main/java/com/rettichlp/unicacityaddon/base/config/UnicacityAddonConfiguration.java +++ b/core/src/main/java/com/rettichlp/unicacityaddon/base/config/UnicacityAddonConfiguration.java @@ -71,5 +71,7 @@ public interface UnicacityAddonConfiguration { ConfigProperty debug(); + ConfigProperty gangwar(); + ConfigProperty local(); } \ No newline at end of file From 23567a96ac1f93d67acd27d85cab634587defa3f Mon Sep 17 00:00:00 2001 From: rettichlp Date: Mon, 11 Sep 2023 23:50:58 +0200 Subject: [PATCH 16/25] Add outline render for AbstractAttackableGangzone and AbstractGangzone --- .../base/gangzones/AbstractAttackableGangzone.java | 9 +++++++-- .../unicacityaddon/base/gangzones/AbstractGangzone.java | 6 +++++- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/AbstractAttackableGangzone.java b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/AbstractAttackableGangzone.java index d173a299..457b783c 100644 --- a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/AbstractAttackableGangzone.java +++ b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/AbstractAttackableGangzone.java @@ -20,8 +20,13 @@ public AbstractAttackableGangzone(UnicacityAddon unicacityAddon, UCGangzone ucGa public abstract List> gangwarFacades(); - public void renderGangwarArea() { - Color color = ColorCode.GOLD.getLabymodColor(); + public void renderGangwarFacades() { + Color color = Color.ORANGE; this.gangwarFacades().forEach(posPair -> this.unicacityAddon.renderController().drawFacade(posPair.getFirst(), posPair.getSecond(), color)); } + + public void renderGangwarOutline() { + Color color = Color.BLACK; + this.gangwarFacades().forEach(posPair -> this.unicacityAddon.renderController().drawOutline(posPair.getFirst(), posPair.getSecond(), color)); + } } diff --git a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/AbstractGangzone.java b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/AbstractGangzone.java index 34213e9e..00b50f2a 100644 --- a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/AbstractGangzone.java +++ b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/AbstractGangzone.java @@ -21,8 +21,12 @@ public AbstractGangzone(UnicacityAddon unicacityAddon, UCGangzone ucGangzone) { public abstract List> gangzoneFacades(); - public void renderGangzoneArea() { + public void renderGangzoneFacades() { Color color = this.ucGangzone.owner().getColor().getLabymodColor(); this.gangzoneFacades().forEach(posPair -> this.unicacityAddon.renderController().drawFacade(posPair.getFirst(), posPair.getSecond(), color)); } + + public void renderGangzoneOutline(Color color) { + this.gangzoneFacades().forEach(posPair -> this.unicacityAddon.renderController().drawOutline(posPair.getFirst(), posPair.getSecond(), color)); + } } From 23bd89b8c5f49d47d2953ff2e2aa90b9575df2ff Mon Sep 17 00:00:00 2001 From: rettichlp Date: Mon, 11 Sep 2023 23:51:27 +0200 Subject: [PATCH 17/25] Add outline render in RenderController and VersionedRenderController --- .../controller/RenderController.java | 2 + .../v1_12_2/VersionedRenderController.java | 46 ++++++++++++++++++- 2 files changed, 46 insertions(+), 2 deletions(-) diff --git a/core/src/main/java/com/rettichlp/unicacityaddon/controller/RenderController.java b/core/src/main/java/com/rettichlp/unicacityaddon/controller/RenderController.java index 668d04ef..335272b1 100644 --- a/core/src/main/java/com/rettichlp/unicacityaddon/controller/RenderController.java +++ b/core/src/main/java/com/rettichlp/unicacityaddon/controller/RenderController.java @@ -13,4 +13,6 @@ public abstract class RenderController { public abstract void drawFacade(FloatVector3 first, FloatVector3 second, Color c); + + public abstract void drawOutline(FloatVector3 first, FloatVector3 second, Color c); } diff --git a/game-runner/src/v1_12_2/java/com/rettichlp/unicacityaddon/v1_12_2/VersionedRenderController.java b/game-runner/src/v1_12_2/java/com/rettichlp/unicacityaddon/v1_12_2/VersionedRenderController.java index e302636d..0bc5c8e5 100644 --- a/game-runner/src/v1_12_2/java/com/rettichlp/unicacityaddon/v1_12_2/VersionedRenderController.java +++ b/game-runner/src/v1_12_2/java/com/rettichlp/unicacityaddon/v1_12_2/VersionedRenderController.java @@ -40,8 +40,6 @@ public void drawFacade(FloatVector3 first, FloatVector3 second, Color c) { gl(c.withAlpha(0.12f), () -> { drawColorBox(new AxisAlignedBB(x, y, z, x, y + 100, z + length), 0F, 0F, 0F, 0F); glColor4d(0, 0, 0, 0.5); - drawSelectionBoundingBox(new AxisAlignedBB(x, y, z, x, y + 100, z + length)); - glLineWidth(2.0F); }); glPopMatrix(); } else if (first.getZ() == second.getZ()) { // modify x @@ -60,6 +58,50 @@ public void drawFacade(FloatVector3 first, FloatVector3 second, Color c) { gl(c.withAlpha(0.12f), () -> { drawColorBox(new AxisAlignedBB(x, y, z, x + length, y + 100, z), 0F, 0F, 0F, 0F); glColor4d(0, 0, 0, 0.5); + }); + glPopMatrix(); + } else { + throw new IllegalArgumentException("Positions are not in a row: " + first + " and " + second); + } + } + + @Override + public void drawOutline(FloatVector3 first, FloatVector3 second, Color c) { + // length of facade + double length; + + if (first.getX() == second.getX()) { // modify z + // lower location + FloatVector3 lower = first.getZ() <= second.getZ() ? first : second; + + double x = lower.getX() - Minecraft.getMinecraft().getRenderManager().viewerPosX; + double y = 0 - Minecraft.getMinecraft().getRenderManager().viewerPosY; + double z = lower.getZ() - Minecraft.getMinecraft().getRenderManager().viewerPosZ; + + // length + length = Math.abs(first.getZ() - second.getZ()); + + // draw + glPushMatrix(); + gl(c.withAlpha(0.12f), () -> { + drawSelectionBoundingBox(new AxisAlignedBB(x, y, z, x, y + 100, z + length)); + glLineWidth(2.0F); + }); + glPopMatrix(); + } else if (first.getZ() == second.getZ()) { // modify x + // lower location + FloatVector3 lower = first.getX() <= second.getX() ? first : second; + + double x = lower.getX() - Minecraft.getMinecraft().getRenderManager().viewerPosX; + double y = 0 - Minecraft.getMinecraft().getRenderManager().viewerPosY; + double z = lower.getZ() - Minecraft.getMinecraft().getRenderManager().viewerPosZ; + + // length + length = Math.abs(first.getX() - second.getX()); + + // draw + glPushMatrix(); + gl(c.withAlpha(0.12f), () -> { drawSelectionBoundingBox(new AxisAlignedBB(x, y, z, x + length, y + 100, z)); glLineWidth(2.0F); }); From 19d369a044388ce869c129f4f923b87e1403f108 Mon Sep 17 00:00:00 2001 From: rettichlp Date: Mon, 11 Sep 2023 23:54:52 +0200 Subject: [PATCH 18/25] Update ScreenRenderListener with only render nearest gangzone and outline support during gangwar --- .../base/services/NavigationService.java | 4 ++ .../listener/ScreenRenderListener.java | 53 ++++++++++++++++--- 2 files changed, 51 insertions(+), 6 deletions(-) diff --git a/core/src/main/java/com/rettichlp/unicacityaddon/base/services/NavigationService.java b/core/src/main/java/com/rettichlp/unicacityaddon/base/services/NavigationService.java index d5e1900e..929cc9f7 100644 --- a/core/src/main/java/com/rettichlp/unicacityaddon/base/services/NavigationService.java +++ b/core/src/main/java/com/rettichlp/unicacityaddon/base/services/NavigationService.java @@ -55,6 +55,10 @@ public Map.Entry getNearestNaviPoint(FloatVector3 location) { return !naviPoints.isEmpty() ? getNearest(location, naviPoints, NaviPoint::getLocation) : Maps.immutableEntry(0D, new NaviPoint("Unbekannt", 0, 0, 0, "")); } + public Map.Entry getNearestFloatVector3(FloatVector3 location, Collection elements) { + return getNearest(location, elements, o -> o); + } + public Map.Entry getNearest(FloatVector3 location, T[] elements, Function locationExtractor) { return getNearest(location, List.of(elements), locationExtractor); } diff --git a/core/src/main/java/com/rettichlp/unicacityaddon/listener/ScreenRenderListener.java b/core/src/main/java/com/rettichlp/unicacityaddon/listener/ScreenRenderListener.java index c9582536..08e6d583 100644 --- a/core/src/main/java/com/rettichlp/unicacityaddon/listener/ScreenRenderListener.java +++ b/core/src/main/java/com/rettichlp/unicacityaddon/listener/ScreenRenderListener.java @@ -5,6 +5,7 @@ import com.rettichlp.unicacityaddon.base.events.HotkeyEvent; import com.rettichlp.unicacityaddon.base.events.UnicacityAddonTickEvent; import com.rettichlp.unicacityaddon.base.gangzones.AbstractAttackableGangzone; +import com.rettichlp.unicacityaddon.base.gangzones.AbstractGangzone; import com.rettichlp.unicacityaddon.base.registry.annotation.UCEvent; import com.rettichlp.unicacityaddon.commands.GetGunPatternCommand; import net.labymod.api.client.gui.screen.key.Key; @@ -13,9 +14,16 @@ import net.labymod.api.event.client.render.ScreenRenderEvent; import net.labymod.api.event.client.render.world.RenderWorldEvent; import net.labymod.api.event.client.world.ItemStackTooltipEvent; +import net.labymod.api.util.Color; +import net.labymod.api.util.Pair; +import net.labymod.api.util.math.vector.FloatVector3; +import org.jetbrains.annotations.Nullable; import java.util.ArrayList; +import java.util.Collection; +import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.concurrent.TimeUnit; /** @@ -60,13 +68,19 @@ public void onScreenRender(ScreenRenderEvent e) { @Subscribe public void onRenderWorld(RenderWorldEvent e) { if (this.unicacityAddon.utilService().isUnicacity() && this.showGangzones) { - this.unicacityAddon.registry().gangzones().forEach(gangzone -> { - gangzone.renderGangzoneArea(); - - if (gangzone instanceof AbstractAttackableGangzone attackableGangzone) { - attackableGangzone.renderGangwarArea(); + boolean activeGangwarMode = this.unicacityAddon.player().hasGangwar() || this.unicacityAddon.configuration().gangwar().get(); + AbstractGangzone gangzone = getNearestGangzone(activeGangwarMode); + + if (gangzone != null) { + if (gangzone instanceof AbstractAttackableGangzone attackableGangzone && activeGangwarMode) { + attackableGangzone.renderGangwarFacades(); + attackableGangzone.renderGangwarOutline(); + attackableGangzone.renderGangzoneOutline(Color.ORANGE); + } else { + gangzone.renderGangzoneFacades(); + gangzone.renderGangzoneOutline(Color.BLACK); } - }); + } } } @@ -91,4 +105,31 @@ public void onHotkey(HotkeyEvent e) { this.showGangzones = !this.showGangzones; } } + + @Nullable + private AbstractGangzone getNearestGangzone(boolean activeGangwarMode) { + Map gangzoneDistanceMap = new HashMap<>(); + + for (AbstractGangzone gangzone : this.unicacityAddon.registry().gangzones()) { + + List> gangzoneFacades = gangzone instanceof AbstractAttackableGangzone && activeGangwarMode ? ((AbstractAttackableGangzone) gangzone).gangwarFacades() : gangzone.gangzoneFacades(); + + Collection gangzoneCorners = gangzoneFacades.stream() + .filter(posPair -> posPair.getFirst() != null && posPair.getSecond() != null) + .map(posPair -> List.of(posPair.getFirst(), posPair.getSecond())) + .flatMap(Collection::stream) + .toList(); + + Map.Entry floatVector3DistanceMapEntry = this.unicacityAddon.navigationService().getNearestFloatVector3(this.unicacityAddon.player().getLocation(), gangzoneCorners); + gangzoneDistanceMap.put(gangzone, floatVector3DistanceMapEntry.getKey()); + } + + System.out.println("==============================================="); + gangzoneDistanceMap.forEach((key, value) -> System.out.println(value + " = " + key.getClass().getSimpleName())); + + return gangzoneDistanceMap.entrySet().stream() + .min(Map.Entry.comparingByValue()) + .map(Map.Entry::getKey) + .orElse(null); + } } \ No newline at end of file From d3487c76c133be8097714540368d708cdd10dd13 Mon Sep 17 00:00:00 2001 From: rettichlp Date: Tue, 12 Sep 2023 00:02:47 +0200 Subject: [PATCH 19/25] Add gangwar area for Plattenbau and Rotlicht --- .../base/gangzones/Plattenbau.java | 18 ++++++++++++++++-- .../base/gangzones/Rotlicht.java | 16 ++++++++++++++-- 2 files changed, 30 insertions(+), 4 deletions(-) diff --git a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/Plattenbau.java b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/Plattenbau.java index 81c78003..5bb50490 100644 --- a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/Plattenbau.java +++ b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/Plattenbau.java @@ -5,7 +5,6 @@ import net.labymod.api.util.Pair; import net.labymod.api.util.math.vector.FloatVector3; -import java.util.Collections; import java.util.List; @UCGangzone @@ -39,6 +38,21 @@ public List> gangzoneFacades() { @Override public List> gangwarFacades() { - return Collections.emptyList(); + return List.of( + Pair.of(new FloatVector3(-575, 69, 365), new FloatVector3(-575, 69, 497)), + Pair.of(new FloatVector3(-575, 69, 497), new FloatVector3(-460, 69, 497)), + Pair.of(new FloatVector3(-460, 69, 497), new FloatVector3(-460, 69, 489)), + Pair.of(new FloatVector3(-460, 69, 489), new FloatVector3(-436, 69, 489)), + Pair.of(new FloatVector3(-436, 69, 489), new FloatVector3(-436, 69, 479)), + Pair.of(new FloatVector3(-436, 69, 479), new FloatVector3(-361, 69, 479)), + Pair.of(new FloatVector3(-361, 69, 479), new FloatVector3(-361, 69, 342)), + Pair.of(new FloatVector3(-361, 69, 342), new FloatVector3(-368, 69, 342)), + Pair.of(new FloatVector3(-368, 69, 342), new FloatVector3(-368, 69, 328)), + Pair.of(new FloatVector3(-368, 69, 328), new FloatVector3(-530, 69, 328)), + Pair.of(new FloatVector3(-530, 69, 328), new FloatVector3(-530, 69, 356)), + Pair.of(new FloatVector3(-530, 69, 356), new FloatVector3(-546, 69, 356)), + Pair.of(new FloatVector3(-546, 69, 356), new FloatVector3(-546, 69, 365)), + Pair.of(new FloatVector3(-546, 69, 365), new FloatVector3(-575, 69, 365)) + ); } } diff --git a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/Rotlicht.java b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/Rotlicht.java index aaac16ce..11e6a1ec 100644 --- a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/Rotlicht.java +++ b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/Rotlicht.java @@ -5,7 +5,6 @@ import net.labymod.api.util.Pair; import net.labymod.api.util.math.vector.FloatVector3; -import java.util.Collections; import java.util.List; @UCGangzone @@ -35,6 +34,19 @@ public List> gangzoneFacades() { @Override public List> gangwarFacades() { - return Collections.emptyList(); + return List.of( + Pair.of(new FloatVector3(641, 69, -79), new FloatVector3(641, 69, 110)), + Pair.of(new FloatVector3(641, 69, 110), new FloatVector3(813, 69, 110)), + Pair.of(new FloatVector3(813, 69, 110), new FloatVector3(813, 69, 108)), + Pair.of(new FloatVector3(813, 69, 108), new FloatVector3(814, 69, 108)), + Pair.of(new FloatVector3(814, 69, 108), new FloatVector3(814, 69, 106)), + Pair.of(new FloatVector3(814, 69, 106), new FloatVector3(815, 69, 106)), + Pair.of(new FloatVector3(815, 69, 106), new FloatVector3(815, 69, 105)), + Pair.of(new FloatVector3(815, 69, 105), new FloatVector3(817, 69, 105)), + Pair.of(new FloatVector3(817, 69, 105), new FloatVector3(817, 69, 104)), + Pair.of(new FloatVector3(817, 69, 104), new FloatVector3(857, 69, 104)), + Pair.of(new FloatVector3(857, 69, 104), new FloatVector3(857, 69, -79)), + Pair.of(new FloatVector3(857, 69, -79), new FloatVector3(641, 69, -79)) + ); } } From 2429212f8d57ad789ad33ee08fdce389287d3498 Mon Sep 17 00:00:00 2001 From: rettichlp Date: Tue, 12 Sep 2023 00:07:45 +0200 Subject: [PATCH 20/25] Add author, remove old gangzone enum --- .../base/enums/faction/Gangzone.java | 131 ------------------ .../base/gangzones/Altstadt.java | 3 + .../base/gangzones/Calderon.java | 3 + .../unicacityaddon/base/gangzones/Farm.java | 3 + .../unicacityaddon/base/gangzones/Hafen.java | 3 + .../base/gangzones/Kerzakov.java | 3 + .../base/gangzones/LaCosaNostra.java | 3 + .../base/gangzones/LeMilieu.java | 3 + .../unicacityaddon/base/gangzones/Obrien.java | 3 + .../base/gangzones/Plattenbau.java | 3 + .../base/gangzones/Rotlicht.java | 3 + .../base/gangzones/Westsideballas.java | 3 + .../base/gangzones/Yachthafen.java | 3 + 13 files changed, 36 insertions(+), 131 deletions(-) delete mode 100644 core/src/main/java/com/rettichlp/unicacityaddon/base/enums/faction/Gangzone.java diff --git a/core/src/main/java/com/rettichlp/unicacityaddon/base/enums/faction/Gangzone.java b/core/src/main/java/com/rettichlp/unicacityaddon/base/enums/faction/Gangzone.java deleted file mode 100644 index 62e5eabd..00000000 --- a/core/src/main/java/com/rettichlp/unicacityaddon/base/enums/faction/Gangzone.java +++ /dev/null @@ -1,131 +0,0 @@ -package com.rettichlp.unicacityaddon.base.enums.faction; - -import lombok.AllArgsConstructor; -import lombok.Getter; -import net.labymod.api.util.Color; -import net.labymod.api.util.Pair; -import net.labymod.api.util.math.vector.FloatVector3; - -import java.util.List; - -/** - * @author RettichLP - */ -@Getter -@AllArgsConstructor -public enum Gangzone { - - LE_MILIEU(Color.DARK_GRAY, List.of( - Pair.of(new FloatVector3(262, 69, -313), new FloatVector3(262, 69, -219)), - Pair.of(new FloatVector3(262, 69, -219), new FloatVector3(337, 69, -219)), - Pair.of(new FloatVector3(337, 69, -219), new FloatVector3(337, 69, -313)), - Pair.of(new FloatVector3(337, 69, -313), new FloatVector3(262, 69, -313)))), - MAFIA(Color.CYAN, List.of( - Pair.of(new FloatVector3(-56, 69, -478), new FloatVector3(-56, 69, -427)), - Pair.of(new FloatVector3(-56, 69, -427), new FloatVector3(47, 69, -427)), - Pair.of(new FloatVector3(47, 69, -427), new FloatVector3(47, 69, -509)), - Pair.of(new FloatVector3(47, 69, -509), new FloatVector3(-35, 69, -509)), - Pair.of(new FloatVector3(-35, 69, -509), new FloatVector3(-35, 69, -478)), - Pair.of(new FloatVector3(-35, 69, -478), new FloatVector3(-56, 69, -478)))), - MEX(Color.YELLOW, List.of( - Pair.of(new FloatVector3(-343, 69, -149), new FloatVector3(-343, 69, -84)), - Pair.of(new FloatVector3(-343, 69, -84), new FloatVector3(-251, 69, -84)), - Pair.of(new FloatVector3(-251, 69, -84), new FloatVector3(-251, 69, -149)), - Pair.of(new FloatVector3(-251, 69, -149), new FloatVector3(-343, 69, -149)))), - WESTSIDEBALLAS(Color.MAGENTA, List.of( - Pair.of(new FloatVector3(-199, 69, 142), new FloatVector3(-199, 69, 272)), - Pair.of(new FloatVector3(-199, 69, 272), new FloatVector3(-121, 69, 272)), - Pair.of(new FloatVector3(-121, 69, 272), new FloatVector3(-121, 69, 142)), - Pair.of(new FloatVector3(-121, 69, 142), new FloatVector3(-199, 69, 142)))), - OBRIEN(Color.GREEN, List.of( - Pair.of(new FloatVector3(687, 69, 490), new FloatVector3(687, 69, 593)), - Pair.of(new FloatVector3(687, 69, 593), new FloatVector3(761, 69, 593)), - Pair.of(new FloatVector3(761, 69, 593), new FloatVector3(761, 69, 490)), - Pair.of(new FloatVector3(761, 69, 490), new FloatVector3(687, 69, 490)))), - KERZAKOV(Color.RED, List.of( - Pair.of(new FloatVector3(863, 69, 160), new FloatVector3(863, 69, 239)), - Pair.of(new FloatVector3(863, 69, 239), new FloatVector3(956, 69, 239)), - Pair.of(new FloatVector3(956, 69, 239), new FloatVector3(956, 69, 160)), - Pair.of(new FloatVector3(956, 69, 160), new FloatVector3(863, 69, 160)))), - FARM(Color.LIGHT_GRAY, List.of( - Pair.of(new FloatVector3(455, 69, 483), new FloatVector3(455, 69, 562)), - Pair.of(new FloatVector3(455, 69, 562), new FloatVector3(522, 69, 562)), - Pair.of(new FloatVector3(522, 69, 562), new FloatVector3(522, 69, 568)), - Pair.of(new FloatVector3(522, 69, 568), new FloatVector3(550, 69, 568)), - Pair.of(new FloatVector3(550, 69, 568), new FloatVector3(550, 69, 562)), - Pair.of(new FloatVector3(550, 69, 562), new FloatVector3(551, 69, 562)), - Pair.of(new FloatVector3(551, 69, 562), new FloatVector3(551, 69, 551)), - Pair.of(new FloatVector3(551, 69, 551), new FloatVector3(550, 69, 551)), - Pair.of(new FloatVector3(550, 69, 551), new FloatVector3(550, 69, 544)), - Pair.of(new FloatVector3(550, 69, 544), new FloatVector3(525, 69, 544)), - Pair.of(new FloatVector3(525, 69, 544), new FloatVector3(525, 69, 483)), - Pair.of(new FloatVector3(525, 69, 483), new FloatVector3(455, 69, 483)))), - ROTLICHT(Color.LIGHT_GRAY, List.of( - Pair.of(new FloatVector3(691, 69, -29), new FloatVector3(691, 69, 60)), - Pair.of(new FloatVector3(691, 69, 60), new FloatVector3(763, 69, 60)), - Pair.of(new FloatVector3(763, 69, 60), new FloatVector3(763, 69, 58)), - Pair.of(new FloatVector3(763, 69, 58), new FloatVector3(764, 69, 58)), - Pair.of(new FloatVector3(764, 69, 58), new FloatVector3(764, 69, 56)), - Pair.of(new FloatVector3(764, 69, 56), new FloatVector3(765, 69, 56)), - Pair.of(new FloatVector3(765, 69, 56), new FloatVector3(765, 69, 55)), - Pair.of(new FloatVector3(765, 69, 55), new FloatVector3(767, 69, 55)), - Pair.of(new FloatVector3(767, 69, 55), new FloatVector3(767, 69, 54)), - Pair.of(new FloatVector3(767, 69, 54), new FloatVector3(807, 69, 54)), - Pair.of(new FloatVector3(807, 69, 54), new FloatVector3(807, 69, -29)), - Pair.of(new FloatVector3(807, 69, -29), new FloatVector3(691, 69, -29)))), - HAFEN(Color.LIGHT_GRAY, List.of( - Pair.of(new FloatVector3(-423, 69, 2), new FloatVector3(-423, 69, 177)), - Pair.of(new FloatVector3(-423, 69, 177), new FloatVector3(-322, 69, 177)), - Pair.of(new FloatVector3(-322, 69, 177), new FloatVector3(-322, 69, 2)), - Pair.of(new FloatVector3(-322, 69, 2), new FloatVector3(-423, 69, 2)))), - PLATTENBAU(Color.LIGHT_GRAY, List.of( - Pair.of(new FloatVector3(-525, 69, 415), new FloatVector3(-525, 69, 447)), - Pair.of(new FloatVector3(-525, 69, 447), new FloatVector3(-510, 69, 447)), - Pair.of(new FloatVector3(-510, 69, 447), new FloatVector3(-510, 69, 439)), - Pair.of(new FloatVector3(-510, 69, 439), new FloatVector3(-486, 69, 439)), - Pair.of(new FloatVector3(-486, 69, 439), new FloatVector3(-486, 69, 429)), - Pair.of(new FloatVector3(-486, 69, 429), new FloatVector3(-411, 69, 429)), - Pair.of(new FloatVector3(-411, 69, 429), new FloatVector3(-411, 69, 392)), - Pair.of(new FloatVector3(-411, 69, 392), new FloatVector3(-418, 69, 392)), - Pair.of(new FloatVector3(-418, 69, 392), new FloatVector3(-418, 69, 378)), - Pair.of(new FloatVector3(-418, 69, 378), new FloatVector3(-480, 69, 378)), - Pair.of(new FloatVector3(-480, 69, 378), new FloatVector3(-480, 69, 413)), - Pair.of(new FloatVector3(-480, 69, 413), new FloatVector3(-486, 69, 413)), - Pair.of(new FloatVector3(-486, 69, 413), new FloatVector3(-486, 69, 406)), - Pair.of(new FloatVector3(-486, 69, 406), new FloatVector3(-496, 69, 406)), - Pair.of(new FloatVector3(-496, 69, 406), new FloatVector3(-496, 69, 415)), - Pair.of(new FloatVector3(-496, 69, 415), new FloatVector3(-525, 69, 415)))), - ALTSTADT(Color.LIGHT_GRAY, List.of( - Pair.of(new FloatVector3(195, 69, 589), new FloatVector3(195, 69, 637)), - Pair.of(new FloatVector3(195, 69, 637), new FloatVector3(182, 69, 637)), - Pair.of(new FloatVector3(182, 69, 637), new FloatVector3(182, 69, 647)), - Pair.of(new FloatVector3(182, 69, 647), new FloatVector3(174, 69, 647)), - Pair.of(new FloatVector3(174, 69, 647), new FloatVector3(174, 69, 677)), - Pair.of(new FloatVector3(174, 69, 677), new FloatVector3(178, 69, 677)), - Pair.of(new FloatVector3(178, 69, 677), new FloatVector3(178, 69, 687)), - Pair.of(new FloatVector3(178, 69, 687), new FloatVector3(182, 69, 687)), - Pair.of(new FloatVector3(182, 69, 687), new FloatVector3(182, 69, 745)), - Pair.of(new FloatVector3(182, 69, 745), new FloatVector3(176, 69, 745)), - Pair.of(new FloatVector3(176, 69, 745), new FloatVector3(176, 69, 768)), - Pair.of(new FloatVector3(176, 69, 768), new FloatVector3(182, 69, 768)), - Pair.of(new FloatVector3(182, 69, 768), new FloatVector3(182, 69, 794)), - Pair.of(new FloatVector3(182, 69, 794), new FloatVector3(192, 69, 794)), - Pair.of(new FloatVector3(192, 69, 794), new FloatVector3(192, 69, 848)), - Pair.of(new FloatVector3(192, 69, 848), new FloatVector3(304, 69, 848)), - Pair.of(new FloatVector3(304, 69, 848), new FloatVector3(304, 69, 824)), - Pair.of(new FloatVector3(304, 69, 824), new FloatVector3(316, 69, 824)), - Pair.of(new FloatVector3(316, 69, 824), new FloatVector3(316, 69, 803)), - Pair.of(new FloatVector3(316, 69, 803), new FloatVector3(314, 69, 803)), - Pair.of(new FloatVector3(314, 69, 803), new FloatVector3(314, 69, 786)), - Pair.of(new FloatVector3(314, 69, 786), new FloatVector3(313, 69, 786)), - Pair.of(new FloatVector3(313, 69, 786), new FloatVector3(313, 69, 589)), - Pair.of(new FloatVector3(313, 69, 589), new FloatVector3(195, 69, 589)))), - YACHTHAFEN(Color.LIGHT_GRAY, List.of( - Pair.of(new FloatVector3(236, 69, -551), new FloatVector3(236, 69, -495)), - Pair.of(new FloatVector3(236, 69, -495), new FloatVector3(292, 69, -495)), - Pair.of(new FloatVector3(292, 69, -495), new FloatVector3(292, 69, -551)), - Pair.of(new FloatVector3(292, 69, -551), new FloatVector3(236, 69, -551)))); - - private final Color color; - private final List> facades; -} diff --git a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/Altstadt.java b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/Altstadt.java index 5ac73290..2126bbcd 100644 --- a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/Altstadt.java +++ b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/Altstadt.java @@ -8,6 +8,9 @@ import java.util.Collections; import java.util.List; +/** + * @author RettichLP + */ @UCGangzone public class Altstadt extends AbstractAttackableGangzone { diff --git a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/Calderon.java b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/Calderon.java index cf8d109b..b3cc9e3c 100644 --- a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/Calderon.java +++ b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/Calderon.java @@ -8,6 +8,9 @@ import java.util.List; +/** + * @author RettichLP + */ @UCGangzone(owner = Faction.CALDERON) public class Calderon extends AbstractGangzone { diff --git a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/Farm.java b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/Farm.java index 6e8669c4..63997e3d 100644 --- a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/Farm.java +++ b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/Farm.java @@ -8,6 +8,9 @@ import java.util.Collections; import java.util.List; +/** + * @author RettichLP + */ @UCGangzone public class Farm extends AbstractAttackableGangzone { diff --git a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/Hafen.java b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/Hafen.java index 9cd6240e..acc4cb5d 100644 --- a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/Hafen.java +++ b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/Hafen.java @@ -7,6 +7,9 @@ import java.util.List; +/** + * @author RettichLP + */ @UCGangzone public class Hafen extends AbstractAttackableGangzone { diff --git a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/Kerzakov.java b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/Kerzakov.java index f3a6612e..2cd48c8b 100644 --- a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/Kerzakov.java +++ b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/Kerzakov.java @@ -8,6 +8,9 @@ import java.util.List; +/** + * @author RettichLP + */ @UCGangzone(owner = Faction.KERZAKOV) public class Kerzakov extends AbstractGangzone { diff --git a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/LaCosaNostra.java b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/LaCosaNostra.java index 3ad4486f..a53853aa 100644 --- a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/LaCosaNostra.java +++ b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/LaCosaNostra.java @@ -8,6 +8,9 @@ import java.util.List; +/** + * @author RettichLP + */ @UCGangzone(owner = Faction.LACOSANOSTRA) public class LaCosaNostra extends AbstractGangzone { diff --git a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/LeMilieu.java b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/LeMilieu.java index 4cd4e455..e10045f2 100644 --- a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/LeMilieu.java +++ b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/LeMilieu.java @@ -8,6 +8,9 @@ import java.util.List; +/** + * @author RettichLP + */ @UCGangzone(owner = Faction.LEMILIEU) public class LeMilieu extends AbstractGangzone { diff --git a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/Obrien.java b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/Obrien.java index 07b58ab6..5665ca51 100644 --- a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/Obrien.java +++ b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/Obrien.java @@ -8,6 +8,9 @@ import java.util.List; +/** + * @author RettichLP + */ @UCGangzone(owner = Faction.OBRIEN) public class Obrien extends AbstractGangzone { diff --git a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/Plattenbau.java b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/Plattenbau.java index 5bb50490..628a0acf 100644 --- a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/Plattenbau.java +++ b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/Plattenbau.java @@ -7,6 +7,9 @@ import java.util.List; +/** + * @author RettichLP + */ @UCGangzone public class Plattenbau extends AbstractAttackableGangzone { diff --git a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/Rotlicht.java b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/Rotlicht.java index 11e6a1ec..98366088 100644 --- a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/Rotlicht.java +++ b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/Rotlicht.java @@ -7,6 +7,9 @@ import java.util.List; +/** + * @author RettichLP + */ @UCGangzone public class Rotlicht extends AbstractAttackableGangzone { diff --git a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/Westsideballas.java b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/Westsideballas.java index 35b9879b..74495a03 100644 --- a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/Westsideballas.java +++ b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/Westsideballas.java @@ -8,6 +8,9 @@ import java.util.List; +/** + * @author RettichLP + */ @UCGangzone(owner = Faction.WESTSIDEBALLAS) public class Westsideballas extends AbstractGangzone { diff --git a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/Yachthafen.java b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/Yachthafen.java index 5f8d5137..1307b04e 100644 --- a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/Yachthafen.java +++ b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/Yachthafen.java @@ -7,6 +7,9 @@ import java.util.List; +/** + * @author RettichLP + */ @UCGangzone public class Yachthafen extends AbstractAttackableGangzone { From 6467f4fd5e949df867037de1cdc49102a6c6ccfa Mon Sep 17 00:00:00 2001 From: rettichlp Date: Tue, 12 Sep 2023 21:34:48 +0200 Subject: [PATCH 21/25] Add gangwar area for Altstadt and Farm --- .../base/gangzones/Altstadt.java | 24 +++++++++++++++++-- .../unicacityaddon/base/gangzones/Farm.java | 16 +++++++++++-- 2 files changed, 36 insertions(+), 4 deletions(-) diff --git a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/Altstadt.java b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/Altstadt.java index 2126bbcd..2ec1a486 100644 --- a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/Altstadt.java +++ b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/Altstadt.java @@ -5,7 +5,6 @@ import net.labymod.api.util.Pair; import net.labymod.api.util.math.vector.FloatVector3; -import java.util.Collections; import java.util.List; /** @@ -50,6 +49,27 @@ public List> gangzoneFacades() { @Override public List> gangwarFacades() { - return Collections.emptyList(); + return List.of( + Pair.of(new FloatVector3(145, 69, 539), new FloatVector3(145, 69, 587)), + Pair.of(new FloatVector3(145, 69, 587), new FloatVector3(132, 69, 587)), + Pair.of(new FloatVector3(132, 69, 587), new FloatVector3(132, 69, 597)), + Pair.of(new FloatVector3(132, 69, 597), new FloatVector3(124, 69, 597)), + Pair.of(new FloatVector3(124, 69, 597), new FloatVector3(124, 69, 727)), + Pair.of(new FloatVector3(124, 69, 727), new FloatVector3(126, 69, 727)), + Pair.of(new FloatVector3(126, 69, 727), new FloatVector3(126, 69, 818)), + Pair.of(new FloatVector3(126, 69, 818), new FloatVector3(132, 69, 818)), + Pair.of(new FloatVector3(132, 69, 818), new FloatVector3(132, 69, 844)), + Pair.of(new FloatVector3(132, 69, 844), new FloatVector3(142, 69, 844)), + Pair.of(new FloatVector3(142, 69, 844), new FloatVector3(142, 69, 898)), + Pair.of(new FloatVector3(142, 69, 898), new FloatVector3(354, 69, 898)), + Pair.of(new FloatVector3(354, 69, 898), new FloatVector3(354, 69, 874)), + Pair.of(new FloatVector3(354, 69, 874), new FloatVector3(366, 69, 874)), + Pair.of(new FloatVector3(366, 69, 874), new FloatVector3(366, 69, 753)), + Pair.of(new FloatVector3(366, 69, 753), new FloatVector3(364, 69, 753)), + Pair.of(new FloatVector3(364, 69, 753), new FloatVector3(364, 69, 736)), + Pair.of(new FloatVector3(364, 69, 736), new FloatVector3(363, 69, 736)), + Pair.of(new FloatVector3(363, 69, 736), new FloatVector3(363, 69, 539)), + Pair.of(new FloatVector3(363, 69, 539), new FloatVector3(145, 69, 539)) + ); } } diff --git a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/Farm.java b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/Farm.java index 63997e3d..8c8b8663 100644 --- a/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/Farm.java +++ b/core/src/main/java/com/rettichlp/unicacityaddon/base/gangzones/Farm.java @@ -5,7 +5,6 @@ import net.labymod.api.util.Pair; import net.labymod.api.util.math.vector.FloatVector3; -import java.util.Collections; import java.util.List; /** @@ -38,6 +37,19 @@ public List> gangzoneFacades() { @Override public List> gangwarFacades() { - return Collections.emptyList(); + return List.of( + Pair.of(new FloatVector3(405, 69, 433), new FloatVector3(405, 69, 612)), + Pair.of(new FloatVector3(405, 69, 612), new FloatVector3(472, 69, 612)), + Pair.of(new FloatVector3(472, 69, 612), new FloatVector3(472, 69, 618)), + Pair.of(new FloatVector3(472, 69, 618), new FloatVector3(600, 69, 618)), + Pair.of(new FloatVector3(600, 69, 618), new FloatVector3(600, 69, 612)), + Pair.of(new FloatVector3(600, 69, 612), new FloatVector3(601, 69, 612)), + Pair.of(new FloatVector3(601, 69, 612), new FloatVector3(601, 69, 500)), + Pair.of(new FloatVector3(601, 69, 500), new FloatVector3(600, 69, 500)), + Pair.of(new FloatVector3(600, 69, 500), new FloatVector3(600, 69, 494)), + Pair.of(new FloatVector3(600, 69, 494), new FloatVector3(575, 69, 494)), + Pair.of(new FloatVector3(575, 69, 494), new FloatVector3(575, 69, 433)), + Pair.of(new FloatVector3(575, 69, 433), new FloatVector3(405, 69, 433)) + ); } } From 6411828c9562e25f7c89be1145e54f1950de0cad Mon Sep 17 00:00:00 2001 From: rettichlp Date: Tue, 12 Sep 2023 22:05:12 +0200 Subject: [PATCH 22/25] Update rendering of min two gangzones in ScreenRenderListener --- .../listener/ScreenRenderListener.java | 50 ++++++++++--------- 1 file changed, 26 insertions(+), 24 deletions(-) diff --git a/core/src/main/java/com/rettichlp/unicacityaddon/listener/ScreenRenderListener.java b/core/src/main/java/com/rettichlp/unicacityaddon/listener/ScreenRenderListener.java index 08e6d583..8679eb2f 100644 --- a/core/src/main/java/com/rettichlp/unicacityaddon/listener/ScreenRenderListener.java +++ b/core/src/main/java/com/rettichlp/unicacityaddon/listener/ScreenRenderListener.java @@ -17,13 +17,13 @@ import net.labymod.api.util.Color; import net.labymod.api.util.Pair; import net.labymod.api.util.math.vector.FloatVector3; -import org.jetbrains.annotations.Nullable; import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Objects; import java.util.concurrent.TimeUnit; /** @@ -68,19 +68,20 @@ public void onScreenRender(ScreenRenderEvent e) { @Subscribe public void onRenderWorld(RenderWorldEvent e) { if (this.unicacityAddon.utilService().isUnicacity() && this.showGangzones) { - boolean activeGangwarMode = this.unicacityAddon.player().hasGangwar() || this.unicacityAddon.configuration().gangwar().get(); - AbstractGangzone gangzone = getNearestGangzone(activeGangwarMode); - - if (gangzone != null) { - if (gangzone instanceof AbstractAttackableGangzone attackableGangzone && activeGangwarMode) { - attackableGangzone.renderGangwarFacades(); - attackableGangzone.renderGangwarOutline(); - attackableGangzone.renderGangzoneOutline(Color.ORANGE); - } else { - gangzone.renderGangzoneFacades(); - gangzone.renderGangzoneOutline(Color.BLACK); + boolean activeGangwarMode = this.unicacityAddon.player().hasGangwar(); + + this.getNearestGangzone(activeGangwarMode).forEach(gangzone -> { + if (gangzone != null) { + if (gangzone instanceof AbstractAttackableGangzone attackableGangzone && activeGangwarMode) { + attackableGangzone.renderGangwarFacades(); + attackableGangzone.renderGangwarOutline(); + attackableGangzone.renderGangzoneOutline(Color.ORANGE); + } else { + gangzone.renderGangzoneFacades(); + gangzone.renderGangzoneOutline(Color.BLACK); + } } - } + }); } } @@ -106,30 +107,31 @@ public void onHotkey(HotkeyEvent e) { } } - @Nullable - private AbstractGangzone getNearestGangzone(boolean activeGangwarMode) { + private List getNearestGangzone(boolean activeGangwarMode) { Map gangzoneDistanceMap = new HashMap<>(); for (AbstractGangzone gangzone : this.unicacityAddon.registry().gangzones()) { - List> gangzoneFacades = gangzone instanceof AbstractAttackableGangzone && activeGangwarMode ? ((AbstractAttackableGangzone) gangzone).gangwarFacades() : gangzone.gangzoneFacades(); + List> gangzoneFacades = new ArrayList<>(); + if (gangzone instanceof AbstractAttackableGangzone attackableGangzone && activeGangwarMode) { + gangzoneFacades.addAll(attackableGangzone.gangzoneFacades()); + gangzoneFacades.addAll(attackableGangzone.gangwarFacades()); + } else { + gangzoneFacades.addAll(gangzone.gangzoneFacades()); + } Collection gangzoneCorners = gangzoneFacades.stream() - .filter(posPair -> posPair.getFirst() != null && posPair.getSecond() != null) - .map(posPair -> List.of(posPair.getFirst(), posPair.getSecond())) - .flatMap(Collection::stream) + .map(Pair::getFirst) + .filter(Objects::nonNull) .toList(); Map.Entry floatVector3DistanceMapEntry = this.unicacityAddon.navigationService().getNearestFloatVector3(this.unicacityAddon.player().getLocation(), gangzoneCorners); gangzoneDistanceMap.put(gangzone, floatVector3DistanceMapEntry.getKey()); } - System.out.println("==============================================="); - gangzoneDistanceMap.forEach((key, value) -> System.out.println(value + " = " + key.getClass().getSimpleName())); - return gangzoneDistanceMap.entrySet().stream() - .min(Map.Entry.comparingByValue()) + .sorted(Map.Entry.comparingByValue()) .map(Map.Entry::getKey) - .orElse(null); + .toList().subList(0, 2); } } \ No newline at end of file From aa83eb162c983a8e0826a57ae8e5d04fa005b23a Mon Sep 17 00:00:00 2001 From: rettichlp Date: Tue, 12 Sep 2023 22:05:37 +0200 Subject: [PATCH 23/25] Fix nearest floatvector3 method in NavigationService --- .../unicacityaddon/base/services/NavigationService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/main/java/com/rettichlp/unicacityaddon/base/services/NavigationService.java b/core/src/main/java/com/rettichlp/unicacityaddon/base/services/NavigationService.java index 929cc9f7..dc62b8df 100644 --- a/core/src/main/java/com/rettichlp/unicacityaddon/base/services/NavigationService.java +++ b/core/src/main/java/com/rettichlp/unicacityaddon/base/services/NavigationService.java @@ -55,7 +55,7 @@ public Map.Entry getNearestNaviPoint(FloatVector3 location) { return !naviPoints.isEmpty() ? getNearest(location, naviPoints, NaviPoint::getLocation) : Maps.immutableEntry(0D, new NaviPoint("Unbekannt", 0, 0, 0, "")); } - public Map.Entry getNearestFloatVector3(FloatVector3 location, Collection elements) { + public Map.Entry getNearestFloatVector3(FloatVector3 location, Collection elements) { return getNearest(location, elements, o -> o); } From 909a41e2d79d04e1353020918becd92f879cefd7 Mon Sep 17 00:00:00 2001 From: rettichlp Date: Tue, 12 Sep 2023 22:06:07 +0200 Subject: [PATCH 24/25] Move fake gangwar switch to DefaultAddonPlayer --- .../com/rettichlp/unicacityaddon/base/DefaultAddonPlayer.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/main/java/com/rettichlp/unicacityaddon/base/DefaultAddonPlayer.java b/core/src/main/java/com/rettichlp/unicacityaddon/base/DefaultAddonPlayer.java index 6fd077ac..0fe8cd16 100644 --- a/core/src/main/java/com/rettichlp/unicacityaddon/base/DefaultAddonPlayer.java +++ b/core/src/main/java/com/rettichlp/unicacityaddon/base/DefaultAddonPlayer.java @@ -193,7 +193,7 @@ public boolean isSuperUser() { @Override public boolean hasGangwar() { - return getScoreboard().getScores(getScoreboard().getObjective(DisplaySlot.SIDEBAR)).stream() + return this.unicacityAddon.configuration().gangwar().get() || getScoreboard().getScores(getScoreboard().getObjective(DisplaySlot.SIDEBAR)).stream() .map(ScoreboardScore::getName) .anyMatch(s -> s.contains("Angreifer") || s.contains("Verteidiger")); } From 58d1bed82df5cd78f8bd7139692794c9c7a05f56 Mon Sep 17 00:00:00 2001 From: rettichlp Date: Tue, 12 Sep 2023 22:12:25 +0200 Subject: [PATCH 25/25] Add i18n translations for new config properties --- .../main/resources/assets/unicacityaddon/i18n/de_de.json | 8 ++++++++ .../main/resources/assets/unicacityaddon/i18n/en_gb.json | 8 ++++++++ .../main/resources/assets/unicacityaddon/i18n/en_us.json | 8 ++++++++ 3 files changed, 24 insertions(+) diff --git a/core/src/main/resources/assets/unicacityaddon/i18n/de_de.json b/core/src/main/resources/assets/unicacityaddon/i18n/de_de.json index ce040a42..f6bc6b7e 100644 --- a/core/src/main/resources/assets/unicacityaddon/i18n/de_de.json +++ b/core/src/main/resources/assets/unicacityaddon/i18n/de_de.json @@ -112,6 +112,10 @@ "screenshot": { "name": "Screenshot mit Upload zu Imgur", "description": "Erstellt einen Screenshot, lädt ihn auf Imgur hoch und kopiert den Link in die Zwischenablage" + }, + "showGangzones": { + "name": "Gangzones", + "description": "Zeigt die Begrenzungen von Gangzones und bei einem Gangwar das Kampfgebiet an" } }, "nametag": { @@ -576,6 +580,10 @@ "name": "Debug", "description": "Zeigt Debug Nachrichten an" }, + "gangwar": { + "name": "Gangwar Modus", + "description": "Simuliert den Gangwar Modus" + }, "local": { "name": "Lokale API Verbindung", "description": "Verbindet das Addon mit einer lokalen API Instanz (localhost)" diff --git a/core/src/main/resources/assets/unicacityaddon/i18n/en_gb.json b/core/src/main/resources/assets/unicacityaddon/i18n/en_gb.json index 8393d23f..23d9e933 100644 --- a/core/src/main/resources/assets/unicacityaddon/i18n/en_gb.json +++ b/core/src/main/resources/assets/unicacityaddon/i18n/en_gb.json @@ -112,6 +112,10 @@ "screenshot": { "name": "Screenshot with upload to Imgur", "description": "Creates a screenshot, uploads it to Imgur, and copies the link to the clipboard" + }, + "showGangzones": { + "name": "Gangzones", + "description": "Shows gangzone borders and the fight zone during a gangwar" } }, "nametag": { @@ -576,6 +580,10 @@ "name": "Debug", "description": "Displays debug messages" }, + "gangwar": { + "name": "Gangwar Mode", + "description": "Simulates the gangwar mode" + }, "local": { "name": "Local API connection", "description": "Connects the addon to a local API instance (localhost)" diff --git a/core/src/main/resources/assets/unicacityaddon/i18n/en_us.json b/core/src/main/resources/assets/unicacityaddon/i18n/en_us.json index 8393d23f..23d9e933 100644 --- a/core/src/main/resources/assets/unicacityaddon/i18n/en_us.json +++ b/core/src/main/resources/assets/unicacityaddon/i18n/en_us.json @@ -112,6 +112,10 @@ "screenshot": { "name": "Screenshot with upload to Imgur", "description": "Creates a screenshot, uploads it to Imgur, and copies the link to the clipboard" + }, + "showGangzones": { + "name": "Gangzones", + "description": "Shows gangzone borders and the fight zone during a gangwar" } }, "nametag": { @@ -576,6 +580,10 @@ "name": "Debug", "description": "Displays debug messages" }, + "gangwar": { + "name": "Gangwar Mode", + "description": "Simulates the gangwar mode" + }, "local": { "name": "Local API connection", "description": "Connects the addon to a local API instance (localhost)"