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.portalgun.PortalGunMoonMath;
|
||||
import java.lang.ref.WeakReference;
|
||||
import java.util.function.Consumer;
|
||||
import net.minecraft.client.Camera;
|
||||
import net.minecraft.client.Minecraft;
|
||||
@@ -16,7 +17,8 @@ public final class MoonSkyTracker {
|
||||
private static final long MAX_AGE_MILLIS = 1500L;
|
||||
private static final double AIM_COSINE = Math.cos(Math.toRadians(PortalGunMoonMath.AIM_TOLERANCE_DEGREES));
|
||||
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 Consumer<PortalGunMoonAimPayload> sender = payload -> {};
|
||||
|
||||
@@ -35,7 +37,7 @@ public final class MoonSkyTracker {
|
||||
}
|
||||
Vector3f world = camera.rotation().transform(view.normalize());
|
||||
direction = new Vec3(world.x, world.y, world.z).normalize();
|
||||
level = renderedLevel;
|
||||
level = new WeakReference<>(renderedLevel);
|
||||
recordedAt = System.currentTimeMillis();
|
||||
}
|
||||
|
||||
@@ -44,7 +46,7 @@ public final class MoonSkyTracker {
|
||||
if (minecraft.player == null) {
|
||||
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(
|
||||
new Vector3f((float) direction.x, (float) direction.y, (float) direction.z)) >= AIM_COSINE;
|
||||
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.portalgun.PortalGunPortalEntity;
|
||||
import com.mojang.blaze3d.systems.RenderSystem;
|
||||
import java.lang.ref.WeakReference;
|
||||
import java.util.EnumSet;
|
||||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
@@ -19,7 +20,8 @@ public final class PortalGunCrosshairRenderer {
|
||||
private static final int HALF_WIDTH = 17;
|
||||
private static final float MISSING_BRIGHTNESS = 0.3F;
|
||||
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 UUID cachedGunId;
|
||||
private static Set<PortalGunPortalEntity.PortalSide> cachedPortals = Set.of();
|
||||
@@ -77,14 +79,14 @@ public final class PortalGunCrosshairRenderer {
|
||||
}
|
||||
ClientLevel level = minecraft.level;
|
||||
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);
|
||||
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())) {
|
||||
portals.add(portal.getPortalSide());
|
||||
}
|
||||
}
|
||||
cachedLevel = level;
|
||||
cachedLevel = new WeakReference<>(level);
|
||||
cachedGameTime = gameTime;
|
||||
cachedGunId = gunId;
|
||||
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.PortalGunIndicatorRequestPayload;
|
||||
import java.lang.ref.WeakReference;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.UUID;
|
||||
@@ -11,7 +12,8 @@ import net.minecraft.client.multiplayer.ClientLevel;
|
||||
|
||||
public final class PortalGunIndicatorClientState {
|
||||
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 UUID lastRequestedGun;
|
||||
private static Consumer<PortalGunIndicatorRequestPayload> requestSender = payload -> {};
|
||||
@@ -28,8 +30,8 @@ public final class PortalGunIndicatorClientState {
|
||||
if (currentLevel == null || gunId == null || minecraft.player == null) {
|
||||
return;
|
||||
}
|
||||
if (level != currentLevel) {
|
||||
level = currentLevel;
|
||||
if (level.get() != currentLevel) {
|
||||
level = new WeakReference<>(currentLevel);
|
||||
STATES.clear();
|
||||
lastRequestedGun = null;
|
||||
lastRequestTick = Long.MIN_VALUE;
|
||||
@@ -52,7 +54,7 @@ public final class PortalGunIndicatorClientState {
|
||||
|
||||
public static void clear() {
|
||||
STATES.clear();
|
||||
level = null;
|
||||
level = new WeakReference<>(null);
|
||||
lastRequestedGun = null;
|
||||
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 int RESET_DELAY_TICKS = 300;
|
||||
private static final double HOME_RETURN_SPEED = 1.05D;
|
||||
private static final int HOME_REPATH_INTERVAL_TICKS = 20;
|
||||
|
||||
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);
|
||||
@@ -53,6 +54,7 @@ public class AlphaMantisEntity extends MantisEntity {
|
||||
private int summonCooldownTicks;
|
||||
private int phaseTransitionTicks;
|
||||
private int disengageTicks;
|
||||
private int homeRepathCooldown;
|
||||
private boolean halfHealthTransitionComplete;
|
||||
@Nullable
|
||||
private BlockPos encounterHome;
|
||||
@@ -385,6 +387,7 @@ public class AlphaMantisEntity extends MantisEntity {
|
||||
|
||||
if (target != null) {
|
||||
this.disengageTicks = 0;
|
||||
this.homeRepathCooldown = 0;
|
||||
if (this.isOutsideLeashRadius()) {
|
||||
this.resetEncounter(true);
|
||||
}
|
||||
@@ -447,6 +450,11 @@ public class AlphaMantisEntity extends MantisEntity {
|
||||
return;
|
||||
}
|
||||
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) {
|
||||
this.moveTo(homeCenter.x, this.encounterHome.getY(), homeCenter.z, this.getYRot(), this.getXRot());
|
||||
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 int RESET_DELAY_TICKS = 240;
|
||||
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 ResourceKey<Level> THORAXIS_KEY =
|
||||
@@ -137,6 +138,7 @@ public class EmperorScorpionEntity extends Monster implements GeoEntity {
|
||||
private int hardenHealTicks;
|
||||
private int hardenSummonedScorpions;
|
||||
private int disengageTicks;
|
||||
private int homeRepathCooldown;
|
||||
private boolean attackDamageApplied;
|
||||
private AttackType currentAttack = AttackType.NONE;
|
||||
private HardenPhase hardenPhase = HardenPhase.NONE;
|
||||
@@ -798,6 +800,7 @@ public class EmperorScorpionEntity extends Monster implements GeoEntity {
|
||||
|
||||
if (target != null) {
|
||||
this.disengageTicks = 0;
|
||||
this.homeRepathCooldown = 0;
|
||||
if (this.isOutsideLeashRadius()) {
|
||||
this.resetEncounter(true);
|
||||
}
|
||||
@@ -870,6 +873,11 @@ public class EmperorScorpionEntity extends Monster implements GeoEntity {
|
||||
return;
|
||||
}
|
||||
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) {
|
||||
this.moveTo(homeCenter.x, homeCenter.y, homeCenter.z, this.getYRot(), this.getXRot());
|
||||
this.setDeltaMovement(Vec3.ZERO);
|
||||
|
||||
@@ -25,6 +25,9 @@ public final class AntarchyMixinPlugin implements IMixinConfigPlugin {
|
||||
if (!classPresent(targetClassName)) {
|
||||
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.")) {
|
||||
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_verdance.desc": "Hewo - Verdance",
|
||||
"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",
|
||||
"category": "thoraxis",
|
||||
"folder": "antarchy:thoraxis",
|
||||
"sort_order": 20,
|
||||
"title": "guide.antarchy.entry.bloodglass.title",
|
||||
"subtitle": "guide.antarchy.entry.bloodglass.subtitle",
|
||||
"description": [
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
{
|
||||
"type": "entity",
|
||||
"category": "elythia",
|
||||
"folder": "antarchy:elythia",
|
||||
"sort_order": 0,
|
||||
"title": "guide.antarchy.entry.brown_ant.title",
|
||||
"subtitle": "guide.antarchy.entry.brown_ant.subtitle",
|
||||
"description": [
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
{
|
||||
"type": "mob",
|
||||
"category": "elythia",
|
||||
"folder": "antarchy:elythia",
|
||||
"sort_order": 30,
|
||||
"title": "guide.antarchy.entry.brutalfly.title",
|
||||
"subtitle": "guide.antarchy.entry.brutalfly.subtitle",
|
||||
"description": [
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
{
|
||||
"type": "article",
|
||||
"category": "general",
|
||||
"folder": "antarchy:antlas",
|
||||
"sort_order": 40,
|
||||
"title": "guide.antarchy.entry.duplicator_tree.title",
|
||||
"subtitle": "guide.antarchy.entry.duplicator_tree.subtitle",
|
||||
"description": [
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
{
|
||||
"type": "entity",
|
||||
"category": "general",
|
||||
"folder": "antarchy:antlas",
|
||||
"sort_order": 30,
|
||||
"title": "guide.antarchy.entry.easter_bunny.title",
|
||||
"subtitle": "guide.antarchy.entry.easter_bunny.subtitle",
|
||||
"description": [
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
{
|
||||
"type": "mob",
|
||||
"category": "elythia",
|
||||
"folder": "antarchy:elythia",
|
||||
"sort_order": 10,
|
||||
"title": "guide.antarchy.entry.flying_squirrel.title",
|
||||
"subtitle": "guide.antarchy.entry.flying_squirrel.subtitle",
|
||||
"description": [
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
{
|
||||
"type": "mob",
|
||||
"category": "elythia",
|
||||
"folder": "antarchy:elythia",
|
||||
"sort_order": 20,
|
||||
"title": "guide.antarchy.entry.glimmer.title",
|
||||
"subtitle": "guide.antarchy.entry.glimmer.subtitle",
|
||||
"description": [
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
{
|
||||
"type": "mob",
|
||||
"category": "cavaryn",
|
||||
"folder": "antarchy:cavaryn",
|
||||
"sort_order": 10,
|
||||
"title": "guide.antarchy.entry.hercules_beetle.title",
|
||||
"subtitle": "guide.antarchy.entry.hercules_beetle.subtitle",
|
||||
"description": [
|
||||
|
||||
+2
@@ -1,6 +1,8 @@
|
||||
{
|
||||
"type": "article",
|
||||
"category": "general",
|
||||
"folder": "antarchy:antlas",
|
||||
"sort_order": 20,
|
||||
"title": "guide.antarchy.entry.high_fructose_corn_syrup.title",
|
||||
"subtitle": "guide.antarchy.entry.high_fructose_corn_syrup.subtitle",
|
||||
"description": [
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
{
|
||||
"type": "entity",
|
||||
"category": "elythia",
|
||||
"folder": "antarchy:elythia",
|
||||
"sort_order": 50,
|
||||
"title": "guide.antarchy.entry.king.title",
|
||||
"subtitle": "guide.antarchy.entry.king.subtitle",
|
||||
"description": [
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
{
|
||||
"type": "entity",
|
||||
"category": "general",
|
||||
"folder": "antarchy:antlas",
|
||||
"sort_order": 10,
|
||||
"title": "guide.antarchy.entry.kraken.title",
|
||||
"subtitle": "guide.antarchy.entry.kraken.subtitle",
|
||||
"description": [
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
{
|
||||
"type": "mob",
|
||||
"category": "thoraxis",
|
||||
"folder": "antarchy:thoraxis",
|
||||
"sort_order": 10,
|
||||
"title": "guide.antarchy.entry.nightmare.title",
|
||||
"subtitle": "guide.antarchy.entry.nightmare.subtitle",
|
||||
"description": [
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
{
|
||||
"type": "entity",
|
||||
"category": "elythia",
|
||||
"folder": "antarchy:elythia",
|
||||
"sort_order": 40,
|
||||
"title": "guide.antarchy.entry.prince.title",
|
||||
"subtitle": "guide.antarchy.entry.prince.subtitle",
|
||||
"description": [
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
{
|
||||
"type": "entity",
|
||||
"category": "thoraxis",
|
||||
"folder": "antarchy:thoraxis",
|
||||
"sort_order": 50,
|
||||
"title": "guide.antarchy.entry.princess.title",
|
||||
"subtitle": "guide.antarchy.entry.princess.subtitle",
|
||||
"description": [
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
{
|
||||
"type": "entity",
|
||||
"category": "thoraxis",
|
||||
"folder": "antarchy:thoraxis",
|
||||
"sort_order": 60,
|
||||
"title": "guide.antarchy.entry.queen.title",
|
||||
"subtitle": "guide.antarchy.entry.queen.subtitle",
|
||||
"description": [
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
{
|
||||
"type": "entity",
|
||||
"category": "general",
|
||||
"folder": "antarchy:antlas",
|
||||
"sort_order": 0,
|
||||
"title": "guide.antarchy.entry.rainbow_ant.title",
|
||||
"subtitle": "guide.antarchy.entry.rainbow_ant.subtitle",
|
||||
"description": [
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
{
|
||||
"type": "entity",
|
||||
"category": "thoraxis",
|
||||
"folder": "antarchy:thoraxis",
|
||||
"sort_order": 0,
|
||||
"title": "guide.antarchy.entry.red_ant.title",
|
||||
"subtitle": "guide.antarchy.entry.red_ant.subtitle",
|
||||
"description": [
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
{
|
||||
"type": "article",
|
||||
"category": "thoraxis",
|
||||
"folder": "antarchy:thoraxis",
|
||||
"sort_order": 30,
|
||||
"title": "guide.antarchy.entry.temporal_fields.title",
|
||||
"subtitle": "guide.antarchy.entry.temporal_fields.subtitle",
|
||||
"description": [
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
{
|
||||
"type": "entity",
|
||||
"category": "cavaryn",
|
||||
"folder": "antarchy:cavaryn",
|
||||
"sort_order": 0,
|
||||
"title": "guide.antarchy.entry.termite.title",
|
||||
"subtitle": "guide.antarchy.entry.termite.subtitle",
|
||||
"description": [
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
{
|
||||
"type": "structure",
|
||||
"category": "elythia",
|
||||
"folder": "antarchy:elythia",
|
||||
"sort_order": 60,
|
||||
"title": "guide.antarchy.entry.toreterror.title",
|
||||
"subtitle": "guide.antarchy.entry.toreterror_arena.subtitle",
|
||||
"description": [
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
{
|
||||
"type": "article",
|
||||
"category": "thoraxis",
|
||||
"folder": "antarchy:thoraxis",
|
||||
"sort_order": 40,
|
||||
"title": "guide.antarchy.entry.vortex.title",
|
||||
"subtitle": "guide.antarchy.entry.vortex.subtitle",
|
||||
"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.portalgun.PortalGunMoonMath;
|
||||
import java.lang.ref.WeakReference;
|
||||
import java.util.function.Consumer;
|
||||
import net.minecraft.client.Camera;
|
||||
import net.minecraft.client.Minecraft;
|
||||
@@ -16,7 +17,8 @@ public final class MoonSkyTracker {
|
||||
private static final long MAX_AGE_MILLIS = 1500L;
|
||||
private static final double AIM_COSINE = Math.cos(Math.toRadians(PortalGunMoonMath.AIM_TOLERANCE_DEGREES));
|
||||
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 Consumer<PortalGunMoonAimPayload> sender = payload -> {};
|
||||
|
||||
@@ -35,7 +37,7 @@ public final class MoonSkyTracker {
|
||||
}
|
||||
Vector3f world = camera.rotation().transform(view.normalize());
|
||||
direction = new Vec3(world.x, world.y, world.z).normalize();
|
||||
level = renderedLevel;
|
||||
level = new WeakReference<>(renderedLevel);
|
||||
recordedAt = System.currentTimeMillis();
|
||||
}
|
||||
|
||||
@@ -44,7 +46,7 @@ public final class MoonSkyTracker {
|
||||
if (minecraft.player == null) {
|
||||
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(
|
||||
new Vector3f((float) direction.x, (float) direction.y, (float) direction.z)) >= AIM_COSINE;
|
||||
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.portalgun.PortalGunPortalEntity;
|
||||
import com.mojang.blaze3d.systems.RenderSystem;
|
||||
import java.lang.ref.WeakReference;
|
||||
import java.util.EnumSet;
|
||||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
@@ -19,7 +20,8 @@ public final class PortalGunCrosshairRenderer {
|
||||
private static final int HALF_WIDTH = 17;
|
||||
private static final float MISSING_BRIGHTNESS = 0.3F;
|
||||
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 UUID cachedGunId;
|
||||
private static Set<PortalGunPortalEntity.PortalSide> cachedPortals = Set.of();
|
||||
@@ -77,14 +79,14 @@ public final class PortalGunCrosshairRenderer {
|
||||
}
|
||||
ClientLevel level = minecraft.level;
|
||||
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);
|
||||
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())) {
|
||||
portals.add(portal.getPortalSide());
|
||||
}
|
||||
}
|
||||
cachedLevel = level;
|
||||
cachedLevel = new WeakReference<>(level);
|
||||
cachedGameTime = gameTime;
|
||||
cachedGunId = gunId;
|
||||
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.PortalGunIndicatorRequestPayload;
|
||||
import java.lang.ref.WeakReference;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.UUID;
|
||||
@@ -11,7 +12,8 @@ import net.minecraft.client.multiplayer.ClientLevel;
|
||||
|
||||
public final class PortalGunIndicatorClientState {
|
||||
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 UUID lastRequestedGun;
|
||||
private static Consumer<PortalGunIndicatorRequestPayload> requestSender = payload -> {};
|
||||
@@ -28,8 +30,8 @@ public final class PortalGunIndicatorClientState {
|
||||
if (currentLevel == null || gunId == null || minecraft.player == null) {
|
||||
return;
|
||||
}
|
||||
if (level != currentLevel) {
|
||||
level = currentLevel;
|
||||
if (level.get() != currentLevel) {
|
||||
level = new WeakReference<>(currentLevel);
|
||||
STATES.clear();
|
||||
lastRequestedGun = null;
|
||||
lastRequestTick = Long.MIN_VALUE;
|
||||
@@ -52,7 +54,7 @@ public final class PortalGunIndicatorClientState {
|
||||
|
||||
public static void clear() {
|
||||
STATES.clear();
|
||||
level = null;
|
||||
level = new WeakReference<>(null);
|
||||
lastRequestedGun = null;
|
||||
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 int RESET_DELAY_TICKS = 300;
|
||||
private static final double HOME_RETURN_SPEED = 1.05D;
|
||||
private static final int HOME_REPATH_INTERVAL_TICKS = 20;
|
||||
|
||||
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);
|
||||
@@ -53,6 +54,7 @@ public class AlphaMantisEntity extends MantisEntity {
|
||||
private int summonCooldownTicks;
|
||||
private int phaseTransitionTicks;
|
||||
private int disengageTicks;
|
||||
private int homeRepathCooldown;
|
||||
private boolean halfHealthTransitionComplete;
|
||||
@Nullable
|
||||
private BlockPos encounterHome;
|
||||
@@ -386,6 +388,7 @@ public class AlphaMantisEntity extends MantisEntity {
|
||||
|
||||
if (target != null) {
|
||||
this.disengageTicks = 0;
|
||||
this.homeRepathCooldown = 0;
|
||||
if (this.isOutsideLeashRadius()) {
|
||||
this.resetEncounter(true);
|
||||
}
|
||||
@@ -448,6 +451,11 @@ public class AlphaMantisEntity extends MantisEntity {
|
||||
return;
|
||||
}
|
||||
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) {
|
||||
this.moveTo(homeCenter.x, this.encounterHome.getY(), homeCenter.z, this.getYRot(), this.getXRot());
|
||||
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 int RESET_DELAY_TICKS = 240;
|
||||
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 ResourceKey<Level> THORAXIS_KEY =
|
||||
@@ -137,6 +138,7 @@ public class EmperorScorpionEntity extends Monster implements GeoEntity {
|
||||
private int hardenHealTicks;
|
||||
private int hardenSummonedScorpions;
|
||||
private int disengageTicks;
|
||||
private int homeRepathCooldown;
|
||||
private boolean attackDamageApplied;
|
||||
private AttackType currentAttack = AttackType.NONE;
|
||||
private HardenPhase hardenPhase = HardenPhase.NONE;
|
||||
@@ -797,6 +799,7 @@ public class EmperorScorpionEntity extends Monster implements GeoEntity {
|
||||
|
||||
if (target != null) {
|
||||
this.disengageTicks = 0;
|
||||
this.homeRepathCooldown = 0;
|
||||
if (this.isOutsideLeashRadius()) {
|
||||
this.resetEncounter(true);
|
||||
}
|
||||
@@ -869,6 +872,11 @@ public class EmperorScorpionEntity extends Monster implements GeoEntity {
|
||||
return;
|
||||
}
|
||||
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) {
|
||||
this.moveTo(homeCenter.x, homeCenter.y, homeCenter.z, this.getYRot(), this.getXRot());
|
||||
this.setDeltaMovement(Vec3.ZERO);
|
||||
|
||||
+1
-1
@@ -43,7 +43,7 @@ import net.minecraft.tags.TagKey;
|
||||
|
||||
public class CritterCageItem extends Item {
|
||||
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 FILLED_PLAIN_STATE = 1;
|
||||
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.glimmer_keeper.title": "Glimmer Keeper",
|
||||
"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",
|
||||
"category": "thoraxis",
|
||||
"folder": "antarchy:thoraxis",
|
||||
"sort_order": 20,
|
||||
"title": "guide.antarchy.entry.bloodglass.title",
|
||||
"subtitle": "guide.antarchy.entry.bloodglass.subtitle",
|
||||
"description": ["guide.antarchy.entry.bloodglass.description", "guide.antarchy.entry.bloodglass.description2", "guide.antarchy.entry.bloodglass.description3"],
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
{
|
||||
"type": "entity",
|
||||
"category": "elythia",
|
||||
"folder": "antarchy:elythia",
|
||||
"sort_order": 0,
|
||||
"title": "guide.antarchy.entry.brown_ant.title",
|
||||
"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"],
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
{
|
||||
"type": "mob",
|
||||
"category": "elythia",
|
||||
"folder": "antarchy:elythia",
|
||||
"sort_order": 30,
|
||||
"title": "guide.antarchy.entry.brutalfly.title",
|
||||
"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"],
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
{
|
||||
"type": "article",
|
||||
"category": "general",
|
||||
"folder": "antarchy:antlas",
|
||||
"sort_order": 40,
|
||||
"title": "guide.antarchy.entry.duplicator_tree.title",
|
||||
"subtitle": "guide.antarchy.entry.duplicator_tree.subtitle",
|
||||
"description": ["guide.antarchy.entry.duplicator_tree.description", "guide.antarchy.entry.duplicator_tree.description2"],
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
{
|
||||
"type": "entity",
|
||||
"category": "general",
|
||||
"folder": "antarchy:antlas",
|
||||
"sort_order": 30,
|
||||
"title": "guide.antarchy.entry.easter_bunny.title",
|
||||
"subtitle": "guide.antarchy.entry.easter_bunny.subtitle",
|
||||
"description": ["guide.antarchy.entry.easter_bunny.description", "guide.antarchy.entry.easter_bunny.description2"],
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
{
|
||||
"type": "mob",
|
||||
"category": "elythia",
|
||||
"folder": "antarchy:elythia",
|
||||
"sort_order": 10,
|
||||
"title": "guide.antarchy.entry.flying_squirrel.title",
|
||||
"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"],
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
{
|
||||
"type": "mob",
|
||||
"category": "elythia",
|
||||
"folder": "antarchy:elythia",
|
||||
"sort_order": 20,
|
||||
"title": "guide.antarchy.entry.glimmer.title",
|
||||
"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"],
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
{
|
||||
"type": "mob",
|
||||
"category": "cavaryn",
|
||||
"folder": "antarchy:cavaryn",
|
||||
"sort_order": 10,
|
||||
"title": "guide.antarchy.entry.hercules_beetle.title",
|
||||
"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"],
|
||||
|
||||
+2
@@ -1,6 +1,8 @@
|
||||
{
|
||||
"type": "article",
|
||||
"category": "general",
|
||||
"folder": "antarchy:antlas",
|
||||
"sort_order": 20,
|
||||
"title": "guide.antarchy.entry.high_fructose_corn_syrup.title",
|
||||
"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"],
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
{
|
||||
"type": "entity",
|
||||
"category": "elythia",
|
||||
"folder": "antarchy:elythia",
|
||||
"sort_order": 50,
|
||||
"title": "guide.antarchy.entry.king.title",
|
||||
"subtitle": "guide.antarchy.entry.king.subtitle",
|
||||
"description": [
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
{
|
||||
"type": "entity",
|
||||
"category": "general",
|
||||
"folder": "antarchy:antlas",
|
||||
"sort_order": 10,
|
||||
"title": "guide.antarchy.entry.kraken.title",
|
||||
"subtitle": "guide.antarchy.entry.kraken.subtitle",
|
||||
"description": [
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
{
|
||||
"type": "mob",
|
||||
"category": "thoraxis",
|
||||
"folder": "antarchy:thoraxis",
|
||||
"sort_order": 10,
|
||||
"title": "guide.antarchy.entry.nightmare.title",
|
||||
"subtitle": "guide.antarchy.entry.nightmare.subtitle",
|
||||
"description": ["guide.antarchy.entry.nightmare.description", "guide.antarchy.entry.nightmare.description2", "guide.antarchy.entry.nightmare.description3"],
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
{
|
||||
"type": "entity",
|
||||
"category": "elythia",
|
||||
"folder": "antarchy:elythia",
|
||||
"sort_order": 40,
|
||||
"title": "guide.antarchy.entry.prince.title",
|
||||
"subtitle": "guide.antarchy.entry.prince.subtitle",
|
||||
"description": ["guide.antarchy.entry.prince.description", "guide.antarchy.entry.prince.description2"],
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
{
|
||||
"type": "entity",
|
||||
"category": "thoraxis",
|
||||
"folder": "antarchy:thoraxis",
|
||||
"sort_order": 50,
|
||||
"title": "guide.antarchy.entry.princess.title",
|
||||
"subtitle": "guide.antarchy.entry.princess.subtitle",
|
||||
"description": ["guide.antarchy.entry.princess.description", "guide.antarchy.entry.princess.description2"],
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
{
|
||||
"type": "entity",
|
||||
"category": "thoraxis",
|
||||
"folder": "antarchy:thoraxis",
|
||||
"sort_order": 60,
|
||||
"title": "guide.antarchy.entry.queen.title",
|
||||
"subtitle": "guide.antarchy.entry.queen.subtitle",
|
||||
"description": [
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
{
|
||||
"type": "entity",
|
||||
"category": "general",
|
||||
"folder": "antarchy:antlas",
|
||||
"sort_order": 0,
|
||||
"title": "guide.antarchy.entry.rainbow_ant.title",
|
||||
"subtitle": "guide.antarchy.entry.rainbow_ant.subtitle",
|
||||
"description": [
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
{
|
||||
"type": "entity",
|
||||
"category": "thoraxis",
|
||||
"folder": "antarchy:thoraxis",
|
||||
"sort_order": 0,
|
||||
"title": "guide.antarchy.entry.red_ant.title",
|
||||
"subtitle": "guide.antarchy.entry.red_ant.subtitle",
|
||||
"description": [
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
{
|
||||
"type": "article",
|
||||
"category": "thoraxis",
|
||||
"folder": "antarchy:thoraxis",
|
||||
"sort_order": 30,
|
||||
"title": "guide.antarchy.entry.temporal_fields.title",
|
||||
"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"],
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
{
|
||||
"type": "entity",
|
||||
"category": "cavaryn",
|
||||
"folder": "antarchy:cavaryn",
|
||||
"sort_order": 0,
|
||||
"title": "guide.antarchy.entry.termite.title",
|
||||
"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"],
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
{
|
||||
"type": "structure",
|
||||
"category": "elythia",
|
||||
"folder": "antarchy:elythia",
|
||||
"sort_order": 60,
|
||||
"title": "guide.antarchy.entry.toreterror.title",
|
||||
"subtitle": "guide.antarchy.entry.toreterror_arena.subtitle",
|
||||
"description": ["guide.antarchy.entry.toreterror_arena.description", "guide.antarchy.entry.toreterror_arena.description2"],
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
{
|
||||
"type": "article",
|
||||
"category": "thoraxis",
|
||||
"folder": "antarchy:thoraxis",
|
||||
"sort_order": 40,
|
||||
"title": "guide.antarchy.entry.vortex.title",
|
||||
"subtitle": "guide.antarchy.entry.vortex.subtitle",
|
||||
"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://maven.blamejared.com' }
|
||||
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 {
|
||||
name = "GeckoLib"
|
||||
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")
|
||||
|
||||
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}")
|
||||
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_authors=CraisinLord
|
||||
mod_group_id=com.craisinlord
|
||||
mod_version=1.0.4
|
||||
mod_version=2.2.4
|
||||
mod_license=All Rights Reserved
|
||||
|
||||
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) {
|
||||
try {
|
||||
ConfigGenerator.generateAll(server);
|
||||
} catch (Exception e) {
|
||||
} catch (Exception | LinkageError e) {
|
||||
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
|
||||
);
|
||||
}
|
||||
|
||||
+1
-1
@@ -6,7 +6,7 @@ org.gradle.configureondemand=true
|
||||
minecraft_version_1_21_1=1.21.1
|
||||
modid=antarchy
|
||||
mod_id=antarchy
|
||||
mod_version=2.2.2
|
||||
mod_version=2.2.5
|
||||
maven_group=com.craisinlord
|
||||
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) {
|
||||
try {
|
||||
ConfigGenerator.generateAll(server);
|
||||
} catch (Exception e) {
|
||||
} catch (Exception | LinkageError e) {
|
||||
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
|
||||
);
|
||||
}
|
||||
|
||||
+1
-1
@@ -20,7 +20,7 @@ public interface ConfigGeneratorMixin {
|
||||
remap = false,
|
||||
require = 0
|
||||
)
|
||||
static void antarchy$skipBrokenBlockEntityFactories(
|
||||
private static void antarchy$skipBrokenBlockEntityFactories(
|
||||
Set<ResourceKey<BlockEntityType<?>>> entries,
|
||||
Consumer<ResourceKey<BlockEntityType<?>>> scan) {
|
||||
InfinityBlockEntityScanGuard.forEach(entries, scan, (entry, error) ->
|
||||
|
||||
Reference in new issue
Block a user