From 68a823d5ff10c88ddf5d147fb5fca271a00452da Mon Sep 17 00:00:00 2001 From: craisinlord Date: Mon, 3 Aug 2026 22:15:18 -0500 Subject: [PATCH] update 1.20 WIP port --- .../compat/infinity/InfinityCompatBridge.java | 4 ++ .../antarchy/config/AntarchySettings.java | 11 +++- .../content/entity/ant/RainbowAntEntity.java | 2 +- .../item/ultimate/UltimateCrossbowItem.java | 3 ++ .../animations/flying_squirrel.animation.json | 46 ++++++++-------- .../animations/nightmare.animation.json | 10 ++-- .../fabric/AntarchyFabricContent.java | 15 +++++- .../client/AntarchyFabricClientBootstrap.java | 15 +++++- .../fabric/client/AntarchyKeyBindings.java | 11 ++++ .../fabric/mixin/AntimetalInversionMixin.java | 4 +- .../AntarchyFabricClientNetworking.java | 3 ++ .../network/AntarchyFabricNetworking.java | 31 +++++++++++ .../fabric/registry/AntarchyFabricBlocks.java | 52 ++++++++++++++++-- .../registry/AntarchyFabricEntities.java | 16 ++++++ .../fabric/registry/AntarchyFabricItems.java | 51 ++++++++++++++++-- .../fabric/registry/AntarchyFabricMisc.java | 25 +++++++-- .../forge/AntarchyConfigModuleForge.java | 1 + .../antarchy/forge/AntarchyForge.java | 16 +++++- .../antarchy/forge/AntarchyMiscConfig.java | 10 +++- .../antarchy/forge/ForgeInfinityCompat.java | 41 ++++++++++++++ .../forge/client/AntarchyForgeClient.java | 14 ++++- .../forge/client/AntarchyKeyBindings.java | 12 +++++ .../forge/registry/AntarchyForgeBlocks.java | 47 ++++++++++++++-- .../forge/registry/AntarchyForgeEntites.java | 14 +++++ .../forge/registry/AntarchyForgeEvents.java | 53 ++++++++++++++++++- .../forge/registry/AntarchyForgeItems.java | 51 ++++++++++++++++-- .../forge/registry/AntarchyForgeMisc.java | 9 ++-- .../AntarchyForgePayloadHandlers.java | 2 + .../AntarchyConfigModuleNeoforge.java | 1 + .../antarchy/neoforge/AntarchyMiscConfig.java | 10 +++- .../neoforge/NeoForgeInfinityCompat.java | 41 ++++++++++++++ 31 files changed, 559 insertions(+), 62 deletions(-) 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 88ece53d..0e35dcc3 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 @@ -16,6 +16,10 @@ public interface InfinityCompatBridge { return null; } + default ResourceLocation getRandomDimensionId(RandomSource random, double easterEggChance) { + return getRandomDimensionId(random); + } + default boolean requestWarp(ServerPlayer player, 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 61cf6fbf..0ca17d44 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 @@ -9,6 +9,7 @@ public final class AntarchySettings { private static boolean easterBunnyEnabled = true; private static int easterBunnyNaturalSpawnChancePercent = 1; private static boolean rainbowAntsLeadToInfinityDimensions = true; + private static double rainbowAntInfinityEasterEggChance = 0.01D; private static boolean brownAntRequiresReagent = false; private static boolean brownAntRightClickDimension = true; private static boolean redAntRequiresReagent = false; @@ -316,7 +317,7 @@ public final class AntarchySettings { private static double krakenArmor = 8.0D; private static double krakenProjectileDamageTakenMultiplier = 0.5D; private static double krakenBossBarRange = 40.0D; - private static float krakenLightningDamagePhaseOne = 8.0F; + private static float krakenLightningDamagePhaseOne = 6.0F; private static double lucidHealth = 30.0D; private static double lucidAttackDamage = 4.0D; private static double lucidMovementSpeed = 0.22D; @@ -465,6 +466,10 @@ public final class AntarchySettings { return rainbowAntsLeadToInfinityDimensions; } + public static double rainbowAntInfinityEasterEggChance() { + return rainbowAntInfinityEasterEggChance; + } + public static boolean brownAntRightClickDimension() { return brownAntRightClickDimension; } @@ -1004,6 +1009,10 @@ public final class AntarchySettings { rainbowAntsLeadToInfinityDimensions = value; } + public static void setRainbowAntInfinityEasterEggChance(double value) { + rainbowAntInfinityEasterEggChance = value; + } + public static void setBrownAntRightClickDimension(boolean value) { brownAntRightClickDimension = value; } 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 430f9aec..15ae5a29 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 @@ -291,7 +291,7 @@ public class RainbowAntEntity extends BaseAntEntity implements GeoEntity { } private String createRandomDimensionId() { - ResourceLocation dimensionId = InfinityCompat.get().getRandomDimensionId(this.random); + ResourceLocation dimensionId = InfinityCompat.get().getRandomDimensionId(this.random, AntarchySettings.rainbowAntInfinityEasterEggChance()); if (dimensionId == null) { return ""; } 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 d5bd65b3..f13590f5 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 @@ -125,6 +125,9 @@ public class UltimateCrossbowItem extends CrossbowItem { super.shootProjectile(shooter, projectile, projectileIndex, velocity, inaccuracy, angle, target); if (projectile instanceof AbstractArrow arrow) { scaleArrowDamage(arrow); + if (projectileIndex > 0) { + arrow.pickup = AbstractArrow.Pickup.DISALLOWED; + } UltimateGearHelper.tagUltimateCrossbowProjectile(arrow); } } diff --git a/common-1.21.1/src/main/resources/assets/antarchy/animations/flying_squirrel.animation.json b/common-1.21.1/src/main/resources/assets/antarchy/animations/flying_squirrel.animation.json index 5d929a89..29f908b9 100644 --- a/common-1.21.1/src/main/resources/assets/antarchy/animations/flying_squirrel.animation.json +++ b/common-1.21.1/src/main/resources/assets/antarchy/animations/flying_squirrel.animation.json @@ -7,72 +7,72 @@ "bones": { "left_leg": { "rotation": { - "vector": ["5+math.cos(query.anim_time*90*2)*2", 0, -2.5] + "vector": ["5+math.cos(query.anim_time*2)*2", 0, -2.5] }, "position": { - "vector": [0, "0.15+math.cos(query.anim_time*90*2)/14", "-math.cos(query.anim_time*90*2)/5"] + "vector": [0, "0.15+math.cos(query.anim_time*2)/14", "-math.cos(query.anim_time*2)/5"] } }, "right_leg": { "rotation": { - "vector": ["5+math.cos(query.anim_time*90*2)*2", 0, 2.5] + "vector": ["5+math.cos(query.anim_time*2)*2", 0, 2.5] }, "position": { - "vector": [0, "0.15+math.cos(query.anim_time*90*2)/14", "-math.cos(query.anim_time*90*2)/5"] + "vector": [0, "0.15+math.cos(query.anim_time*2)/14", "-math.cos(query.anim_time*2)/5"] } }, "torso": { "rotation": { - "vector": ["-math.cos(query.anim_time*90*2-60)", 0, 0] + "vector": ["-math.cos(query.anim_time*2-60)", 0, 0] }, "position": { - "vector": [0, "math.cos(query.anim_time*90*2)/5", 0] + "vector": [0, "math.cos(query.anim_time*2)/5", 0] } }, "head": { "rotation": { - "vector": ["-math.cos(query.anim_time*90*2-160)*2", 0, 0] + "vector": ["-math.cos(query.anim_time*2-160)*2", 0, 0] } }, "left_ear": { "rotation": { - "vector": ["math.cos(query.anim_time*90*2)*6", "math.cos(query.anim_time*90*2-40)*5", "7.5+math.cos(query.anim_time*90*2+30)*5"] + "vector": ["math.cos(query.anim_time*2)*6", "math.cos(query.anim_time*2-40)*5", "7.5+math.cos(query.anim_time*2+30)*5"] } }, "right_ear": { "rotation": { - "vector": ["math.cos(query.anim_time*90*2)*6", "-math.cos(query.anim_time*90*2-40)*5", "-7.5-math.cos(query.anim_time*90*2+30)*5"] + "vector": ["math.cos(query.anim_time*2)*6", "-math.cos(query.anim_time*2-40)*5", "-7.5-math.cos(query.anim_time*2+30)*5"] } }, "tail": { "rotation": { - "vector": ["math.cos(query.anim_time*90*2+50)*4", 0, 0] + "vector": ["math.cos(query.anim_time*2+50)*4", 0, 0] } }, "left_arm": { "rotation": { - "vector": ["math.cos(query.anim_time*90*2-60)*3-3", 0, -5] + "vector": ["math.cos(query.anim_time*2-60)*3-3", 0, -5] }, "position": { - "vector": [0, "-math.cos(query.anim_time*90*2-30)/4", "-math.cos(query.anim_time*90*2-50)/5"] + "vector": [0, "-math.cos(query.anim_time*2-30)/4", "-math.cos(query.anim_time*2-50)/5"] } }, "right_arm": { "rotation": { - "vector": ["math.cos(query.anim_time*90*2-60)*3-3", 0, 5] + "vector": ["math.cos(query.anim_time*2-60)*3-3", 0, 5] }, "position": { - "vector": [0, "-math.cos(query.anim_time*90*2-30)/4", "-math.cos(query.anim_time*90*2-50)/5"] + "vector": [0, "-math.cos(query.anim_time*2-30)/4", "-math.cos(query.anim_time*2-50)/5"] } }, "left_leg2": { "rotation": { - "vector": ["-5-math.cos(query.anim_time*90*2)*2", 0, 2.5] + "vector": ["-5-math.cos(query.anim_time*2)*2", 0, 2.5] } }, "right_leg2": { "rotation": { - "vector": ["-5-math.cos(query.anim_time*90*2)*2", 0, -2.5] + "vector": ["-5-math.cos(query.anim_time*2)*2", 0, -2.5] } } } @@ -1478,7 +1478,7 @@ "vector": [0, 0, 0] }, "0.7917": { - "vector": ["-math.cos(query.anim_time*90*32-60)*20", "-math.cos(query.anim_time*90*32)*20", "math.cos(query.anim_time*90*32-50)*20"] + "vector": ["-math.cos(query.anim_time*32-60)*20", "-math.cos(query.anim_time*32)*20", "math.cos(query.anim_time*32-50)*20"] }, "0.9167": { "vector": [0, 0, 0] @@ -1491,7 +1491,7 @@ "vector": [0, 0, 0] }, "0.4583": { - "vector": ["-math.cos(query.anim_time*90*32-60)*20", "math.cos(query.anim_time*90*32)*20", "-math.cos(query.anim_time*90*32-50)*20"] + "vector": ["-math.cos(query.anim_time*32-60)*20", "math.cos(query.anim_time*32)*20", "-math.cos(query.anim_time*32-50)*20"] }, "0.5833": { "vector": [0, 0, 0] @@ -1500,7 +1500,7 @@ "vector": [0, 0, 0] }, "1.2917": { - "vector": ["-math.cos(query.anim_time*90*32-60)*20", "math.cos(query.anim_time*90*32)*20", "-math.cos(query.anim_time*90*32-50)*20"] + "vector": ["-math.cos(query.anim_time*32-60)*20", "math.cos(query.anim_time*32)*20", "-math.cos(query.anim_time*32-50)*20"] }, "1.4167": { "vector": [0, 0, 0] @@ -1547,13 +1547,13 @@ }, "1.0": { "post": { - "vector": [67.5, "-math.cos(query.anim_time*90*16)*10", "-17.5+math.cos(query.anim_time*90*16-60)*10"] + "vector": [67.5, "-math.cos(query.anim_time*16)*10", "-17.5+math.cos(query.anim_time*16-60)*10"] }, "lerp_mode": "catmullrom" }, "1.1667": { "post": { - "vector": [67.5, "-math.cos(query.anim_time*90*16)*10", "-17.5+math.cos(query.anim_time*90*16-60)*10"] + "vector": [67.5, "-math.cos(query.anim_time*16)*10", "-17.5+math.cos(query.anim_time*16-60)*10"] }, "lerp_mode": "catmullrom" }, @@ -2145,13 +2145,13 @@ }, "0.5": { "post": { - "vector": ["85-math.clamp(math.cos(query.anim_time*90*10-80)*10,0,10)", "math.cos(query.anim_time*90*8)*20", "math.cos(query.anim_time*90*8-80)*10"] + "vector": ["85-math.clamp(math.cos(query.anim_time*10-80)*10,0,10)", "math.cos(query.anim_time*8)*20", "math.cos(query.anim_time*8-80)*10"] }, "lerp_mode": "catmullrom" }, "1.0": { "post": { - "vector": ["85-math.clamp(math.cos(query.anim_time*90*10-80)*10,0,10)", "math.cos(query.anim_time*90*8)*20", "math.cos(query.anim_time*90*8-80)*10"] + "vector": ["85-math.clamp(math.cos(query.anim_time*10-80)*10,0,10)", "math.cos(query.anim_time*8)*20", "math.cos(query.anim_time*8-80)*10"] }, "lerp_mode": "catmullrom" }, diff --git a/common-1.21.1/src/main/resources/assets/antarchy/animations/nightmare.animation.json b/common-1.21.1/src/main/resources/assets/antarchy/animations/nightmare.animation.json index 74d958b0..44c1d72e 100644 --- a/common-1.21.1/src/main/resources/assets/antarchy/animations/nightmare.animation.json +++ b/common-1.21.1/src/main/resources/assets/antarchy/animations/nightmare.animation.json @@ -7984,7 +7984,7 @@ }, "0.2917": { "post": { - "vector": [0, "-1+math.cos(query.anim_time*90*32)*2", 6] + "vector": [0, "-1+math.cos(query.anim_time*32)*2", 6] }, "lerp_mode": "catmullrom" }, @@ -8014,7 +8014,7 @@ }, "0.7917": { "post": { - "vector": [0, "-1+math.cos(query.anim_time*90*32)*2", 6] + "vector": [0, "-1+math.cos(query.anim_time*32)*2", 6] }, "lerp_mode": "catmullrom" }, @@ -8044,7 +8044,7 @@ }, "1.2917": { "post": { - "vector": [0, "-1+math.cos(query.anim_time*90*32)*2", 6] + "vector": [0, "-1+math.cos(query.anim_time*32)*2", 6] }, "lerp_mode": "catmullrom" }, @@ -9176,13 +9176,13 @@ }, "1.6667": { "post": { - "vector": ["35-math.cos(query.anim_time*90*32-50)*5", 0, 0] + "vector": ["35-math.cos(query.anim_time*32-50)*5", 0, 0] }, "lerp_mode": "catmullrom" }, "1.875": { "post": { - "vector": ["35-math.cos(query.anim_time*90*32-50)*5", 0, 0] + "vector": ["35-math.cos(query.anim_time*32-50)*5", 0, 0] }, "lerp_mode": "catmullrom" }, diff --git a/fabric-1.20.1/src/main/java/com/craisinlord/antarchy/fabric/AntarchyFabricContent.java b/fabric-1.20.1/src/main/java/com/craisinlord/antarchy/fabric/AntarchyFabricContent.java index 0f7d5725..6898eeac 100644 --- a/fabric-1.20.1/src/main/java/com/craisinlord/antarchy/fabric/AntarchyFabricContent.java +++ b/fabric-1.20.1/src/main/java/com/craisinlord/antarchy/fabric/AntarchyFabricContent.java @@ -281,6 +281,8 @@ public final class AntarchyFabricContent { AntarchyObjects.setOctopusBomb(AntarchyFabricEntities.OCTOPUS_BOMB); AntarchyObjects.setTentacle(AntarchyFabricEntities.TENTACLE); + AntarchyObjects.setNightmarePortal(AntarchyFabricEntities.NIGHTMARE_PORTAL); + AntarchyObjects.setNightmareBite(AntarchyFabricEntities.NIGHTMARE_BITE); AntarchyObjects.setKrakensGraspTrident(AntarchyFabricEntities.KRAKENS_GRASP_TRIDENT); AntarchyObjects.setLotus(() -> AntarchyFabricBlocks.LOTUS.get()); AntarchyObjects.setKrakenTentacle(() -> AntarchyFabricItems.KRAKEN_TENTACLE.get()); @@ -288,6 +290,7 @@ public final class AntarchyFabricContent { AntarchyObjects.setOuranwoodDeer(AntarchyFabricEntities.OURANWOOD_DEER); AntarchyObjects.setGlimmer(AntarchyFabricEntities.GLIMMER); AntarchyObjects.setSpiritApple(() -> AntarchyFabricItems.SPIRIT_APPLE.get()); + AntarchyObjects.setGlimmeringEffect(() -> AntarchyFabricMisc.mobEffectHolder(AntarchyFabricMisc.GLIMMERING)); AntarchyObjects.setElka(AntarchyFabricEntities.ELKA); AntarchyObjects.setPeach(() -> AntarchyFabricItems.PEACH.get()); AntarchyObjects.setCorn(() -> AntarchyFabricItems.CORN.get()); @@ -309,6 +312,8 @@ public final class AntarchyFabricContent { AntarchyObjects.setCritterCage(() -> AntarchyFabricItems.CRITTER_CAGE.get()); AntarchyObjects.setCritterCageBlock(() -> AntarchyFabricBlocks.CRITTER_CAGE_BLOCK.get()); AntarchyObjects.setCritterCageBlockEntity(() -> AntarchyFabricBlocks.CRITTER_CAGE_BLOCK_ENTITY.get()); + AntarchyObjects.setLucidAnchor(() -> AntarchyFabricBlocks.LUCID_ANCHOR.get()); + AntarchyObjects.setLucidAnchorBlockEntity(() -> AntarchyFabricBlocks.LUCID_ANCHOR_BLOCK_ENTITY.get()); AntarchyObjects.setCritterCageProjectile(() -> AntarchyFabricEntities.CRITTER_CAGE_PROJECTILE.get()); AntarchyObjects.bind( AntarchyFabricEntities.EASTER_BUNNY, @@ -363,8 +368,8 @@ public final class AntarchyFabricContent { () -> AntarchyFabricBlocks.TRIFFID_GOO_BLOCK.get(), () -> AntarchyFabricBlocks.PALE_NYXITE.get(), () -> AntarchyFabricBlocks.NYXITE_SPIKE.get(), - () -> AntarchyFabricBlocks.CHITEN_BLOCK.get(), - () -> AntarchyFabricBlocks.CHITEN_SPIKE.get(), + () -> AntarchyFabricBlocks.CHITIN_BLOCK.get(), + () -> AntarchyFabricBlocks.CHITIN_SPIKE.get(), () -> AntarchyFabricBlocks.POTENT_NYXITE.get(), () -> AntarchyFabricBlocks.ANTIMETAL.get(), () -> AntarchyFabricBlocks.POLISHED_ANTIMETAL.get(), @@ -431,6 +436,12 @@ public final class AntarchyFabricContent { com.craisinlord.antarchy.fabric.network.AntarchyFabricNetworking.sendToPlayer(player, payload, com.craisinlord.antarchy.content.network.HordeIntensityPayload.STREAM_CODEC, com.craisinlord.antarchy.content.network.HordeIntensityPayload.TYPE)); BloodCrystalKatanaItem.setTrailCallback(AntarchyFabricNetworking::syncKatanaTrail); com.craisinlord.antarchy.content.gravity.AntarchyGravityApi.setSyncDispatcher(AntarchyFabricNetworking::syncGravityEntity); + com.craisinlord.antarchy.content.tigereye.TigerEyeCamouflageSync.setSendToPlayer((player, payload) -> + AntarchyFabricNetworking.sendToPlayer(player, payload, + com.craisinlord.antarchy.content.network.TigerEyeCamouflageStatePayload.STREAM_CODEC, + com.craisinlord.antarchy.content.network.TigerEyeCamouflageStatePayload.TYPE)); + com.craisinlord.antarchy.content.tigereye.TigerEyeCamouflageSync.setSyncSelfAndTracking(AntarchyFabricNetworking::syncTigerEyeCamouflage); + com.craisinlord.antarchy.fabric.TigerEyeFabricManager.register(); AntarchyFabricEvents.register(); if (isSupportedInfinityLoaded()) { diff --git a/fabric-1.20.1/src/main/java/com/craisinlord/antarchy/fabric/client/AntarchyFabricClientBootstrap.java b/fabric-1.20.1/src/main/java/com/craisinlord/antarchy/fabric/client/AntarchyFabricClientBootstrap.java index 49559bf3..40afd7a7 100644 --- a/fabric-1.20.1/src/main/java/com/craisinlord/antarchy/fabric/client/AntarchyFabricClientBootstrap.java +++ b/fabric-1.20.1/src/main/java/com/craisinlord/antarchy/fabric/client/AntarchyFabricClientBootstrap.java @@ -57,6 +57,8 @@ public final class AntarchyFabricClientBootstrap { public static void register() { AntarchyKeyBindings.register(); + com.craisinlord.antarchy.content.client.TigerEyeClientHooks.setCamouflageKeyTextSupplier( + () -> AntarchyKeyBindings.TIGERS_EYE_CAMOUFLAGE.getTranslatedKeyMessage()); MenuScreens.register(AntarchyFabricMisc.DORRIE_INVENTORY_MENU.get(), com.craisinlord.antarchy.content.client.screen.DorrieInventoryScreen::new); registerRenderers(); registerEntityLayers(); @@ -77,6 +79,10 @@ public final class AntarchyFabricClientBootstrap { (net.minecraft.world.level.block.entity.BlockEntityType) AntarchyFabricBlocks.SEASHELL_BLOCK_ENTITY.get(), (BlockEntityRendererProvider) SeashellRenderer::new ); + BlockEntityRendererRegistry.register( + (net.minecraft.world.level.block.entity.BlockEntityType) AntarchyFabricBlocks.LUCID_ANCHOR_BLOCK_ENTITY.get(), + (BlockEntityRendererProvider) LucidAnchorBlockEntityRenderer::new + ); BlockEntityRendererRegistry.register( (net.minecraft.world.level.block.entity.BlockEntityType) AntarchyFabricBlocks.CRITTER_CAGE_BLOCK_ENTITY.get(), (BlockEntityRendererProvider) CritterCageRenderer::new @@ -113,6 +119,8 @@ public final class AntarchyFabricClientBootstrap { EntityRendererRegistry.register(AntarchyFabricEntities.MISSILE_SQUID.get(), MissileSquidRenderer::new); EntityRendererRegistry.register(AntarchyFabricEntities.OCTOPUS_BOMB.get(), OctopusBombRenderer::new); EntityRendererRegistry.register(AntarchyFabricEntities.NIGHTMARE.get(), NightmareRenderer::new); + EntityRendererRegistry.register(AntarchyFabricEntities.NIGHTMARE_PORTAL.get(), NightmarePortalRenderer::new); + EntityRendererRegistry.register(AntarchyFabricEntities.NIGHTMARE_BITE.get(), NightmareBiteRenderer::new); EntityRendererRegistry.register(AntarchyFabricEntities.LUCID.get(), LucidRenderer::new); EntityRendererRegistry.register(AntarchyFabricEntities.BED_BUG.get(), BedBugRenderer::new); EntityRendererRegistry.register(AntarchyFabricEntities.WASP.get(), WaspRenderer::new); @@ -319,7 +327,7 @@ public final class AntarchyFabricClientBootstrap { BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.ANTIMETAL_SCAFFOLDING.get(), RenderType.cutout()); BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.UMBRAL_MOSS_CARPET.get(), RenderType.cutout()); BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.NYXITE_SPIKE.get(), RenderType.cutout()); - BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.CHITEN_SPIKE.get(), RenderType.cutout()); + BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.CHITIN_SPIKE.get(), RenderType.cutout()); BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.STAR_CORAL.get(), RenderType.cutout()); BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.STAR_CORAL_FAN.get(), RenderType.cutout()); BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.STAR_CORAL_WALL_FAN.get(), RenderType.cutout()); @@ -430,7 +438,9 @@ public final class AntarchyFabricClientBootstrap { if (entityType == EntityType.PLAYER) { if (renderer instanceof net.minecraft.client.renderer.entity.player.PlayerRenderer playerRenderer) { registrationHelper.register(new ParalyzedStonePlayerLayer(playerRenderer)); + registrationHelper.register(new com.craisinlord.antarchy.content.client.renderer.TigerEyeCamouflagePlayerLayer(playerRenderer)); registrationHelper.register(new GoopedLivingLayer(playerRenderer)); + registrationHelper.register(new GlimmeringLivingLayer(playerRenderer)); registrationHelper.register(new BrutalflyElytraLayer(playerRenderer)); registrationHelper.register(new FallenKingCrownLayer(playerRenderer)); } @@ -449,6 +459,7 @@ public final class AntarchyFabricClientBootstrap { } registrationHelper.register(new ParalyzedStoneLivingLayer(renderer)); registrationHelper.register(new GoopedLivingLayer(renderer)); + registrationHelper.register(new GlimmeringLivingLayer(renderer)); }); } @@ -469,6 +480,7 @@ public final class AntarchyFabricClientBootstrap { ScorpionWhipTetherRenderHandler.tick(); DorrieJumpClientHandler.tick(); HerculesBeetleClientHandler.tick(); + TigerEyeCamouflageClientHandler.tick(); }); BigBerthaClientHandler.register(); @@ -483,6 +495,7 @@ public final class AntarchyFabricClientBootstrap { DreadHudRenderer.render(guiGraphics); com.craisinlord.antarchy.content.client.HordeHudRenderer.render(guiGraphics); com.craisinlord.antarchy.content.client.GoopedHudRenderer.render(guiGraphics); + com.craisinlord.antarchy.content.client.GlimmeringHudRenderer.render(guiGraphics); ParalyzedHudRenderer.render(guiGraphics); BrutalflyElytraHudRenderer.render(guiGraphics); JumpyBootsHudRenderer.render(guiGraphics); diff --git a/fabric-1.20.1/src/main/java/com/craisinlord/antarchy/fabric/client/AntarchyKeyBindings.java b/fabric-1.20.1/src/main/java/com/craisinlord/antarchy/fabric/client/AntarchyKeyBindings.java index 955d42cb..e185db07 100644 --- a/fabric-1.20.1/src/main/java/com/craisinlord/antarchy/fabric/client/AntarchyKeyBindings.java +++ b/fabric-1.20.1/src/main/java/com/craisinlord/antarchy/fabric/client/AntarchyKeyBindings.java @@ -37,6 +37,12 @@ public final class AntarchyKeyBindings { GLFW.GLFW_KEY_R, CATEGORY ); + public static final KeyMapping TIGERS_EYE_CAMOUFLAGE = new KeyMapping( + "key.antarchy.tigers_eye_camouflage", + InputConstants.Type.KEYSYM, + InputConstants.UNKNOWN.getValue(), + CATEGORY + ); private AntarchyKeyBindings() {} @@ -45,6 +51,7 @@ public final class AntarchyKeyBindings { KeyBindingHelper.registerKeyBinding(DORRIE_CHARGE_JUMP); KeyBindingHelper.registerKeyBinding(HERCULES_BEETLE_CHARGE); KeyBindingHelper.registerKeyBinding(HERCULES_BEETLE_FLIGHT_TOGGLE); + KeyBindingHelper.registerKeyBinding(TIGERS_EYE_CAMOUFLAGE); } public static boolean isBrutalflyFlapPressed() { @@ -62,4 +69,8 @@ public final class AntarchyKeyBindings { public static boolean isHerculesBeetleFlightTogglePressed() { return Minecraft.getInstance().screen == null && HERCULES_BEETLE_FLIGHT_TOGGLE.isDown(); } + + public static boolean consumeTigerEyeCamouflagePressed() { + return Minecraft.getInstance().screen == null && TIGERS_EYE_CAMOUFLAGE.consumeClick(); + } } diff --git a/fabric-1.20.1/src/main/java/com/craisinlord/antarchy/fabric/mixin/AntimetalInversionMixin.java b/fabric-1.20.1/src/main/java/com/craisinlord/antarchy/fabric/mixin/AntimetalInversionMixin.java index 2cfe4aea..da724a84 100644 --- a/fabric-1.20.1/src/main/java/com/craisinlord/antarchy/fabric/mixin/AntimetalInversionMixin.java +++ b/fabric-1.20.1/src/main/java/com/craisinlord/antarchy/fabric/mixin/AntimetalInversionMixin.java @@ -1,6 +1,7 @@ package com.craisinlord.antarchy.fabric.mixin; import com.craisinlord.antarchy.content.AntarchyObjects; +import com.craisinlord.antarchy.content.AntarchyTags; import com.craisinlord.antarchy.content.gravity.AntarchyGravityApi; import com.craisinlord.antarchy.content.gravity.AntarchyGravityDirection; import com.craisinlord.antarchy.content.gravity.AntarchyGravityTransition; @@ -50,8 +51,7 @@ public abstract class AntimetalInversionMixin { for (int y = minY; y <= maxY; y++) { for (int z = minZ; z <= maxZ; z++) { BlockPos above = new BlockPos(x, y + 1, z); - if (entity.level().getBlockState(above).is(AntarchyObjects.ANTIMETAL.get()) - || entity.level().getBlockState(above).is(AntarchyObjects.POLISHED_ANTIMETAL.get())) { + if (entity.level().getBlockState(above).is(AntarchyTags.Blocks.ANTIMETAL_INVERSION_BLOCKS)) { return true; } } diff --git a/fabric-1.20.1/src/main/java/com/craisinlord/antarchy/fabric/network/AntarchyFabricClientNetworking.java b/fabric-1.20.1/src/main/java/com/craisinlord/antarchy/fabric/network/AntarchyFabricClientNetworking.java index fc340d0a..54131368 100644 --- a/fabric-1.20.1/src/main/java/com/craisinlord/antarchy/fabric/network/AntarchyFabricClientNetworking.java +++ b/fabric-1.20.1/src/main/java/com/craisinlord/antarchy/fabric/network/AntarchyFabricClientNetworking.java @@ -4,6 +4,7 @@ import com.craisinlord.antarchy.content.client.BloodglassClientState; import com.craisinlord.antarchy.content.client.BrutalflyElytraClientState; import com.craisinlord.antarchy.content.client.HordeClientState; import com.craisinlord.antarchy.content.client.ScorpionWhipTetherClientState; +import com.craisinlord.antarchy.content.client.TigerEyeCamouflageClientState; import com.craisinlord.antarchy.content.client.ThoraxisWeatherClientState; import com.craisinlord.antarchy.content.entity.multipart.MultipartFramework; import com.craisinlord.antarchy.content.entity.multipart.network.MultipartAttackPayload; @@ -84,5 +85,7 @@ public final class AntarchyFabricClientNetworking { registerReceiver(ImpactShakePayload.TYPE, ImpactShakePayload.STREAM_CODEC, AntarchyFabricNetworking::triggerImpactShake); registerReceiver(HordeIntensityPayload.TYPE, HordeIntensityPayload.STREAM_CODEC, payload -> HordeClientState.update(payload.intensity())); + registerReceiver(TigerEyeCamouflageStatePayload.TYPE, TigerEyeCamouflageStatePayload.STREAM_CODEC, payload -> + TigerEyeCamouflageClientState.update(payload.entityId(), payload.active(), payload.blockStateId())); } } diff --git a/fabric-1.20.1/src/main/java/com/craisinlord/antarchy/fabric/network/AntarchyFabricNetworking.java b/fabric-1.20.1/src/main/java/com/craisinlord/antarchy/fabric/network/AntarchyFabricNetworking.java index 0fc452b5..a28af3b2 100644 --- a/fabric-1.20.1/src/main/java/com/craisinlord/antarchy/fabric/network/AntarchyFabricNetworking.java +++ b/fabric-1.20.1/src/main/java/com/craisinlord/antarchy/fabric/network/AntarchyFabricNetworking.java @@ -17,6 +17,9 @@ import com.craisinlord.antarchy.content.item.JumpyBootsHelper; import com.craisinlord.antarchy.fabric.util.JumpyBootsFabricHelper; import com.craisinlord.antarchy.content.item.JumpyBootsItem; import com.craisinlord.antarchy.content.item.GravityGunItem; +import com.craisinlord.antarchy.content.item.TigerEyeArmorUtil; +import com.craisinlord.antarchy.content.tigereye.TigerEyeCamouflageController; +import com.craisinlord.antarchy.content.tigereye.TigerEyeCamouflageSync; import com.craisinlord.antarchy.content.network.*; import com.craisinlord.antarchy.content.entity.DorrieEntity; import com.craisinlord.antarchy.content.network.DorrieJumpInputPayload; @@ -104,6 +107,34 @@ public final class AntarchyFabricNetworking { registerC2SReceiver(HerculesBeetleMountedChargePayload.TYPE, HerculesBeetleMountedChargePayload.STREAM_CODEC, AntarchyFabricNetworking::handleHerculesBeetleMountedCharge); registerC2SReceiver(MultipartAttackPayload.TYPE, MultipartAttackPayload.STREAM_CODEC, AntarchyFabricNetworking::handleMultipartAttack); registerC2SReceiver(MultipartInteractPayload.TYPE, MultipartInteractPayload.STREAM_CODEC, AntarchyFabricNetworking::handleMultipartInteract); + registerC2SReceiver(ToggleTigerEyeCamouflagePayload.TYPE, ToggleTigerEyeCamouflagePayload.STREAM_CODEC, (player, payload) -> handleTigerEyeCamouflageToggle(player)); + } + + public static void syncTigerEyeCamouflage(ServerPlayer player) { + TigerEyeCamouflageStatePayload payload = TigerEyeCamouflageSync.payload(player); + for (ServerPlayer tracking : PlayerLookup.tracking(player)) { + sendToPlayer(tracking, payload, TigerEyeCamouflageStatePayload.STREAM_CODEC, TigerEyeCamouflageStatePayload.TYPE); + } + sendToPlayer(player, payload, TigerEyeCamouflageStatePayload.STREAM_CODEC, TigerEyeCamouflageStatePayload.TYPE); + } + + private static void handleTigerEyeCamouflageToggle(ServerPlayer player) { + TigerEyeCamouflageController.ToggleResult result = TigerEyeCamouflageController.toggle(player); + if (result != TigerEyeCamouflageController.ToggleResult.NO_CHANGE) { + syncTigerEyeCamouflage(player); + } + String messageKey = switch (result) { + case ACTIVATED -> "message.antarchy.tiger_eye_camouflage.activated"; + case DEACTIVATED -> "message.antarchy.tiger_eye_camouflage.disabled"; + case FULL_SET_REQUIRED -> TigerEyeArmorUtil.countEquippedPieces(player) > 0 + ? "message.antarchy.tiger_eye_camouflage.full_set_required" + : null; + case INVALID_BLOCK -> "message.antarchy.tiger_eye_camouflage.invalid_block"; + case NO_CHANGE -> null; + }; + if (messageKey != null) { + player.displayClientMessage(net.minecraft.network.chat.Component.translatable(messageKey), true); + } } public static void syncGravityToPlayer(ServerPlayer target, Entity entity) { diff --git a/fabric-1.20.1/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricBlocks.java b/fabric-1.20.1/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricBlocks.java index 4b8fa807..ca89b264 100644 --- a/fabric-1.20.1/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricBlocks.java +++ b/fabric-1.20.1/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricBlocks.java @@ -10,6 +10,7 @@ import com.craisinlord.antarchy.content.block.entity.DreamCampfireBlockEntity; import com.craisinlord.antarchy.content.block.entity.HushweedBlockEntity; import com.craisinlord.antarchy.content.block.entity.PotentNyxiteBlockEntity; import com.craisinlord.antarchy.content.block.entity.SeashellBlockEntity; +import com.craisinlord.antarchy.content.block.entity.UpperBlockEntity; import com.craisinlord.antarchy.content.block.entity.WaspNestBlockEntity; import com.craisinlord.antarchy.content.fluid.BileLiquidBlock; import com.craisinlord.antarchy.content.fluid.LumenLiquidBlock; @@ -149,6 +150,8 @@ public final class AntarchyFabricBlocks { () -> new net.minecraft.world.level.block.FlowerPotBlock(LOTUS.get(), BlockBehaviour.Properties.copy(Blocks.POTTED_DANDELION))); public static final DeferredBlock SEASHELL = BLOCKS.register("seashell", () -> new SeashellBlock(BlockBehaviour.Properties.copy(Blocks.TURTLE_EGG).noOcclusion())); + public static final DeferredBlock LUCID_ANCHOR = BLOCKS.register("lucid_anchor", + () -> new LucidAnchorBlock(BlockBehaviour.Properties.copy(Blocks.BEACON).strength(3.0F))); public static final DeferredBlock CRITTER_CAGE_BLOCK = BLOCKS.register("critter_cage_block", () -> new CritterCageBlock(BlockBehaviour.Properties.of().strength(5.0F, 6.0F).sound(net.minecraft.world.level.block.SoundType.METAL).noOcclusion())); @@ -327,6 +330,9 @@ public final class AntarchyFabricBlocks { public static final DeferredBlock NYXITE_BRICK_WALL = BLOCKS.register("nyxite_brick_wall", () -> new net.minecraft.world.level.block.WallBlock(nyxiteProperties())); + public static final DeferredBlock NYXITE_PILLAR = BLOCKS.register("nyxite_pillar", + () -> new RotatedPillarBlock(nyxiteProperties())); + public static final DeferredBlock SHELLSTONE = BLOCKS.register("shellstone", () -> new Block(AntarchyObjects.shellstoneProperties())); @@ -400,6 +406,10 @@ public final class AntarchyFabricBlocks { () -> new net.minecraft.world.level.block.WallBlock(AntarchyObjects.shellstoneProperties())); + public static final DeferredBlock SHELLSTONE_PILLAR = BLOCKS.register("shellstone_pillar", + () -> new RotatedPillarBlock(AntarchyObjects.shellstoneProperties())); + + public static final DeferredBlock TRIFFID_GOO_BLOCK = BLOCKS.register("triffid_goo_block", () -> new com.craisinlord.antarchy.content.block.TriffidGooBlock(BlockBehaviour.Properties.copy(Blocks.SLIME_BLOCK).noOcclusion().isViewBlocking((s, l, p) -> false).isSuffocating((s, l, p) -> false))); @@ -431,8 +441,8 @@ public final class AntarchyFabricBlocks { () -> new NyxiteSpikeBlock(BlockBehaviour.Properties.copy(Blocks.POINTED_DRIPSTONE))); - public static final DeferredBlock CHITEN_SPIKE = BLOCKS.register("chiten_spike", - () -> new ChitenSpikeBlock(BlockBehaviour.Properties.copy(Blocks.POINTED_DRIPSTONE))); + public static final DeferredBlock CHITIN_SPIKE = BLOCKS.register("chitin_spike", + () -> new ChitinSpikeBlock(BlockBehaviour.Properties.copy(Blocks.POINTED_DRIPSTONE))); public static final DeferredBlock POTENT_NYXITE = BLOCKS.register("potent_nyxite", @@ -526,7 +536,11 @@ public final class AntarchyFabricBlocks { () -> createOre(Blocks.DEEPSLATE_DIAMOND_ORE, 4, 8, MapColor.COLOR_LIGHT_BLUE)); - public static final DeferredBlock CHITEN_BLOCK = BLOCKS.register("chiten_block", + public static final DeferredBlock BROODSTONE_PILLAR = BLOCKS.register("broodstone_pillar", + () -> new RotatedPillarBlock(broodstoneProperties())); + + + public static final DeferredBlock CHITIN_BLOCK = BLOCKS.register("chitin_block", () -> new RotatedPillarBlock(BlockBehaviour.Properties.copy(Blocks.BONE_BLOCK).requiresCorrectToolForDrops())); @@ -730,6 +744,8 @@ public final class AntarchyFabricBlocks { () -> new BluestoneComparatorBlock(BlockBehaviour.Properties.copy(Blocks.COMPARATOR).mapColor(MapColor.COLOR_BLUE).noCollission(), AntarchyFabricBlocks::bluestoneComparatorBlockEntityType)); public static final DeferredBlock BLUESTONE_TORCH = BLOCKS.register("bluestone_torch", () -> new BluestoneTorchBlock(BlockBehaviour.Properties.copy(Blocks.REDSTONE_TORCH).mapColor(MapColor.COLOR_BLUE).lightLevel(state -> state.getValue(BluestoneTorchBlock.LIT) ? 7 : 0).noCollission().instabreak())); + public static final DeferredBlock BLUESTONE_LAMP = BLOCKS.register("bluestone_lamp", + () -> new BluestoneLampBlock(BlockBehaviour.Properties.copy(Blocks.REDSTONE_LAMP).mapColor(MapColor.COLOR_BLUE))); public static final DeferredBlock URANIUM_BLOCK = BLOCKS.register("uranium_block", @@ -818,6 +834,14 @@ public final class AntarchyFabricBlocks { public static final DeferredBlock POLISHED_ANTIMETAL = BLOCKS.register("polished_antimetal", () -> new net.minecraft.world.level.block.RotatedPillarBlock(BlockBehaviour.Properties.copy(Blocks.POLISHED_BASALT))); + public static final DeferredBlock ANTIMETAL_STAIRS = BLOCKS.register("antimetal_stairs", + () -> new StairBlock(ANTIMETAL.get().defaultBlockState(), BlockBehaviour.Properties.copy(Blocks.BASALT))); + public static final DeferredBlock ANTIMETAL_SLAB = BLOCKS.register("antimetal_slab", + () -> new SlabBlock(BlockBehaviour.Properties.copy(Blocks.BASALT))); + public static final DeferredBlock POLISHED_ANTIMETAL_STAIRS = BLOCKS.register("polished_antimetal_stairs", + () -> new StairBlock(POLISHED_ANTIMETAL.get().defaultBlockState(), BlockBehaviour.Properties.copy(Blocks.POLISHED_BASALT))); + public static final DeferredBlock POLISHED_ANTIMETAL_SLAB = BLOCKS.register("polished_antimetal_slab", + () -> new SlabBlock(BlockBehaviour.Properties.copy(Blocks.POLISHED_BASALT))); public static final DeferredBlock ANTIMETAL_SCAFFOLDING = BLOCKS.register("antimetal_scaffolding", @@ -826,6 +850,8 @@ public final class AntarchyFabricBlocks { public static final DeferredBlock ANTIMETAL_RAIL = BLOCKS.register("antimetal_rail", () -> new com.craisinlord.antarchy.content.block.AntimetalRailBlock(BlockBehaviour.Properties.copy(Blocks.RAIL))); + public static final DeferredBlock UPPER = BLOCKS.register("upper", + () -> new UpperBlock(AntarchyFabricBlocks::upperBlockEntityType, BlockBehaviour.Properties.copy(Blocks.HOPPER))); public static final DeferredBlock ANTIMETAL_POWERED_RAIL = BLOCKS.register("antimetal_powered_rail", @@ -903,6 +929,12 @@ public final class AntarchyFabricBlocks { public static final DeferredBlock DREAM_SAND = BLOCKS.register("dream_sand", () -> new DreamSandBlock(BlockBehaviour.Properties.copy(Blocks.SAND))); + public static final DeferredBlock ANTIGRAVEL = BLOCKS.register("antigravel", + () -> new AntigravelBlock(BlockBehaviour.Properties.copy(Blocks.GRAVEL))); + public static final DeferredBlock LOAM = BLOCKS.register("loam", + () -> new Block(BlockBehaviour.Properties.copy(Blocks.MUD))); + public static final DeferredBlock MUCUS = BLOCKS.register("mucus", + () -> new MucusBlock(BlockBehaviour.Properties.copy(Blocks.GLOW_LICHEN).friction(0.98F).lightLevel(state -> 0).sound(net.minecraft.world.level.block.SoundType.SLIME_BLOCK))); public static final DeferredBlock DREAM_SANDSTONE = BLOCKS.register("dream_sandstone", @@ -1018,6 +1050,11 @@ public final class AntarchyFabricBlocks { SeashellBlockEntity::new, SEASHELL.get() ).build(null)); + public static final DeferredHolder, BlockEntityType> LUCID_ANCHOR_BLOCK_ENTITY = BLOCK_ENTITY_TYPES.register("lucid_anchor", + () -> BlockEntityType.Builder.of( + com.craisinlord.antarchy.content.block.entity.LucidAnchorBlockEntity::new, + LUCID_ANCHOR.get() + ).build(null)); public static final DeferredHolder, BlockEntityType> CRITTER_CAGE_BLOCK_ENTITY = BLOCK_ENTITY_TYPES.register("critter_cage_block", () -> BlockEntityType.Builder.of( CritterCageBlockEntity::new, @@ -1028,6 +1065,11 @@ public final class AntarchyFabricBlocks { (pos, state) -> new com.craisinlord.antarchy.content.block.entity.BluestoneComparatorBlockEntity(pos, state, AntarchyFabricBlocks::bluestoneComparatorBlockEntityType), BLUESTONE_COMPARATOR.get() ).build(null)); + public static final DeferredHolder, BlockEntityType> UPPER_BLOCK_ENTITY = BLOCK_ENTITY_TYPES.register("upper", + () -> BlockEntityType.Builder.of( + (pos, state) -> new UpperBlockEntity(pos, state, AntarchyFabricBlocks::upperBlockEntityType), + UPPER.get() + ).build(null)); @@ -1055,6 +1097,10 @@ public final class AntarchyFabricBlocks { return BLUESTONE_COMPARATOR_BLOCK_ENTITY.get(); } + private static BlockEntityType upperBlockEntityType() { + return UPPER_BLOCK_ENTITY.get(); + } + private static Block smallBloodCrystalBudBlock() { diff --git a/fabric-1.20.1/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricEntities.java b/fabric-1.20.1/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricEntities.java index d9100353..0d69b52e 100644 --- a/fabric-1.20.1/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricEntities.java +++ b/fabric-1.20.1/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricEntities.java @@ -32,6 +32,8 @@ import com.craisinlord.antarchy.content.entity.basilisk.BasiliskEntity; import com.craisinlord.antarchy.content.entity.EmperorScorpionEntity; import com.craisinlord.antarchy.content.entity.ScorpionEntity; import com.craisinlord.antarchy.content.entity.nightmare.NightmareEntity; +import com.craisinlord.antarchy.content.entity.nightmare.NightmareBiteEntity; +import com.craisinlord.antarchy.content.entity.nightmare.NightmarePortalEntity; import com.craisinlord.antarchy.content.entity.ToreterrorEntity; import com.craisinlord.antarchy.content.entity.WaterBombEntity; import com.craisinlord.antarchy.content.entity.kraken.KrakenEntity; @@ -328,6 +330,20 @@ public final class AntarchyFabricEntities { .clientTrackingRange(12) .build("nightmare")); + public static final DeferredHolder, EntityType> NIGHTMARE_PORTAL = ENTITY_TYPES.register("nightmare_portal", + () -> EntityType.Builder.of(NightmarePortalEntity::new, MobCategory.MISC) + .sized(2.5F, 3.0F) + .clientTrackingRange(10) + .updateInterval(1) + .build("nightmare_portal")); + + public static final DeferredHolder, EntityType> NIGHTMARE_BITE = ENTITY_TYPES.register("nightmare_bite", + () -> EntityType.Builder.of(NightmareBiteEntity::new, MobCategory.MISC) + .sized(2.5F, 2.0F) + .clientTrackingRange(10) + .updateInterval(1) + .build("nightmare_bite")); + public static final DeferredHolder, EntityType> LUCID = ENTITY_TYPES.register("lucid", () -> EntityType.Builder.of(LucidEntity::new, MobCategory.MONSTER) diff --git a/fabric-1.20.1/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricItems.java b/fabric-1.20.1/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricItems.java index 12f18e9e..33b744fb 100644 --- a/fabric-1.20.1/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricItems.java +++ b/fabric-1.20.1/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricItems.java @@ -7,6 +7,7 @@ import com.craisinlord.antarchy.content.item.BloodCrystalAppleItem; import com.craisinlord.antarchy.content.item.BloodCrystalKatanaItem; import com.craisinlord.antarchy.content.item.CritterCageItem; import com.craisinlord.antarchy.fabric.item.DeferredSpawnEggItem; +import com.craisinlord.antarchy.content.item.LucidAnchorBlockItem; import com.craisinlord.antarchy.content.item.LucidEyeItem; import com.craisinlord.antarchy.content.item.LucidPearlItem; import com.craisinlord.antarchy.content.item.PrimordialArmorItem; @@ -221,6 +222,8 @@ public final class AntarchyFabricItems { public static final DeferredItem GIANT_LILY_PAD_ITEM = ITEMS.register("giant_lily_pad", () -> new com.craisinlord.antarchy.content.item.GiantLilyPadItem(AntarchyFabricBlocks.GIANT_LILY_PAD.get(), new Item.Properties())); public static final DeferredItem SEASHELL_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.SEASHELL); + public static final DeferredItem LUCID_ANCHOR_ITEM = ITEMS.register("lucid_anchor", + () -> new LucidAnchorBlockItem(AntarchyFabricBlocks.LUCID_ANCHOR.get(), new Item.Properties().rarity(Rarity.UNCOMMON))); public static final DeferredItem LOTUS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.LOTUS); @@ -295,6 +298,7 @@ public final class AntarchyFabricItems { () -> new CeilingPlacementTooltipBlockItem(AntarchyFabricBlocks.BLUESTONE_COMPARATOR.get(), new Item.Properties())); public static final DeferredItem BLUESTONE_TORCH_ITEM = ITEMS.register("bluestone_torch", () -> new CeilingPlacementTooltipBlockItem(AntarchyFabricBlocks.BLUESTONE_TORCH.get(), new Item.Properties())); + public static final DeferredItem BLUESTONE_LAMP_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.BLUESTONE_LAMP); public static final DeferredItem URANIUM_BLOCK_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.URANIUM_BLOCK, new Item.Properties().rarity(Rarity.UNCOMMON)); @@ -365,6 +369,14 @@ public final class AntarchyFabricItems { public static final DeferredItem POLISHED_ANTIMETAL_ITEM = ITEMS.register("polished_antimetal", () -> new AntimetalBlockItem(AntarchyFabricBlocks.POLISHED_ANTIMETAL.get(), new Item.Properties())); + public static final DeferredItem ANTIMETAL_STAIRS_ITEM = ITEMS.register("antimetal_stairs", + () -> new AntimetalBlockItem(AntarchyFabricBlocks.ANTIMETAL_STAIRS.get(), new Item.Properties())); + public static final DeferredItem ANTIMETAL_SLAB_ITEM = ITEMS.register("antimetal_slab", + () -> new AntimetalBlockItem(AntarchyFabricBlocks.ANTIMETAL_SLAB.get(), new Item.Properties())); + public static final DeferredItem POLISHED_ANTIMETAL_STAIRS_ITEM = ITEMS.register("polished_antimetal_stairs", + () -> new AntimetalBlockItem(AntarchyFabricBlocks.POLISHED_ANTIMETAL_STAIRS.get(), new Item.Properties())); + public static final DeferredItem POLISHED_ANTIMETAL_SLAB_ITEM = ITEMS.register("polished_antimetal_slab", + () -> new AntimetalBlockItem(AntarchyFabricBlocks.POLISHED_ANTIMETAL_SLAB.get(), new Item.Properties())); public static final DeferredItem ANTIMETAL_SCAFFOLDING_ITEM = ITEMS.register("antimetal_scaffolding", @@ -373,6 +385,7 @@ public final class AntarchyFabricItems { public static final DeferredItem ANTIMETAL_RAIL_ITEM = ITEMS.register("antimetal_rail", () -> new CeilingPlacementTooltipBlockItem(AntarchyFabricBlocks.ANTIMETAL_RAIL.get(), new Item.Properties())); + public static final DeferredItem UPPER_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.UPPER); public static final DeferredItem ANTIMETAL_POWERED_RAIL_ITEM = ITEMS.register("antimetal_powered_rail", () -> new CeilingPlacementTooltipBlockItem(AntarchyFabricBlocks.ANTIMETAL_POWERED_RAIL.get(), new Item.Properties())); public static final DeferredItem ANTIMETAL_DETECTOR_RAIL_ITEM = ITEMS.register("antimetal_detector_rail", @@ -401,6 +414,10 @@ public final class AntarchyFabricItems { public static final DeferredItem DREAM_SAND_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.DREAM_SAND); + public static final DeferredItem ANTIGRAVEL_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.ANTIGRAVEL); + public static final DeferredItem LOAM_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.LOAM); + public static final DeferredItem MUCUS_ITEM = ITEMS.register("mucus", + () -> new com.craisinlord.antarchy.content.item.MucusBlockItem(AntarchyFabricBlocks.MUCUS.get(), new Item.Properties())); public static final DeferredItem DREAM_SANDSTONE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.DREAM_SANDSTONE); @@ -494,7 +511,7 @@ public final class AntarchyFabricItems { public static final DeferredItem NYXITE_BRICKS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.NYXITE_BRICKS); - public static final DeferredItem CHITEN_BLOCK_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.CHITEN_BLOCK); + public static final DeferredItem CHITIN_BLOCK_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.CHITIN_BLOCK); public static final DeferredItem NYXITE_STAIRS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.NYXITE_STAIRS); @@ -589,7 +606,7 @@ public final class AntarchyFabricItems { public static final DeferredItem NYXITE_SPIKE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.NYXITE_SPIKE); - public static final DeferredItem CHITEN_SPIKE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.CHITEN_SPIKE); + public static final DeferredItem CHITIN_SPIKE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.CHITIN_SPIKE); public static final DeferredItem POTENT_NYXITE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.POTENT_NYXITE); @@ -697,6 +714,25 @@ public final class AntarchyFabricItems { () -> new BloodCrystalArmorItem(AntarchyFabricMisc.BLOOD_CRYSTAL_ARMOR_MATERIAL, ArmorItem.Type.BOOTS, new Item.Properties().rarity(Rarity.RARE))); + public static final DeferredItem TIGERS_EYE = ITEMS.registerSimpleItem("tigers_eye", new Item.Properties().rarity(Rarity.UNCOMMON)); + + + public static final DeferredItem TIGERS_EYE_HELMET = ITEMS.register("tigers_eye_helmet", + () -> new com.craisinlord.antarchy.content.item.TigerEyeArmorItem(AntarchyFabricMisc.TIGERS_EYE_ARMOR_MATERIAL, ArmorItem.Type.HELMET, new Item.Properties().rarity(Rarity.UNCOMMON))); + + + public static final DeferredItem TIGERS_EYE_CHESTPLATE = ITEMS.register("tigers_eye_chestplate", + () -> new com.craisinlord.antarchy.content.item.TigerEyeArmorItem(AntarchyFabricMisc.TIGERS_EYE_ARMOR_MATERIAL, ArmorItem.Type.CHESTPLATE, new Item.Properties().rarity(Rarity.UNCOMMON))); + + + public static final DeferredItem TIGERS_EYE_LEGGINGS = ITEMS.register("tigers_eye_leggings", + () -> new com.craisinlord.antarchy.content.item.TigerEyeArmorItem(AntarchyFabricMisc.TIGERS_EYE_ARMOR_MATERIAL, ArmorItem.Type.LEGGINGS, new Item.Properties().rarity(Rarity.UNCOMMON))); + + + public static final DeferredItem TIGERS_EYE_BOOTS = ITEMS.register("tigers_eye_boots", + () -> new com.craisinlord.antarchy.content.item.TigerEyeArmorItem(AntarchyFabricMisc.TIGERS_EYE_ARMOR_MATERIAL, ArmorItem.Type.BOOTS, new Item.Properties().rarity(Rarity.UNCOMMON))); + + public static final DeferredItem BLOOD_CRYSTAL_KATANA = ITEMS.register("blood_crystal_katana", () -> new BloodCrystalKatanaItem( BLOOD_CRYSTAL_KATANA_TIER, @@ -719,7 +755,7 @@ public final class AntarchyFabricItems { () -> new MobComingSoonTooltipItem(new Item.Properties().rarity(Rarity.RARE))); - public static final DeferredItem CHITEN = ITEMS.registerSimpleItem("chiten", new Item.Properties().rarity(Rarity.UNCOMMON)); + public static final DeferredItem CHITIN = ITEMS.registerSimpleItem("chitin", new Item.Properties().rarity(Rarity.UNCOMMON)); public static final DeferredItem JERRY_NUCLEUS = ITEMS.register("jerry_nucleus", @@ -1218,6 +1254,15 @@ public final class AntarchyFabricItems { .fireResistant() )); + public static final DeferredItem KRAKEN_KALAMARI = ITEMS.register("kraken_kalamari", + () -> new Item(new Item.Properties() + .rarity(Rarity.EPIC) + .food(new FoodProperties.Builder() + .nutrition(20) + .saturationMod(1.2F) + .alwaysEat() + .build()))); + public static final DeferredItem KRAKEN_TENTACLE = ITEMS.registerSimpleItem( "kraken_tentacle", new Item.Properties().rarity(Rarity.RARE) diff --git a/fabric-1.20.1/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricMisc.java b/fabric-1.20.1/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricMisc.java index 8c623246..33c50574 100644 --- a/fabric-1.20.1/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricMisc.java +++ b/fabric-1.20.1/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricMisc.java @@ -56,8 +56,8 @@ import com.craisinlord.antarchy.content.worldgen.elythia.PeachTreeConfiguration; import com.craisinlord.antarchy.content.worldgen.elythia.PeachTreeFeature; import com.craisinlord.antarchy.content.worldgen.elythia.TriffidPatchFeature; import com.craisinlord.antarchy.content.worldgen.cavaryn.CavarynEggPatchFeature; -import com.craisinlord.antarchy.content.worldgen.cavaryn.ChitenSpikeConfiguration; -import com.craisinlord.antarchy.content.worldgen.cavaryn.ChitenSpikeFeature; +import com.craisinlord.antarchy.content.worldgen.cavaryn.ChitinSpikeConfiguration; +import com.craisinlord.antarchy.content.worldgen.cavaryn.ChitinSpikeFeature; import com.craisinlord.antarchy.content.worldgen.thoraxis.BedBugNestFeature; import com.craisinlord.antarchy.content.worldgen.thoraxis.BedBugSurfaceClusterFeature; import com.craisinlord.antarchy.content.worldgen.thoraxis.CloudSeaCalciteFeature; @@ -268,6 +268,11 @@ public final class AntarchyFabricMisc { () -> Ingredient.of(Items.GOLD_INGOT), 0.0F, 0.0F, "fallen_king_crown"); + public static final ArmorMaterial TIGERS_EYE_ARMOR_MATERIAL = armorMaterial( + 18, createDiamondArmorDefense(), 18, SoundEvents.ARMOR_EQUIP_GOLD, + () -> Ingredient.of(AntarchyFabricItems.TIGERS_EYE.get()), 2.0F, 0.0F, "tigers_eye"); + + public static final DeferredHolder, SimpleParticleType> DREAM_FIRE_FLAME = PARTICLE_TYPES.register("dream_fire_flame", () -> simpleParticleType()); @@ -378,6 +383,7 @@ public final class AntarchyFabricMisc { public static final DeferredHolder GROWTH_EFFECT = MOB_EFFECTS.register("growth", GrowthMobEffect::new); + public static final DeferredHolder GLIMMERING = MOB_EFFECTS.register("glimmering", com.craisinlord.antarchy.content.effect.GlimmeringMobEffect::new); public static final DeferredHolder PARALYSIS = POTIONS.register("paralysis", @@ -668,8 +674,8 @@ public final class AntarchyFabricMisc { () -> new NyxiteSpikeFeature(NyxiteSpikeConfiguration.CODEC)); - public static final DeferredHolder, ChitenSpikeFeature> CAVARYN_CHITEN_SPIKES = FEATURES.register("cavaryn_chiten_spikes", - () -> new ChitenSpikeFeature(ChitenSpikeConfiguration.CODEC)); + public static final DeferredHolder, ChitinSpikeFeature> CAVARYN_CHITIN_SPIKES = FEATURES.register("cavaryn_chitin_spikes", + () -> new ChitinSpikeFeature(ChitinSpikeConfiguration.CODEC)); public static final DeferredHolder, CavarynBileVeinFeature> CAVARYN_BILE_VEINS = FEATURES.register("cavaryn_bile_veins", @@ -821,6 +827,17 @@ public final class AntarchyFabricMisc { + private static java.util.EnumMap createDiamondArmorDefense() { + java.util.EnumMap defense = new java.util.EnumMap<>(ArmorItem.Type.class); + defense.put(ArmorItem.Type.BOOTS, 3); + defense.put(ArmorItem.Type.LEGGINGS, 6); + defense.put(ArmorItem.Type.CHESTPLATE, 8); + defense.put(ArmorItem.Type.HELMET, 3); + return defense; + } + + + private static java.util.EnumMap createBloodCrystalArmorDefense() { java.util.EnumMap defense = new java.util.EnumMap<>(ArmorItem.Type.class); defense.put(ArmorItem.Type.BOOTS, 2); diff --git a/forge-1.20.1/src/main/java/com/craisinlord/antarchy/forge/AntarchyConfigModuleForge.java b/forge-1.20.1/src/main/java/com/craisinlord/antarchy/forge/AntarchyConfigModuleForge.java index 63a2f4a2..80e08840 100644 --- a/forge-1.20.1/src/main/java/com/craisinlord/antarchy/forge/AntarchyConfigModuleForge.java +++ b/forge-1.20.1/src/main/java/com/craisinlord/antarchy/forge/AntarchyConfigModuleForge.java @@ -374,6 +374,7 @@ public final class AntarchyConfigModuleForge { private static void bakeMiscConfig() { AntarchySettings.setRainbowAntsLeadToInfinityDimensions(AntarchyMiscConfig.rainbowAntsLeadToInfinityDimensions()); + AntarchySettings.setRainbowAntInfinityEasterEggChance(AntarchyMiscConfig.rainbowAntInfinityEasterEggChance()); AntarchySettings.setDisableInfinityBookPortalCreation(AntarchyMiscConfig.disableInfinityBookPortalCreation()); AntarchySettings.setHushweedSporeLifetimeSeconds(AntarchyMiscConfig.hushweedSporeLifetimeSeconds()); AntarchySettings.setDiamondMinecartEnabled(AntarchyMiscConfig.diamondMinecartEnabled()); diff --git a/forge-1.20.1/src/main/java/com/craisinlord/antarchy/forge/AntarchyForge.java b/forge-1.20.1/src/main/java/com/craisinlord/antarchy/forge/AntarchyForge.java index ddfb8ace..ba6e3435 100644 --- a/forge-1.20.1/src/main/java/com/craisinlord/antarchy/forge/AntarchyForge.java +++ b/forge-1.20.1/src/main/java/com/craisinlord/antarchy/forge/AntarchyForge.java @@ -199,6 +199,13 @@ public class AntarchyForge { new BloodCrystalKatanaTrailPayload(player.getId(), durationTicks) )); com.craisinlord.antarchy.content.gravity.AntarchyGravityApi.setSyncDispatcher(AntarchyGravityNetworking::syncEntity); + com.craisinlord.antarchy.content.tigereye.TigerEyeCamouflageSync.setSendToPlayer( + com.craisinlord.antarchy.forge.network.AntarchyForgeNetworkCore::sendToPlayer); + com.craisinlord.antarchy.content.tigereye.TigerEyeCamouflageSync.setSyncSelfAndTracking(player -> + com.craisinlord.antarchy.forge.network.AntarchyForgeNetworkCore.sendToTrackingEntity( + player, + com.craisinlord.antarchy.content.tigereye.TigerEyeCamouflageSync.payload(player) + )); com.craisinlord.antarchy.content.effect.AntarchySizeScaling.register( com.craisinlord.antarchy.forge.registry.AntarchyForgeMisc.SHRINKING_EFFECT, com.craisinlord.antarchy.forge.registry.AntarchyForgeMisc.GROWTH_EFFECT @@ -291,8 +298,8 @@ public class AntarchyForge { () -> AntarchyForgeBlocks.TRIFFID_GOO_BLOCK.get(), () -> AntarchyForgeBlocks.PALE_NYXITE.get(), () -> AntarchyForgeBlocks.NYXITE_SPIKE.get(), - () -> AntarchyForgeBlocks.CHITEN_BLOCK.get(), - () -> AntarchyForgeBlocks.CHITEN_SPIKE.get(), + () -> AntarchyForgeBlocks.CHITIN_BLOCK.get(), + () -> AntarchyForgeBlocks.CHITIN_SPIKE.get(), () -> AntarchyForgeBlocks.POTENT_NYXITE.get(), () -> AntarchyForgeBlocks.ANTIMETAL.get(), () -> AntarchyForgeBlocks.POLISHED_ANTIMETAL.get(), @@ -343,6 +350,8 @@ public class AntarchyForge { ); AntarchyObjects.setOctopusBomb(AntarchyForgeEntites.OCTOPUS_BOMB); AntarchyObjects.setTentacle(AntarchyForgeEntites.TENTACLE); + AntarchyObjects.setNightmarePortal(AntarchyForgeEntites.NIGHTMARE_PORTAL); + AntarchyObjects.setNightmareBite(AntarchyForgeEntites.NIGHTMARE_BITE); AntarchyObjects.setKrakensGraspTrident(AntarchyForgeEntites.KRAKENS_GRASP_TRIDENT); AntarchyObjects.setLotus(() -> AntarchyForgeBlocks.LOTUS.get()); AntarchyObjects.setKrakenTentacle(() -> AntarchyForgeItems.KRAKEN_TENTACLE.get()); @@ -350,6 +359,7 @@ public class AntarchyForge { AntarchyObjects.setOuranwoodDeer(AntarchyForgeEntites.OURANWOOD_DEER); AntarchyObjects.setGlimmer(AntarchyForgeEntites.GLIMMER); AntarchyObjects.setSpiritApple(() -> AntarchyForgeItems.SPIRIT_APPLE.get()); + AntarchyObjects.setGlimmeringEffect(() -> AntarchyForgeMisc.mobEffectHolder(AntarchyForgeMisc.GLIMMERING)); AntarchyObjects.setElka(AntarchyForgeEntites.ELKA); AntarchyObjects.setPeach(() -> AntarchyForgeItems.PEACH.get()); AntarchyObjects.setCorn(() -> AntarchyForgeItems.CORN.get()); @@ -370,6 +380,8 @@ public class AntarchyForge { AntarchyObjects.setCritterCage(() -> AntarchyForgeItems.CRITTER_CAGE.get()); AntarchyObjects.setCritterCageBlock(() -> AntarchyForgeBlocks.CRITTER_CAGE_BLOCK.get()); AntarchyObjects.setCritterCageBlockEntity(() -> AntarchyForgeBlocks.CRITTER_CAGE_BLOCK_ENTITY.get()); + AntarchyObjects.setLucidAnchor(() -> AntarchyForgeBlocks.LUCID_ANCHOR.get()); + AntarchyObjects.setLucidAnchorBlockEntity(() -> AntarchyForgeBlocks.LUCID_ANCHOR_BLOCK_ENTITY.get()); AntarchyObjects.setCritterCageProjectile(() -> AntarchyForgeEntites.CRITTER_CAGE_PROJECTILE.get()); } diff --git a/forge-1.20.1/src/main/java/com/craisinlord/antarchy/forge/AntarchyMiscConfig.java b/forge-1.20.1/src/main/java/com/craisinlord/antarchy/forge/AntarchyMiscConfig.java index d8048d97..29480d08 100644 --- a/forge-1.20.1/src/main/java/com/craisinlord/antarchy/forge/AntarchyMiscConfig.java +++ b/forge-1.20.1/src/main/java/com/craisinlord/antarchy/forge/AntarchyMiscConfig.java @@ -24,6 +24,7 @@ public final class AntarchyMiscConfig { // Infinite Dimensions private static final ForgeConfigSpec.BooleanValue DISABLE_INFINITY_BOOK_PORTAL_CREATION; private static final ForgeConfigSpec.BooleanValue RAINBOW_ANTS_LEAD_TO_INFINITY_DIMENSIONS; + private static final ForgeConfigSpec.DoubleValue RAINBOW_ANT_INFINITY_EASTER_EGG_CHANCE; // Permanent portals private static final ForgeConfigSpec.BooleanValue PERMANENT_PORTALS_ENABLED; @@ -105,7 +106,13 @@ public final class AntarchyMiscConfig { "Whether rainbow ants open randomly generated Infinity dimensions.", "Only works if the Infinite Dimensions mod is installed." ) - .define("rainbowAntsLeadToInfinityDimensions", net.minecraftforge.fml.ModList.get().isLoaded("infinity")); + .define("rainbowAntsLeadToInfinityDimensions", true); + RAINBOW_ANT_INFINITY_EASTER_EGG_CHANCE = b + .comment( + "Chance for a rainbow ant Infinity destination roll to select an Infinity easter egg dimension instead of a normal generated one.", + "0.01 = 1%, 0 disables easter egg rolls." + ) + .defineInRange("rainbowAntInfinityEasterEggChance", 0.01D, 0.0D, 1.0D); b.pop(); @@ -174,6 +181,7 @@ public final class AntarchyMiscConfig { static boolean disableInfinityBookPortalCreation() { return DISABLE_INFINITY_BOOK_PORTAL_CREATION.get(); } static boolean rainbowAntsLeadToInfinityDimensions() { return RAINBOW_ANTS_LEAD_TO_INFINITY_DIMENSIONS.get(); } + static double rainbowAntInfinityEasterEggChance() { return RAINBOW_ANT_INFINITY_EASTER_EGG_CHANCE.get(); } public static boolean permanentPortalsEnabled() { return PERMANENT_PORTALS_ENABLED.get(); } public static boolean permanentPortalsFlintAndSteelEnabled() { return PERMANENT_PORTALS_FLINT_AND_STEEL_ENABLED.get(); } public static boolean elythiaPortalEnabled() { return ELYTHIA_PORTAL_ENABLED.get(); } diff --git a/forge-1.20.1/src/main/java/com/craisinlord/antarchy/forge/ForgeInfinityCompat.java b/forge-1.20.1/src/main/java/com/craisinlord/antarchy/forge/ForgeInfinityCompat.java index afc8da37..75336579 100644 --- a/forge-1.20.1/src/main/java/com/craisinlord/antarchy/forge/ForgeInfinityCompat.java +++ b/forge-1.20.1/src/main/java/com/craisinlord/antarchy/forge/ForgeInfinityCompat.java @@ -2,12 +2,16 @@ package com.craisinlord.antarchy.forge; import com.craisinlord.antarchy.Antarchy; import com.craisinlord.antarchy.compat.infinity.InfinityCompatBridge; +import net.lerariemann.infinity.InfinityMod; import net.lerariemann.infinity.util.InfinityMethods; import net.lerariemann.infinity.util.teleport.WarpLogic; import net.minecraft.resources.ResourceLocation; import net.minecraft.server.level.ServerPlayer; import net.minecraft.util.RandomSource; +import java.util.ArrayList; +import java.util.List; + public final class ForgeInfinityCompat implements InfinityCompatBridge { @Override public boolean isAvailable() { @@ -24,6 +28,43 @@ public final class ForgeInfinityCompat implements InfinityCompatBridge { } } + @Override + public ResourceLocation getRandomDimensionId(RandomSource random, double easterEggChance) { + try { + if (easterEggChance > 0.0D && random.nextDouble() < easterEggChance) { + ResourceLocation easterDimensionId = getRandomEasterDimensionId(random); + if (easterDimensionId != null) { + return easterDimensionId; + } + } + + return InfinityMethods.getRandomId(random); + } catch (Throwable throwable) { + Antarchy.LOGGER.error("[Antarchy] Failed to get a random Infinity dimension id", throwable); + return null; + } + } + + private static ResourceLocation getRandomEasterDimensionId(RandomSource random) { + if (InfinityMod.provider == null || InfinityMod.provider.easterizer == null) { + return null; + } + + List easterNames = new ArrayList<>(); + for (String easterName : InfinityMod.provider.easterizer.map.keySet()) { + if (InfinityMod.provider.easterizer.isEaster(easterName)) { + easterNames.add(easterName); + } + } + + if (easterNames.isEmpty()) { + return null; + } + + String chosenEaster = easterNames.get(random.nextInt(easterNames.size())); + return InfinityMod.provider.easterizer.getAsEaster(chosenEaster); + } + @Override public boolean requestWarp(ServerPlayer player, ResourceLocation dimensionId) { try { diff --git a/forge-1.20.1/src/main/java/com/craisinlord/antarchy/forge/client/AntarchyForgeClient.java b/forge-1.20.1/src/main/java/com/craisinlord/antarchy/forge/client/AntarchyForgeClient.java index 9bf95f87..e9869373 100644 --- a/forge-1.20.1/src/main/java/com/craisinlord/antarchy/forge/client/AntarchyForgeClient.java +++ b/forge-1.20.1/src/main/java/com/craisinlord/antarchy/forge/client/AntarchyForgeClient.java @@ -3,6 +3,7 @@ package com.craisinlord.antarchy.forge.client; import net.minecraftforge.fml.common.Mod; import com.craisinlord.antarchy.Antarchy; +import com.craisinlord.antarchy.content.client.GlimmeringHudRenderer; import com.craisinlord.antarchy.content.client.GoopedHudRenderer; import com.craisinlord.antarchy.content.client.HordeHudRenderer; import com.craisinlord.antarchy.content.client.hud.BloodglassHudRenderer; @@ -86,6 +87,7 @@ public final class AntarchyForgeClient { public static void registerRenderers(EntityRenderersEvent.RegisterRenderers event) { event.registerBlockEntityRenderer(AntarchyForgeBlocks.DREAM_CAMPFIRE_BLOCK_ENTITY.get(), CampfireRenderer::new); event.registerBlockEntityRenderer(AntarchyForgeBlocks.SEASHELL_BLOCK_ENTITY.get(), SeashellRenderer::new); + event.registerBlockEntityRenderer(AntarchyForgeBlocks.LUCID_ANCHOR_BLOCK_ENTITY.get(), LucidAnchorBlockEntityRenderer::new); event.registerBlockEntityRenderer(AntarchyForgeBlocks.CRITTER_CAGE_BLOCK_ENTITY.get(), CritterCageRenderer::new); event.registerEntityRenderer(AntarchyForgeEntites.EASTER_BUNNY.get(), context -> withParalyzedGeoLayer(new EasterBunnyRenderer(context))); event.registerEntityRenderer(AntarchyForgeEntites.FLYING_SQUIRREL.get(), context -> withParalyzedGeoLayer(new FlyingSquirrelRenderer(context))); @@ -117,6 +119,8 @@ public final class AntarchyForgeClient { event.registerEntityRenderer(AntarchyForgeEntites.MISSILE_SQUID.get(), context -> withParalyzedGeoLayer(new MissileSquidRenderer(context))); event.registerEntityRenderer(AntarchyForgeEntites.OCTOPUS_BOMB.get(), context -> withParalyzedGeoLayer(new OctopusBombRenderer(context))); event.registerEntityRenderer(AntarchyForgeEntites.NIGHTMARE.get(), context -> withParalyzedGeoLayer(new NightmareRenderer(context))); + event.registerEntityRenderer(AntarchyForgeEntites.NIGHTMARE_PORTAL.get(), NightmarePortalRenderer::new); + event.registerEntityRenderer(AntarchyForgeEntites.NIGHTMARE_BITE.get(), NightmareBiteRenderer::new); event.registerEntityRenderer(AntarchyForgeEntites.LUCID.get(), context -> withParalyzedGeoLayer(new LucidRenderer(context))); event.registerEntityRenderer(AntarchyForgeEntites.BED_BUG.get(), context -> withParalyzedGeoLayer(new BedBugRenderer(context))); event.registerEntityRenderer(AntarchyForgeEntites.WASP.get(), context -> withParalyzedGeoLayer(new WaspRenderer(context))); @@ -159,7 +163,9 @@ public final class AntarchyForgeClient { (LivingEntityRenderer>) event.getSkin(skin); if (renderer != null) { renderer.addLayer(new ParalyzedStonePlayerLayer(renderer)); + renderer.addLayer(new com.craisinlord.antarchy.content.client.renderer.TigerEyeCamouflagePlayerLayer(renderer)); renderer.addLayer(new GoopedLivingLayer(renderer)); + renderer.addLayer(new GlimmeringLivingLayer(renderer)); renderer.addLayer(new BrutalflyElytraLayer(renderer)); renderer.addLayer(new FallenKingCrownLayer(renderer)); } @@ -198,6 +204,7 @@ public final class AntarchyForgeClient { LivingEntityRenderer livingRenderer = (LivingEntityRenderer) renderer; livingRenderer.addLayer(new ParalyzedStoneLivingLayer<>(livingRenderer)); livingRenderer.addLayer(new GoopedLivingLayer<>(livingRenderer)); + livingRenderer.addLayer(new GlimmeringLivingLayer<>(livingRenderer)); } private static GeoEntityRenderer withParalyzedGeoLayer(GeoEntityRenderer renderer) { @@ -302,6 +309,9 @@ public final class AntarchyForgeClient { event.registerAboveAll("gooped_tint", (gui, guiGraphics, partialTick, width, height) -> GoopedHudRenderer.render(guiGraphics) ); + event.registerAboveAll("glimmering_tint", + (gui, guiGraphics, partialTick, width, height) -> GlimmeringHudRenderer.render(guiGraphics) + ); event.registerAboveAll("brutalfly_elytra", (gui, guiGraphics, partialTick, width, height) -> BrutalflyElytraHudRenderer.render(guiGraphics) ); @@ -328,6 +338,8 @@ public final class AntarchyForgeClient { public static void onClientSetup(FMLClientSetupEvent event) { event.enqueueWork(() -> { net.minecraft.client.gui.screens.MenuScreens.register(AntarchyForgeMisc.DORRIE_INVENTORY_MENU.get(), com.craisinlord.antarchy.content.client.screen.DorrieInventoryScreen::new); + com.craisinlord.antarchy.content.client.TigerEyeClientHooks.setCamouflageKeyTextSupplier( + () -> AntarchyKeyBindings.TIGERS_EYE_CAMOUFLAGE.getTranslatedKeyMessage()); ItemBlockRenderTypes.setRenderLayer(AntarchyForgeBlocks.ANTIMETAL_RAIL.get(), RenderType.cutout()); ItemBlockRenderTypes.setRenderLayer(AntarchyForgeBlocks.ANTIMETAL_POWERED_RAIL.get(), RenderType.cutout()); @@ -363,7 +375,7 @@ public final class AntarchyForgeClient { ItemBlockRenderTypes.setRenderLayer(AntarchyForgeBlocks.ANTIMETAL_SCAFFOLDING.get(), RenderType.cutout()); ItemBlockRenderTypes.setRenderLayer(AntarchyForgeBlocks.UMBRAL_MOSS_CARPET.get(), RenderType.cutout()); ItemBlockRenderTypes.setRenderLayer(AntarchyForgeBlocks.NYXITE_SPIKE.get(), RenderType.cutout()); - ItemBlockRenderTypes.setRenderLayer(AntarchyForgeBlocks.CHITEN_SPIKE.get(), RenderType.cutout()); + ItemBlockRenderTypes.setRenderLayer(AntarchyForgeBlocks.CHITIN_SPIKE.get(), RenderType.cutout()); ItemBlockRenderTypes.setRenderLayer(AntarchyForgeBlocks.STAR_CORAL.get(), RenderType.cutout()); ItemBlockRenderTypes.setRenderLayer(AntarchyForgeBlocks.STAR_CORAL_FAN.get(), RenderType.cutout()); ItemBlockRenderTypes.setRenderLayer(AntarchyForgeBlocks.STAR_CORAL_WALL_FAN.get(), RenderType.cutout()); diff --git a/forge-1.20.1/src/main/java/com/craisinlord/antarchy/forge/client/AntarchyKeyBindings.java b/forge-1.20.1/src/main/java/com/craisinlord/antarchy/forge/client/AntarchyKeyBindings.java index 51f7c437..4200251c 100644 --- a/forge-1.20.1/src/main/java/com/craisinlord/antarchy/forge/client/AntarchyKeyBindings.java +++ b/forge-1.20.1/src/main/java/com/craisinlord/antarchy/forge/client/AntarchyKeyBindings.java @@ -45,6 +45,13 @@ public final class AntarchyKeyBindings { InputConstants.KEY_R, CATEGORY ); + public static final KeyMapping TIGERS_EYE_CAMOUFLAGE = new KeyMapping( + "key.antarchy.tigers_eye_camouflage", + KeyConflictContext.IN_GAME, + InputConstants.Type.KEYSYM, + InputConstants.UNKNOWN.getValue(), + CATEGORY + ); private AntarchyKeyBindings() {} @@ -54,9 +61,14 @@ public final class AntarchyKeyBindings { event.register(DORRIE_CHARGE_JUMP); event.register(HERCULES_BEETLE_CHARGE); event.register(HERCULES_BEETLE_FLIGHT_TOGGLE); + event.register(TIGERS_EYE_CAMOUFLAGE); } public static boolean isHerculesBeetleFlightTogglePressed() { return HERCULES_BEETLE_FLIGHT_TOGGLE.isDown(); } + + public static boolean consumeTigerEyeCamouflagePressed() { + return TIGERS_EYE_CAMOUFLAGE.consumeClick(); + } } diff --git a/forge-1.20.1/src/main/java/com/craisinlord/antarchy/forge/registry/AntarchyForgeBlocks.java b/forge-1.20.1/src/main/java/com/craisinlord/antarchy/forge/registry/AntarchyForgeBlocks.java index d76ca4db..c8147b5b 100644 --- a/forge-1.20.1/src/main/java/com/craisinlord/antarchy/forge/registry/AntarchyForgeBlocks.java +++ b/forge-1.20.1/src/main/java/com/craisinlord/antarchy/forge/registry/AntarchyForgeBlocks.java @@ -10,6 +10,7 @@ import com.craisinlord.antarchy.content.block.entity.DreamCampfireBlockEntity; import com.craisinlord.antarchy.content.block.entity.HushweedBlockEntity; import com.craisinlord.antarchy.content.block.entity.PotentNyxiteBlockEntity; import com.craisinlord.antarchy.content.block.entity.SeashellBlockEntity; +import com.craisinlord.antarchy.content.block.entity.UpperBlockEntity; import com.craisinlord.antarchy.content.block.entity.WaspNestBlockEntity; import com.craisinlord.antarchy.content.fluid.BileLiquidBlock; import com.craisinlord.antarchy.content.fluid.LumenLiquidBlock; @@ -95,6 +96,8 @@ public final class AntarchyForgeBlocks { () -> new FlowerPotBlock(LOTUS.get(), BlockBehaviour.Properties.copy(Blocks.POTTED_DANDELION))); public static final RegistryObject SEASHELL = BLOCKS.register("seashell", () -> new SeashellBlock(BlockBehaviour.Properties.copy(Blocks.TURTLE_EGG).noOcclusion())); + public static final RegistryObject LUCID_ANCHOR = BLOCKS.register("lucid_anchor", + () -> new LucidAnchorBlock(BlockBehaviour.Properties.copy(Blocks.BEACON).strength(3.0F))); public static final RegistryObject CRITTER_CAGE_BLOCK = BLOCKS.register("critter_cage_block", () -> new CritterCageBlock(BlockBehaviour.Properties.of().strength(5.0F, 6.0F).sound(net.minecraft.world.level.block.SoundType.METAL).noOcclusion())); public static final RegistryObject OURANWOOD_SIGN = BLOCKS.register("ouranwood_sign", @@ -189,6 +192,8 @@ public final class AntarchyForgeBlocks { () -> new SlabBlock(nyxiteProperties())); public static final RegistryObject NYXITE_BRICK_WALL = BLOCKS.register("nyxite_brick_wall", () -> new WallBlock(nyxiteProperties())); + public static final RegistryObject NYXITE_PILLAR = BLOCKS.register("nyxite_pillar", + () -> new RotatedPillarBlock(nyxiteProperties())); public static final RegistryObject SHELLSTONE = BLOCKS.register("shellstone", () -> new Block(AntarchyObjects.shellstoneProperties())); public static final RegistryObject POLISHED_SHELLSTONE = BLOCKS.register("polished_shellstone", @@ -225,6 +230,8 @@ public final class AntarchyForgeBlocks { () -> new SlabBlock(AntarchyObjects.shellstoneProperties())); public static final RegistryObject SHELLSTONE_BRICK_WALL = BLOCKS.register("shellstone_brick_wall", () -> new WallBlock(AntarchyObjects.shellstoneProperties())); + public static final RegistryObject SHELLSTONE_PILLAR = BLOCKS.register("shellstone_pillar", + () -> new RotatedPillarBlock(AntarchyObjects.shellstoneProperties())); public static final RegistryObject TRIFFID_GOO_BLOCK = BLOCKS.register("triffid_goo_block", () -> new com.craisinlord.antarchy.content.block.TriffidGooBlock(BlockBehaviour.Properties.copy(Blocks.SLIME_BLOCK).noOcclusion().isViewBlocking((s, l, p) -> false).isSuffocating((s, l, p) -> false))); public static final RegistryObject CLOUD_BLOCK = BLOCKS.register("cloud_block", @@ -242,8 +249,8 @@ public final class AntarchyForgeBlocks { () -> new Block(nyxiteProperties())); public static final RegistryObject NYXITE_SPIKE = BLOCKS.register("nyxite_spike", () -> new NyxiteSpikeBlock(BlockBehaviour.Properties.copy(Blocks.POINTED_DRIPSTONE))); - public static final RegistryObject CHITEN_SPIKE = BLOCKS.register("chiten_spike", - () -> new ChitenSpikeBlock(BlockBehaviour.Properties.copy(Blocks.POINTED_DRIPSTONE))); + public static final RegistryObject CHITIN_SPIKE = BLOCKS.register("chitin_spike", + () -> new ChitinSpikeBlock(BlockBehaviour.Properties.copy(Blocks.POINTED_DRIPSTONE))); public static final RegistryObject POTENT_NYXITE = BLOCKS.register("potent_nyxite", () -> new PotentNyxiteBlock( AntarchyForgeItems::potentNyxiteBlockEntityType, @@ -291,7 +298,9 @@ public final class AntarchyForgeBlocks { () -> createOre(Blocks.DEEPSLATE_EMERALD_ORE, 4, 8, MapColor.COLOR_YELLOW)); public static final RegistryObject BROODSTONE_TITANIUM_ORE = BLOCKS.register("broodstone_titanium_ore", () -> createOre(Blocks.DEEPSLATE_DIAMOND_ORE, 4, 8, MapColor.COLOR_LIGHT_BLUE)); - public static final RegistryObject CHITEN_BLOCK = BLOCKS.register("chiten_block", + public static final RegistryObject BROODSTONE_PILLAR = BLOCKS.register("broodstone_pillar", + () -> new RotatedPillarBlock(broodstoneProperties())); + public static final RegistryObject CHITIN_BLOCK = BLOCKS.register("chitin_block", () -> new RotatedPillarBlock(BlockBehaviour.Properties.copy(Blocks.BONE_BLOCK).requiresCorrectToolForDrops())); public static final RegistryObject UMBRAL_MOSS_BLOCK = BLOCKS.register("umbral_moss_block", () -> new UmbralMossBlock(BlockBehaviour.Properties.copy(Blocks.MOSS_BLOCK))); @@ -406,6 +415,8 @@ public final class AntarchyForgeBlocks { () -> new BluestoneComparatorBlock(BlockBehaviour.Properties.copy(Blocks.COMPARATOR).mapColor(MapColor.COLOR_BLUE).noCollission(), AntarchyForgeBlocks::bluestoneComparatorBlockEntityType)); public static final RegistryObject BLUESTONE_TORCH = BLOCKS.register("bluestone_torch", () -> new BluestoneTorchBlock(BlockBehaviour.Properties.copy(Blocks.REDSTONE_TORCH).mapColor(MapColor.COLOR_BLUE).lightLevel(state -> state.getValue(BluestoneTorchBlock.LIT) ? 7 : 0).noCollission().instabreak())); + public static final RegistryObject BLUESTONE_LAMP = BLOCKS.register("bluestone_lamp", + () -> new BluestoneLampBlock(BlockBehaviour.Properties.copy(Blocks.REDSTONE_LAMP).mapColor(MapColor.COLOR_BLUE))); public static final RegistryObject URANIUM_BLOCK = BLOCKS.register("uranium_block", () -> createStorageBlock(Blocks.EMERALD_BLOCK, MapColor.COLOR_YELLOW)); public static final RegistryObject TITANIUM_BLOCK = BLOCKS.register("titanium_block", @@ -450,10 +461,20 @@ public final class AntarchyForgeBlocks { () -> new RotatedPillarBlock(BlockBehaviour.Properties.copy(Blocks.BASALT))); public static final RegistryObject POLISHED_ANTIMETAL = BLOCKS.register("polished_antimetal", () -> new RotatedPillarBlock(BlockBehaviour.Properties.copy(Blocks.POLISHED_BASALT))); + public static final RegistryObject ANTIMETAL_STAIRS = BLOCKS.register("antimetal_stairs", + () -> new StairBlock(ANTIMETAL.get().defaultBlockState(), BlockBehaviour.Properties.copy(Blocks.BASALT))); + public static final RegistryObject ANTIMETAL_SLAB = BLOCKS.register("antimetal_slab", + () -> new SlabBlock(BlockBehaviour.Properties.copy(Blocks.BASALT))); + public static final RegistryObject POLISHED_ANTIMETAL_STAIRS = BLOCKS.register("polished_antimetal_stairs", + () -> new StairBlock(POLISHED_ANTIMETAL.get().defaultBlockState(), BlockBehaviour.Properties.copy(Blocks.POLISHED_BASALT))); + public static final RegistryObject POLISHED_ANTIMETAL_SLAB = BLOCKS.register("polished_antimetal_slab", + () -> new SlabBlock(BlockBehaviour.Properties.copy(Blocks.POLISHED_BASALT))); public static final RegistryObject ANTIMETAL_SCAFFOLDING = BLOCKS.register("antimetal_scaffolding", () -> new com.craisinlord.antarchy.content.block.AntimetalScaffoldingBlock(BlockBehaviour.Properties.copy(Blocks.SCAFFOLDING))); public static final RegistryObject ANTIMETAL_RAIL = BLOCKS.register("antimetal_rail", () -> new com.craisinlord.antarchy.content.block.AntimetalRailBlock(BlockBehaviour.Properties.copy(Blocks.RAIL))); + public static final RegistryObject UPPER = BLOCKS.register("upper", + () -> new UpperBlock(AntarchyForgeBlocks::upperBlockEntityType, BlockBehaviour.Properties.copy(Blocks.HOPPER))); public static final RegistryObject ANTIMETAL_POWERED_RAIL = BLOCKS.register("antimetal_powered_rail", () -> new com.craisinlord.antarchy.content.block.AntimetalPoweredRailBlock(BlockBehaviour.Properties.copy(Blocks.POWERED_RAIL))); public static final RegistryObject ANTIMETAL_DETECTOR_RAIL = BLOCKS.register("antimetal_detector_rail", @@ -499,6 +520,12 @@ public final class AntarchyForgeBlocks { () -> new AmethystClusterBlock(7, 3, BlockBehaviour.Properties.copy(Blocks.AMETHYST_CLUSTER))); public static final RegistryObject DREAM_SAND = BLOCKS.register("dream_sand", () -> new DreamSandBlock(BlockBehaviour.Properties.copy(Blocks.SAND))); + public static final RegistryObject ANTIGRAVEL = BLOCKS.register("antigravel", + () -> new AntigravelBlock(BlockBehaviour.Properties.copy(Blocks.GRAVEL))); + public static final RegistryObject LOAM = BLOCKS.register("loam", + () -> new Block(BlockBehaviour.Properties.copy(Blocks.MUD))); + public static final RegistryObject MUCUS = BLOCKS.register("mucus", + () -> new MucusBlock(BlockBehaviour.Properties.copy(Blocks.GLOW_LICHEN).friction(0.98F).lightLevel(state -> 0).sound(net.minecraft.world.level.block.SoundType.SLIME_BLOCK))); public static final RegistryObject DREAM_SANDSTONE = BLOCKS.register("dream_sandstone", () -> new Block(BlockBehaviour.Properties.copy(Blocks.SANDSTONE))); public static final RegistryObject CHISELED_DREAM_SANDSTONE = BLOCKS.register("chiseled_dream_sandstone", @@ -570,6 +597,11 @@ public final class AntarchyForgeBlocks { SeashellBlockEntity::new, SEASHELL.get() ).build(null)); + public static final RegistryObject> LUCID_ANCHOR_BLOCK_ENTITY = BLOCK_ENTITY_TYPES.register("lucid_anchor", + () -> BlockEntityType.Builder.of( + com.craisinlord.antarchy.content.block.entity.LucidAnchorBlockEntity::new, + LUCID_ANCHOR.get() + ).build(null)); public static final RegistryObject> CRITTER_CAGE_BLOCK_ENTITY = BLOCK_ENTITY_TYPES.register("critter_cage_block", () -> BlockEntityType.Builder.of( CritterCageBlockEntity::new, @@ -580,6 +612,11 @@ public final class AntarchyForgeBlocks { (pos, state) -> new com.craisinlord.antarchy.content.block.entity.BluestoneComparatorBlockEntity(pos, state, AntarchyForgeBlocks::bluestoneComparatorBlockEntityType), BLUESTONE_COMPARATOR.get() ).build(null)); + public static final RegistryObject> UPPER_BLOCK_ENTITY = BLOCK_ENTITY_TYPES.register("upper", + () -> BlockEntityType.Builder.of( + (pos, state) -> new UpperBlockEntity(pos, state, AntarchyForgeBlocks::upperBlockEntityType), + UPPER.get() + ).build(null)); private AntarchyForgeBlocks() {} @@ -643,6 +680,10 @@ public final class AntarchyForgeBlocks { return BLUESTONE_COMPARATOR_BLOCK_ENTITY.get(); } + private static BlockEntityType upperBlockEntityType() { + return UPPER_BLOCK_ENTITY.get(); + } + private static final class SimpleHorizontalFacingBlock extends HorizontalDirectionalBlock { private SimpleHorizontalFacingBlock(BlockBehaviour.Properties properties) { diff --git a/forge-1.20.1/src/main/java/com/craisinlord/antarchy/forge/registry/AntarchyForgeEntites.java b/forge-1.20.1/src/main/java/com/craisinlord/antarchy/forge/registry/AntarchyForgeEntites.java index ff542140..cdfb69d8 100644 --- a/forge-1.20.1/src/main/java/com/craisinlord/antarchy/forge/registry/AntarchyForgeEntites.java +++ b/forge-1.20.1/src/main/java/com/craisinlord/antarchy/forge/registry/AntarchyForgeEntites.java @@ -57,6 +57,8 @@ import com.craisinlord.antarchy.content.entity.lucid.LucidBoltEntity; import com.craisinlord.antarchy.content.entity.lucid.LucidEntity; import com.craisinlord.antarchy.content.entity.lucid.LucidEyeProjectileEntity; import com.craisinlord.antarchy.content.entity.nightmare.NightmareEntity; +import com.craisinlord.antarchy.content.entity.nightmare.NightmareBiteEntity; +import com.craisinlord.antarchy.content.entity.nightmare.NightmarePortalEntity; import com.craisinlord.antarchy.content.entity.CheepEntity; import com.craisinlord.antarchy.content.entity.CreepingHorrorEntity; import com.craisinlord.antarchy.content.entity.DorrieEntity; @@ -265,6 +267,18 @@ public final class AntarchyForgeEntites { .sized(3.2F, 3.8F) .clientTrackingRange(12) .build("nightmare")); + public static final RegistryObject> NIGHTMARE_PORTAL = ENTITY_TYPES.register("nightmare_portal", + () -> EntityType.Builder.of(NightmarePortalEntity::new, MobCategory.MISC) + .sized(2.5F, 3.0F) + .clientTrackingRange(10) + .updateInterval(1) + .build("nightmare_portal")); + public static final RegistryObject> NIGHTMARE_BITE = ENTITY_TYPES.register("nightmare_bite", + () -> EntityType.Builder.of(NightmareBiteEntity::new, MobCategory.MISC) + .sized(2.5F, 2.0F) + .clientTrackingRange(10) + .updateInterval(1) + .build("nightmare_bite")); public static final RegistryObject> LUCID = ENTITY_TYPES.register("lucid", () -> EntityType.Builder.of(LucidEntity::new, MobCategory.MONSTER) .sized(2.0F, 2.0F) diff --git a/forge-1.20.1/src/main/java/com/craisinlord/antarchy/forge/registry/AntarchyForgeEvents.java b/forge-1.20.1/src/main/java/com/craisinlord/antarchy/forge/registry/AntarchyForgeEvents.java index 555613f8..ab37c038 100644 --- a/forge-1.20.1/src/main/java/com/craisinlord/antarchy/forge/registry/AntarchyForgeEvents.java +++ b/forge-1.20.1/src/main/java/com/craisinlord/antarchy/forge/registry/AntarchyForgeEvents.java @@ -129,6 +129,12 @@ public final class AntarchyForgeEvents { MinecraftForge.EVENT_BUS.addListener(AntarchyForgeEvents::handleDreadBedSleep); MinecraftForge.EVENT_BUS.addListener(AntarchyForgeEvents::handleStartTracking); MinecraftForge.EVENT_BUS.addListener(AntarchyForgeEvents::handleDreamSandLogout); + MinecraftForge.EVENT_BUS.addListener(AntarchyForgeEvents::handleTigerEyeLogin); + MinecraftForge.EVENT_BUS.addListener(AntarchyForgeEvents::handleTigerEyeLogout); + MinecraftForge.EVENT_BUS.addListener(AntarchyForgeEvents::handleTigerEyeDeath); + MinecraftForge.EVENT_BUS.addListener(AntarchyForgeEvents::handleTigerEyeRespawn); + MinecraftForge.EVENT_BUS.addListener(AntarchyForgeEvents::handleTigerEyeDimensionChange); + MinecraftForge.EVENT_BUS.addListener(AntarchyForgeEvents::tickTigerEyeCamouflage); MinecraftForge.EVENT_BUS.addListener(AntarchyForgeEvents::registerReloadListeners); MinecraftForge.EVENT_BUS.addListener(AntarchyForgeEvents::onVillagerTrades); MinecraftForge.EVENT_BUS.addListener(AntarchyForgeEvents::onWandererTrades); @@ -269,6 +275,50 @@ public final class AntarchyForgeEvents { } AntarchyGravityNetworking.syncEntity(event.getTarget()); + if (event.getTarget() instanceof ServerPlayer trackedPlayer && event.getEntity() instanceof ServerPlayer trackingPlayer) { + com.craisinlord.antarchy.content.tigereye.TigerEyeCamouflageSync.syncTo(trackingPlayer, trackedPlayer); + } + } + + static void handleTigerEyeLogin(PlayerEvent.PlayerLoggedInEvent event) { + if (event.getEntity() instanceof ServerPlayer player) { + com.craisinlord.antarchy.content.tigereye.TigerEyeCamouflageSync.sync(player); + } + } + + static void handleTigerEyeLogout(PlayerEvent.PlayerLoggedOutEvent event) { + if (event.getEntity() instanceof ServerPlayer player) { + com.craisinlord.antarchy.content.tigereye.TigerEyeCamouflageController.deactivate(player, false); + } + } + + static void handleTigerEyeDeath(LivingDeathEvent event) { + if (event.getEntity() instanceof ServerPlayer player) { + com.craisinlord.antarchy.content.tigereye.TigerEyeCamouflageController.deactivate(player, false); + com.craisinlord.antarchy.content.tigereye.TigerEyeCamouflageSync.sync(player); + } + } + + static void handleTigerEyeRespawn(PlayerEvent.PlayerRespawnEvent event) { + if (event.getEntity() instanceof ServerPlayer player) { + com.craisinlord.antarchy.content.tigereye.TigerEyeCamouflageController.deactivate(player, false); + com.craisinlord.antarchy.content.tigereye.TigerEyeCamouflageSync.sync(player); + } + } + + static void handleTigerEyeDimensionChange(PlayerEvent.PlayerChangedDimensionEvent event) { + if (event.getEntity() instanceof ServerPlayer player) { + com.craisinlord.antarchy.content.tigereye.TigerEyeCamouflageController.deactivate(player, false); + com.craisinlord.antarchy.content.tigereye.TigerEyeCamouflageSync.sync(player); + } + } + + static void tickTigerEyeCamouflage(TickEvent.PlayerTickEvent event) { + if (event.phase != TickEvent.Phase.END) return; + if (event.player instanceof ServerPlayer player + && com.craisinlord.antarchy.content.tigereye.TigerEyeCamouflageController.validateOrDeactivate(player)) { + com.craisinlord.antarchy.content.tigereye.TigerEyeCamouflageSync.sync(player); + } } private static final String DREAD_BED_BUG_NEXT_SPAWN_KEY = Antarchy.MODID + ":dread_bed_bug_next_spawn"; @@ -423,8 +473,7 @@ public final class AntarchyForgeEvents { for (int y = minY; y <= maxY; y++) { for (int z = minZ; z <= maxZ; z++) { net.minecraft.core.BlockPos crystalPos = new net.minecraft.core.BlockPos(x, y + 1, z); - if (entity.level().getBlockState(crystalPos).is(AntarchyForgeBlocks.ANTIMETAL.get()) - || entity.level().getBlockState(crystalPos).is(AntarchyForgeBlocks.POLISHED_ANTIMETAL.get())) { + if (entity.level().getBlockState(crystalPos).is(AntarchyTags.Blocks.ANTIMETAL_INVERSION_BLOCKS)) { return true; } } diff --git a/forge-1.20.1/src/main/java/com/craisinlord/antarchy/forge/registry/AntarchyForgeItems.java b/forge-1.20.1/src/main/java/com/craisinlord/antarchy/forge/registry/AntarchyForgeItems.java index de806192..091dc68a 100644 --- a/forge-1.20.1/src/main/java/com/craisinlord/antarchy/forge/registry/AntarchyForgeItems.java +++ b/forge-1.20.1/src/main/java/com/craisinlord/antarchy/forge/registry/AntarchyForgeItems.java @@ -161,6 +161,9 @@ public final class AntarchyForgeItems { private static final ArmorMaterial FALLEN_KING_CROWN_ARMOR_MATERIAL = armorMaterial( 25, createFallenKingCrownDefense(), 25, SoundEvents.ARMOR_EQUIP_GOLD, () -> Ingredient.of(Items.GOLD_INGOT), 0.0F, 0.0F, "fallen_king_crown"); + private static final ArmorMaterial TIGERS_EYE_ARMOR_MATERIAL = armorMaterial( + 18, createDiamondArmorDefense(), 18, SoundEvents.ARMOR_EQUIP_GOLD, + () -> Ingredient.of(AntarchyForgeItems.TIGERS_EYE.get()), 2.0F, 0.0F, "tigers_eye"); // Block items public static final RegistryObject DUPLICATOR_LOG_ITEM = ITEMS.registerSimpleBlockItem(AntarchyForgeBlocks.DUPLICATOR_LOG); @@ -203,6 +206,8 @@ public final class AntarchyForgeItems { public static final RegistryObject GIANT_LILY_PAD_ITEM = ITEMS.register("giant_lily_pad", () -> new com.craisinlord.antarchy.content.item.GiantLilyPadItem(AntarchyForgeBlocks.GIANT_LILY_PAD.get(), new Item.Properties())); public static final RegistryObject SEASHELL_ITEM = ITEMS.registerSimpleBlockItem(AntarchyForgeBlocks.SEASHELL); + public static final RegistryObject LUCID_ANCHOR_ITEM = ITEMS.register("lucid_anchor", + () -> new LucidAnchorBlockItem(AntarchyForgeBlocks.LUCID_ANCHOR.get(), new Item.Properties().rarity(Rarity.UNCOMMON))); public static final RegistryObject LOTUS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyForgeBlocks.LOTUS); public static final RegistryObject OURANWOOD_SIGN_ITEM = ITEMS.register("ouranwood_sign", () -> new net.minecraft.world.item.SignItem(new Item.Properties().stacksTo(16), AntarchyForgeBlocks.OURANWOOD_SIGN.get(), AntarchyForgeBlocks.OURANWOOD_WALL_SIGN.get())); @@ -247,6 +252,7 @@ public final class AntarchyForgeItems { () -> new CeilingPlacementTooltipBlockItem(AntarchyForgeBlocks.BLUESTONE_COMPARATOR.get(), new Item.Properties())); public static final RegistryObject BLUESTONE_TORCH_ITEM = ITEMS.register("bluestone_torch", () -> new CeilingPlacementTooltipBlockItem(AntarchyForgeBlocks.BLUESTONE_TORCH.get(), new Item.Properties())); + public static final RegistryObject BLUESTONE_LAMP_ITEM = ITEMS.registerSimpleBlockItem(AntarchyForgeBlocks.BLUESTONE_LAMP); public static final RegistryObject URANIUM_BLOCK_ITEM = ITEMS.register("uranium_block", () -> new net.minecraft.world.item.BlockItem(AntarchyForgeBlocks.URANIUM_BLOCK.get(), new Item.Properties().rarity(Rarity.UNCOMMON))); public static final RegistryObject TITANIUM_BLOCK_ITEM = ITEMS.register("titanium_block", @@ -291,10 +297,19 @@ public final class AntarchyForgeItems { () -> new AntimetalBlockItem(AntarchyForgeBlocks.ANTIMETAL.get(), new Item.Properties())); public static final RegistryObject POLISHED_ANTIMETAL_ITEM = ITEMS.register("polished_antimetal", () -> new AntimetalBlockItem(AntarchyForgeBlocks.POLISHED_ANTIMETAL.get(), new Item.Properties())); + public static final RegistryObject ANTIMETAL_STAIRS_ITEM = ITEMS.register("antimetal_stairs", + () -> new AntimetalBlockItem(AntarchyForgeBlocks.ANTIMETAL_STAIRS.get(), new Item.Properties())); + public static final RegistryObject ANTIMETAL_SLAB_ITEM = ITEMS.register("antimetal_slab", + () -> new AntimetalBlockItem(AntarchyForgeBlocks.ANTIMETAL_SLAB.get(), new Item.Properties())); + public static final RegistryObject POLISHED_ANTIMETAL_STAIRS_ITEM = ITEMS.register("polished_antimetal_stairs", + () -> new AntimetalBlockItem(AntarchyForgeBlocks.POLISHED_ANTIMETAL_STAIRS.get(), new Item.Properties())); + public static final RegistryObject POLISHED_ANTIMETAL_SLAB_ITEM = ITEMS.register("polished_antimetal_slab", + () -> new AntimetalBlockItem(AntarchyForgeBlocks.POLISHED_ANTIMETAL_SLAB.get(), new Item.Properties())); public static final RegistryObject ANTIMETAL_SCAFFOLDING_ITEM = ITEMS.register("antimetal_scaffolding", () -> new AntimetalScaffoldingItem(AntarchyForgeBlocks.ANTIMETAL_SCAFFOLDING.get(), new Item.Properties())); public static final RegistryObject ANTIMETAL_RAIL_ITEM = ITEMS.register("antimetal_rail", () -> new CeilingPlacementTooltipBlockItem(AntarchyForgeBlocks.ANTIMETAL_RAIL.get(), new Item.Properties())); + public static final RegistryObject UPPER_ITEM = ITEMS.registerSimpleBlockItem(AntarchyForgeBlocks.UPPER); public static final RegistryObject ANTIMETAL_POWERED_RAIL_ITEM = ITEMS.register("antimetal_powered_rail", () -> new CeilingPlacementTooltipBlockItem(AntarchyForgeBlocks.ANTIMETAL_POWERED_RAIL.get(), new Item.Properties())); public static final RegistryObject ANTIMETAL_DETECTOR_RAIL_ITEM = ITEMS.register("antimetal_detector_rail", @@ -309,6 +324,10 @@ public final class AntarchyForgeItems { () -> new net.minecraft.world.item.BlockItem(AntarchyForgeBlocks.BLOOD_CRYSTAL.get(), new Item.Properties())); public static final RegistryObject BLOOD_CRYSTAL_CRYSTAL_ITEM = ITEMS.registerSimpleBlockItem(AntarchyForgeBlocks.BLOOD_CRYSTAL_CRYSTAL); public static final RegistryObject DREAM_SAND_ITEM = ITEMS.registerSimpleBlockItem(AntarchyForgeBlocks.DREAM_SAND); + public static final RegistryObject ANTIGRAVEL_ITEM = ITEMS.registerSimpleBlockItem(AntarchyForgeBlocks.ANTIGRAVEL); + public static final RegistryObject LOAM_ITEM = ITEMS.registerSimpleBlockItem(AntarchyForgeBlocks.LOAM); + public static final RegistryObject MUCUS_ITEM = ITEMS.register("mucus", + () -> new com.craisinlord.antarchy.content.item.MucusBlockItem(AntarchyForgeBlocks.MUCUS.get(), new Item.Properties())); public static final RegistryObject DREAM_SANDSTONE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyForgeBlocks.DREAM_SANDSTONE); public static final RegistryObject CHISELED_DREAM_SANDSTONE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyForgeBlocks.CHISELED_DREAM_SANDSTONE); public static final RegistryObject CUT_DREAM_SANDSTONE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyForgeBlocks.CUT_DREAM_SANDSTONE); @@ -358,7 +377,7 @@ public final class AntarchyForgeItems { public static final RegistryObject POLISHED_NYXITE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyForgeBlocks.POLISHED_NYXITE); public static final RegistryObject CHISELED_NYXITE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyForgeBlocks.CHISELED_NYXITE); public static final RegistryObject NYXITE_BRICKS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyForgeBlocks.NYXITE_BRICKS); - public static final RegistryObject CHITEN_BLOCK_ITEM = ITEMS.registerSimpleBlockItem(AntarchyForgeBlocks.CHITEN_BLOCK); + public static final RegistryObject CHITIN_BLOCK_ITEM = ITEMS.registerSimpleBlockItem(AntarchyForgeBlocks.CHITIN_BLOCK); public static final RegistryObject NYXITE_STAIRS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyForgeBlocks.NYXITE_STAIRS); public static final RegistryObject NYXITE_SLAB_ITEM = ITEMS.registerSimpleBlockItem(AntarchyForgeBlocks.NYXITE_SLAB); public static final RegistryObject NYXITE_WALL_ITEM = ITEMS.registerSimpleBlockItem(AntarchyForgeBlocks.NYXITE_WALL); @@ -393,7 +412,7 @@ public final class AntarchyForgeItems { () -> new com.craisinlord.antarchy.content.item.TriffidGooBlockItem(AntarchyForgeBlocks.TRIFFID_GOO_BLOCK.get(), new Item.Properties())); public static final RegistryObject PALE_NYXITE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyForgeBlocks.PALE_NYXITE); public static final RegistryObject NYXITE_SPIKE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyForgeBlocks.NYXITE_SPIKE); - public static final RegistryObject CHITEN_SPIKE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyForgeBlocks.CHITEN_SPIKE); + public static final RegistryObject CHITIN_SPIKE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyForgeBlocks.CHITIN_SPIKE); public static final RegistryObject POTENT_NYXITE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyForgeBlocks.POTENT_NYXITE); public static final RegistryObject UMBRAL_MOSS_BLOCK_ITEM = ITEMS.registerSimpleBlockItem(AntarchyForgeBlocks.UMBRAL_MOSS_BLOCK); public static final RegistryObject UMBRAL_MOSS_CARPET_ITEM = ITEMS.registerSimpleBlockItem(AntarchyForgeBlocks.UMBRAL_MOSS_CARPET); @@ -451,6 +470,15 @@ public final class AntarchyForgeItems { () -> new BloodCrystalArmorItem(BLOOD_CRYSTAL_ARMOR_MATERIAL, ArmorItem.Type.LEGGINGS, new Item.Properties().rarity(Rarity.RARE))); public static final RegistryObject BLOOD_CRYSTAL_BOOTS = ITEMS.register("blood_crystal_boots", () -> new BloodCrystalArmorItem(BLOOD_CRYSTAL_ARMOR_MATERIAL, ArmorItem.Type.BOOTS, new Item.Properties().rarity(Rarity.RARE))); + public static final RegistryObject TIGERS_EYE = ITEMS.registerSimpleItem("tigers_eye", new Item.Properties().rarity(Rarity.UNCOMMON)); + public static final RegistryObject TIGERS_EYE_HELMET = ITEMS.register("tigers_eye_helmet", + () -> new com.craisinlord.antarchy.content.item.TigerEyeArmorItem(TIGERS_EYE_ARMOR_MATERIAL, ArmorItem.Type.HELMET, new Item.Properties().rarity(Rarity.UNCOMMON))); + public static final RegistryObject TIGERS_EYE_CHESTPLATE = ITEMS.register("tigers_eye_chestplate", + () -> new com.craisinlord.antarchy.content.item.TigerEyeArmorItem(TIGERS_EYE_ARMOR_MATERIAL, ArmorItem.Type.CHESTPLATE, new Item.Properties().rarity(Rarity.UNCOMMON))); + public static final RegistryObject TIGERS_EYE_LEGGINGS = ITEMS.register("tigers_eye_leggings", + () -> new com.craisinlord.antarchy.content.item.TigerEyeArmorItem(TIGERS_EYE_ARMOR_MATERIAL, ArmorItem.Type.LEGGINGS, new Item.Properties().rarity(Rarity.UNCOMMON))); + public static final RegistryObject TIGERS_EYE_BOOTS = ITEMS.register("tigers_eye_boots", + () -> new com.craisinlord.antarchy.content.item.TigerEyeArmorItem(TIGERS_EYE_ARMOR_MATERIAL, ArmorItem.Type.BOOTS, new Item.Properties().rarity(Rarity.UNCOMMON))); public static final RegistryObject BLOOD_CRYSTAL_KATANA = ITEMS.register("blood_crystal_katana", () -> new BloodCrystalKatanaItem( BLOOD_CRYSTAL_KATANA_TIER, @@ -465,7 +493,7 @@ public final class AntarchyForgeItems { () -> new MobComingSoonTooltipItem(new Item.Properties().rarity(Rarity.RARE))); public static final RegistryObject QUEEN_SCALE = ITEMS.register("queen_scale", () -> new MobComingSoonTooltipItem(new Item.Properties().rarity(Rarity.RARE))); - public static final RegistryObject CHITEN = ITEMS.registerSimpleItem("chiten", new Item.Properties().rarity(Rarity.UNCOMMON)); + public static final RegistryObject CHITIN = ITEMS.registerSimpleItem("chitin", new Item.Properties().rarity(Rarity.UNCOMMON)); public static final RegistryObject JERRY_NUCLEUS = ITEMS.register("jerry_nucleus", () -> new com.craisinlord.antarchy.content.item.JerryNucleusItem(new Item.Properties().rarity(Rarity.UNCOMMON) .food(new FoodProperties.Builder() @@ -773,6 +801,14 @@ public final class AntarchyForgeItems { } }); + public static final RegistryObject KRAKEN_KALAMARI = ITEMS.register("kraken_kalamari", + () -> new Item(new Item.Properties() + .rarity(Rarity.EPIC) + .food(new FoodProperties.Builder() + .nutrition(20) + .saturationMod(1.2F) + .alwaysEat() + .build()))); public static final RegistryObject KRAKEN_TENTACLE = ITEMS.registerSimpleItem("kraken_tentacle", new Item.Properties().rarity(Rarity.RARE)); @@ -964,6 +1000,15 @@ public final class AntarchyForgeItems { return defense; } + private static EnumMap createDiamondArmorDefense() { + EnumMap defense = new EnumMap<>(ArmorItem.Type.class); + defense.put(ArmorItem.Type.BOOTS, 3); + defense.put(ArmorItem.Type.LEGGINGS, 6); + defense.put(ArmorItem.Type.CHESTPLATE, 8); + defense.put(ArmorItem.Type.HELMET, 3); + return defense; + } + private static EnumMap createBloodCrystalArmorDefense() { EnumMap defense = new EnumMap<>(ArmorItem.Type.class); defense.put(ArmorItem.Type.BOOTS, 2); diff --git a/forge-1.20.1/src/main/java/com/craisinlord/antarchy/forge/registry/AntarchyForgeMisc.java b/forge-1.20.1/src/main/java/com/craisinlord/antarchy/forge/registry/AntarchyForgeMisc.java index b6f3e524..c9450dbb 100644 --- a/forge-1.20.1/src/main/java/com/craisinlord/antarchy/forge/registry/AntarchyForgeMisc.java +++ b/forge-1.20.1/src/main/java/com/craisinlord/antarchy/forge/registry/AntarchyForgeMisc.java @@ -21,8 +21,8 @@ import com.craisinlord.antarchy.content.worldgen.cavaryn.CavarynCreepvineFeature import com.craisinlord.antarchy.content.worldgen.cavaryn.CavarynEggPatchFeature; import com.craisinlord.antarchy.content.worldgen.cavaryn.CavarynWallAmberMossFeature; import com.craisinlord.antarchy.content.worldgen.cavaryn.HangingCreeprootsFeature; -import com.craisinlord.antarchy.content.worldgen.cavaryn.ChitenSpikeConfiguration; -import com.craisinlord.antarchy.content.worldgen.cavaryn.ChitenSpikeFeature; +import com.craisinlord.antarchy.content.worldgen.cavaryn.ChitinSpikeConfiguration; +import com.craisinlord.antarchy.content.worldgen.cavaryn.ChitinSpikeFeature; import com.craisinlord.antarchy.content.worldgen.cavaryn.MoltingVinesFeature; import com.craisinlord.antarchy.content.worldgen.ocean.SeashellFeature; import com.craisinlord.antarchy.content.worldgen.elythia.*; @@ -103,6 +103,7 @@ public final class AntarchyForgeMisc { public static final RegistryObject BLOODGLASS_WARD = MOB_EFFECTS.register("bloodglass_ward", com.craisinlord.antarchy.content.effect.BloodglassWardEffect::new); public static final RegistryObject SHRINKING_EFFECT = MOB_EFFECTS.register("shrinking", ShrinkMobEffect::new); public static final RegistryObject GROWTH_EFFECT = MOB_EFFECTS.register("growth", GrowthMobEffect::new); + public static final RegistryObject GLIMMERING = MOB_EFFECTS.register("glimmering", com.craisinlord.antarchy.content.effect.GlimmeringMobEffect::new); // Potions public static final RegistryObject INVERSION = POTIONS.register("inversion", @@ -273,8 +274,8 @@ public final class AntarchyForgeMisc { () -> new ThoraxisSpikeFeature(ThoraxisSpikeConfiguration.CODEC)); public static final RegistryObject NYXITE_SPIKES = FEATURES.register("nyxite_spikes", () -> new NyxiteSpikeFeature(NyxiteSpikeConfiguration.CODEC)); - public static final RegistryObject CAVARYN_CHITEN_SPIKES = FEATURES.register("cavaryn_chiten_spikes", - () -> new ChitenSpikeFeature(ChitenSpikeConfiguration.CODEC)); + public static final RegistryObject CAVARYN_CHITIN_SPIKES = FEATURES.register("cavaryn_chitin_spikes", + () -> new ChitinSpikeFeature(ChitinSpikeConfiguration.CODEC)); public static final RegistryObject CAVARYN_BILE_VEINS = FEATURES.register("cavaryn_bile_veins", () -> new CavarynBileVeinFeature(NoneFeatureConfiguration.CODEC)); public static final RegistryObject CAVARYN_BILE_CYSTS = FEATURES.register("cavaryn_bile_cysts", diff --git a/forge-1.20.1/src/main/java/com/craisinlord/antarchy/forge/registry/AntarchyForgePayloadHandlers.java b/forge-1.20.1/src/main/java/com/craisinlord/antarchy/forge/registry/AntarchyForgePayloadHandlers.java index 2e78d7ea..052a2706 100644 --- a/forge-1.20.1/src/main/java/com/craisinlord/antarchy/forge/registry/AntarchyForgePayloadHandlers.java +++ b/forge-1.20.1/src/main/java/com/craisinlord/antarchy/forge/registry/AntarchyForgePayloadHandlers.java @@ -8,6 +8,7 @@ import com.craisinlord.antarchy.forge.network.DorrieJumpNetworking; import com.craisinlord.antarchy.forge.network.HerculesBeetleNetworking; import com.craisinlord.antarchy.forge.network.JumpyBootsNetworking; import com.craisinlord.antarchy.forge.network.MultipartNetworking; +import com.craisinlord.antarchy.forge.network.TigerEyeNetworking; public class AntarchyForgePayloadHandlers { private AntarchyForgePayloadHandlers() {} @@ -18,6 +19,7 @@ public class AntarchyForgePayloadHandlers { JumpyBootsNetworking.register(); DorrieJumpNetworking.register(); HerculesBeetleNetworking.register(); + TigerEyeNetworking.register(); AntarchyForgeNetworkCore.registerS2C( com.craisinlord.antarchy.content.network.BloodglassStatePayload.class, com.craisinlord.antarchy.content.network.BloodglassStatePayload.STREAM_CODEC, 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 7561e056..2e58dcf3 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 @@ -374,6 +374,7 @@ public final class AntarchyConfigModuleNeoforge { private static void bakeMiscConfig() { AntarchySettings.setRainbowAntsLeadToInfinityDimensions(AntarchyMiscConfig.rainbowAntsLeadToInfinityDimensions()); + AntarchySettings.setRainbowAntInfinityEasterEggChance(AntarchyMiscConfig.rainbowAntInfinityEasterEggChance()); AntarchySettings.setDisableInfinityBookPortalCreation(AntarchyMiscConfig.disableInfinityBookPortalCreation()); AntarchySettings.setHushweedSporeLifetimeSeconds(AntarchyMiscConfig.hushweedSporeLifetimeSeconds()); AntarchySettings.setDiamondMinecartEnabled(AntarchyMiscConfig.diamondMinecartEnabled()); 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 30bc441d..a443b4b7 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 @@ -24,6 +24,7 @@ public final class AntarchyMiscConfig { // 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; @@ -105,7 +106,13 @@ public final class AntarchyMiscConfig { "Whether rainbow ants open randomly generated Infinity dimensions.", "Only works if the Infinite Dimensions mod is installed." ) - .define("rainbowAntsLeadToInfinityDimensions", net.neoforged.fml.ModList.get().isLoaded("infinity")); + .define("rainbowAntsLeadToInfinityDimensions", true); + RAINBOW_ANT_INFINITY_EASTER_EGG_CHANCE = b + .comment( + "Chance for a rainbow ant Infinity destination roll to select an Infinity easter egg dimension instead of a normal generated one.", + "0.01 = 1%, 0 disables easter egg rolls." + ) + .defineInRange("rainbowAntInfinityEasterEggChance", 0.01D, 0.0D, 1.0D); b.pop(); @@ -174,6 +181,7 @@ public final class AntarchyMiscConfig { static boolean disableInfinityBookPortalCreation() { return DISABLE_INFINITY_BOOK_PORTAL_CREATION.get(); } static boolean rainbowAntsLeadToInfinityDimensions() { return RAINBOW_ANTS_LEAD_TO_INFINITY_DIMENSIONS.get(); } + static double rainbowAntInfinityEasterEggChance() { return RAINBOW_ANT_INFINITY_EASTER_EGG_CHANCE.get(); } public static boolean permanentPortalsEnabled() { return PERMANENT_PORTALS_ENABLED.get(); } public static boolean permanentPortalsFlintAndSteelEnabled() { return PERMANENT_PORTALS_FLINT_AND_STEEL_ENABLED.get(); } public static boolean elythiaPortalEnabled() { return ELYTHIA_PORTAL_ENABLED.get(); } diff --git a/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/NeoForgeInfinityCompat.java b/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/NeoForgeInfinityCompat.java index 03fa25f9..5da2d1bb 100644 --- a/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/NeoForgeInfinityCompat.java +++ b/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/NeoForgeInfinityCompat.java @@ -2,12 +2,16 @@ package com.craisinlord.antarchy.neoforge; import com.craisinlord.antarchy.Antarchy; import com.craisinlord.antarchy.compat.infinity.InfinityCompatBridge; +import net.lerariemann.infinity.InfinityMod; import net.lerariemann.infinity.util.InfinityMethods; import net.lerariemann.infinity.util.teleport.WarpLogic; import net.minecraft.resources.ResourceLocation; import net.minecraft.server.level.ServerPlayer; import net.minecraft.util.RandomSource; +import java.util.ArrayList; +import java.util.List; + public final class NeoForgeInfinityCompat implements InfinityCompatBridge { @Override public boolean isAvailable() { @@ -24,6 +28,43 @@ public final class NeoForgeInfinityCompat implements InfinityCompatBridge { } } + @Override + public ResourceLocation getRandomDimensionId(RandomSource random, double easterEggChance) { + try { + if (easterEggChance > 0.0D && random.nextDouble() < easterEggChance) { + ResourceLocation easterDimensionId = getRandomEasterDimensionId(random); + if (easterDimensionId != null) { + return easterDimensionId; + } + } + + return InfinityMethods.getRandomId(random); + } catch (Throwable throwable) { + Antarchy.LOGGER.error("[Antarchy] Failed to get a random Infinity dimension id", throwable); + return null; + } + } + + private static ResourceLocation getRandomEasterDimensionId(RandomSource random) { + if (InfinityMod.provider == null || InfinityMod.provider.easterizer == null) { + return null; + } + + List easterNames = new ArrayList<>(); + for (String easterName : InfinityMod.provider.easterizer.map.keySet()) { + if (InfinityMod.provider.easterizer.isEaster(easterName)) { + easterNames.add(easterName); + } + } + + if (easterNames.isEmpty()) { + return null; + } + + String chosenEaster = easterNames.get(random.nextInt(easterNames.size())); + return InfinityMod.provider.easterizer.getAsEaster(chosenEaster); + } + @Override public boolean requestWarp(ServerPlayer player, ResourceLocation dimensionId) { try {