From 8626d205f723693c49c88f711c2d858798987ce6 Mon Sep 17 00:00:00 2001 From: craisinlord Date: Mon, 26 Oct 2026 16:52:32 -0500 Subject: [PATCH] 2.2.9 --- build.gradle | 10 -- common-1.20.1/build.gradle | 1 - .../content/client/MoonSkyTracker.java | 1 - .../client/PortalGunCrosshairRenderer.java | 1 - .../client/PortalGunIndicatorClientState.java | 1 - .../compat/infinity/InfinityCompatBridge.java | 5 - .../antarchy/config/AntarchySettings.java | 2 - .../AntarchyAdvancementTriggers.java | 5 - .../content/block/DuplicatorTreeLogic.java | 1 - .../content/block/GlimmeringReedBlock.java | 1 - .../content/block/OuranwoodLeavesBlock.java | 6 - .../block/OuranwoodSquirrelNestBlock.java | 6 - .../antarchy/content/block/RoyalEggBlock.java | 5 - .../QueenTrailSpawnMarkerBlockEntity.java | 2 - .../block/entity/UnderVaultBlockEntity.java | 3 - .../block/entity/UndertrialSpawnContext.java | 5 - .../entity/UndertrialSpawnerBlockEntity.java | 2 - .../client/AntarchyGameClientState.java | 1 - .../content/client/MoonSkyTracker.java | 1 - .../client/PortalGunCrosshairRenderer.java | 1 - .../client/PortalGunIndicatorClientState.java | 1 - .../client/game/AntarchyComputerGames.java | 3 - .../model/glimmer/GlimmerFrogModel.java | 5 - .../client/renderer/AlphaMantisRenderer.java | 1 - .../client/renderer/ElythiaSkyRenderer.java | 13 +-- .../client/renderer/RoyalBossRenderer.java | 3 - .../renderer/RoyalIndicatorRenderer.java | 2 - .../TigerEyeCamouflageTextureResolver.java | 4 - .../client/renderer/WindVortexRenderer.java | 3 - .../renderer/glimmer/GlimmerRenderer.java | 3 - .../content/command/QueenLocateCommand.java | 1 - .../computer/AntarchyArchiveLocators.java | 1 - .../computer/AntarchyGameSavedData.java | 1 - .../content/effect/JudgmentMarkAccess.java | 1 - .../content/effect/JudgmentMarkManager.java | 3 - .../content/effect/RoyalBoundaryManager.java | 4 - .../content/entity/FlytrapEntity.java | 4 - .../antarchy/content/entity/MantisEntity.java | 3 - .../content/entity/OctopusBombEntity.java | 11 +- .../content/entity/RollyPollyEntity.java | 3 - .../content/entity/ScorpionEntity.java | 8 -- .../content/entity/ToreterrorEntity.java | 2 - .../entity/UpwardFallingBlockEntity.java | 6 - .../entity/WormHookProjectileEntity.java | 4 - .../content/entity/ant/AntTeleportHelper.java | 15 --- .../content/entity/ant/RainbowAntEntity.java | 5 - .../content/entity/ant/TermiteEntity.java | 2 - .../entity/basilisk/BasiliskEntity.java | 3 - .../entity/brutalfly/BrutalflyEntity.java | 2 - .../entity/glimmer/GlimmerAntBehavior.java | 1 - .../glimmer/GlimmerAppleCowBehavior.java | 1 - .../glimmer/GlimmerCompanionSavedData.java | 13 --- .../content/entity/glimmer/GlimmerEntity.java | 15 --- .../entity/glimmer/GlimmerFrogBehavior.java | 2 - .../glimmer/GlimmerVariantBehavior.java | 67 ----------- .../content/entity/kraken/KrakenEntity.java | 7 -- .../entity/nightmare/NightmareEntity.java | 1 - .../content/entity/royal/KingEntity.java | 9 -- .../entity/royal/RoyalBlackHoleEntity.java | 1 - .../content/entity/royal/RoyalBossEntity.java | 8 -- .../royal/RoyalElementalProjectileEntity.java | 1 - .../royal/decree/StandYourGroundDecree.java | 1 - .../trades/ComputerScientistTradeManager.java | 1 - .../trades/DrTrayaurusTradeManager.java | 8 -- .../content/fluid/AntarchyFluidChecks.java | 5 - .../content/horde/CavarynCreatureSpawner.java | 9 -- .../antarchy/content/item/BigBerthaItem.java | 3 +- .../content/item/BloodCrystalShardItem.java | 1 - .../content/item/BrutalflyElytraItem.java | 1 - .../antarchy/content/item/GravityGunItem.java | 2 - .../content/item/MogglesCaveDetector.java | 17 +-- .../content/item/RoyalGuardianShieldItem.java | 2 +- .../item/RoyalGuardianSwordAbilities.java | 1 - .../item/ultimate/UltimateCrossbowItem.java | 4 +- .../minecart/AntimetalMinecartPhysics.java | 11 -- .../network/AntarchyGameNetworkHandler.java | 1 - .../network/AntarchyGameNetworking.java | 1 - .../content/portal/RainbowPortalIgniter.java | 6 - .../content/portalgun/PortalGunSavedData.java | 1 - .../antarchy/content/util/WormHookRope.java | 14 --- .../worldgen/VillagePoolAdditions.java | 3 - .../worldgen/ants/TermiteNestFeature.java | 1 - .../worldgen/cavaryn/CavarynFoliageGuard.java | 6 - .../worldgen/elythia/CoralSpikeFeature.java | 10 +- .../worldgen/elythia/ElythiaBiomeSource.java | 6 - .../worldgen/elythia/ElythiaCloudFeature.java | 7 -- .../elythia/ElythiaRiverCarveFunction.java | 22 ---- .../elythia/FallenOuranwoodFeature.java | 6 +- .../elythia/FungalMushroomFeature.java | 3 +- .../elythia/KingsTreeGridFeature.java | 1 - .../elythia/OuranwoodTreeFeature.java | 8 -- .../mixins/AntarchyMixinErrorHandler.java | 3 - .../antarchy/mixins/AntarchyMixinPlugin.java | 8 -- .../antarchy/mixins/DreamFireBlockMixin.java | 3 - .../mixins/GlimmeringDamageImmunityMixin.java | 1 - .../mixins/GlimmeringPushableMixin.java | 5 - .../antarchy/mixins/PoiTypesMixin.java | 1 - .../RoyalGuardianPlayerAttackMixin.java | 1 - .../mixins/ServerPlayerGameModeMixin.java | 3 - .../UndertrialSpawnPlacementsMixin.java | 5 - .../client/GlimmeringTranslucencyMixin.java | 2 - .../FallingBlockEntityBlockDataMixin.java | 3 - .../mixins/gravity/PlayerAttackMixin.java | 6 - .../gravity/ServerChunkCacheAccessor.java | 3 - .../FallingBlockRendererBlockEntityMixin.java | 3 - fabric-1.20.1/build.gradle | 6 - fabric-1.21.1/build.gradle | 20 ---- .../fabric/AntarchyConfigModuleFabric.java | 31 ------ .../fabric/AntarchyFabricContent.java | 4 - .../antarchy/fabric/BloodglassManager.java | 8 +- .../AntarchyClothConfigScreenBuilder.java | 13 --- .../client/AntarchyModMenuIntegration.java | 22 ---- .../fabric/client/BloodglassHudRenderer.java | 6 - .../fabric/mixin/ElytraFallFlyingMixin.java | 3 - .../infinity/AmendmentRareOresMixin.java | 6 - forge-1.20.1/build.gradle | 4 - .../DroneFakePlayerConstructionMixin.java | 3 - neoforge-1.21.1/build.gradle | 9 -- .../AntarchyConfigModuleNeoforge.java | 2 - .../antarchy/neoforge/AntarchyMiscConfig.java | 27 ----- .../antarchy/neoforge/AntarchyMobsConfig.java | 104 +----------------- .../neoforge/AntarchyToolsConfig.java | 67 ----------- .../client/MogglesClientRenderer.java | 2 - .../content/fluid/AntiwaterFluid.java | 53 --------- .../entity/ParalyzedMobFreezeMixin.java | 3 - .../infinity/AmendmentRareOresMixin.java | 6 - .../mixins/infinity/PortalCreatorMixin.java | 3 - .../registry/AntarchyNeoForgeEvents.java | 10 -- .../registry/AntarchyNeoforgeBlocks.java | 1 - .../registry/AntarchyNeoforgeItems.java | 3 - .../registry/AntarchyNeoforgeMisc.java | 7 -- settings.gradle | 14 --- 132 files changed, 18 insertions(+), 931 deletions(-) diff --git a/build.gradle b/build.gradle index a4973bb6..46e8f0de 100644 --- a/build.gradle +++ b/build.gradle @@ -10,9 +10,6 @@ allprojects { group = rootProject.maven_group repositories { - // CurseForge Maven artifacts must be resolved from CurseMaven. The - // Fabric repository does not proxy these coordinates reliably and can - // prevent Gradle from reaching the working repository. maven { name = "CurseMaven" url = "https://www.cursemaven.com" @@ -63,13 +60,10 @@ allprojects { } -// Don't build the root project itself. tasks.named('jar') { enabled = false } -// Delegate forge-1.20.1 tasks to its own Gradle 8.8 wrapper. ForgeGradle 6 can't run -// on Gradle 9 and includeBuild can't mix Gradle versions, so we shell out instead. def forge1201Dir = file('forge-1.20.1') def forge1201Wrapper = providers.systemProperty('os.name').get().toLowerCase().contains('win') ? new File(forge1201Dir, 'gradlew.bat') @@ -84,10 +78,6 @@ def forge1201Wrapper = providers.systemProperty('os.name').get().toLowerCase().c } } -// Delegate fabric-1.20.1 tasks to its own standalone Gradle wrapper. Fabric Loom's -// build-wide tinyRemapperService isn't classloader-safe across two loom projects -// targeting different Minecraft versions in the same Gradle invocation, so -// fabric-1.20.1 can't be a normal included subproject alongside fabric-1.21.1. def fabric120Dir = file('fabric-1.20.1') def fabric120Wrapper = providers.systemProperty('os.name').get().toLowerCase().contains('win') ? new File(fabric120Dir, 'gradlew.bat') diff --git a/common-1.20.1/build.gradle b/common-1.20.1/build.gradle index 1edaf3bc..e6d5eb74 100644 --- a/common-1.20.1/build.gradle +++ b/common-1.20.1/build.gradle @@ -6,7 +6,6 @@ base { archivesName = "${mod_id}-common-1.20.1" } -// Source-only module — each loader module compiles these sources itself. tasks.named('compileJava').configure { enabled = false } diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/MoonSkyTracker.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/MoonSkyTracker.java index 08df86a3..9b5cc52b 100644 --- a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/MoonSkyTracker.java +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/MoonSkyTracker.java @@ -17,7 +17,6 @@ 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; - // Weak so a dimension change or logout doesn't pin the old client world in memory. private static WeakReference level = new WeakReference<>(null); private static long recordedAt; private static Consumer sender = payload -> {}; diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/PortalGunCrosshairRenderer.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/PortalGunCrosshairRenderer.java index e568acf1..4d6acf31 100644 --- a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/PortalGunCrosshairRenderer.java +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/PortalGunCrosshairRenderer.java @@ -20,7 +20,6 @@ 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; - // Weak so a dimension change or logout doesn't pin the old client world in memory. private static WeakReference cachedLevel = new WeakReference<>(null); private static long cachedGameTime = Long.MIN_VALUE; private static UUID cachedGunId; diff --git a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/PortalGunIndicatorClientState.java b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/PortalGunIndicatorClientState.java index 956e7d91..f5923617 100644 --- a/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/PortalGunIndicatorClientState.java +++ b/common-1.20.1/src/main/java/com/craisinlord/antarchy/content/client/PortalGunIndicatorClientState.java @@ -12,7 +12,6 @@ import net.minecraft.client.multiplayer.ClientLevel; public final class PortalGunIndicatorClientState { private static final Map STATES = new HashMap<>(); - // Weak so a dimension change or logout doesn't pin the old client world in memory. private static WeakReference level = new WeakReference<>(null); private static long lastRequestTick = Long.MIN_VALUE; private static UUID lastRequestedGun; diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/compat/infinity/InfinityCompatBridge.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/compat/infinity/InfinityCompatBridge.java index 07432a22..85dc9177 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/compat/infinity/InfinityCompatBridge.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/compat/infinity/InfinityCompatBridge.java @@ -31,11 +31,6 @@ public interface InfinityCompatBridge { return InfinityWarpResult.REJECTED; } - /** - * Converts an already-ignited vanilla Nether portal frame at {@code anyPortalBlockPos} into a real, permanent - * Infinite Dimensions portal to {@code dimensionId}, generating the dimension first if it doesn't exist yet. - * Mirrors what Infinity itself does when a written book is thrown into a lit portal. - */ default boolean createPhysicalPortal(ServerLevel level, BlockPos anyPortalBlockPos, ResourceLocation dimensionId) { return false; } diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/config/AntarchySettings.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/config/AntarchySettings.java index 28f33995..5ba86f5d 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/config/AntarchySettings.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/config/AntarchySettings.java @@ -567,7 +567,6 @@ public final class AntarchySettings { private static int bloodCrystalAppleDurationTicks = 2400; private static int bloodCrystalAppleShieldRechargeTicks = 600; private static int bloodCrystalHardMaxShields = 10; - // Armor stats (iron defense, gold durability, 0 toughness by default) private static int bloodCrystalHelmetDefense = 3; private static int bloodCrystalChestplateDefense = 7; private static int bloodCrystalLeggingsDefense = 6; @@ -2530,7 +2529,6 @@ public final class AntarchySettings { public static int reverieDuplicationCooldownTicks() { return reverieDuplicationCooldownTicks; } public static void setReverieDuplicationCooldownTicks(int v){ reverieDuplicationCooldownTicks = v; } - // Hardcoded AI tuning — getters only, no config wiring public static double reveriePreferredFollowMinDistance() { return reveriePreferredFollowMinDistance; } public static double reveriePreferredFollowMaxDistance() { return reveriePreferredFollowMaxDistance; } public static double reverieCatchUpDistance() { return reverieCatchUpDistance; } diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/advancement/AntarchyAdvancementTriggers.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/advancement/AntarchyAdvancementTriggers.java index 59f6e83e..5eb6b348 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/advancement/AntarchyAdvancementTriggers.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/advancement/AntarchyAdvancementTriggers.java @@ -30,11 +30,6 @@ public final class AntarchyAdvancementTriggers { register((id, trigger) -> CriteriaTriggers.register(id.toString(), trigger)); } - /** - * Registers these triggers through the active loader's lifecycle hook. - * NeoForge calls this from its trigger-type RegisterEvent; Fabric can call - * the no-argument overload during its initializer. - */ public static void register(BiConsumer> registrar) { registrar.accept(ResourceLocation.fromNamespaceAndPath("antarchy", "crossed_gravity_throat"), CROSSING); registrar.accept(ResourceLocation.fromNamespaceAndPath("antarchy", "horde_phase_changed"), HORDE_PHASE); diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/block/DuplicatorTreeLogic.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/block/DuplicatorTreeLogic.java index 49cced4e..6ed83453 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/block/DuplicatorTreeLogic.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/block/DuplicatorTreeLogic.java @@ -25,7 +25,6 @@ public final class DuplicatorTreeLogic { private static final int LOG_SEARCH_BELOW = 5; private static final int LOG_SEARCH_ABOVE = 1; - // Cache center log pos per chunk. WeakHashMap lets levels be GC'd when unloaded. private static final WeakHashMap> CENTER_LOG_CACHE = new WeakHashMap<>(); private DuplicatorTreeLogic() { diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/block/GlimmeringReedBlock.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/block/GlimmeringReedBlock.java index d9f44d41..dac49bec 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/block/GlimmeringReedBlock.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/block/GlimmeringReedBlock.java @@ -20,7 +20,6 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.properties.DoubleBlockHalf; import net.minecraft.world.phys.BlockHitResult; -/** A two-block-tall, light-emitting reed found around Lumen pools. */ public final class GlimmeringReedBlock extends DoublePlantBlock implements BonemealableBlock { public static final MapCodec CODEC = Block.simpleCodec(GlimmeringReedBlock::new); diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/block/OuranwoodLeavesBlock.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/block/OuranwoodLeavesBlock.java index 88b3c0ab..bb2a0792 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/block/OuranwoodLeavesBlock.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/block/OuranwoodLeavesBlock.java @@ -25,12 +25,6 @@ import net.minecraft.world.level.material.Fluids; public class OuranwoodLeavesBlock extends LeavesBlock implements BonemealableBlock { public static final MapCodec CODEC = Block.simpleCodec(OuranwoodLeavesBlock::new); - /* - * We still include vanilla LeavesBlock.DISTANCE in the state definition because - * LeavesBlock's constructor sets it. - * - * This is the real Ouranwood decay distance. - */ public static final IntegerProperty OURANWOOD_DISTANCE = IntegerProperty.create("ouranwood_distance", 1, 17); public static final BooleanProperty PERSISTENT = LeavesBlock.PERSISTENT; diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/block/OuranwoodSquirrelNestBlock.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/block/OuranwoodSquirrelNestBlock.java index 585e0ede..610f3ed0 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/block/OuranwoodSquirrelNestBlock.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/block/OuranwoodSquirrelNestBlock.java @@ -13,12 +13,6 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.StateDefinition; import net.minecraft.world.level.block.state.properties.IntegerProperty; -/** - * Invisible world-gen-only marker placed inside a flying squirrel hollow. - * Schedules itself to replace with COARSE_DIRT and spawn squirrels shortly - * after the chunk loads, so entity creation never blocks the gen thread. - * No BlockItem is registered, so this block never appears in creative or JEI. - */ public class OuranwoodSquirrelNestBlock extends Block { public static final IntegerProperty SQUIRREL_COUNT = IntegerProperty.create("squirrels", 1, 3); diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/block/RoyalEggBlock.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/block/RoyalEggBlock.java index 409dfb9a..99d4bd0f 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/block/RoyalEggBlock.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/block/RoyalEggBlock.java @@ -168,11 +168,6 @@ public abstract class RoyalEggBlock extends BaseEntityBlock { } } - /** - * Vanilla FallingBlockEntity always falls in world-down direction, so an - * unsupported egg placed with inverted underside gravity is stepped - * upward toward its support instead of being handed to that entity. - */ private void tickInvertedFall(BlockState state, ServerLevel level, BlockPos pos) { BlockPos above = pos.above(); if (!FallingBlock.isFree(level.getBlockState(above)) || above.getY() > level.getMaxBuildHeight()) { diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/block/entity/QueenTrailSpawnMarkerBlockEntity.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/block/entity/QueenTrailSpawnMarkerBlockEntity.java index fba75d35..512c3207 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/block/entity/QueenTrailSpawnMarkerBlockEntity.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/block/entity/QueenTrailSpawnMarkerBlockEntity.java @@ -65,8 +65,6 @@ public final class QueenTrailSpawnMarkerBlockEntity extends BlockEntity { if (!nearbyPlayer) { return; } - // The Queen is large enough to span several chunks. Ensure the area around - // the arrival point is available before checking its collision box. for (int chunkX = (marker.spawnPos.getX() - 16) >> 4; chunkX <= (marker.spawnPos.getX() + 16) >> 4; chunkX++) { for (int chunkZ = (marker.spawnPos.getZ() - 16) >> 4; chunkZ <= (marker.spawnPos.getZ() + 16) >> 4; chunkZ++) { level.getChunk(chunkX, chunkZ); diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/block/entity/UnderVaultBlockEntity.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/block/entity/UnderVaultBlockEntity.java index d9ba2465..694bceca 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/block/entity/UnderVaultBlockEntity.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/block/entity/UnderVaultBlockEntity.java @@ -47,9 +47,6 @@ public final class UnderVaultBlockEntity extends BlockEntity { public static void serverTick(ServerLevel level, BlockPos pos, BlockState state, UnderVaultBlockEntity blockEntity) { blockEntity.vaultData.setLevel(level); - // The vanilla vault detector can miss this ceiling-mounted wrapper because its - // block state has a separate render-facing property. Keep the state synchronized - // with the same four-block activation range before running vanilla's state machine. boolean playerNearby = !level.getEntitiesOfClass(Player.class, new AABB(pos).inflate(4.0D), player -> !player.isSpectator()).isEmpty(); if (state.getValue(UnderVaultBlock.STATE) == VaultState.INACTIVE && playerNearby && !blockEntity.playerWasNearby) { state = state.setValue(UnderVaultBlock.STATE, VaultState.ACTIVE); diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/block/entity/UndertrialSpawnContext.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/block/entity/UndertrialSpawnContext.java index 2f03fa6b..36729689 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/block/entity/UndertrialSpawnContext.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/block/entity/UndertrialSpawnContext.java @@ -1,10 +1,5 @@ package com.craisinlord.antarchy.content.block.entity; -/** - * Identifies spawn-rule checks made by an Undertrial spawner's vanilla - * TrialSpawner tick. The context is scoped to the current server-thread call - * so ordinary trial spawners and all other spawn paths retain vanilla rules. - */ public final class UndertrialSpawnContext implements AutoCloseable { private static final ThreadLocal DEPTH = ThreadLocal.withInitial(() -> 0); diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/block/entity/UndertrialSpawnerBlockEntity.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/block/entity/UndertrialSpawnerBlockEntity.java index 3f236630..56b0e901 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/block/entity/UndertrialSpawnerBlockEntity.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/block/entity/UndertrialSpawnerBlockEntity.java @@ -190,8 +190,6 @@ public final class UndertrialSpawnerBlockEntity extends BlockEntity implements T if (this.level == null) { return; } - // Match vanilla Trial Spawner interaction: override the next mob's entity id while - // preserving weighted potentials, ominous settings, and the trial's reward configuration. this.trialSpawner.getData().setEntityId(this.trialSpawner, this.level.random, entityType); this.markUpdated(); } diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/client/AntarchyGameClientState.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/client/AntarchyGameClientState.java index 62d4f4c9..7d9697f8 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/client/AntarchyGameClientState.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/client/AntarchyGameClientState.java @@ -6,7 +6,6 @@ import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import net.minecraft.core.BlockPos; -/** Client state for Antarchy-owned games hosted by AntOS. */ public final class AntarchyGameClientState { private static final Map GAME_STATES = new ConcurrentHashMap<>(); diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/client/MoonSkyTracker.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/client/MoonSkyTracker.java index 08df86a3..9b5cc52b 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/client/MoonSkyTracker.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/client/MoonSkyTracker.java @@ -17,7 +17,6 @@ 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; - // Weak so a dimension change or logout doesn't pin the old client world in memory. private static WeakReference level = new WeakReference<>(null); private static long recordedAt; private static Consumer sender = payload -> {}; diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/client/PortalGunCrosshairRenderer.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/client/PortalGunCrosshairRenderer.java index e568acf1..4d6acf31 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/client/PortalGunCrosshairRenderer.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/client/PortalGunCrosshairRenderer.java @@ -20,7 +20,6 @@ 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; - // Weak so a dimension change or logout doesn't pin the old client world in memory. private static WeakReference cachedLevel = new WeakReference<>(null); private static long cachedGameTime = Long.MIN_VALUE; private static UUID cachedGunId; diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/client/PortalGunIndicatorClientState.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/client/PortalGunIndicatorClientState.java index 956e7d91..f5923617 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/client/PortalGunIndicatorClientState.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/client/PortalGunIndicatorClientState.java @@ -12,7 +12,6 @@ import net.minecraft.client.multiplayer.ClientLevel; public final class PortalGunIndicatorClientState { private static final Map STATES = new HashMap<>(); - // Weak so a dimension change or logout doesn't pin the old client world in memory. private static WeakReference level = new WeakReference<>(null); private static long lastRequestTick = Long.MIN_VALUE; private static UUID lastRequestedGun; diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/client/game/AntarchyComputerGames.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/client/game/AntarchyComputerGames.java index 391ae0b0..41cd5b6c 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/client/game/AntarchyComputerGames.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/client/game/AntarchyComputerGames.java @@ -8,14 +8,11 @@ import net.minecraft.resources.ResourceLocation; import java.util.function.IntPredicate; import java.util.function.Predicate; -/** Registers Antarchy's native games with the AntOS Games app. */ public final class AntarchyComputerGames { private AntarchyComputerGames() {} public static void register() { registerIfMissing(game("basilisk", "BASILISK", () -> { - // AntOS 1.2.1 creates game sessions without passing the computer position. - // Keep Basilisk playable without a position-bound score callback. BasiliskProgram program = new BasiliskProgram(true, 0, 0, score -> {}); return new GameSession(program::tick, program::render, program::keyPressed, ignored -> false); })); diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/client/model/glimmer/GlimmerFrogModel.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/client/model/glimmer/GlimmerFrogModel.java index a71dfd60..24b9bbc2 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/client/model/glimmer/GlimmerFrogModel.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/client/model/glimmer/GlimmerFrogModel.java @@ -8,11 +8,6 @@ import net.minecraft.client.model.FrogModel; import net.minecraft.client.model.geom.ModelPart; import net.minecraft.util.Mth; -/** - * Reuses vanilla Frog geometry ({@link FrogModel}/{@code ModelLayers.FROG}) for the Frog - * Glimmer variant instead of an ill-fitting GeckoLib placeholder mesh, with a simplified - * walk/idle animation (GlimmerEntity has no Frog-specific jump/tongue state). - */ public class GlimmerFrogModel extends EntityModel { private final ModelPart root; private final ModelPart head; diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/AlphaMantisRenderer.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/AlphaMantisRenderer.java index 6ee5cedf..82a8e718 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/AlphaMantisRenderer.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/AlphaMantisRenderer.java @@ -9,7 +9,6 @@ public class AlphaMantisRenderer extends GeoEntityRenderer { public AlphaMantisRenderer(EntityRendererProvider.Context context) { super(context, new AlphaMantisModel()); this.shadowRadius = 1.5F; - // Mantis renders at 1.25x; the alpha is 1.5x bigger overall this.withScale(1.875F); } } diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/ElythiaSkyRenderer.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/ElythiaSkyRenderer.java index 1dec4295..d8013b2a 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/ElythiaSkyRenderer.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/ElythiaSkyRenderer.java @@ -74,7 +74,6 @@ public final class ElythiaSkyRenderer { float starBrightness = level.getStarBrightness(partialTick) * (1.0F - rainLevel); double timeDegrees = (level.getDayTime() + partialTick) * (360.0D / 24000.0D); - // Blend in a dark purple when it's night (starBrightness > 0) float nightPurpleR = 0.055F; float nightPurpleG = 0.010F; float nightPurpleB = 0.120F; @@ -169,10 +168,10 @@ public final class ElythiaSkyRenderer { private static float[] pickStarColor(Random random) { float roll = random.nextFloat(); - if (roll < 0.80F) return new float[]{1.0F, 1.0F, 1.0F}; // white - if (roll < 0.87F) return new float[]{0.85F, 0.60F, 1.00F}; // light purple - if (roll < 0.94F) return new float[]{1.00F, 0.95F, 0.50F}; // yellow - return new float[]{1.0F, 0.45F, 0.45F}; // red + if (roll < 0.80F) return new float[]{1.0F, 1.0F, 1.0F}; + if (roll < 0.87F) return new float[]{0.85F, 0.60F, 1.00F}; + if (roll < 0.94F) return new float[]{1.00F, 0.95F, 0.50F}; + return new float[]{1.0F, 0.45F, 0.45F}; } private static void renderSunrise(PoseStack poseStack, Matrix4f projectionMatrix, ClientLevel level, float partialTick, float rainLevel) { @@ -212,22 +211,18 @@ public final class ElythiaSkyRenderer { private static void renderCelestialBodies(Matrix4f modelViewMatrix, Matrix4f projectionMatrix, double timeDegrees, float rainLevel) { - // Purple sun float sun1Orbit = orbitAngle(timeDegrees, 1.0D, 0.0D); renderBodyGlow(modelViewMatrix, projectionMatrix, sun1Orbit, 0.0F, 0xD06BFF, rainLevel, 70.0F); renderTexturedBody(modelViewMatrix, projectionMatrix, sun1Orbit, 0.0F, 38.0F, 0xD06BFF, 1.0F, SUN_TEXTURE, false, 0, orbitAngle(timeDegrees, 0.8D, 0.0D)); - // Orange sub float sun2Orbit = orbitAngle(timeDegrees, 0.73D, 54.0D); renderBodyGlow(modelViewMatrix, projectionMatrix, sun2Orbit, -14.0F, 0xFF9A33, rainLevel, 70.0F); renderTexturedBody(modelViewMatrix, projectionMatrix, sun2Orbit, -14.0F, 16.0F, 0xFF9A33, 1.0F, SUN_TEXTURE, false, 0, orbitAngle(timeDegrees, -0.5D, 0.0D)); - // Dark green moon float moon2Orbit = orbitAngle(timeDegrees, 1.27D, 228.0D); renderBodyGlow(modelViewMatrix, projectionMatrix, moon2Orbit, 36.0F, 0x4FD84D, rainLevel, 78.0F); renderTexturedBody(modelViewMatrix, projectionMatrix, moon2Orbit, 36.0F, 14.0F, 0x4FD84D, 1.0F, MOON_TEXTURE, true, 1, orbitAngle(timeDegrees, 0.3D, 0.0D)); - // Light green moon float moon3Orbit = orbitAngle(timeDegrees, 0.38D, 122.0D); renderBodyGlow(modelViewMatrix, projectionMatrix, moon3Orbit, -34.0F, 0xA3FF8F, rainLevel, 78.0F); renderTexturedBody(modelViewMatrix, projectionMatrix, moon3Orbit, -34.0F, 12.0F, 0xA3FF8F, 1.0F, MOON_TEXTURE, true, 2, orbitAngle(timeDegrees, -0.6D, 0.0D)); diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/RoyalBossRenderer.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/RoyalBossRenderer.java index cae52e7f..9f742665 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/RoyalBossRenderer.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/RoyalBossRenderer.java @@ -193,9 +193,6 @@ public class RoyalBossRenderer extends GeoEntityRenderer { float outerV = -time * 0.25F; float innerV = -time * 0.25F * 0.5F; - // Tremorzilla renders the beam in local +Z space. Keeping the mesh in that - // space is important: the beam textures are authored for these exact face - // coordinates and are not interchangeable with a world-space billboard. float yaw = (float) Math.atan2(dir.z, dir.x); float pitch = (float) Math.acos(dir.y); poseStack.pushPose(); diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/RoyalIndicatorRenderer.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/RoyalIndicatorRenderer.java index 44936b80..236a9990 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/RoyalIndicatorRenderer.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/RoyalIndicatorRenderer.java @@ -79,8 +79,6 @@ public final class RoyalIndicatorRenderer { out.addVertex(pose, right, top, depth).setUv(1.0F, 0.0F).setOverlay(0).setLight(packedLight).setNormal(pose, 0.0F, 0.0F, 1.0F); out.addVertex(pose, left, top, depth).setUv(0.0F, 0.0F).setOverlay(0).setLight(packedLight).setNormal(pose, 0.0F, 0.0F, 1.0F); - // Emit the reverse winding as well. The crown is viewed from every angle, and - // a single-sided quad can vanish when the renderer's culling state rejects it. out.addVertex(pose, left, top, depth).setUv(0.0F, 0.0F).setOverlay(0).setLight(packedLight).setNormal(pose, 0.0F, 0.0F, -1.0F); out.addVertex(pose, right, top, depth).setUv(1.0F, 0.0F).setOverlay(0).setLight(packedLight).setNormal(pose, 0.0F, 0.0F, -1.0F); out.addVertex(pose, right, bottom, depth).setUv(1.0F, 1.0F).setOverlay(0).setLight(packedLight).setNormal(pose, 0.0F, 0.0F, -1.0F); diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/TigerEyeCamouflageTextureResolver.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/TigerEyeCamouflageTextureResolver.java index d79ed581..d937dcfa 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/TigerEyeCamouflageTextureResolver.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/TigerEyeCamouflageTextureResolver.java @@ -22,9 +22,6 @@ import net.minecraft.world.level.block.state.BlockState; public final class TigerEyeCamouflageTextureResolver { public record ResolvedTexture(ResourceLocation texture, int argbTint) {} - // PlayerModel's skin layout is always laid out on a 64x64 canvas, regardless of the - // block texture's actual size, so the generated overlay texture must match that grid - // for every body part to sample the block texture at the same pixel density. private static final int SKIN_SIZE = 64; private static final Map CACHE = new ConcurrentHashMap<>(); private static final ResourceLocation FALLBACK_TEXTURE = ResourceLocation.withDefaultNamespace("textures/block/stone.png"); @@ -102,7 +99,6 @@ public final class TigerEyeCamouflageTextureResolver { try (NativeImage sourceImage = NativeImage.read(stream)) { int tileWidth = sourceImage.getWidth(); - // Animated block textures stack frames vertically below a square first frame. int tileHeight = tileWidth <= sourceImage.getHeight() ? tileWidth : sourceImage.getHeight(); NativeImage canvas = new NativeImage(SKIN_SIZE, SKIN_SIZE, false); diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/WindVortexRenderer.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/WindVortexRenderer.java index 8855b060..c7aaabcb 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/WindVortexRenderer.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/WindVortexRenderer.java @@ -94,9 +94,6 @@ public class WindVortexRenderer extends EntityRenderer { addVertex(consumer, pose, end.x + offset.x, end.y + offset.y, end.z + offset.z, red, green, blue, alpha); addVertex(consumer, pose, start.x + offset.x, start.y + offset.y, start.z + offset.z, red, green, blue, alpha); - // The lightning render type can cull one winding from some camera - // angles. Emit the opposite winding as well so every ribbon is - // visible from both sides. addVertex(consumer, pose, start.x + offset.x, start.y + offset.y, start.z + offset.z, red, green, blue, alpha); addVertex(consumer, pose, end.x + offset.x, end.y + offset.y, end.z + offset.z, red, green, blue, alpha); addVertex(consumer, pose, end.x - offset.x, end.y - offset.y, end.z - offset.z, red, green, blue, alpha); diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/glimmer/GlimmerRenderer.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/glimmer/GlimmerRenderer.java index 62c5e00c..c49bd339 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/glimmer/GlimmerRenderer.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/client/renderer/glimmer/GlimmerRenderer.java @@ -48,9 +48,6 @@ public class GlimmerRenderer extends GeoEntityRenderer { float growth = entity.getGrowthScale(); poseStack.scale(growth, growth, growth); - // Compute body yaw directly from the entity's own tracked fields rather than trusting - // the ambient entityYaw parameter, so the body pose and the head-offset math below stay - // self-consistent. float bodyYaw = Mth.rotLerp(partialTick, entity.yBodyRotO, entity.yBodyRot); poseStack.mulPose(Axis.YP.rotationDegrees(180.0F - bodyYaw)); poseStack.scale(-1.0F, -1.0F, 1.0F); diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/command/QueenLocateCommand.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/command/QueenLocateCommand.java index 3d543542..69dae02f 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/command/QueenLocateCommand.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/command/QueenLocateCommand.java @@ -82,7 +82,6 @@ public final class QueenLocateCommand { return 0; } - /** Finds the nearest generated Queen spawn site without spawning her. Loads (and may generate) the checked chunks. */ public static NearestSite findNearestSite(ServerLevel thoraxis, int originX, int originZ) { int cellX = Math.floorDiv(originX, QueenTrailGrid.SPACING); int cellZ = Math.floorDiv(originZ, QueenTrailGrid.SPACING); diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/computer/AntarchyArchiveLocators.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/computer/AntarchyArchiveLocators.java index 64feaaae..985d6354 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/computer/AntarchyArchiveLocators.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/computer/AntarchyArchiveLocators.java @@ -10,7 +10,6 @@ import net.minecraft.resources.ResourceLocation; import net.minecraft.world.level.levelgen.Heightmap; import net.minecraft.world.phys.AABB; -/** Archive coordinate lookups for royals that live on grids rather than in vanilla structures. */ public final class AntarchyArchiveLocators { private AntarchyArchiveLocators() { } diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/computer/AntarchyGameSavedData.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/computer/AntarchyGameSavedData.java index 5040b0ad..e12b0285 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/computer/AntarchyGameSavedData.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/computer/AntarchyGameSavedData.java @@ -10,7 +10,6 @@ import net.minecraft.nbt.ListTag; import net.minecraft.server.MinecraftServer; import net.minecraft.world.level.saveddata.SavedData; -/** Persistent Antarchy game progress keyed by AntOS computer location. */ public final class AntarchyGameSavedData extends SavedData { private static final String ID = "antarchy_computer_games"; private final Map games = new HashMap<>(); diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/effect/JudgmentMarkAccess.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/effect/JudgmentMarkAccess.java index 3026c5bf..4b516bd6 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/effect/JudgmentMarkAccess.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/effect/JudgmentMarkAccess.java @@ -1,6 +1,5 @@ package com.craisinlord.antarchy.content.effect; -/** Synchronized, presentation-only state for the short-lived Royal Judgment mark. */ public interface JudgmentMarkAccess { boolean antarchy$isJudgmentMarked(); diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/effect/JudgmentMarkManager.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/effect/JudgmentMarkManager.java index 934cd075..962ce419 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/effect/JudgmentMarkManager.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/effect/JudgmentMarkManager.java @@ -14,14 +14,12 @@ import net.minecraft.world.entity.EquipmentSlot; import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.entity.player.Player; -/** Server-owned, player-specific Judgment marks. The visible bit is synchronized by vanilla entity data. */ public final class JudgmentMarkManager { private static final Map MARKS = new WeakHashMap<>(); private JudgmentMarkManager() { } - /** Returns true when this owner had already marked this target before the current hit. */ public static boolean recordSuccessfulHit(Player owner, LivingEntity target) { if (!(owner instanceof ServerPlayer serverPlayer) || !(target.level() instanceof ServerLevel level) || owner.level() != target.level() || !hasGuardianArmor(owner) || !target.isAlive()) { @@ -66,7 +64,6 @@ public final class JudgmentMarkManager { return entity instanceof LivingEntity living && living.isAlive() ? living : null; } - /** Prunes marks from this target and updates the vanilla-synchronized render bit. */ public static void tickTarget(LivingEntity target) { if (!(target.level() instanceof ServerLevel level)) { return; diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/effect/RoyalBoundaryManager.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/effect/RoyalBoundaryManager.java index dda752e4..94843b19 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/effect/RoyalBoundaryManager.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/effect/RoyalBoundaryManager.java @@ -23,7 +23,6 @@ import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; import org.joml.Vector3f; -/** Server-authoritative Royal Guardian chestplate field and temporary projectile arrest state. */ public final class RoyalBoundaryManager { private static final int ALLY_REFRESH_INTERVAL = 10; private static final DustParticleOptions ROYAL_GOLD = new DustParticleOptions(new Vector3f(1.0F, 0.72F, 0.12F), 1.15F); @@ -51,7 +50,6 @@ public final class RoyalBoundaryManager { return true; } - /** Called from ServerPlayer.tick; ends fields immediately when their owner can no longer sustain them. */ public static void tickOwner(ServerPlayer owner) { if (!(owner.level() instanceof ServerLevel level)) return; UUID ownerId = owner.getUUID(); @@ -92,7 +90,6 @@ public final class RoyalBoundaryManager { } } - /** Predicts this tick's movement so a fast projectile is arrested before its own collision pass. */ public static void prepareProjectile(Projectile projectile) { if (!(projectile.level() instanceof ServerLevel level) || projectile.isRemoved()) return; Map arrested = ARRESTED.get(level); @@ -111,7 +108,6 @@ public final class RoyalBoundaryManager { } } - /** Swept fallback for unusual projectiles and arrest-state progression. */ public static void tickProjectile(Projectile projectile) { if (!(projectile.level() instanceof ServerLevel level)) return; Map arrested = ARRESTED.get(level); diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/FlytrapEntity.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/FlytrapEntity.java index 29747e1f..421fd1cc 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/FlytrapEntity.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/FlytrapEntity.java @@ -408,10 +408,6 @@ public class FlytrapEntity extends Monster implements GeoEntity { continue; } - // Put the entity on cooldown before hurting it, regardless of hurt()'s result: a - // shield or armor effect can absorb the damage and make hurt() return false without - // granting the vanilla invulnerability window, which would otherwise let this attack - // re-attempt damage on the same entity every single tick of the active window. this.sweepHitCooldowns.put(candidate.getUUID(), AntarchySettings.flytrapSweepHitCooldownTicks()); candidate.hurt(AntarchyDamageSources.flytrapMauling(serverLevel, this), (float) AntarchySettings.flytrapAttackDamage()); } diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/MantisEntity.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/MantisEntity.java index 3acf470c..52b2a1d3 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/MantisEntity.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/MantisEntity.java @@ -149,12 +149,10 @@ public class MantisEntity extends Monster implements GeoEntity { boolean ignoreLightLevel = AntarchySettings.mantisIgnoreLightLevel(); - // Daytime overworld spawns can't pass the vanilla darkness check, so no light gate here if (level.getLevel().isDay() && level.getBiome(pos).is(AntarchyTags.Biomes.MANTIS_OVERWORLD_SPAWN_BIOMES)) { return atSurface && level.canSeeSky(pos); } - // Elythia meadow (and any future mantis_spawn_biomes): nighttime, no sky-access requirement if (level.getLevel().isNight() && level.getBiome(pos).is(AntarchyTags.Biomes.MANTIS_SPAWN_BIOMES)) { return atSurface && (ignoreLightLevel || Monster.checkMonsterSpawnRules(entityType, level, spawnReason, pos, random)); } @@ -184,7 +182,6 @@ public class MantisEntity extends Monster implements GeoEntity { HurtByTargetGoal hurtByTargetGoal = new HurtByTargetGoal(this); this.targetSelector.addGoal(1, hurtByTargetGoal); - // randomInterval lowered from default 10 to 5 for faster re-acquisition this.targetSelector.addGoal(2, new NearestAttackableTargetGoal<>(this, Player.class, 5, true, false, null)); } diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/OctopusBombEntity.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/OctopusBombEntity.java index d89e64fe..e2cd8d29 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/OctopusBombEntity.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/OctopusBombEntity.java @@ -88,7 +88,6 @@ public class OctopusBombEntity extends Monster implements GeoEntity { private boolean spawnedByKraken; - // Explosive impact (fired from the R.P.O. Launcher) private boolean explosiveImpact; private java.util.UUID explosiveLauncherId; private int explosiveArmTicks; @@ -140,9 +139,7 @@ public class OctopusBombEntity extends Monster implements GeoEntity { this.goalSelector.addGoal(5, new LookAtPlayerGoal(this, Player.class, 20.0F)); this.goalSelector.addGoal(6, new RandomLookAroundGoal(this)); - // Only retaliate when hit — neutral otherwise this.targetSelector.addGoal(1, new HurtByTargetGoal(this)); - // When spawned by Kraken and flying, target nearest player this.targetSelector.addGoal(2, new KrakenSummonTargetGoal(this)); } @@ -215,7 +212,6 @@ public class OctopusBombEntity extends Monster implements GeoEntity { if (this.attackCooldown > 0) this.attackCooldown--; if (this.inkSprayCooldown > 0) this.inkSprayCooldown--; - // Ink spray — always active regardless of aggro state this.tickInkSpray(); LivingEntity target = this.getTarget(); @@ -375,10 +371,9 @@ public class OctopusBombEntity extends Monster implements GeoEntity { float angle = this.random.nextFloat() * (float) (Math.PI * 2); this.wanderDx = Mth.cos(angle) * 0.015f; this.wanderDz = Mth.sin(angle) * 0.015f; - this.wanderDy = -0.01f + this.random.nextFloat() * 0.01f; // slight downward bias + this.wanderDy = -0.01f + this.random.nextFloat() * 0.01f; } - // Surface avoidance: if the block above is not water, push down float dy = this.wanderDy; if (!this.level().getFluidState(this.blockPosition().above()).is(net.minecraft.tags.FluidTags.WATER)) { dy = -0.03f; @@ -663,10 +658,6 @@ public class OctopusBombEntity extends Monster implements GeoEntity { } } - // ------------------------------------------------------------------------- - // Inner goal: only target players when spawned by Kraken in fly mode - // ------------------------------------------------------------------------- - private static final class KrakenSummonTargetGoal extends NearestAttackableTargetGoal { private final OctopusBombEntity octopus; diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/RollyPollyEntity.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/RollyPollyEntity.java index 36afd023..006e8833 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/RollyPollyEntity.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/RollyPollyEntity.java @@ -84,7 +84,6 @@ public class RollyPollyEntity extends TamableAnimal implements GeoEntity { private static final int ANIM_ROLL_UP = 2; private static final int ANIM_UNROLL = 4; - // wheel_mode is 0.75s, normal_mode is ~0.42s private static final int ROLL_UP_TICKS = 15; private static final int UNROLL_TICKS = 9; private static final int DEFENSIVE_CURL_TICKS = 100; @@ -156,7 +155,6 @@ public class RollyPollyEntity extends TamableAnimal implements GeoEntity { this.goalSelector.addGoal(1, new PanicGoal(this, 1.4D) { @Override public boolean canUse() { - // Curled-up or tamed rolly pollies stand their ground return !RollyPollyEntity.this.isRolled() && !RollyPollyEntity.this.isTame() && super.canUse(); } }); @@ -318,7 +316,6 @@ public class RollyPollyEntity extends TamableAnimal implements GeoEntity { amount *= 0.25F; } boolean hurt = super.hurt(source, amount); - // Wild rolly pollies curl up defensively when attacked if (hurt && !this.level().isClientSide && !this.isTame() && this.isAlive() && !this.isRolled() && this.rollTransitionTicks <= 0) { this.defensiveCurlTicks = DEFENSIVE_CURL_TICKS; diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/ScorpionEntity.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/ScorpionEntity.java index f2189be2..6e38ac89 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/ScorpionEntity.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/ScorpionEntity.java @@ -111,9 +111,6 @@ public class ScorpionEntity extends Monster implements GeoEntity { || spawnReason == MobSpawnType.COMMAND) { return true; } - // The Dream Dunes biome is the entire underside below Y=0. Its higher - // spawn weight is therefore targeted there without doubling the small - // surface-side Dream Dunes band as well. if (pos.getY() >= 0 && level.getBiome(pos).is(DREAM_DUNES) && random.nextBoolean()) { return false; } @@ -356,8 +353,6 @@ public class ScorpionEntity extends Monster implements GeoEntity { ScorpionEntity.this.getNavigation().stop(); return; } - // This goal overrides MeleeAttackGoal.tick, so the gravity mixin on the - // vanilla method cannot supply the inverted movement frame here. LivingEntity target = ScorpionEntity.this.getTarget(); if (target != null && ThoraxisUndersideManager.shouldInvertInUnderside(ScorpionEntity.this)) { ScorpionEntity.this.getNavigation().stop(); @@ -379,9 +374,6 @@ public class ScorpionEntity extends Monster implements GeoEntity { if (ScorpionEntity.this.isAttackLocked()) { return; } - // Inverted melee tick handling replaces vanilla MeleeAttackGoal.tick, - // so vanilla's internal attack timer is not advanced. The Scorpion's - // own cooldown already covers its wind-up and hit timing. if (this.canPerformAttack(enemy) && ScorpionEntity.this.attackCooldownTicks <= 0) { ScorpionEntity.this.beginAttack(enemy); return; diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/ToreterrorEntity.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/ToreterrorEntity.java index 253be8da..607121cc 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/ToreterrorEntity.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/ToreterrorEntity.java @@ -774,11 +774,9 @@ public class ToreterrorEntity extends Monster implements GeoEntity { double dh = Math.sqrt(diff.x * diff.x + diff.z * diff.z); double dy = diff.y; double gravity = AntarchySettings.waterBombGravity(); - // Choose travel time based on horizontal distance at minSpeed, minimum 8 ticks double t = Math.max(8.0, dh / minSpeed); double vx = diff.x / t; double vz = diff.z / t; - // Compensate for gravity accumulating over t ticks double vy = dy / t + 0.5 * gravity * t; return new Vec3(vx, vy, vz); } diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/UpwardFallingBlockEntity.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/UpwardFallingBlockEntity.java index ce769a7d..7c7c271d 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/UpwardFallingBlockEntity.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/UpwardFallingBlockEntity.java @@ -46,10 +46,6 @@ public class UpwardFallingBlockEntity extends Entity { public UpwardFallingBlockEntity(EntityType type, Level level) { super(type, level); - // This entity has its own simple upward-flight and landing checks below. Do not - // send it through the normal entity collision solver: Thoraxis can create many of - // these at once while chunks are loading, and swept entity collision is needlessly - // expensive for a block that only collides with the block directly above it. this.noPhysics = true; } @@ -148,8 +144,6 @@ public class UpwardFallingBlockEntity extends Entity { BlockPos headPos = BlockPos.containing(getX(), getBoundingBox().maxY, getZ()); BlockState above = level().getBlockState(headPos); - // Leaves block the entity but can't hold scaffolding — drop as item, unless this - // instance is allowed to land on leaves like a normal falling block would if (above.is(BlockTags.LEAVES) && this.breaksOnLeaves) { dropAndRemove(blockState); return; diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/WormHookProjectileEntity.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/WormHookProjectileEntity.java index 1a37212a..c57da896 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/WormHookProjectileEntity.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/WormHookProjectileEntity.java @@ -15,10 +15,6 @@ import net.minecraft.world.phys.BlockHitResult; import net.minecraft.world.phys.EntityHitResult; import net.minecraft.world.phys.HitResult; -/** - * Thrown out by the worm hook item. Sticks into the first block it hits and stays there, - * anchoring a swing rope back to the thrower until the player detaches. - */ public class WormHookProjectileEntity extends ThrowableItemProjectile { private boolean stuck = false; diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/ant/AntTeleportHelper.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/ant/AntTeleportHelper.java index 5210ac88..9d6847d4 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/ant/AntTeleportHelper.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/ant/AntTeleportHelper.java @@ -302,8 +302,6 @@ public final class AntTeleportHelper { return safePos; } - // The bounded search can fail near rough or sparsely-generated terrain. - // Retry once with a wider radius before giving up. loadArrivalSearchArea(destination, preferredPos, EXPANDED_ARRIVAL_SEARCH_RADIUS); Vec3 expandedSafePos = findSafeArrivalPositionInYRange( player, destination, preferredPos, yRange[0], yRange[1], @@ -393,11 +391,6 @@ public final class AntTeleportHelper { return null; } - /** - * Arrival validation needs neighboring chunks for collision checks. Load a - * bounded area up front so unloaded terrain is not mistaken for an unsafe - * destination and rejected prematurely. - */ public static void loadArrivalSearchArea(ServerLevel destination, BlockPos preferredPos, int searchRadius) { ChunkPos center = new ChunkPos(preferredPos); int chunkRadius = (searchRadius >> 4) + 1; @@ -462,9 +455,6 @@ public final class AntTeleportHelper { } } - // Prefer actual generated surfaces. This is especially important in - // Elythia, where the configured spawn height is not necessarily the - // playable surface. for (BlockPos candidate : surfaceCandidates) { if (candidate.getY() < minY || candidate.getY() > maxY) { continue; @@ -475,15 +465,10 @@ public final class AntTeleportHelper { } } - // Elythia arrivals must stay on the generated surface; a vertical scan - // can otherwise select an underground cave floor after a surface miss. if (elythia) { return null; } - // Heightmaps can be stale or unsuitable around structures, so retain a - // bounded exhaustive search as a final generated-terrain attempt in - // dimensions whose configured arrival ranges intentionally allow it. for (int radius = 0; radius <= searchRadius; radius++) { for (int xOff = -radius; xOff <= radius; xOff++) { for (int zOff = -radius; zOff <= radius; zOff++) { diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/ant/RainbowAntEntity.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/ant/RainbowAntEntity.java index 0f9fd7a6..c813f26d 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/ant/RainbowAntEntity.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/ant/RainbowAntEntity.java @@ -78,11 +78,6 @@ public class RainbowAntEntity extends BaseAntEntity implements GeoEntity { return this.hasActiveInfinityDestination() || super.requiresCustomPersistence(); } - /** - * Called on death. If this ant has already been activated (fed its reagent) and Infinity integration is - * enabled, looks for a nearby unlit obsidian Nether-portal frame and, if found, ignites it as a permanent - * physical Infinity Dimensions portal to this ant's assigned dimension. - */ public boolean tryIgniteInfinityPortalOnDeath() { if (!this.infinityActivated) { return false; diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/ant/TermiteEntity.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/ant/TermiteEntity.java index 591b0bc9..aaac6cc1 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/ant/TermiteEntity.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/ant/TermiteEntity.java @@ -260,7 +260,6 @@ public class TermiteEntity extends BaseAntEntity implements GeoEntity { } continue; } - // North/South faces (dz = ±r) for (int dx = -r; dx <= r; dx++) { candidate.set(ox + dx, oy + dy, oz - r); if (this.isValidWoodTarget(candidate)) { @@ -273,7 +272,6 @@ public class TermiteEntity extends BaseAntEntity implements GeoEntity { if (d < bestDistSq) { bestDistSq = d; bestPos = candidate.immutable(); } } } - // East/West faces (dx = ±r, corners already covered above) for (int dz = -r + 1; dz <= r - 1; dz++) { candidate.set(ox - r, oy + dy, oz + dz); if (this.isValidWoodTarget(candidate)) { diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/basilisk/BasiliskEntity.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/basilisk/BasiliskEntity.java index d296b7c2..be1872b1 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/basilisk/BasiliskEntity.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/basilisk/BasiliskEntity.java @@ -669,13 +669,11 @@ public class BasiliskEntity extends Monster implements GeoEntity { this.stopActiveMovement(); } - /** Scales turn rate by intended movement speed so the long body pivots tighter when slow and wider when fast. */ private static final class BasiliskMoveControl extends MoveControl { private BasiliskMoveControl(Mob mob) { super(mob); } - /** Call this to prevent the move control from reapplying speed this tick. */ public void halt() { this.operation = MoveControl.Operation.WAIT; } @@ -735,7 +733,6 @@ public class BasiliskEntity extends Monster implements GeoEntity { BasiliskEntity.this.getLookControl().setLookAt(target, 30.0F, 30.0F); } - // super handles path recalc and cooldown timer super.tick(); if (target != null && BasiliskEntity.this.isWithinMeleeAttackRange(target)) { diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/brutalfly/BrutalflyEntity.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/brutalfly/BrutalflyEntity.java index 0db113ae..b8a9f5e6 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/brutalfly/BrutalflyEntity.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/brutalfly/BrutalflyEntity.java @@ -113,7 +113,6 @@ public class BrutalflyEntity extends Monster implements GeoEntity { private double currentStrafeAngleOffset = this.random.nextDouble() * (Math.PI * 2.0D); private boolean spawnedDeathButterflies; - // Cocoon state (server-side) @Nullable BlockPos anchorPos; private int cocoonHits; @@ -312,7 +311,6 @@ public class BrutalflyEntity extends Monster implements GeoEntity { } if (this.getAnimationState() == ANIM_COCOON_IDLE) { - // Will be reset to COCOON after idle ticks counted down } else if (this.tickCount % 200 == 17 && this.random.nextFloat() < 0.4F) { this.setAnimationState(ANIM_COCOON_IDLE); this.cocoonAnimTicks = COCOON_IDLE_ANIM_TICKS; diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/glimmer/GlimmerAntBehavior.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/glimmer/GlimmerAntBehavior.java index 45df06db..ce8c6235 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/glimmer/GlimmerAntBehavior.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/glimmer/GlimmerAntBehavior.java @@ -77,7 +77,6 @@ public class GlimmerAntBehavior implements GlimmerVariantBehavior { @Override public EntityDimensions adultDimensions() { - // Matches the real ant's hitbox. return EntityDimensions.scalable(0.6375F, 0.2125F); } diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/glimmer/GlimmerAppleCowBehavior.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/glimmer/GlimmerAppleCowBehavior.java index ccdf4d96..ff586fd3 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/glimmer/GlimmerAppleCowBehavior.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/glimmer/GlimmerAppleCowBehavior.java @@ -80,7 +80,6 @@ public class GlimmerAppleCowBehavior implements GlimmerVariantBehavior { @Override public EntityDimensions adultDimensions() { - // Matches the real Apple Cow's hitbox (extends vanilla Cow). return EntityDimensions.scalable(0.9F, 1.4F); } diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/glimmer/GlimmerCompanionSavedData.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/glimmer/GlimmerCompanionSavedData.java index ef75fe86..9ae2f2c4 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/glimmer/GlimmerCompanionSavedData.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/glimmer/GlimmerCompanionSavedData.java @@ -11,10 +11,6 @@ import net.minecraft.server.level.ServerLevel; import net.minecraft.world.entity.Entity; import net.minecraft.world.level.saveddata.SavedData; -/** - * Tracks each player's current Glimmer companion so taming a new one despawns the old, - * even if the old companion is in a different loaded dimension. - */ public class GlimmerCompanionSavedData extends SavedData { private static final String ID = "antarchy_glimmer_companions"; private static final String ENTRIES_KEY = "Entries"; @@ -56,11 +52,6 @@ public class GlimmerCompanionSavedData extends SavedData { ); } - /** - * Records {@code newCompanion} as {@code owner}'s current Glimmer. Any previous - * companion found in a currently loaded dimension isn't removed - it just loses - * its owner and becomes a wild, re-tameable Glimmer again. - */ public static void replaceCompanion(MinecraftServer server, UUID owner, UUID newCompanion) { GlimmerCompanionSavedData data = get(server); UUID previous = data.companionByOwner.put(owner, newCompanion); @@ -80,10 +71,6 @@ public class GlimmerCompanionSavedData extends SavedData { } } - /** - * Removes {@code owner}'s companion record if it currently points at {@code companion}, - * used when that Glimmer is captured into a bottle rather than replaced by a new one. - */ public static void clearCompanion(MinecraftServer server, UUID owner, UUID companion) { GlimmerCompanionSavedData data = get(server); if (companion.equals(data.companionByOwner.get(owner))) { diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/glimmer/GlimmerEntity.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/glimmer/GlimmerEntity.java index 9c35ac44..009729e7 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/glimmer/GlimmerEntity.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/glimmer/GlimmerEntity.java @@ -147,7 +147,6 @@ public class GlimmerEntity extends TamableAnimal implements GeoEntity { @Override public void push(Entity entity) { - // no-op: Glimmers pass through other entities } @Override @@ -179,10 +178,6 @@ public class GlimmerEntity extends TamableAnimal implements GeoEntity { this.entityData.set(ABILITY_ANIM_TICKS, ticks); } - /** - * Ticks remaining in the daytime despawn fade-out, or 0 if not currently fading. - * Used client-side to fade the render alpha to nothing before the entity is removed. - */ public int getFadeTicks() { return this.entityData.get(FADE_TICKS); } @@ -499,10 +494,6 @@ public class GlimmerEntity extends TamableAnimal implements GeoEntity { return GlimmerVariant.random(this.random); } - /** - * Wild Glimmers are common in Glimmering Pools, but only rarely (and only at night) - * turn up in Ouranwood Forest, the Elythia Meadow, and the Peach Forest. - */ public static boolean checkGlimmerSpawnRules(EntityType type, ServerLevelAccessor level, MobSpawnType spawnType, BlockPos pos, net.minecraft.util.RandomSource random) { if (!net.minecraft.world.entity.animal.Animal.checkAnimalSpawnRules(type, level, spawnType, pos, random)) { @@ -601,12 +592,6 @@ public class GlimmerEntity extends TamableAnimal implements GeoEntity { } } - /** - * With {@code noPhysics} true, Glimmers never travel through vanilla's normal movement path, - * so the usual body-follows-head catch-up never runs and a stationary Glimmer looking around - * (LookAtPlayerGoal/RandomLookAroundGoal only move the head) ends up with its head rendered - * far past the model's body — this keeps the body snapped within {@link #getMaxHeadYRot()} of it. - */ private void clampBodyToHeadRotation() { float maxYaw = this.getMaxHeadYRot(); float delta = Mth.wrapDegrees(this.yHeadRot - this.yBodyRot); diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/glimmer/GlimmerFrogBehavior.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/glimmer/GlimmerFrogBehavior.java index 6d2e1bd4..35c41112 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/glimmer/GlimmerFrogBehavior.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/glimmer/GlimmerFrogBehavior.java @@ -111,7 +111,6 @@ public class GlimmerFrogBehavior implements GlimmerVariantBehavior { @Override public EntityDimensions adultDimensions() { - // Matches vanilla Frog's real hitbox. return EntityDimensions.scalable(0.5F, 0.5F); } @@ -155,7 +154,6 @@ public class GlimmerFrogBehavior implements GlimmerVariantBehavior { pending.ticksRemaining--; if (pending.ticksRemaining == TONGUE_ANIM_TICKS - TONGUE_GRAB_TICK) { - // The tongue "catches" the target partway through the animation and reels it in. entity.playSound(SoundEvents.FROG_TONGUE, 1.0F, 1.0F); } if (pending.ticksRemaining <= TONGUE_ANIM_TICKS - TONGUE_GRAB_TICK) { diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/glimmer/GlimmerVariantBehavior.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/glimmer/GlimmerVariantBehavior.java index 771ec901..faaf9518 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/glimmer/GlimmerVariantBehavior.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/glimmer/GlimmerVariantBehavior.java @@ -10,11 +10,6 @@ import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemStack; import org.jetbrains.annotations.Nullable; -/** - * Per-variant behavior for the composite {@link GlimmerEntity}: AI, model/texture selection, and sounds. - * One concrete implementation per {@link GlimmerVariant}, chosen via composition rather than subclassing - * so a single EntityType can be reliably reconstructed across save/load. - */ public interface GlimmerVariantBehavior { void registerGoals(GlimmerEntity entity); @@ -32,124 +27,62 @@ public interface GlimmerVariantBehavior { SoundEvent deathSound(); - /** - * Optional variant-specific interaction (e.g. shearing the Apple Cow variant for a Spirit Apple). - * Return null to fall through to the entity's default interaction handling. - */ @Nullable default InteractionResult onInteract(GlimmerEntity entity, Player player, ItemStack stack, InteractionHand hand) { return null; } - /** - * Optional per-tick hook for variant-specific server logic (e.g. the Basilisk's petrify gaze). - */ default void customTick(GlimmerEntity entity) { } - /** - * Optional hook fired after {@code entity} lands a successful hit on {@code target} - * (e.g. the Frog variant dropping Lumen Froglight when it kills a small Magma Cube). - */ default void onHurtTarget(GlimmerEntity entity, Entity target) { } - /** - * Called periodically (roughly once a second) while this Glimmer is tamed and its - * owner is nearby and loaded. Should (re)apply the variant's passive effect with a - * short duration so it naturally lapses if the owner leaves range. - */ default void tickPassive(GlimmerEntity entity, Player owner) { } - /** - * Called every server tick (not just the coarse refresh interval) while nearby, for - * passives that need finer-grained bookkeeping than a periodic effect refresh (e.g. - * the Apple Cow's exhaustion dampening). - */ default void tickPassiveEveryTick(GlimmerEntity entity, Player owner) { } - /** - * Called once the tick the owner leaves range (or the companion is otherwise no - * longer eligible) so any directly-applied (non-MobEffect) passive state can be undone. - */ default void clearPassive(GlimmerEntity entity, Player owner) { } - /** - * Animation (from this variant's own animation file) to play while - * {@link GlimmerEntity#playAbilityAnimation(int)} is active. Null plays no override. - */ @Nullable default software.bernie.geckolib.animation.RawAnimation abilityAnimation() { return null; } - /** - * Animation to play in place of the default walk loop while moving. Null uses the - * default walk animation (e.g. the Deer switches to its run clip while following its owner). - */ @Nullable default software.bernie.geckolib.animation.RawAnimation movingAnimation(GlimmerEntity entity) { return null; } - /** - * Animation to play while idle in place of the default idle loop. Null uses the - * shared Glimmer idle animation. - */ @Nullable default software.bernie.geckolib.animation.RawAnimation idleAnimation(GlimmerEntity entity) { return null; } - /** - * Navigation speed multiplier used while following the owner (see {@link GlimmerFollowOwnerGoal}). - */ default double followSpeedModifier() { return 1.15D; } - /** - * Shared action-bar feedback helper for ability-use messages. - */ default void sendAbilityMessage(Player owner, net.minecraft.network.chat.Component message) { owner.displayClientMessage(message, true); } - /** - * Called every server tick while the owner is nearby and the ability is off cooldown. - * Implementations should check their own trigger condition and, if it fires, perform - * the ability and call {@link GlimmerEntity#startAbilityCooldown()}. - */ default void tickAbilityCheck(GlimmerEntity entity, Player owner) { } - /** - * Cooldown duration for this variant's active ability, in ticks. - */ default int abilityCooldownTicks() { return 20 * 120; } - /** - * Per-tick shrink/growth-recovery rate used to decay {@link GlimmerEntity#getGrowthScale()} - * back toward 1.0 after an ability temporarily changes it. 0 means the variant never changes scale. - */ default double growthDecayPerTick() { return 0.0D; } - /** - * Hitbox size matching the real creature this variant is a "spirit" of, rather than - * a single hitbox shared by every variant. - */ EntityDimensions adultDimensions(); - /** - * Defaults to half the adult size, matching vanilla's typical baby scaling. - */ default EntityDimensions babyDimensions() { return this.adultDimensions().scale(0.5F); } diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/kraken/KrakenEntity.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/kraken/KrakenEntity.java index 1758cb39..e7dbc50a 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/kraken/KrakenEntity.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/kraken/KrakenEntity.java @@ -85,7 +85,6 @@ public class KrakenEntity extends Monster implements GeoEntity, MultipartEntityO private static final int ATTACK_SWING_RIGHT = 3; private static final int ATTACK_SLAM = 4; - // Synced animation state values private static final int ANIM_NONE = 0; private static final int ANIM_CRY = 1; private static final int ANIM_GRAB = 2; @@ -199,7 +198,6 @@ public class KrakenEntity extends Monster implements GeoEntity, MultipartEntityO @Override public void registerControllers(AnimatableManager.ControllerRegistrar controllers) { - // idle_controller always loops idle; action_controller layers on top when active controllers.add(new AnimationController<>(this, "idle_controller", 0, state -> { if (this.getAnimationState() == ANIM_DEATH) { return PlayState.STOP; @@ -646,7 +644,6 @@ public class KrakenEntity extends Monster implements GeoEntity, MultipartEntityO } } - // swingRight=true means ATTACK_SWING_RIGHT, which knocks players to the Kraken's LEFT private void tickSwingAttack(boolean swingRight) { if (this.actionTicks == 10) { this.performSwing(swingRight); @@ -749,9 +746,6 @@ public class KrakenEntity extends Monster implements GeoEntity, MultipartEntityO return attackState == ATTACK_SLAM; } - // Determines left vs right based on which side the target is on relative to the Kraken. - // Kraken's right vector is forward x world-up. If target is on the Kraken's right side, - // use swing_right (which knocks them left). If on the left, use swing_left (knocks them right). private int resolveSwingDirection(LivingEntity target) { Vec3 forward = this.getViewVector(1.0F); Vec3 right = forward.cross(new Vec3(0, 1, 0)).normalize(); @@ -765,7 +759,6 @@ public class KrakenEntity extends Monster implements GeoEntity, MultipartEntityO float damage = (float) this.getAttributeValue(Attributes.ATTACK_DAMAGE); Vec3 forward = this.getViewVector(1.0F); - // swingRight knocks to Kraken's left (-right), swingLeft knocks to Kraken's right (+right) Vec3 right = forward.cross(new Vec3(0, 1, 0)).normalize(); Vec3 knockDir = swingRight ? right.scale(-1) : right; diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/nightmare/NightmareEntity.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/nightmare/NightmareEntity.java index b88b3994..c8f26936 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/nightmare/NightmareEntity.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/nightmare/NightmareEntity.java @@ -642,7 +642,6 @@ public class NightmareEntity extends Monster implements GeoEntity { return this.entityData.get(ANIMATION_STATE); } - /** Selects the looping flight pose for the isolated computer archive preview instance. */ public void setArchivePreviewFlying() { this.setAnimationState(ANIM_FLY); } diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/KingEntity.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/KingEntity.java index 86242ae3..0c74df0a 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/KingEntity.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/KingEntity.java @@ -105,7 +105,6 @@ public class KingEntity extends RoyalBossEntity { private static final double CHAIN_LIGHTNING_JUMP_RANGE = 9.0D; private static final int ICE_FREEZE_PER_TICK = 7; private static final int BEHAVIOR_SCORE_CAP = 12; - /** Keep the tree-bound patrol safely inside the authored tree footprint. */ private static final double TREE_ORBIT_RADIUS = 128.0D; private static final double TREE_ORBIT_ANGLE_STEP = 0.014D; private static final int TREE_ORBIT_PATH_SAMPLES = 16; @@ -994,8 +993,6 @@ public class KingEntity extends RoyalBossEntity { this.kingCombatWaypoint = null; this.playRoyalSound(AntarchySoundEvents.KING_ROAR.get(), 1.12F); } else { - // Keep Close Quarters from silently dissolving when the first ring is obstructed. - // The next aerial tick will retry the expanded landing search. this.kingLandingWaypoint = null; this.groundAssaultCooldownTicks = 100; this.kingLandingRetryTicks = LANDING_RETRY_TICKS; @@ -1077,9 +1074,6 @@ public class KingEntity extends RoyalBossEntity { if (this.level().noCollision(this, fallbackBox)) { return fallback; } - // Last resort: land directly beneath the King if the target ring is obstructed. - // This still gives Close Quarters a committed ground sequence instead of silently - // remaining airborne over difficult tree geometry. double directY = GravityApi.isGravityInverted(this) ? this.position().y - 0.1D : this.groundYBelow(this.getX(), this.getZ()) + 0.1D; @@ -1143,8 +1137,6 @@ public class KingEntity extends RoyalBossEntity { } } if (orbitWaypoint == null && treeBoundCombat) { - // If the tree blocks the next orbital lane, turn away and try the opposite side - // before falling back to a clear target-relative position. this.kingStrafeDirection *= -1; double angle = currentAngle + this.kingStrafeDirection * COMBAT_ORBIT_ANGLE_STEP; double x = target.getX() + Math.cos(angle) * range; @@ -1173,7 +1165,6 @@ public class KingEntity extends RoyalBossEntity { + this.random.nextInt(COMBAT_WAYPOINT_VARIANCE + 1); this.kingCombatProgressPosition = this.position(); this.kingCombatProgressTicks = 0; - // Keep a consistent orbit direction for several passes so movement reads as circling. } private void stabilizeKingRotation() { diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/RoyalBlackHoleEntity.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/RoyalBlackHoleEntity.java index cd00bdf7..0bad0db4 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/RoyalBlackHoleEntity.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/RoyalBlackHoleEntity.java @@ -248,7 +248,6 @@ public class RoyalBlackHoleEntity extends Entity implements GeoEntity, TimeDilat return AntarchySettings.queenBlackHoleBlockSuctionCap(); } - /** Returns the center of the animated black-hole cube in world coordinates. */ @Override public Vec3 timeDilationCenter() { return this.effectCenter(); diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/RoyalBossEntity.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/RoyalBossEntity.java index b1089641..ddd59917 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/RoyalBossEntity.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/RoyalBossEntity.java @@ -344,7 +344,6 @@ public abstract class RoyalBossEntity extends Monster implements GeoEntity, Mult return 0.35D; } - /** Lets a boss provide a bespoke air/ground cadence without changing the other royal encounter. */ protected boolean managesOwnCombatLocomotion() { return false; } @@ -357,12 +356,10 @@ public abstract class RoyalBossEntity extends Monster implements GeoEntity, Mult return 1.3D; } - /** Prevents normal head/body scheduling while a bespoke movement sequence owns the boss. */ protected boolean blocksRoyalAttacksForMovement() { return false; } - /** Prevents new beam volleys while a bespoke attack has reserved the heads. */ protected boolean blocksRoyalBeamScheduling() { return false; } @@ -380,17 +377,14 @@ public abstract class RoyalBossEntity extends Monster implements GeoEntity, Mult protected void onRoyalPhaseTransitionCompleted(Phase nextPhase) { } - /** Allows a boss to tune its head-bite concurrency without changing the other royal boss. */ protected int maxConcurrentHeadAttacks(Phase phase) { return phase.maxConcurrentHeadAttacks(); } - /** Allows a boss to tune bite pacing without changing the other royal boss. */ protected int biteCooldownTicks(Phase phase) { return Math.max(10, Mth.floor(AntarchySettings.royalBossBiteCooldownTicks() * phase.cooldownScale())); } - /** Allows either royal boss to tune bite damage without changing the other. */ protected double biteDamageMultiplier() { return AntarchySettings.royalBossBiteDamageMultiplier(); } @@ -825,7 +819,6 @@ public abstract class RoyalBossEntity extends Monster implements GeoEntity, Mult return phase.maxConcurrentHeadAttacks(); } - /** Uses the beam controller's smoothed target point instead of the boss body's forward axis. */ protected boolean royalBeamUsesTrackedAim() { return false; } @@ -862,7 +855,6 @@ public abstract class RoyalBossEntity extends Monster implements GeoEntity, Mult this.onRoyalPhaseTransitionStarted(previousPhase, nextPhase); } - /** Returns the live players currently participating in the encounter. */ protected final List royalEncounterPlayers(ServerLevel level) { double range = Math.max(32.0D, this.getAttributeValue(Attributes.FOLLOW_RANGE)); LinkedHashSet players = new LinkedHashSet<>(this.bossEvent.getPlayers()); diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/RoyalElementalProjectileEntity.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/RoyalElementalProjectileEntity.java index 2025b9c2..743d40a8 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/RoyalElementalProjectileEntity.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/RoyalElementalProjectileEntity.java @@ -68,7 +68,6 @@ public class RoyalElementalProjectileEntity extends ThrowableProjectile implemen return projectile; } - /** Solves a discrete ballistic lead against the projectile's drag and gravity. */ public static Vec3 aimDirection(Vec3 origin, LivingEntity target, RoyalBeamElement element) { double speed = element == RoyalBeamElement.ICE ? ICEBALL_SPEED : FIREBALL_SPEED; double gravity = element == RoyalBeamElement.ICE ? 0.006D : 0.018D; diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/decree/StandYourGroundDecree.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/decree/StandYourGroundDecree.java index 1bc33fbd..36fdc3f3 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/decree/StandYourGroundDecree.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/royal/decree/StandYourGroundDecree.java @@ -15,7 +15,6 @@ public final class StandYourGroundDecree implements RoyalDecree { } @Override public Evaluation evaluate(ServerLevel level, KingEntity king, LivingEntity target) { if (target instanceof net.minecraft.server.level.ServerPlayer player && player.isFallFlying()) { - // Gliding carries unavoidable momentum; begin measuring again from the landing point. this.anchors.put(target.getUUID(), target.position()); return Evaluation.COMPLIANT; } diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/trades/ComputerScientistTradeManager.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/trades/ComputerScientistTradeManager.java index db692bac..7a0e1dd1 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/trades/ComputerScientistTradeManager.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/trades/ComputerScientistTradeManager.java @@ -20,7 +20,6 @@ import java.util.ArrayList; import java.util.List; import java.util.Map; -/** Loads Computer Scientist offers from data/computer_scientist_trades/*.json. */ public final class ComputerScientistTradeManager extends SimpleJsonResourceReloadListener { private static final Gson GSON = new Gson(); private static final String DIRECTORY = "computer_scientist_trades"; diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/trades/DrTrayaurusTradeManager.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/trades/DrTrayaurusTradeManager.java index 6ad087c1..b00665d9 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/trades/DrTrayaurusTradeManager.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/trades/DrTrayaurusTradeManager.java @@ -113,13 +113,6 @@ public final class DrTrayaurusTradeManager extends SimpleJsonResourceReloadListe } } - /** - * One side of a trade. {@code components} is optional: on {@code sell} it is a data component - * patch applied to the result (enchantments, custom name, ...); on {@code buy}/{@code second_buy} - * it is a component predicate the offered stack must match exactly for each listed component. - * It is kept as raw JSON and parsed per offer because components such as enchantments need - * registry access, which the reload listener does not have. - */ private record StackEntry(ResourceLocation itemId, int count, Optional components) { private static final Codec CODEC = RecordCodecBuilder.create(instance -> instance.group( ResourceLocation.CODEC.fieldOf("item").forGetter(StackEntry::itemId), @@ -162,7 +155,6 @@ public final class DrTrayaurusTradeManager extends SimpleJsonResourceReloadListe if (this.components.isEmpty()) { return Optional.of(new ItemCost(item.get(), this.count)); } - // A predicate that fails to parse drops the trade rather than accepting any stack. return DataComponentPredicate.CODEC .parse(RegistryOps.create(JsonOps.INSTANCE, registries), this.components.get()) .resultOrPartial(message -> LOGGER.error("Dr. Trayaurus trade {}: bad components: {}", this.itemId, message)) diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/fluid/AntarchyFluidChecks.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/fluid/AntarchyFluidChecks.java index b79ae3af..4bdfb648 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/fluid/AntarchyFluidChecks.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/fluid/AntarchyFluidChecks.java @@ -51,11 +51,6 @@ public final class AntarchyFluidChecks { return BILE_VEIN_ID.equals(blockId); } - /** - * Bile always wins: worldgen foliage must not anchor on or near bile fluid or its solid - * bile_vein shell, since cyst/vein features can carve into a neighboring chunk after this - * chunk's vegetation has already been placed. - */ public static boolean hasBileNearby(LevelAccessor level, BlockPos center, int radius) { BlockPos.MutableBlockPos mutable = new BlockPos.MutableBlockPos(); for (int dx = -radius; dx <= radius; dx++) { diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/horde/CavarynCreatureSpawner.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/horde/CavarynCreatureSpawner.java index c41df699..1e36924d 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/horde/CavarynCreatureSpawner.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/horde/CavarynCreatureSpawner.java @@ -21,15 +21,6 @@ import net.minecraft.world.phys.AABB; import java.util.HashMap; import java.util.Map; -/** - * Tops up stink bug / rolly polly populations near players in Cavaryn. - * - * Vanilla's NaturalSpawner picks a spawn Y uniformly at random between the dimension's min_y - * and a column's heightmap top. In Cavaryn that range spans the full 208-block dimension height, - * but any given column's actual floor only occupies a sliver of that, so the vanilla algorithm - * almost never lands on real ground even though floor itself is common. This scans a column - * directly for a real floor spot instead. - */ public final class CavarynCreatureSpawner { private static final ResourceKey CAVARYN = ResourceKey.create( net.minecraft.core.registries.Registries.DIMENSION, diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/item/BigBerthaItem.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/item/BigBerthaItem.java index 8e7260ed..b8e075d6 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/item/BigBerthaItem.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/item/BigBerthaItem.java @@ -70,7 +70,6 @@ public class BigBerthaItem extends SwordItem implements GeoItem { private static final int TORETERROR_COOLDOWN_TICKS = 200; private static final int TORETERROR_SHAKE_TICKS = 25; - /** Client-side only: how many ticks of camera shake remain from a Toreterror landing. */ public static int clientShakeTicks = 0; private static final ResourceLocation ATTACK_RANGE_MODIFIER_ID = ResourceLocation.fromNamespaceAndPath("antarchy", "big_bertha_attack_range"); private final Tier tier; @@ -178,7 +177,7 @@ public class BigBerthaItem extends SwordItem implements GeoItem { } if (isToreterrorJumping(stack) && player.getMainHandItem() == stack) { - player.fallDistance = 0.0F; // prevent fall damage during the crash-down + player.fallDistance = 0.0F; boolean launched = readInt(stack, TORETERROR_LAUNCHED_TAG) == 1; if (!launched && !player.onGround()) { CustomData.update(DataComponents.CUSTOM_DATA, stack, tag -> tag.putInt(TORETERROR_LAUNCHED_TAG, 1)); diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/item/BloodCrystalShardItem.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/item/BloodCrystalShardItem.java index ed7c4409..32d425d4 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/item/BloodCrystalShardItem.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/item/BloodCrystalShardItem.java @@ -38,7 +38,6 @@ public class BloodCrystalShardItem extends Item { return InteractionResultHolder.fail(stack); } - // Restore armor shields first, then apple shields if (armorLost > 0) { access.antarchy$setArmorShieldsActive(access.antarchy$getArmorShieldsActive() + 1); access.antarchy$setArmorShieldLostCount(armorLost - 1); diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/item/BrutalflyElytraItem.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/item/BrutalflyElytraItem.java index 1dbfe747..92952a1f 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/item/BrutalflyElytraItem.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/item/BrutalflyElytraItem.java @@ -22,7 +22,6 @@ public final class BrutalflyElytraItem extends ElytraItem { private static final ResourceLocation ARMOR_MODIFIER_ID = ResourceLocation.fromNamespaceAndPath("antarchy", "brutalfly_elytra_armor"); private static final ResourceLocation TOUGHNESS_MODIFIER_ID = ResourceLocation.fromNamespaceAndPath("antarchy", "brutalfly_elytra_toughness"); - // Set by NeoForge client setup to return the actual bound key name public static Supplier FLAP_KEY_NAME = () -> Component.literal("Shift"); public BrutalflyElytraItem(Properties properties) { diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/item/GravityGunItem.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/item/GravityGunItem.java index 281a8312..b02cd738 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/item/GravityGunItem.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/item/GravityGunItem.java @@ -377,8 +377,6 @@ public class GravityGunItem extends Item implements GeoItem { Vec2 holdRotation = getHoldRotation(player); heldTarget.setNoGravity(true); - // Snap back only when the held entity has drifted badly; otherwise drive it with - // velocity so the client can interpolate the motion smoothly between server updates. if (movement.lengthSqr() > 16.0D) { heldTarget.moveTo(holdPosition.x, holdPosition.y, holdPosition.z, holdRotation.x, holdRotation.y); heldTarget.setDeltaMovement(Vec3.ZERO); diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/item/MogglesCaveDetector.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/item/MogglesCaveDetector.java index 71ba9d85..43f5f5ee 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/item/MogglesCaveDetector.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/item/MogglesCaveDetector.java @@ -11,20 +11,10 @@ import java.util.HashSet; import java.util.Queue; import java.util.Set; -/** - * Client-side cave finder for Moggles. - * - *

Every {@link #SCAN_INTERVAL} ticks, BFS-maps the player's current connected - * air space, then scans outward to find the nearest underground air pocket that - * is NOT part of that space. The result is stored in {@link #caveTarget} and - * read each tick by the particle renderer. - */ public final class MogglesCaveDetector { private static final int SCAN_INTERVAL = 40; - /** How far to flood-fill the player's own air pocket before stopping. */ private static final int PLAYER_SPACE_LIMIT = 8; - /** Minimum number of air neighbors a candidate block must have (filters tiny cracks). */ private static final int MIN_AIR_NEIGHBORS = 2; private static volatile BlockPos caveTarget = null; @@ -36,7 +26,6 @@ public final class MogglesCaveDetector { return caveTarget; } - /** Call once per client tick while Moggles are equipped. */ public static void tick(Player player, Level level) { if (--cooldown > 0) return; cooldown = SCAN_INTERVAL; @@ -51,11 +40,10 @@ public final class MogglesCaveDetector { private static BlockPos scan(Player player, Level level) { BlockPos origin = player.blockPosition(); - // BFS through air from the player's feet to map their current open space. Set playerSpace = new HashSet<>(); Queue queue = new ArrayDeque<>(); - BlockPos eyePos = origin.above(); // also include the eye block + BlockPos eyePos = origin.above(); for (BlockPos seed : new BlockPos[]{origin, eyePos}) { if (level.isLoaded(seed) && level.getBlockState(seed).isAir()) { long key = seed.asLong(); @@ -77,7 +65,6 @@ public final class MogglesCaveDetector { } } - // Scan the wider radius for underground air NOT in the player's space. BlockPos nearest = null; double nearestDistSq = Double.MAX_VALUE; int r = (int) AntarchySettings.mogglesVisionRadius(); @@ -91,7 +78,7 @@ public final class MogglesCaveDetector { if (playerSpace.contains(key)) continue; if (!level.isLoaded(pos)) continue; if (!level.getBlockState(pos).isAir()) continue; - if (level.canSeeSky(pos)) continue; // ignore surface air + if (level.canSeeSky(pos)) continue; int airNeighbors = 0; for (Direction dir : Direction.values()) { diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/item/RoyalGuardianShieldItem.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/item/RoyalGuardianShieldItem.java index 6da112c8..197d39fa 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/item/RoyalGuardianShieldItem.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/item/RoyalGuardianShieldItem.java @@ -122,6 +122,6 @@ public class RoyalGuardianShieldItem extends ShieldItem { private static boolean isInCommandLookCone(Player player, Mob mob) { var direction = mob.getBoundingBox().getCenter().subtract(player.getEyePosition()).normalize(); - return player.getViewVector(1.0F).dot(direction) >= 0.9063078D; // 25-degree half-angle + return player.getViewVector(1.0F).dot(direction) >= 0.9063078D; } } diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/item/RoyalGuardianSwordAbilities.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/item/RoyalGuardianSwordAbilities.java index 6ec5b1c3..0a9684d9 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/item/RoyalGuardianSwordAbilities.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/item/RoyalGuardianSwordAbilities.java @@ -31,7 +31,6 @@ import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; import org.joml.Vector3f; -/** Player-safe kernels for the Royal Guardian Sword's King-derived elemental modes. */ public final class RoyalGuardianSwordAbilities { private static final ThreadLocal SECONDARY_DAMAGE_DEPTH = ThreadLocal.withInitial(() -> 0); private static final ThreadLocal MELEE_ATTACK = new ThreadLocal<>(); diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/item/ultimate/UltimateCrossbowItem.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/item/ultimate/UltimateCrossbowItem.java index f13590f5..d6bf3cb0 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/item/ultimate/UltimateCrossbowItem.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/item/ultimate/UltimateCrossbowItem.java @@ -31,7 +31,7 @@ import java.util.List; public class UltimateCrossbowItem extends CrossbowItem { private static final int MAX_ARROWS = 16; - private static final int FIRE_COOLDOWN_TICKS = 5; // 4 shots/sec + private static final int FIRE_COOLDOWN_TICKS = 5; private static final float SHOOTING_POWER = 3.15F; private static final double VANILLA_CROSSBOW_ARROW_DAMAGE = 7.0D; private static final String RESERVE_PROJECTILES_TAG = "UltimateCrossbowProjectiles"; @@ -110,11 +110,9 @@ public class UltimateCrossbowItem extends CrossbowItem { toFire.add(arrow); } - // Temporarily set only the arrows for this shot so performShooting fires exactly them stack.set(DataComponents.CHARGED_PROJECTILES, ChargedProjectiles.of(toFire)); this.performShooting(level, player, hand, stack, SHOOTING_POWER, 1.0F, null); - // performShooting clears CHARGED_PROJECTILES; restore remaining valid arrows if any saveLoadedProjectiles(stack, player.registryAccess(), all); } diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/minecart/AntimetalMinecartPhysics.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/minecart/AntimetalMinecartPhysics.java index 51dc3cdd..3267c556 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/minecart/AntimetalMinecartPhysics.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/minecart/AntimetalMinecartPhysics.java @@ -17,17 +17,6 @@ import net.minecraft.world.level.block.state.properties.RailShape; import net.minecraft.world.phys.Vec3; import org.jetbrains.annotations.Nullable; -/** - * A direct mirror of {@code AbstractMinecart.moveAlongTrack}/{@code getPos}/{@code getPosOffs}, - * adapted for ceiling-mounted track. The world-Y meaning of "ascending"/"descending" does not - * need to be sign-flipped anywhere here — lower world Y is lower world Y whether a rail rests on - * a floor or hangs from a ceiling. What actually differs from vanilla is: the rail sits near the - * top of its cell instead of near the bottom (see {@link AntimetalRailHelper#attachY}), support - * is required above instead of below, and the "which cell owns this position" disambiguation - * checks the cell above instead of the cell below. Everything else — the exit-projection math, - * the slope acceleration constant, the player-push nudge, using real collision-checked - * {@code Entity.move} rather than a hand-rolled collision test — is a straight port. - */ public final class AntimetalMinecartPhysics { private static final double SLOPE_ACCEL = 0.0078125D; private static final double MAX_RAIL_SPEED = 0.4D; diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/network/AntarchyGameNetworkHandler.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/network/AntarchyGameNetworkHandler.java index f1d24486..e4a76e3e 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/network/AntarchyGameNetworkHandler.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/network/AntarchyGameNetworkHandler.java @@ -8,7 +8,6 @@ import net.minecraft.server.level.ServerLevel; import net.minecraft.server.level.ServerPlayer; import net.minecraft.world.level.Level; -/** Handles Antarchy-specific game progress sent by AntOS game extensions. */ public final class AntarchyGameNetworkHandler { private static BiConsumer resultSender = (player, result) -> { }; diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/network/AntarchyGameNetworking.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/network/AntarchyGameNetworking.java index 618336a4..97a750ac 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/network/AntarchyGameNetworking.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/network/AntarchyGameNetworking.java @@ -3,7 +3,6 @@ package com.craisinlord.antarchy.content.network; import net.minecraft.core.BlockPos; import java.util.function.Consumer; -/** Small Antarchy game-progress bridge over the AntOS computer session. */ public final class AntarchyGameNetworking { private static Consumer sender = payload -> { }; private AntarchyGameNetworking() { } diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/portal/RainbowPortalIgniter.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/portal/RainbowPortalIgniter.java index ff83f8d7..bcb831a7 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/portal/RainbowPortalIgniter.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/portal/RainbowPortalIgniter.java @@ -13,12 +13,6 @@ import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; import org.jetbrains.annotations.Nullable; -/** - * Converts an unlit obsidian frame near a killed rainbow ant into a real, permanent Infinite Dimensions - * portal to that ant's assigned dimension. Lights the frame as a normal vanilla Nether portal first, then - * hands it to Infinity's own portal-creation pipeline (the same one used when a book is thrown into a lit - * portal), so the result behaves exactly like any other physical Infinity portal from then on. - */ public final class RainbowPortalIgniter { private static final int SEARCH_RADIUS = 2; diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/portalgun/PortalGunSavedData.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/portalgun/PortalGunSavedData.java index 70b59cfc..8b351777 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/portalgun/PortalGunSavedData.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/portalgun/PortalGunSavedData.java @@ -170,7 +170,6 @@ public final class PortalGunSavedData extends SavedData { return clearMatching(server, record -> record.ownerId() != null && ownerIds.contains(record.ownerId())); } - /** Clears portal pairs for guns that an owner no longer has in their player inventory. */ public static int clearMissingGuns(ServerPlayer player) { PortalGunSavedData data = get(player.serverLevel().getServer()); if (data.pairs.isEmpty()) { diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/util/WormHookRope.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/util/WormHookRope.java index 6912b529..8cbe373b 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/util/WormHookRope.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/util/WormHookRope.java @@ -12,16 +12,6 @@ import net.minecraft.world.phys.Vec3; import java.util.ArrayList; import java.util.List; -/** - * Tracks the path of a taut rope from a fixed anchor point to a moving end point (the - * player's eyes), bending around block corners when the straight-line path would otherwise - * clip through terrain. The anchor never moves (the worm hook is stuck in a block), so this - * only needs to add/remove bends on the player's side of the rope. - * - * Ported from the corner-wrapping algorithm in Yyon's GrappleMod (GPL-3.0), adapted from a - * custom vector class to vanilla Vec3 and from a moving-hook/moving-player pair to a fixed - * anchor. - */ public final class WormHookRope { private static final double BEND_OFFSET = 0.05D; private static final double INTO_BLOCK = 0.05D; @@ -44,7 +34,6 @@ public final class WormHookRope { this.prevEnd = end; } - /** Recomputes the bend list for the current anchor/end positions. Anchor must stay constant. */ public void update(Entity context, Vec3 anchor, Vec3 end, double ropeLength) { this.ropeLength = ropeLength; Level level = context.level(); @@ -52,7 +41,6 @@ public final class WormHookRope { points.set(0, anchor); points.set(points.size() - 1, end); - // Unwind bends the rope has swung clear of. while (points.size() > 2) { int index = points.size() - 2; Vec3 closest = points.get(index); @@ -153,12 +141,10 @@ public final class WormHookRope { topSides.remove(index); } - /** The pivot point closest to the moving end: either the anchor, or the last bend before it. */ public Vec3 getPivot() { return points.get(points.size() - 2); } - /** Rope length used up getting from the anchor to the pivot (0 if the rope has no bends). */ public double getConsumedLength() { double dist = 0; for (int i = 0; i < points.size() - 2; i++) { diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/worldgen/VillagePoolAdditions.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/worldgen/VillagePoolAdditions.java index 25e38a0a..ca539662 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/worldgen/VillagePoolAdditions.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/worldgen/VillagePoolAdditions.java @@ -26,7 +26,6 @@ import java.util.ArrayList; import java.util.List; import java.util.Map; -/** Applies Antarchy-owned additions to existing vanilla jigsaw pools without replacing them. */ public final class VillagePoolAdditions { private static final Gson GSON = new Gson(); private static final String DIRECTORY = "structure_pool_additions"; @@ -101,8 +100,6 @@ public final class VillagePoolAdditions { templates.add(Pair.of(poolElement, weight)); accessor.integratedapi_setRawTemplates(templates); - // StructureTemplatePool caches its weighted list in addition to the raw entries. - // Keep both views synchronized so the new house is immediately eligible. ObjectArrayList expandedTemplates = new ObjectArrayList<>(accessor.integratedapi_getTemplates()); for (int i = 0; i < weight; i++) { expandedTemplates.add(poolElement); diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/worldgen/ants/TermiteNestFeature.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/worldgen/ants/TermiteNestFeature.java index e924a55c..aff0b061 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/worldgen/ants/TermiteNestFeature.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/worldgen/ants/TermiteNestFeature.java @@ -34,7 +34,6 @@ public class TermiteNestFeature extends SurfaceAntNestFeature { protected BlockPos resolveNestPos(WorldGenLevel level, BlockPos origin) { int x = origin.getX(); int z = origin.getZ(); - // Start from the placement height so roofed dimensions like Cavaryn get nests on every cave layer, not just the top one. int startY = Math.min(origin.getY(), level.getHeight(Heightmap.Types.WORLD_SURFACE_WG, x, z) - 1); int minY = level.getMinBuildHeight() + 1; diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/worldgen/cavaryn/CavarynFoliageGuard.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/worldgen/cavaryn/CavarynFoliageGuard.java index 71b280df..9495302c 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/worldgen/cavaryn/CavarynFoliageGuard.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/worldgen/cavaryn/CavarynFoliageGuard.java @@ -8,12 +8,6 @@ import net.minecraft.world.level.LevelAccessor; import net.minecraft.world.level.block.VineBlock; import net.minecraft.world.level.block.state.BlockState; -/** - * Bile always wins on placement, but once a vine/creeproots/molting-vine column already exists, - * bile carving and oozing must not eat the block it's anchored to — otherwise a later-generated - * neighboring chunk's bile cyst/vein can undermine foliage placed earlier and leave it floating - * or pop it as a dropped item. - */ public final class CavarynFoliageGuard { private CavarynFoliageGuard() { } diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/worldgen/elythia/CoralSpikeFeature.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/worldgen/elythia/CoralSpikeFeature.java index e8dfb1a9..131e30cb 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/worldgen/elythia/CoralSpikeFeature.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/worldgen/elythia/CoralSpikeFeature.java @@ -67,13 +67,13 @@ public class CoralSpikeFeature extends Feature { CoralSet[] coralSets = coralSets(); CoralSet coral = coralSets[random.nextInt(coralSets.length)]; - int baseRadius = 2 + random.nextInt(2); // 2-3 wide at base - int totalHeight = 20 + random.nextInt(15); // 20-34 blocks tall + int baseRadius = 2 + random.nextInt(2); + int totalHeight = 20 + random.nextInt(15); double curveAngle = random.nextDouble() * Math.PI * 2; double curveDX = Math.cos(curveAngle); double curveDZ = Math.sin(curveAngle); - double maxCurve = 4.0 + random.nextDouble() * 5.0; // 4-9 block lean at tip + double maxCurve = 4.0 + random.nextDouble() * 5.0; boolean placed = false; @@ -81,12 +81,10 @@ public class CoralSpikeFeature extends Feature { int blockY = floorY + dy; double progress = (double) dy / totalHeight; - // Quadratic lean -- slow at base, bending hard near tip double curveOffset = maxCurve * progress * progress; double centerX = origin.getX() + curveDX * curveOffset; double centerZ = origin.getZ() + curveDZ * curveOffset; - // Taper: full width for bottom 25%, then narrows sharply to a point double taperT = Math.max(0.0, (progress - 0.25) / 0.75); int radius = (int) Math.max(0, baseRadius * (1.0 - taperT * taperT * 1.3)); @@ -147,7 +145,6 @@ public class CoralSpikeFeature extends Feature { } } - // Floor scatter: coral plants, fans, and sea pickles around the base int decorCount = 10 + random.nextInt(12); for (int i = 0; i < decorCount; i++) { int fx = origin.getX() + random.nextInt(13) - 6; @@ -192,7 +189,6 @@ public class CoralSpikeFeature extends Feature { } } } else if (decorInWater) { - // Sea pickle cluster -- only underwater BlockState pickle = Blocks.SEA_PICKLE.defaultBlockState() .setValue(SeaPickleBlock.PICKLES, 1 + random.nextInt(4)); if (pickle.canSurvive(level, decorPos)) { diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/worldgen/elythia/ElythiaBiomeSource.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/worldgen/elythia/ElythiaBiomeSource.java index e180c6e6..088140ee 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/worldgen/elythia/ElythiaBiomeSource.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/worldgen/elythia/ElythiaBiomeSource.java @@ -16,11 +16,6 @@ import net.minecraft.world.level.biome.BiomeSource; import net.minecraft.world.level.biome.Climate; import net.minecraft.world.level.biome.MultiNoiseBiomeSource; -/** - * Plain multi-noise biome source with one addition: everything at or above - * {@code cloud_sea_min_y} is the cloud sea. Below that line, biome selection is - * identical to {@code minecraft:multi_noise} over the same list minus the cloud sea entry. - */ public final class ElythiaBiomeSource extends BiomeSource { private static final ResourceKey CLOUD_SEA = ResourceKey.create( Registries.BIOME, @@ -47,7 +42,6 @@ public final class ElythiaBiomeSource extends BiomeSource { .filter(holder -> holder.is(CLOUD_SEA)) .findFirst() .orElse(null); - // Keep the cloud sea out of the noise search so terrain biomes resolve exactly as before. this.delegate = MultiNoiseBiomeSource.createFromList(new Climate.ParameterList<>( parameters.values().stream() .filter(entry -> !entry.getSecond().is(CLOUD_SEA)) diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/worldgen/elythia/ElythiaCloudFeature.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/worldgen/elythia/ElythiaCloudFeature.java index 276021ad..18c59645 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/worldgen/elythia/ElythiaCloudFeature.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/worldgen/elythia/ElythiaCloudFeature.java @@ -10,10 +10,6 @@ import net.minecraft.world.level.levelgen.feature.Feature; import net.minecraft.world.level.levelgen.feature.FeaturePlaceContext; import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; -/** - * Scatters solid puffs of {@link AntarchyObjects#CLOUD_BLOCK} sized and shaped - * anywhere from thin wispy veils to large, dense masses, with a softly feathered edge. - */ public final class ElythiaCloudFeature extends Feature { public ElythiaCloudFeature(Codec codec) { super(codec); @@ -76,9 +72,6 @@ public final class ElythiaCloudFeature extends Feature int yRange = Math.max(1, radiusY); int zRange = Math.max(1, radiusZ); BlockState cloud = AntarchyObjects.CLOUD_BLOCK.get().defaultBlockState(); - // Clouds are solid puffs, not hollow shells — only the outer rind is feathered for a - // soft, ragged edge. Wispy clouds get a lower edge-fill chance so they read as thin - // and sparse without turning the whole body into visible holes. float edgeFillChance = size == CloudSize.WISPY ? 0.55F : 0.85F; double edgeStart = 0.7D; diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/worldgen/elythia/ElythiaRiverCarveFunction.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/worldgen/elythia/ElythiaRiverCarveFunction.java index 4c0ccf05..f5109e29 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/worldgen/elythia/ElythiaRiverCarveFunction.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/worldgen/elythia/ElythiaRiverCarveFunction.java @@ -5,21 +5,6 @@ import com.mojang.serialization.codecs.RecordCodecBuilder; import net.minecraft.util.KeyDispatchDataCodec; import net.minecraft.world.level.levelgen.DensityFunction; -/** - * Custom density function that carves narrow river channels in Elythia. - * - * Logic: - * - Outside river-erosion territory (erosion <= EROSION_THRESHOLD): behaves identically - * to the original "-0.06 * erosion" term in elythia_surface.json. - * - Inside river-erosion territory (erosion > EROSION_THRESHOLD): additionally applies - * a strong negative carve when the ridges value is near 0, producing a narrow channel. - * The carve tapers quadratically from full depth at ridges=0 to zero at |ridges|=CHANNEL_HALF_WIDTH. - * - * Tuning: - * - EROSION_THRESHOLD: raise to make rivers rarer, lower to make them appear in more terrain - * - CHANNEL_HALF_WIDTH: controls channel width in blocks (wider noise band = wider river) - * - CHANNEL_DEPTH: controls how far below sea level the river floor sits - */ public record ElythiaRiverCarveFunction( DensityFunction erosion, DensityFunction ridges @@ -35,16 +20,9 @@ public record ElythiaRiverCarveFunction( public static final KeyDispatchDataCodec KEY_CODEC = KeyDispatchDataCodec.of(CODEC); - // Erosion must exceed this for river carving to engage private static final double EROSION_THRESHOLD = 0.70; - // Half-width of the channel in ridges-space. Ridges ranges roughly -1 to 1 across - // the landscape; this controls the physical width of the carved channel. private static final double CHANNEL_HALF_WIDTH = 0.08; - // Maximum density reduction applied at the center of the channel. - // ~0.35 pushes the terrain floor roughly 25 blocks below its normal level, - // landing below sea level (63) so the channel fills with water naturally. private static final double CHANNEL_DEPTH = 0.35; - // Matches the original elythia_surface.json erosion multiplier so non-river areas are unchanged private static final double BASE_EROSION_FACTOR = -0.06; @Override diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/worldgen/elythia/FallenOuranwoodFeature.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/worldgen/elythia/FallenOuranwoodFeature.java index d7a1861a..12d00cf8 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/worldgen/elythia/FallenOuranwoodFeature.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/worldgen/elythia/FallenOuranwoodFeature.java @@ -31,8 +31,8 @@ public class FallenOuranwoodFeature extends Feature { BlockPos origin = context.origin(); Direction.Axis axis = random.nextBoolean() ? Direction.Axis.X : Direction.Axis.Z; - int length = 36 + random.nextInt(44); // 36–79 blocks long - int outerRadius = 1 + random.nextInt(3); // 1–3 (cross-section up to 7-wide) + int length = 36 + random.nextInt(44); + int outerRadius = 1 + random.nextInt(3); boolean hollow = outerRadius >= 2; Block ouranwoodLog = BuiltInRegistries.BLOCK.getOptional( @@ -46,7 +46,6 @@ public class FallenOuranwoodFeature extends Feature { BlockState woodState = AntarchyObjects.MOSSY_OURANWOOD_WOOD.get().defaultBlockState() .setValue(RotatedPillarBlock.AXIS, Direction.Axis.Y); - // Pre-generate a smoothed damage profile along the length (0=solid, 1=gap) float[] damage = new float[length]; for (int i = 0; i < length; i++) damage[i] = random.nextFloat(); for (int pass = 0; pass < 4; pass++) { @@ -54,7 +53,6 @@ public class FallenOuranwoodFeature extends Feature { damage[i] = (damage[i - 1] + damage[i] * 2 + damage[i + 1]) / 4f; } } - // Bias upward so more sections are heavily damaged for (int i = 0; i < length; i++) damage[i] = damage[i] * damage[i]; int anchorY = level.getHeight(Heightmap.Types.WORLD_SURFACE_WG, origin.getX(), origin.getZ()); diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/worldgen/elythia/FungalMushroomFeature.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/worldgen/elythia/FungalMushroomFeature.java index a6da40dd..f0740df9 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/worldgen/elythia/FungalMushroomFeature.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/worldgen/elythia/FungalMushroomFeature.java @@ -39,7 +39,7 @@ public class FungalMushroomFeature extends Feature { double maxLean = 2.0 + random.nextDouble() * 3.5; int baseY = origin.getY(); - int stemOffset = stemSize == 2 ? 0 : -1; // center 3x3 on origin + int stemOffset = stemSize == 2 ? 0 : -1; BlockState stemPore = Blocks.MUSHROOM_STEM.defaultBlockState() .setValue(HugeMushroomBlock.NORTH, false) @@ -98,7 +98,6 @@ public class FungalMushroomFeature extends Feature { double nomRadius = baseCapRadius - cl; if (nomRadius < 0) break; - // The cap center also shifts slightly with lean for a drooping overhang feel double layerCapX = capCenterX + leanDX * cl * 0.3; double layerCapZ = capCenterZ + leanDZ * cl * 0.3; diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/worldgen/elythia/KingsTreeGridFeature.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/worldgen/elythia/KingsTreeGridFeature.java index 09a56cea..1ad3b65f 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/worldgen/elythia/KingsTreeGridFeature.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/worldgen/elythia/KingsTreeGridFeature.java @@ -30,7 +30,6 @@ import java.util.Set; import java.util.WeakHashMap; import java.util.concurrent.ConcurrentLinkedQueue; -/** Places the authored King's Tree as independently generated chunk slices on a fixed world grid. */ public final class KingsTreeGridFeature extends Feature { private static final Map> CLAIMED_TREE_KINGS = new WeakHashMap<>(); private static final ConcurrentLinkedQueue PENDING_KING_SPAWNS = new ConcurrentLinkedQueue<>(); diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/worldgen/elythia/OuranwoodTreeFeature.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/worldgen/elythia/OuranwoodTreeFeature.java index ed6b89b3..2b5fb7a6 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/worldgen/elythia/OuranwoodTreeFeature.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/worldgen/elythia/OuranwoodTreeFeature.java @@ -573,8 +573,6 @@ public class OuranwoodTreeFeature extends Feature { return; } - // The tick is scheduled here on the WorldGenLevel because onPlace() is never - // called during world generation, so the block cannot self-schedule. int squirrelCount = 1 + random.nextInt(3); BlockPos markerPos = floorBlocks.get(0); setBlock(level, markerPos, AntarchyObjects.SQUIRREL_NEST_BLOCK.get().defaultBlockState() @@ -687,13 +685,8 @@ public class OuranwoodTreeFeature extends Feature { } protected void placeCaterpillarChrysalis(WorldGenLevel level, BlockPos origin, OuranwoodTreeConfiguration config, RandomSource random, BlockPos canopyCenter, int canopyRadius, int canopyDepth) { - // Tree-grown chrysalis placement is intentionally disabled for now. } - /** - * Finds a log or leaf block in the canopy that has sufficient clear space beneath it. - * {@code clearBelow} is the vertical depth to check; {@code clearRadius} is the XZ half-width (0 = 1x1, 1 = 3x3). - */ protected @Nullable BlockPos findCanopyAnchor(WorldGenLevel level, RandomSource random, BlockPos canopyCenter, int canopyRadius, int canopyDepth, int clearBelow, int clearRadius, int attempts) { BlockPos.MutableBlockPos pos = new BlockPos.MutableBlockPos(); int r = Math.max(1, canopyRadius - 1); @@ -831,7 +824,6 @@ public class OuranwoodTreeFeature extends Feature { int worldX = origin.getX() + x; int worldZ = origin.getZ() + z; - // Raise soil to form a mound around the base (from adaptTerrain) int currentTopY = level.getHeight(Heightmap.Types.WORLD_SURFACE_WG, worldX, worldZ) - 1; int falloff = (int) Math.floor(Math.sqrt(distanceSq) / 2.1D); int desiredTopY = baseY - falloff + (distanceSq <= trunkRadiusSq ? 0 : random.nextInt(2)); diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/mixins/AntarchyMixinErrorHandler.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/mixins/AntarchyMixinErrorHandler.java index 5fb18e7f..4cf18dca 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/mixins/AntarchyMixinErrorHandler.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/mixins/AntarchyMixinErrorHandler.java @@ -4,9 +4,6 @@ import org.spongepowered.asm.mixin.extensibility.IMixinConfig; import org.spongepowered.asm.mixin.extensibility.IMixinErrorHandler; import org.spongepowered.asm.mixin.extensibility.IMixinInfo; -/* - * Keeps bad mixins from hard-crashing startup. - */ public final class AntarchyMixinErrorHandler implements IMixinErrorHandler { private static final String BROKEN_MARVEL_STELLARIS_MIXIN = "net.tintankgames.marvel.mixin.integration.stellaris.DimensionOxygenManagerMixin"; diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/mixins/AntarchyMixinPlugin.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/mixins/AntarchyMixinPlugin.java index 6d5570af..9e83b798 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/mixins/AntarchyMixinPlugin.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/mixins/AntarchyMixinPlugin.java @@ -7,9 +7,6 @@ import org.spongepowered.asm.mixin.Mixins; import org.spongepowered.asm.mixin.extensibility.IMixinConfigPlugin; import org.spongepowered.asm.mixin.extensibility.IMixinInfo; -/* - * Mixin plugin for compat-gated mixins and optional deps. - */ public final class AntarchyMixinPlugin implements IMixinConfigPlugin { private static final AntarchyRangedAttackPatcher RANGED_ATTACK_PATCHER = new AntarchyRangedAttackPatcher(); @@ -42,14 +39,9 @@ public final class AntarchyMixinPlugin implements IMixinConfigPlugin { && classPresent("com.llamalad7.mixinextras.injector.wrapmethod.WrapMethod"); } if (mixinClassName.startsWith("com.craisinlord.antarchy.mixins.compat.alexscaves.")) { - // The target class was found above. Checking the target itself avoids depending on - // whether a loader exposes Alex's Caves' entrypoint resource to this classloader. return true; } if (mixinClassName.endsWith(".VillagerTradesMixin")) { - // Trade registration is platform-driven on every supported loader now. Keeping the - // static VillagerTrades class-init mixin around risks touching AntarchyObjects before - // registration is finished on Fabric and duplicates trades on event-driven loaders. return false; } return true; diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/mixins/DreamFireBlockMixin.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/mixins/DreamFireBlockMixin.java index 9908e8c1..65d6a3fc 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/mixins/DreamFireBlockMixin.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/mixins/DreamFireBlockMixin.java @@ -15,9 +15,6 @@ import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; @Mixin(BaseFireBlock.class) -/* - * Lets dream fire pick the floor or ceiling variant from the same support tag. - */ public abstract class DreamFireBlockMixin { private static final ResourceLocation DREAM_FIRE_ID = ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "dream_fire"); private static final ResourceLocation DREAM_CEILING_FIRE_ID = ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "dream_fire_ceiling"); diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/mixins/GlimmeringDamageImmunityMixin.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/mixins/GlimmeringDamageImmunityMixin.java index 5d47f766..9706e504 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/mixins/GlimmeringDamageImmunityMixin.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/mixins/GlimmeringDamageImmunityMixin.java @@ -13,7 +13,6 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; @Mixin(LivingEntity.class) public abstract class GlimmeringDamageImmunityMixin { - // Magic damage (potions, spells) is tagged bypasses_armor, so it's excluded @Inject(method = "hurt", at = @At("HEAD"), cancellable = true) private void antarchy$glimmeringIgnoresAttacks(DamageSource source, float amount, CallbackInfoReturnable cir) { LivingEntity self = (LivingEntity) (Object) this; diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/mixins/GlimmeringPushableMixin.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/mixins/GlimmeringPushableMixin.java index 8b5350ec..621e863c 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/mixins/GlimmeringPushableMixin.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/mixins/GlimmeringPushableMixin.java @@ -9,8 +9,6 @@ import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; -// LivingEntity.isPushable()/isPickable() are full overrides of Entity's versions (they don't call -// super), so this has to target LivingEntity directly, not Entity, or the injected code never runs. @Mixin(LivingEntity.class) public abstract class GlimmeringPushableMixin { @Inject(method = "isPushable", at = @At("RETURN"), cancellable = true) @@ -26,9 +24,6 @@ public abstract class GlimmeringPushableMixin { } } - // Projectiles (and entity-picking in general) skip targets that aren't isPickable(), so this - // is what actually lets arrows/tridents/etc. pass through a glimmering entity instead of - // colliding with it; the damage-immunity mixin alone only stopped the damage, not the impact. @Inject(method = "isPickable", at = @At("RETURN"), cancellable = true) private void antarchy$glimmeringNotPickable(CallbackInfoReturnable cir) { if (!cir.getReturnValueZ()) { diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/mixins/PoiTypesMixin.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/mixins/PoiTypesMixin.java index 4e212645..cd09077e 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/mixins/PoiTypesMixin.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/mixins/PoiTypesMixin.java @@ -33,7 +33,6 @@ public abstract class PoiTypesMixin { BuiltInRegistries.POINT_OF_INTEREST_TYPE.getHolder(key) .ifPresent(holder -> callback.setReturnValue(Optional.of(holder))); } catch (IllegalStateException ignored) { - // Registration can be queried during bootstrap before loader bindings finish. } } } diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/mixins/RoyalGuardianPlayerAttackMixin.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/mixins/RoyalGuardianPlayerAttackMixin.java index de94f6fe..2b4078b0 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/mixins/RoyalGuardianPlayerAttackMixin.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/mixins/RoyalGuardianPlayerAttackMixin.java @@ -8,7 +8,6 @@ import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; -/** Captures attack charge before vanilla resets the player's attack-strength ticker. */ @Mixin(Player.class) public abstract class RoyalGuardianPlayerAttackMixin { @Inject(method = "attack", at = @At("HEAD")) diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/mixins/ServerPlayerGameModeMixin.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/mixins/ServerPlayerGameModeMixin.java index 1ae1efb7..6c92338b 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/mixins/ServerPlayerGameModeMixin.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/mixins/ServerPlayerGameModeMixin.java @@ -14,9 +14,6 @@ import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; @Mixin(ServerPlayerGameMode.class) -/* - * Keeps custom sapling stage updates synced like vanilla. - */ public abstract class ServerPlayerGameModeMixin { @Shadow protected ServerLevel level; @Shadow @Final protected ServerPlayer player; diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/mixins/UndertrialSpawnPlacementsMixin.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/mixins/UndertrialSpawnPlacementsMixin.java index e7d9235f..24ec01f8 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/mixins/UndertrialSpawnPlacementsMixin.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/mixins/UndertrialSpawnPlacementsMixin.java @@ -8,11 +8,6 @@ import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; -/** - * Lets the Undertrial's vanilla TrialSpawner path spawn entities whose normal - * placement predicate assumes floor support. TrialSpawner already performs - * its own no-collision and obstruction checks before this method is reached. - */ @Mixin(SpawnPlacements.class) public abstract class UndertrialSpawnPlacementsMixin { @Inject(method = "checkSpawnRules", at = @At("RETURN"), cancellable = true) diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/mixins/client/GlimmeringTranslucencyMixin.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/mixins/client/GlimmeringTranslucencyMixin.java index 68cd6180..54c2261b 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/mixins/client/GlimmeringTranslucencyMixin.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/mixins/client/GlimmeringTranslucencyMixin.java @@ -18,8 +18,6 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; @Mixin(LivingEntityRenderer.class) public abstract class GlimmeringTranslucencyMixin { - // Vertex-color alpha applied to the base skin render while glimmering, on top of the recolor - // overlay, so the body itself reads as see-through rather than just tinted. private static final int GLIMMERING_ALPHA = 0x40; @Unique diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/mixins/gravity/FallingBlockEntityBlockDataMixin.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/mixins/gravity/FallingBlockEntityBlockDataMixin.java index 3bb32fb4..c45db07f 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/mixins/gravity/FallingBlockEntityBlockDataMixin.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/mixins/gravity/FallingBlockEntityBlockDataMixin.java @@ -30,9 +30,6 @@ import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; @Mixin(FallingBlockEntity.class) -/* - * Preserves full block data on carried falling blocks. - */ public abstract class FallingBlockEntityBlockDataMixin { @Shadow public CompoundTag blockData; @Shadow public abstract BlockState getBlockState(); diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/mixins/gravity/PlayerAttackMixin.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/mixins/gravity/PlayerAttackMixin.java index 0feef624..5eaca4ab 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/mixins/gravity/PlayerAttackMixin.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/mixins/gravity/PlayerAttackMixin.java @@ -17,9 +17,6 @@ import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; @Mixin(Player.class) -/* - * Fixes player attack checks under inverted gravity. - */ public abstract class PlayerAttackMixin { @Inject(method = "attack", at = @At("HEAD"), cancellable = true) private void antarchy$blockGravityGunMelee(Entity target, CallbackInfo ci) { @@ -34,9 +31,6 @@ public abstract class PlayerAttackMixin { } } - /* - * Primordial's full set bonus makes player melee knockback ignore the target's knockback resistance. - */ @WrapOperation(method = "attack", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/LivingEntity;knockback(DDD)V")) private void antarchy$ignorePrimordialKnockbackResistance(LivingEntity target, double strength, double x, double z, Operation original) { Player player = (Player) (Object) this; diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/mixins/gravity/ServerChunkCacheAccessor.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/mixins/gravity/ServerChunkCacheAccessor.java index f70ce183..d5bb3c8e 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/mixins/gravity/ServerChunkCacheAccessor.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/mixins/gravity/ServerChunkCacheAccessor.java @@ -6,9 +6,6 @@ import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.gen.Accessor; @Mixin(ServerChunkCache.class) -/* - * Accessor for server chunk source internals used by gravity sync. - */ public interface ServerChunkCacheAccessor { @Accessor("chunkMap") ChunkMap antarchy$getChunkMap(); diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/mixins/gravity/client/FallingBlockRendererBlockEntityMixin.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/mixins/gravity/client/FallingBlockRendererBlockEntityMixin.java index 468f665e..465a1258 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/mixins/gravity/client/FallingBlockRendererBlockEntityMixin.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/mixins/gravity/client/FallingBlockRendererBlockEntityMixin.java @@ -19,9 +19,6 @@ import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; @Mixin(FallingBlockRenderer.class) -/* - * Keeps falling block render data lined up with carried state. - */ public abstract class FallingBlockRendererBlockEntityMixin { @Inject( method = "render(Lnet/minecraft/world/entity/item/FallingBlockEntity;FFLcom/mojang/blaze3d/vertex/PoseStack;Lnet/minecraft/client/renderer/MultiBufferSource;I)V", diff --git a/fabric-1.20.1/build.gradle b/fabric-1.20.1/build.gradle index 402c9825..47776dcc 100644 --- a/fabric-1.20.1/build.gradle +++ b/fabric-1.20.1/build.gradle @@ -35,7 +35,6 @@ repositories { } } -// Handle duplicates from common-1.20.1's resources tasks.withType(AbstractCopyTask).configureEach { duplicatesStrategy = DuplicatesStrategy.EXCLUDE } @@ -45,9 +44,6 @@ java { withSourcesJar() } -// Add common-1.20.1's sources directly. Path is relative because fabric-1.20.1 is its -// own standalone Gradle build (Fabric Loom can't configure two different-Minecraft-version -// loom projects in the same Gradle invocation) — there is no `:common-1.20.1` project here. sourceSets { main { java { @@ -132,8 +128,6 @@ tasks.named('processResources', ProcessResources).configure { } } -// common-1.20.1's mixins.json ships refmap-free — inject the refmap key into fabric's -// own copy after copying (matches the fabric-1.21.1 / neoforge-1.21.1 convention). tasks.named('processResources', ProcessResources).configure { doLast { var commonMixinConfig = new File(destinationDir, 'antarchy-common.mixins.json') diff --git a/fabric-1.21.1/build.gradle b/fabric-1.21.1/build.gradle index c156da1b..977e8354 100644 --- a/fabric-1.21.1/build.gradle +++ b/fabric-1.21.1/build.gradle @@ -9,7 +9,6 @@ base { } version = "${mod_version}+1.21.1-fabric" -// Handle duplicates from common-1.21.1's resources tasks.withType(AbstractCopyTask).configureEach { duplicatesStrategy = DuplicatesStrategy.EXCLUDE } @@ -19,7 +18,6 @@ java { withSourcesJar() } -// Add common-1.21.1's sources directly — this module compiles them itself. sourceSets { main { java { @@ -44,9 +42,6 @@ dependencies { if (providers.gradleProperty('antarchySodiumCompatTest').orNull == 'true') { modLocalRuntime(files("$rootDir/infinite_dimensions_jars/sodium-fabric-0.8.13+mc1.21.1.jar")) } - // Sodium — compile-only, for portal live views drawn through Sodium's renderer. Compiled - // against the NeoForge build (official Mojang mappings, matching this module's compile - // space; Sodium's own classes are identical across loaders). Never bundled. compileOnly(files(zipTree("$rootDir/infinite_dimensions_jars/sodium-neoforge-0.8.13+mc1.21.1.jar") .matching { include "META-INF/jarjar/net.caffeinemc.sodium-neoforge-*-mod.jar" })) modCompileOnly("curse.maven:intapi-${intapi_curseforge_id}:${intapi_curseforge_file_id_fabric}") @@ -62,25 +57,12 @@ dependencies { compileOnly(files("$rootDir/infinite_dimensions_jars/sable-neoforge-1.21.1-2.0.3.jar")) compileOnly(files("$rootDir/infinite_dimensions_jars/stellarview-1.21.1-0.5.3-neoforge.jar")) - // Cloth Config — optional, powers the in-game settings screen (AntarchyClothConfigScreenBuilder) - // via the Mod Menu integration below. compileOnly + modLocalRuntime only: never bundled or - // required at runtime in the shipped jar. Guarded by FabricLoader.isModLoaded("cloth-config") - // in AntarchyModMenuIntegration before any Cloth Config class is touched. Reuses the - // clothconfig_curseforge_id/clothconfig_curseforge_file_id pin already in gradle.properties. modCompileOnly("curse.maven:cloth-config-${clothconfig_curseforge_id}:${clothconfig_curseforge_file_id}") modLocalRuntime("curse.maven:cloth-config-${clothconfig_curseforge_id}:${clothconfig_curseforge_file_id}") - // Mod Menu — optional, provides the "modmenu" fabric.mod.json entrypoint - // (AntarchyModMenuIntegration). Same soft-dependency treatment as Cloth Config above; Fabric - // Loader only ever resolves the "modmenu" entrypoint if Mod Menu itself is installed and asks - // for it, so nothing here is touched when it's absent. Reuses the mod_menu version already - // pinned in gradle.properties. modCompileOnly "com.terraformersmc:modmenu:${mod_menu}" modLocalRuntime "com.terraformersmc:modmenu:${mod_menu}" - // Compile against the NeoForge jar (official Mojang mappings, matches this module's compile - // space) but load the real Fabric jar at runtime — sizeable_foliage's Fabric jar ships - // intermediary-mapped, which this compileOnly classpath can't resolve directly. compileOnly(files("$rootDir/sizeable_foliage_jars/sizeable_foliage-neoforge-1.21.1-1.0.0.jar")) modLocalRuntime(files("$rootDir/sizeable_foliage_jars/sizeable_foliage-fabric-1.21.1-1.0.0.jar")) @@ -118,8 +100,6 @@ tasks.named('processResources', ProcessResources).configure { } } -// common-1.21.1's mixins.json ships refmap-free (NeoForge needs no refmap), but Fabric -// does — inject the refmap key into fabric's own copy of the shared file after copying. tasks.named('processResources', ProcessResources).configure { doLast { ['antarchy-common.mixins.json'].each { configName -> diff --git a/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/AntarchyConfigModuleFabric.java b/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/AntarchyConfigModuleFabric.java index 5fe59470..7b2c7678 100644 --- a/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/AntarchyConfigModuleFabric.java +++ b/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/AntarchyConfigModuleFabric.java @@ -77,24 +77,10 @@ public final class AntarchyConfigModuleFabric { } } - /** - * Exposes the reflection-based getter/setter binding map (see {@link #buildBindings()}) so - * other Fabric-side code — namely the optional Cloth Config screen builder — can reuse the - * exact same set of persisted settings the JSON files already round-trip, instead of - * hand-authoring a separate list. Read-only: callers get/set individual values through - * {@link SettingBinding#getValue()} / {@link SettingBinding#setValue(Object)}. - */ public static Map getBindings() { return SETTINGS; } - /** - * Re-serializes the current live value of every binding back to its JSON file. Intended for - * the optional Cloth Config screen's save handler: entries there update the live - * {@link AntarchySettings} fields immediately through their own save consumers (same as - * {@link SettingBinding#apply(Object)} does below), but nothing writes those changes to disk - * until this runs — mirrors the persistence tail of {@link #init()} above. - */ public static void persist() { Map normalized = new LinkedHashMap<>(); for (ConfigSection section : ConfigSection.values()) { @@ -159,10 +145,6 @@ public final class AntarchyConfigModuleFabric { }; } - /** - * Public so the optional Cloth Config screen builder (fabric.client package) can group - * entries into the same Mobs/Tools/Misc categories the JSON files already use. - */ public enum ConfigSection { MOBS("antarchy_mobs.json"), TOOLS("antarchy_tools.json"), @@ -176,14 +158,6 @@ public final class AntarchyConfigModuleFabric { } - /** - * Public so the optional Cloth Config screen builder (fabric.client package) can reuse this - * exact binding — the same getter/setter pair and JSON section the persistence layer above - * already drives — instead of a separate hand-authored entry list. The JSON-specific - * machinery (readValue/apply/toJson/getCurrentValue) stays private and is reused internally - * by the public getValue()/setValue() wrappers below, so there's exactly one code path for - * "what is this setting's current value" and "how do I change it". - */ public static final class SettingBinding { private final String name; private final Method getter; @@ -199,27 +173,22 @@ public final class AntarchyConfigModuleFabric { this.section = section; } - /** The AntarchySettings property name, e.g. {@code krakenHealth}. */ public String getName() { return name; } - /** Which of the three JSON files (Mobs/Tools/Misc) this setting persists to. */ public ConfigSection getSection() { return section; } - /** The primitive/String type of the setter's single parameter (boolean/int/double/float/String). */ public Class getType() { return setterType; } - /** The setting's current live value, boxed (Boolean/Integer/Double/Float/String). */ public Object getValue() { return getCurrentValue(); } - /** Applies a new value immediately via reflection, same as the JSON loader does at startup. */ public void setValue(Object value) { apply(value); } diff --git a/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/AntarchyFabricContent.java b/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/AntarchyFabricContent.java index bcba4aa0..fe831ef0 100644 --- a/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/AntarchyFabricContent.java +++ b/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/AntarchyFabricContent.java @@ -102,10 +102,6 @@ public final class AntarchyFabricContent { builder.registerPotionRecipe(net.minecraft.world.item.alchemy.Potions.AWKWARD, Ingredient.of(AntarchyFabricItems.STRATOSHARK_FIN.get()), net.minecraft.world.item.alchemy.Potions.SLOW_FALLING); builder.registerPotionRecipe(net.minecraft.world.item.alchemy.Potions.AWKWARD, Ingredient.of(AntarchyFabricItems.SPRINGBUG_LEG.get()), Potions.LEAPING); builder.registerPotionRecipe(net.minecraft.world.item.alchemy.Potions.AWKWARD, Ingredient.of(AntarchyFabricItems.CORNEA_EAR.get()), net.minecraft.world.item.alchemy.Potions.NIGHT_VISION); - // Corn/syrup/root-beer are plain items, not Potion holders, so vanilla's Builder#expectPotion - // rejects them via registerItemRecipe/registerPotionRecipe. The actual output logic comes from - // PotionBrewingMixin -> CustomBrewingRecipes; brewing-stand slot validity for these custom items - // is handled by BrewingStandCustomIngredientMixin (Fabric doesn't expose Builder#addContainer). }); AntarchyFabricSounds.SOUND_EVENTS.register(); diff --git a/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/BloodglassManager.java b/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/BloodglassManager.java index 7d753916..05cd4c03 100644 --- a/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/BloodglassManager.java +++ b/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/BloodglassManager.java @@ -97,9 +97,7 @@ public final class BloodglassManager { } } } else if (!fromIsBC) { - // Count BC pieces: explicitly include the new piece (to) since getItemBySlot(slot) - // may not reflect the new item yet when onEquipItem fires on Fabric. - int bcPieces = 1; // the piece being equipped now + int bcPieces = 1; for (EquipmentSlot s : new EquipmentSlot[]{EquipmentSlot.HEAD, EquipmentSlot.CHEST, EquipmentSlot.LEGS, EquipmentSlot.FEET}) { if (s == slot) continue; if (player.getItemBySlot(s).getItem() instanceof BloodCrystalArmorItem) bcPieces++; @@ -110,7 +108,6 @@ public final class BloodglassManager { access.antarchy$setArmorRechargeTimer(AntarchySettings.bloodCrystalArmorShieldRechargeTicks()); } } else { - // BC → BC swap: remove old slot, queue new one if (access.antarchy$getArmorShieldsActive() > 0) { access.antarchy$setArmorShieldsActive(access.antarchy$getArmorShieldsActive() - 1); } else if (access.antarchy$getArmorShieldLostCount() > 0) { @@ -131,9 +128,6 @@ public final class BloodglassManager { - access.antarchy$getArmorShieldLostCount()); int targetCap = Math.min(amplifier + 1, cap); int currentCap = access.antarchy$getAppleShieldsActive() + access.antarchy$getAppleShieldLostCount(); - // Only grant newly-added capacity (e.g. first application, or a higher amplifier). - // A mere duration refresh of an already-active ward must not reset shields that are - // already lost, nor restart their recharge timer. if (targetCap > currentCap) { access.antarchy$setAppleShieldsActive(access.antarchy$getAppleShieldsActive() + (targetCap - currentCap)); if (player instanceof ServerPlayer sp) syncBloodglass(sp); diff --git a/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/client/AntarchyClothConfigScreenBuilder.java b/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/client/AntarchyClothConfigScreenBuilder.java index 0853b5c5..5d755397 100644 --- a/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/client/AntarchyClothConfigScreenBuilder.java +++ b/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/client/AntarchyClothConfigScreenBuilder.java @@ -12,19 +12,6 @@ import net.minecraft.network.chat.Component; import java.util.EnumMap; import java.util.Map; -/** - * Builds a Cloth Config screen directly from {@link AntarchyConfigModuleFabric}'s existing - * reflection-based binding map, so the screen and the on-disk JSON files stay in sync - * automatically — no separate hand-authored list of 350+ entries. - * - *

Only ever reached from {@link AntarchyModMenuIntegration#getModConfigScreenFactory()} after - * it has already confirmed Cloth Config is present, so every Cloth Config class referenced here - * is safe to touch. - * - *

Phase 1 scope (see the implementation plan): raw field names as labels, no min/max bounds, - * no tooltips, and fields backed by {@code ResourceKey} (the four dimension-identity - * settings) are skipped entirely rather than exposed with a widget that doesn't fit them. - */ public final class AntarchyClothConfigScreenBuilder { private AntarchyClothConfigScreenBuilder() { } diff --git a/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/client/AntarchyModMenuIntegration.java b/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/client/AntarchyModMenuIntegration.java index 48358e83..2b608c48 100644 --- a/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/client/AntarchyModMenuIntegration.java +++ b/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/client/AntarchyModMenuIntegration.java @@ -4,34 +4,12 @@ import com.terraformersmc.modmenu.api.ConfigScreenFactory; import com.terraformersmc.modmenu.api.ModMenuApi; import net.fabricmc.loader.api.FabricLoader; -/** - * Optional Mod Menu integration entrypoint — declared under the "modmenu" key in - * fabric.mod.json, never referenced anywhere else in Antarchy's own code. - * - *

This class is only ever loaded/instantiated by Mod Menu itself. Fabric Loader resolves - * entrypoints lazily: it reads every mod's fabric.mod.json at startup, but a class named under - * "entrypoints" is not loaded until something explicitly calls - * {@code FabricLoader.getInstance().getEntrypointContainers("modmenu", ModMenuApi.class)} for - * that key — and only Mod Menu does that. So if Mod Menu isn't installed, this class is never - * touched at all, and "modmenu" is declared as a "suggests" (not "depends") dependency in - * fabric.mod.json precisely so Antarchy loads identically either way. - * - *

Mod Menu and Cloth Config are independently optional, so the one runtime guard this - * integration does need is below: if Mod Menu is present but Cloth Config isn't, building the - * real screen would touch Cloth Config classes that aren't on the classpath. - */ public final class AntarchyModMenuIntegration implements ModMenuApi { @Override public ConfigScreenFactory getModConfigScreenFactory() { if (!FabricLoader.getInstance().isModLoaded("cloth-config")) { - // Mod Menu always shows the config button once a non-null factory is returned, so - // there's no clean way to hide it conditionally — handing back the screen that was - // already open is the safest no-op fallback when Cloth Config isn't installed. return parent -> parent; } - // Method reference, not a direct call: this does not load AntarchyClothConfigScreenBuilder - // or touch any Cloth Config class until the player actually clicks the config button, - // which only happens after the isModLoaded check above has already passed. return AntarchyClothConfigScreenBuilder::build; } } diff --git a/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/client/BloodglassHudRenderer.java b/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/client/BloodglassHudRenderer.java index 9cd3c27a..b5dab9d2 100644 --- a/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/client/BloodglassHudRenderer.java +++ b/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/client/BloodglassHudRenderer.java @@ -26,7 +26,6 @@ public final class BloodglassHudRenderer { if (mc.options.hideGui) return; Player player = mc.player; if (player == null || player.isDeadOrDying()) return; - // Don't show in creative or spectator — no health bar visible there if (player.isCreative() || player.isSpectator()) return; int total = BloodglassClientState.getShieldsMax(); @@ -36,21 +35,16 @@ public final class BloodglassHudRenderer { int w = mc.getWindow().getGuiScaledWidth(); int h = mc.getWindow().getGuiScaledHeight(); - // Vanilla health bar bottom row is at y = h - 39; each extra row (absorption, extra hearts) is 10px above. - // The armor protection icons sit one row above the bottom health row (h - 49). - // We place bloodglass hearts above both health+absorption stack AND the armor row. int maxHealth = Mth.ceil(player.getMaxHealth()); int absorption = Mth.ceil(player.getAbsorptionAmount()); int healthHearts = Mth.ceil(maxHealth / 2.0f); int absorptionHearts = Mth.ceil(absorption / 2.0f); int totalVanillaRows = Mth.ceil((healthHearts + absorptionHearts) / 10.0f); boolean hasArmor = player.getArmorValue() > 0; - // +1 to clear the armor icon row only when armor is actually equipped int baseTop = h - 39 - (totalVanillaRows * 10) - (hasArmor ? 10 : 0); int left = w / 2 - 91; - // Wrap across multiple rows if more than 10 bloodglass hearts for (int i = 0; i < total; i++) { int row = i / 10; int col = i % 10; diff --git a/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/mixin/ElytraFallFlyingMixin.java b/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/mixin/ElytraFallFlyingMixin.java index 5239a901..34c7b4d3 100644 --- a/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/mixin/ElytraFallFlyingMixin.java +++ b/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/mixin/ElytraFallFlyingMixin.java @@ -11,9 +11,6 @@ import org.spongepowered.asm.mixin.injection.Redirect; @Mixin(LivingEntity.class) public abstract class ElytraFallFlyingMixin { - /** - * Redirect to allow any ElytraItem subclass to sustain fall flying. - */ @Redirect( method = "updateFallFlying", at = @At( diff --git a/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/mixin/infinity/AmendmentRareOresMixin.java b/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/mixin/infinity/AmendmentRareOresMixin.java index e7be5675..08f59766 100644 --- a/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/mixin/infinity/AmendmentRareOresMixin.java +++ b/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/mixin/infinity/AmendmentRareOresMixin.java @@ -12,12 +12,6 @@ import java.util.List; import java.util.Map; @Mixin(value = Amendment.class, remap = false) -/* - * Makes Antarchy's uranium/titanium ores and blocks much rarer in Infinite Dimensions' - * procedural dimensions. This is done natively via Infinity's own amendment system rather - * than relying on players editing infinity's config, keyed off the antarchy:infinity_dimension_rare_ores - * block tag so the list stays data-driven and native to Antarchy. - */ public class AmendmentRareOresMixin { @Inject(method = "getAmendmentList", at = @At("RETURN"), remap = false) private static void antarchy$addRareOreAmendment(CallbackInfoReturnable>> cir) { diff --git a/forge-1.20.1/build.gradle b/forge-1.20.1/build.gradle index d5dbc825..33e7cedd 100644 --- a/forge-1.20.1/build.gradle +++ b/forge-1.20.1/build.gradle @@ -38,7 +38,6 @@ base { archivesName = "${mod_id}-forge-1.20.1" } -// Handle duplicates from common-1.20.1 in all copy tasks tasks.withType(AbstractCopyTask).configureEach { duplicatesStrategy = DuplicatesStrategy.EXCLUDE } @@ -78,9 +77,6 @@ minecraft { } } -// Add common-1.20.1's sources directly. Path is relative because forge-1.20.1 is its -// own Gradle build (ForgeGradle 6 can't run on the root's Gradle 9) — there is no -// `:common-1.20.1` project here. sourceSets { main { java { diff --git a/forge-1.20.1/src/main/java/com/craisinlord/antarchy/forge/mixins/compat/DroneFakePlayerConstructionMixin.java b/forge-1.20.1/src/main/java/com/craisinlord/antarchy/forge/mixins/compat/DroneFakePlayerConstructionMixin.java index 532e57a9..de666d8c 100644 --- a/forge-1.20.1/src/main/java/com/craisinlord/antarchy/forge/mixins/compat/DroneFakePlayerConstructionMixin.java +++ b/forge-1.20.1/src/main/java/com/craisinlord/antarchy/forge/mixins/compat/DroneFakePlayerConstructionMixin.java @@ -13,7 +13,6 @@ import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; -/** Protects virtual position calls made before the drone constructor has finished. */ @Pseudo @Mixin(targets = "me.desht.pneumaticcraft.common.util.fakeplayer.DroneFakePlayer", remap = false) public abstract class DroneFakePlayerConstructionMixin extends FakePlayer { @@ -29,8 +28,6 @@ public abstract class DroneFakePlayerConstructionMixin extends FakePlayer { antarchy$droneConstructionComplete = true; } - // Explicit Mojmap/SRG selectors: the optional target is unavailable to the - // annotation processor, but its Minecraft overrides are reobfuscated by Forge. @Inject(method = {"position()Lnet/minecraft/world/phys/Vec3;", "m_20182_()Lnet/minecraft/world/phys/Vec3;"}, at = @At("HEAD"), cancellable = true, remap = false, require = 0) private void antarchy$positionDuringConstruction(CallbackInfoReturnable cir) { diff --git a/neoforge-1.21.1/build.gradle b/neoforge-1.21.1/build.gradle index 7277edc8..28453415 100644 --- a/neoforge-1.21.1/build.gradle +++ b/neoforge-1.21.1/build.gradle @@ -14,7 +14,6 @@ java { withSourcesJar() } -// Add common-1.21.1's sources directly — this module compiles them itself. sourceSets { main { java { @@ -49,9 +48,6 @@ dependencies { if (providers.gradleProperty('antarchySodiumCompatTest').orNull == 'true') { runtimeOnly(files(rootProject.file("infinite_dimensions_jars/sodium-neoforge-0.8.13+mc1.21.1.jar"))) } - // Sodium — compile-only, for portal live views drawn through Sodium's renderer - // (content/client/renderer/sodium, mixins/compat/sodium). Never bundled; that code only - // loads when Sodium is installed. The published jar nests the mod jar, so compile against it. compileOnly(files(zipTree(rootProject.file("infinite_dimensions_jars/sodium-neoforge-0.8.13+mc1.21.1.jar")) .matching { include "META-INF/jarjar/net.caffeinemc.sodium-neoforge-*-mod.jar" })) compileOnly(files(rootProject.file("infinite_dimensions_jars/antos-neoforge-1.21.1-${antos_version}.jar"))) @@ -76,11 +72,6 @@ dependencies { compileOnly "mezz.jei:jei-1.21.1-neoforge-api:${jei_version}" runtimeOnly "mezz.jei:jei-1.21.1-neoforge:${jei_version}" - // Configured — optional, gives players an in-game config screen for Antarchy's - // ModConfigSpec-based settings (AntarchyMobsConfig/AntarchyToolsConfig/AntarchyMiscConfig) - // with zero Java code on this side: NeoForge's own config system is auto-discovered. - // No compileOnly needed since nothing here references Configured's classes directly. - // Has no Modrinth release, hence cursemaven (repo already declared in the root build.gradle). runtimeOnly("curse.maven:configured-${configured_curseforge_id}:${configured_curseforge_file_id_neoforge}") implementation(annotationProcessor("io.github.llamalad7:mixinextras-common:${mixin_extras_1_21_1}")) diff --git a/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/AntarchyConfigModuleNeoforge.java b/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/AntarchyConfigModuleNeoforge.java index 24159b8b..71abde3e 100644 --- a/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/AntarchyConfigModuleNeoforge.java +++ b/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/AntarchyConfigModuleNeoforge.java @@ -680,8 +680,6 @@ public final class AntarchyConfigModuleNeoforge { AntarchySettings.setPortalGunMoonBlockCap(AntarchyMiscConfig.portalGunMoonBlockCap()); - // Misc - AntarchySettings.setElythiaFireflyParticlesEnabled(AntarchyMiscConfig.elythiaFireflyParticlesEnabled()); AntarchySettings.setDreamSandFallingBlockGravityMultiplier(AntarchyMiscConfig.dreamSandFallingBlockGravityMultiplier()); diff --git a/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/AntarchyMiscConfig.java b/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/AntarchyMiscConfig.java index 92f04c40..f4d126ca 100644 --- a/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/AntarchyMiscConfig.java +++ b/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/AntarchyMiscConfig.java @@ -5,24 +5,18 @@ import net.neoforged.neoforge.common.ModConfigSpec; public final class AntarchyMiscConfig { public static final ModConfigSpec SPEC; - // Elythia private static final ModConfigSpec.BooleanValue ELYTHIA_FIREFLY_PARTICLES_ENABLED; - // Dream Sand private static final ModConfigSpec.DoubleValue DREAM_SAND_FALLING_BLOCK_GRAVITY_MULTIPLIER; - // Ichor private static final ModConfigSpec.BooleanValue ICHOR_WITHER_ENABLED; - // Hushweed private static final ModConfigSpec.DoubleValue HUSHWEED_SPORE_LIFETIME_SECONDS; - // Infinite Dimensions private static final ModConfigSpec.BooleanValue DISABLE_INFINITY_BOOK_PORTAL_CREATION; private static final ModConfigSpec.BooleanValue RAINBOW_ANTS_LEAD_TO_INFINITY_DIMENSIONS; private static final ModConfigSpec.DoubleValue RAINBOW_ANT_INFINITY_EASTER_EGG_CHANCE; - // Permanent portals private static final ModConfigSpec.BooleanValue PERMANENT_PORTALS_ENABLED; private static final ModConfigSpec.BooleanValue PERMANENT_PORTALS_FLINT_AND_STEEL_ENABLED; private static final ModConfigSpec.BooleanValue ELYTHIA_PORTAL_ENABLED; @@ -42,7 +36,6 @@ public final class AntarchyMiscConfig { private static final ModConfigSpec.IntValue PORTAL_GUN_MOON_PORTAL_SECONDS; private static final ModConfigSpec.IntValue PORTAL_GUN_MOON_BLOCK_CAP; - // Diamond Minecart private static final ModConfigSpec.BooleanValue DIAMOND_MINECART_ENABLED; private static final ModConfigSpec.BooleanValue DIAMOND_MINECART_PLACES_RAILS; private static final ModConfigSpec.DoubleValue DIAMOND_MINECART_CRUISE_SPEED; @@ -53,11 +46,9 @@ public final class AntarchyMiscConfig { private static final ModConfigSpec.BooleanValue DIAMOND_MINECART_MOB_DAMAGE_ENABLED; private static final ModConfigSpec.DoubleValue DIAMOND_MINECART_MAX_MOB_DAMAGE; - // Hoverboard private static final ModConfigSpec.DoubleValue HOVERBOARD_MAX_SPEED; private static final ModConfigSpec.DoubleValue HOVERBOARD_ACCELERATION; - // World / misc toggles private static final ModConfigSpec.BooleanValue DUPLICATOR_TREE_ENABLED; private static final ModConfigSpec.BooleanValue GLOW_VINES_UNDER_LEAVES; private static final ModConfigSpec.BooleanValue SWING_THROUGH_GRASS_ENABLED; @@ -69,8 +60,6 @@ public final class AntarchyMiscConfig { ModConfigSpec.Builder b = new ModConfigSpec.Builder(); - // Elythia - b.push("elythia"); ELYTHIA_FIREFLY_PARTICLES_ENABLED = b .comment("Whether firefly ambient particles appear at night in the Elythia dimension.") @@ -78,15 +67,11 @@ public final class AntarchyMiscConfig { b.pop(); - // Dream Sand - b.push("dreamSand"); DREAM_SAND_FALLING_BLOCK_GRAVITY_MULTIPLIER = b.comment("Multiplier applied to dream sand's falling-block gravity, i.e. how slowly it falls as a block.").defineInRange("fallingBlockGravityMultiplier", 0.4D, 0.0D, 16.0D); b.pop(); - // Ichor - b.push("ichor"); ICHOR_WITHER_ENABLED = b .comment("If true, players submerged in ichor receive a Wither effect.") @@ -94,8 +79,6 @@ public final class AntarchyMiscConfig { b.pop(); - // Hushweed - b.push("hushweed"); HUSHWEED_SPORE_LIFETIME_SECONDS = b .comment("How long (in seconds) a Hushweed spore projectile stays alive before disappearing.") @@ -103,8 +86,6 @@ public final class AntarchyMiscConfig { b.pop(); - // Infinity Dimensions - b.push("infinityDimensions"); DISABLE_INFINITY_BOOK_PORTAL_CREATION = b .comment("If true, book and quills cannot be thrown into nether portals to create random dimensions.") @@ -124,8 +105,6 @@ public final class AntarchyMiscConfig { b.pop(); - // Permanent Portals - b.push("permanentPortals"); PERMANENT_PORTALS_ENABLED = b.comment("Master toggle for sacrifice-activated permanent portals.").define("permanentPortalsEnabled", true); PERMANENT_PORTALS_FLINT_AND_STEEL_ENABLED = b.comment("Whether flint and steel can ignite permanent portal frames.").define("permanentPortalsFlintAndSteelEnabled", false); @@ -151,8 +130,6 @@ public final class AntarchyMiscConfig { b.pop(); - // Diamond Minecart - b.push("diamondMinecart"); DIAMOND_MINECART_ENABLED = b.comment("Master toggle for the diamond minecart's custom propulsion and rail-laying behavior.") .define("enabled", true); DIAMOND_MINECART_PLACES_RAILS = b.comment("Whether the cart automatically places normal rails from the rider's inventory.") .define("placesRails", true); @@ -166,16 +143,12 @@ public final class AntarchyMiscConfig { b.pop(); - // Hoverboard - b.push("hoverboard"); HOVERBOARD_MAX_SPEED = b.comment("Maximum hoverboard speed in blocks/tick while moving forward.").defineInRange("maxSpeed", 6.0D, 0.05D, 12.0D); HOVERBOARD_ACCELERATION = b.comment("Hoverboard speed gained per tick while moving forward. Lower values take longer to reach top speed.").defineInRange("acceleration", 0.05D, 0.001D, 1.0D); b.pop(); - // World / visual toggles - b.push("world"); DUPLICATOR_TREE_ENABLED = b.comment("If false, duplicator trees do not generate and duplicator saplings produce nothing.").define("duplicatorTreeEnabled", true); GLOW_VINES_UNDER_LEAVES = b.comment("Whether glow vines can be placed and survive when attached under leaf blocks.") .define("glowVinesUnderLeaves", true); diff --git a/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/AntarchyMobsConfig.java b/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/AntarchyMobsConfig.java index fff49178..3ea7b984 100644 --- a/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/AntarchyMobsConfig.java +++ b/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/AntarchyMobsConfig.java @@ -6,8 +6,6 @@ public final class AntarchyMobsConfig { public static final ModConfigSpec SPEC; - // Ants - private static final ModConfigSpec.BooleanValue ANTS_STEAL_FROM_CHESTS; private static final ModConfigSpec.BooleanValue BROWN_ANT_REQUIRES_REAGENT; @@ -40,36 +38,26 @@ public final class AntarchyMobsConfig { - // Easter Bunny - private static final ModConfigSpec.BooleanValue EASTER_BUNNY_ENABLED; private static final ModConfigSpec.IntValue EASTER_BUNNY_NATURAL_SPAWN_CHANCE_PERCENT; - // Wasp - private static final ModConfigSpec.DoubleValue WASP_HEALTH; private static final ModConfigSpec.DoubleValue WASP_ATTACK_DAMAGE; private static final ModConfigSpec.DoubleValue WASP_MOVEMENT_SPEED; - // Bomber - private static final ModConfigSpec.DoubleValue BOMBER_HEALTH; private static final ModConfigSpec.DoubleValue BOMBER_ATTACK_DAMAGE; private static final ModConfigSpec.DoubleValue BOMBER_EXPLOSION_DAMAGE; private static final ModConfigSpec.DoubleValue BOMBER_EXPLOSION_RADIUS; - // Springbug - private static final ModConfigSpec.DoubleValue SPRINGBUG_HEALTH; private static final ModConfigSpec.DoubleValue SPRINGBUG_POUNCE_DAMAGE; private static final ModConfigSpec.DoubleValue SPRINGBUG_CAMOUFLAGE_ALPHA; - // Emperor Scorpion - private static final ModConfigSpec.DoubleValue EMPEROR_SCORPION_HEALTH; private static final ModConfigSpec.DoubleValue EMPEROR_SCORPION_ATTACK_DAMAGE; private static final ModConfigSpec.DoubleValue EMPEROR_SCORPION_MOVEMENT_SPEED; @@ -99,8 +87,6 @@ public final class AntarchyMobsConfig { private static final ModConfigSpec.DoubleValue SCORPION_KNOCKBACK_RESISTANCE; - // Kraken - private static final ModConfigSpec.DoubleValue KRAKEN_HEALTH; private static final ModConfigSpec.DoubleValue KRAKEN_ATTACK_DAMAGE; private static final ModConfigSpec.BooleanValue KRAKEN_SQUID_SPAWN_ENABLED; @@ -115,8 +101,6 @@ public final class AntarchyMobsConfig { private static final ModConfigSpec.DoubleValue KRAKEN_BOSS_BAR_RANGE; private static final ModConfigSpec.DoubleValue KRAKEN_LIGHTNING_DAMAGE_PHASE_ONE; - // Royal Bosses - private static final ModConfigSpec.DoubleValue KING_HEALTH; private static final ModConfigSpec.DoubleValue QUEEN_HEALTH; private static final ModConfigSpec.DoubleValue KING_ATTACK_DAMAGE; @@ -153,8 +137,6 @@ public final class AntarchyMobsConfig { private static final ModConfigSpec.DoubleValue KING_FIREBALL_DAMAGE, KING_FIREBALL_RADIUS, KING_ICEBALL_DAMAGE, KING_ICEBALL_RADIUS, KING_ICE_SPIKE_DAMAGE; private static final ModConfigSpec.IntValue KING_FIREBALL_COOLDOWN_TICKS, KING_ICEBALL_COOLDOWN_TICKS, KING_ICE_SPIKE_COOLDOWN_TICKS, KING_ELEMENTAL_TERRAIN_CAP; - // Royal mounts - private static final ModConfigSpec.IntValue ROYAL_EGG_HATCH_CHANCE; private static final ModConfigSpec.DoubleValue ROYAL_BOLT_DAMAGE; private static final ModConfigSpec.DoubleValue PRINCE_HEALTH; @@ -173,8 +155,6 @@ public final class AntarchyMobsConfig { private static final ModConfigSpec.DoubleValue PRINCESS_FOLLOW_RANGE; - // Brutalfly - private static final ModConfigSpec.DoubleValue BRUTALFLY_HEALTH; private static final ModConfigSpec.DoubleValue BRUTALFLY_SWIPE_DAMAGE; private static final ModConfigSpec.DoubleValue BRUTALFLY_SPIT_DAMAGE; @@ -186,8 +166,6 @@ public final class AntarchyMobsConfig { private static final ModConfigSpec.DoubleValue BRUTALFLY_FLYING_SPEED; - // Mantis - private static final ModConfigSpec.DoubleValue MANTIS_HEALTH; private static final ModConfigSpec.DoubleValue MANTIS_ATTACK_DAMAGE; private static final ModConfigSpec.DoubleValue MANTIS_MOVEMENT_SPEED; @@ -195,8 +173,6 @@ public final class AntarchyMobsConfig { private static final ModConfigSpec.BooleanValue MANTIS_IGNORE_LIGHT_LEVEL; - // Alpha Mantis - private static final ModConfigSpec.DoubleValue ALPHA_MANTIS_HEALTH; private static final ModConfigSpec.DoubleValue ALPHA_MANTIS_ATTACK_DAMAGE; private static final ModConfigSpec.DoubleValue ALPHA_MANTIS_MOVEMENT_SPEED; @@ -206,8 +182,6 @@ public final class AntarchyMobsConfig { private static final ModConfigSpec.DoubleValue ALPHA_MANTIS_DAMAGE_RANGE; - // Rolly Polly - private static final ModConfigSpec.DoubleValue ROLLY_POLLY_HEALTH; private static final ModConfigSpec.DoubleValue ROLLY_POLLY_MOVEMENT_SPEED; private static final ModConfigSpec.DoubleValue ROLLY_POLLY_ROLL_SPEED_MULTIPLIER; @@ -218,16 +192,12 @@ public final class AntarchyMobsConfig { private static final ModConfigSpec.DoubleValue ROLLY_POLLY_ROLLED_ARMOR_BONUS; - // Flytrap - private static final ModConfigSpec.DoubleValue FLYTRAP_HEALTH; private static final ModConfigSpec.DoubleValue FLYTRAP_ATTACK_DAMAGE; private static final ModConfigSpec.DoubleValue FLYTRAP_GRAB_DAMAGE; private static final ModConfigSpec.IntValue FLYTRAP_SWEEP_HIT_COOLDOWN_TICKS; - // Caterpillar - private static final ModConfigSpec.DoubleValue CATERPILLAR_HEALTH; private static final ModConfigSpec.DoubleValue CATERPILLAR_MOVEMENT_SPEED; private static final ModConfigSpec.DoubleValue CATERPILLAR_PUPATION_TIME_SECONDS; @@ -268,13 +238,9 @@ public final class AntarchyMobsConfig { private static final ModConfigSpec.DoubleValue OCTOPUS_BOMB_ATTACK_DAMAGE; - // Ant Dance - private static final ModConfigSpec.DoubleValue ANT_DANCE_RADIUS; - // Reverie - private static final ModConfigSpec.DoubleValue REVERIE_HEALTH; private static final ModConfigSpec.DoubleValue REVERIE_INTEREST_RADIUS; private static final ModConfigSpec.DoubleValue REVERIE_ABANDON_PLAYER_DISTANCE; @@ -289,8 +255,6 @@ public final class AntarchyMobsConfig { private static final ModConfigSpec.IntValue REVERIE_DUPLICATION_COOLDOWN_TICKS; - // Nightmare - private static final ModConfigSpec.DoubleValue NIGHTMARE_HEALTH; private static final ModConfigSpec.DoubleValue NIGHTMARE_ATTACK_DAMAGE; private static final ModConfigSpec.DoubleValue NIGHTMARE_MOVEMENT_SPEED; @@ -304,8 +268,6 @@ public final class AntarchyMobsConfig { private static final ModConfigSpec.BooleanValue DIMENSIONAL_TEARS_SPAWN_NATURALLY; - // Basilisk - private static final ModConfigSpec.BooleanValue BASILISK_PETRIFYING_GAZE_ENABLED; private static final ModConfigSpec.IntValue BASILISK_SPAWN_MAX_LIGHT_LEVEL; private static final ModConfigSpec.DoubleValue BASILISK_HEALTH; @@ -329,8 +291,6 @@ public final class AntarchyMobsConfig { private static final ModConfigSpec.IntValue BASILISK_PREY_PETRIFY_TICKS; - // Toreterror - private static final ModConfigSpec.DoubleValue TORETERROR_HEALTH; private static final ModConfigSpec.DoubleValue TORETERROR_DAMAGE_RANGE; private static final ModConfigSpec.DoubleValue TORETERROR_JUMP_ATTACK_DAMAGE; @@ -344,14 +304,10 @@ public final class AntarchyMobsConfig { private static final ModConfigSpec.DoubleValue WATER_BOMB_KNOCKBACK; - // Crawling Blight - private static final ModConfigSpec.DoubleValue CRAWLING_BLIGHT_HEALTH; private static final ModConfigSpec.DoubleValue CRAWLING_BLIGHT_ATTACK_DAMAGE; - // Skulking Fright - private static final ModConfigSpec.DoubleValue SKULKING_FRIGHT_HEALTH; private static final ModConfigSpec.DoubleValue SKULKING_FRIGHT_ATTACK_DAMAGE; private static final ModConfigSpec.DoubleValue MANTICORE_HEALTH; @@ -362,8 +318,6 @@ public final class AntarchyMobsConfig { private static final ModConfigSpec.IntValue QUEEN_MANTICORE_SUMMON_COUNT; private static final ModConfigSpec.DoubleValue QUEEN_MANTICORE_SUMMON_RANGE; - // Jerry - private static final ModConfigSpec.DoubleValue JERRY_INFANT_HEALTH; private static final ModConfigSpec.DoubleValue JERRY_INFANT_ATTACK_DAMAGE; private static final ModConfigSpec.DoubleValue JERRY_MATURE_HEALTH; @@ -374,37 +328,25 @@ public final class AntarchyMobsConfig { private static final ModConfigSpec.DoubleValue JERRY_GAMMA_ATTACK_DAMAGE; - // Cheep - private static final ModConfigSpec.DoubleValue CHEEP_HEALTH; private static final ModConfigSpec.DoubleValue CHEEP_ATTACK_DAMAGE; - // Dorrie - private static final ModConfigSpec.DoubleValue DORRIE_HEALTH; - // Ouranwood Deer - private static final ModConfigSpec.DoubleValue OURANWOOD_DEER_HEALTH; - // Glimmer - private static final ModConfigSpec.DoubleValue GLIMMER_HEALTH; - // Hercules Beetle - private static final ModConfigSpec.DoubleValue HERCULES_BEETLE_HEALTH; private static final ModConfigSpec.DoubleValue HERCULES_BEETLE_ATTACK_DAMAGE; private static final ModConfigSpec.DoubleValue HERCULES_BEETLE_CHARGE_DAMAGE; private static final ModConfigSpec.DoubleValue HERCULES_BEETLE_DAMAGE_RANGE; - // Lucid - private static final ModConfigSpec.DoubleValue LUCID_ATTACK_RANGE; private static final ModConfigSpec.DoubleValue LUCID_PEARL_INVERTED_DURATION_SECONDS; private static final ModConfigSpec.DoubleValue LUCID_HEALTH; @@ -413,8 +355,6 @@ public final class AntarchyMobsConfig { private static final ModConfigSpec.DoubleValue LUCID_FLYING_SPEED; private static final ModConfigSpec.DoubleValue LUCID_KNOCKBACK_RESISTANCE; - // Vortex - private static final ModConfigSpec.DoubleValue VORTEX_HEALTH; private static final ModConfigSpec.DoubleValue VORTEX_ATTACK_DAMAGE; private static final ModConfigSpec.DoubleValue VORTEX_MOVEMENT_SPEED; @@ -432,8 +372,6 @@ public final class AntarchyMobsConfig { private static final ModConfigSpec.DoubleValue VORTEX_LENS_LAUNCH_STRENGTH; - // Dread effect - private static final ModConfigSpec.BooleanValue DREAD_HALLUCINATION_SOUNDS_ENABLED; private static final ModConfigSpec.DoubleValue DREAD_HALLUCINATION_SOUND_MIN_INTERVAL; private static final ModConfigSpec.DoubleValue DREAD_HALLUCINATION_SOUND_MAX_INTERVAL; @@ -445,8 +383,6 @@ public final class AntarchyMobsConfig { ModConfigSpec.Builder b = new ModConfigSpec.Builder(); - // Ants (shared) - ANTS_STEAL_FROM_CHESTS = b .comment("Whether ants will steal edible items from nearby chest inventories.") .define("antsStealFromChests", true); @@ -528,8 +464,6 @@ public final class AntarchyMobsConfig { b.pop(); - // Easter Bunny - b.push("easterBunny"); EASTER_BUNNY_ENABLED = b .comment( @@ -546,8 +480,6 @@ public final class AntarchyMobsConfig { b.pop(); - // Wasp - b.push("wasp"); WASP_HEALTH = b.comment("Base max health.") .defineInRange("health", 16.0D, 1.0D, 32768.0D); WASP_ATTACK_DAMAGE = b.comment("Base attack damage.") .defineInRange("attackDamage", 4.0D, 0.0D, 1024.0D); @@ -555,8 +487,6 @@ public final class AntarchyMobsConfig { b.pop(); - // Bomber - b.push("bomber"); BOMBER_HEALTH = b.comment("Base max health.") .defineInRange("health", 10.0D, 1.0D, 32768.0D); BOMBER_ATTACK_DAMAGE = b.comment("Direct damage dealt on contact before detonation.") .defineInRange("attackDamage", 4.0D, 0.0D, 1024.0D); @@ -565,8 +495,6 @@ public final class AntarchyMobsConfig { b.pop(); - // Springbug - b.push("springbug"); SPRINGBUG_HEALTH = b.comment("Base max health.").defineInRange("health", 100.0D, 1.0D, 32768.0D); SPRINGBUG_POUNCE_DAMAGE = b.comment("Damage dealt on a successful pounce latch.").defineInRange("pounceDamage", 2.0D, 0.0D, 1024.0D); @@ -574,8 +502,6 @@ public final class AntarchyMobsConfig { b.pop(); - // Emperor Scorpion - b.push("emperorScorpion"); EMPEROR_SCORPION_HEALTH = b.comment("Base max health.").defineInRange("health", 300.0D, 1.0D, 32768.0D); EMPEROR_SCORPION_ATTACK_DAMAGE = b.comment("Base attack damage.").defineInRange("attackDamage", 28.0D, 0.0D, 1024.0D); @@ -613,8 +539,6 @@ public final class AntarchyMobsConfig { b.pop(); - // Kraken - b.push("kraken"); KRAKEN_HEALTH = b.comment("Base max health.") .defineInRange("health", 1500.0D, 1.0D, 32768.0D); KRAKEN_ATTACK_DAMAGE = b.comment("Base attack damage.") .defineInRange("attackDamage", 45.0D, 0.0D, 1024.0D); @@ -720,8 +644,6 @@ public final class AntarchyMobsConfig { b.pop(); - // Brutalfly - b.push("brutalfly"); BRUTALFLY_HEALTH = b.comment("Base max health.") .defineInRange("health", 200.0D, 1.0D, 32768.0D); BRUTALFLY_SWIPE_DAMAGE = b.comment("Damage dealt by a claw swipe.") .defineInRange("swipeDamage", 15.0D, 0.0D, 1024.0D); @@ -735,8 +657,6 @@ public final class AntarchyMobsConfig { b.pop(); - // Mantis - b.push("mantis"); MANTIS_HEALTH = b.comment("Base max health.") .defineInRange("health", 50.0D, 1.0D, 32768.0D); MANTIS_ATTACK_DAMAGE = b.comment("Base attack damage.") .defineInRange("attackDamage", 9.0D, 0.0D, 1024.0D); @@ -746,8 +666,6 @@ public final class AntarchyMobsConfig { b.pop(); - // Alpha Mantis - b.push("alphaMantis"); ALPHA_MANTIS_HEALTH = b.comment("Base max health.") .defineInRange("health", 250.0D, 1.0D, 32768.0D); ALPHA_MANTIS_ATTACK_DAMAGE = b.comment("Base attack damage.") .defineInRange("attackDamage", 18.0D, 0.0D, 1024.0D); @@ -759,8 +677,6 @@ public final class AntarchyMobsConfig { b.pop(); - // Rolly Polly - b.push("rollyPolly"); ROLLY_POLLY_HEALTH = b.comment("Base max health.") .defineInRange("health", 25.0D, 1.0D, 32768.0D); ROLLY_POLLY_MOVEMENT_SPEED = b.comment("Base movement speed.") .defineInRange("movementSpeed", 0.3D, 0.0D, 10.0D); @@ -773,8 +689,6 @@ public final class AntarchyMobsConfig { b.pop(); - // Flytrap - b.push("flytrap"); FLYTRAP_HEALTH = b.comment("Base max health.") .defineInRange("health", 80.0D, 1.0D, 32768.0D); FLYTRAP_ATTACK_DAMAGE = b.comment("Damage dealt by the sweep attack.") .defineInRange("attackDamage", 10.0D, 0.0D, 1024.0D); @@ -785,8 +699,6 @@ public final class AntarchyMobsConfig { b.pop(); - // Caterpillar - b.push("caterpillar"); CATERPILLAR_HEALTH = b.defineInRange("health", 6.0D, 0.1D, 32768.0D); CATERPILLAR_MOVEMENT_SPEED = b.defineInRange("movementSpeed", 0.24D, 0.0D, 10.0D); @@ -852,8 +764,6 @@ public final class AntarchyMobsConfig { b.pop(); - // Ant Dance - b.push("antDance"); ANT_DANCE_RADIUS = b .comment("Radius in blocks where ants will dance around a playing jukebox.") @@ -861,8 +771,6 @@ public final class AntarchyMobsConfig { b.pop(); - // Reverie - b.push("reverie"); REVERIE_HEALTH = b.comment("Base max health.") .defineInRange("health", 20.0D, 1.0D, 1024.0D); REVERIE_INTEREST_RADIUS = b.comment("How far the Reverie notices and starts following a player.") .defineInRange("interestRadius", 16.0D, 1.0D, 64.0D); @@ -878,8 +786,6 @@ public final class AntarchyMobsConfig { REVERIE_DUPLICATION_COOLDOWN_TICKS = b.comment("Cooldown in ticks before Blood Crystal can duplicate the Reverie again.") .defineInRange("duplicationCooldownTicks", 6000, 20, 24000); b.pop(); - // Nightmare - b.push("nightmare"); NIGHTMARE_HEALTH = b.comment("Base max health.").defineInRange("health", 180.0D, 1.0D, 32768.0D); NIGHTMARE_ATTACK_DAMAGE = b.comment("Base attack damage.").defineInRange("attackDamage", 16.0D, 0.0D, 1024.0D); @@ -898,8 +804,6 @@ public final class AntarchyMobsConfig { b.pop(); - // Basilisk - b.push("basilisk"); BASILISK_PETRIFYING_GAZE_ENABLED = b .comment("If false, the Basilisk will not use its petrifying gaze and will never apply the Paralyzed effect.") @@ -929,8 +833,6 @@ public final class AntarchyMobsConfig { b.pop(); - // Lucid - b.push("lucid"); LUCID_ATTACK_RANGE = b .comment("Attack range in blocks. The Lucid fires its gravity blast when a target enters this radius.") @@ -945,8 +847,6 @@ public final class AntarchyMobsConfig { LUCID_KNOCKBACK_RESISTANCE = b.comment("Base knockback resistance.").defineInRange("knockbackResistance", 0.5D, 0.0D, 1.0D); b.pop(); - // Vortex - b.push("vortex"); VORTEX_HEALTH = b.comment("Base max health.").defineInRange("health", 70.0D, 1.0D, 32768.0D); VORTEX_ATTACK_DAMAGE = b.comment("Base attack damage.").defineInRange("attackDamage", 4.0D, 0.0D, 1024.0D); @@ -966,8 +866,6 @@ public final class AntarchyMobsConfig { b.pop(); - // Dread effect - b.push("dread"); b.push("hallucinationSounds"); @@ -982,7 +880,7 @@ public final class AntarchyMobsConfig { DREAD_HALLUCINATION_MOB_MAX_INTERVAL = b.comment("Maximum seconds between apparition spawns.").defineInRange("maxIntervalSeconds", 16.0D, 0.1D, 300.0D); b.pop(); - b.pop(); // dread + b.pop(); b.push("crawlingBlight"); CRAWLING_BLIGHT_HEALTH = b.comment("Base max health.").defineInRange("health", 15.0D, 1.0D, 32768.0D); diff --git a/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/AntarchyToolsConfig.java b/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/AntarchyToolsConfig.java index 4fd3b11f..21919af2 100644 --- a/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/AntarchyToolsConfig.java +++ b/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/AntarchyToolsConfig.java @@ -6,16 +6,12 @@ public final class AntarchyToolsConfig { public static final ModConfigSpec SPEC; - // Basilisk Dagger - private static final ModConfigSpec.DoubleValue BASILISK_DAGGER_ATTACK_DAMAGE; private static final ModConfigSpec.DoubleValue BASILISK_DAGGER_ATTACK_SPEED; private static final ModConfigSpec.IntValue BASILISK_DAGGER_POISON_DURATION_TICKS; private static final ModConfigSpec.IntValue BASILISK_DAGGER_POISON_AMPLIFIER; - // Ultimate Tools - private static final ModConfigSpec.DoubleValue ULTIMATE_SWORD_ATTACK_DAMAGE; private static final ModConfigSpec.DoubleValue ULTIMATE_SWORD_ATTACK_SPEED; private static final ModConfigSpec.DoubleValue ULTIMATE_PICKAXE_ATTACK_DAMAGE; @@ -33,8 +29,6 @@ public final class AntarchyToolsConfig { private static final ModConfigSpec.IntValue ULTIMATE_TOOLS_TREE_FELLING_MAX_LOGS; - // Ultimate Bow - private static final ModConfigSpec.DoubleValue ULTIMATE_BOW_ATTACK_DAMAGE; private static final ModConfigSpec.DoubleValue ULTIMATE_BOW_PLAYER_HEAL; private static final ModConfigSpec.DoubleValue ULTIMATE_BOW_DRAW_SPEED_MULTIPLIER; @@ -42,22 +36,16 @@ public final class AntarchyToolsConfig { private static final ModConfigSpec.IntValue ULTIMATE_BOW_ENCHANTABILITY; - // Ultimate Crossbow - private static final ModConfigSpec.DoubleValue ULTIMATE_CROSSBOW_ATTACK_DAMAGE; private static final ModConfigSpec.DoubleValue ULTIMATE_CROSSBOW_CHARGE_SPEED_MULTIPLIER; private static final ModConfigSpec.IntValue ULTIMATE_CROSSBOW_ENCHANTABILITY; - // Ultimate Mace - private static final ModConfigSpec.DoubleValue ULTIMATE_MACE_DAMAGE_MULTIPLIER; private static final ModConfigSpec.DoubleValue ULTIMATE_MACE_ATTACK_SPEED; private static final ModConfigSpec.IntValue ULTIMATE_MACE_ENCHANTABILITY; - // Ultimate Armor - private static final ModConfigSpec.BooleanValue ULTIMATE_ARMOR_COMES_ENCHANTED; private static final ModConfigSpec.IntValue ULTIMATE_ARMOR_ENCHANTABILITY; private static final ModConfigSpec.IntValue ULTIMATE_HELMET_ARMOR_VALUE; @@ -117,14 +105,10 @@ public final class AntarchyToolsConfig { ROYAL_GUARDIAN_BOUNDARY_DROP_TICKS, ROYAL_GUARDIAN_BOUNDARY_PROJECTILE_CAP; - // Battle Axe - private static final ModConfigSpec.DoubleValue BATTLE_AXE_ATTACK_DAMAGE; private static final ModConfigSpec.DoubleValue BATTLE_AXE_ATTACK_SPEED; - // Big Bertha - private static final ModConfigSpec.DoubleValue BIG_BERTHA_ATTACK_DAMAGE; private static final ModConfigSpec.DoubleValue BIG_BERTHA_REACH_BONUS; private static final ModConfigSpec.DoubleValue BIG_BERTHA_ATTACK_SPEED; @@ -163,8 +147,6 @@ public final class AntarchyToolsConfig { private static final ModConfigSpec.IntValue BLOOD_CRYSTAL_KATANA_DASH_COOLDOWN_TICKS; - // Nightmare Gear - private static final ModConfigSpec.IntValue NIGHTMARE_HELMET_ARMOR_VALUE; private static final ModConfigSpec.IntValue NIGHTMARE_CHESTPLATE_ARMOR_VALUE; private static final ModConfigSpec.IntValue NIGHTMARE_LEGGINGS_ARMOR_VALUE; @@ -184,14 +166,10 @@ public final class AntarchyToolsConfig { private static final ModConfigSpec.DoubleValue NIGHTMARE_SWORD_SCALING_FACTOR; - // Fallen King's Crown - private static final ModConfigSpec.IntValue FALLEN_KING_CROWN_ARMOR_VALUE; private static final ModConfigSpec.DoubleValue FALLEN_KING_CROWN_ARMOR_TOUGHNESS; - // Blood Crystal Armor - private static final ModConfigSpec.IntValue BLOOD_CRYSTAL_ARMOR_SHIELD_RECHARGE_TICKS; private static final ModConfigSpec.IntValue BLOOD_CRYSTAL_APPLE_SHIELD_COUNT; private static final ModConfigSpec.IntValue BLOOD_CRYSTAL_APPLE_DURATION_TICKS; @@ -208,8 +186,6 @@ public final class AntarchyToolsConfig { private static final ModConfigSpec.IntValue BLOOD_CRYSTAL_BOOTS_DURABILITY; - // Squidzooka - private static final ModConfigSpec.DoubleValue SQUIDZOOKA_COOLDOWN_SECONDS; private static final ModConfigSpec.DoubleValue SQUIDZOOKA_LAUNCH_VELOCITY; private static final ModConfigSpec.DoubleValue RPO_LAUNCHER_COOLDOWN_SECONDS; @@ -218,8 +194,6 @@ public final class AntarchyToolsConfig { private static final ModConfigSpec.DoubleValue RPO_LAUNCHER_EXPLOSION_RADIUS; - // Size Rays - private static final ModConfigSpec.BooleanValue SIZE_CHANGING_RAYS_ENABLED; private static final ModConfigSpec.DoubleValue SIZE_RAY_COOLDOWN_SECONDS; private static final ModConfigSpec.DoubleValue SIZE_RAY_MIN_SCALE; @@ -229,8 +203,6 @@ public final class AntarchyToolsConfig { private static final ModConfigSpec.DoubleValue GROWTH_POTION_DELTA; - // Gravity Gun - private static final ModConfigSpec.BooleanValue GRAVITY_GUN_ENABLED; private static final ModConfigSpec.BooleanValue GRAVITY_GUN_BLOCKS_ENABLED; private static final ModConfigSpec.BooleanValue GRAVITY_GUN_ENTITIES_ENABLED; @@ -254,17 +226,9 @@ public final class AntarchyToolsConfig { private static final ModConfigSpec.DoubleValue EYE_OF_THE_STORM_SURGE_RETURN_STRENGTH; private static final ModConfigSpec.DoubleValue EYE_OF_THE_STORM_SURGE_DAMAGE; - // Critter Cage - private static final ModConfigSpec.DoubleValue CRITTER_CAGE_MAX_CAPTURABLE_WIDTH; private static final ModConfigSpec.DoubleValue CRITTER_CAGE_MAX_CAPTURABLE_HEIGHT; - // Miner's Dream - - - - // Miscellaneous items / consumables - private static final ModConfigSpec.DoubleValue DUCT_TAPE_REPAIR_PERCENT_PER_USE; private static final ModConfigSpec.DoubleValue POTENT_NYXITE_INVERTED_DURATION_SECONDS; private static final ModConfigSpec.IntValue CORNEA_EAR_NIGHT_VISION_SECONDS; @@ -274,7 +238,6 @@ public final class AntarchyToolsConfig { private static final ModConfigSpec.IntValue AMERICAN_REGENERATION_DURATION_TICKS; private static final ModConfigSpec.IntValue AMERICAN_REGENERATION_AMPLIFIER; - // Moggles private static final ModConfigSpec.DoubleValue MOGGLES_VISION_RADIUS; @@ -282,8 +245,6 @@ public final class AntarchyToolsConfig { ModConfigSpec.Builder b = new ModConfigSpec.Builder(); - // Basilisk Dagger - b.push("basiliskDagger"); BASILISK_DAGGER_ATTACK_DAMAGE = b.comment("Attack damage.") .defineInRange("attackDamage", 6.0D, 0.0D, 1024.0D); BASILISK_DAGGER_ATTACK_SPEED = b.comment("Attack speed.") .defineInRange("attackSpeed", -1.8D, -10.0D, 10.0D); @@ -292,8 +253,6 @@ public final class AntarchyToolsConfig { b.pop(); - // Ultimate Tools - b.push("ultimateTools"); ULTIMATE_SWORD_ATTACK_DAMAGE = b.comment("Attack damage of the Ultimate Sword.") .defineInRange("swordAttackDamage", 30.0D, 0.0D, 1024.0D); ULTIMATE_SWORD_ATTACK_SPEED = b.comment("Attack speed of the Ultimate Sword.") .defineInRange("swordAttackSpeed", -2.4D, -10.0D, 10.0D); @@ -317,8 +276,6 @@ public final class AntarchyToolsConfig { b.pop(); - // Ultimate Bow - b.push("ultimateBow"); ULTIMATE_BOW_ATTACK_DAMAGE = b.comment("Damage dealt to non-player targets.") .defineInRange("attackDamage", 18.0D, 0.0D, 1024.0D); ULTIMATE_BOW_PLAYER_HEAL = b.comment("Health restored to players hit by arrows from this bow.") .defineInRange("playerHeal", 8.0D, 0.0D, 1024.0D); @@ -328,8 +285,6 @@ public final class AntarchyToolsConfig { b.pop(); - // Ultimate Crossbow - b.push("ultimateCrossbow"); ULTIMATE_CROSSBOW_ATTACK_DAMAGE = b.comment("Damage dealt by projectiles fired from the Ultimate Crossbow.").defineInRange("attackDamage", 8.0D, 0.0D, 1024.0D); ULTIMATE_CROSSBOW_CHARGE_SPEED_MULTIPLIER = b @@ -342,8 +297,6 @@ public final class AntarchyToolsConfig { b.pop(); - // Ultimate Mace - b.push("ultimateMace"); ULTIMATE_MACE_DAMAGE_MULTIPLIER = b.comment("Multiplier on both base damage and smash bonus. 1.5 = 50% stronger than a normal mace.").defineInRange("damageMultiplier", 1.5D, 0.1D, 16.0D); ULTIMATE_MACE_ATTACK_SPEED = b.comment("Attack speed of the Ultimate Mace.") .defineInRange("attackSpeed", -3.4D, -10.0D, 10.0D); @@ -351,8 +304,6 @@ public final class AntarchyToolsConfig { b.pop(); - // Ultimate Armor - b.push("ultimateArmor"); ULTIMATE_ARMOR_COMES_ENCHANTED = b.comment("If true, newly crafted Ultimate Armor has Protection, Fire Protection, Projectile Protection, and Blast Protection.").define("comesEnchanted", true); ULTIMATE_ARMOR_ENCHANTABILITY = b.comment("Enchantability for all Ultimate Armor pieces.") .defineInRange("enchantability", 10, 0, 100); @@ -430,16 +381,12 @@ public final class AntarchyToolsConfig { b.pop(); - // Battle Axe - b.push("battleAxe"); BATTLE_AXE_ATTACK_DAMAGE = b.comment("Attack damage of the Battle Axe.").defineInRange("attackDamage", 46.0D, 0.0D, 4096.0D); BATTLE_AXE_ATTACK_SPEED = b.comment("Attack speed of the Battle Axe.") .defineInRange("attackSpeed", -3.1D, -10.0D, 10.0D); b.pop(); - // Big Bertha - b.push("bigBertha"); BIG_BERTHA_ATTACK_DAMAGE = b.comment("Attack damage of Big Bertha.") .defineInRange("attackDamage", 55.0D, 0.0D, 4096.0D); BIG_BERTHA_REACH_BONUS = b.comment("Extra attack range in blocks while held in main hand.") .defineInRange("reachBonus", 3.0D, 0.0D, 32.0D); @@ -492,8 +439,6 @@ public final class AntarchyToolsConfig { b.pop(); - // Nightmare Gear - b.push("nightmareArmor"); NIGHTMARE_HELMET_ARMOR_VALUE = b.comment("Armor points of the Nightmare Helmet. (Netherite default: 3)") .defineInRange("helmetArmor", 3, 0, 100); NIGHTMARE_CHESTPLATE_ARMOR_VALUE = b.comment("Armor points of the Nightmare Chestplate. (Netherite default: 8)") .defineInRange("chestplateArmor", 8, 0, 100); @@ -533,8 +478,6 @@ public final class AntarchyToolsConfig { b.pop(); - // Blood Crystal Armor - b.push("bloodCrystalArmor"); BLOOD_CRYSTAL_ARMOR_SHIELD_RECHARGE_TICKS = b.comment("Ticks (20/s) for each armor Bloodglass Shield to recharge after shattering. Default: 600 (30s).").defineInRange("armorShieldRechargeTicks", 600, 1, 72000); BLOOD_CRYSTAL_APPLE_SHIELD_COUNT = b.comment("Number of Bloodglass Shields granted by a Blood Crystal Apple (Bloodglass Ward level). Default: 2.").defineInRange("appleShieldCount", 2, 1, 8); @@ -553,8 +496,6 @@ public final class AntarchyToolsConfig { b.pop(); - // Squidzooka - b.push("squidzooka"); SQUIDZOOKA_COOLDOWN_SECONDS = b.comment("Cooldown in seconds after firing. Set to 0 to disable.").defineInRange("cooldownSeconds", 1.0D, 0.0D, 3600.0D); SQUIDZOOKA_LAUNCH_VELOCITY = b.comment("Initial launch velocity applied to the Missile Squid.") .defineInRange("launchVelocity", 2.1D, 0.1D, 20.0D); @@ -568,8 +509,6 @@ public final class AntarchyToolsConfig { b.pop(); - // Size Rays - b.push("sizeRays"); SIZE_CHANGING_RAYS_ENABLED = b .comment( @@ -586,8 +525,6 @@ public final class AntarchyToolsConfig { b.pop(); - // Gravity Gun - b.push("gravityGun"); GRAVITY_GUN_ENABLED = b.comment("Master toggle for the Gravity Gun.") .define("enabled", true); GRAVITY_GUN_BLOCKS_ENABLED = b.comment("If false, the Gravity Gun cannot grab blocks.") .define("blocksEnabled", true); @@ -617,8 +554,6 @@ public final class AntarchyToolsConfig { b.pop(); - // Critter Cage - b.push("critterCage"); CRITTER_CAGE_MAX_CAPTURABLE_WIDTH = b.comment("Maximum capturable entity width/depth based on the live hitbox, in blocks.").defineInRange("maxCapturableWidth", 1.65D, 0.1D, 64.0D); CRITTER_CAGE_MAX_CAPTURABLE_HEIGHT = b.comment("Maximum capturable entity height based on the live hitbox, in blocks.").defineInRange("maxCapturableHeight", 1.65D, 0.1D, 64.0D); @@ -626,8 +561,6 @@ public final class AntarchyToolsConfig { - // Miscellaneous items / consumables - b.push("ductTape"); DUCT_TAPE_REPAIR_PERCENT_PER_USE = b .comment("Fraction of max durability repaired per use. 0.25 = 25% per application.") diff --git a/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/client/MogglesClientRenderer.java b/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/client/MogglesClientRenderer.java index 91550903..059e1fb4 100644 --- a/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/client/MogglesClientRenderer.java +++ b/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/client/MogglesClientRenderer.java @@ -30,13 +30,11 @@ public final class MogglesClientRenderer { return; } - // Run cave BFS (internally rate-limited to every 40 ticks). MogglesCaveDetector.tick(player, level); BlockPos target = MogglesCaveDetector.getCaveTarget(); if (target == null) return; - // Spawn particle trail toward the cave every 2 ticks. if (level.getGameTime() % 2 != 0) return; Vec3 eye = player.getEyePosition(); diff --git a/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/content/fluid/AntiwaterFluid.java b/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/content/fluid/AntiwaterFluid.java index 61d1829a..f44b24f3 100644 --- a/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/content/fluid/AntiwaterFluid.java +++ b/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/content/fluid/AntiwaterFluid.java @@ -115,58 +115,6 @@ public abstract class AntiwaterFluid extends BaseFlowingFluid { return net.minecraft.world.level.material.Fluids.EMPTY.defaultFluidState(); } - /* - @Override - protected void spread(Level level, BlockPos pos, FluidState state) { - if (state.isEmpty()) { - return; - } - if (!state.isSource() && !this.isFlowingStateValid(level, pos, state)) { - level.setBlockAndUpdate(pos, net.minecraft.world.level.block.Blocks.AIR.defaultBlockState()); - this.scheduleCleanup(level, pos); - return; - } - - BlockState blockState = level.getBlockState(pos); - int nextAmount = state.getAmount() - 1; - - BlockPos abovePos = pos.above(); - BlockState aboveState = level.getBlockState(abovePos); - FluidState aboveFluid = level.getFluidState(abovePos); - - if (!aboveState.isSolid() && !aboveFluid.getType().isSame(this)) { - FluidState upwardState = this.getFlowing(8, false); - if (this.canSpreadTo(level, pos, blockState, Direction.UP, abovePos, aboveState, aboveFluid, upwardState.getType())) { - this.spreadTo(level, abovePos, aboveState, Direction.UP, upwardState); - } - } - - if (!this.canHangAt(level, pos)) { - return; - } - - if (nextAmount <= 0) { - return; - } - - for (Direction direction : Direction.Plane.HORIZONTAL) { - BlockPos targetPos = pos.relative(direction); - BlockState targetState = level.getBlockState(targetPos); - FluidState targetFluid = targetState.getFluidState(); - if (!this.canSpreadHorizontallyInto(level, targetPos)) { - continue; - } - - FluidState horizontalState = this.getFlowing(Math.min(nextAmount, MAX_HORIZONTAL_SPREAD_AMOUNT), false); - if (!this.canSpreadTo(level, pos, blockState, direction, targetPos, targetState, targetFluid, horizontalState.getType())) { - continue; - } - - this.spreadTo(level, targetPos, targetState, direction, horizontalState); - } - } - */ - @Override protected void spread(Level level, BlockPos pos, FluidState state) { if (state.isEmpty()) { @@ -317,7 +265,6 @@ public abstract class AntiwaterFluid extends BaseFlowingFluid { BlockState aboveState = level.getBlockState(abovePos); FluidState aboveFluid = level.getFluidState(abovePos); - // Antiwater flowing into water solidifies rather than displacing it if (aboveFluid.getFluidType() == NeoForgeMod.WATER_TYPE.value()) { BlockState result = state.isSource() ? AntarchyNeoforgeBlocks.ANTIMETAL.get().defaultBlockState() diff --git a/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/mixins/entity/ParalyzedMobFreezeMixin.java b/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/mixins/entity/ParalyzedMobFreezeMixin.java index 8c421e28..97367feb 100644 --- a/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/mixins/entity/ParalyzedMobFreezeMixin.java +++ b/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/mixins/entity/ParalyzedMobFreezeMixin.java @@ -8,9 +8,6 @@ import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; @Mixin(Mob.class) -/* - * Stops mob AI movement while paralyzed. - */ public abstract class ParalyzedMobFreezeMixin { @Inject(method = "serverAiStep", at = @At("HEAD")) private void antarchy$freezeAiWhileParalyzed(CallbackInfo ci) { diff --git a/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/mixins/infinity/AmendmentRareOresMixin.java b/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/mixins/infinity/AmendmentRareOresMixin.java index 8769a77b..a9d9b655 100644 --- a/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/mixins/infinity/AmendmentRareOresMixin.java +++ b/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/mixins/infinity/AmendmentRareOresMixin.java @@ -12,12 +12,6 @@ import java.util.List; import java.util.Map; @Mixin(value = Amendment.class, remap = false) -/* - * Makes Antarchy's uranium/titanium ores and blocks much rarer in Infinite Dimensions' - * procedural dimensions. This is done natively via Infinity's own amendment system rather - * than relying on players editing infinity's config, keyed off the antarchy:infinity_dimension_rare_ores - * block tag so the list stays data-driven and native to Antarchy. - */ public class AmendmentRareOresMixin { @Inject(method = "getAmendmentList", at = @At("RETURN"), remap = false) private static void antarchy$addRareOreAmendment(CallbackInfoReturnable>> cir) { diff --git a/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/mixins/infinity/PortalCreatorMixin.java b/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/mixins/infinity/PortalCreatorMixin.java index 75e8b163..94cebbc1 100644 --- a/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/mixins/infinity/PortalCreatorMixin.java +++ b/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/mixins/infinity/PortalCreatorMixin.java @@ -14,9 +14,6 @@ import net.codexarchonic.infinity.util.teleport.PortalCreator; import net.minecraft.server.level.ServerLevel; @Mixin(value = PortalCreator.class, remap = false) -/* - * Blocks Infinity portal creation when the config says no - */ public interface PortalCreatorMixin { @Inject( method = "tryCreatePortalFromItem(Lnet/minecraft/server/level/ServerLevel;Lnet/minecraft/core/BlockPos;Lnet/minecraft/world/entity/item/ItemEntity;)V", diff --git a/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoForgeEvents.java b/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoForgeEvents.java index 21b80546..554ae42a 100644 --- a/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoForgeEvents.java +++ b/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoForgeEvents.java @@ -648,9 +648,6 @@ public final class AntarchyNeoForgeEvents { - access.antarchy$getArmorShieldsActive() - access.antarchy$getArmorShieldLostCount()) ); int currentCap = access.antarchy$getAppleShieldsActive() + access.antarchy$getAppleShieldLostCount(); - // Only grant newly-added capacity (e.g. first application, or a higher amplifier). - // A mere duration refresh of an already-active ward must not reset shields that are - // already lost, nor restart their recharge timer. if (targetCap > currentCap) { access.antarchy$setAppleShieldsActive(access.antarchy$getAppleShieldsActive() + (targetCap - currentCap)); syncBloodglass((ServerPlayer) player); @@ -748,7 +745,6 @@ public final class AntarchyNeoForgeEvents { BloodglassAccess access = (BloodglassAccess) player; if (fromIsBC && !toIsBC) { - // Unequipped BC armor, remove one shield slot if (access.antarchy$getArmorShieldsActive() > 0) { access.antarchy$setArmorShieldsActive(access.antarchy$getArmorShieldsActive() - 1); } else if (access.antarchy$getArmorShieldLostCount() > 0) { @@ -758,7 +754,6 @@ public final class AntarchyNeoForgeEvents { } } } else if (!fromIsBC && toIsBC) { - // Newly equipped BC armor,only add if not already accounted for (by respawn init) int bcPieces = countBCArmorPieces(player); int currentTotal = access.antarchy$getArmorShieldsActive() + access.antarchy$getArmorShieldLostCount(); if (currentTotal < bcPieces) { @@ -766,8 +761,6 @@ public final class AntarchyNeoForgeEvents { access.antarchy$setArmorRechargeTimer(AntarchySettings.bloodCrystalArmorShieldRechargeTicks()); } } else if (fromIsBC) { - // BC armor replaced with another BC armor (or same after re-equip sequence) - // Remove old shield, start recharging new one and reset timer if (access.antarchy$getArmorShieldsActive() > 0) { access.antarchy$setArmorShieldsActive(access.antarchy$getArmorShieldsActive() - 1); } else if (access.antarchy$getArmorShieldLostCount() > 0) { @@ -811,7 +804,6 @@ public final class AntarchyNeoForgeEvents { int totalActive = access.antarchy$getTotalShieldsActive(); if (totalActive <= 0) return; - // Consume apple shields first, then armor shields if (access.antarchy$getAppleShieldsActive() > 0) { access.antarchy$setAppleShieldsActive(access.antarchy$getAppleShieldsActive() - 1); access.antarchy$setAppleShieldLostCount(access.antarchy$getAppleShieldLostCount() + 1); @@ -858,8 +850,6 @@ public final class AntarchyNeoForgeEvents { return; } - // Shared item code now scales arrow base damage directly so attribute and projectile - // modifiers stay in the damage pipeline. Leave non-player hits untouched here. } static void handleUltimateCrossbowDamage(LivingIncomingDamageEvent event) { diff --git a/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeBlocks.java b/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeBlocks.java index 65d25465..978e6036 100644 --- a/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeBlocks.java +++ b/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeBlocks.java @@ -892,7 +892,6 @@ public final class AntarchyNeoforgeBlocks { public static final DeferredBlock STAR_CORAL_WALL_FAN = BLOCKS.register("star_coral_wall_fan", () -> new com.craisinlord.antarchy.content.block.StarCoralWallFanBlock(DEAD_STAR_CORAL_WALL_FAN.get(), BlockBehaviour.Properties.ofFullCopy(Blocks.TUBE_CORAL_WALL_FAN).lightLevel(state -> 8))); - // Block entity types public static final DeferredHolder, BlockEntityType> ROYAL_EGG_BLOCK_ENTITY = BLOCK_ENTITY_TYPES.register("royal_egg", () -> BlockEntityType.Builder.of( com.craisinlord.antarchy.content.block.entity.RoyalEggBlockEntity::new, diff --git a/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeItems.java b/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeItems.java index 6f923881..965025b3 100644 --- a/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeItems.java +++ b/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeItems.java @@ -48,7 +48,6 @@ public final class AntarchyNeoforgeItems { static final DeferredRegister.Items ITEMS = DeferredRegister.createItems(Antarchy.MODID); private static final DeferredRegister ARMOR_MATERIALS = DeferredRegister.create(Registries.ARMOR_MATERIAL, Antarchy.MODID); - // Tier constants public static final Tier ULTIMATE_TIER = new SimpleToolTier( 3072, 10.5F, @@ -218,7 +217,6 @@ public final class AntarchyNeoforgeItems { 0.0F )); - // Block items public static final DeferredItem DUPLICATOR_LOG_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.DUPLICATOR_LOG); public static final DeferredItem OURANWOOD_LOG_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.OURANWOOD_LOG); public static final DeferredItem OURANWOOD_WOOD_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.OURANWOOD_WOOD); @@ -1124,7 +1122,6 @@ public final class AntarchyNeoforgeItems { () -> new KrakensGraspItem( new Item.Properties().stacksTo(1).durability(250).rarity(Rarity.EPIC).fireResistant())); - // Spawn eggs public static final DeferredItem EASTER_BUNNY_SPAWN_EGG = ITEMS.register("easter_bunny_spawn_egg", () -> new DeferredSpawnEggItem(AntarchyNeoforgeEntites.EASTER_BUNNY, 0xFFF2B2, 0xFF85B5, new Item.Properties())); public static final DeferredItem DORRIE_SPAWN_EGG = ITEMS.register("dorrie_spawn_egg", diff --git a/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeMisc.java b/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeMisc.java index bc171f62..0c64d2ca 100644 --- a/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeMisc.java +++ b/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeMisc.java @@ -171,7 +171,6 @@ public final class AntarchyNeoforgeMisc { () -> new MenuType<>(com.craisinlord.antarchy.content.menu.GiantFryingPanMenu::new, FeatureFlags.DEFAULT_FLAGS) ); - // Mob effects public static final DeferredHolder DREAD = MOB_EFFECTS.register("dread", DreadMobEffect::new); public static final DeferredHolder BLEEDING = MOB_EFFECTS.register("bleeding", BleedingMobEffect::new); public static final DeferredHolder BLOOD_MOON = MOB_EFFECTS.register("blood_moon", BloodMoonMobEffect::new); @@ -186,7 +185,6 @@ public final class AntarchyNeoforgeMisc { public static final DeferredHolder SHRINKING_EFFECT = MOB_EFFECTS.register("shrinking", ShrinkMobEffect::new); public static final DeferredHolder GROWTH_EFFECT = MOB_EFFECTS.register("growth", GrowthMobEffect::new); - // Potions public static final DeferredHolder INVERSION = POTIONS.register("inversion", () -> new Potion(new MobEffectInstance(AnthologyEffects.inverted(), 600))); public static final DeferredHolder LONG_INVERSION = POTIONS.register("long_inversion", @@ -228,7 +226,6 @@ public final class AntarchyNeoforgeMisc { public static final DeferredHolder EXTREME_GROWING = POTIONS.register("extreme_growing", () -> new Potion("growing", new MobEffectInstance(GROWTH_EFFECT, 600, 2))); - // Fluids public static final DeferredHolder BILE = FLUIDS.register("bile", () -> new BaseFlowingFluid.Source(bileProperties())); public static final DeferredHolder FLOWING_BILE = FLUIDS.register("flowing_bile", @@ -246,7 +243,6 @@ public final class AntarchyNeoforgeMisc { public static final DeferredHolder FLOWING_LUMEN = FLUIDS.register("flowing_lumen", () -> new BaseFlowingFluid.Flowing(lumenProperties())); - // Particle types public static final DeferredHolder, SimpleParticleType> DREAM_FIRE_FLAME = PARTICLE_TYPES.register("dream_fire_flame", () -> new SimpleParticleType(true)); public static final DeferredHolder, SimpleParticleType> BUG_SPRAY_PARTICLE = PARTICLE_TYPES.register("bug_spray", @@ -292,7 +288,6 @@ public final class AntarchyNeoforgeMisc { public static final DeferredHolder, ParticleType> INVERTED_GEYSER_ERUPTION = PARTICLE_TYPES.register("inverted_geyser_eruption", () -> particleType(InvertedGeyserParticleOptions::codec, InvertedGeyserParticleOptions::streamCodec)); - // Features public static final DeferredHolder, RedAntNestFeature> RED_ANT_NEST_FEATURE = FEATURES.register("red_ant_nest", () -> new RedAntNestFeature(SimpleBlockConfiguration.CODEC)); public static final DeferredHolder, BrownAntNestFeature> BROWN_ANT_NEST_FEATURE = FEATURES.register("brown_ant_nest", @@ -455,13 +450,11 @@ public final class AntarchyNeoforgeMisc { public static final DeferredHolder, ThoraxisIchorLakeFeature> THORAXIS_ICHOR_LAKE = FEATURES.register("thoraxis_ichor_lake", () -> new ThoraxisIchorLakeFeature(NoneFeatureConfiguration.CODEC)); - // Biome sources public static final DeferredHolder, MapCodec> ELYTHIA_BIOME_SOURCE = BIOME_SOURCES.register("elythia_biome_source", () -> ElythiaBiomeSource.CODEC); public static final DeferredHolder, MapCodec> THORAXIS_BIOME_SOURCE = BIOME_SOURCES.register("thoraxis_biome_source", () -> ThoraxisBiomeSource.CODEC); - // Density function public static final DeferredHolder, MapCodec> ELYTHIA_RIVER_CARVE = DENSITY_FUNCTION_TYPES.register("elythia_river_carve", () -> ElythiaRiverCarveFunction.CODEC); diff --git a/settings.gradle b/settings.gradle index e5ba5dc9..c6689520 100644 --- a/settings.gradle +++ b/settings.gradle @@ -19,18 +19,4 @@ include("test-suite") include("common-1.20.1") -// fabric-1.20.1 and forge-1.20.1 are intentionally NOT included here — each lives as -// its own standalone Gradle build. forge-1.20.1 must be standalone because ForgeGradle 6 -// isn't Gradle 9 compatible. fabric-1.20.1 must be standalone because Fabric Loom -// registers a build-wide "tinyRemapperService" that isn't classloader-safe across two -// fabric-loom projects targeting different Minecraft versions in the same Gradle -// invocation — configuring fabric-1.20.1 and fabric-1.21.1 together reliably throws -// "LoomGradleExtensionImpl_Decorated cannot be cast to LoomGradleExtension". -// Two ways to access either: -// 1. CLI from root — `./gradlew forge1201Build` / `fabric120Build` (and RunClient / -// RunServer / Assemble / Clean) delegate via Exec — see build.gradle. -// 2. IDE — in IntelliJ's Gradle tool window, click `+` → Link Gradle Project → -// pick forge-1.20.1/build.gradle or fabric-1.20.1/build.gradle. Each appears as -// its own root in the sidebar with a full Tasks tree and run configs. - rootProject.name = "Antarchy"