Skip to content
This repository has been archived by the owner on Mar 15, 2024. It is now read-only.

Commit

Permalink
Merge pull request #843 from UnicacityAddon/feature/UCA-840-ingame-ga…
Browse files Browse the repository at this point in the history
…ngzone-border

feature/UCA-840-ingame-gangzone-border
  • Loading branch information
rettichlp committed Sep 12, 2023
2 parents a419199 + 43a8dd6 commit fd7e75e
Show file tree
Hide file tree
Showing 31 changed files with 1,049 additions and 55 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -130,6 +131,7 @@ protected void enable() {
this.registry.registerHudWidgets();
this.registry.registerListeners();
this.registry.registerCommands();
this.registry.registerGangzones();

new Thread(this.teamSpeakAPI::initialize).start();

Expand All @@ -153,6 +155,10 @@ public PlayerListController playerListController() {
return controller().getPlayerListController();
}

public RenderController renderController() {
return controller().getRenderController();
}

public ScreenshotController screenshotController() {
return controller().getScreenshotController();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -184,7 +184,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"));
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,9 @@ public class DefaultUnicacityAddonConfiguration extends AddonConfig implements U
@SwitchSetting
private final ConfigProperty<Boolean> debug = new ConfigProperty<>(false);

@SwitchSetting
private final ConfigProperty<Boolean> gangwar = new ConfigProperty<>(false);

@SwitchSetting
private final ConfigProperty<Boolean> local = new ConfigProperty<>(false);

Expand Down Expand Up @@ -203,6 +206,11 @@ public ConfigProperty<Boolean> debug() {
return this.debug;
}

@Override
public ConfigProperty<Boolean> gangwar() {
return this.gangwar;
}

@Override
public ConfigProperty<Boolean> local() {
return this.local;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -71,5 +71,7 @@ public interface UnicacityAddonConfiguration {

ConfigProperty<Boolean> debug();

ConfigProperty<Boolean> gangwar();

ConfigProperty<Boolean> local();
}
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,9 @@ public class DefaultHotkeyConfiguration extends Config implements HotkeyConfigur
@KeyBindSetting
private final ConfigProperty<Key> screenshot = new ConfigProperty<>(Key.NONE);

@KeyBindSetting
private final ConfigProperty<Key> showGangzones = new ConfigProperty<>(Key.NONE);

@Override
public ConfigProperty<Boolean> enabled() {
return this.enabled;
Expand Down Expand Up @@ -84,4 +87,9 @@ public ConfigProperty<Key> aEquip() {
public ConfigProperty<Key> screenshot() {
return this.screenshot;
}

@Override
public ConfigProperty<Key> showGangzones() {
return this.showGangzones;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -25,4 +25,6 @@ public interface HotkeyConfiguration {
ConfigProperty<Key> aEquip();

ConfigProperty<Key> screenshot();

ConfigProperty<Key> showGangzones();
}
Original file line number Diff line number Diff line change
Expand Up @@ -12,74 +12,43 @@
@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;
private final String factionKey;
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 !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() : "";
}

public static Faction getFactionByDisplayName(String s) {
for (Faction faction : Faction.values()) {
if (faction.getDisplayName().equalsIgnoreCase(s))
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package com.rettichlp.unicacityaddon.base.gangzones;

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;

import java.util.List;

public abstract class AbstractAttackableGangzone extends AbstractGangzone {

private final UnicacityAddon unicacityAddon;

public AbstractAttackableGangzone(UnicacityAddon unicacityAddon, UCGangzone ucGangzone) {
super(unicacityAddon, ucGangzone);
this.unicacityAddon = unicacityAddon;
}

public abstract List<Pair<FloatVector3, FloatVector3>> gangwarFacades();

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));
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package com.rettichlp.unicacityaddon.base.gangzones;

import com.rettichlp.unicacityaddon.UnicacityAddon;
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;

public abstract class AbstractGangzone {

private final UCGangzone ucGangzone;

private final UnicacityAddon unicacityAddon;

public AbstractGangzone(UnicacityAddon unicacityAddon, UCGangzone ucGangzone) {
this.unicacityAddon = unicacityAddon;
this.ucGangzone = ucGangzone;
}

public abstract List<Pair<FloatVector3, FloatVector3>> gangzoneFacades();

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));
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
package com.rettichlp.unicacityaddon.base.gangzones;

import com.rettichlp.unicacityaddon.UnicacityAddon;
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;

/**
* @author RettichLP
*/
@UCGangzone
public class Altstadt extends AbstractAttackableGangzone {

public Altstadt(UnicacityAddon unicacityAddon, UCGangzone ucGangzone) {
super(unicacityAddon, ucGangzone);
}

@Override
public List<Pair<FloatVector3, FloatVector3>> 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<Pair<FloatVector3, FloatVector3>> gangwarFacades() {
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))
);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
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.List;

/**
* @author RettichLP
*/
@UCGangzone(owner = Faction.CALDERON)
public class Calderon extends AbstractGangzone {

public Calderon(UnicacityAddon unicacityAddon, UCGangzone ucGangzone) {
super(unicacityAddon, ucGangzone);
}

@Override
public List<Pair<FloatVector3, FloatVector3>> 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))
);
}
}
Loading

0 comments on commit fd7e75e

Please sign in to comment.