91 files changed
+235
-31
No files matched your search
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+5
-3
@@ -2,6 +2,7 @@ package com.craisinlord.antarchy.content.client;
|
|||||||
|
|
||||||
import com.craisinlord.antarchy.content.network.PortalGunMoonAimPayload;
|
import com.craisinlord.antarchy.content.network.PortalGunMoonAimPayload;
|
||||||
import com.craisinlord.antarchy.content.portalgun.PortalGunMoonMath;
|
import com.craisinlord.antarchy.content.portalgun.PortalGunMoonMath;
|
||||||
|
import java.lang.ref.WeakReference;
|
||||||
import java.util.function.Consumer;
|
import java.util.function.Consumer;
|
||||||
import net.minecraft.client.Camera;
|
import net.minecraft.client.Camera;
|
||||||
import net.minecraft.client.Minecraft;
|
import net.minecraft.client.Minecraft;
|
||||||
@@ -16,7 +17,8 @@ public final class MoonSkyTracker {
|
|||||||
private static final long MAX_AGE_MILLIS = 1500L;
|
private static final long MAX_AGE_MILLIS = 1500L;
|
||||||
private static final double AIM_COSINE = Math.cos(Math.toRadians(PortalGunMoonMath.AIM_TOLERANCE_DEGREES));
|
private static final double AIM_COSINE = Math.cos(Math.toRadians(PortalGunMoonMath.AIM_TOLERANCE_DEGREES));
|
||||||
private static Vec3 direction;
|
private static Vec3 direction;
|
||||||
private static ClientLevel level;
|
// Weak so a dimension change or logout doesn't pin the old client world in memory.
|
||||||
|
private static WeakReference<ClientLevel> level = new WeakReference<>(null);
|
||||||
private static long recordedAt;
|
private static long recordedAt;
|
||||||
private static Consumer<PortalGunMoonAimPayload> sender = payload -> {};
|
private static Consumer<PortalGunMoonAimPayload> sender = payload -> {};
|
||||||
|
|
||||||
@@ -35,7 +37,7 @@ public final class MoonSkyTracker {
|
|||||||
}
|
}
|
||||||
Vector3f world = camera.rotation().transform(view.normalize());
|
Vector3f world = camera.rotation().transform(view.normalize());
|
||||||
direction = new Vec3(world.x, world.y, world.z).normalize();
|
direction = new Vec3(world.x, world.y, world.z).normalize();
|
||||||
level = renderedLevel;
|
level = new WeakReference<>(renderedLevel);
|
||||||
recordedAt = System.currentTimeMillis();
|
recordedAt = System.currentTimeMillis();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -44,7 +46,7 @@ public final class MoonSkyTracker {
|
|||||||
if (minecraft.player == null) {
|
if (minecraft.player == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
boolean tracked = direction != null && level == minecraft.level && System.currentTimeMillis() - recordedAt <= MAX_AGE_MILLIS;
|
boolean tracked = direction != null && level.get() == minecraft.level && System.currentTimeMillis() - recordedAt <= MAX_AGE_MILLIS;
|
||||||
boolean aiming = tracked && minecraft.gameRenderer.getMainCamera().getLookVector().dot(
|
boolean aiming = tracked && minecraft.gameRenderer.getMainCamera().getLookVector().dot(
|
||||||
new Vector3f((float) direction.x, (float) direction.y, (float) direction.z)) >= AIM_COSINE;
|
new Vector3f((float) direction.x, (float) direction.y, (float) direction.z)) >= AIM_COSINE;
|
||||||
sender.accept(new PortalGunMoonAimPayload(tracked, aiming));
|
sender.accept(new PortalGunMoonAimPayload(tracked, aiming));
|
||||||
|
|||||||
+5
-3
@@ -4,6 +4,7 @@ import com.craisinlord.antarchy.content.item.PortalGunItem;
|
|||||||
import com.craisinlord.antarchy.content.network.PortalGunIndicatorPayload;
|
import com.craisinlord.antarchy.content.network.PortalGunIndicatorPayload;
|
||||||
import com.craisinlord.antarchy.content.portalgun.PortalGunPortalEntity;
|
import com.craisinlord.antarchy.content.portalgun.PortalGunPortalEntity;
|
||||||
import com.mojang.blaze3d.systems.RenderSystem;
|
import com.mojang.blaze3d.systems.RenderSystem;
|
||||||
|
import java.lang.ref.WeakReference;
|
||||||
import java.util.EnumSet;
|
import java.util.EnumSet;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
@@ -19,7 +20,8 @@ public final class PortalGunCrosshairRenderer {
|
|||||||
private static final int HALF_WIDTH = 17;
|
private static final int HALF_WIDTH = 17;
|
||||||
private static final float MISSING_BRIGHTNESS = 0.3F;
|
private static final float MISSING_BRIGHTNESS = 0.3F;
|
||||||
private static final float MISSING_ALPHA = 0.75F;
|
private static final float MISSING_ALPHA = 0.75F;
|
||||||
private static ClientLevel cachedLevel;
|
// Weak so a dimension change or logout doesn't pin the old client world in memory.
|
||||||
|
private static WeakReference<ClientLevel> cachedLevel = new WeakReference<>(null);
|
||||||
private static long cachedGameTime = Long.MIN_VALUE;
|
private static long cachedGameTime = Long.MIN_VALUE;
|
||||||
private static UUID cachedGunId;
|
private static UUID cachedGunId;
|
||||||
private static Set<PortalGunPortalEntity.PortalSide> cachedPortals = Set.of();
|
private static Set<PortalGunPortalEntity.PortalSide> cachedPortals = Set.of();
|
||||||
@@ -77,14 +79,14 @@ public final class PortalGunCrosshairRenderer {
|
|||||||
}
|
}
|
||||||
ClientLevel level = minecraft.level;
|
ClientLevel level = minecraft.level;
|
||||||
long gameTime = level.getGameTime();
|
long gameTime = level.getGameTime();
|
||||||
if (cachedLevel != level || cachedGameTime != gameTime || !gunId.equals(cachedGunId)) {
|
if (cachedLevel.get() != level || cachedGameTime != gameTime || !gunId.equals(cachedGunId)) {
|
||||||
Set<PortalGunPortalEntity.PortalSide> portals = EnumSet.noneOf(PortalGunPortalEntity.PortalSide.class);
|
Set<PortalGunPortalEntity.PortalSide> portals = EnumSet.noneOf(PortalGunPortalEntity.PortalSide.class);
|
||||||
for (com.craisinlord.anthology.portal.PortalEntity entry : com.craisinlord.anthology.portal.PortalRegistry.all(level)) {
|
for (com.craisinlord.anthology.portal.PortalEntity entry : com.craisinlord.anthology.portal.PortalRegistry.all(level)) {
|
||||||
if (entry instanceof PortalGunPortalEntity portal && portal.isAlive() && gunId.equals(portal.getGunId())) {
|
if (entry instanceof PortalGunPortalEntity portal && portal.isAlive() && gunId.equals(portal.getGunId())) {
|
||||||
portals.add(portal.getPortalSide());
|
portals.add(portal.getPortalSide());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
cachedLevel = level;
|
cachedLevel = new WeakReference<>(level);
|
||||||
cachedGameTime = gameTime;
|
cachedGameTime = gameTime;
|
||||||
cachedGunId = gunId;
|
cachedGunId = gunId;
|
||||||
cachedPortals = Set.copyOf(portals);
|
cachedPortals = Set.copyOf(portals);
|
||||||
|
|||||||
+6
-4
@@ -2,6 +2,7 @@ package com.craisinlord.antarchy.content.client;
|
|||||||
|
|
||||||
import com.craisinlord.antarchy.content.network.PortalGunIndicatorPayload;
|
import com.craisinlord.antarchy.content.network.PortalGunIndicatorPayload;
|
||||||
import com.craisinlord.antarchy.content.network.PortalGunIndicatorRequestPayload;
|
import com.craisinlord.antarchy.content.network.PortalGunIndicatorRequestPayload;
|
||||||
|
import java.lang.ref.WeakReference;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
@@ -11,7 +12,8 @@ import net.minecraft.client.multiplayer.ClientLevel;
|
|||||||
|
|
||||||
public final class PortalGunIndicatorClientState {
|
public final class PortalGunIndicatorClientState {
|
||||||
private static final Map<UUID, PortalGunIndicatorPayload> STATES = new HashMap<>();
|
private static final Map<UUID, PortalGunIndicatorPayload> STATES = new HashMap<>();
|
||||||
private static ClientLevel level;
|
// Weak so a dimension change or logout doesn't pin the old client world in memory.
|
||||||
|
private static WeakReference<ClientLevel> level = new WeakReference<>(null);
|
||||||
private static long lastRequestTick = Long.MIN_VALUE;
|
private static long lastRequestTick = Long.MIN_VALUE;
|
||||||
private static UUID lastRequestedGun;
|
private static UUID lastRequestedGun;
|
||||||
private static Consumer<PortalGunIndicatorRequestPayload> requestSender = payload -> {};
|
private static Consumer<PortalGunIndicatorRequestPayload> requestSender = payload -> {};
|
||||||
@@ -28,8 +30,8 @@ public final class PortalGunIndicatorClientState {
|
|||||||
if (currentLevel == null || gunId == null || minecraft.player == null) {
|
if (currentLevel == null || gunId == null || minecraft.player == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (level != currentLevel) {
|
if (level.get() != currentLevel) {
|
||||||
level = currentLevel;
|
level = new WeakReference<>(currentLevel);
|
||||||
STATES.clear();
|
STATES.clear();
|
||||||
lastRequestedGun = null;
|
lastRequestedGun = null;
|
||||||
lastRequestTick = Long.MIN_VALUE;
|
lastRequestTick = Long.MIN_VALUE;
|
||||||
@@ -52,7 +54,7 @@ public final class PortalGunIndicatorClientState {
|
|||||||
|
|
||||||
public static void clear() {
|
public static void clear() {
|
||||||
STATES.clear();
|
STATES.clear();
|
||||||
level = null;
|
level = new WeakReference<>(null);
|
||||||
lastRequestedGun = null;
|
lastRequestedGun = null;
|
||||||
lastRequestTick = Long.MIN_VALUE;
|
lastRequestTick = Long.MIN_VALUE;
|
||||||
}
|
}
|
||||||
|
|||||||
+8
@@ -46,6 +46,7 @@ public class AlphaMantisEntity extends MantisEntity {
|
|||||||
private static final double FORCED_RETURN_RADIUS = 144.0D;
|
private static final double FORCED_RETURN_RADIUS = 144.0D;
|
||||||
private static final int RESET_DELAY_TICKS = 300;
|
private static final int RESET_DELAY_TICKS = 300;
|
||||||
private static final double HOME_RETURN_SPEED = 1.05D;
|
private static final double HOME_RETURN_SPEED = 1.05D;
|
||||||
|
private static final int HOME_REPATH_INTERVAL_TICKS = 20;
|
||||||
|
|
||||||
private final ServerBossEvent bossEvent =
|
private final ServerBossEvent bossEvent =
|
||||||
new com.craisinlord.antarchy.content.boss.EntityLinkedServerBossEvent(this.getUUID(), Component.translatable("entity.antarchy.alpha_mantis"), BossEvent.BossBarColor.GREEN, BossEvent.BossBarOverlay.PROGRESS);
|
new com.craisinlord.antarchy.content.boss.EntityLinkedServerBossEvent(this.getUUID(), Component.translatable("entity.antarchy.alpha_mantis"), BossEvent.BossBarColor.GREEN, BossEvent.BossBarOverlay.PROGRESS);
|
||||||
@@ -53,6 +54,7 @@ public class AlphaMantisEntity extends MantisEntity {
|
|||||||
private int summonCooldownTicks;
|
private int summonCooldownTicks;
|
||||||
private int phaseTransitionTicks;
|
private int phaseTransitionTicks;
|
||||||
private int disengageTicks;
|
private int disengageTicks;
|
||||||
|
private int homeRepathCooldown;
|
||||||
private boolean halfHealthTransitionComplete;
|
private boolean halfHealthTransitionComplete;
|
||||||
@Nullable
|
@Nullable
|
||||||
private BlockPos encounterHome;
|
private BlockPos encounterHome;
|
||||||
@@ -385,6 +387,7 @@ public class AlphaMantisEntity extends MantisEntity {
|
|||||||
|
|
||||||
if (target != null) {
|
if (target != null) {
|
||||||
this.disengageTicks = 0;
|
this.disengageTicks = 0;
|
||||||
|
this.homeRepathCooldown = 0;
|
||||||
if (this.isOutsideLeashRadius()) {
|
if (this.isOutsideLeashRadius()) {
|
||||||
this.resetEncounter(true);
|
this.resetEncounter(true);
|
||||||
}
|
}
|
||||||
@@ -447,6 +450,11 @@ public class AlphaMantisEntity extends MantisEntity {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Vec3 homeCenter = Vec3.atCenterOf(this.encounterHome);
|
Vec3 homeCenter = Vec3.atCenterOf(this.encounterHome);
|
||||||
|
if (this.homeRepathCooldown > 0) {
|
||||||
|
this.homeRepathCooldown--;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
this.homeRepathCooldown = HOME_REPATH_INTERVAL_TICKS;
|
||||||
if (this.distanceToSqr(homeCenter) > FORCED_RETURN_RADIUS * FORCED_RETURN_RADIUS) {
|
if (this.distanceToSqr(homeCenter) > FORCED_RETURN_RADIUS * FORCED_RETURN_RADIUS) {
|
||||||
this.moveTo(homeCenter.x, this.encounterHome.getY(), homeCenter.z, this.getYRot(), this.getXRot());
|
this.moveTo(homeCenter.x, this.encounterHome.getY(), homeCenter.z, this.getYRot(), this.getXRot());
|
||||||
this.setDeltaMovement(Vec3.ZERO);
|
this.setDeltaMovement(Vec3.ZERO);
|
||||||
|
|||||||
+8
@@ -105,6 +105,7 @@ public class EmperorScorpionEntity extends Monster implements GeoEntity {
|
|||||||
private static final double FORCED_RETURN_RADIUS = 144.0D;
|
private static final double FORCED_RETURN_RADIUS = 144.0D;
|
||||||
private static final int RESET_DELAY_TICKS = 240;
|
private static final int RESET_DELAY_TICKS = 240;
|
||||||
private static final double HOME_RETURN_SPEED = 1.0D;
|
private static final double HOME_RETURN_SPEED = 1.0D;
|
||||||
|
private static final int HOME_REPATH_INTERVAL_TICKS = 20;
|
||||||
private static final double NEARBY_SCORPION_CHECK_RADIUS = 32.0D;
|
private static final double NEARBY_SCORPION_CHECK_RADIUS = 32.0D;
|
||||||
|
|
||||||
private static final ResourceKey<Level> THORAXIS_KEY =
|
private static final ResourceKey<Level> THORAXIS_KEY =
|
||||||
@@ -137,6 +138,7 @@ public class EmperorScorpionEntity extends Monster implements GeoEntity {
|
|||||||
private int hardenHealTicks;
|
private int hardenHealTicks;
|
||||||
private int hardenSummonedScorpions;
|
private int hardenSummonedScorpions;
|
||||||
private int disengageTicks;
|
private int disengageTicks;
|
||||||
|
private int homeRepathCooldown;
|
||||||
private boolean attackDamageApplied;
|
private boolean attackDamageApplied;
|
||||||
private AttackType currentAttack = AttackType.NONE;
|
private AttackType currentAttack = AttackType.NONE;
|
||||||
private HardenPhase hardenPhase = HardenPhase.NONE;
|
private HardenPhase hardenPhase = HardenPhase.NONE;
|
||||||
@@ -798,6 +800,7 @@ public class EmperorScorpionEntity extends Monster implements GeoEntity {
|
|||||||
|
|
||||||
if (target != null) {
|
if (target != null) {
|
||||||
this.disengageTicks = 0;
|
this.disengageTicks = 0;
|
||||||
|
this.homeRepathCooldown = 0;
|
||||||
if (this.isOutsideLeashRadius()) {
|
if (this.isOutsideLeashRadius()) {
|
||||||
this.resetEncounter(true);
|
this.resetEncounter(true);
|
||||||
}
|
}
|
||||||
@@ -870,6 +873,11 @@ public class EmperorScorpionEntity extends Monster implements GeoEntity {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Vec3 homeCenter = Vec3.atCenterOf(this.encounterHome);
|
Vec3 homeCenter = Vec3.atCenterOf(this.encounterHome);
|
||||||
|
if (this.homeRepathCooldown > 0) {
|
||||||
|
this.homeRepathCooldown--;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
this.homeRepathCooldown = HOME_REPATH_INTERVAL_TICKS;
|
||||||
if (this.distanceToSqr(homeCenter) > FORCED_RETURN_RADIUS * FORCED_RETURN_RADIUS) {
|
if (this.distanceToSqr(homeCenter) > FORCED_RETURN_RADIUS * FORCED_RETURN_RADIUS) {
|
||||||
this.moveTo(homeCenter.x, homeCenter.y, homeCenter.z, this.getYRot(), this.getXRot());
|
this.moveTo(homeCenter.x, homeCenter.y, homeCenter.z, this.getYRot(), this.getXRot());
|
||||||
this.setDeltaMovement(Vec3.ZERO);
|
this.setDeltaMovement(Vec3.ZERO);
|
||||||
|
|||||||
@@ -25,6 +25,9 @@ public final class AntarchyMixinPlugin implements IMixinConfigPlugin {
|
|||||||
if (!classPresent(targetClassName)) {
|
if (!classPresent(targetClassName)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
if (mixinClassName.equals("com.craisinlord.antarchy.mixins.EnchantmentTableApplicabilityMixin")) {
|
||||||
|
return !classPresent("net.minecraftforge.common.extensions.IForgeEnchantment");
|
||||||
|
}
|
||||||
if (mixinClassName.startsWith("com.craisinlord.antarchy.mixins.compat.scguns.")) {
|
if (mixinClassName.startsWith("com.craisinlord.antarchy.mixins.compat.scguns.")) {
|
||||||
return classPresent("top.ribs.scguns.entity.projectile.ProjectileEntity");
|
return classPresent("top.ribs.scguns.entity.projectile.ProjectileEntity");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1669,5 +1669,9 @@
|
|||||||
"item.antarchy.music_disc_the_queen.desc": "Karlljp - The Queen",
|
"item.antarchy.music_disc_the_queen.desc": "Karlljp - The Queen",
|
||||||
"item.antarchy.music_disc_verdance.desc": "Hewo - Verdance",
|
"item.antarchy.music_disc_verdance.desc": "Hewo - Verdance",
|
||||||
"item.antarchy.music_disc_grotesque.desc": "DocShrekBot - Grotesque",
|
"item.antarchy.music_disc_grotesque.desc": "DocShrekBot - Grotesque",
|
||||||
"attribute.antarchy.entity_interaction_range": "Entity Interaction Range"
|
"attribute.antarchy.entity_interaction_range": "Entity Interaction Range",
|
||||||
|
"guide.antarchy.archive_folder.antlas": "Antlas",
|
||||||
|
"guide.antarchy.archive_folder.elythia": "Elythia",
|
||||||
|
"guide.antarchy.archive_folder.cavaryn": "Cavaryn",
|
||||||
|
"guide.antarchy.archive_folder.thoraxis": "Thoraxis"
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"title": "guide.antarchy.archive_folder.antlas",
|
||||||
|
"icon_item": "antarchy:portal_gun_atlas",
|
||||||
|
"sort_order": 10,
|
||||||
|
"green_tint": false
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"title": "guide.antarchy.archive_folder.cavaryn",
|
||||||
|
"icon_item": "antarchy:termite_spawn_egg",
|
||||||
|
"parent": "antarchy:antlas",
|
||||||
|
"sort_order": 20,
|
||||||
|
"green_tint": false
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"title": "guide.antarchy.archive_folder.elythia",
|
||||||
|
"icon_item": "antarchy:brown_ant_spawn_egg",
|
||||||
|
"parent": "antarchy:antlas",
|
||||||
|
"sort_order": 10,
|
||||||
|
"green_tint": false
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"title": "guide.antarchy.archive_folder.thoraxis",
|
||||||
|
"icon_item": "antarchy:red_ant_spawn_egg",
|
||||||
|
"parent": "antarchy:antlas",
|
||||||
|
"sort_order": 30,
|
||||||
|
"green_tint": false
|
||||||
|
}
|
||||||
@@ -1,6 +1,8 @@
|
|||||||
{
|
{
|
||||||
"type": "article",
|
"type": "article",
|
||||||
"category": "thoraxis",
|
"category": "thoraxis",
|
||||||
|
"folder": "antarchy:thoraxis",
|
||||||
|
"sort_order": 20,
|
||||||
"title": "guide.antarchy.entry.bloodglass.title",
|
"title": "guide.antarchy.entry.bloodglass.title",
|
||||||
"subtitle": "guide.antarchy.entry.bloodglass.subtitle",
|
"subtitle": "guide.antarchy.entry.bloodglass.subtitle",
|
||||||
"description": [
|
"description": [
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
{
|
{
|
||||||
"type": "entity",
|
"type": "entity",
|
||||||
"category": "elythia",
|
"category": "elythia",
|
||||||
|
"folder": "antarchy:elythia",
|
||||||
|
"sort_order": 0,
|
||||||
"title": "guide.antarchy.entry.brown_ant.title",
|
"title": "guide.antarchy.entry.brown_ant.title",
|
||||||
"subtitle": "guide.antarchy.entry.brown_ant.subtitle",
|
"subtitle": "guide.antarchy.entry.brown_ant.subtitle",
|
||||||
"description": [
|
"description": [
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
{
|
{
|
||||||
"type": "mob",
|
"type": "mob",
|
||||||
"category": "elythia",
|
"category": "elythia",
|
||||||
|
"folder": "antarchy:elythia",
|
||||||
|
"sort_order": 30,
|
||||||
"title": "guide.antarchy.entry.brutalfly.title",
|
"title": "guide.antarchy.entry.brutalfly.title",
|
||||||
"subtitle": "guide.antarchy.entry.brutalfly.subtitle",
|
"subtitle": "guide.antarchy.entry.brutalfly.subtitle",
|
||||||
"description": [
|
"description": [
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
{
|
{
|
||||||
"type": "article",
|
"type": "article",
|
||||||
"category": "general",
|
"category": "general",
|
||||||
|
"folder": "antarchy:antlas",
|
||||||
|
"sort_order": 40,
|
||||||
"title": "guide.antarchy.entry.duplicator_tree.title",
|
"title": "guide.antarchy.entry.duplicator_tree.title",
|
||||||
"subtitle": "guide.antarchy.entry.duplicator_tree.subtitle",
|
"subtitle": "guide.antarchy.entry.duplicator_tree.subtitle",
|
||||||
"description": [
|
"description": [
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
{
|
{
|
||||||
"type": "entity",
|
"type": "entity",
|
||||||
"category": "general",
|
"category": "general",
|
||||||
|
"folder": "antarchy:antlas",
|
||||||
|
"sort_order": 30,
|
||||||
"title": "guide.antarchy.entry.easter_bunny.title",
|
"title": "guide.antarchy.entry.easter_bunny.title",
|
||||||
"subtitle": "guide.antarchy.entry.easter_bunny.subtitle",
|
"subtitle": "guide.antarchy.entry.easter_bunny.subtitle",
|
||||||
"description": [
|
"description": [
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
{
|
{
|
||||||
"type": "mob",
|
"type": "mob",
|
||||||
"category": "elythia",
|
"category": "elythia",
|
||||||
|
"folder": "antarchy:elythia",
|
||||||
|
"sort_order": 10,
|
||||||
"title": "guide.antarchy.entry.flying_squirrel.title",
|
"title": "guide.antarchy.entry.flying_squirrel.title",
|
||||||
"subtitle": "guide.antarchy.entry.flying_squirrel.subtitle",
|
"subtitle": "guide.antarchy.entry.flying_squirrel.subtitle",
|
||||||
"description": [
|
"description": [
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
{
|
{
|
||||||
"type": "mob",
|
"type": "mob",
|
||||||
"category": "elythia",
|
"category": "elythia",
|
||||||
|
"folder": "antarchy:elythia",
|
||||||
|
"sort_order": 20,
|
||||||
"title": "guide.antarchy.entry.glimmer.title",
|
"title": "guide.antarchy.entry.glimmer.title",
|
||||||
"subtitle": "guide.antarchy.entry.glimmer.subtitle",
|
"subtitle": "guide.antarchy.entry.glimmer.subtitle",
|
||||||
"description": [
|
"description": [
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
{
|
{
|
||||||
"type": "mob",
|
"type": "mob",
|
||||||
"category": "cavaryn",
|
"category": "cavaryn",
|
||||||
|
"folder": "antarchy:cavaryn",
|
||||||
|
"sort_order": 10,
|
||||||
"title": "guide.antarchy.entry.hercules_beetle.title",
|
"title": "guide.antarchy.entry.hercules_beetle.title",
|
||||||
"subtitle": "guide.antarchy.entry.hercules_beetle.subtitle",
|
"subtitle": "guide.antarchy.entry.hercules_beetle.subtitle",
|
||||||
"description": [
|
"description": [
|
||||||
|
|||||||
+2
@@ -1,6 +1,8 @@
|
|||||||
{
|
{
|
||||||
"type": "article",
|
"type": "article",
|
||||||
"category": "general",
|
"category": "general",
|
||||||
|
"folder": "antarchy:antlas",
|
||||||
|
"sort_order": 20,
|
||||||
"title": "guide.antarchy.entry.high_fructose_corn_syrup.title",
|
"title": "guide.antarchy.entry.high_fructose_corn_syrup.title",
|
||||||
"subtitle": "guide.antarchy.entry.high_fructose_corn_syrup.subtitle",
|
"subtitle": "guide.antarchy.entry.high_fructose_corn_syrup.subtitle",
|
||||||
"description": [
|
"description": [
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
{
|
{
|
||||||
"type": "entity",
|
"type": "entity",
|
||||||
"category": "elythia",
|
"category": "elythia",
|
||||||
|
"folder": "antarchy:elythia",
|
||||||
|
"sort_order": 50,
|
||||||
"title": "guide.antarchy.entry.king.title",
|
"title": "guide.antarchy.entry.king.title",
|
||||||
"subtitle": "guide.antarchy.entry.king.subtitle",
|
"subtitle": "guide.antarchy.entry.king.subtitle",
|
||||||
"description": [
|
"description": [
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
{
|
{
|
||||||
"type": "entity",
|
"type": "entity",
|
||||||
"category": "general",
|
"category": "general",
|
||||||
|
"folder": "antarchy:antlas",
|
||||||
|
"sort_order": 10,
|
||||||
"title": "guide.antarchy.entry.kraken.title",
|
"title": "guide.antarchy.entry.kraken.title",
|
||||||
"subtitle": "guide.antarchy.entry.kraken.subtitle",
|
"subtitle": "guide.antarchy.entry.kraken.subtitle",
|
||||||
"description": [
|
"description": [
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
{
|
{
|
||||||
"type": "mob",
|
"type": "mob",
|
||||||
"category": "thoraxis",
|
"category": "thoraxis",
|
||||||
|
"folder": "antarchy:thoraxis",
|
||||||
|
"sort_order": 10,
|
||||||
"title": "guide.antarchy.entry.nightmare.title",
|
"title": "guide.antarchy.entry.nightmare.title",
|
||||||
"subtitle": "guide.antarchy.entry.nightmare.subtitle",
|
"subtitle": "guide.antarchy.entry.nightmare.subtitle",
|
||||||
"description": [
|
"description": [
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
{
|
{
|
||||||
"type": "entity",
|
"type": "entity",
|
||||||
"category": "elythia",
|
"category": "elythia",
|
||||||
|
"folder": "antarchy:elythia",
|
||||||
|
"sort_order": 40,
|
||||||
"title": "guide.antarchy.entry.prince.title",
|
"title": "guide.antarchy.entry.prince.title",
|
||||||
"subtitle": "guide.antarchy.entry.prince.subtitle",
|
"subtitle": "guide.antarchy.entry.prince.subtitle",
|
||||||
"description": [
|
"description": [
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
{
|
{
|
||||||
"type": "entity",
|
"type": "entity",
|
||||||
"category": "thoraxis",
|
"category": "thoraxis",
|
||||||
|
"folder": "antarchy:thoraxis",
|
||||||
|
"sort_order": 50,
|
||||||
"title": "guide.antarchy.entry.princess.title",
|
"title": "guide.antarchy.entry.princess.title",
|
||||||
"subtitle": "guide.antarchy.entry.princess.subtitle",
|
"subtitle": "guide.antarchy.entry.princess.subtitle",
|
||||||
"description": [
|
"description": [
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
{
|
{
|
||||||
"type": "entity",
|
"type": "entity",
|
||||||
"category": "thoraxis",
|
"category": "thoraxis",
|
||||||
|
"folder": "antarchy:thoraxis",
|
||||||
|
"sort_order": 60,
|
||||||
"title": "guide.antarchy.entry.queen.title",
|
"title": "guide.antarchy.entry.queen.title",
|
||||||
"subtitle": "guide.antarchy.entry.queen.subtitle",
|
"subtitle": "guide.antarchy.entry.queen.subtitle",
|
||||||
"description": [
|
"description": [
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
{
|
{
|
||||||
"type": "entity",
|
"type": "entity",
|
||||||
"category": "general",
|
"category": "general",
|
||||||
|
"folder": "antarchy:antlas",
|
||||||
|
"sort_order": 0,
|
||||||
"title": "guide.antarchy.entry.rainbow_ant.title",
|
"title": "guide.antarchy.entry.rainbow_ant.title",
|
||||||
"subtitle": "guide.antarchy.entry.rainbow_ant.subtitle",
|
"subtitle": "guide.antarchy.entry.rainbow_ant.subtitle",
|
||||||
"description": [
|
"description": [
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
{
|
{
|
||||||
"type": "entity",
|
"type": "entity",
|
||||||
"category": "thoraxis",
|
"category": "thoraxis",
|
||||||
|
"folder": "antarchy:thoraxis",
|
||||||
|
"sort_order": 0,
|
||||||
"title": "guide.antarchy.entry.red_ant.title",
|
"title": "guide.antarchy.entry.red_ant.title",
|
||||||
"subtitle": "guide.antarchy.entry.red_ant.subtitle",
|
"subtitle": "guide.antarchy.entry.red_ant.subtitle",
|
||||||
"description": [
|
"description": [
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
{
|
{
|
||||||
"type": "article",
|
"type": "article",
|
||||||
"category": "thoraxis",
|
"category": "thoraxis",
|
||||||
|
"folder": "antarchy:thoraxis",
|
||||||
|
"sort_order": 30,
|
||||||
"title": "guide.antarchy.entry.temporal_fields.title",
|
"title": "guide.antarchy.entry.temporal_fields.title",
|
||||||
"subtitle": "guide.antarchy.entry.temporal_fields.subtitle",
|
"subtitle": "guide.antarchy.entry.temporal_fields.subtitle",
|
||||||
"description": [
|
"description": [
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
{
|
{
|
||||||
"type": "entity",
|
"type": "entity",
|
||||||
"category": "cavaryn",
|
"category": "cavaryn",
|
||||||
|
"folder": "antarchy:cavaryn",
|
||||||
|
"sort_order": 0,
|
||||||
"title": "guide.antarchy.entry.termite.title",
|
"title": "guide.antarchy.entry.termite.title",
|
||||||
"subtitle": "guide.antarchy.entry.termite.subtitle",
|
"subtitle": "guide.antarchy.entry.termite.subtitle",
|
||||||
"description": [
|
"description": [
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
{
|
{
|
||||||
"type": "structure",
|
"type": "structure",
|
||||||
"category": "elythia",
|
"category": "elythia",
|
||||||
|
"folder": "antarchy:elythia",
|
||||||
|
"sort_order": 60,
|
||||||
"title": "guide.antarchy.entry.toreterror.title",
|
"title": "guide.antarchy.entry.toreterror.title",
|
||||||
"subtitle": "guide.antarchy.entry.toreterror_arena.subtitle",
|
"subtitle": "guide.antarchy.entry.toreterror_arena.subtitle",
|
||||||
"description": [
|
"description": [
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
{
|
{
|
||||||
"type": "article",
|
"type": "article",
|
||||||
"category": "thoraxis",
|
"category": "thoraxis",
|
||||||
|
"folder": "antarchy:thoraxis",
|
||||||
|
"sort_order": 40,
|
||||||
"title": "guide.antarchy.entry.vortex.title",
|
"title": "guide.antarchy.entry.vortex.title",
|
||||||
"subtitle": "guide.antarchy.entry.vortex.subtitle",
|
"subtitle": "guide.antarchy.entry.vortex.subtitle",
|
||||||
"description": [
|
"description": [
|
||||||
|
|||||||
+5
-3
@@ -2,6 +2,7 @@ package com.craisinlord.antarchy.content.client;
|
|||||||
|
|
||||||
import com.craisinlord.antarchy.content.network.PortalGunMoonAimPayload;
|
import com.craisinlord.antarchy.content.network.PortalGunMoonAimPayload;
|
||||||
import com.craisinlord.antarchy.content.portalgun.PortalGunMoonMath;
|
import com.craisinlord.antarchy.content.portalgun.PortalGunMoonMath;
|
||||||
|
import java.lang.ref.WeakReference;
|
||||||
import java.util.function.Consumer;
|
import java.util.function.Consumer;
|
||||||
import net.minecraft.client.Camera;
|
import net.minecraft.client.Camera;
|
||||||
import net.minecraft.client.Minecraft;
|
import net.minecraft.client.Minecraft;
|
||||||
@@ -16,7 +17,8 @@ public final class MoonSkyTracker {
|
|||||||
private static final long MAX_AGE_MILLIS = 1500L;
|
private static final long MAX_AGE_MILLIS = 1500L;
|
||||||
private static final double AIM_COSINE = Math.cos(Math.toRadians(PortalGunMoonMath.AIM_TOLERANCE_DEGREES));
|
private static final double AIM_COSINE = Math.cos(Math.toRadians(PortalGunMoonMath.AIM_TOLERANCE_DEGREES));
|
||||||
private static Vec3 direction;
|
private static Vec3 direction;
|
||||||
private static ClientLevel level;
|
// Weak so a dimension change or logout doesn't pin the old client world in memory.
|
||||||
|
private static WeakReference<ClientLevel> level = new WeakReference<>(null);
|
||||||
private static long recordedAt;
|
private static long recordedAt;
|
||||||
private static Consumer<PortalGunMoonAimPayload> sender = payload -> {};
|
private static Consumer<PortalGunMoonAimPayload> sender = payload -> {};
|
||||||
|
|
||||||
@@ -35,7 +37,7 @@ public final class MoonSkyTracker {
|
|||||||
}
|
}
|
||||||
Vector3f world = camera.rotation().transform(view.normalize());
|
Vector3f world = camera.rotation().transform(view.normalize());
|
||||||
direction = new Vec3(world.x, world.y, world.z).normalize();
|
direction = new Vec3(world.x, world.y, world.z).normalize();
|
||||||
level = renderedLevel;
|
level = new WeakReference<>(renderedLevel);
|
||||||
recordedAt = System.currentTimeMillis();
|
recordedAt = System.currentTimeMillis();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -44,7 +46,7 @@ public final class MoonSkyTracker {
|
|||||||
if (minecraft.player == null) {
|
if (minecraft.player == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
boolean tracked = direction != null && level == minecraft.level && System.currentTimeMillis() - recordedAt <= MAX_AGE_MILLIS;
|
boolean tracked = direction != null && level.get() == minecraft.level && System.currentTimeMillis() - recordedAt <= MAX_AGE_MILLIS;
|
||||||
boolean aiming = tracked && minecraft.gameRenderer.getMainCamera().getLookVector().dot(
|
boolean aiming = tracked && minecraft.gameRenderer.getMainCamera().getLookVector().dot(
|
||||||
new Vector3f((float) direction.x, (float) direction.y, (float) direction.z)) >= AIM_COSINE;
|
new Vector3f((float) direction.x, (float) direction.y, (float) direction.z)) >= AIM_COSINE;
|
||||||
sender.accept(new PortalGunMoonAimPayload(tracked, aiming));
|
sender.accept(new PortalGunMoonAimPayload(tracked, aiming));
|
||||||
|
|||||||
+5
-3
@@ -4,6 +4,7 @@ import com.craisinlord.antarchy.content.item.PortalGunItem;
|
|||||||
import com.craisinlord.antarchy.content.network.PortalGunIndicatorPayload;
|
import com.craisinlord.antarchy.content.network.PortalGunIndicatorPayload;
|
||||||
import com.craisinlord.antarchy.content.portalgun.PortalGunPortalEntity;
|
import com.craisinlord.antarchy.content.portalgun.PortalGunPortalEntity;
|
||||||
import com.mojang.blaze3d.systems.RenderSystem;
|
import com.mojang.blaze3d.systems.RenderSystem;
|
||||||
|
import java.lang.ref.WeakReference;
|
||||||
import java.util.EnumSet;
|
import java.util.EnumSet;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
@@ -19,7 +20,8 @@ public final class PortalGunCrosshairRenderer {
|
|||||||
private static final int HALF_WIDTH = 17;
|
private static final int HALF_WIDTH = 17;
|
||||||
private static final float MISSING_BRIGHTNESS = 0.3F;
|
private static final float MISSING_BRIGHTNESS = 0.3F;
|
||||||
private static final float MISSING_ALPHA = 0.75F;
|
private static final float MISSING_ALPHA = 0.75F;
|
||||||
private static ClientLevel cachedLevel;
|
// Weak so a dimension change or logout doesn't pin the old client world in memory.
|
||||||
|
private static WeakReference<ClientLevel> cachedLevel = new WeakReference<>(null);
|
||||||
private static long cachedGameTime = Long.MIN_VALUE;
|
private static long cachedGameTime = Long.MIN_VALUE;
|
||||||
private static UUID cachedGunId;
|
private static UUID cachedGunId;
|
||||||
private static Set<PortalGunPortalEntity.PortalSide> cachedPortals = Set.of();
|
private static Set<PortalGunPortalEntity.PortalSide> cachedPortals = Set.of();
|
||||||
@@ -77,14 +79,14 @@ public final class PortalGunCrosshairRenderer {
|
|||||||
}
|
}
|
||||||
ClientLevel level = minecraft.level;
|
ClientLevel level = minecraft.level;
|
||||||
long gameTime = level.getGameTime();
|
long gameTime = level.getGameTime();
|
||||||
if (cachedLevel != level || cachedGameTime != gameTime || !gunId.equals(cachedGunId)) {
|
if (cachedLevel.get() != level || cachedGameTime != gameTime || !gunId.equals(cachedGunId)) {
|
||||||
Set<PortalGunPortalEntity.PortalSide> portals = EnumSet.noneOf(PortalGunPortalEntity.PortalSide.class);
|
Set<PortalGunPortalEntity.PortalSide> portals = EnumSet.noneOf(PortalGunPortalEntity.PortalSide.class);
|
||||||
for (com.craisinlord.anthology.portal.PortalEntity entry : com.craisinlord.anthology.portal.PortalRegistry.all(level)) {
|
for (com.craisinlord.anthology.portal.PortalEntity entry : com.craisinlord.anthology.portal.PortalRegistry.all(level)) {
|
||||||
if (entry instanceof PortalGunPortalEntity portal && portal.isAlive() && gunId.equals(portal.getGunId())) {
|
if (entry instanceof PortalGunPortalEntity portal && portal.isAlive() && gunId.equals(portal.getGunId())) {
|
||||||
portals.add(portal.getPortalSide());
|
portals.add(portal.getPortalSide());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
cachedLevel = level;
|
cachedLevel = new WeakReference<>(level);
|
||||||
cachedGameTime = gameTime;
|
cachedGameTime = gameTime;
|
||||||
cachedGunId = gunId;
|
cachedGunId = gunId;
|
||||||
cachedPortals = Set.copyOf(portals);
|
cachedPortals = Set.copyOf(portals);
|
||||||
|
|||||||
+6
-4
@@ -2,6 +2,7 @@ package com.craisinlord.antarchy.content.client;
|
|||||||
|
|
||||||
import com.craisinlord.antarchy.content.network.PortalGunIndicatorPayload;
|
import com.craisinlord.antarchy.content.network.PortalGunIndicatorPayload;
|
||||||
import com.craisinlord.antarchy.content.network.PortalGunIndicatorRequestPayload;
|
import com.craisinlord.antarchy.content.network.PortalGunIndicatorRequestPayload;
|
||||||
|
import java.lang.ref.WeakReference;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
@@ -11,7 +12,8 @@ import net.minecraft.client.multiplayer.ClientLevel;
|
|||||||
|
|
||||||
public final class PortalGunIndicatorClientState {
|
public final class PortalGunIndicatorClientState {
|
||||||
private static final Map<UUID, PortalGunIndicatorPayload> STATES = new HashMap<>();
|
private static final Map<UUID, PortalGunIndicatorPayload> STATES = new HashMap<>();
|
||||||
private static ClientLevel level;
|
// Weak so a dimension change or logout doesn't pin the old client world in memory.
|
||||||
|
private static WeakReference<ClientLevel> level = new WeakReference<>(null);
|
||||||
private static long lastRequestTick = Long.MIN_VALUE;
|
private static long lastRequestTick = Long.MIN_VALUE;
|
||||||
private static UUID lastRequestedGun;
|
private static UUID lastRequestedGun;
|
||||||
private static Consumer<PortalGunIndicatorRequestPayload> requestSender = payload -> {};
|
private static Consumer<PortalGunIndicatorRequestPayload> requestSender = payload -> {};
|
||||||
@@ -28,8 +30,8 @@ public final class PortalGunIndicatorClientState {
|
|||||||
if (currentLevel == null || gunId == null || minecraft.player == null) {
|
if (currentLevel == null || gunId == null || minecraft.player == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (level != currentLevel) {
|
if (level.get() != currentLevel) {
|
||||||
level = currentLevel;
|
level = new WeakReference<>(currentLevel);
|
||||||
STATES.clear();
|
STATES.clear();
|
||||||
lastRequestedGun = null;
|
lastRequestedGun = null;
|
||||||
lastRequestTick = Long.MIN_VALUE;
|
lastRequestTick = Long.MIN_VALUE;
|
||||||
@@ -52,7 +54,7 @@ public final class PortalGunIndicatorClientState {
|
|||||||
|
|
||||||
public static void clear() {
|
public static void clear() {
|
||||||
STATES.clear();
|
STATES.clear();
|
||||||
level = null;
|
level = new WeakReference<>(null);
|
||||||
lastRequestedGun = null;
|
lastRequestedGun = null;
|
||||||
lastRequestTick = Long.MIN_VALUE;
|
lastRequestTick = Long.MIN_VALUE;
|
||||||
}
|
}
|
||||||
|
|||||||
+8
@@ -46,6 +46,7 @@ public class AlphaMantisEntity extends MantisEntity {
|
|||||||
private static final double FORCED_RETURN_RADIUS = 144.0D;
|
private static final double FORCED_RETURN_RADIUS = 144.0D;
|
||||||
private static final int RESET_DELAY_TICKS = 300;
|
private static final int RESET_DELAY_TICKS = 300;
|
||||||
private static final double HOME_RETURN_SPEED = 1.05D;
|
private static final double HOME_RETURN_SPEED = 1.05D;
|
||||||
|
private static final int HOME_REPATH_INTERVAL_TICKS = 20;
|
||||||
|
|
||||||
private final ServerBossEvent bossEvent =
|
private final ServerBossEvent bossEvent =
|
||||||
new com.craisinlord.antarchy.content.boss.EntityLinkedServerBossEvent(this.getUUID(), Component.translatable("entity.antarchy.alpha_mantis"), BossEvent.BossBarColor.GREEN, BossEvent.BossBarOverlay.PROGRESS);
|
new com.craisinlord.antarchy.content.boss.EntityLinkedServerBossEvent(this.getUUID(), Component.translatable("entity.antarchy.alpha_mantis"), BossEvent.BossBarColor.GREEN, BossEvent.BossBarOverlay.PROGRESS);
|
||||||
@@ -53,6 +54,7 @@ public class AlphaMantisEntity extends MantisEntity {
|
|||||||
private int summonCooldownTicks;
|
private int summonCooldownTicks;
|
||||||
private int phaseTransitionTicks;
|
private int phaseTransitionTicks;
|
||||||
private int disengageTicks;
|
private int disengageTicks;
|
||||||
|
private int homeRepathCooldown;
|
||||||
private boolean halfHealthTransitionComplete;
|
private boolean halfHealthTransitionComplete;
|
||||||
@Nullable
|
@Nullable
|
||||||
private BlockPos encounterHome;
|
private BlockPos encounterHome;
|
||||||
@@ -386,6 +388,7 @@ public class AlphaMantisEntity extends MantisEntity {
|
|||||||
|
|
||||||
if (target != null) {
|
if (target != null) {
|
||||||
this.disengageTicks = 0;
|
this.disengageTicks = 0;
|
||||||
|
this.homeRepathCooldown = 0;
|
||||||
if (this.isOutsideLeashRadius()) {
|
if (this.isOutsideLeashRadius()) {
|
||||||
this.resetEncounter(true);
|
this.resetEncounter(true);
|
||||||
}
|
}
|
||||||
@@ -448,6 +451,11 @@ public class AlphaMantisEntity extends MantisEntity {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Vec3 homeCenter = Vec3.atCenterOf(this.encounterHome);
|
Vec3 homeCenter = Vec3.atCenterOf(this.encounterHome);
|
||||||
|
if (this.homeRepathCooldown > 0) {
|
||||||
|
this.homeRepathCooldown--;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
this.homeRepathCooldown = HOME_REPATH_INTERVAL_TICKS;
|
||||||
if (this.distanceToSqr(homeCenter) > FORCED_RETURN_RADIUS * FORCED_RETURN_RADIUS) {
|
if (this.distanceToSqr(homeCenter) > FORCED_RETURN_RADIUS * FORCED_RETURN_RADIUS) {
|
||||||
this.moveTo(homeCenter.x, this.encounterHome.getY(), homeCenter.z, this.getYRot(), this.getXRot());
|
this.moveTo(homeCenter.x, this.encounterHome.getY(), homeCenter.z, this.getYRot(), this.getXRot());
|
||||||
this.setDeltaMovement(Vec3.ZERO);
|
this.setDeltaMovement(Vec3.ZERO);
|
||||||
|
|||||||
+8
@@ -105,6 +105,7 @@ public class EmperorScorpionEntity extends Monster implements GeoEntity {
|
|||||||
private static final double FORCED_RETURN_RADIUS = 144.0D;
|
private static final double FORCED_RETURN_RADIUS = 144.0D;
|
||||||
private static final int RESET_DELAY_TICKS = 240;
|
private static final int RESET_DELAY_TICKS = 240;
|
||||||
private static final double HOME_RETURN_SPEED = 1.0D;
|
private static final double HOME_RETURN_SPEED = 1.0D;
|
||||||
|
private static final int HOME_REPATH_INTERVAL_TICKS = 20;
|
||||||
private static final double NEARBY_SCORPION_CHECK_RADIUS = 32.0D;
|
private static final double NEARBY_SCORPION_CHECK_RADIUS = 32.0D;
|
||||||
|
|
||||||
private static final ResourceKey<Level> THORAXIS_KEY =
|
private static final ResourceKey<Level> THORAXIS_KEY =
|
||||||
@@ -137,6 +138,7 @@ public class EmperorScorpionEntity extends Monster implements GeoEntity {
|
|||||||
private int hardenHealTicks;
|
private int hardenHealTicks;
|
||||||
private int hardenSummonedScorpions;
|
private int hardenSummonedScorpions;
|
||||||
private int disengageTicks;
|
private int disengageTicks;
|
||||||
|
private int homeRepathCooldown;
|
||||||
private boolean attackDamageApplied;
|
private boolean attackDamageApplied;
|
||||||
private AttackType currentAttack = AttackType.NONE;
|
private AttackType currentAttack = AttackType.NONE;
|
||||||
private HardenPhase hardenPhase = HardenPhase.NONE;
|
private HardenPhase hardenPhase = HardenPhase.NONE;
|
||||||
@@ -797,6 +799,7 @@ public class EmperorScorpionEntity extends Monster implements GeoEntity {
|
|||||||
|
|
||||||
if (target != null) {
|
if (target != null) {
|
||||||
this.disengageTicks = 0;
|
this.disengageTicks = 0;
|
||||||
|
this.homeRepathCooldown = 0;
|
||||||
if (this.isOutsideLeashRadius()) {
|
if (this.isOutsideLeashRadius()) {
|
||||||
this.resetEncounter(true);
|
this.resetEncounter(true);
|
||||||
}
|
}
|
||||||
@@ -869,6 +872,11 @@ public class EmperorScorpionEntity extends Monster implements GeoEntity {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Vec3 homeCenter = Vec3.atCenterOf(this.encounterHome);
|
Vec3 homeCenter = Vec3.atCenterOf(this.encounterHome);
|
||||||
|
if (this.homeRepathCooldown > 0) {
|
||||||
|
this.homeRepathCooldown--;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
this.homeRepathCooldown = HOME_REPATH_INTERVAL_TICKS;
|
||||||
if (this.distanceToSqr(homeCenter) > FORCED_RETURN_RADIUS * FORCED_RETURN_RADIUS) {
|
if (this.distanceToSqr(homeCenter) > FORCED_RETURN_RADIUS * FORCED_RETURN_RADIUS) {
|
||||||
this.moveTo(homeCenter.x, homeCenter.y, homeCenter.z, this.getYRot(), this.getXRot());
|
this.moveTo(homeCenter.x, homeCenter.y, homeCenter.z, this.getYRot(), this.getXRot());
|
||||||
this.setDeltaMovement(Vec3.ZERO);
|
this.setDeltaMovement(Vec3.ZERO);
|
||||||
|
|||||||
+1
-1
@@ -43,7 +43,7 @@ import net.minecraft.tags.TagKey;
|
|||||||
|
|
||||||
public class CritterCageItem extends Item {
|
public class CritterCageItem extends Item {
|
||||||
public static final String ENTITY_DATA_TAG = "EntityData";
|
public static final String ENTITY_DATA_TAG = "EntityData";
|
||||||
private static final TagKey<EntityType<?>> BOSS_TAG = TagKey.create(Registries.ENTITY_TYPE, ResourceLocation.withDefaultNamespace("bosses"));
|
private static final TagKey<EntityType<?>> BOSS_TAG = TagKey.create(Registries.ENTITY_TYPE, ResourceLocation.fromNamespaceAndPath("c", "bosses"));
|
||||||
private static final int EMPTY_STATE = 0;
|
private static final int EMPTY_STATE = 0;
|
||||||
private static final int FILLED_PLAIN_STATE = 1;
|
private static final int FILLED_PLAIN_STATE = 1;
|
||||||
private static final int FILLED_COLORED_STATE = 2;
|
private static final int FILLED_COLORED_STATE = 2;
|
||||||
|
|||||||
@@ -1662,5 +1662,9 @@
|
|||||||
"advancements.antarchy.survived_the_horde.description": "Survive a Cavaryn horde to its final wave and break it.",
|
"advancements.antarchy.survived_the_horde.description": "Survive a Cavaryn horde to its final wave and break it.",
|
||||||
"advancements.antarchy.glimmer_keeper.title": "Glimmer Keeper",
|
"advancements.antarchy.glimmer_keeper.title": "Glimmer Keeper",
|
||||||
"advancements.antarchy.glimmer_keeper.description": "Tame every kind of Glimmer.",
|
"advancements.antarchy.glimmer_keeper.description": "Tame every kind of Glimmer.",
|
||||||
"entity.antarchy.portal_gun_portal": "Portal Gun Portal"
|
"entity.antarchy.portal_gun_portal": "Portal Gun Portal",
|
||||||
|
"guide.antarchy.archive_folder.antlas": "Antlas",
|
||||||
|
"guide.antarchy.archive_folder.elythia": "Elythia",
|
||||||
|
"guide.antarchy.archive_folder.cavaryn": "Cavaryn",
|
||||||
|
"guide.antarchy.archive_folder.thoraxis": "Thoraxis"
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"title": "guide.antarchy.archive_folder.antlas",
|
||||||
|
"icon_item": "antarchy:portal_gun_atlas",
|
||||||
|
"sort_order": 10,
|
||||||
|
"green_tint": false
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"title": "guide.antarchy.archive_folder.cavaryn",
|
||||||
|
"icon_item": "antarchy:termite_spawn_egg",
|
||||||
|
"parent": "antarchy:antlas",
|
||||||
|
"sort_order": 20,
|
||||||
|
"green_tint": false
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"title": "guide.antarchy.archive_folder.elythia",
|
||||||
|
"icon_item": "antarchy:brown_ant_spawn_egg",
|
||||||
|
"parent": "antarchy:antlas",
|
||||||
|
"sort_order": 10,
|
||||||
|
"green_tint": false
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"title": "guide.antarchy.archive_folder.thoraxis",
|
||||||
|
"icon_item": "antarchy:red_ant_spawn_egg",
|
||||||
|
"parent": "antarchy:antlas",
|
||||||
|
"sort_order": 30,
|
||||||
|
"green_tint": false
|
||||||
|
}
|
||||||
@@ -1,6 +1,8 @@
|
|||||||
{
|
{
|
||||||
"type": "article",
|
"type": "article",
|
||||||
"category": "thoraxis",
|
"category": "thoraxis",
|
||||||
|
"folder": "antarchy:thoraxis",
|
||||||
|
"sort_order": 20,
|
||||||
"title": "guide.antarchy.entry.bloodglass.title",
|
"title": "guide.antarchy.entry.bloodglass.title",
|
||||||
"subtitle": "guide.antarchy.entry.bloodglass.subtitle",
|
"subtitle": "guide.antarchy.entry.bloodglass.subtitle",
|
||||||
"description": ["guide.antarchy.entry.bloodglass.description", "guide.antarchy.entry.bloodglass.description2", "guide.antarchy.entry.bloodglass.description3"],
|
"description": ["guide.antarchy.entry.bloodglass.description", "guide.antarchy.entry.bloodglass.description2", "guide.antarchy.entry.bloodglass.description3"],
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
{
|
{
|
||||||
"type": "entity",
|
"type": "entity",
|
||||||
"category": "elythia",
|
"category": "elythia",
|
||||||
|
"folder": "antarchy:elythia",
|
||||||
|
"sort_order": 0,
|
||||||
"title": "guide.antarchy.entry.brown_ant.title",
|
"title": "guide.antarchy.entry.brown_ant.title",
|
||||||
"subtitle": "guide.antarchy.entry.brown_ant.subtitle",
|
"subtitle": "guide.antarchy.entry.brown_ant.subtitle",
|
||||||
"description": ["guide.antarchy.entry.brown_ant.description", "guide.antarchy.entry.brown_ant.description2", "guide.antarchy.entry.brown_ant.description3"],
|
"description": ["guide.antarchy.entry.brown_ant.description", "guide.antarchy.entry.brown_ant.description2", "guide.antarchy.entry.brown_ant.description3"],
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
{
|
{
|
||||||
"type": "mob",
|
"type": "mob",
|
||||||
"category": "elythia",
|
"category": "elythia",
|
||||||
|
"folder": "antarchy:elythia",
|
||||||
|
"sort_order": 30,
|
||||||
"title": "guide.antarchy.entry.brutalfly.title",
|
"title": "guide.antarchy.entry.brutalfly.title",
|
||||||
"subtitle": "guide.antarchy.entry.brutalfly.subtitle",
|
"subtitle": "guide.antarchy.entry.brutalfly.subtitle",
|
||||||
"description": ["guide.antarchy.entry.brutalfly.description", "guide.antarchy.entry.brutalfly.description2", "guide.antarchy.entry.brutalfly.description3", "guide.antarchy.entry.brutalfly.description4"],
|
"description": ["guide.antarchy.entry.brutalfly.description", "guide.antarchy.entry.brutalfly.description2", "guide.antarchy.entry.brutalfly.description3", "guide.antarchy.entry.brutalfly.description4"],
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
{
|
{
|
||||||
"type": "article",
|
"type": "article",
|
||||||
"category": "general",
|
"category": "general",
|
||||||
|
"folder": "antarchy:antlas",
|
||||||
|
"sort_order": 40,
|
||||||
"title": "guide.antarchy.entry.duplicator_tree.title",
|
"title": "guide.antarchy.entry.duplicator_tree.title",
|
||||||
"subtitle": "guide.antarchy.entry.duplicator_tree.subtitle",
|
"subtitle": "guide.antarchy.entry.duplicator_tree.subtitle",
|
||||||
"description": ["guide.antarchy.entry.duplicator_tree.description", "guide.antarchy.entry.duplicator_tree.description2"],
|
"description": ["guide.antarchy.entry.duplicator_tree.description", "guide.antarchy.entry.duplicator_tree.description2"],
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
{
|
{
|
||||||
"type": "entity",
|
"type": "entity",
|
||||||
"category": "general",
|
"category": "general",
|
||||||
|
"folder": "antarchy:antlas",
|
||||||
|
"sort_order": 30,
|
||||||
"title": "guide.antarchy.entry.easter_bunny.title",
|
"title": "guide.antarchy.entry.easter_bunny.title",
|
||||||
"subtitle": "guide.antarchy.entry.easter_bunny.subtitle",
|
"subtitle": "guide.antarchy.entry.easter_bunny.subtitle",
|
||||||
"description": ["guide.antarchy.entry.easter_bunny.description", "guide.antarchy.entry.easter_bunny.description2"],
|
"description": ["guide.antarchy.entry.easter_bunny.description", "guide.antarchy.entry.easter_bunny.description2"],
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
{
|
{
|
||||||
"type": "mob",
|
"type": "mob",
|
||||||
"category": "elythia",
|
"category": "elythia",
|
||||||
|
"folder": "antarchy:elythia",
|
||||||
|
"sort_order": 10,
|
||||||
"title": "guide.antarchy.entry.flying_squirrel.title",
|
"title": "guide.antarchy.entry.flying_squirrel.title",
|
||||||
"subtitle": "guide.antarchy.entry.flying_squirrel.subtitle",
|
"subtitle": "guide.antarchy.entry.flying_squirrel.subtitle",
|
||||||
"description": ["guide.antarchy.entry.flying_squirrel.description", "guide.antarchy.entry.flying_squirrel.description2", "guide.antarchy.entry.flying_squirrel.description3", "guide.antarchy.entry.flying_squirrel.description4"],
|
"description": ["guide.antarchy.entry.flying_squirrel.description", "guide.antarchy.entry.flying_squirrel.description2", "guide.antarchy.entry.flying_squirrel.description3", "guide.antarchy.entry.flying_squirrel.description4"],
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
{
|
{
|
||||||
"type": "mob",
|
"type": "mob",
|
||||||
"category": "elythia",
|
"category": "elythia",
|
||||||
|
"folder": "antarchy:elythia",
|
||||||
|
"sort_order": 20,
|
||||||
"title": "guide.antarchy.entry.glimmer.title",
|
"title": "guide.antarchy.entry.glimmer.title",
|
||||||
"subtitle": "guide.antarchy.entry.glimmer.subtitle",
|
"subtitle": "guide.antarchy.entry.glimmer.subtitle",
|
||||||
"description": ["guide.antarchy.entry.glimmer.description", "guide.antarchy.entry.glimmer.description2", "guide.antarchy.entry.glimmer.description3", "guide.antarchy.entry.glimmer.description4", "guide.antarchy.entry.glimmer.description5", "guide.antarchy.entry.glimmer.description6", "guide.antarchy.entry.glimmer.description7"],
|
"description": ["guide.antarchy.entry.glimmer.description", "guide.antarchy.entry.glimmer.description2", "guide.antarchy.entry.glimmer.description3", "guide.antarchy.entry.glimmer.description4", "guide.antarchy.entry.glimmer.description5", "guide.antarchy.entry.glimmer.description6", "guide.antarchy.entry.glimmer.description7"],
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
{
|
{
|
||||||
"type": "mob",
|
"type": "mob",
|
||||||
"category": "cavaryn",
|
"category": "cavaryn",
|
||||||
|
"folder": "antarchy:cavaryn",
|
||||||
|
"sort_order": 10,
|
||||||
"title": "guide.antarchy.entry.hercules_beetle.title",
|
"title": "guide.antarchy.entry.hercules_beetle.title",
|
||||||
"subtitle": "guide.antarchy.entry.hercules_beetle.subtitle",
|
"subtitle": "guide.antarchy.entry.hercules_beetle.subtitle",
|
||||||
"description": ["guide.antarchy.entry.hercules_beetle.description", "guide.antarchy.entry.hercules_beetle.description2", "guide.antarchy.entry.hercules_beetle.description3"],
|
"description": ["guide.antarchy.entry.hercules_beetle.description", "guide.antarchy.entry.hercules_beetle.description2", "guide.antarchy.entry.hercules_beetle.description3"],
|
||||||
|
|||||||
+2
@@ -1,6 +1,8 @@
|
|||||||
{
|
{
|
||||||
"type": "article",
|
"type": "article",
|
||||||
"category": "general",
|
"category": "general",
|
||||||
|
"folder": "antarchy:antlas",
|
||||||
|
"sort_order": 20,
|
||||||
"title": "guide.antarchy.entry.high_fructose_corn_syrup.title",
|
"title": "guide.antarchy.entry.high_fructose_corn_syrup.title",
|
||||||
"subtitle": "guide.antarchy.entry.high_fructose_corn_syrup.subtitle",
|
"subtitle": "guide.antarchy.entry.high_fructose_corn_syrup.subtitle",
|
||||||
"description": ["guide.antarchy.entry.high_fructose_corn_syrup.description", "guide.antarchy.entry.high_fructose_corn_syrup.description2", "guide.antarchy.entry.high_fructose_corn_syrup.description3"],
|
"description": ["guide.antarchy.entry.high_fructose_corn_syrup.description", "guide.antarchy.entry.high_fructose_corn_syrup.description2", "guide.antarchy.entry.high_fructose_corn_syrup.description3"],
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
{
|
{
|
||||||
"type": "entity",
|
"type": "entity",
|
||||||
"category": "elythia",
|
"category": "elythia",
|
||||||
|
"folder": "antarchy:elythia",
|
||||||
|
"sort_order": 50,
|
||||||
"title": "guide.antarchy.entry.king.title",
|
"title": "guide.antarchy.entry.king.title",
|
||||||
"subtitle": "guide.antarchy.entry.king.subtitle",
|
"subtitle": "guide.antarchy.entry.king.subtitle",
|
||||||
"description": [
|
"description": [
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
{
|
{
|
||||||
"type": "entity",
|
"type": "entity",
|
||||||
"category": "general",
|
"category": "general",
|
||||||
|
"folder": "antarchy:antlas",
|
||||||
|
"sort_order": 10,
|
||||||
"title": "guide.antarchy.entry.kraken.title",
|
"title": "guide.antarchy.entry.kraken.title",
|
||||||
"subtitle": "guide.antarchy.entry.kraken.subtitle",
|
"subtitle": "guide.antarchy.entry.kraken.subtitle",
|
||||||
"description": [
|
"description": [
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
{
|
{
|
||||||
"type": "mob",
|
"type": "mob",
|
||||||
"category": "thoraxis",
|
"category": "thoraxis",
|
||||||
|
"folder": "antarchy:thoraxis",
|
||||||
|
"sort_order": 10,
|
||||||
"title": "guide.antarchy.entry.nightmare.title",
|
"title": "guide.antarchy.entry.nightmare.title",
|
||||||
"subtitle": "guide.antarchy.entry.nightmare.subtitle",
|
"subtitle": "guide.antarchy.entry.nightmare.subtitle",
|
||||||
"description": ["guide.antarchy.entry.nightmare.description", "guide.antarchy.entry.nightmare.description2", "guide.antarchy.entry.nightmare.description3"],
|
"description": ["guide.antarchy.entry.nightmare.description", "guide.antarchy.entry.nightmare.description2", "guide.antarchy.entry.nightmare.description3"],
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
{
|
{
|
||||||
"type": "entity",
|
"type": "entity",
|
||||||
"category": "elythia",
|
"category": "elythia",
|
||||||
|
"folder": "antarchy:elythia",
|
||||||
|
"sort_order": 40,
|
||||||
"title": "guide.antarchy.entry.prince.title",
|
"title": "guide.antarchy.entry.prince.title",
|
||||||
"subtitle": "guide.antarchy.entry.prince.subtitle",
|
"subtitle": "guide.antarchy.entry.prince.subtitle",
|
||||||
"description": ["guide.antarchy.entry.prince.description", "guide.antarchy.entry.prince.description2"],
|
"description": ["guide.antarchy.entry.prince.description", "guide.antarchy.entry.prince.description2"],
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
{
|
{
|
||||||
"type": "entity",
|
"type": "entity",
|
||||||
"category": "thoraxis",
|
"category": "thoraxis",
|
||||||
|
"folder": "antarchy:thoraxis",
|
||||||
|
"sort_order": 50,
|
||||||
"title": "guide.antarchy.entry.princess.title",
|
"title": "guide.antarchy.entry.princess.title",
|
||||||
"subtitle": "guide.antarchy.entry.princess.subtitle",
|
"subtitle": "guide.antarchy.entry.princess.subtitle",
|
||||||
"description": ["guide.antarchy.entry.princess.description", "guide.antarchy.entry.princess.description2"],
|
"description": ["guide.antarchy.entry.princess.description", "guide.antarchy.entry.princess.description2"],
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
{
|
{
|
||||||
"type": "entity",
|
"type": "entity",
|
||||||
"category": "thoraxis",
|
"category": "thoraxis",
|
||||||
|
"folder": "antarchy:thoraxis",
|
||||||
|
"sort_order": 60,
|
||||||
"title": "guide.antarchy.entry.queen.title",
|
"title": "guide.antarchy.entry.queen.title",
|
||||||
"subtitle": "guide.antarchy.entry.queen.subtitle",
|
"subtitle": "guide.antarchy.entry.queen.subtitle",
|
||||||
"description": [
|
"description": [
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
{
|
{
|
||||||
"type": "entity",
|
"type": "entity",
|
||||||
"category": "general",
|
"category": "general",
|
||||||
|
"folder": "antarchy:antlas",
|
||||||
|
"sort_order": 0,
|
||||||
"title": "guide.antarchy.entry.rainbow_ant.title",
|
"title": "guide.antarchy.entry.rainbow_ant.title",
|
||||||
"subtitle": "guide.antarchy.entry.rainbow_ant.subtitle",
|
"subtitle": "guide.antarchy.entry.rainbow_ant.subtitle",
|
||||||
"description": [
|
"description": [
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
{
|
{
|
||||||
"type": "entity",
|
"type": "entity",
|
||||||
"category": "thoraxis",
|
"category": "thoraxis",
|
||||||
|
"folder": "antarchy:thoraxis",
|
||||||
|
"sort_order": 0,
|
||||||
"title": "guide.antarchy.entry.red_ant.title",
|
"title": "guide.antarchy.entry.red_ant.title",
|
||||||
"subtitle": "guide.antarchy.entry.red_ant.subtitle",
|
"subtitle": "guide.antarchy.entry.red_ant.subtitle",
|
||||||
"description": [
|
"description": [
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
{
|
{
|
||||||
"type": "article",
|
"type": "article",
|
||||||
"category": "thoraxis",
|
"category": "thoraxis",
|
||||||
|
"folder": "antarchy:thoraxis",
|
||||||
|
"sort_order": 30,
|
||||||
"title": "guide.antarchy.entry.temporal_fields.title",
|
"title": "guide.antarchy.entry.temporal_fields.title",
|
||||||
"subtitle": "guide.antarchy.entry.temporal_fields.subtitle",
|
"subtitle": "guide.antarchy.entry.temporal_fields.subtitle",
|
||||||
"description": ["guide.antarchy.entry.temporal_fields.description", "guide.antarchy.entry.temporal_fields.description2", "guide.antarchy.entry.temporal_fields.description3"],
|
"description": ["guide.antarchy.entry.temporal_fields.description", "guide.antarchy.entry.temporal_fields.description2", "guide.antarchy.entry.temporal_fields.description3"],
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
{
|
{
|
||||||
"type": "entity",
|
"type": "entity",
|
||||||
"category": "cavaryn",
|
"category": "cavaryn",
|
||||||
|
"folder": "antarchy:cavaryn",
|
||||||
|
"sort_order": 0,
|
||||||
"title": "guide.antarchy.entry.termite.title",
|
"title": "guide.antarchy.entry.termite.title",
|
||||||
"subtitle": "guide.antarchy.entry.termite.subtitle",
|
"subtitle": "guide.antarchy.entry.termite.subtitle",
|
||||||
"description": ["guide.antarchy.entry.termite.description", "guide.antarchy.entry.termite.description2", "guide.antarchy.entry.termite.description3", "guide.antarchy.entry.termite.description4"],
|
"description": ["guide.antarchy.entry.termite.description", "guide.antarchy.entry.termite.description2", "guide.antarchy.entry.termite.description3", "guide.antarchy.entry.termite.description4"],
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
{
|
{
|
||||||
"type": "structure",
|
"type": "structure",
|
||||||
"category": "elythia",
|
"category": "elythia",
|
||||||
|
"folder": "antarchy:elythia",
|
||||||
|
"sort_order": 60,
|
||||||
"title": "guide.antarchy.entry.toreterror.title",
|
"title": "guide.antarchy.entry.toreterror.title",
|
||||||
"subtitle": "guide.antarchy.entry.toreterror_arena.subtitle",
|
"subtitle": "guide.antarchy.entry.toreterror_arena.subtitle",
|
||||||
"description": ["guide.antarchy.entry.toreterror_arena.description", "guide.antarchy.entry.toreterror_arena.description2"],
|
"description": ["guide.antarchy.entry.toreterror_arena.description", "guide.antarchy.entry.toreterror_arena.description2"],
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
{
|
{
|
||||||
"type": "article",
|
"type": "article",
|
||||||
"category": "thoraxis",
|
"category": "thoraxis",
|
||||||
|
"folder": "antarchy:thoraxis",
|
||||||
|
"sort_order": 40,
|
||||||
"title": "guide.antarchy.entry.vortex.title",
|
"title": "guide.antarchy.entry.vortex.title",
|
||||||
"subtitle": "guide.antarchy.entry.vortex.subtitle",
|
"subtitle": "guide.antarchy.entry.vortex.subtitle",
|
||||||
"description": ["guide.antarchy.entry.vortex.description", "guide.antarchy.entry.vortex.description2", "guide.antarchy.entry.vortex.description3"],
|
"description": ["guide.antarchy.entry.vortex.description", "guide.antarchy.entry.vortex.description2", "guide.antarchy.entry.vortex.description3"],
|
||||||
|
|||||||
@@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"replace": false,
|
||||||
|
"values": [
|
||||||
|
"antarchy:king",
|
||||||
|
"antarchy:queen"
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -23,7 +23,7 @@ repositories {
|
|||||||
maven { url = 'https://www.cursemaven.com' }
|
maven { url = 'https://www.cursemaven.com' }
|
||||||
maven { url = 'https://maven.blamejared.com' }
|
maven { url = 'https://maven.blamejared.com' }
|
||||||
maven { url = 'https://jitpack.io' }
|
maven { url = 'https://jitpack.io' }
|
||||||
flatDir { dirs file('../anthology_jars'), file('../infinite_dimensions_jars'), file('../integrated_api_jars') }
|
flatDir { dirs file('libs'), file('../anthology_jars'), file('../infinite_dimensions_jars'), file('../integrated_api_jars') }
|
||||||
maven {
|
maven {
|
||||||
name = "GeckoLib"
|
name = "GeckoLib"
|
||||||
url = "https://dl.cloudsmith.io/public/geckolib3/geckolib/maven/"
|
url = "https://dl.cloudsmith.io/public/geckolib3/geckolib/maven/"
|
||||||
@@ -99,6 +99,10 @@ dependencies {
|
|||||||
|
|
||||||
implementation fg.deobf("com.craisinlord:anthology:${anthology_version}+1.20.1-forge")
|
implementation fg.deobf("com.craisinlord:anthology:${anthology_version}+1.20.1-forge")
|
||||||
|
|
||||||
|
runtimeOnly fg.deobf("local.compat:Apotheosis-1.20.1:7.4.8")
|
||||||
|
runtimeOnly fg.deobf("local.compat:Placebo-1.20.1:8.6.3")
|
||||||
|
runtimeOnly fg.deobf("local.compat:ApothicAttributes-1.20.1:1.3.7")
|
||||||
|
|
||||||
compileOnly("curse.maven:sizeable_foliage-${sizeable_foliage_curseforge_id}:${sizeable_foliage_curseforge_file_id_forge}")
|
compileOnly("curse.maven:sizeable_foliage-${sizeable_foliage_curseforge_id}:${sizeable_foliage_curseforge_file_id_forge}")
|
||||||
runtimeOnly fg.deobf("curse.maven:sizeable_foliage-${sizeable_foliage_curseforge_id}:${sizeable_foliage_curseforge_file_id_forge}")
|
runtimeOnly fg.deobf("curse.maven:sizeable_foliage-${sizeable_foliage_curseforge_id}:${sizeable_foliage_curseforge_file_id_forge}")
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ mod_name=Antarchy
|
|||||||
mod_description=ANTS! ANTS! ANTS! ANTS!
|
mod_description=ANTS! ANTS! ANTS! ANTS!
|
||||||
mod_authors=CraisinLord
|
mod_authors=CraisinLord
|
||||||
mod_group_id=com.craisinlord
|
mod_group_id=com.craisinlord
|
||||||
mod_version=1.0.4
|
mod_version=2.2.4
|
||||||
mod_license=All Rights Reserved
|
mod_license=All Rights Reserved
|
||||||
|
|
||||||
minecraft_version=1.20.1
|
minecraft_version=1.20.1
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
+2
-2
@@ -22,9 +22,9 @@ public class ConfigGenInvocationMixin {
|
|||||||
private void antarchy$safeGenerateAll(MinecraftServer server) {
|
private void antarchy$safeGenerateAll(MinecraftServer server) {
|
||||||
try {
|
try {
|
||||||
ConfigGenerator.generateAll(server);
|
ConfigGenerator.generateAll(server);
|
||||||
} catch (Exception e) {
|
} catch (Exception | LinkageError e) {
|
||||||
Antarchy.LOGGER.error(
|
Antarchy.LOGGER.error(
|
||||||
"[Antarchy] Infinite Dimensions surface rule scan crashed — likely a mod has a malformed surface rule (null 'biome_is' entry). Player login will continue.",
|
"[Antarchy] Infinite Dimensions config generation crashed — likely a mod with a malformed surface rule or a mismatched dependency. Player login will continue.",
|
||||||
e
|
e
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -6,7 +6,7 @@ org.gradle.configureondemand=true
|
|||||||
minecraft_version_1_21_1=1.21.1
|
minecraft_version_1_21_1=1.21.1
|
||||||
modid=antarchy
|
modid=antarchy
|
||||||
mod_id=antarchy
|
mod_id=antarchy
|
||||||
mod_version=2.2.2
|
mod_version=2.2.5
|
||||||
maven_group=com.craisinlord
|
maven_group=com.craisinlord
|
||||||
mixin_version=0.15.4+mixin.0.8.7
|
mixin_version=0.15.4+mixin.0.8.7
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+2
-2
@@ -22,9 +22,9 @@ public class ConfigGenInvocationMixin {
|
|||||||
private void antarchy$safeGenerateAll(MinecraftServer server) {
|
private void antarchy$safeGenerateAll(MinecraftServer server) {
|
||||||
try {
|
try {
|
||||||
ConfigGenerator.generateAll(server);
|
ConfigGenerator.generateAll(server);
|
||||||
} catch (Exception e) {
|
} catch (Exception | LinkageError e) {
|
||||||
Antarchy.LOGGER.error(
|
Antarchy.LOGGER.error(
|
||||||
"[Antarchy] Infinite Dimensions surface rule scan crashed — likely a mod has a malformed surface rule (null 'biome_is' entry). Player login will continue.",
|
"[Antarchy] Infinite Dimensions config generation crashed — likely a mod with a malformed surface rule or a mismatched dependency. Player login will continue.",
|
||||||
e
|
e
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -20,7 +20,7 @@ public interface ConfigGeneratorMixin {
|
|||||||
remap = false,
|
remap = false,
|
||||||
require = 0
|
require = 0
|
||||||
)
|
)
|
||||||
static void antarchy$skipBrokenBlockEntityFactories(
|
private static void antarchy$skipBrokenBlockEntityFactories(
|
||||||
Set<ResourceKey<BlockEntityType<?>>> entries,
|
Set<ResourceKey<BlockEntityType<?>>> entries,
|
||||||
Consumer<ResourceKey<BlockEntityType<?>>> scan) {
|
Consumer<ResourceKey<BlockEntityType<?>>> scan) {
|
||||||
InfinityBlockEntityScanGuard.forEach(entries, scan, (entry, error) ->
|
InfinityBlockEntityScanGuard.forEach(entries, scan, (entry, error) ->
|
||||||
|
|||||||
Reference in new issue
Block a user