From ee9ac93b5e454a28fe0b01b7b5ce53431f3063d4 Mon Sep 17 00:00:00 2001 From: craisinlord Date: Tue, 11 Aug 2026 07:15:31 -0500 Subject: [PATCH] nadir wood --- .../antarchy/config/AntarchySettings.java | 99 +++-- .../antarchy/config/ConfigResetGuard.java | 2 +- .../antarchy/content/AntarchyObjects.java | 21 ++ .../antarchy/content/AntarchyTags.java | 2 + .../content/creative/CreativeTabContents.java | 19 + .../entity/basilisk/BasiliskEntity.java | 1 + .../content/item/MogglesCaveDetector.java | 5 +- .../mixins/BlockEntityTypeSignMixin.java | 46 ++- .../resources/assets/antarchy/lang/en_us.json | 23 ++ .../structure/basilisk_lair/basilisk_lair.nbt | Bin 437990 -> 421207 bytes .../antarchy/worldgen/biome/dream_dunes.json | 3 +- .../antarchy/worldgen/biome/lucid_pools.json | 5 +- .../worldgen/biome/nightmare_wastes.json | 5 +- .../tags/block/all_hanging_signs.json | 16 +- .../tags/block/ceiling_hanging_signs.json | 11 +- .../data/minecraft/tags/block/doors.json | 11 +- .../minecraft/tags/block/fence_gates.json | 11 +- .../data/minecraft/tags/block/leaves.json | 10 +- .../data/minecraft/tags/block/logs.json | 32 +- .../minecraft/tags/block/logs_that_burn.json | 32 +- .../minecraft/tags/block/mineable/axe.json | 101 ++--- .../data/minecraft/tags/block/planks.json | 11 +- .../data/minecraft/tags/block/saplings.json | 11 +- .../minecraft/tags/block/standing_signs.json | 11 +- .../data/minecraft/tags/block/trapdoors.json | 11 +- .../tags/block/wall_hanging_signs.json | 11 +- .../data/minecraft/tags/block/wall_signs.json | 11 +- .../minecraft/tags/block/wooden_buttons.json | 11 +- .../minecraft/tags/block/wooden_doors.json | 11 +- .../minecraft/tags/block/wooden_fences.json | 11 +- .../tags/block/wooden_pressure_plates.json | 11 +- .../minecraft/tags/block/wooden_slabs.json | 11 +- .../minecraft/tags/block/wooden_stairs.json | 11 +- .../tags/block/wooden_trapdoors.json | 11 +- .../data/minecraft/tags/item/boats.json | 13 +- .../data/minecraft/tags/item/chest_boats.json | 11 +- .../data/minecraft/tags/item/doors.json | 11 +- .../data/minecraft/tags/item/fence_gates.json | 11 +- .../minecraft/tags/item/hanging_signs.json | 11 +- .../data/minecraft/tags/item/logs.json | 32 +- .../minecraft/tags/item/logs_that_burn.json | 32 +- .../data/minecraft/tags/item/planks.json | 11 +- .../data/minecraft/tags/item/saplings.json | 11 +- .../data/minecraft/tags/item/signs.json | 11 +- .../data/minecraft/tags/item/trapdoors.json | 11 +- .../minecraft/tags/item/wooden_buttons.json | 11 +- .../minecraft/tags/item/wooden_doors.json | 11 +- .../minecraft/tags/item/wooden_fences.json | 11 +- .../tags/item/wooden_pressure_plates.json | 11 +- .../minecraft/tags/item/wooden_slabs.json | 11 +- .../minecraft/tags/item/wooden_stairs.json | 11 +- .../minecraft/tags/item/wooden_trapdoors.json | 11 +- .../fabric/AntarchyConfigModuleFabric.java | 1 - .../fabric/AntarchyConfigModuleFabric.java | 1 - .../fabric/AntarchyFabricContent.java | 3 + .../antarchy/fabric/AntarchyFabricEvents.java | 1 + .../antarchy/fabric/AntarchyWoodTypes.java | 1 + .../client/AntarchyFabricClientBootstrap.java | 8 + .../fabric/registry/AntarchyFabricBlocks.java | 78 ++++ .../registry/AntarchyFabricEntities.java | 26 ++ .../fabric/registry/AntarchyFabricItems.java | 61 ++++ .../fabric/registry/AntarchyFabricMisc.java | 4 + .../forge/AntarchyConfigModuleForge.java | 111 +++++- .../antarchy/forge/AntarchyMiscConfig.java | 9 +- .../antarchy/forge/AntarchyMobsConfig.java | 345 +++++++++++++++++- .../antarchy/forge/AntarchyToolsConfig.java | 50 +-- .../AntarchyConfigModuleNeoforge.java | 62 +++- .../antarchy/neoforge/AntarchyMiscConfig.java | 9 +- .../antarchy/neoforge/AntarchyMobsConfig.java | 147 +++++++- .../antarchy/neoforge/AntarchyNeoforge.java | 3 + .../neoforge/AntarchyToolsConfig.java | 29 +- .../antarchy/neoforge/AntarchyWoodTypes.java | 1 + .../client/AntarchyNeoForgeClient.java | 10 + .../registry/AntarchyNeoForgeEvents.java | 1 + .../registry/AntarchyNeoforgeBlocks.java | 40 ++ .../registry/AntarchyNeoforgeEntites.java | 21 ++ .../registry/AntarchyNeoforgeItems.java | 23 ++ .../registry/AntarchyNeoforgeMisc.java | 2 + 78 files changed, 1434 insertions(+), 453 deletions(-) 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 b49ed2dd..350bfe8b 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 @@ -79,8 +79,6 @@ public final class AntarchySettings { private static double scorpionWhipPullStrength = 0.75D; private static double scorpionWhipHeavyPullMultiplier = 0.25D; private static double scorpionWhipSelfPullMultiplier = 0.45D; - private static int scorpionWhipReelCooldownTicks = 10; - private static int scorpionWhipSnapCooldownTicks = 30; private static int bloodCrystalKatanaAttackDamage = 7; private static double bloodCrystalKatanaLaunchStrength = 1.1D; private static int bloodCrystalKatanaTrailDurationTicks = 12; @@ -90,6 +88,11 @@ public final class AntarchySettings { private static double bigBerthaNoneModeDamageBonusPercent = 15.0D; private static double bigBerthaNightmareDamageBonusPercent = 30.0D; private static double potentNyxiteInvertedDurationSeconds = 60.0D; + private static int dimensionalTearLifetimeTicks = 24000; + private static int dimensionalTearInvertedDurationTicks = 2400; + private static int dimensionalTearEmergenceMinIntervalTicks = 2400; + private static int dimensionalTearEmergenceMaxIntervalTicks = 7200; + private static float dimensionalTearLucidEventChance = 0.65F; private static int ultimateToolEnchantability = 25; private static int ultimateArmorEnchantability = 10; private static int ultimateBowEnchantability = 20; @@ -132,7 +135,6 @@ public final class AntarchySettings { private static double rollyPollyRollSpeedMultiplier = 2.2D; private static int rollyPollyTameChance = 3; private static double rollyPollyBowlingDamage = 3.0D; - private static double rollyPollyTumbleDamage = 3.0D; private static double rollyPollyBowlingKnockback = 0.8D; private static double rollyPollyArmor = 2.0D; private static double rollyPollyRolledArmorBonus = 16.0D; @@ -175,7 +177,6 @@ public final class AntarchySettings { private static double dreamSandJumpVelocityMultiplier = 1.3D; private static double dreamSandGravityMultiplier = 0.45D; private static double dreamSandEffectDurationSeconds = 7.0D; - private static double dreamSandFallDamageMultiplier = 0.4D; private static double dreamSandFallingBlockGravityMultiplier = 0.4D; private static boolean ichorWitherEnabled = true; private static int nightmareHelmetArmorValue = 3; @@ -303,7 +304,6 @@ public final class AntarchySettings { private static double bedBugArmor = 2.0D; private static double jumpyBugHealth = 100.0D; private static double jumpyBugPounceDamage = 12.0D; - private static double jumpyBugLatchDamage = 12.0D; private static double jumpyBugCamouflageAlpha = 0.18D; private static double brutalflyArmor = 10.0D; private static double brutalflyArmorToughness = 4.0D; @@ -319,7 +319,6 @@ public final class AntarchySettings { private static double krakenFlyingSpeed = 0.24D; private static double krakenKnockbackResistance = 0.8D; private static double krakenArmor = 8.0D; - private static double krakenProjectileDamageTakenMultiplier = 0.5D; private static double krakenBossBarRange = 40.0D; private static double krakenFollowRange = 96.0D; private static double krakenDamageRange = 35.0D; @@ -392,11 +391,8 @@ public final class AntarchySettings { private static double ductTapeRepairPercentPerUse = 0.25D; private static double ultimateArmorKnockbackResistance = 0.1D; private static double nightmareArmorKnockbackResistance = 0.1D; - private static double nightmareArmorDreadAuraRangePerPiece = 2.0D; private static double primordialArmorKnockbackPerPiece = 0.5D; private static double mogglesVisionRadius = 20.0D; - private static int mogglesVisionMaxLight = 7; - private static double mogglesVisionAlpha = 0.65D; private static int fallenKingCrownArmorValue = 2; private static double fallenKingCrownArmorToughness = 0.0D; private static boolean permanentPortalsEnabled = true; @@ -405,7 +401,6 @@ public final class AntarchySettings { private static boolean thoraxisPortalEnabled = true; private static boolean cavarynPortalEnabled = true; private static boolean elythiaFireflyParticlesEnabled = true; - private static boolean glowingTorchflowers = true; private static int bloodCrystalArmorShieldRechargeTicks = 600; private static int bloodCrystalAppleShieldCount = 2; private static int bloodCrystalAppleDurationTicks = 2400; @@ -426,13 +421,11 @@ public final class AntarchySettings { private static double toreterrorJumpAttackKnockback = 2.5D; private static double toreterrorSpinDamage = 6.0D; private static double toreterrorSpinKnockback = 0.9D; - private static double toreterrorRangedWaterBombChance = 0.35D; private static double toreterrorProjectileDamageMultiplier = 0.5D; private static double waterBombDamage = 6.0D; private static int waterBombLifetimeTicks = 120; private static double waterBombGravity = 0.12D; private static double waterBombKnockback = 1.2D; - private static double waterCannonCooldownSeconds = 1.5D; private static double creepingHorrorHealth = 15.0D; private static double creepingHorrorAttackDamage = 6.0D; private static double lurkingTerrorHealth = 15.0D; @@ -525,10 +518,6 @@ public final class AntarchySettings { return glowVinesUnderLeaves; } - public static boolean glowingTorchflowers() { - return glowingTorchflowers; - } - public static boolean swingThroughGrassEnabled() { return swingThroughGrassEnabled; } @@ -685,6 +674,46 @@ public final class AntarchySettings { return potentNyxiteInvertedDurationSeconds; } + public static int dimensionalTearLifetimeTicks() { + return dimensionalTearLifetimeTicks; + } + + public static void setDimensionalTearLifetimeTicks(int value) { + dimensionalTearLifetimeTicks = value; + } + + public static int dimensionalTearInvertedDurationTicks() { + return dimensionalTearInvertedDurationTicks; + } + + public static void setDimensionalTearInvertedDurationTicks(int value) { + dimensionalTearInvertedDurationTicks = value; + } + + public static int dimensionalTearEmergenceMinIntervalTicks() { + return dimensionalTearEmergenceMinIntervalTicks; + } + + public static void setDimensionalTearEmergenceMinIntervalTicks(int value) { + dimensionalTearEmergenceMinIntervalTicks = value; + } + + public static int dimensionalTearEmergenceMaxIntervalTicks() { + return dimensionalTearEmergenceMaxIntervalTicks; + } + + public static void setDimensionalTearEmergenceMaxIntervalTicks(int value) { + dimensionalTearEmergenceMaxIntervalTicks = value; + } + + public static float dimensionalTearLucidEventChance() { + return dimensionalTearLucidEventChance; + } + + public static void setDimensionalTearLucidEventChance(float value) { + dimensionalTearLucidEventChance = value; + } + public static int ultimateToolEnchantability() { return ultimateToolEnchantability; } @@ -871,10 +900,6 @@ public final class AntarchySettings { return rollyPollyBowlingDamage; } - public static double rollyPollyTumbleDamage() { - return rollyPollyTumbleDamage; - } - public static double rollyPollyBowlingKnockback() { return rollyPollyBowlingKnockback; } @@ -1102,10 +1127,6 @@ public final class AntarchySettings { glowVinesUnderLeaves = value; } - public static void setGlowingTorchflowers(boolean value) { - glowingTorchflowers = value; - } - public static void setSwingThroughGrassEnabled(boolean value) { swingThroughGrassEnabled = value; } @@ -1453,10 +1474,6 @@ public final class AntarchySettings { rollyPollyBowlingDamage = value; } - public static void setRollyPollyTumbleDamage(double value) { - rollyPollyTumbleDamage = value; - } - public static void setRollyPollyBowlingKnockback(double value) { rollyPollyBowlingKnockback = value; } @@ -1666,14 +1683,6 @@ public final class AntarchySettings { dreamSandEffectDurationSeconds = value; } - public static double dreamSandFallDamageMultiplier() { - return dreamSandFallDamageMultiplier; - } - - public static void setDreamSandFallDamageMultiplier(double value) { - dreamSandFallDamageMultiplier = value; - } - public static double dreamSandFallingBlockGravityMultiplier() { return dreamSandFallingBlockGravityMultiplier; } @@ -1714,14 +1723,8 @@ public final class AntarchySettings { public static double nightmareBootsArmorToughness() { return nightmareBootsArmorToughness; } public static void setNightmareBootsArmorToughness(double v) { nightmareBootsArmorToughness = v; } - public static void setNightmareArmorDreadAuraRangePerPiece(double v) { nightmareArmorDreadAuraRangePerPiece = v; } - public static double nightmareArmorDreadAuraRangePerPiece() { return nightmareArmorDreadAuraRangePerPiece; } public static void setMogglesVisionRadius(double v) { mogglesVisionRadius = v; } public static double mogglesVisionRadius() { return mogglesVisionRadius; } - public static void setMogglesVisionMaxLight(int v) { mogglesVisionMaxLight = v; } - public static int mogglesVisionMaxLight() { return mogglesVisionMaxLight; } - public static void setMogglesVisionAlpha(double v) { mogglesVisionAlpha = v; } - public static double mogglesVisionAlpha() { return mogglesVisionAlpha; } public static double nightmareHelmetDoubleDamageChance() { return nightmareHelmetDoubleDamageChance; } public static void setNightmareHelmetDoubleDamageChance(double v) { nightmareHelmetDoubleDamageChance = v; } @@ -2016,10 +2019,6 @@ public final class AntarchySettings { public static double scorpionWhipSelfPullMultiplier() { return scorpionWhipSelfPullMultiplier; } public static void setScorpionWhipSelfPullMultiplier(double value) { scorpionWhipSelfPullMultiplier = value; } - public static int scorpionWhipReelCooldownTicks() { return scorpionWhipReelCooldownTicks; } - public static void setScorpionWhipReelCooldownTicks(int value) { scorpionWhipReelCooldownTicks = value; } - public static int scorpionWhipSnapCooldownTicks() { return scorpionWhipSnapCooldownTicks; } - public static void setScorpionWhipSnapCooldownTicks(int value) { scorpionWhipSnapCooldownTicks = value; } public static int bloodCrystalKatanaAttackDamage() { return bloodCrystalKatanaAttackDamage; } public static void setBloodCrystalKatanaAttackDamage(int value) { bloodCrystalKatanaAttackDamage = value; } @@ -2122,8 +2121,6 @@ public final class AntarchySettings { public static double jumpyBugPounceDamage() { return jumpyBugPounceDamage; } public static void setJumpyBugPounceDamage(double value) { jumpyBugPounceDamage = value; } - public static double jumpyBugLatchDamage() { return jumpyBugLatchDamage; } - public static void setJumpyBugLatchDamage(double value) { jumpyBugLatchDamage = value; } public static double jumpyBugCamouflageAlpha() { return jumpyBugCamouflageAlpha; } public static void setJumpyBugCamouflageAlpha(double value) { jumpyBugCamouflageAlpha = value; } @@ -2169,8 +2166,6 @@ public final class AntarchySettings { public static double krakenArmor() { return krakenArmor; } public static void setKrakenArmor(double value) { krakenArmor = value; } - public static double krakenProjectileDamageTakenMultiplier() { return krakenProjectileDamageTakenMultiplier; } - public static void setKrakenProjectileDamageTakenMultiplier(double value) { krakenProjectileDamageTakenMultiplier = value; } public static double krakenBossBarRange() { return krakenBossBarRange; } public static void setKrakenBossBarRange(double value) { krakenBossBarRange = value; } @@ -2393,8 +2388,6 @@ public final class AntarchySettings { public static void setToreterrorSpinDamage(double v) { toreterrorSpinDamage = v; } public static double toreterrorSpinKnockback() { return toreterrorSpinKnockback; } public static void setToreterrorSpinKnockback(double v) { toreterrorSpinKnockback = v; } - public static void setToreterrorRangedWaterBombChance(double v) { toreterrorRangedWaterBombChance = v; } - public static double toreterrorRangedWaterBombChance() { return toreterrorRangedWaterBombChance; } public static double toreterrorProjectileDamageMultiplier() { return toreterrorProjectileDamageMultiplier; } public static void setToreterrorProjectileDamageMultiplier(double v) { toreterrorProjectileDamageMultiplier = v; } public static double waterBombDamage() { return waterBombDamage; } @@ -2405,8 +2398,6 @@ public final class AntarchySettings { public static void setWaterBombGravity(double v) { waterBombGravity = v; } public static double waterBombKnockback() { return waterBombKnockback; } public static void setWaterBombKnockback(double v) { waterBombKnockback = v; } - public static void setWaterCannonCooldownSeconds(double v) { waterCannonCooldownSeconds = v; } - public static double waterCannonCooldownSeconds() { return waterCannonCooldownSeconds; } public static double creepingHorrorHealth() { return creepingHorrorHealth; } public static void setCreepingHorrorHealth(double v) { creepingHorrorHealth = v; } diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/config/ConfigResetGuard.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/config/ConfigResetGuard.java index c81fd12d..c0ad9ae6 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/config/ConfigResetGuard.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/config/ConfigResetGuard.java @@ -6,7 +6,7 @@ import java.nio.file.Files; import java.nio.file.Path; public final class ConfigResetGuard { - public static final int RESET_GENERATION = 6; + public static final int RESET_GENERATION = 8; private static final String MARKER_FILE_NAME = ".config_generation"; private ConfigResetGuard() { diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/AntarchyObjects.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/AntarchyObjects.java index 46960bf0..65508353 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/AntarchyObjects.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/AntarchyObjects.java @@ -27,8 +27,11 @@ import com.craisinlord.antarchy.content.entity.MolewormEntity; import com.craisinlord.antarchy.content.entity.MantisEntity; import com.craisinlord.antarchy.content.entity.ReverieEntity; import com.craisinlord.antarchy.content.entity.ScorpionEntity; +import com.craisinlord.antarchy.content.entity.lucid.LucidEntity; +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.portal.DimensionalTearEntity; import com.craisinlord.antarchy.content.block.entity.AntNestBlockEntity; import com.craisinlord.antarchy.content.block.entity.DreamCampfireBlockEntity; import com.craisinlord.antarchy.content.block.entity.SeashellBlockEntity; @@ -68,10 +71,16 @@ public final class AntarchyObjects { @SuppressWarnings("unchecked") public static Supplier> OCTOPUS_BOMB = (Supplier>) UNBOUND; @SuppressWarnings("unchecked") + public static Supplier> NIGHTMARE = (Supplier>) UNBOUND; + @SuppressWarnings("unchecked") public static Supplier> NIGHTMARE_PORTAL = (Supplier>) UNBOUND; @SuppressWarnings("unchecked") + public static Supplier> DIMENSIONAL_TEAR = (Supplier>) UNBOUND; + @SuppressWarnings("unchecked") public static Supplier> NIGHTMARE_BITE = (Supplier>) UNBOUND; @SuppressWarnings("unchecked") + public static Supplier> LUCID = (Supplier>) UNBOUND; + @SuppressWarnings("unchecked") public static Supplier> MOLEWORM = (Supplier>) UNBOUND; @SuppressWarnings("unchecked") public static Supplier> MANTIS = (Supplier>) UNBOUND; @@ -581,10 +590,22 @@ public final class AntarchyObjects { NIGHTMARE_PORTAL = supplier; } + public static void setDimensionalTear(Supplier> supplier) { + DIMENSIONAL_TEAR = supplier; + } + + public static void setNightmare(Supplier> supplier) { + NIGHTMARE = supplier; + } + public static void setNightmareBite(Supplier> supplier) { NIGHTMARE_BITE = supplier; } + public static void setLucid(Supplier> supplier) { + LUCID = supplier; + } + public static void setLotus(Supplier supplier) { LOTUS = supplier; } diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/AntarchyTags.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/AntarchyTags.java index 2ad9e7c1..e4aed67a 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/AntarchyTags.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/AntarchyTags.java @@ -77,6 +77,8 @@ public final class AntarchyTags { public static final TagKey> SCORPION_WHIP_BLACKLIST = TagKey.create(Registries.ENTITY_TYPE, id("scorpion_whip_blacklist")); public static final TagKey> TIGER_EYE_DETECTION_IMMUNE = TagKey.create(Registries.ENTITY_TYPE, id("tiger_eye_detection_immune")); public static final TagKey> LUCID_ANCHOR_IMMUNE = TagKey.create(Registries.ENTITY_TYPE, id("lucid_anchor_immune")); + public static final TagKey> DIMENSIONAL_TEAR_COMMON_SPAWNS = TagKey.create(Registries.ENTITY_TYPE, id("dimensional_tear_common_spawns")); + public static final TagKey> DIMENSIONAL_TEAR_RARE_SPAWNS = TagKey.create(Registries.ENTITY_TYPE, id("dimensional_tear_rare_spawns")); private Entities() { } diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/creative/CreativeTabContents.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/creative/CreativeTabContents.java index c57389e5..204bca70 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/creative/CreativeTabContents.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/creative/CreativeTabContents.java @@ -95,6 +95,23 @@ public final class CreativeTabContents { entry("blush_moss_carpet", "building_blocks"), entry("lumen_froglight", "natural_blocks"), entry("roseate_froglight", "natural_blocks"), + entry("nadir_log", "building_blocks"), + entry("nadir_wood", "building_blocks"), + entry("stripped_nadir_log", "building_blocks"), + entry("stripped_nadir_wood", "building_blocks"), + entry("nadir_planks", "building_blocks"), + entry("nadir_stairs", "building_blocks"), + entry("nadir_slab", "building_blocks"), + entry("nadir_fence", "building_blocks"), + entry("nadir_fence_gate", "building_blocks"), + entry("nadir_boat", "building_blocks"), + entry("nadir_chest_boat", "building_blocks"), + entry("nadir_door", "building_blocks"), + entry("nadir_trapdoor", "building_blocks"), + entry("nadir_pressure_plate", "building_blocks"), + entry("nadir_button", "building_blocks"), + entry("nadir_sign", "building_blocks"), + entry("nadir_hanging_sign", "building_blocks"), entry("nyxite", "building_blocks"), entry("nyxite_stairs", "building_blocks"), entry("nyxite_slab", "building_blocks"), @@ -206,6 +223,8 @@ public final class CreativeTabContents { entry("ouranwood_acorn", "natural_blocks"), entry("peach_leaves", "natural_blocks"), entry("peach_sapling", "natural_blocks"), + entry("nadir_veil", "natural_blocks"), + entry("nadir_sapling", "natural_blocks"), entry("duplicator_log", "natural_blocks"), entry("duplicator_sapling", "natural_blocks"), entry("orange_milkweed", "natural_blocks"), diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/basilisk/BasiliskEntity.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/basilisk/BasiliskEntity.java index 9d0e069c..66e5544e 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/basilisk/BasiliskEntity.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/entity/basilisk/BasiliskEntity.java @@ -125,6 +125,7 @@ public class BasiliskEntity extends Monster implements GeoEntity { MobSpawnType spawnReason, BlockPos pos, RandomSource random) { if (spawnReason == MobSpawnType.SPAWN_EGG || spawnReason == MobSpawnType.SPAWNER + || spawnReason == MobSpawnType.TRIAL_SPAWNER || spawnReason == MobSpawnType.COMMAND) { return true; } diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/item/MogglesCaveDetector.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/item/MogglesCaveDetector.java index 4ac281e9..71ba9d85 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/item/MogglesCaveDetector.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/item/MogglesCaveDetector.java @@ -1,5 +1,6 @@ package com.craisinlord.antarchy.content.item; +import com.craisinlord.antarchy.config.AntarchySettings; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.world.entity.player.Player; @@ -23,8 +24,6 @@ public final class MogglesCaveDetector { private static final int SCAN_INTERVAL = 40; /** How far to flood-fill the player's own air pocket before stopping. */ private static final int PLAYER_SPACE_LIMIT = 8; - /** Search radius for the external cave scan. */ - private static final int SCAN_RADIUS = 20; /** Minimum number of air neighbors a candidate block must have (filters tiny cracks). */ private static final int MIN_AIR_NEIGHBORS = 2; @@ -81,7 +80,7 @@ public final class MogglesCaveDetector { // Scan the wider radius for underground air NOT in the player's space. BlockPos nearest = null; double nearestDistSq = Double.MAX_VALUE; - int r = SCAN_RADIUS; + int r = (int) AntarchySettings.mogglesVisionRadius(); for (int dx = -r; dx <= r; dx++) { for (int dy = -r; dy <= r; dy++) { diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/mixins/BlockEntityTypeSignMixin.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/mixins/BlockEntityTypeSignMixin.java index 8943dd41..9a08aa71 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/mixins/BlockEntityTypeSignMixin.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/mixins/BlockEntityTypeSignMixin.java @@ -30,18 +30,28 @@ public abstract class BlockEntityTypeSignMixin { private static Block antarchy$peachHangingSign; @Unique private static Block antarchy$peachWallHangingSign; + @Unique + private static Block antarchy$nadirSign; + @Unique + private static Block antarchy$nadirWallSign; + @Unique + private static Block antarchy$nadirHangingSign; + @Unique + private static Block antarchy$nadirWallHangingSign; @Inject(method = "isValid", at = @At("HEAD"), cancellable = true) private void antarchy$allowOuranwoodSigns(BlockState state, CallbackInfoReturnable cir) { Object self = this; if (self == BlockEntityType.SIGN) { if (state.is(antarchy$sign()) || state.is(antarchy$wallSign()) - || state.is(antarchy$peachSign()) || state.is(antarchy$peachWallSign())) { + || state.is(antarchy$peachSign()) || state.is(antarchy$peachWallSign()) + || state.is(antarchy$nadirSign()) || state.is(antarchy$nadirWallSign())) { cir.setReturnValue(true); } } else if (self == BlockEntityType.HANGING_SIGN) { if (state.is(antarchy$hangingSign()) || state.is(antarchy$wallHangingSign()) - || state.is(antarchy$peachHangingSign()) || state.is(antarchy$peachWallHangingSign())) { + || state.is(antarchy$peachHangingSign()) || state.is(antarchy$peachWallHangingSign()) + || state.is(antarchy$nadirHangingSign()) || state.is(antarchy$nadirWallHangingSign())) { cir.setReturnValue(true); } } @@ -111,6 +121,38 @@ public abstract class BlockEntityTypeSignMixin { return antarchy$peachWallHangingSign; } + @Unique + private static Block antarchy$nadirSign() { + if (antarchy$nadirSign == null) { + antarchy$nadirSign = antarchy$resolve("nadir_sign"); + } + return antarchy$nadirSign; + } + + @Unique + private static Block antarchy$nadirWallSign() { + if (antarchy$nadirWallSign == null) { + antarchy$nadirWallSign = antarchy$resolve("nadir_wall_sign"); + } + return antarchy$nadirWallSign; + } + + @Unique + private static Block antarchy$nadirHangingSign() { + if (antarchy$nadirHangingSign == null) { + antarchy$nadirHangingSign = antarchy$resolve("nadir_hanging_sign"); + } + return antarchy$nadirHangingSign; + } + + @Unique + private static Block antarchy$nadirWallHangingSign() { + if (antarchy$nadirWallHangingSign == null) { + antarchy$nadirWallHangingSign = antarchy$resolve("nadir_wall_hanging_sign"); + } + return antarchy$nadirWallHangingSign; + } + @Unique private static Block antarchy$resolve(String path) { return BuiltInRegistries.BLOCK.get(ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, path)); diff --git a/common-1.21.1/src/main/resources/assets/antarchy/lang/en_us.json b/common-1.21.1/src/main/resources/assets/antarchy/lang/en_us.json index c6091973..63a22167 100644 --- a/common-1.21.1/src/main/resources/assets/antarchy/lang/en_us.json +++ b/common-1.21.1/src/main/resources/assets/antarchy/lang/en_us.json @@ -37,6 +37,23 @@ "block.antarchy.peach_sapling": "Peach Sapling", "block.antarchy.peach_sign": "Peach Sign", "block.antarchy.peach_hanging_sign": "Peach Hanging Sign", + "block.antarchy.nadir_log": "Nadir Log", + "block.antarchy.nadir_wood": "Nadir Wood", + "block.antarchy.stripped_nadir_log": "Stripped Nadir Log", + "block.antarchy.stripped_nadir_wood": "Stripped Nadir Wood", + "block.antarchy.nadir_planks": "Nadir Planks", + "block.antarchy.nadir_stairs": "Nadir Stairs", + "block.antarchy.nadir_slab": "Nadir Slab", + "block.antarchy.nadir_fence": "Nadir Fence", + "block.antarchy.nadir_fence_gate": "Nadir Fence Gate", + "block.antarchy.nadir_door": "Nadir Door", + "block.antarchy.nadir_trapdoor": "Nadir Trapdoor", + "block.antarchy.nadir_pressure_plate": "Nadir Pressure Plate", + "block.antarchy.nadir_button": "Nadir Button", + "block.antarchy.nadir_veil": "Nadir Veil", + "block.antarchy.nadir_sapling": "Nadir Sapling", + "block.antarchy.nadir_sign": "Nadir Sign", + "block.antarchy.nadir_hanging_sign": "Nadir Hanging Sign", "block.antarchy.orange_milkweed": "Orange Milkweed", "block.antarchy.pink_milkweed": "Pink Milkweed", "block.antarchy.camellia": "Camellia", @@ -347,6 +364,12 @@ "item.antarchy.peach_hanging_sign": "Peach Hanging Sign", "item.antarchy.peach_boat": "Peach Boat", "item.antarchy.peach_chest_boat": "Peach Chest Boat", + "item.antarchy.nadir_sign": "Nadir Sign", + "item.antarchy.nadir_hanging_sign": "Nadir Hanging Sign", + "item.antarchy.nadir_boat": "Nadir Boat", + "item.antarchy.nadir_chest_boat": "Nadir Chest Boat", + "entity.antarchy.nadir_boat": "Nadir Boat", + "entity.antarchy.nadir_chest_boat": "Nadir Chest Boat", "item.antarchy.orange_milkweed": "Orange Milkweed", "item.antarchy.pink_milkweed": "Pink Milkweed", "item.antarchy.camellia": "Camellia", diff --git a/common-1.21.1/src/main/resources/data/antarchy/structure/basilisk_lair/basilisk_lair.nbt b/common-1.21.1/src/main/resources/data/antarchy/structure/basilisk_lair/basilisk_lair.nbt index f13ecd9e6e906047e3c9457076bc6d66ed13117a..b0c247a3004734851af19f4253db5fd8a9a0fb33 100644 GIT binary patch literal 421207 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°YpKp1i~G*IlU9M;D*LR0$u$#U(BYK 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ⅇCK& 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 KhheCd(EkIlra4dm literal 437990 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 diff --git a/common-1.21.1/src/main/resources/data/antarchy/worldgen/biome/dream_dunes.json b/common-1.21.1/src/main/resources/data/antarchy/worldgen/biome/dream_dunes.json index 740b99ee..0a9ccc5f 100644 --- a/common-1.21.1/src/main/resources/data/antarchy/worldgen/biome/dream_dunes.json +++ b/common-1.21.1/src/main/resources/data/antarchy/worldgen/biome/dream_dunes.json @@ -48,7 +48,8 @@ [], [], [ - "antarchy:bluestone_ore" + "antarchy:bluestone_ore", + "antarchy:dimensional_tears" ], [], [ diff --git a/common-1.21.1/src/main/resources/data/antarchy/worldgen/biome/lucid_pools.json b/common-1.21.1/src/main/resources/data/antarchy/worldgen/biome/lucid_pools.json index c4640032..e217c9e8 100644 --- a/common-1.21.1/src/main/resources/data/antarchy/worldgen/biome/lucid_pools.json +++ b/common-1.21.1/src/main/resources/data/antarchy/worldgen/biome/lucid_pools.json @@ -51,7 +51,8 @@ [ "antarchy:lucid_blood_crystal_spires", "antarchy:lucid_medium_blood_crystal_spires", - "antarchy:lucid_large_blood_crystal_spires" + "antarchy:lucid_large_blood_crystal_spires", + "antarchy:dimensional_tears" ], [], [ @@ -76,7 +77,7 @@ "monster": [ { "type": "antarchy:lucid", - "weight": 3, + "weight": 1, "minCount": 1, "maxCount": 1 } diff --git a/common-1.21.1/src/main/resources/data/antarchy/worldgen/biome/nightmare_wastes.json b/common-1.21.1/src/main/resources/data/antarchy/worldgen/biome/nightmare_wastes.json index e835ccf8..16d3f49f 100644 --- a/common-1.21.1/src/main/resources/data/antarchy/worldgen/biome/nightmare_wastes.json +++ b/common-1.21.1/src/main/resources/data/antarchy/worldgen/biome/nightmare_wastes.json @@ -52,7 +52,8 @@ "antarchy:thoraxis_floor_rib_columns", "antarchy:thoraxis_roof_rib_columns", "antarchy:thoraxis_floor_spikes", - "antarchy:thoraxis_roof_spikes" + "antarchy:thoraxis_roof_spikes", + "antarchy:dimensional_tears" ], [], [], @@ -76,7 +77,7 @@ "monster": [ { "type": "antarchy:nightmare", - "weight": 6, + "weight": 1, "minCount": 1, "maxCount": 1 } diff --git a/common-1.21.1/src/main/resources/data/minecraft/tags/block/all_hanging_signs.json b/common-1.21.1/src/main/resources/data/minecraft/tags/block/all_hanging_signs.json index 7e4be6b5..1aa3938b 100644 --- a/common-1.21.1/src/main/resources/data/minecraft/tags/block/all_hanging_signs.json +++ b/common-1.21.1/src/main/resources/data/minecraft/tags/block/all_hanging_signs.json @@ -1,9 +1,11 @@ { - "replace": false, - "values": [ - "antarchy:ouranwood_hanging_sign", - "antarchy:ouranwood_wall_hanging_sign", - "antarchy:peach_hanging_sign", - "antarchy:peach_wall_hanging_sign" - ] + "replace": false, + "values": [ + "antarchy:ouranwood_hanging_sign", + "antarchy:ouranwood_wall_hanging_sign", + "antarchy:peach_hanging_sign", + "antarchy:peach_wall_hanging_sign", + "antarchy:nadir_hanging_sign", + "antarchy:nadir_wall_hanging_sign" + ] } diff --git a/common-1.21.1/src/main/resources/data/minecraft/tags/block/ceiling_hanging_signs.json b/common-1.21.1/src/main/resources/data/minecraft/tags/block/ceiling_hanging_signs.json index 746c5071..756c631b 100644 --- a/common-1.21.1/src/main/resources/data/minecraft/tags/block/ceiling_hanging_signs.json +++ b/common-1.21.1/src/main/resources/data/minecraft/tags/block/ceiling_hanging_signs.json @@ -1,7 +1,8 @@ { - "replace": false, - "values": [ - "antarchy:ouranwood_hanging_sign", - "antarchy:peach_hanging_sign" - ] + "replace": false, + "values": [ + "antarchy:ouranwood_hanging_sign", + "antarchy:peach_hanging_sign", + "antarchy:nadir_hanging_sign" + ] } diff --git a/common-1.21.1/src/main/resources/data/minecraft/tags/block/doors.json b/common-1.21.1/src/main/resources/data/minecraft/tags/block/doors.json index e6ac4fd5..b060f1cd 100644 --- a/common-1.21.1/src/main/resources/data/minecraft/tags/block/doors.json +++ b/common-1.21.1/src/main/resources/data/minecraft/tags/block/doors.json @@ -1,7 +1,8 @@ { - "replace": false, - "values": [ - "antarchy:uranium_door", - "antarchy:titanium_door" - ] + "replace": false, + "values": [ + "antarchy:uranium_door", + "antarchy:titanium_door", + "antarchy:nadir_door" + ] } diff --git a/common-1.21.1/src/main/resources/data/minecraft/tags/block/fence_gates.json b/common-1.21.1/src/main/resources/data/minecraft/tags/block/fence_gates.json index 738ac5c8..340319a1 100644 --- a/common-1.21.1/src/main/resources/data/minecraft/tags/block/fence_gates.json +++ b/common-1.21.1/src/main/resources/data/minecraft/tags/block/fence_gates.json @@ -1,7 +1,8 @@ { - "replace": false, - "values": [ - "antarchy:ouranwood_fence_gate", - "antarchy:peach_fence_gate" - ] + "replace": false, + "values": [ + "antarchy:ouranwood_fence_gate", + "antarchy:peach_fence_gate", + "antarchy:nadir_fence_gate" + ] } diff --git a/common-1.21.1/src/main/resources/data/minecraft/tags/block/leaves.json b/common-1.21.1/src/main/resources/data/minecraft/tags/block/leaves.json index aee0c428..9c8be388 100644 --- a/common-1.21.1/src/main/resources/data/minecraft/tags/block/leaves.json +++ b/common-1.21.1/src/main/resources/data/minecraft/tags/block/leaves.json @@ -1,7 +1,7 @@ { - "replace": false, - "values": [ - "antarchy:ouranwood_leaves", - "antarchy:peach_leaves" - ] + "replace": false, + "values": [ + "antarchy:ouranwood_leaves", + "antarchy:peach_leaves" + ] } diff --git a/common-1.21.1/src/main/resources/data/minecraft/tags/block/logs.json b/common-1.21.1/src/main/resources/data/minecraft/tags/block/logs.json index 5fc273ea..549e0617 100644 --- a/common-1.21.1/src/main/resources/data/minecraft/tags/block/logs.json +++ b/common-1.21.1/src/main/resources/data/minecraft/tags/block/logs.json @@ -1,16 +1,20 @@ { - "replace": false, - "values": [ - "antarchy:ouranwood_log", - "antarchy:ouranwood_wood", - "antarchy:duplicator_log", - "antarchy:mossy_ouranwood_log", - "antarchy:mossy_ouranwood_wood", - "antarchy:stripped_ouranwood_log", - "antarchy:stripped_ouranwood_wood", - "antarchy:peach_log", - "antarchy:peach_wood", - "antarchy:stripped_peach_log", - "antarchy:stripped_peach_wood" - ] + "replace": false, + "values": [ + "antarchy:ouranwood_log", + "antarchy:ouranwood_wood", + "antarchy:duplicator_log", + "antarchy:mossy_ouranwood_log", + "antarchy:mossy_ouranwood_wood", + "antarchy:stripped_ouranwood_log", + "antarchy:stripped_ouranwood_wood", + "antarchy:peach_log", + "antarchy:peach_wood", + "antarchy:stripped_peach_log", + "antarchy:stripped_peach_wood", + "antarchy:nadir_log", + "antarchy:nadir_wood", + "antarchy:stripped_nadir_log", + "antarchy:stripped_nadir_wood" + ] } diff --git a/common-1.21.1/src/main/resources/data/minecraft/tags/block/logs_that_burn.json b/common-1.21.1/src/main/resources/data/minecraft/tags/block/logs_that_burn.json index 5fc273ea..549e0617 100644 --- a/common-1.21.1/src/main/resources/data/minecraft/tags/block/logs_that_burn.json +++ b/common-1.21.1/src/main/resources/data/minecraft/tags/block/logs_that_burn.json @@ -1,16 +1,20 @@ { - "replace": false, - "values": [ - "antarchy:ouranwood_log", - "antarchy:ouranwood_wood", - "antarchy:duplicator_log", - "antarchy:mossy_ouranwood_log", - "antarchy:mossy_ouranwood_wood", - "antarchy:stripped_ouranwood_log", - "antarchy:stripped_ouranwood_wood", - "antarchy:peach_log", - "antarchy:peach_wood", - "antarchy:stripped_peach_log", - "antarchy:stripped_peach_wood" - ] + "replace": false, + "values": [ + "antarchy:ouranwood_log", + "antarchy:ouranwood_wood", + "antarchy:duplicator_log", + "antarchy:mossy_ouranwood_log", + "antarchy:mossy_ouranwood_wood", + "antarchy:stripped_ouranwood_log", + "antarchy:stripped_ouranwood_wood", + "antarchy:peach_log", + "antarchy:peach_wood", + "antarchy:stripped_peach_log", + "antarchy:stripped_peach_wood", + "antarchy:nadir_log", + "antarchy:nadir_wood", + "antarchy:stripped_nadir_log", + "antarchy:stripped_nadir_wood" + ] } diff --git a/common-1.21.1/src/main/resources/data/minecraft/tags/block/mineable/axe.json b/common-1.21.1/src/main/resources/data/minecraft/tags/block/mineable/axe.json index c87836aa..01045829 100644 --- a/common-1.21.1/src/main/resources/data/minecraft/tags/block/mineable/axe.json +++ b/common-1.21.1/src/main/resources/data/minecraft/tags/block/mineable/axe.json @@ -1,44 +1,61 @@ { - "replace": false, - "values": [ - "antarchy:duplicator_log", - "antarchy:ouranwood_log", - "antarchy:ouranwood_wood", - "antarchy:mossy_ouranwood_log", - "antarchy:mossy_ouranwood_wood", - "antarchy:stripped_ouranwood_log", - "antarchy:stripped_ouranwood_wood", - "antarchy:ouranwood_planks", - "antarchy:ouranwood_stairs", - "antarchy:ouranwood_slab", - "antarchy:ouranwood_fence", - "antarchy:ouranwood_fence_gate", - "antarchy:ouranwood_door", - "antarchy:ouranwood_trapdoor", - "antarchy:ouranwood_pressure_plate", - "antarchy:ouranwood_button", - "antarchy:ouranwood_sign", - "antarchy:ouranwood_wall_sign", - "antarchy:ouranwood_hanging_sign", - "antarchy:ouranwood_wall_hanging_sign", - "antarchy:peach_log", - "antarchy:peach_wood", - "antarchy:stripped_peach_log", - "antarchy:stripped_peach_wood", - "antarchy:peach_planks", - "antarchy:peach_stairs", - "antarchy:peach_slab", - "antarchy:peach_fence", - "antarchy:peach_fence_gate", - "antarchy:peach_door", - "antarchy:peach_trapdoor", - "antarchy:peach_pressure_plate", - "antarchy:peach_button", - "antarchy:peach_sign", - "antarchy:peach_wall_sign", - "antarchy:peach_hanging_sign", - "antarchy:peach_wall_hanging_sign", - "antarchy:dream_campfire", - "antarchy:glowcap_mushroom_block" - ] + "replace": false, + "values": [ + "antarchy:duplicator_log", + "antarchy:ouranwood_log", + "antarchy:ouranwood_wood", + "antarchy:mossy_ouranwood_log", + "antarchy:mossy_ouranwood_wood", + "antarchy:stripped_ouranwood_log", + "antarchy:stripped_ouranwood_wood", + "antarchy:ouranwood_planks", + "antarchy:ouranwood_stairs", + "antarchy:ouranwood_slab", + "antarchy:ouranwood_fence", + "antarchy:ouranwood_fence_gate", + "antarchy:ouranwood_door", + "antarchy:ouranwood_trapdoor", + "antarchy:ouranwood_pressure_plate", + "antarchy:ouranwood_button", + "antarchy:ouranwood_sign", + "antarchy:ouranwood_wall_sign", + "antarchy:ouranwood_hanging_sign", + "antarchy:ouranwood_wall_hanging_sign", + "antarchy:peach_log", + "antarchy:peach_wood", + "antarchy:stripped_peach_log", + "antarchy:stripped_peach_wood", + "antarchy:peach_planks", + "antarchy:peach_stairs", + "antarchy:peach_slab", + "antarchy:peach_fence", + "antarchy:peach_fence_gate", + "antarchy:peach_door", + "antarchy:peach_trapdoor", + "antarchy:peach_pressure_plate", + "antarchy:peach_button", + "antarchy:peach_sign", + "antarchy:peach_wall_sign", + "antarchy:peach_hanging_sign", + "antarchy:peach_wall_hanging_sign", + "antarchy:dream_campfire", + "antarchy:glowcap_mushroom_block", + "antarchy:nadir_log", + "antarchy:nadir_wood", + "antarchy:stripped_nadir_log", + "antarchy:stripped_nadir_wood", + "antarchy:nadir_planks", + "antarchy:nadir_stairs", + "antarchy:nadir_slab", + "antarchy:nadir_fence", + "antarchy:nadir_fence_gate", + "antarchy:nadir_door", + "antarchy:nadir_trapdoor", + "antarchy:nadir_pressure_plate", + "antarchy:nadir_button", + "antarchy:nadir_sign", + "antarchy:nadir_wall_sign", + "antarchy:nadir_hanging_sign", + "antarchy:nadir_wall_hanging_sign" + ] } diff --git a/common-1.21.1/src/main/resources/data/minecraft/tags/block/planks.json b/common-1.21.1/src/main/resources/data/minecraft/tags/block/planks.json index d98bff17..beb77914 100644 --- a/common-1.21.1/src/main/resources/data/minecraft/tags/block/planks.json +++ b/common-1.21.1/src/main/resources/data/minecraft/tags/block/planks.json @@ -1,7 +1,8 @@ { - "replace": false, - "values": [ - "antarchy:ouranwood_planks", - "antarchy:peach_planks" - ] + "replace": false, + "values": [ + "antarchy:ouranwood_planks", + "antarchy:peach_planks", + "antarchy:nadir_planks" + ] } diff --git a/common-1.21.1/src/main/resources/data/minecraft/tags/block/saplings.json b/common-1.21.1/src/main/resources/data/minecraft/tags/block/saplings.json index 5a06a14d..548aa47f 100644 --- a/common-1.21.1/src/main/resources/data/minecraft/tags/block/saplings.json +++ b/common-1.21.1/src/main/resources/data/minecraft/tags/block/saplings.json @@ -1,7 +1,8 @@ { - "replace": false, - "values": [ - "antarchy:ouranwood_acorn", - "antarchy:peach_sapling" - ] + "replace": false, + "values": [ + "antarchy:ouranwood_acorn", + "antarchy:peach_sapling", + "antarchy:nadir_sapling" + ] } diff --git a/common-1.21.1/src/main/resources/data/minecraft/tags/block/standing_signs.json b/common-1.21.1/src/main/resources/data/minecraft/tags/block/standing_signs.json index 6ec9e2a8..67704453 100644 --- a/common-1.21.1/src/main/resources/data/minecraft/tags/block/standing_signs.json +++ b/common-1.21.1/src/main/resources/data/minecraft/tags/block/standing_signs.json @@ -1,7 +1,8 @@ { - "replace": false, - "values": [ - "antarchy:ouranwood_sign", - "antarchy:peach_sign" - ] + "replace": false, + "values": [ + "antarchy:ouranwood_sign", + "antarchy:peach_sign", + "antarchy:nadir_sign" + ] } diff --git a/common-1.21.1/src/main/resources/data/minecraft/tags/block/trapdoors.json b/common-1.21.1/src/main/resources/data/minecraft/tags/block/trapdoors.json index 174efdac..fe128a6b 100644 --- a/common-1.21.1/src/main/resources/data/minecraft/tags/block/trapdoors.json +++ b/common-1.21.1/src/main/resources/data/minecraft/tags/block/trapdoors.json @@ -1,7 +1,8 @@ { - "replace": false, - "values": [ - "antarchy:uranium_trapdoor", - "antarchy:titanium_trapdoor" - ] + "replace": false, + "values": [ + "antarchy:uranium_trapdoor", + "antarchy:titanium_trapdoor", + "antarchy:nadir_trapdoor" + ] } diff --git a/common-1.21.1/src/main/resources/data/minecraft/tags/block/wall_hanging_signs.json b/common-1.21.1/src/main/resources/data/minecraft/tags/block/wall_hanging_signs.json index 3472b17e..f99f806d 100644 --- a/common-1.21.1/src/main/resources/data/minecraft/tags/block/wall_hanging_signs.json +++ b/common-1.21.1/src/main/resources/data/minecraft/tags/block/wall_hanging_signs.json @@ -1,7 +1,8 @@ { - "replace": false, - "values": [ - "antarchy:ouranwood_wall_hanging_sign", - "antarchy:peach_wall_hanging_sign" - ] + "replace": false, + "values": [ + "antarchy:ouranwood_wall_hanging_sign", + "antarchy:peach_wall_hanging_sign", + "antarchy:nadir_wall_hanging_sign" + ] } diff --git a/common-1.21.1/src/main/resources/data/minecraft/tags/block/wall_signs.json b/common-1.21.1/src/main/resources/data/minecraft/tags/block/wall_signs.json index 406407ee..98760663 100644 --- a/common-1.21.1/src/main/resources/data/minecraft/tags/block/wall_signs.json +++ b/common-1.21.1/src/main/resources/data/minecraft/tags/block/wall_signs.json @@ -1,7 +1,8 @@ { - "replace": false, - "values": [ - "antarchy:ouranwood_wall_sign", - "antarchy:peach_wall_sign" - ] + "replace": false, + "values": [ + "antarchy:ouranwood_wall_sign", + "antarchy:peach_wall_sign", + "antarchy:nadir_wall_sign" + ] } diff --git a/common-1.21.1/src/main/resources/data/minecraft/tags/block/wooden_buttons.json b/common-1.21.1/src/main/resources/data/minecraft/tags/block/wooden_buttons.json index 1d626cef..adac6b61 100644 --- a/common-1.21.1/src/main/resources/data/minecraft/tags/block/wooden_buttons.json +++ b/common-1.21.1/src/main/resources/data/minecraft/tags/block/wooden_buttons.json @@ -1,7 +1,8 @@ { - "replace": false, - "values": [ - "antarchy:ouranwood_button", - "antarchy:peach_button" - ] + "replace": false, + "values": [ + "antarchy:ouranwood_button", + "antarchy:peach_button", + "antarchy:nadir_button" + ] } diff --git a/common-1.21.1/src/main/resources/data/minecraft/tags/block/wooden_doors.json b/common-1.21.1/src/main/resources/data/minecraft/tags/block/wooden_doors.json index e4ebd50e..a97b4d54 100644 --- a/common-1.21.1/src/main/resources/data/minecraft/tags/block/wooden_doors.json +++ b/common-1.21.1/src/main/resources/data/minecraft/tags/block/wooden_doors.json @@ -1,7 +1,8 @@ { - "replace": false, - "values": [ - "antarchy:ouranwood_door", - "antarchy:peach_door" - ] + "replace": false, + "values": [ + "antarchy:ouranwood_door", + "antarchy:peach_door", + "antarchy:nadir_door" + ] } diff --git a/common-1.21.1/src/main/resources/data/minecraft/tags/block/wooden_fences.json b/common-1.21.1/src/main/resources/data/minecraft/tags/block/wooden_fences.json index f1b5eb5a..17d8174a 100644 --- a/common-1.21.1/src/main/resources/data/minecraft/tags/block/wooden_fences.json +++ b/common-1.21.1/src/main/resources/data/minecraft/tags/block/wooden_fences.json @@ -1,7 +1,8 @@ { - "replace": false, - "values": [ - "antarchy:ouranwood_fence", - "antarchy:peach_fence" - ] + "replace": false, + "values": [ + "antarchy:ouranwood_fence", + "antarchy:peach_fence", + "antarchy:nadir_fence" + ] } diff --git a/common-1.21.1/src/main/resources/data/minecraft/tags/block/wooden_pressure_plates.json b/common-1.21.1/src/main/resources/data/minecraft/tags/block/wooden_pressure_plates.json index 7f3d5149..ff567df3 100644 --- a/common-1.21.1/src/main/resources/data/minecraft/tags/block/wooden_pressure_plates.json +++ b/common-1.21.1/src/main/resources/data/minecraft/tags/block/wooden_pressure_plates.json @@ -1,7 +1,8 @@ { - "replace": false, - "values": [ - "antarchy:ouranwood_pressure_plate", - "antarchy:peach_pressure_plate" - ] + "replace": false, + "values": [ + "antarchy:ouranwood_pressure_plate", + "antarchy:peach_pressure_plate", + "antarchy:nadir_pressure_plate" + ] } diff --git a/common-1.21.1/src/main/resources/data/minecraft/tags/block/wooden_slabs.json b/common-1.21.1/src/main/resources/data/minecraft/tags/block/wooden_slabs.json index 9b0b8371..5b700b68 100644 --- a/common-1.21.1/src/main/resources/data/minecraft/tags/block/wooden_slabs.json +++ b/common-1.21.1/src/main/resources/data/minecraft/tags/block/wooden_slabs.json @@ -1,7 +1,8 @@ { - "replace": false, - "values": [ - "antarchy:ouranwood_slab", - "antarchy:peach_slab" - ] + "replace": false, + "values": [ + "antarchy:ouranwood_slab", + "antarchy:peach_slab", + "antarchy:nadir_slab" + ] } diff --git a/common-1.21.1/src/main/resources/data/minecraft/tags/block/wooden_stairs.json b/common-1.21.1/src/main/resources/data/minecraft/tags/block/wooden_stairs.json index 5d419448..7af32ee4 100644 --- a/common-1.21.1/src/main/resources/data/minecraft/tags/block/wooden_stairs.json +++ b/common-1.21.1/src/main/resources/data/minecraft/tags/block/wooden_stairs.json @@ -1,7 +1,8 @@ { - "replace": false, - "values": [ - "antarchy:ouranwood_stairs", - "antarchy:peach_stairs" - ] + "replace": false, + "values": [ + "antarchy:ouranwood_stairs", + "antarchy:peach_stairs", + "antarchy:nadir_stairs" + ] } diff --git a/common-1.21.1/src/main/resources/data/minecraft/tags/block/wooden_trapdoors.json b/common-1.21.1/src/main/resources/data/minecraft/tags/block/wooden_trapdoors.json index df34c0e6..85da6c5a 100644 --- a/common-1.21.1/src/main/resources/data/minecraft/tags/block/wooden_trapdoors.json +++ b/common-1.21.1/src/main/resources/data/minecraft/tags/block/wooden_trapdoors.json @@ -1,7 +1,8 @@ { - "replace": false, - "values": [ - "antarchy:ouranwood_trapdoor", - "antarchy:peach_trapdoor" - ] + "replace": false, + "values": [ + "antarchy:ouranwood_trapdoor", + "antarchy:peach_trapdoor", + "antarchy:nadir_trapdoor" + ] } diff --git a/common-1.21.1/src/main/resources/data/minecraft/tags/item/boats.json b/common-1.21.1/src/main/resources/data/minecraft/tags/item/boats.json index fd04ca71..b5846802 100644 --- a/common-1.21.1/src/main/resources/data/minecraft/tags/item/boats.json +++ b/common-1.21.1/src/main/resources/data/minecraft/tags/item/boats.json @@ -1,8 +1,9 @@ { - "replace": false, - "values": [ - "antarchy:ouranwood_boat", - "antarchy:ouranwood_chest_boat", - "antarchy:peach_boat" - ] + "replace": false, + "values": [ + "antarchy:ouranwood_boat", + "antarchy:ouranwood_chest_boat", + "antarchy:peach_boat", + "antarchy:nadir_boat" + ] } diff --git a/common-1.21.1/src/main/resources/data/minecraft/tags/item/chest_boats.json b/common-1.21.1/src/main/resources/data/minecraft/tags/item/chest_boats.json index 47f46f23..8344e540 100644 --- a/common-1.21.1/src/main/resources/data/minecraft/tags/item/chest_boats.json +++ b/common-1.21.1/src/main/resources/data/minecraft/tags/item/chest_boats.json @@ -1,7 +1,8 @@ { - "replace": false, - "values": [ - "antarchy:ouranwood_chest_boat", - "antarchy:peach_chest_boat" - ] + "replace": false, + "values": [ + "antarchy:ouranwood_chest_boat", + "antarchy:peach_chest_boat", + "antarchy:nadir_chest_boat" + ] } diff --git a/common-1.21.1/src/main/resources/data/minecraft/tags/item/doors.json b/common-1.21.1/src/main/resources/data/minecraft/tags/item/doors.json index e6ac4fd5..b060f1cd 100644 --- a/common-1.21.1/src/main/resources/data/minecraft/tags/item/doors.json +++ b/common-1.21.1/src/main/resources/data/minecraft/tags/item/doors.json @@ -1,7 +1,8 @@ { - "replace": false, - "values": [ - "antarchy:uranium_door", - "antarchy:titanium_door" - ] + "replace": false, + "values": [ + "antarchy:uranium_door", + "antarchy:titanium_door", + "antarchy:nadir_door" + ] } diff --git a/common-1.21.1/src/main/resources/data/minecraft/tags/item/fence_gates.json b/common-1.21.1/src/main/resources/data/minecraft/tags/item/fence_gates.json index 738ac5c8..340319a1 100644 --- a/common-1.21.1/src/main/resources/data/minecraft/tags/item/fence_gates.json +++ b/common-1.21.1/src/main/resources/data/minecraft/tags/item/fence_gates.json @@ -1,7 +1,8 @@ { - "replace": false, - "values": [ - "antarchy:ouranwood_fence_gate", - "antarchy:peach_fence_gate" - ] + "replace": false, + "values": [ + "antarchy:ouranwood_fence_gate", + "antarchy:peach_fence_gate", + "antarchy:nadir_fence_gate" + ] } diff --git a/common-1.21.1/src/main/resources/data/minecraft/tags/item/hanging_signs.json b/common-1.21.1/src/main/resources/data/minecraft/tags/item/hanging_signs.json index 746c5071..756c631b 100644 --- a/common-1.21.1/src/main/resources/data/minecraft/tags/item/hanging_signs.json +++ b/common-1.21.1/src/main/resources/data/minecraft/tags/item/hanging_signs.json @@ -1,7 +1,8 @@ { - "replace": false, - "values": [ - "antarchy:ouranwood_hanging_sign", - "antarchy:peach_hanging_sign" - ] + "replace": false, + "values": [ + "antarchy:ouranwood_hanging_sign", + "antarchy:peach_hanging_sign", + "antarchy:nadir_hanging_sign" + ] } diff --git a/common-1.21.1/src/main/resources/data/minecraft/tags/item/logs.json b/common-1.21.1/src/main/resources/data/minecraft/tags/item/logs.json index 5fc273ea..549e0617 100644 --- a/common-1.21.1/src/main/resources/data/minecraft/tags/item/logs.json +++ b/common-1.21.1/src/main/resources/data/minecraft/tags/item/logs.json @@ -1,16 +1,20 @@ { - "replace": false, - "values": [ - "antarchy:ouranwood_log", - "antarchy:ouranwood_wood", - "antarchy:duplicator_log", - "antarchy:mossy_ouranwood_log", - "antarchy:mossy_ouranwood_wood", - "antarchy:stripped_ouranwood_log", - "antarchy:stripped_ouranwood_wood", - "antarchy:peach_log", - "antarchy:peach_wood", - "antarchy:stripped_peach_log", - "antarchy:stripped_peach_wood" - ] + "replace": false, + "values": [ + "antarchy:ouranwood_log", + "antarchy:ouranwood_wood", + "antarchy:duplicator_log", + "antarchy:mossy_ouranwood_log", + "antarchy:mossy_ouranwood_wood", + "antarchy:stripped_ouranwood_log", + "antarchy:stripped_ouranwood_wood", + "antarchy:peach_log", + "antarchy:peach_wood", + "antarchy:stripped_peach_log", + "antarchy:stripped_peach_wood", + "antarchy:nadir_log", + "antarchy:nadir_wood", + "antarchy:stripped_nadir_log", + "antarchy:stripped_nadir_wood" + ] } diff --git a/common-1.21.1/src/main/resources/data/minecraft/tags/item/logs_that_burn.json b/common-1.21.1/src/main/resources/data/minecraft/tags/item/logs_that_burn.json index 5fc273ea..549e0617 100644 --- a/common-1.21.1/src/main/resources/data/minecraft/tags/item/logs_that_burn.json +++ b/common-1.21.1/src/main/resources/data/minecraft/tags/item/logs_that_burn.json @@ -1,16 +1,20 @@ { - "replace": false, - "values": [ - "antarchy:ouranwood_log", - "antarchy:ouranwood_wood", - "antarchy:duplicator_log", - "antarchy:mossy_ouranwood_log", - "antarchy:mossy_ouranwood_wood", - "antarchy:stripped_ouranwood_log", - "antarchy:stripped_ouranwood_wood", - "antarchy:peach_log", - "antarchy:peach_wood", - "antarchy:stripped_peach_log", - "antarchy:stripped_peach_wood" - ] + "replace": false, + "values": [ + "antarchy:ouranwood_log", + "antarchy:ouranwood_wood", + "antarchy:duplicator_log", + "antarchy:mossy_ouranwood_log", + "antarchy:mossy_ouranwood_wood", + "antarchy:stripped_ouranwood_log", + "antarchy:stripped_ouranwood_wood", + "antarchy:peach_log", + "antarchy:peach_wood", + "antarchy:stripped_peach_log", + "antarchy:stripped_peach_wood", + "antarchy:nadir_log", + "antarchy:nadir_wood", + "antarchy:stripped_nadir_log", + "antarchy:stripped_nadir_wood" + ] } diff --git a/common-1.21.1/src/main/resources/data/minecraft/tags/item/planks.json b/common-1.21.1/src/main/resources/data/minecraft/tags/item/planks.json index d98bff17..beb77914 100644 --- a/common-1.21.1/src/main/resources/data/minecraft/tags/item/planks.json +++ b/common-1.21.1/src/main/resources/data/minecraft/tags/item/planks.json @@ -1,7 +1,8 @@ { - "replace": false, - "values": [ - "antarchy:ouranwood_planks", - "antarchy:peach_planks" - ] + "replace": false, + "values": [ + "antarchy:ouranwood_planks", + "antarchy:peach_planks", + "antarchy:nadir_planks" + ] } diff --git a/common-1.21.1/src/main/resources/data/minecraft/tags/item/saplings.json b/common-1.21.1/src/main/resources/data/minecraft/tags/item/saplings.json index 5a06a14d..548aa47f 100644 --- a/common-1.21.1/src/main/resources/data/minecraft/tags/item/saplings.json +++ b/common-1.21.1/src/main/resources/data/minecraft/tags/item/saplings.json @@ -1,7 +1,8 @@ { - "replace": false, - "values": [ - "antarchy:ouranwood_acorn", - "antarchy:peach_sapling" - ] + "replace": false, + "values": [ + "antarchy:ouranwood_acorn", + "antarchy:peach_sapling", + "antarchy:nadir_sapling" + ] } diff --git a/common-1.21.1/src/main/resources/data/minecraft/tags/item/signs.json b/common-1.21.1/src/main/resources/data/minecraft/tags/item/signs.json index 6ec9e2a8..67704453 100644 --- a/common-1.21.1/src/main/resources/data/minecraft/tags/item/signs.json +++ b/common-1.21.1/src/main/resources/data/minecraft/tags/item/signs.json @@ -1,7 +1,8 @@ { - "replace": false, - "values": [ - "antarchy:ouranwood_sign", - "antarchy:peach_sign" - ] + "replace": false, + "values": [ + "antarchy:ouranwood_sign", + "antarchy:peach_sign", + "antarchy:nadir_sign" + ] } diff --git a/common-1.21.1/src/main/resources/data/minecraft/tags/item/trapdoors.json b/common-1.21.1/src/main/resources/data/minecraft/tags/item/trapdoors.json index 174efdac..fe128a6b 100644 --- a/common-1.21.1/src/main/resources/data/minecraft/tags/item/trapdoors.json +++ b/common-1.21.1/src/main/resources/data/minecraft/tags/item/trapdoors.json @@ -1,7 +1,8 @@ { - "replace": false, - "values": [ - "antarchy:uranium_trapdoor", - "antarchy:titanium_trapdoor" - ] + "replace": false, + "values": [ + "antarchy:uranium_trapdoor", + "antarchy:titanium_trapdoor", + "antarchy:nadir_trapdoor" + ] } diff --git a/common-1.21.1/src/main/resources/data/minecraft/tags/item/wooden_buttons.json b/common-1.21.1/src/main/resources/data/minecraft/tags/item/wooden_buttons.json index 1d626cef..adac6b61 100644 --- a/common-1.21.1/src/main/resources/data/minecraft/tags/item/wooden_buttons.json +++ b/common-1.21.1/src/main/resources/data/minecraft/tags/item/wooden_buttons.json @@ -1,7 +1,8 @@ { - "replace": false, - "values": [ - "antarchy:ouranwood_button", - "antarchy:peach_button" - ] + "replace": false, + "values": [ + "antarchy:ouranwood_button", + "antarchy:peach_button", + "antarchy:nadir_button" + ] } diff --git a/common-1.21.1/src/main/resources/data/minecraft/tags/item/wooden_doors.json b/common-1.21.1/src/main/resources/data/minecraft/tags/item/wooden_doors.json index e4ebd50e..a97b4d54 100644 --- a/common-1.21.1/src/main/resources/data/minecraft/tags/item/wooden_doors.json +++ b/common-1.21.1/src/main/resources/data/minecraft/tags/item/wooden_doors.json @@ -1,7 +1,8 @@ { - "replace": false, - "values": [ - "antarchy:ouranwood_door", - "antarchy:peach_door" - ] + "replace": false, + "values": [ + "antarchy:ouranwood_door", + "antarchy:peach_door", + "antarchy:nadir_door" + ] } diff --git a/common-1.21.1/src/main/resources/data/minecraft/tags/item/wooden_fences.json b/common-1.21.1/src/main/resources/data/minecraft/tags/item/wooden_fences.json index f1b5eb5a..17d8174a 100644 --- a/common-1.21.1/src/main/resources/data/minecraft/tags/item/wooden_fences.json +++ b/common-1.21.1/src/main/resources/data/minecraft/tags/item/wooden_fences.json @@ -1,7 +1,8 @@ { - "replace": false, - "values": [ - "antarchy:ouranwood_fence", - "antarchy:peach_fence" - ] + "replace": false, + "values": [ + "antarchy:ouranwood_fence", + "antarchy:peach_fence", + "antarchy:nadir_fence" + ] } diff --git a/common-1.21.1/src/main/resources/data/minecraft/tags/item/wooden_pressure_plates.json b/common-1.21.1/src/main/resources/data/minecraft/tags/item/wooden_pressure_plates.json index 7f3d5149..ff567df3 100644 --- a/common-1.21.1/src/main/resources/data/minecraft/tags/item/wooden_pressure_plates.json +++ b/common-1.21.1/src/main/resources/data/minecraft/tags/item/wooden_pressure_plates.json @@ -1,7 +1,8 @@ { - "replace": false, - "values": [ - "antarchy:ouranwood_pressure_plate", - "antarchy:peach_pressure_plate" - ] + "replace": false, + "values": [ + "antarchy:ouranwood_pressure_plate", + "antarchy:peach_pressure_plate", + "antarchy:nadir_pressure_plate" + ] } diff --git a/common-1.21.1/src/main/resources/data/minecraft/tags/item/wooden_slabs.json b/common-1.21.1/src/main/resources/data/minecraft/tags/item/wooden_slabs.json index 9b0b8371..5b700b68 100644 --- a/common-1.21.1/src/main/resources/data/minecraft/tags/item/wooden_slabs.json +++ b/common-1.21.1/src/main/resources/data/minecraft/tags/item/wooden_slabs.json @@ -1,7 +1,8 @@ { - "replace": false, - "values": [ - "antarchy:ouranwood_slab", - "antarchy:peach_slab" - ] + "replace": false, + "values": [ + "antarchy:ouranwood_slab", + "antarchy:peach_slab", + "antarchy:nadir_slab" + ] } diff --git a/common-1.21.1/src/main/resources/data/minecraft/tags/item/wooden_stairs.json b/common-1.21.1/src/main/resources/data/minecraft/tags/item/wooden_stairs.json index 5d419448..7af32ee4 100644 --- a/common-1.21.1/src/main/resources/data/minecraft/tags/item/wooden_stairs.json +++ b/common-1.21.1/src/main/resources/data/minecraft/tags/item/wooden_stairs.json @@ -1,7 +1,8 @@ { - "replace": false, - "values": [ - "antarchy:ouranwood_stairs", - "antarchy:peach_stairs" - ] + "replace": false, + "values": [ + "antarchy:ouranwood_stairs", + "antarchy:peach_stairs", + "antarchy:nadir_stairs" + ] } diff --git a/common-1.21.1/src/main/resources/data/minecraft/tags/item/wooden_trapdoors.json b/common-1.21.1/src/main/resources/data/minecraft/tags/item/wooden_trapdoors.json index df34c0e6..85da6c5a 100644 --- a/common-1.21.1/src/main/resources/data/minecraft/tags/item/wooden_trapdoors.json +++ b/common-1.21.1/src/main/resources/data/minecraft/tags/item/wooden_trapdoors.json @@ -1,7 +1,8 @@ { - "replace": false, - "values": [ - "antarchy:ouranwood_trapdoor", - "antarchy:peach_trapdoor" - ] + "replace": false, + "values": [ + "antarchy:ouranwood_trapdoor", + "antarchy:peach_trapdoor", + "antarchy:nadir_trapdoor" + ] } diff --git a/fabric-1.20.1/src/main/java/com/craisinlord/antarchy/fabric/AntarchyConfigModuleFabric.java b/fabric-1.20.1/src/main/java/com/craisinlord/antarchy/fabric/AntarchyConfigModuleFabric.java index 8b30b89f..df2b329e 100644 --- a/fabric-1.20.1/src/main/java/com/craisinlord/antarchy/fabric/AntarchyConfigModuleFabric.java +++ b/fabric-1.20.1/src/main/java/com/craisinlord/antarchy/fabric/AntarchyConfigModuleFabric.java @@ -177,7 +177,6 @@ public final class AntarchyConfigModuleFabric { || name.equals("hushweedSporeLifetimeSeconds") || name.equals("elythiaFireflyParticlesEnabled") || name.equals("duplicatorTreeEnabled") - || name.equals("glowingTorchflowers") || name.equals("glowVinesUnderLeaves") || name.equals("swingThroughGrassEnabled") || name.equals("fabricKeybindingConflictFixEnabled") diff --git a/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/AntarchyConfigModuleFabric.java b/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/AntarchyConfigModuleFabric.java index 8b30b89f..df2b329e 100644 --- a/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/AntarchyConfigModuleFabric.java +++ b/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/AntarchyConfigModuleFabric.java @@ -177,7 +177,6 @@ public final class AntarchyConfigModuleFabric { || name.equals("hushweedSporeLifetimeSeconds") || name.equals("elythiaFireflyParticlesEnabled") || name.equals("duplicatorTreeEnabled") - || name.equals("glowingTorchflowers") || name.equals("glowVinesUnderLeaves") || name.equals("swingThroughGrassEnabled") || name.equals("fabricKeybindingConflictFixEnabled") diff --git a/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/AntarchyFabricContent.java b/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/AntarchyFabricContent.java index 03df338c..69c048f8 100644 --- a/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/AntarchyFabricContent.java +++ b/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/AntarchyFabricContent.java @@ -297,8 +297,11 @@ public final class AntarchyFabricContent { AntarchyObjects.setOctopusBomb(AntarchyFabricEntities.OCTOPUS_BOMB); AntarchyObjects.setTentacle(AntarchyFabricEntities.TENTACLE); + AntarchyObjects.setNightmare(AntarchyFabricEntities.NIGHTMARE); AntarchyObjects.setNightmarePortal(AntarchyFabricEntities.NIGHTMARE_PORTAL); + AntarchyObjects.setDimensionalTear(AntarchyFabricEntities.DIMENSIONAL_TEAR); AntarchyObjects.setNightmareBite(AntarchyFabricEntities.NIGHTMARE_BITE); + AntarchyObjects.setLucid(AntarchyFabricEntities.LUCID); AntarchyObjects.setKrakensGraspTrident(AntarchyFabricEntities.KRAKENS_GRASP_TRIDENT); AntarchyObjects.setLotus(() -> AntarchyFabricBlocks.LOTUS.get()); AntarchyObjects.setKrakenTentacle(() -> AntarchyFabricItems.KRAKEN_TENTACLE.get()); diff --git a/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/AntarchyFabricEvents.java b/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/AntarchyFabricEvents.java index 6047e098..ec8ac6ea 100644 --- a/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/AntarchyFabricEvents.java +++ b/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/AntarchyFabricEvents.java @@ -83,6 +83,7 @@ public final class AntarchyFabricEvents { ComposterBlock.COMPOSTABLES.put(AntarchyFabricItems.CORNEA_EAR.get(), 0.65f); ComposterBlock.COMPOSTABLES.put(AntarchyFabricBlocks.PEACH_LEAVES.get().asItem(), 0.3f); ComposterBlock.COMPOSTABLES.put(AntarchyFabricItems.PEACH_SAPLING_ITEM.get(), 0.3f); + ComposterBlock.COMPOSTABLES.put(AntarchyFabricItems.NADIR_SAPLING_ITEM.get(), 0.3f); ComposterBlock.COMPOSTABLES.put(AntarchyFabricItems.CORN.get(), 0.65f); ComposterBlock.COMPOSTABLES.put(AntarchyFabricItems.CORN_SEEDS.get(), 0.3f); ComposterBlock.COMPOSTABLES.put(AntarchyFabricItems.PEACH.get(), 0.65f); diff --git a/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/AntarchyWoodTypes.java b/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/AntarchyWoodTypes.java index 7b807144..a028df0e 100644 --- a/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/AntarchyWoodTypes.java +++ b/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/AntarchyWoodTypes.java @@ -8,6 +8,7 @@ import net.minecraft.world.level.block.state.properties.WoodType; public final class AntarchyWoodTypes { public static final WoodType OURANWOOD = register("ouranwood"); public static final WoodType PEACH = register("peach"); + public static final WoodType NADIR = register("nadir"); private AntarchyWoodTypes() { } diff --git a/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/client/AntarchyFabricClientBootstrap.java b/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/client/AntarchyFabricClientBootstrap.java index d4ff1341..87d0718b 100644 --- a/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/client/AntarchyFabricClientBootstrap.java +++ b/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/client/AntarchyFabricClientBootstrap.java @@ -107,6 +107,8 @@ public final class AntarchyFabricClientBootstrap { EntityRendererRegistry.register(AntarchyFabricEntities.OURANWOOD_CHEST_BOAT_ENTITY.get(), context -> new OuranwoodBoatRenderer<>(context, ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "textures/entity/chest_boat/ouranwood.png"), true)); EntityRendererRegistry.register(AntarchyFabricEntities.PEACH_BOAT_ENTITY.get(), context -> new PeachBoatRenderer<>(context, ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "textures/entity/boat/peach.png"), false)); EntityRendererRegistry.register(AntarchyFabricEntities.PEACH_CHEST_BOAT_ENTITY.get(), context -> new PeachBoatRenderer<>(context, ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "textures/entity/chest_boat/peach.png"), true)); + EntityRendererRegistry.register(AntarchyFabricEntities.NADIR_BOAT_ENTITY.get(), context -> new PeachBoatRenderer<>(context, ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "textures/entity/boat/nadir.png"), false)); + EntityRendererRegistry.register(AntarchyFabricEntities.NADIR_CHEST_BOAT_ENTITY.get(), context -> new PeachBoatRenderer<>(context, ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "textures/entity/chest_boat/nadir.png"), true)); EntityRendererRegistry.register(AntarchyFabricEntities.APPLE_COW.get(), AppleCowRenderer::new); EntityRendererRegistry.register(AntarchyFabricEntities.GOLDEN_APPLE_COW.get(), AppleCowRenderer::new); EntityRendererRegistry.register(AntarchyFabricEntities.ENCHANTED_GOLDEN_APPLE_COW.get(), AppleCowRenderer::new); @@ -121,6 +123,7 @@ public final class AntarchyFabricClientBootstrap { 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.DIMENSIONAL_TEAR.get(), DimensionalTearRenderer::new); EntityRendererRegistry.register(AntarchyFabricEntities.NIGHTMARE_BITE.get(), NightmareBiteRenderer::new); EntityRendererRegistry.register(AntarchyFabricEntities.LUCID.get(), LucidRenderer::new); EntityRendererRegistry.register(AntarchyFabricEntities.BED_BUG.get(), BedBugRenderer::new); @@ -310,6 +313,11 @@ public final class AntarchyFabricClientBootstrap { BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.PEACH_TRAPDOOR.get(), RenderType.cutout()); BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.PEACH_SAPLING.get(), RenderType.cutout()); BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.POTTED_PEACH_SAPLING.get(), RenderType.cutout()); + BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.NADIR_VEIL.get(), RenderType.translucent()); + BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.NADIR_DOOR.get(), RenderType.cutout()); + BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.NADIR_TRAPDOOR.get(), RenderType.cutout()); + BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.NADIR_SAPLING.get(), RenderType.cutout()); + BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.POTTED_NADIR_SAPLING.get(), RenderType.cutout()); BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.DUPLICATOR_SAPLING.get(), RenderType.cutout()); BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.ORANGE_MILKWEED.get(), RenderType.cutout()); BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.PINK_MILKWEED.get(), RenderType.cutout()); diff --git a/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricBlocks.java b/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricBlocks.java index 31a5d37e..7104b741 100644 --- a/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricBlocks.java +++ b/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricBlocks.java @@ -255,6 +255,84 @@ public final class AntarchyFabricBlocks { () -> new net.minecraft.world.level.block.WallHangingSignBlock(AntarchyWoodTypes.PEACH, BlockBehaviour.Properties.ofFullCopy(Blocks.JUNGLE_WALL_HANGING_SIGN))); + public static final DeferredBlock NADIR_LOG = BLOCKS.register("nadir_log", + () -> new RotatedPillarBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.JUNGLE_LOG))); + + + public static final DeferredBlock NADIR_WOOD = BLOCKS.register("nadir_wood", + () -> new RotatedPillarBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.JUNGLE_WOOD))); + + + public static final DeferredBlock STRIPPED_NADIR_LOG = BLOCKS.register("stripped_nadir_log", + () -> new RotatedPillarBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.STRIPPED_JUNGLE_LOG))); + + + public static final DeferredBlock STRIPPED_NADIR_WOOD = BLOCKS.register("stripped_nadir_wood", + () -> new RotatedPillarBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.STRIPPED_JUNGLE_WOOD))); + + + public static final DeferredBlock NADIR_PLANKS = BLOCKS.register("nadir_planks", + () -> new Block(BlockBehaviour.Properties.ofFullCopy(Blocks.JUNGLE_PLANKS))); + + + public static final DeferredBlock NADIR_STAIRS = BLOCKS.register("nadir_stairs", + () -> new net.minecraft.world.level.block.StairBlock(NADIR_PLANKS.get().defaultBlockState(), BlockBehaviour.Properties.ofFullCopy(Blocks.JUNGLE_STAIRS))); + + + public static final DeferredBlock NADIR_SLAB = BLOCKS.register("nadir_slab", + () -> new net.minecraft.world.level.block.SlabBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.JUNGLE_SLAB))); + + + public static final DeferredBlock NADIR_FENCE = BLOCKS.register("nadir_fence", + () -> new net.minecraft.world.level.block.FenceBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.JUNGLE_FENCE))); + + + public static final DeferredBlock NADIR_FENCE_GATE = BLOCKS.register("nadir_fence_gate", + () -> new net.minecraft.world.level.block.FenceGateBlock(net.minecraft.world.level.block.state.properties.WoodType.JUNGLE, BlockBehaviour.Properties.ofFullCopy(Blocks.JUNGLE_FENCE_GATE))); + + + public static final DeferredBlock NADIR_DOOR = BLOCKS.register("nadir_door", + () -> new net.minecraft.world.level.block.DoorBlock(net.minecraft.world.level.block.state.properties.BlockSetType.JUNGLE, BlockBehaviour.Properties.ofFullCopy(Blocks.JUNGLE_DOOR))); + + + public static final DeferredBlock NADIR_TRAPDOOR = BLOCKS.register("nadir_trapdoor", + () -> new net.minecraft.world.level.block.TrapDoorBlock(net.minecraft.world.level.block.state.properties.BlockSetType.JUNGLE, BlockBehaviour.Properties.ofFullCopy(Blocks.JUNGLE_TRAPDOOR))); + + + public static final DeferredBlock NADIR_PRESSURE_PLATE = BLOCKS.register("nadir_pressure_plate", + () -> new net.minecraft.world.level.block.PressurePlateBlock(net.minecraft.world.level.block.state.properties.BlockSetType.JUNGLE, BlockBehaviour.Properties.ofFullCopy(Blocks.JUNGLE_PRESSURE_PLATE))); + + + public static final DeferredBlock NADIR_BUTTON = BLOCKS.register("nadir_button", + () -> new net.minecraft.world.level.block.ButtonBlock(net.minecraft.world.level.block.state.properties.BlockSetType.JUNGLE, 30, BlockBehaviour.Properties.ofFullCopy(Blocks.JUNGLE_BUTTON))); + + + public static final DeferredBlock NADIR_VEIL = BLOCKS.register("nadir_veil", + () -> new net.minecraft.world.level.block.Block(BlockBehaviour.Properties.ofFullCopy(Blocks.JUNGLE_LEAVES).sound(net.minecraft.world.level.block.SoundType.SLIME_BLOCK).noOcclusion())); + + + public static final DeferredBlock NADIR_SAPLING = BLOCKS.register("nadir_sapling", + () -> new com.craisinlord.antarchy.content.block.NadirSaplingBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.OAK_SAPLING).randomTicks().noCollission())); + public static final DeferredBlock POTTED_NADIR_SAPLING = BLOCKS.register("potted_nadir_sapling", + () -> new net.minecraft.world.level.block.FlowerPotBlock(NADIR_SAPLING.get(), BlockBehaviour.Properties.ofFullCopy(Blocks.POTTED_DANDELION))); + + + public static final DeferredBlock NADIR_SIGN = BLOCKS.register("nadir_sign", + () -> new net.minecraft.world.level.block.StandingSignBlock(AntarchyWoodTypes.NADIR, BlockBehaviour.Properties.ofFullCopy(Blocks.JUNGLE_SIGN))); + + + public static final DeferredBlock NADIR_WALL_SIGN = BLOCKS.register("nadir_wall_sign", + () -> new net.minecraft.world.level.block.WallSignBlock(AntarchyWoodTypes.NADIR, BlockBehaviour.Properties.ofFullCopy(Blocks.JUNGLE_WALL_SIGN))); + + + public static final DeferredBlock NADIR_HANGING_SIGN = BLOCKS.register("nadir_hanging_sign", + () -> new net.minecraft.world.level.block.CeilingHangingSignBlock(AntarchyWoodTypes.NADIR, BlockBehaviour.Properties.ofFullCopy(Blocks.JUNGLE_HANGING_SIGN))); + + + public static final DeferredBlock NADIR_WALL_HANGING_SIGN = BLOCKS.register("nadir_wall_hanging_sign", + () -> new net.minecraft.world.level.block.WallHangingSignBlock(AntarchyWoodTypes.NADIR, BlockBehaviour.Properties.ofFullCopy(Blocks.JUNGLE_WALL_HANGING_SIGN))); + + public static final DeferredBlock DUPLICATOR_SAPLING = BLOCKS.register("duplicator_sapling", () -> new DuplicatorSaplingBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.OAK_SAPLING).randomTicks().noCollission())); diff --git a/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricEntities.java b/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricEntities.java index 3338e776..527bea8c 100644 --- a/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricEntities.java +++ b/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricEntities.java @@ -25,6 +25,8 @@ import com.craisinlord.antarchy.content.entity.JumpyBugEntity; import com.craisinlord.antarchy.content.entity.StinkBugEntity; import com.craisinlord.antarchy.content.entity.OuranwoodBoatEntity; import com.craisinlord.antarchy.content.entity.OuranwoodChestBoatEntity; +import com.craisinlord.antarchy.content.entity.NadirBoatEntity; +import com.craisinlord.antarchy.content.entity.NadirChestBoatEntity; import com.craisinlord.antarchy.content.entity.AlphaMantisEntity; import com.craisinlord.antarchy.content.entity.MantisEntity; import com.craisinlord.antarchy.content.entity.RollyPollyEntity; @@ -34,6 +36,7 @@ import com.craisinlord.antarchy.content.entity.ScorpionEntity; import com.craisinlord.antarchy.content.entity.nightmare.NightmareEntity; import com.craisinlord.antarchy.content.entity.nightmare.NightmarePortalEntity; import com.craisinlord.antarchy.content.entity.nightmare.NightmareBiteEntity; +import com.craisinlord.antarchy.content.entity.portal.DimensionalTearEntity; import com.craisinlord.antarchy.content.entity.ToreterrorEntity; import com.craisinlord.antarchy.content.entity.WaterBombEntity; import com.craisinlord.antarchy.content.entity.kraken.KrakenEntity; @@ -136,6 +139,22 @@ public final class AntarchyFabricEntities { .build("peach_chest_boat")); + public static final DeferredHolder, EntityType> NADIR_BOAT_ENTITY = ENTITY_TYPES.register("nadir_boat", + () -> EntityType.Builder.of(NadirBoatEntity::new, MobCategory.MISC) + .sized(1.375F, 0.5625F) + .clientTrackingRange(10) + .updateInterval(10) + .build("nadir_boat")); + + + public static final DeferredHolder, EntityType> NADIR_CHEST_BOAT_ENTITY = ENTITY_TYPES.register("nadir_chest_boat", + () -> EntityType.Builder.of(NadirChestBoatEntity::new, MobCategory.MISC) + .sized(1.375F, 0.5625F) + .clientTrackingRange(10) + .updateInterval(10) + .build("nadir_chest_boat")); + + public static final DeferredHolder, EntityType> MOLEVORE = ENTITY_TYPES.register("molevore", () -> EntityType.Builder.of(MolevoreEntity::new, MobCategory.MONSTER) .sized(1.95F, 1.1F) @@ -337,6 +356,13 @@ public final class AntarchyFabricEntities { .updateInterval(1) .build("nightmare_portal")); + public static final DeferredHolder, EntityType> DIMENSIONAL_TEAR = ENTITY_TYPES.register("dimensional_tear", + () -> EntityType.Builder.of(DimensionalTearEntity::new, MobCategory.MISC) + .sized(2.8F, 3.2F) + .clientTrackingRange(12) + .updateInterval(1) + .build("dimensional_tear")); + public static final DeferredHolder, EntityType> NIGHTMARE_BITE = ENTITY_TYPES.register("nightmare_bite", () -> EntityType.Builder.of(NightmareBiteEntity::new, MobCategory.MISC) .sized(2.5F, 2.0F) diff --git a/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricItems.java b/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricItems.java index 800a22c4..fe3cd76f 100644 --- a/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricItems.java +++ b/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricItems.java @@ -207,6 +207,51 @@ public final class AntarchyFabricItems { public static final DeferredItem PEACH_SAPLING_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.PEACH_SAPLING); + public static final DeferredItem NADIR_LOG_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.NADIR_LOG); + + + public static final DeferredItem NADIR_WOOD_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.NADIR_WOOD); + + + public static final DeferredItem STRIPPED_NADIR_LOG_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.STRIPPED_NADIR_LOG); + + + public static final DeferredItem STRIPPED_NADIR_WOOD_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.STRIPPED_NADIR_WOOD); + + + public static final DeferredItem NADIR_PLANKS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.NADIR_PLANKS); + + + public static final DeferredItem NADIR_STAIRS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.NADIR_STAIRS); + + + public static final DeferredItem NADIR_SLAB_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.NADIR_SLAB); + + + public static final DeferredItem NADIR_FENCE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.NADIR_FENCE); + + + public static final DeferredItem NADIR_FENCE_GATE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.NADIR_FENCE_GATE); + + + public static final DeferredItem NADIR_DOOR_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.NADIR_DOOR); + + + public static final DeferredItem NADIR_TRAPDOOR_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.NADIR_TRAPDOOR); + + + public static final DeferredItem NADIR_PRESSURE_PLATE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.NADIR_PRESSURE_PLATE); + + + public static final DeferredItem NADIR_BUTTON_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.NADIR_BUTTON); + + + public static final DeferredItem NADIR_VEIL_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.NADIR_VEIL); + + + public static final DeferredItem NADIR_SAPLING_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.NADIR_SAPLING); + + public static final DeferredItem ORANGE_MILKWEED_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.ORANGE_MILKWEED); @@ -259,6 +304,22 @@ public final class AntarchyFabricItems { () -> new com.craisinlord.antarchy.content.item.PeachChestBoatItem(AntarchyFabricEntities.PEACH_CHEST_BOAT_ENTITY.get(), new Item.Properties().stacksTo(1))); + public static final DeferredItem NADIR_SIGN_ITEM = ITEMS.register("nadir_sign", + () -> new net.minecraft.world.item.SignItem(new Item.Properties().stacksTo(16), AntarchyFabricBlocks.NADIR_SIGN.get(), AntarchyFabricBlocks.NADIR_WALL_SIGN.get())); + + + public static final DeferredItem NADIR_HANGING_SIGN_ITEM = ITEMS.register("nadir_hanging_sign", + () -> new net.minecraft.world.item.HangingSignItem(AntarchyFabricBlocks.NADIR_HANGING_SIGN.get(), AntarchyFabricBlocks.NADIR_WALL_HANGING_SIGN.get(), new Item.Properties().stacksTo(16))); + + + public static final DeferredItem NADIR_BOAT = ITEMS.register("nadir_boat", + () -> new com.craisinlord.antarchy.content.item.NadirBoatOnlyItem(AntarchyFabricEntities.NADIR_BOAT_ENTITY.get(), new Item.Properties().stacksTo(1))); + + + public static final DeferredItem NADIR_CHEST_BOAT = ITEMS.register("nadir_chest_boat", + () -> new com.craisinlord.antarchy.content.item.NadirChestBoatItem(AntarchyFabricEntities.NADIR_CHEST_BOAT_ENTITY.get(), new Item.Properties().stacksTo(1))); + + public static final DeferredItem CRITTER_CAGE = ITEMS.register("critter_cage", () -> new CritterCageItem(new Item.Properties().stacksTo(16))); diff --git a/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricMisc.java b/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricMisc.java index 5937ce09..241af686 100644 --- a/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricMisc.java +++ b/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricMisc.java @@ -60,6 +60,7 @@ import com.craisinlord.antarchy.content.worldgen.cavaryn.ChitinSpikeConfiguratio 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.DimensionalTearFeature; import com.craisinlord.antarchy.content.worldgen.elythia.ElythiaCloudFeature; import com.craisinlord.antarchy.content.worldgen.thoraxis.LucidAntiwaterPoolFeature; import com.craisinlord.antarchy.content.worldgen.thoraxis.ThoraxisBiomeSource; @@ -779,6 +780,9 @@ public final class AntarchyFabricMisc { public static final DeferredHolder, ThoraxisDuneFeature> THORAXIS_DUNE = FEATURES.register("thoraxis_dune", () -> new ThoraxisDuneFeature(ThoraxisDuneConfiguration.CODEC)); + public static final DeferredHolder, DimensionalTearFeature> DIMENSIONAL_TEAR = FEATURES.register("dimensional_tear", + () -> new DimensionalTearFeature(NoneFeatureConfiguration.CODEC)); + public static final DeferredHolder, CoralSpikeFeature> ELYTHIA_CORAL_SPIKE = FEATURES.register("elythia_coral_spike", () -> new CoralSpikeFeature(NoneFeatureConfiguration.CODEC)); 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 9aa08529..6d802296 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 @@ -101,12 +101,36 @@ public final class AntarchyConfigModuleForge { AntarchySettings.setJumpyBugLatchDamage(AntarchyMobsConfig.jumpyBugLatchDamage()); AntarchySettings.setJumpyBugCamouflageAlpha(AntarchyMobsConfig.jumpyBugCamouflageAlpha()); + AntarchySettings.setEmperorScorpionHealth(AntarchyMobsConfig.emperorScorpionHealth()); + AntarchySettings.setEmperorScorpionAttackDamage(AntarchyMobsConfig.emperorScorpionAttackDamage()); + AntarchySettings.setEmperorScorpionArmor(AntarchyMobsConfig.emperorScorpionArmor()); + AntarchySettings.setEmperorScorpionKnockbackResistance(AntarchyMobsConfig.emperorScorpionKnockbackResistance()); + AntarchySettings.setEmperorScorpionMovementSpeed(AntarchyMobsConfig.emperorScorpionMovementSpeed()); + AntarchySettings.setEmperorScorpionFollowRange(AntarchyMobsConfig.emperorScorpionFollowRange()); + AntarchySettings.setEmperorScorpionXpReward(AntarchyMobsConfig.emperorScorpionXpReward()); + AntarchySettings.setEmperorScorpionClawAnimTicks(AntarchyMobsConfig.emperorScorpionClawAnimTicks()); + AntarchySettings.setEmperorScorpionClawHitTick(AntarchyMobsConfig.emperorScorpionClawHitTick()); + AntarchySettings.setEmperorScorpionClawCooldownTicks(AntarchyMobsConfig.emperorScorpionClawCooldownTicks()); + AntarchySettings.setEmperorScorpionStingAnimTicks(AntarchyMobsConfig.emperorScorpionStingAnimTicks()); + AntarchySettings.setEmperorScorpionStingHitTick(AntarchyMobsConfig.emperorScorpionStingHitTick()); + AntarchySettings.setEmperorScorpionStingCooldownTicks(AntarchyMobsConfig.emperorScorpionStingCooldownTicks()); + AntarchySettings.setEmperorScorpionPoisonTicks(AntarchyMobsConfig.emperorScorpionPoisonTicks()); + AntarchySettings.setEmperorScorpionWeaknessTicks(AntarchyMobsConfig.emperorScorpionWeaknessTicks()); + AntarchySettings.setEmperorScorpionSummonIntervalTicks(AntarchyMobsConfig.emperorScorpionSummonIntervalTicks()); + AntarchySettings.setEmperorScorpionMaxSummonedScorpions(AntarchyMobsConfig.emperorScorpionMaxSummonedScorpions()); + AntarchySettings.setEmperorScorpionMaxNearbyScorpions(AntarchyMobsConfig.emperorScorpionMaxNearbyScorpions()); + AntarchySettings.setEmperorScorpionHardenCooldownTicks(AntarchyMobsConfig.emperorScorpionHardenCooldownTicks()); AntarchySettings.setEmperorScorpionDamageRange(AntarchyMobsConfig.emperorScorpionDamageRange()); AntarchySettings.setEmperorScorpionMinDespawnTicks(AntarchyMobsConfig.emperorScorpionMinDespawnTicks()); AntarchySettings.setKrakenHealth(AntarchyMobsConfig.krakenHealth()); AntarchySettings.setKrakenAttackDamage(AntarchyMobsConfig.krakenAttackDamage()); - AntarchySettings.setKrakenProjectileDamageTakenMultiplier(AntarchyMobsConfig.krakenProjectileDamageTakenMultiplier()); + AntarchySettings.setKrakenArmor(AntarchyMobsConfig.krakenArmor()); + AntarchySettings.setKrakenKnockbackResistance(AntarchyMobsConfig.krakenKnockbackResistance()); + AntarchySettings.setKrakenMovementSpeed(AntarchyMobsConfig.krakenMovementSpeed()); + AntarchySettings.setKrakenFlyingSpeed(AntarchyMobsConfig.krakenFlyingSpeed()); + AntarchySettings.setKrakenBossBarRange(AntarchyMobsConfig.krakenBossBarRange()); + AntarchySettings.setKrakenLightningDamagePhaseOne((float) AntarchyMobsConfig.krakenLightningDamagePhaseOne()); AntarchySettings.setKrakenSquidSpawnEnabled(AntarchyMobsConfig.krakenSquidSpawnEnabled()); AntarchySettings.setKrakenMassSpawnEnabled(AntarchyMobsConfig.krakenMassSpawnEnabled()); AntarchySettings.setKrakenRequireBadOmenToSummon(AntarchyMobsConfig.krakenRequireBadOmenToSummon()); @@ -117,6 +141,11 @@ public final class AntarchyConfigModuleForge { AntarchySettings.setBrutalflySwipeDamage(AntarchyMobsConfig.brutalflySwipeDamage()); AntarchySettings.setBrutalflySpitDamage(AntarchyMobsConfig.brutalflySpitDamage()); AntarchySettings.setBrutalflyDamageRange(AntarchyMobsConfig.brutalflyDamageRange()); + AntarchySettings.setBrutalflyArmor(AntarchyMobsConfig.brutalflyArmor()); + AntarchySettings.setBrutalflyArmorToughness(AntarchyMobsConfig.brutalflyArmorToughness()); + AntarchySettings.setBrutalflyMovementSpeed(AntarchyMobsConfig.brutalflyMovementSpeed()); + AntarchySettings.setBrutalflyFlyingSpeed(AntarchyMobsConfig.brutalflyFlyingSpeed()); + AntarchySettings.setBrutalflyKnockbackResistance(AntarchyMobsConfig.brutalflyKnockbackResistance()); AntarchySettings.setMantisHealth(AntarchyMobsConfig.mantisHealth()); AntarchySettings.setMantisAttackDamage(AntarchyMobsConfig.mantisAttackDamage()); @@ -135,7 +164,6 @@ public final class AntarchyConfigModuleForge { AntarchySettings.setRollyPollyHealth(AntarchyMobsConfig.rollyPollyHealth()); AntarchySettings.setRollyPollyMovementSpeed(AntarchyMobsConfig.rollyPollyMovementSpeed()); AntarchySettings.setRollyPollyRollSpeedMultiplier(AntarchyMobsConfig.rollyPollyRollSpeedMultiplier()); - AntarchySettings.setRollyPollyTumbleDamage(AntarchyMobsConfig.rollyPollyTumbleDamage()); AntarchySettings.setRollyPollyTameChance(AntarchyMobsConfig.rollyPollyTameChance()); AntarchySettings.setRollyPollyBowlingDamage(AntarchyMobsConfig.rollyPollyBowlingDamage()); AntarchySettings.setRollyPollyBowlingKnockback(AntarchyMobsConfig.rollyPollyBowlingKnockback()); @@ -163,6 +191,9 @@ public final class AntarchyConfigModuleForge { AntarchySettings.setNightmareHealth(AntarchyMobsConfig.nightmareHealth()); AntarchySettings.setNightmareAttackDamage(AntarchyMobsConfig.nightmareAttackDamage()); + AntarchySettings.setNightmareMovementSpeed(AntarchyMobsConfig.nightmareMovementSpeed()); + AntarchySettings.setNightmareWeaknessTicks(AntarchyMobsConfig.nightmareWeaknessTicks()); + AntarchySettings.setNightmareDreadTicks(AntarchyMobsConfig.nightmareDreadTicks()); AntarchySettings.setBasiliskPetrifyingGazeEnabled(AntarchyMobsConfig.basiliskPetrifyingGazeEnabled()); AntarchySettings.setBasiliskSpawnMaxLightLevel(AntarchyMobsConfig.basiliskSpawnMaxLightLevel()); @@ -188,6 +219,62 @@ public final class AntarchyConfigModuleForge { AntarchySettings.setLucidAttackRange(AntarchyMobsConfig.lucidAttackRange()); AntarchySettings.setLucidPearlInvertedDurationSeconds(AntarchyMobsConfig.lucidPearlInvertedDurationSeconds()); + AntarchySettings.setLucidHealth(AntarchyMobsConfig.lucidHealth()); + AntarchySettings.setLucidAttackDamage(AntarchyMobsConfig.lucidAttackDamage()); + AntarchySettings.setLucidMovementSpeed(AntarchyMobsConfig.lucidMovementSpeed()); + AntarchySettings.setLucidFlyingSpeed(AntarchyMobsConfig.lucidFlyingSpeed()); + AntarchySettings.setLucidKnockbackResistance(AntarchyMobsConfig.lucidKnockbackResistance()); + + AntarchySettings.setMissileSquidHealth(AntarchyMobsConfig.missileSquidHealth()); + AntarchySettings.setMissileSquidAttackDamage(AntarchyMobsConfig.missileSquidAttackDamage()); + AntarchySettings.setMissileSquidMovementSpeed(AntarchyMobsConfig.missileSquidMovementSpeed()); + AntarchySettings.setMissileSquidFlyingSpeed(AntarchyMobsConfig.missileSquidFlyingSpeed()); + AntarchySettings.setMissileSquidKnockbackResistance(AntarchyMobsConfig.missileSquidKnockbackResistance()); + + AntarchySettings.setOctopusBombHealth(AntarchyMobsConfig.octopusBombHealth()); + AntarchySettings.setOctopusBombAttackDamage(AntarchyMobsConfig.octopusBombAttackDamage()); + + AntarchySettings.setBedBugHealth(AntarchyMobsConfig.bedBugHealth()); + AntarchySettings.setBedBugAttackDamage(AntarchyMobsConfig.bedBugAttackDamage()); + AntarchySettings.setBedBugMovementSpeed(AntarchyMobsConfig.bedBugMovementSpeed()); + AntarchySettings.setBedBugArmor(AntarchyMobsConfig.bedBugArmor()); + + AntarchySettings.setCloudSharkHealth(AntarchyMobsConfig.cloudSharkHealth()); + AntarchySettings.setCloudSharkAttackDamage(AntarchyMobsConfig.cloudSharkAttackDamage()); + AntarchySettings.setCloudSharkMovementSpeed(AntarchyMobsConfig.cloudSharkMovementSpeed()); + AntarchySettings.setCloudSharkFlyingSpeed(AntarchyMobsConfig.cloudSharkFlyingSpeed()); + AntarchySettings.setCloudSharkKnockbackResistance(AntarchyMobsConfig.cloudSharkKnockbackResistance()); + + AntarchySettings.setFlyingSquirrelHealth(AntarchyMobsConfig.flyingSquirrelHealth()); + AntarchySettings.setFlyingSquirrelMovementSpeed(AntarchyMobsConfig.flyingSquirrelMovementSpeed()); + + AntarchySettings.setMolevoreHealth(AntarchyMobsConfig.molevoreHealth()); + AntarchySettings.setMolevoreAttackDamage(AntarchyMobsConfig.molevoreAttackDamage()); + AntarchySettings.setMolevoreMovementSpeed(AntarchyMobsConfig.molevoreMovementSpeed()); + AntarchySettings.setMolevoreArmor(AntarchyMobsConfig.molevoreArmor()); + AntarchySettings.setMolevoreKnockbackResistance(AntarchyMobsConfig.molevoreKnockbackResistance()); + AntarchySettings.setMolevoreFollowRange(AntarchyMobsConfig.molevoreFollowRange()); + AntarchySettings.setMolevoreXpReward(AntarchyMobsConfig.molevoreXpReward()); + AntarchySettings.setMolevoreSpinTicks(AntarchyMobsConfig.molevoreSpinTicks()); + AntarchySettings.setMolevoreCooldownTicks(AntarchyMobsConfig.molevoreCooldownTicks()); + AntarchySettings.setMolevoreChargeSpeed(AntarchyMobsConfig.molevoreChargeSpeed()); + AntarchySettings.setMolevoreBreakRange(AntarchyMobsConfig.molevoreBreakRange()); + AntarchySettings.setMolevoreBreakVerticalRange(AntarchyMobsConfig.molevoreBreakVerticalRange()); + AntarchySettings.setMolevoreBreakHalfWidth(AntarchyMobsConfig.molevoreBreakHalfWidth()); + + AntarchySettings.setMolewormHealth(AntarchyMobsConfig.molewormHealth()); + AntarchySettings.setMolewormAttackDamage(AntarchyMobsConfig.molewormAttackDamage()); + AntarchySettings.setMolewormMovementSpeed(AntarchyMobsConfig.molewormMovementSpeed()); + + AntarchySettings.setScorpionHealth(AntarchyMobsConfig.scorpionHealth()); + AntarchySettings.setScorpionAttackDamage(AntarchyMobsConfig.scorpionAttackDamage()); + AntarchySettings.setScorpionMovementSpeed(AntarchyMobsConfig.scorpionMovementSpeed()); + AntarchySettings.setScorpionArmor(AntarchyMobsConfig.scorpionArmor()); + AntarchySettings.setScorpionKnockbackResistance(AntarchyMobsConfig.scorpionKnockbackResistance()); + + AntarchySettings.setButterflyHealth(AntarchyMobsConfig.butterflyHealth()); + AntarchySettings.setButterflyMovementSpeed(AntarchyMobsConfig.butterflyMovementSpeed()); + AntarchySettings.setButterflyFlyingSpeed(AntarchyMobsConfig.butterflyFlyingSpeed()); AntarchySettings.setDreadHallucinationSoundsEnabled(AntarchyMobsConfig.dreadHallucinationSoundsEnabled()); AntarchySettings.setDreadHallucinationSoundMinInterval(AntarchyMobsConfig.dreadHallucinationSoundMinInterval()); @@ -231,6 +318,8 @@ public final class AntarchyConfigModuleForge { AntarchySettings.setHerculesBeetleDamageRange(AntarchyMobsConfig.herculesBeetleDamageRange()); AntarchySettings.setOuranwoodDeerHealth(AntarchyMobsConfig.ouranwoodDeerHealth()); AntarchySettings.setGlimmerHealth(AntarchyMobsConfig.glimmerHealth()); + + AntarchySettings.setAntDanceRadius(AntarchyMobsConfig.antDanceRadius()); } private static void bakeToolsConfig() { @@ -262,10 +351,6 @@ public final class AntarchyConfigModuleForge { AntarchySettings.setUltimateCrossbowChargeSpeedMultiplier(AntarchyToolsConfig.ultimateCrossbowChargeSpeedMultiplier()); AntarchySettings.setUltimateCrossbowEnchantability(AntarchyToolsConfig.ultimateCrossbowEnchantability()); - AntarchySettings.setUltimateMaceDamageMultiplier(AntarchyToolsConfig.ultimateMaceDamageMultiplier()); - AntarchySettings.setUltimateMaceAttackSpeed(AntarchyToolsConfig.ultimateMaceAttackSpeed()); - AntarchySettings.setUltimateMaceEnchantability(AntarchyToolsConfig.ultimateMaceEnchantability()); - AntarchySettings.setUltimateArmorComesEnchanted(AntarchyToolsConfig.ultimateArmorComesEnchanted()); AntarchySettings.setUltimateArmorEnchantability(AntarchyToolsConfig.ultimateArmorEnchantability()); AntarchySettings.setUltimateHelmetArmorValue(AntarchyToolsConfig.ultimateHelmetArmorValue()); @@ -304,12 +389,9 @@ public final class AntarchyConfigModuleForge { AntarchySettings.setKrakensGraspTentacleSlownessAmplifier(AntarchyToolsConfig.krakensGraspTentacleSlownessAmplifier()); AntarchySettings.setKrakensGraspTentacleSlownessRefreshTicks(AntarchyToolsConfig.krakensGraspTentacleSlownessRefreshTicks()); AntarchySettings.setScorpionWhipBaseDamage(AntarchyToolsConfig.scorpionWhipBaseDamage()); - AntarchySettings.setScorpionWhipReachBonus(AntarchyToolsConfig.scorpionWhipReachBonus()); AntarchySettings.setScorpionWhipPoisonDurationTicks(AntarchyToolsConfig.scorpionWhipPoisonDurationTicks()); AntarchySettings.setScorpionWhipTetherMaxRange(AntarchyToolsConfig.scorpionWhipTetherMaxRange()); - AntarchySettings.setScorpionWhipReelCooldownTicks(AntarchyToolsConfig.scorpionWhipReelCooldownTicks()); AntarchySettings.setScorpionWhipSnapBonusDamage(AntarchyToolsConfig.scorpionWhipSnapBonusDamage()); - AntarchySettings.setScorpionWhipSnapCooldownTicks(AntarchyToolsConfig.scorpionWhipSnapCooldownTicks()); AntarchySettings.setScorpionWhipPullStrength(AntarchyToolsConfig.scorpionWhipPullStrength()); AntarchySettings.setScorpionWhipHeavyPullMultiplier(AntarchyToolsConfig.scorpionWhipHeavyPullMultiplier()); AntarchySettings.setScorpionWhipSelfPullMultiplier(AntarchyToolsConfig.scorpionWhipSelfPullMultiplier()); @@ -326,7 +408,10 @@ public final class AntarchyConfigModuleForge { AntarchySettings.setNightmareLeggingsArmorToughness(AntarchyToolsConfig.nightmareLeggingsArmorToughness()); AntarchySettings.setNightmareBootsArmorToughness(AntarchyToolsConfig.nightmareBootsArmorToughness()); AntarchySettings.setNightmareArmorKnockbackResistance(AntarchyToolsConfig.nightmareArmorKnockbackResistance()); - AntarchySettings.setNightmareArmorDreadAuraRangePerPiece(AntarchyToolsConfig.nightmareArmorDreadAuraRangePerPiece()); + AntarchySettings.setNightmareHelmetDoubleDamageChance(AntarchyToolsConfig.nightmareHelmetDoubleDamageChance()); + AntarchySettings.setNightmareChestplateDoubleDamageChance(AntarchyToolsConfig.nightmareChestplateDoubleDamageChance()); + AntarchySettings.setNightmareLeggingsDoubleDamageChance(AntarchyToolsConfig.nightmareLeggingsDoubleDamageChance()); + AntarchySettings.setNightmareBootsDoubleDamageChance(AntarchyToolsConfig.nightmareBootsDoubleDamageChance()); AntarchySettings.setPrimordialArmorKnockbackPerPiece(AntarchyToolsConfig.primordialArmorKnockbackPerPiece()); AntarchySettings.setNightmareSwordBaseDamage(AntarchyToolsConfig.nightmareSwordBaseDamage()); AntarchySettings.setNightmareSwordAttackSpeed(AntarchyToolsConfig.nightmareSwordAttackSpeed()); @@ -376,11 +461,8 @@ public final class AntarchyConfigModuleForge { AntarchySettings.setAmericanBonusSaturation(AntarchyToolsConfig.americanBonusSaturation()); AntarchySettings.setAmericanRegenerationDurationTicks(AntarchyToolsConfig.americanRegenerationDurationTicks()); AntarchySettings.setAmericanRegenerationAmplifier(AntarchyToolsConfig.americanRegenerationAmplifier()); - AntarchySettings.setAntDanceRadius(AntarchyMobsConfig.antDanceRadius()); AntarchySettings.setMogglesVisionRadius(AntarchyToolsConfig.mogglesVisionRadius()); - AntarchySettings.setMogglesVisionMaxLight(AntarchyToolsConfig.mogglesVisionMaxLight()); - AntarchySettings.setMogglesVisionAlpha(AntarchyToolsConfig.mogglesVisionAlpha()); } private static void bakeMiscConfig() { @@ -411,13 +493,12 @@ public final class AntarchyConfigModuleForge { AntarchySettings.setDreamSandEnabled(AntarchyMiscConfig.dreamSandEnabled()); AntarchySettings.setDreamSandJumpVelocityMultiplier(AntarchyMiscConfig.dreamSandJumpVelocityMultiplier()); AntarchySettings.setDreamSandGravityMultiplier(AntarchyMiscConfig.dreamSandGravityMultiplier()); - AntarchySettings.setDreamSandFallDamageMultiplier(AntarchyMiscConfig.dreamSandFallDamageMultiplier()); + AntarchySettings.setDreamSandFallingBlockGravityMultiplier(AntarchyMiscConfig.dreamSandFallingBlockGravityMultiplier()); AntarchySettings.setDreamSandEffectDurationSeconds(AntarchyMiscConfig.dreamSandEffectDurationSeconds()); AntarchySettings.setIchorWitherEnabled(AntarchyMiscConfig.ichorWitherEnabled()); AntarchySettings.setDuplicatorTreeEnabled(AntarchyMiscConfig.duplicatorTreeEnabled()); - AntarchySettings.setGlowingTorchflowers(AntarchyMiscConfig.glowingTorchflowers()); AntarchySettings.setGlowVinesUnderLeaves(AntarchyMiscConfig.glowVinesUnderLeaves()); AntarchySettings.setSwingThroughGrassEnabled(AntarchyMiscConfig.swingThroughGrassEnabled()); AntarchySettings.setFabricKeybindingConflictFixEnabled(AntarchyMiscConfig.fabricKeybindingConflictFixEnabled()); 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 29480d08..dd168c90 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 @@ -13,7 +13,7 @@ public final class AntarchyMiscConfig { private static final ForgeConfigSpec.DoubleValue DREAM_SAND_JUMP_VELOCITY_MULTIPLIER; private static final ForgeConfigSpec.DoubleValue DREAM_SAND_GRAVITY_MULTIPLIER; private static final ForgeConfigSpec.DoubleValue DREAM_SAND_EFFECT_DURATION_SECONDS; - private static final ForgeConfigSpec.DoubleValue DREAM_SAND_FALL_DAMAGE_MULTIPLIER; + private static final ForgeConfigSpec.DoubleValue DREAM_SAND_FALLING_BLOCK_GRAVITY_MULTIPLIER; // Ichor private static final ForgeConfigSpec.BooleanValue ICHOR_WITHER_ENABLED; @@ -47,7 +47,6 @@ public final class AntarchyMiscConfig { // World / misc toggles private static final ForgeConfigSpec.BooleanValue DUPLICATOR_TREE_ENABLED; private static final ForgeConfigSpec.BooleanValue GLOW_VINES_UNDER_LEAVES; - private static final ForgeConfigSpec.BooleanValue GLOWING_TORCHFLOWERS; private static final ForgeConfigSpec.BooleanValue SWING_THROUGH_GRASS_ENABLED; private static final ForgeConfigSpec.BooleanValue FABRIC_KEYBINDING_CONFLICT_FIX_ENABLED; private static final ForgeConfigSpec.BooleanValue EXPERIMENTAL_SETTINGS_POPUP_DISABLED; @@ -73,7 +72,7 @@ public final class AntarchyMiscConfig { DREAM_SAND_JUMP_VELOCITY_MULTIPLIER = b.comment("Multiplier applied to upward jump velocity when leaving dream sand.") .defineInRange("jumpVelocityMultiplier", 1.3D, 0.0D, 16.0D); DREAM_SAND_GRAVITY_MULTIPLIER = b.comment("Multiplier applied to downward velocity while low gravity is active.") .defineInRange("gravityMultiplier", 0.45D, 0.0D, 1.0D); DREAM_SAND_EFFECT_DURATION_SECONDS = b.comment("Seconds the low-gravity effect remains active after leaving dream sand.") .defineInRange("effectDurationSeconds", 7.0D, 0.0D, 60.0D); - DREAM_SAND_FALL_DAMAGE_MULTIPLIER = b.comment("Multiplier applied to fall damage after dream sand low gravity.").defineInRange("fallDamageMultiplier", 0.4D, 0.0D, 16.0D); + DREAM_SAND_FALLING_BLOCK_GRAVITY_MULTIPLIER = b.comment("Multiplier applied to dream sand's own falling-block gravity (how slowly it falls as a block, distinct from the player low-gravity effect).").defineInRange("fallingBlockGravityMultiplier", 0.4D, 0.0D, 16.0D); b.pop(); @@ -147,7 +146,6 @@ public final class AntarchyMiscConfig { b.push("world"); DUPLICATOR_TREE_ENABLED = b.comment("If false, duplicator trees do not generate and duplicator saplings produce nothing.").define("duplicatorTreeEnabled", true); GLOW_VINES_UNDER_LEAVES = b.comment("Whether glow vines can be placed and survive when attached under leaf blocks.") .define("glowVinesUnderLeaves", true); - GLOWING_TORCHFLOWERS = b.comment("If true, torchflowers use the glowing behavior.").define("glowingTorchflowers", true); SWING_THROUGH_GRASS_ENABLED = b.comment("If true, empty collision plants like grass do not block melee target picking.") .define("swingThroughGrassEnabled", true); FABRIC_KEYBINDING_CONFLICT_FIX_ENABLED = b.define("fabricKeybindingConflictFixEnabled", true); EXPERIMENTAL_SETTINGS_POPUP_DISABLED = b.define("experimentalSettingsPopupDisabled", true); @@ -165,13 +163,12 @@ public final class AntarchyMiscConfig { static double dreamSandJumpVelocityMultiplier() { return DREAM_SAND_JUMP_VELOCITY_MULTIPLIER.get(); } static double dreamSandGravityMultiplier() { return DREAM_SAND_GRAVITY_MULTIPLIER.get(); } static double dreamSandEffectDurationSeconds() { return DREAM_SAND_EFFECT_DURATION_SECONDS.get(); } - static double dreamSandFallDamageMultiplier() { return DREAM_SAND_FALL_DAMAGE_MULTIPLIER.get(); } + static double dreamSandFallingBlockGravityMultiplier() { return DREAM_SAND_FALLING_BLOCK_GRAVITY_MULTIPLIER.get(); } static boolean ichorWitherEnabled() { return ICHOR_WITHER_ENABLED.get(); } static boolean duplicatorTreeEnabled() { return DUPLICATOR_TREE_ENABLED.get(); } static boolean glowVinesUnderLeaves() { return GLOW_VINES_UNDER_LEAVES.get(); } - static boolean glowingTorchflowers() { return GLOWING_TORCHFLOWERS.get(); } static boolean swingThroughGrassEnabled() { return SWING_THROUGH_GRASS_ENABLED.get(); } static boolean fabricKeybindingConflictFixEnabled() { return FABRIC_KEYBINDING_CONFLICT_FIX_ENABLED.get(); } static boolean experimentalSettingsPopupDisabled() { return EXPERIMENTAL_SETTINGS_POPUP_DISABLED.get(); } diff --git a/forge-1.20.1/src/main/java/com/craisinlord/antarchy/forge/AntarchyMobsConfig.java b/forge-1.20.1/src/main/java/com/craisinlord/antarchy/forge/AntarchyMobsConfig.java index d5a5cb75..f7eb04eb 100644 --- a/forge-1.20.1/src/main/java/com/craisinlord/antarchy/forge/AntarchyMobsConfig.java +++ b/forge-1.20.1/src/main/java/com/craisinlord/antarchy/forge/AntarchyMobsConfig.java @@ -71,6 +71,25 @@ public final class AntarchyMobsConfig { // Emperor Scorpion + private static final ForgeConfigSpec.DoubleValue EMPEROR_SCORPION_HEALTH; + private static final ForgeConfigSpec.DoubleValue EMPEROR_SCORPION_ATTACK_DAMAGE; + private static final ForgeConfigSpec.DoubleValue EMPEROR_SCORPION_ARMOR; + private static final ForgeConfigSpec.DoubleValue EMPEROR_SCORPION_KNOCKBACK_RESISTANCE; + private static final ForgeConfigSpec.DoubleValue EMPEROR_SCORPION_MOVEMENT_SPEED; + private static final ForgeConfigSpec.DoubleValue EMPEROR_SCORPION_FOLLOW_RANGE; + private static final ForgeConfigSpec.IntValue EMPEROR_SCORPION_XP_REWARD; + private static final ForgeConfigSpec.IntValue EMPEROR_SCORPION_CLAW_ANIM_TICKS; + private static final ForgeConfigSpec.IntValue EMPEROR_SCORPION_CLAW_HIT_TICK; + private static final ForgeConfigSpec.IntValue EMPEROR_SCORPION_CLAW_COOLDOWN_TICKS; + private static final ForgeConfigSpec.IntValue EMPEROR_SCORPION_STING_ANIM_TICKS; + private static final ForgeConfigSpec.IntValue EMPEROR_SCORPION_STING_HIT_TICK; + private static final ForgeConfigSpec.IntValue EMPEROR_SCORPION_STING_COOLDOWN_TICKS; + private static final ForgeConfigSpec.IntValue EMPEROR_SCORPION_POISON_TICKS; + private static final ForgeConfigSpec.IntValue EMPEROR_SCORPION_WEAKNESS_TICKS; + private static final ForgeConfigSpec.IntValue EMPEROR_SCORPION_HARDEN_COOLDOWN_TICKS; + private static final ForgeConfigSpec.IntValue EMPEROR_SCORPION_SUMMON_INTERVAL_TICKS; + private static final ForgeConfigSpec.IntValue EMPEROR_SCORPION_MAX_SUMMONED_SCORPIONS; + private static final ForgeConfigSpec.IntValue EMPEROR_SCORPION_MAX_NEARBY_SCORPIONS; private static final ForgeConfigSpec.DoubleValue EMPEROR_SCORPION_DAMAGE_RANGE; private static final ForgeConfigSpec.IntValue EMPEROR_SCORPION_MIN_DESPAWN_TICKS; @@ -79,7 +98,12 @@ public final class AntarchyMobsConfig { private static final ForgeConfigSpec.DoubleValue KRAKEN_HEALTH; private static final ForgeConfigSpec.DoubleValue KRAKEN_ATTACK_DAMAGE; - private static final ForgeConfigSpec.DoubleValue KRAKEN_PROJECTILE_DAMAGE_TAKEN_MULTIPLIER; + private static final ForgeConfigSpec.DoubleValue KRAKEN_ARMOR; + private static final ForgeConfigSpec.DoubleValue KRAKEN_KNOCKBACK_RESISTANCE; + private static final ForgeConfigSpec.DoubleValue KRAKEN_MOVEMENT_SPEED; + private static final ForgeConfigSpec.DoubleValue KRAKEN_FLYING_SPEED; + private static final ForgeConfigSpec.DoubleValue KRAKEN_BOSS_BAR_RANGE; + private static final ForgeConfigSpec.DoubleValue KRAKEN_LIGHTNING_DAMAGE_PHASE_ONE; private static final ForgeConfigSpec.BooleanValue KRAKEN_SQUID_SPAWN_ENABLED; private static final ForgeConfigSpec.BooleanValue KRAKEN_MASS_SPAWN_ENABLED; private static final ForgeConfigSpec.BooleanValue KRAKEN_REQUIRE_BAD_OMEN_TO_SUMMON; @@ -93,6 +117,11 @@ public final class AntarchyMobsConfig { private static final ForgeConfigSpec.DoubleValue BRUTALFLY_SWIPE_DAMAGE; private static final ForgeConfigSpec.DoubleValue BRUTALFLY_SPIT_DAMAGE; private static final ForgeConfigSpec.DoubleValue BRUTALFLY_DAMAGE_RANGE; + private static final ForgeConfigSpec.DoubleValue BRUTALFLY_ARMOR; + private static final ForgeConfigSpec.DoubleValue BRUTALFLY_ARMOR_TOUGHNESS; + private static final ForgeConfigSpec.DoubleValue BRUTALFLY_MOVEMENT_SPEED; + private static final ForgeConfigSpec.DoubleValue BRUTALFLY_FLYING_SPEED; + private static final ForgeConfigSpec.DoubleValue BRUTALFLY_KNOCKBACK_RESISTANCE; // Mantis @@ -122,7 +151,6 @@ public final class AntarchyMobsConfig { private static final ForgeConfigSpec.DoubleValue ROLLY_POLLY_ROLL_SPEED_MULTIPLIER; private static final ForgeConfigSpec.IntValue ROLLY_POLLY_TAME_CHANCE; private static final ForgeConfigSpec.DoubleValue ROLLY_POLLY_BOWLING_DAMAGE; - private static final ForgeConfigSpec.DoubleValue ROLLY_POLLY_TUMBLE_DAMAGE; private static final ForgeConfigSpec.DoubleValue ROLLY_POLLY_BOWLING_KNOCKBACK; private static final ForgeConfigSpec.DoubleValue ROLLY_POLLY_ARMOR; private static final ForgeConfigSpec.DoubleValue ROLLY_POLLY_ROLLED_ARMOR_BONUS; @@ -165,6 +193,9 @@ public final class AntarchyMobsConfig { private static final ForgeConfigSpec.DoubleValue NIGHTMARE_HEALTH; private static final ForgeConfigSpec.DoubleValue NIGHTMARE_ATTACK_DAMAGE; + private static final ForgeConfigSpec.DoubleValue NIGHTMARE_MOVEMENT_SPEED; + private static final ForgeConfigSpec.IntValue NIGHTMARE_WEAKNESS_TICKS; + private static final ForgeConfigSpec.IntValue NIGHTMARE_DREAD_TICKS; // Basilisk @@ -265,6 +296,89 @@ public final class AntarchyMobsConfig { private static final ForgeConfigSpec.DoubleValue LUCID_ATTACK_RANGE; private static final ForgeConfigSpec.DoubleValue LUCID_PEARL_INVERTED_DURATION_SECONDS; + private static final ForgeConfigSpec.DoubleValue LUCID_HEALTH; + private static final ForgeConfigSpec.DoubleValue LUCID_ATTACK_DAMAGE; + private static final ForgeConfigSpec.DoubleValue LUCID_MOVEMENT_SPEED; + private static final ForgeConfigSpec.DoubleValue LUCID_FLYING_SPEED; + private static final ForgeConfigSpec.DoubleValue LUCID_KNOCKBACK_RESISTANCE; + + + // Missile Squid + + private static final ForgeConfigSpec.DoubleValue MISSILE_SQUID_HEALTH; + private static final ForgeConfigSpec.DoubleValue MISSILE_SQUID_ATTACK_DAMAGE; + private static final ForgeConfigSpec.DoubleValue MISSILE_SQUID_MOVEMENT_SPEED; + private static final ForgeConfigSpec.DoubleValue MISSILE_SQUID_FLYING_SPEED; + private static final ForgeConfigSpec.DoubleValue MISSILE_SQUID_KNOCKBACK_RESISTANCE; + + + // Octopus Bomb + + private static final ForgeConfigSpec.DoubleValue OCTOPUS_BOMB_HEALTH; + private static final ForgeConfigSpec.DoubleValue OCTOPUS_BOMB_ATTACK_DAMAGE; + + + // Bed Bug + + private static final ForgeConfigSpec.DoubleValue BED_BUG_HEALTH; + private static final ForgeConfigSpec.DoubleValue BED_BUG_ATTACK_DAMAGE; + private static final ForgeConfigSpec.DoubleValue BED_BUG_MOVEMENT_SPEED; + private static final ForgeConfigSpec.DoubleValue BED_BUG_ARMOR; + + + // Cloud Shark + + private static final ForgeConfigSpec.DoubleValue CLOUD_SHARK_HEALTH; + private static final ForgeConfigSpec.DoubleValue CLOUD_SHARK_ATTACK_DAMAGE; + private static final ForgeConfigSpec.DoubleValue CLOUD_SHARK_MOVEMENT_SPEED; + private static final ForgeConfigSpec.DoubleValue CLOUD_SHARK_FLYING_SPEED; + private static final ForgeConfigSpec.DoubleValue CLOUD_SHARK_KNOCKBACK_RESISTANCE; + + + // Flying Squirrel + + private static final ForgeConfigSpec.DoubleValue FLYING_SQUIRREL_HEALTH; + private static final ForgeConfigSpec.DoubleValue FLYING_SQUIRREL_MOVEMENT_SPEED; + + + // Molevore + + private static final ForgeConfigSpec.DoubleValue MOLEVORE_HEALTH; + private static final ForgeConfigSpec.DoubleValue MOLEVORE_ATTACK_DAMAGE; + private static final ForgeConfigSpec.DoubleValue MOLEVORE_MOVEMENT_SPEED; + private static final ForgeConfigSpec.DoubleValue MOLEVORE_ARMOR; + private static final ForgeConfigSpec.DoubleValue MOLEVORE_KNOCKBACK_RESISTANCE; + private static final ForgeConfigSpec.DoubleValue MOLEVORE_FOLLOW_RANGE; + private static final ForgeConfigSpec.IntValue MOLEVORE_XP_REWARD; + private static final ForgeConfigSpec.IntValue MOLEVORE_SPIN_TICKS; + private static final ForgeConfigSpec.IntValue MOLEVORE_COOLDOWN_TICKS; + private static final ForgeConfigSpec.DoubleValue MOLEVORE_CHARGE_SPEED; + private static final ForgeConfigSpec.DoubleValue MOLEVORE_BREAK_RANGE; + private static final ForgeConfigSpec.DoubleValue MOLEVORE_BREAK_VERTICAL_RANGE; + private static final ForgeConfigSpec.DoubleValue MOLEVORE_BREAK_HALF_WIDTH; + + + // Moleworm + + private static final ForgeConfigSpec.DoubleValue MOLEWORM_HEALTH; + private static final ForgeConfigSpec.DoubleValue MOLEWORM_ATTACK_DAMAGE; + private static final ForgeConfigSpec.DoubleValue MOLEWORM_MOVEMENT_SPEED; + + + // Scorpion + + private static final ForgeConfigSpec.DoubleValue SCORPION_HEALTH; + private static final ForgeConfigSpec.DoubleValue SCORPION_ATTACK_DAMAGE; + private static final ForgeConfigSpec.DoubleValue SCORPION_MOVEMENT_SPEED; + private static final ForgeConfigSpec.DoubleValue SCORPION_ARMOR; + private static final ForgeConfigSpec.DoubleValue SCORPION_KNOCKBACK_RESISTANCE; + + + // Butterfly + + private static final ForgeConfigSpec.DoubleValue BUTTERFLY_HEALTH; + private static final ForgeConfigSpec.DoubleValue BUTTERFLY_MOVEMENT_SPEED; + private static final ForgeConfigSpec.DoubleValue BUTTERFLY_FLYING_SPEED; // Dread effect @@ -413,6 +527,25 @@ public final class AntarchyMobsConfig { // Emperor Scorpion b.push("emperorScorpion"); + EMPEROR_SCORPION_HEALTH = b.comment("Base max health.") .defineInRange("health", 300.0D, 1.0D, 32768.0D); + EMPEROR_SCORPION_ATTACK_DAMAGE = b.comment("Base attack damage.") .defineInRange("attackDamage", 28.0D, 0.0D, 1024.0D); + EMPEROR_SCORPION_ARMOR = b.comment("Base armor value.") .defineInRange("armor", 22.0D, 0.0D, 1024.0D); + EMPEROR_SCORPION_KNOCKBACK_RESISTANCE = b.comment("Base knockback resistance.") .defineInRange("knockbackResistance", 0.8D, 0.0D, 1.0D); + EMPEROR_SCORPION_MOVEMENT_SPEED = b.comment("Base movement speed.") .defineInRange("movementSpeed", 0.384D, 0.0D, 10.0D); + EMPEROR_SCORPION_FOLLOW_RANGE = b.comment("Base follow range.") .defineInRange("followRange", 80.0D, 1.0D, 256.0D); + EMPEROR_SCORPION_XP_REWARD = b.comment("Base experience reward.") .defineInRange("xpReward", 25, 0, 100000); + EMPEROR_SCORPION_CLAW_ANIM_TICKS = b.comment("Ticks for the claw attack animation window.") .defineInRange("clawAnimTicks", 23, 1, 400); + EMPEROR_SCORPION_CLAW_HIT_TICK = b.comment("Tick during the claw animation when damage is applied.").defineInRange("clawHitTick", 12, 0, 400); + EMPEROR_SCORPION_CLAW_COOLDOWN_TICKS = b.comment("Cooldown between claw attacks.") .defineInRange("clawCooldownTicks", 28, 0, 20000); + EMPEROR_SCORPION_STING_ANIM_TICKS = b.comment("Ticks for the sting attack animation window.") .defineInRange("stingAnimTicks", 25, 1, 400); + EMPEROR_SCORPION_STING_HIT_TICK = b.comment("Tick during the sting animation when damage is applied.").defineInRange("stingHitTick", 13, 0, 400); + EMPEROR_SCORPION_STING_COOLDOWN_TICKS = b.comment("Cooldown between sting attacks.") .defineInRange("stingCooldownTicks", 60, 0, 20000); + EMPEROR_SCORPION_POISON_TICKS = b.comment("Poison duration applied by the sting attack.") .defineInRange("poisonTicks", 300, 0, 20000); + EMPEROR_SCORPION_WEAKNESS_TICKS = b.comment("Weakness duration applied by the sting attack.") .defineInRange("weaknessTicks", 120, 0, 20000); + EMPEROR_SCORPION_SUMMON_INTERVAL_TICKS = b.comment("Ticks between minion scorpion summons while in combat.").defineInRange("summonIntervalTicks", 140, 20, 72000); + EMPEROR_SCORPION_MAX_SUMMONED_SCORPIONS = b.comment("Maximum scorpions summoned by the Emperor Scorpion at once.").defineInRange("maxSummonedScorpions", 4, 0, 32); + EMPEROR_SCORPION_MAX_NEARBY_SCORPIONS = b.comment("Maximum nearby scorpions allowed before summoning stops.").defineInRange("maxNearbyScorpions", 3, 0, 32); + EMPEROR_SCORPION_HARDEN_COOLDOWN_TICKS = b.comment("Cooldown before the Emperor Scorpion can harden its shell again.").defineInRange("hardenCooldownTicks", 2400, 0, 72000); EMPEROR_SCORPION_DAMAGE_RANGE = b .comment("Range in blocks a player must be within for the Emperor Scorpion to be able to take damage. Prevents cheesing it from outside its aggro range.") .defineInRange("damageRange", 80.0D, 1.0D, 256.0D); @@ -427,7 +560,12 @@ public final class AntarchyMobsConfig { b.push("kraken"); KRAKEN_HEALTH = b.comment("Base max health.") .defineInRange("health", 1500.0D, 1.0D, 32768.0D); KRAKEN_ATTACK_DAMAGE = b.comment("Base attack damage.") .defineInRange("attackDamage", 45.0D, 0.0D, 1024.0D); - KRAKEN_PROJECTILE_DAMAGE_TAKEN_MULTIPLIER = b.comment("Multiplier applied to projectile damage taken by the Kraken.").defineInRange("projectileDamageTakenMultiplier", 0.5D, 0.0D, 16.0D); + KRAKEN_ARMOR = b.comment("Base armor value.") .defineInRange("armor", 8.0D, 0.0D, 1024.0D); + KRAKEN_KNOCKBACK_RESISTANCE = b.comment("Base knockback resistance.") .defineInRange("knockbackResistance", 0.8D, 0.0D, 1.0D); + KRAKEN_MOVEMENT_SPEED = b.comment("Base movement speed.") .defineInRange("movementSpeed", 0.24D, 0.0D, 10.0D); + KRAKEN_FLYING_SPEED = b.comment("Base flying speed.") .defineInRange("flyingSpeed", 0.24D, 0.0D, 10.0D); + KRAKEN_BOSS_BAR_RANGE = b.comment("Range in blocks players see the Kraken's boss bar.") .defineInRange("bossBarRange", 40.0D, 1.0D, 256.0D); + KRAKEN_LIGHTNING_DAMAGE_PHASE_ONE = b.comment("Lightning strike damage dealt during phase one.") .defineInRange("lightningDamagePhaseOne", 6.0D, 0.0D, 1024.0D); KRAKEN_SQUID_SPAWN_ENABLED = b.comment("If true, a player killing a Missile Squid has a 1/100 chance to spawn a single Kraken nearby.") .define("squidSpawnEnabled", true); KRAKEN_MASS_SPAWN_ENABLED = b.comment("If true, a player killing a Missile Squid has a 1/500 chance to spawn 10 Krakens. Independent from the single spawn.").define("massSpawnEnabled", true); KRAKEN_REQUIRE_BAD_OMEN_TO_SUMMON = b.comment("If true, the killer must have Bad Omen to summon a single Kraken; chance scales with Bad Omen level. Mass spawn is unaffected by level but still requires Bad Omen when this is on.").define("requireBadOmenToSummon", true); @@ -443,6 +581,11 @@ public final class AntarchyMobsConfig { BRUTALFLY_SWIPE_DAMAGE = b.comment("Damage dealt by a claw swipe.") .defineInRange("swipeDamage", 15.0D, 0.0D, 1024.0D); BRUTALFLY_SPIT_DAMAGE = b.comment("Direct hit damage from a spit orb before lingering effect.").defineInRange("spitDamage", 5.0D, 0.0D, 1024.0D); BRUTALFLY_DAMAGE_RANGE = b.comment("Range in blocks a player must be within for the Brutalfly to be able to take damage. Prevents cheesing it from outside its aggro range.").defineInRange("damageRange", 48.0D, 1.0D, 256.0D); + BRUTALFLY_ARMOR = b.comment("Base armor value.").defineInRange("armor", 10.0D, 0.0D, 1024.0D); + BRUTALFLY_ARMOR_TOUGHNESS = b.comment("Base armor toughness.").defineInRange("armorToughness", 4.0D, 0.0D, 100.0D); + BRUTALFLY_MOVEMENT_SPEED = b.comment("Base movement speed.").defineInRange("movementSpeed", 0.34D, 0.0D, 10.0D); + BRUTALFLY_FLYING_SPEED = b.comment("Base flying speed.").defineInRange("flyingSpeed", 0.55D, 0.0D, 10.0D); + BRUTALFLY_KNOCKBACK_RESISTANCE = b.comment("Base knockback resistance.").defineInRange("knockbackResistance", 0.7D, 0.0D, 1.0D); b.pop(); @@ -478,7 +621,6 @@ public final class AntarchyMobsConfig { ROLLY_POLLY_ROLL_SPEED_MULTIPLIER = b.comment("Speed multiplier while rolled up.") .defineInRange("rollSpeedMultiplier", 2.2D, 0.1D, 20.0D); ROLLY_POLLY_TAME_CHANCE = b.comment("Taming succeeds with a 1-in-N chance per food item.") .defineInRange("tameChance", 3, 1, 100); ROLLY_POLLY_BOWLING_DAMAGE = b.comment("Damage dealt by a tamed rolly polly's rolling bowling attack.") .defineInRange("bowlingDamage", 3.0D, 0.0D, 1024.0D); - ROLLY_POLLY_TUMBLE_DAMAGE = b.comment("Damage dealt by a tumbling rolly polly impact.").defineInRange("tumbleDamage", 3.0D, 0.0D, 1024.0D); ROLLY_POLLY_BOWLING_KNOCKBACK = b.comment("Knockback strength of a tamed rolly polly's rolling bowling attack.") .defineInRange("bowlingKnockback", 0.8D, 0.0D, 20.0D); ROLLY_POLLY_ARMOR = b.comment("Base armor value.") .defineInRange("armor", 2.0D, 0.0D, 100.0D); ROLLY_POLLY_ROLLED_ARMOR_BONUS = b.comment("Additional armor gained while rolled up.") .defineInRange("rolledArmorBonus", 16.0D, 0.0D, 100.0D); @@ -534,6 +676,9 @@ public final class AntarchyMobsConfig { b.push("nightmare"); NIGHTMARE_HEALTH = b.comment("Base max health.").defineInRange("health", 180.0D, 1.0D, 32768.0D); NIGHTMARE_ATTACK_DAMAGE = b.comment("Base attack damage.").defineInRange("attackDamage", 16.0D, 0.0D, 1024.0D); + NIGHTMARE_MOVEMENT_SPEED = b.comment("Base movement speed.").defineInRange("movementSpeed", 0.28D, 0.0D, 10.0D); + NIGHTMARE_WEAKNESS_TICKS = b.comment("Weakness duration applied on hit.").defineInRange("weaknessTicks", 100, 0, 20000); + NIGHTMARE_DREAD_TICKS = b.comment("Dread duration applied on hit.").defineInRange("dreadTicks", 160, 0, 20000); b.pop(); @@ -577,6 +722,107 @@ public final class AntarchyMobsConfig { LUCID_PEARL_INVERTED_DURATION_SECONDS = b .comment("How long the Inverted effect from a Lucid pearl lasts, in seconds.") .defineInRange("pearlInvertedDurationSeconds", 6.0D, 0.0D, 3600.0D); + LUCID_HEALTH = b.comment("Base max health.").defineInRange("health", 30.0D, 1.0D, 32768.0D); + LUCID_ATTACK_DAMAGE = b.comment("Base attack damage.").defineInRange("attackDamage", 4.0D, 0.0D, 1024.0D); + LUCID_MOVEMENT_SPEED = b.comment("Base movement speed.").defineInRange("movementSpeed", 0.22D, 0.0D, 10.0D); + LUCID_FLYING_SPEED = b.comment("Base flying speed.").defineInRange("flyingSpeed", 0.35D, 0.0D, 10.0D); + LUCID_KNOCKBACK_RESISTANCE = b.comment("Base knockback resistance.").defineInRange("knockbackResistance", 0.5D, 0.0D, 1.0D); + b.pop(); + + + // Missile Squid + + b.push("missileSquid"); + MISSILE_SQUID_HEALTH = b.comment("Base max health.").defineInRange("health", 50.0D, 1.0D, 32768.0D); + MISSILE_SQUID_ATTACK_DAMAGE = b.comment("Base attack damage.").defineInRange("attackDamage", 6.0D, 0.0D, 1024.0D); + MISSILE_SQUID_MOVEMENT_SPEED = b.comment("Base movement speed.").defineInRange("movementSpeed", 0.84D, 0.0D, 10.0D); + MISSILE_SQUID_FLYING_SPEED = b.comment("Base flying speed.").defineInRange("flyingSpeed", 0.84D, 0.0D, 10.0D); + MISSILE_SQUID_KNOCKBACK_RESISTANCE = b.comment("Base knockback resistance.").defineInRange("knockbackResistance", 0.15D, 0.0D, 1.0D); + b.pop(); + + + // Octopus Bomb + + b.push("octopusBomb"); + OCTOPUS_BOMB_HEALTH = b.comment("Base max health.").defineInRange("health", 100.0D, 1.0D, 32768.0D); + OCTOPUS_BOMB_ATTACK_DAMAGE = b.comment("Base attack damage.").defineInRange("attackDamage", 16.0D, 0.0D, 1024.0D); + b.pop(); + + + // Bed Bug + + b.push("bedBug"); + BED_BUG_HEALTH = b.comment("Base max health.").defineInRange("health", 18.0D, 1.0D, 32768.0D); + BED_BUG_ATTACK_DAMAGE = b.comment("Base attack damage.").defineInRange("attackDamage", 4.0D, 0.0D, 1024.0D); + BED_BUG_MOVEMENT_SPEED = b.comment("Base movement speed.").defineInRange("movementSpeed", 0.24D, 0.0D, 10.0D); + BED_BUG_ARMOR = b.comment("Base armor value.").defineInRange("armor", 2.0D, 0.0D, 1024.0D); + b.pop(); + + + // Cloud Shark + + b.push("cloudShark"); + CLOUD_SHARK_HEALTH = b.comment("Base max health.").defineInRange("health", 40.0D, 1.0D, 32768.0D); + CLOUD_SHARK_ATTACK_DAMAGE = b.comment("Base attack damage.").defineInRange("attackDamage", 5.0D, 0.0D, 1024.0D); + CLOUD_SHARK_MOVEMENT_SPEED = b.comment("Base movement speed.").defineInRange("movementSpeed", 0.34D, 0.0D, 10.0D); + CLOUD_SHARK_FLYING_SPEED = b.comment("Base flying speed.").defineInRange("flyingSpeed", 0.5D, 0.0D, 10.0D); + CLOUD_SHARK_KNOCKBACK_RESISTANCE = b.comment("Base knockback resistance.").defineInRange("knockbackResistance", 0.2D, 0.0D, 1.0D); + b.pop(); + + + // Flying Squirrel + + b.push("flyingSquirrel"); + FLYING_SQUIRREL_HEALTH = b.comment("Base max health.").defineInRange("health", 10.0D, 1.0D, 32768.0D); + FLYING_SQUIRREL_MOVEMENT_SPEED = b.comment("Base movement speed.").defineInRange("movementSpeed", 0.35D, 0.0D, 10.0D); + b.pop(); + + + // Molevore + + b.push("molevore"); + MOLEVORE_HEALTH = b.comment("Base max health.").defineInRange("health", 60.0D, 1.0D, 32768.0D); + MOLEVORE_ATTACK_DAMAGE = b.comment("Base attack damage.").defineInRange("attackDamage", 10.0D, 0.0D, 1024.0D); + MOLEVORE_MOVEMENT_SPEED = b.comment("Base movement speed.").defineInRange("movementSpeed", 0.27D, 0.0D, 10.0D); + MOLEVORE_ARMOR = b.comment("Base armor value.").defineInRange("armor", 6.0D, 0.0D, 1024.0D); + MOLEVORE_KNOCKBACK_RESISTANCE = b.comment("Base knockback resistance.").defineInRange("knockbackResistance", 0.65D, 0.0D, 1.0D); + MOLEVORE_FOLLOW_RANGE = b.comment("Base follow range.").defineInRange("followRange", 28.0D, 1.0D, 256.0D); + MOLEVORE_XP_REWARD = b.comment("Base experience reward.").defineInRange("xpReward", 20, 0, 100000); + MOLEVORE_SPIN_TICKS = b.comment("Ticks the Molevore spins before charging.").defineInRange("spinTicks", 12, 0, 400); + MOLEVORE_COOLDOWN_TICKS = b.comment("Cooldown between charge attacks.").defineInRange("cooldownTicks", 60, 0, 20000); + MOLEVORE_CHARGE_SPEED = b.comment("Speed multiplier while charging.").defineInRange("chargeSpeed", 1.15D, 0.0D, 20.0D); + MOLEVORE_BREAK_RANGE = b.comment("Forward range in blocks for breaking blocks while charging.").defineInRange("breakRange", 1.8D, 0.0D, 32.0D); + MOLEVORE_BREAK_VERTICAL_RANGE = b.comment("Vertical range in blocks for breaking blocks while charging.").defineInRange("breakVerticalRange", 2.2D, 0.0D, 32.0D); + MOLEVORE_BREAK_HALF_WIDTH = b.comment("Half-width in blocks for breaking blocks while charging.").defineInRange("breakHalfWidth", 1.1D, 0.0D, 16.0D); + b.pop(); + + + // Moleworm + + b.push("moleworm"); + MOLEWORM_HEALTH = b.comment("Base max health.").defineInRange("health", 8.0D, 1.0D, 32768.0D); + MOLEWORM_ATTACK_DAMAGE = b.comment("Base attack damage.").defineInRange("attackDamage", 1.0D, 0.0D, 1024.0D); + MOLEWORM_MOVEMENT_SPEED = b.comment("Base movement speed.").defineInRange("movementSpeed", 0.25D, 0.0D, 10.0D); + b.pop(); + + + // Scorpion + + b.push("scorpion"); + SCORPION_HEALTH = b.comment("Base max health.").defineInRange("health", 30.0D, 1.0D, 32768.0D); + SCORPION_ATTACK_DAMAGE = b.comment("Base attack damage.").defineInRange("attackDamage", 5.0D, 0.0D, 1024.0D); + SCORPION_MOVEMENT_SPEED = b.comment("Base movement speed.").defineInRange("movementSpeed", 0.29D, 0.0D, 10.0D); + SCORPION_ARMOR = b.comment("Base armor value.").defineInRange("armor", 2.0D, 0.0D, 1024.0D); + SCORPION_KNOCKBACK_RESISTANCE = b.comment("Base knockback resistance.").defineInRange("knockbackResistance", 0.2D, 0.0D, 1.0D); + b.pop(); + + + // Butterfly + + b.push("butterfly"); + BUTTERFLY_HEALTH = b.comment("Base max health.").defineInRange("health", 6.0D, 1.0D, 32768.0D); + BUTTERFLY_MOVEMENT_SPEED = b.comment("Base movement speed.").defineInRange("movementSpeed", 0.3D, 0.0D, 10.0D); + BUTTERFLY_FLYING_SPEED = b.comment("Base flying speed.").defineInRange("flyingSpeed", 0.55D, 0.0D, 10.0D); b.pop(); @@ -716,12 +962,36 @@ public final class AntarchyMobsConfig { static double jumpyBugLatchDamage() { return JUMPY_BUG_LATCH_DAMAGE.get(); } static double jumpyBugCamouflageAlpha() { return JUMPY_BUG_CAMOUFLAGE_ALPHA.get(); } + static double emperorScorpionHealth() { return EMPEROR_SCORPION_HEALTH.get(); } + static double emperorScorpionAttackDamage() { return EMPEROR_SCORPION_ATTACK_DAMAGE.get(); } + static double emperorScorpionArmor() { return EMPEROR_SCORPION_ARMOR.get(); } + static double emperorScorpionKnockbackResistance() { return EMPEROR_SCORPION_KNOCKBACK_RESISTANCE.get(); } + static double emperorScorpionMovementSpeed() { return EMPEROR_SCORPION_MOVEMENT_SPEED.get(); } + static double emperorScorpionFollowRange() { return EMPEROR_SCORPION_FOLLOW_RANGE.get(); } + static int emperorScorpionXpReward() { return EMPEROR_SCORPION_XP_REWARD.get(); } + static int emperorScorpionClawAnimTicks() { return EMPEROR_SCORPION_CLAW_ANIM_TICKS.get(); } + static int emperorScorpionClawHitTick() { return EMPEROR_SCORPION_CLAW_HIT_TICK.get(); } + static int emperorScorpionClawCooldownTicks() { return EMPEROR_SCORPION_CLAW_COOLDOWN_TICKS.get(); } + static int emperorScorpionStingAnimTicks() { return EMPEROR_SCORPION_STING_ANIM_TICKS.get(); } + static int emperorScorpionStingHitTick() { return EMPEROR_SCORPION_STING_HIT_TICK.get(); } + static int emperorScorpionStingCooldownTicks() { return EMPEROR_SCORPION_STING_COOLDOWN_TICKS.get(); } + static int emperorScorpionPoisonTicks() { return EMPEROR_SCORPION_POISON_TICKS.get(); } + static int emperorScorpionWeaknessTicks() { return EMPEROR_SCORPION_WEAKNESS_TICKS.get(); } + static int emperorScorpionSummonIntervalTicks() { return EMPEROR_SCORPION_SUMMON_INTERVAL_TICKS.get(); } + static int emperorScorpionMaxSummonedScorpions() { return EMPEROR_SCORPION_MAX_SUMMONED_SCORPIONS.get(); } + static int emperorScorpionMaxNearbyScorpions() { return EMPEROR_SCORPION_MAX_NEARBY_SCORPIONS.get(); } + static int emperorScorpionHardenCooldownTicks() { return EMPEROR_SCORPION_HARDEN_COOLDOWN_TICKS.get(); } static double emperorScorpionDamageRange() { return EMPEROR_SCORPION_DAMAGE_RANGE.get(); } static int emperorScorpionMinDespawnTicks() { return EMPEROR_SCORPION_MIN_DESPAWN_TICKS.get(); } static double krakenHealth() { return KRAKEN_HEALTH.get(); } static double krakenAttackDamage() { return KRAKEN_ATTACK_DAMAGE.get(); } - static double krakenProjectileDamageTakenMultiplier() { return KRAKEN_PROJECTILE_DAMAGE_TAKEN_MULTIPLIER.get(); } + static double krakenArmor() { return KRAKEN_ARMOR.get(); } + static double krakenKnockbackResistance() { return KRAKEN_KNOCKBACK_RESISTANCE.get(); } + static double krakenMovementSpeed() { return KRAKEN_MOVEMENT_SPEED.get(); } + static double krakenFlyingSpeed() { return KRAKEN_FLYING_SPEED.get(); } + static double krakenBossBarRange() { return KRAKEN_BOSS_BAR_RANGE.get(); } + static double krakenLightningDamagePhaseOne() { return KRAKEN_LIGHTNING_DAMAGE_PHASE_ONE.get(); } static boolean krakenSquidSpawnEnabled() { return KRAKEN_SQUID_SPAWN_ENABLED.get(); } static boolean krakenMassSpawnEnabled() { return KRAKEN_MASS_SPAWN_ENABLED.get(); } static boolean krakenRequireBadOmenToSummon() { return KRAKEN_REQUIRE_BAD_OMEN_TO_SUMMON.get(); } @@ -732,6 +1002,11 @@ public final class AntarchyMobsConfig { static double brutalflySwipeDamage() { return BRUTALFLY_SWIPE_DAMAGE.get(); } static double brutalflySpitDamage() { return BRUTALFLY_SPIT_DAMAGE.get(); } static double brutalflyDamageRange() { return BRUTALFLY_DAMAGE_RANGE.get(); } + static double brutalflyArmor() { return BRUTALFLY_ARMOR.get(); } + static double brutalflyArmorToughness() { return BRUTALFLY_ARMOR_TOUGHNESS.get(); } + static double brutalflyMovementSpeed() { return BRUTALFLY_MOVEMENT_SPEED.get(); } + static double brutalflyFlyingSpeed() { return BRUTALFLY_FLYING_SPEED.get(); } + static double brutalflyKnockbackResistance() { return BRUTALFLY_KNOCKBACK_RESISTANCE.get(); } static double mantisHealth() { return MANTIS_HEALTH.get(); } static double mantisAttackDamage() { return MANTIS_ATTACK_DAMAGE.get(); } @@ -750,7 +1025,6 @@ public final class AntarchyMobsConfig { static double rollyPollyRollSpeedMultiplier() { return ROLLY_POLLY_ROLL_SPEED_MULTIPLIER.get(); } static int rollyPollyTameChance() { return ROLLY_POLLY_TAME_CHANCE.get(); } static double rollyPollyBowlingDamage() { return ROLLY_POLLY_BOWLING_DAMAGE.get(); } - static double rollyPollyTumbleDamage() { return ROLLY_POLLY_TUMBLE_DAMAGE.get(); } static double rollyPollyBowlingKnockback() { return ROLLY_POLLY_BOWLING_KNOCKBACK.get(); } static double rollyPollyArmor() { return ROLLY_POLLY_ARMOR.get(); } static double rollyPollyRolledArmorBonus() { return ROLLY_POLLY_ROLLED_ARMOR_BONUS.get(); } @@ -777,6 +1051,9 @@ public final class AntarchyMobsConfig { static double nightmareHealth() { return NIGHTMARE_HEALTH.get(); } static double nightmareAttackDamage() { return NIGHTMARE_ATTACK_DAMAGE.get(); } + static double nightmareMovementSpeed() { return NIGHTMARE_MOVEMENT_SPEED.get(); } + static int nightmareWeaknessTicks() { return NIGHTMARE_WEAKNESS_TICKS.get(); } + static int nightmareDreadTicks() { return NIGHTMARE_DREAD_TICKS.get(); } static boolean basiliskPetrifyingGazeEnabled() { return BASILISK_PETRIFYING_GAZE_ENABLED.get(); } static int basiliskSpawnMaxLightLevel() { return BASILISK_SPAWN_MAX_LIGHT_LEVEL.get(); } @@ -802,6 +1079,62 @@ public final class AntarchyMobsConfig { static double lucidAttackRange() { return LUCID_ATTACK_RANGE.get(); } static double lucidPearlInvertedDurationSeconds() { return LUCID_PEARL_INVERTED_DURATION_SECONDS.get(); } + static double lucidHealth() { return LUCID_HEALTH.get(); } + static double lucidAttackDamage() { return LUCID_ATTACK_DAMAGE.get(); } + static double lucidMovementSpeed() { return LUCID_MOVEMENT_SPEED.get(); } + static double lucidFlyingSpeed() { return LUCID_FLYING_SPEED.get(); } + static double lucidKnockbackResistance() { return LUCID_KNOCKBACK_RESISTANCE.get(); } + + static double missileSquidHealth() { return MISSILE_SQUID_HEALTH.get(); } + static double missileSquidAttackDamage() { return MISSILE_SQUID_ATTACK_DAMAGE.get(); } + static double missileSquidMovementSpeed() { return MISSILE_SQUID_MOVEMENT_SPEED.get(); } + static double missileSquidFlyingSpeed() { return MISSILE_SQUID_FLYING_SPEED.get(); } + static double missileSquidKnockbackResistance() { return MISSILE_SQUID_KNOCKBACK_RESISTANCE.get(); } + + static double octopusBombHealth() { return OCTOPUS_BOMB_HEALTH.get(); } + static double octopusBombAttackDamage() { return OCTOPUS_BOMB_ATTACK_DAMAGE.get(); } + + static double bedBugHealth() { return BED_BUG_HEALTH.get(); } + static double bedBugAttackDamage() { return BED_BUG_ATTACK_DAMAGE.get(); } + static double bedBugMovementSpeed() { return BED_BUG_MOVEMENT_SPEED.get(); } + static double bedBugArmor() { return BED_BUG_ARMOR.get(); } + + static double cloudSharkHealth() { return CLOUD_SHARK_HEALTH.get(); } + static double cloudSharkAttackDamage() { return CLOUD_SHARK_ATTACK_DAMAGE.get(); } + static double cloudSharkMovementSpeed() { return CLOUD_SHARK_MOVEMENT_SPEED.get(); } + static double cloudSharkFlyingSpeed() { return CLOUD_SHARK_FLYING_SPEED.get(); } + static double cloudSharkKnockbackResistance() { return CLOUD_SHARK_KNOCKBACK_RESISTANCE.get(); } + + static double flyingSquirrelHealth() { return FLYING_SQUIRREL_HEALTH.get(); } + static double flyingSquirrelMovementSpeed() { return FLYING_SQUIRREL_MOVEMENT_SPEED.get(); } + + static double molevoreHealth() { return MOLEVORE_HEALTH.get(); } + static double molevoreAttackDamage() { return MOLEVORE_ATTACK_DAMAGE.get(); } + static double molevoreMovementSpeed() { return MOLEVORE_MOVEMENT_SPEED.get(); } + static double molevoreArmor() { return MOLEVORE_ARMOR.get(); } + static double molevoreKnockbackResistance() { return MOLEVORE_KNOCKBACK_RESISTANCE.get(); } + static double molevoreFollowRange() { return MOLEVORE_FOLLOW_RANGE.get(); } + static int molevoreXpReward() { return MOLEVORE_XP_REWARD.get(); } + static int molevoreSpinTicks() { return MOLEVORE_SPIN_TICKS.get(); } + static int molevoreCooldownTicks() { return MOLEVORE_COOLDOWN_TICKS.get(); } + static double molevoreChargeSpeed() { return MOLEVORE_CHARGE_SPEED.get(); } + static double molevoreBreakRange() { return MOLEVORE_BREAK_RANGE.get(); } + static double molevoreBreakVerticalRange() { return MOLEVORE_BREAK_VERTICAL_RANGE.get(); } + static double molevoreBreakHalfWidth() { return MOLEVORE_BREAK_HALF_WIDTH.get(); } + + static double molewormHealth() { return MOLEWORM_HEALTH.get(); } + static double molewormAttackDamage() { return MOLEWORM_ATTACK_DAMAGE.get(); } + static double molewormMovementSpeed() { return MOLEWORM_MOVEMENT_SPEED.get(); } + + static double scorpionHealth() { return SCORPION_HEALTH.get(); } + static double scorpionAttackDamage() { return SCORPION_ATTACK_DAMAGE.get(); } + static double scorpionMovementSpeed() { return SCORPION_MOVEMENT_SPEED.get(); } + static double scorpionArmor() { return SCORPION_ARMOR.get(); } + static double scorpionKnockbackResistance() { return SCORPION_KNOCKBACK_RESISTANCE.get(); } + + static double butterflyHealth() { return BUTTERFLY_HEALTH.get(); } + static double butterflyMovementSpeed() { return BUTTERFLY_MOVEMENT_SPEED.get(); } + static double butterflyFlyingSpeed() { return BUTTERFLY_FLYING_SPEED.get(); } static double toreterrorHealth() { return TORETERROR_HEALTH.get(); } static double toreterrorDamageRange() { return TORETERROR_DAMAGE_RANGE.get(); } diff --git a/forge-1.20.1/src/main/java/com/craisinlord/antarchy/forge/AntarchyToolsConfig.java b/forge-1.20.1/src/main/java/com/craisinlord/antarchy/forge/AntarchyToolsConfig.java index 4627b4e4..01126de9 100644 --- a/forge-1.20.1/src/main/java/com/craisinlord/antarchy/forge/AntarchyToolsConfig.java +++ b/forge-1.20.1/src/main/java/com/craisinlord/antarchy/forge/AntarchyToolsConfig.java @@ -46,13 +46,6 @@ public final class AntarchyToolsConfig { private static final ForgeConfigSpec.IntValue ULTIMATE_CROSSBOW_ENCHANTABILITY; - // Ultimate Mace - - private static final ForgeConfigSpec.DoubleValue ULTIMATE_MACE_DAMAGE_MULTIPLIER; - private static final ForgeConfigSpec.DoubleValue ULTIMATE_MACE_ATTACK_SPEED; - private static final ForgeConfigSpec.IntValue ULTIMATE_MACE_ENCHANTABILITY; - - // Ultimate Armor private static final ForgeConfigSpec.BooleanValue ULTIMATE_ARMOR_COMES_ENCHANTED; @@ -99,15 +92,12 @@ public final class AntarchyToolsConfig { private static final ForgeConfigSpec.DoubleValue BIG_BERTHA_NONE_MODE_DAMAGE_BONUS_PERCENT; private static final ForgeConfigSpec.DoubleValue BIG_BERTHA_NIGHTMARE_DAMAGE_BONUS_PERCENT; private static final ForgeConfigSpec.DoubleValue SCORPION_WHIP_BASE_DAMAGE; - private static final ForgeConfigSpec.DoubleValue SCORPION_WHIP_REACH_BONUS; private static final ForgeConfigSpec.IntValue SCORPION_WHIP_POISON_DURATION_TICKS; private static final ForgeConfigSpec.DoubleValue SCORPION_WHIP_TETHER_MAX_RANGE; private static final ForgeConfigSpec.DoubleValue SCORPION_WHIP_SNAP_BONUS_DAMAGE; private static final ForgeConfigSpec.DoubleValue SCORPION_WHIP_PULL_STRENGTH; private static final ForgeConfigSpec.DoubleValue SCORPION_WHIP_HEAVY_PULL_MULTIPLIER; private static final ForgeConfigSpec.DoubleValue SCORPION_WHIP_SELF_PULL_MULTIPLIER; - private static final ForgeConfigSpec.IntValue SCORPION_WHIP_REEL_COOLDOWN_TICKS; - private static final ForgeConfigSpec.IntValue SCORPION_WHIP_SNAP_COOLDOWN_TICKS; private static final ForgeConfigSpec.IntValue BLOOD_CRYSTAL_KATANA_ATTACK_DAMAGE; private static final ForgeConfigSpec.DoubleValue BLOOD_CRYSTAL_KATANA_LAUNCH_STRENGTH; private static final ForgeConfigSpec.IntValue BLOOD_CRYSTAL_KATANA_TRAIL_DURATION_TICKS; @@ -124,8 +114,11 @@ public final class AntarchyToolsConfig { private static final ForgeConfigSpec.DoubleValue NIGHTMARE_LEGGINGS_ARMOR_TOUGHNESS; private static final ForgeConfigSpec.DoubleValue NIGHTMARE_BOOTS_ARMOR_TOUGHNESS; private static final ForgeConfigSpec.DoubleValue NIGHTMARE_ARMOR_KNOCKBACK_RESISTANCE; + private static final ForgeConfigSpec.DoubleValue NIGHTMARE_HELMET_DOUBLE_DAMAGE_CHANCE; + private static final ForgeConfigSpec.DoubleValue NIGHTMARE_CHESTPLATE_DOUBLE_DAMAGE_CHANCE; + private static final ForgeConfigSpec.DoubleValue NIGHTMARE_LEGGINGS_DOUBLE_DAMAGE_CHANCE; + private static final ForgeConfigSpec.DoubleValue NIGHTMARE_BOOTS_DOUBLE_DAMAGE_CHANCE; private static final ForgeConfigSpec.DoubleValue PRIMORDIAL_ARMOR_KNOCKBACK_PER_PIECE; - private static final ForgeConfigSpec.DoubleValue NIGHTMARE_ARMOR_DREAD_AURA_RANGE_PER_PIECE; private static final ForgeConfigSpec.DoubleValue NIGHTMARE_SWORD_BASE_DAMAGE; private static final ForgeConfigSpec.DoubleValue NIGHTMARE_SWORD_ATTACK_SPEED; private static final ForgeConfigSpec.DoubleValue NIGHTMARE_SWORD_SCALING_FACTOR; @@ -215,8 +208,6 @@ public final class AntarchyToolsConfig { // Moggles private static final ForgeConfigSpec.DoubleValue MOGGLES_VISION_RADIUS; - private static final ForgeConfigSpec.IntValue MOGGLES_VISION_MAX_LIGHT; - private static final ForgeConfigSpec.DoubleValue MOGGLES_VISION_ALPHA; static { @@ -278,15 +269,6 @@ public final class AntarchyToolsConfig { b.pop(); - // Ultimate Mace - - b.push("ultimateMace"); - ULTIMATE_MACE_DAMAGE_MULTIPLIER = b.comment("Multiplier on both base damage and smash bonus. 1.5 = 50% stronger than a normal mace.").defineInRange("damageMultiplier", 1.5D, 0.1D, 16.0D); - ULTIMATE_MACE_ATTACK_SPEED = b.comment("Attack speed of the Ultimate Mace.") .defineInRange("attackSpeed", -3.4D, -10.0D, 10.0D); - ULTIMATE_MACE_ENCHANTABILITY = b.comment("Enchantability of the Ultimate Mace.") .defineInRange("enchantability", 20, 0, 100); - b.pop(); - - // Ultimate Armor b.push("ultimateArmor"); @@ -347,15 +329,12 @@ public final class AntarchyToolsConfig { b.push("scorpionWhip"); SCORPION_WHIP_BASE_DAMAGE = b.comment("Base lash damage of the Scorpion Stinger Whip.").defineInRange("baseDamage", 10.0D, 0.0D, 4096.0D); - SCORPION_WHIP_REACH_BONUS = b.comment("Extra entity interaction range in blocks while held in main hand.").defineInRange("reachBonus", 5.0D, 0.0D, 32.0D); SCORPION_WHIP_POISON_DURATION_TICKS = b.comment("Poison duration applied on lash.").defineInRange("poisonDurationTicks", 100, 0, 20000); SCORPION_WHIP_TETHER_MAX_RANGE = b.comment("Maximum tether distance before it breaks.").defineInRange("tetherMaxRange", 10.0D, 0.0D, 128.0D); SCORPION_WHIP_SNAP_BONUS_DAMAGE = b.comment("Bonus damage dealt when snapping the tether free.").defineInRange("snapBonusDamage", 6.0D, 0.0D, 4096.0D); SCORPION_WHIP_PULL_STRENGTH = b.comment("Pull strength applied to normal tethered targets.").defineInRange("pullStrength", 0.75D, 0.0D, 8.0D); SCORPION_WHIP_HEAVY_PULL_MULTIPLIER = b.comment("Reduced pull strength applied to heavy targets.").defineInRange("heavyPullMultiplier", 0.25D, 0.0D, 8.0D); SCORPION_WHIP_SELF_PULL_MULTIPLIER = b.comment("Self-pull strength toward heavy tethered targets.").defineInRange("selfPullMultiplier", 0.45D, 0.0D, 8.0D); - SCORPION_WHIP_REEL_COOLDOWN_TICKS = b.comment("Cooldown after reeling with the whip, in ticks.").defineInRange("reelCooldownTicks", 10, 0, 72000); - SCORPION_WHIP_SNAP_COOLDOWN_TICKS = b.comment("Cooldown after snapping the whip, in ticks.").defineInRange("snapCooldownTicks", 30, 0, 72000); b.pop(); b.push("bloodCrystalKatana"); @@ -377,8 +356,11 @@ public final class AntarchyToolsConfig { NIGHTMARE_LEGGINGS_ARMOR_TOUGHNESS = b.comment("Armor toughness of the Nightmare Leggings.") .defineInRange("leggingsToughness", 3.0D, 0.0D, 100.0D); NIGHTMARE_BOOTS_ARMOR_TOUGHNESS = b.comment("Armor toughness of the Nightmare Boots.") .defineInRange("bootsToughness", 3.0D, 0.0D, 100.0D); NIGHTMARE_ARMOR_KNOCKBACK_RESISTANCE = b.comment("Knockback resistance granted by each Nightmare Armor piece.") .defineInRange("knockbackResistance", 0.1D, 0.0D, 1.0D); + NIGHTMARE_HELMET_DOUBLE_DAMAGE_CHANCE = b.comment("Chance for the Nightmare Helmet to double incoming damage dealt back to attackers.").defineInRange("helmetDoubleDamageChance", 0.04D, 0.0D, 1.0D); + NIGHTMARE_CHESTPLATE_DOUBLE_DAMAGE_CHANCE = b.comment("Chance for the Nightmare Chestplate to double incoming damage dealt back to attackers.").defineInRange("chestplateDoubleDamageChance", 0.06D, 0.0D, 1.0D); + NIGHTMARE_LEGGINGS_DOUBLE_DAMAGE_CHANCE = b.comment("Chance for the Nightmare Leggings to double incoming damage dealt back to attackers.").defineInRange("leggingsDoubleDamageChance", 0.05D, 0.0D, 1.0D); + NIGHTMARE_BOOTS_DOUBLE_DAMAGE_CHANCE = b.comment("Chance for the Nightmare Boots to double incoming damage dealt back to attackers.").defineInRange("bootsDoubleDamageChance", 0.03D, 0.0D, 1.0D); PRIMORDIAL_ARMOR_KNOCKBACK_PER_PIECE = b.comment("Attack knockback added by each Primordial Armor piece.") .defineInRange("primordialArmorKnockbackPerPiece", 0.5D, 0.0D, 16.0D); - NIGHTMARE_ARMOR_DREAD_AURA_RANGE_PER_PIECE = b.comment("Additional Dread aura range added by each Nightmare armor piece.").defineInRange("dreadAuraRangePerPiece", 2.0D, 0.0D, 64.0D); b.pop(); b.push("nightmareSword"); @@ -531,8 +513,6 @@ public final class AntarchyToolsConfig { b.push("moggles"); MOGGLES_VISION_RADIUS = b.comment("Radius used by Moggles cave detection.").defineInRange("visionRadius", 20.0D, 1.0D, 128.0D); - MOGGLES_VISION_MAX_LIGHT = b.comment("Maximum block light level counted as dark enough for Moggles.").defineInRange("visionMaxLight", 7, 0, 15); - MOGGLES_VISION_ALPHA = b.comment("Overlay alpha used by Moggles vision rendering.").defineInRange("visionAlpha", 0.65D, 0.0D, 1.0D); b.pop(); SPEC = b.build(); @@ -568,10 +548,6 @@ public final class AntarchyToolsConfig { static double ultimateCrossbowChargeSpeedMultiplier() { return ULTIMATE_CROSSBOW_CHARGE_SPEED_MULTIPLIER.get(); } static int ultimateCrossbowEnchantability() { return ULTIMATE_CROSSBOW_ENCHANTABILITY.get(); } - static double ultimateMaceDamageMultiplier() { return ULTIMATE_MACE_DAMAGE_MULTIPLIER.get(); } - static double ultimateMaceAttackSpeed() { return ULTIMATE_MACE_ATTACK_SPEED.get(); } - static int ultimateMaceEnchantability() { return ULTIMATE_MACE_ENCHANTABILITY.get(); } - static boolean ultimateArmorComesEnchanted() { return ULTIMATE_ARMOR_COMES_ENCHANTED.get(); } static int ultimateArmorEnchantability() { return ULTIMATE_ARMOR_ENCHANTABILITY.get(); } static int ultimateHelmetArmorValue() { return ULTIMATE_HELMET_ARMOR_VALUE.get(); } @@ -611,15 +587,12 @@ public final class AntarchyToolsConfig { static int krakensGraspTentacleSlownessAmplifier() { return KRAKENS_GRASP_TENTACLE_SLOWNESS_AMPLIFIER.get(); } static int krakensGraspTentacleSlownessRefreshTicks() { return KRAKENS_GRASP_TENTACLE_SLOWNESS_REFRESH_TICKS.get(); } static double scorpionWhipBaseDamage() { return SCORPION_WHIP_BASE_DAMAGE.get(); } - static double scorpionWhipReachBonus() { return SCORPION_WHIP_REACH_BONUS.get(); } static int scorpionWhipPoisonDurationTicks() { return SCORPION_WHIP_POISON_DURATION_TICKS.get(); } static double scorpionWhipTetherMaxRange() { return SCORPION_WHIP_TETHER_MAX_RANGE.get(); } static double scorpionWhipSnapBonusDamage() { return SCORPION_WHIP_SNAP_BONUS_DAMAGE.get(); } static double scorpionWhipPullStrength() { return SCORPION_WHIP_PULL_STRENGTH.get(); } static double scorpionWhipHeavyPullMultiplier() { return SCORPION_WHIP_HEAVY_PULL_MULTIPLIER.get(); } static double scorpionWhipSelfPullMultiplier() { return SCORPION_WHIP_SELF_PULL_MULTIPLIER.get(); } - static int scorpionWhipReelCooldownTicks() { return SCORPION_WHIP_REEL_COOLDOWN_TICKS.get(); } - static int scorpionWhipSnapCooldownTicks() { return SCORPION_WHIP_SNAP_COOLDOWN_TICKS.get(); } static int bloodCrystalKatanaAttackDamage() { return BLOOD_CRYSTAL_KATANA_ATTACK_DAMAGE.get(); } static double bloodCrystalKatanaLaunchStrength() { return BLOOD_CRYSTAL_KATANA_LAUNCH_STRENGTH.get(); } static int bloodCrystalKatanaTrailDurationTicks() { return BLOOD_CRYSTAL_KATANA_TRAIL_DURATION_TICKS.get(); } @@ -633,8 +606,11 @@ public final class AntarchyToolsConfig { static double nightmareLeggingsArmorToughness() { return NIGHTMARE_LEGGINGS_ARMOR_TOUGHNESS.get(); } static double nightmareBootsArmorToughness() { return NIGHTMARE_BOOTS_ARMOR_TOUGHNESS.get(); } static double nightmareArmorKnockbackResistance() { return NIGHTMARE_ARMOR_KNOCKBACK_RESISTANCE.get(); } + static double nightmareHelmetDoubleDamageChance() { return NIGHTMARE_HELMET_DOUBLE_DAMAGE_CHANCE.get(); } + static double nightmareChestplateDoubleDamageChance() { return NIGHTMARE_CHESTPLATE_DOUBLE_DAMAGE_CHANCE.get(); } + static double nightmareLeggingsDoubleDamageChance() { return NIGHTMARE_LEGGINGS_DOUBLE_DAMAGE_CHANCE.get(); } + static double nightmareBootsDoubleDamageChance() { return NIGHTMARE_BOOTS_DOUBLE_DAMAGE_CHANCE.get(); } static double primordialArmorKnockbackPerPiece() { return PRIMORDIAL_ARMOR_KNOCKBACK_PER_PIECE.get(); } - static double nightmareArmorDreadAuraRangePerPiece() { return NIGHTMARE_ARMOR_DREAD_AURA_RANGE_PER_PIECE.get(); } static double nightmareSwordBaseDamage() { return NIGHTMARE_SWORD_BASE_DAMAGE.get(); } static double nightmareSwordAttackSpeed() { return NIGHTMARE_SWORD_ATTACK_SPEED.get(); } static double nightmareSwordScalingFactor() { return NIGHTMARE_SWORD_SCALING_FACTOR.get(); } @@ -701,8 +677,6 @@ public final class AntarchyToolsConfig { static int americanRegenerationDurationTicks() { return AMERICAN_REGENERATION_DURATION_TICKS.get(); } static int americanRegenerationAmplifier() { return AMERICAN_REGENERATION_AMPLIFIER.get(); } static double mogglesVisionRadius() { return MOGGLES_VISION_RADIUS.get(); } - static int mogglesVisionMaxLight() { return MOGGLES_VISION_MAX_LIGHT.get(); } - static double mogglesVisionAlpha() { return MOGGLES_VISION_ALPHA.get(); } } 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 067be629..2d34543e 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 @@ -98,25 +98,53 @@ public final class AntarchyConfigModuleNeoforge { AntarchySettings.setJumpyBugHealth(AntarchyMobsConfig.jumpyBugHealth()); AntarchySettings.setJumpyBugPounceDamage(AntarchyMobsConfig.jumpyBugPounceDamage()); - AntarchySettings.setJumpyBugLatchDamage(AntarchyMobsConfig.jumpyBugLatchDamage()); AntarchySettings.setJumpyBugCamouflageAlpha(AntarchyMobsConfig.jumpyBugCamouflageAlpha()); + AntarchySettings.setEmperorScorpionHealth(AntarchyMobsConfig.emperorScorpionHealth()); + AntarchySettings.setEmperorScorpionAttackDamage(AntarchyMobsConfig.emperorScorpionAttackDamage()); + AntarchySettings.setEmperorScorpionMovementSpeed(AntarchyMobsConfig.emperorScorpionMovementSpeed()); + AntarchySettings.setEmperorScorpionArmor(AntarchyMobsConfig.emperorScorpionArmor()); + AntarchySettings.setEmperorScorpionKnockbackResistance(AntarchyMobsConfig.emperorScorpionKnockbackResistance()); + AntarchySettings.setEmperorScorpionFollowRange(AntarchyMobsConfig.emperorScorpionFollowRange()); + AntarchySettings.setEmperorScorpionXpReward(AntarchyMobsConfig.emperorScorpionXpReward()); + AntarchySettings.setEmperorScorpionClawAnimTicks(AntarchyMobsConfig.emperorScorpionClawAnimTicks()); + AntarchySettings.setEmperorScorpionClawHitTick(AntarchyMobsConfig.emperorScorpionClawHitTick()); + AntarchySettings.setEmperorScorpionClawCooldownTicks(AntarchyMobsConfig.emperorScorpionClawCooldownTicks()); + AntarchySettings.setEmperorScorpionStingAnimTicks(AntarchyMobsConfig.emperorScorpionStingAnimTicks()); + AntarchySettings.setEmperorScorpionStingHitTick(AntarchyMobsConfig.emperorScorpionStingHitTick()); + AntarchySettings.setEmperorScorpionStingCooldownTicks(AntarchyMobsConfig.emperorScorpionStingCooldownTicks()); + AntarchySettings.setEmperorScorpionPoisonTicks(AntarchyMobsConfig.emperorScorpionPoisonTicks()); + AntarchySettings.setEmperorScorpionWeaknessTicks(AntarchyMobsConfig.emperorScorpionWeaknessTicks()); + AntarchySettings.setEmperorScorpionSummonIntervalTicks(AntarchyMobsConfig.emperorScorpionSummonIntervalTicks()); + AntarchySettings.setEmperorScorpionMaxSummonedScorpions(AntarchyMobsConfig.emperorScorpionMaxSummonedScorpions()); + AntarchySettings.setEmperorScorpionMaxNearbyScorpions(AntarchyMobsConfig.emperorScorpionMaxNearbyScorpions()); + AntarchySettings.setEmperorScorpionHardenCooldownTicks(AntarchyMobsConfig.emperorScorpionHardenCooldownTicks()); AntarchySettings.setEmperorScorpionDamageRange(AntarchyMobsConfig.emperorScorpionDamageRange()); AntarchySettings.setEmperorScorpionMinDespawnTicks(AntarchyMobsConfig.emperorScorpionMinDespawnTicks()); AntarchySettings.setKrakenHealth(AntarchyMobsConfig.krakenHealth()); AntarchySettings.setKrakenAttackDamage(AntarchyMobsConfig.krakenAttackDamage()); - AntarchySettings.setKrakenProjectileDamageTakenMultiplier(AntarchyMobsConfig.krakenProjectileDamageTakenMultiplier()); AntarchySettings.setKrakenSquidSpawnEnabled(AntarchyMobsConfig.krakenSquidSpawnEnabled()); AntarchySettings.setKrakenMassSpawnEnabled(AntarchyMobsConfig.krakenMassSpawnEnabled()); AntarchySettings.setKrakenRequireBadOmenToSummon(AntarchyMobsConfig.krakenRequireBadOmenToSummon()); AntarchySettings.setKrakenFollowRange(AntarchyMobsConfig.krakenFollowRange()); AntarchySettings.setKrakenDamageRange(AntarchyMobsConfig.krakenDamageRange()); + AntarchySettings.setKrakenArmor(AntarchyMobsConfig.krakenArmor()); + AntarchySettings.setKrakenKnockbackResistance(AntarchyMobsConfig.krakenKnockbackResistance()); + AntarchySettings.setKrakenMovementSpeed(AntarchyMobsConfig.krakenMovementSpeed()); + AntarchySettings.setKrakenFlyingSpeed(AntarchyMobsConfig.krakenFlyingSpeed()); + AntarchySettings.setKrakenBossBarRange(AntarchyMobsConfig.krakenBossBarRange()); + AntarchySettings.setKrakenLightningDamagePhaseOne(AntarchyMobsConfig.krakenLightningDamagePhaseOne()); AntarchySettings.setBrutalflyHealth(AntarchyMobsConfig.brutalflyHealth()); AntarchySettings.setBrutalflySwipeDamage(AntarchyMobsConfig.brutalflySwipeDamage()); AntarchySettings.setBrutalflySpitDamage(AntarchyMobsConfig.brutalflySpitDamage()); AntarchySettings.setBrutalflyDamageRange(AntarchyMobsConfig.brutalflyDamageRange()); + AntarchySettings.setBrutalflyArmor(AntarchyMobsConfig.brutalflyArmor()); + AntarchySettings.setBrutalflyArmorToughness(AntarchyMobsConfig.brutalflyArmorToughness()); + AntarchySettings.setBrutalflyKnockbackResistance(AntarchyMobsConfig.brutalflyKnockbackResistance()); + AntarchySettings.setBrutalflyMovementSpeed(AntarchyMobsConfig.brutalflyMovementSpeed()); + AntarchySettings.setBrutalflyFlyingSpeed(AntarchyMobsConfig.brutalflyFlyingSpeed()); AntarchySettings.setMantisHealth(AntarchyMobsConfig.mantisHealth()); AntarchySettings.setMantisAttackDamage(AntarchyMobsConfig.mantisAttackDamage()); @@ -135,7 +163,6 @@ public final class AntarchyConfigModuleNeoforge { AntarchySettings.setRollyPollyHealth(AntarchyMobsConfig.rollyPollyHealth()); AntarchySettings.setRollyPollyMovementSpeed(AntarchyMobsConfig.rollyPollyMovementSpeed()); AntarchySettings.setRollyPollyRollSpeedMultiplier(AntarchyMobsConfig.rollyPollyRollSpeedMultiplier()); - AntarchySettings.setRollyPollyTumbleDamage(AntarchyMobsConfig.rollyPollyTumbleDamage()); AntarchySettings.setRollyPollyTameChance(AntarchyMobsConfig.rollyPollyTameChance()); AntarchySettings.setRollyPollyBowlingDamage(AntarchyMobsConfig.rollyPollyBowlingDamage()); AntarchySettings.setRollyPollyBowlingKnockback(AntarchyMobsConfig.rollyPollyBowlingKnockback()); @@ -164,6 +191,14 @@ public final class AntarchyConfigModuleNeoforge { AntarchySettings.setNightmareHealth(AntarchyMobsConfig.nightmareHealth()); AntarchySettings.setNightmareAttackDamage(AntarchyMobsConfig.nightmareAttackDamage()); + AntarchySettings.setNightmareMovementSpeed(AntarchyMobsConfig.nightmareMovementSpeed()); + AntarchySettings.setNightmareWeaknessTicks(AntarchyMobsConfig.nightmareWeaknessTicks()); + AntarchySettings.setNightmareDreadTicks(AntarchyMobsConfig.nightmareDreadTicks()); + AntarchySettings.setDimensionalTearLifetimeTicks(AntarchyMobsConfig.dimensionalTearLifetimeTicks()); + AntarchySettings.setDimensionalTearInvertedDurationTicks(AntarchyMobsConfig.dimensionalTearInvertedDurationTicks()); + AntarchySettings.setDimensionalTearEmergenceMinIntervalTicks(AntarchyMobsConfig.dimensionalTearEmergenceMinIntervalTicks()); + AntarchySettings.setDimensionalTearEmergenceMaxIntervalTicks(AntarchyMobsConfig.dimensionalTearEmergenceMaxIntervalTicks()); + AntarchySettings.setDimensionalTearLucidEventChance(AntarchyMobsConfig.dimensionalTearLucidEventChance()); AntarchySettings.setBasiliskPetrifyingGazeEnabled(AntarchyMobsConfig.basiliskPetrifyingGazeEnabled()); AntarchySettings.setBasiliskSpawnMaxLightLevel(AntarchyMobsConfig.basiliskSpawnMaxLightLevel()); @@ -189,6 +224,11 @@ public final class AntarchyConfigModuleNeoforge { AntarchySettings.setLucidAttackRange(AntarchyMobsConfig.lucidAttackRange()); AntarchySettings.setLucidPearlInvertedDurationSeconds(AntarchyMobsConfig.lucidPearlInvertedDurationSeconds()); + AntarchySettings.setLucidHealth(AntarchyMobsConfig.lucidHealth()); + AntarchySettings.setLucidAttackDamage(AntarchyMobsConfig.lucidAttackDamage()); + AntarchySettings.setLucidMovementSpeed(AntarchyMobsConfig.lucidMovementSpeed()); + AntarchySettings.setLucidFlyingSpeed(AntarchyMobsConfig.lucidFlyingSpeed()); + AntarchySettings.setLucidKnockbackResistance(AntarchyMobsConfig.lucidKnockbackResistance()); AntarchySettings.setDreadHallucinationSoundsEnabled(AntarchyMobsConfig.dreadHallucinationSoundsEnabled()); AntarchySettings.setDreadHallucinationSoundMinInterval(AntarchyMobsConfig.dreadHallucinationSoundMinInterval()); @@ -203,13 +243,11 @@ public final class AntarchyConfigModuleNeoforge { AntarchySettings.setToreterrorJumpAttackKnockback(AntarchyMobsConfig.toreterrorJumpAttackKnockback()); AntarchySettings.setToreterrorSpinDamage(AntarchyMobsConfig.toreterrorSpinDamage()); AntarchySettings.setToreterrorSpinKnockback(AntarchyMobsConfig.toreterrorSpinKnockback()); - AntarchySettings.setToreterrorRangedWaterBombChance(AntarchyMobsConfig.toreterrorRangedWaterBombChance()); AntarchySettings.setToreterrorProjectileDamageMultiplier(AntarchyMobsConfig.toreterrorProjectileDamageMultiplier()); AntarchySettings.setWaterBombDamage(AntarchyMobsConfig.waterBombDamage()); AntarchySettings.setWaterBombLifetimeTicks(AntarchyMobsConfig.waterBombLifetimeTicks()); AntarchySettings.setWaterBombGravity(AntarchyMobsConfig.waterBombGravity()); AntarchySettings.setWaterBombKnockback(AntarchyMobsConfig.waterBombKnockback()); - AntarchySettings.setWaterCannonCooldownSeconds(AntarchyMobsConfig.waterCannonCooldownSeconds()); AntarchySettings.setCreepingHorrorHealth(AntarchyMobsConfig.creepingHorrorHealth()); AntarchySettings.setCreepingHorrorAttackDamage(AntarchyMobsConfig.creepingHorrorAttackDamage()); @@ -232,6 +270,7 @@ public final class AntarchyConfigModuleNeoforge { AntarchySettings.setHerculesBeetleDamageRange(AntarchyMobsConfig.herculesBeetleDamageRange()); AntarchySettings.setOuranwoodDeerHealth(AntarchyMobsConfig.ouranwoodDeerHealth()); AntarchySettings.setGlimmerHealth(AntarchyMobsConfig.glimmerHealth()); + AntarchySettings.setAntDanceRadius(AntarchyMobsConfig.antDanceRadius()); } private static void bakeToolsConfig() { @@ -308,9 +347,7 @@ public final class AntarchyConfigModuleNeoforge { AntarchySettings.setScorpionWhipReachBonus(AntarchyToolsConfig.scorpionWhipReachBonus()); AntarchySettings.setScorpionWhipPoisonDurationTicks(AntarchyToolsConfig.scorpionWhipPoisonDurationTicks()); AntarchySettings.setScorpionWhipTetherMaxRange(AntarchyToolsConfig.scorpionWhipTetherMaxRange()); - AntarchySettings.setScorpionWhipReelCooldownTicks(AntarchyToolsConfig.scorpionWhipReelCooldownTicks()); AntarchySettings.setScorpionWhipSnapBonusDamage(AntarchyToolsConfig.scorpionWhipSnapBonusDamage()); - AntarchySettings.setScorpionWhipSnapCooldownTicks(AntarchyToolsConfig.scorpionWhipSnapCooldownTicks()); AntarchySettings.setScorpionWhipPullStrength(AntarchyToolsConfig.scorpionWhipPullStrength()); AntarchySettings.setScorpionWhipHeavyPullMultiplier(AntarchyToolsConfig.scorpionWhipHeavyPullMultiplier()); AntarchySettings.setScorpionWhipSelfPullMultiplier(AntarchyToolsConfig.scorpionWhipSelfPullMultiplier()); @@ -327,7 +364,10 @@ public final class AntarchyConfigModuleNeoforge { AntarchySettings.setNightmareLeggingsArmorToughness(AntarchyToolsConfig.nightmareLeggingsArmorToughness()); AntarchySettings.setNightmareBootsArmorToughness(AntarchyToolsConfig.nightmareBootsArmorToughness()); AntarchySettings.setNightmareArmorKnockbackResistance(AntarchyToolsConfig.nightmareArmorKnockbackResistance()); - AntarchySettings.setNightmareArmorDreadAuraRangePerPiece(AntarchyToolsConfig.nightmareArmorDreadAuraRangePerPiece()); + AntarchySettings.setNightmareHelmetDoubleDamageChance(AntarchyToolsConfig.nightmareHelmetDoubleDamageChance()); + AntarchySettings.setNightmareChestplateDoubleDamageChance(AntarchyToolsConfig.nightmareChestplateDoubleDamageChance()); + AntarchySettings.setNightmareLeggingsDoubleDamageChance(AntarchyToolsConfig.nightmareLeggingsDoubleDamageChance()); + AntarchySettings.setNightmareBootsDoubleDamageChance(AntarchyToolsConfig.nightmareBootsDoubleDamageChance()); AntarchySettings.setPrimordialArmorKnockbackPerPiece(AntarchyToolsConfig.primordialArmorKnockbackPerPiece()); AntarchySettings.setNightmareSwordBaseDamage(AntarchyToolsConfig.nightmareSwordBaseDamage()); AntarchySettings.setNightmareSwordAttackSpeed(AntarchyToolsConfig.nightmareSwordAttackSpeed()); @@ -377,11 +417,8 @@ public final class AntarchyConfigModuleNeoforge { AntarchySettings.setAmericanBonusSaturation(AntarchyToolsConfig.americanBonusSaturation()); AntarchySettings.setAmericanRegenerationDurationTicks(AntarchyToolsConfig.americanRegenerationDurationTicks()); AntarchySettings.setAmericanRegenerationAmplifier(AntarchyToolsConfig.americanRegenerationAmplifier()); - AntarchySettings.setAntDanceRadius(AntarchyMobsConfig.antDanceRadius()); AntarchySettings.setMogglesVisionRadius(AntarchyToolsConfig.mogglesVisionRadius()); - AntarchySettings.setMogglesVisionMaxLight(AntarchyToolsConfig.mogglesVisionMaxLight()); - AntarchySettings.setMogglesVisionAlpha(AntarchyToolsConfig.mogglesVisionAlpha()); } private static void bakeMiscConfig() { @@ -412,13 +449,12 @@ public final class AntarchyConfigModuleNeoforge { AntarchySettings.setDreamSandEnabled(AntarchyMiscConfig.dreamSandEnabled()); AntarchySettings.setDreamSandJumpVelocityMultiplier(AntarchyMiscConfig.dreamSandJumpVelocityMultiplier()); AntarchySettings.setDreamSandGravityMultiplier(AntarchyMiscConfig.dreamSandGravityMultiplier()); - AntarchySettings.setDreamSandFallDamageMultiplier(AntarchyMiscConfig.dreamSandFallDamageMultiplier()); + AntarchySettings.setDreamSandFallingBlockGravityMultiplier(AntarchyMiscConfig.dreamSandFallingBlockGravityMultiplier()); AntarchySettings.setDreamSandEffectDurationSeconds(AntarchyMiscConfig.dreamSandEffectDurationSeconds()); AntarchySettings.setIchorWitherEnabled(AntarchyMiscConfig.ichorWitherEnabled()); AntarchySettings.setDuplicatorTreeEnabled(AntarchyMiscConfig.duplicatorTreeEnabled()); - AntarchySettings.setGlowingTorchflowers(AntarchyMiscConfig.glowingTorchflowers()); AntarchySettings.setGlowVinesUnderLeaves(AntarchyMiscConfig.glowVinesUnderLeaves()); AntarchySettings.setSwingThroughGrassEnabled(AntarchyMiscConfig.swingThroughGrassEnabled()); AntarchySettings.setFabricKeybindingConflictFixEnabled(AntarchyMiscConfig.fabricKeybindingConflictFixEnabled()); 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 a443b4b7..3f6dc61c 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 @@ -13,7 +13,7 @@ public final class AntarchyMiscConfig { private static final ModConfigSpec.DoubleValue DREAM_SAND_JUMP_VELOCITY_MULTIPLIER; private static final ModConfigSpec.DoubleValue DREAM_SAND_GRAVITY_MULTIPLIER; private static final ModConfigSpec.DoubleValue DREAM_SAND_EFFECT_DURATION_SECONDS; - private static final ModConfigSpec.DoubleValue DREAM_SAND_FALL_DAMAGE_MULTIPLIER; + private static final ModConfigSpec.DoubleValue DREAM_SAND_FALLING_BLOCK_GRAVITY_MULTIPLIER; // Ichor private static final ModConfigSpec.BooleanValue ICHOR_WITHER_ENABLED; @@ -47,7 +47,6 @@ public final class AntarchyMiscConfig { // World / misc toggles private static final ModConfigSpec.BooleanValue DUPLICATOR_TREE_ENABLED; private static final ModConfigSpec.BooleanValue GLOW_VINES_UNDER_LEAVES; - private static final ModConfigSpec.BooleanValue GLOWING_TORCHFLOWERS; private static final ModConfigSpec.BooleanValue SWING_THROUGH_GRASS_ENABLED; private static final ModConfigSpec.BooleanValue FABRIC_KEYBINDING_CONFLICT_FIX_ENABLED; private static final ModConfigSpec.BooleanValue EXPERIMENTAL_SETTINGS_POPUP_DISABLED; @@ -73,7 +72,7 @@ public final class AntarchyMiscConfig { DREAM_SAND_JUMP_VELOCITY_MULTIPLIER = b.comment("Multiplier applied to upward jump velocity when leaving dream sand.") .defineInRange("jumpVelocityMultiplier", 1.3D, 0.0D, 16.0D); DREAM_SAND_GRAVITY_MULTIPLIER = b.comment("Multiplier applied to downward velocity while low gravity is active.") .defineInRange("gravityMultiplier", 0.45D, 0.0D, 1.0D); DREAM_SAND_EFFECT_DURATION_SECONDS = b.comment("Seconds the low-gravity effect remains active after leaving dream sand.") .defineInRange("effectDurationSeconds", 7.0D, 0.0D, 60.0D); - DREAM_SAND_FALL_DAMAGE_MULTIPLIER = b.comment("Multiplier applied to fall damage after dream sand low gravity.").defineInRange("fallDamageMultiplier", 0.4D, 0.0D, 16.0D); + DREAM_SAND_FALLING_BLOCK_GRAVITY_MULTIPLIER = b.comment("Multiplier applied to dream sand's own falling-block gravity (how slowly it falls as a block, distinct from the player low-gravity effect).").defineInRange("fallingBlockGravityMultiplier", 0.4D, 0.0D, 16.0D); b.pop(); @@ -147,7 +146,6 @@ public final class AntarchyMiscConfig { b.push("world"); DUPLICATOR_TREE_ENABLED = b.comment("If false, duplicator trees do not generate and duplicator saplings produce nothing.").define("duplicatorTreeEnabled", true); GLOW_VINES_UNDER_LEAVES = b.comment("Whether glow vines can be placed and survive when attached under leaf blocks.") .define("glowVinesUnderLeaves", true); - GLOWING_TORCHFLOWERS = b.comment("If true, torchflowers use the glowing behavior.").define("glowingTorchflowers", true); SWING_THROUGH_GRASS_ENABLED = b.comment("If true, empty collision plants like grass do not block melee target picking.") .define("swingThroughGrassEnabled", true); FABRIC_KEYBINDING_CONFLICT_FIX_ENABLED = b.define("fabricKeybindingConflictFixEnabled", true); EXPERIMENTAL_SETTINGS_POPUP_DISABLED = b.define("experimentalSettingsPopupDisabled", true); @@ -165,13 +163,12 @@ public final class AntarchyMiscConfig { static double dreamSandJumpVelocityMultiplier() { return DREAM_SAND_JUMP_VELOCITY_MULTIPLIER.get(); } static double dreamSandGravityMultiplier() { return DREAM_SAND_GRAVITY_MULTIPLIER.get(); } static double dreamSandEffectDurationSeconds() { return DREAM_SAND_EFFECT_DURATION_SECONDS.get(); } - static double dreamSandFallDamageMultiplier() { return DREAM_SAND_FALL_DAMAGE_MULTIPLIER.get(); } + static double dreamSandFallingBlockGravityMultiplier() { return DREAM_SAND_FALLING_BLOCK_GRAVITY_MULTIPLIER.get(); } static boolean ichorWitherEnabled() { return ICHOR_WITHER_ENABLED.get(); } static boolean duplicatorTreeEnabled() { return DUPLICATOR_TREE_ENABLED.get(); } static boolean glowVinesUnderLeaves() { return GLOW_VINES_UNDER_LEAVES.get(); } - static boolean glowingTorchflowers() { return GLOWING_TORCHFLOWERS.get(); } static boolean swingThroughGrassEnabled() { return SWING_THROUGH_GRASS_ENABLED.get(); } static boolean fabricKeybindingConflictFixEnabled() { return FABRIC_KEYBINDING_CONFLICT_FIX_ENABLED.get(); } static boolean experimentalSettingsPopupDisabled() { return EXPERIMENTAL_SETTINGS_POPUP_DISABLED.get(); } diff --git a/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/AntarchyMobsConfig.java b/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/AntarchyMobsConfig.java index c2cfe8b4..9adfba79 100644 --- a/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/AntarchyMobsConfig.java +++ b/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/AntarchyMobsConfig.java @@ -65,12 +65,30 @@ public final class AntarchyMobsConfig { private static final ModConfigSpec.DoubleValue JUMPY_BUG_HEALTH; private static final ModConfigSpec.DoubleValue JUMPY_BUG_POUNCE_DAMAGE; - private static final ModConfigSpec.DoubleValue JUMPY_BUG_LATCH_DAMAGE; private static final ModConfigSpec.DoubleValue JUMPY_BUG_CAMOUFLAGE_ALPHA; // Emperor Scorpion + private static final ModConfigSpec.DoubleValue EMPEROR_SCORPION_HEALTH; + private static final ModConfigSpec.DoubleValue EMPEROR_SCORPION_ATTACK_DAMAGE; + private static final ModConfigSpec.DoubleValue EMPEROR_SCORPION_MOVEMENT_SPEED; + private static final ModConfigSpec.DoubleValue EMPEROR_SCORPION_ARMOR; + private static final ModConfigSpec.DoubleValue EMPEROR_SCORPION_KNOCKBACK_RESISTANCE; + private static final ModConfigSpec.DoubleValue EMPEROR_SCORPION_FOLLOW_RANGE; + private static final ModConfigSpec.IntValue EMPEROR_SCORPION_XP_REWARD; + private static final ModConfigSpec.IntValue EMPEROR_SCORPION_CLAW_ANIM_TICKS; + private static final ModConfigSpec.IntValue EMPEROR_SCORPION_CLAW_HIT_TICK; + private static final ModConfigSpec.IntValue EMPEROR_SCORPION_CLAW_COOLDOWN_TICKS; + private static final ModConfigSpec.IntValue EMPEROR_SCORPION_STING_ANIM_TICKS; + private static final ModConfigSpec.IntValue EMPEROR_SCORPION_STING_HIT_TICK; + private static final ModConfigSpec.IntValue EMPEROR_SCORPION_STING_COOLDOWN_TICKS; + private static final ModConfigSpec.IntValue EMPEROR_SCORPION_POISON_TICKS; + private static final ModConfigSpec.IntValue EMPEROR_SCORPION_WEAKNESS_TICKS; + private static final ModConfigSpec.IntValue EMPEROR_SCORPION_SUMMON_INTERVAL_TICKS; + private static final ModConfigSpec.IntValue EMPEROR_SCORPION_MAX_SUMMONED_SCORPIONS; + private static final ModConfigSpec.IntValue EMPEROR_SCORPION_MAX_NEARBY_SCORPIONS; + private static final ModConfigSpec.IntValue EMPEROR_SCORPION_HARDEN_COOLDOWN_TICKS; private static final ModConfigSpec.DoubleValue EMPEROR_SCORPION_DAMAGE_RANGE; private static final ModConfigSpec.IntValue EMPEROR_SCORPION_MIN_DESPAWN_TICKS; @@ -79,12 +97,17 @@ public final class AntarchyMobsConfig { private static final ModConfigSpec.DoubleValue KRAKEN_HEALTH; private static final ModConfigSpec.DoubleValue KRAKEN_ATTACK_DAMAGE; - private static final ModConfigSpec.DoubleValue KRAKEN_PROJECTILE_DAMAGE_TAKEN_MULTIPLIER; private static final ModConfigSpec.BooleanValue KRAKEN_SQUID_SPAWN_ENABLED; private static final ModConfigSpec.BooleanValue KRAKEN_MASS_SPAWN_ENABLED; private static final ModConfigSpec.BooleanValue KRAKEN_REQUIRE_BAD_OMEN_TO_SUMMON; private static final ModConfigSpec.DoubleValue KRAKEN_FOLLOW_RANGE; private static final ModConfigSpec.DoubleValue KRAKEN_DAMAGE_RANGE; + private static final ModConfigSpec.DoubleValue KRAKEN_ARMOR; + private static final ModConfigSpec.DoubleValue KRAKEN_KNOCKBACK_RESISTANCE; + private static final ModConfigSpec.DoubleValue KRAKEN_MOVEMENT_SPEED; + private static final ModConfigSpec.DoubleValue KRAKEN_FLYING_SPEED; + private static final ModConfigSpec.DoubleValue KRAKEN_BOSS_BAR_RANGE; + private static final ModConfigSpec.DoubleValue KRAKEN_LIGHTNING_DAMAGE_PHASE_ONE; // Brutalfly @@ -93,6 +116,11 @@ public final class AntarchyMobsConfig { private static final ModConfigSpec.DoubleValue BRUTALFLY_SWIPE_DAMAGE; private static final ModConfigSpec.DoubleValue BRUTALFLY_SPIT_DAMAGE; private static final ModConfigSpec.DoubleValue BRUTALFLY_DAMAGE_RANGE; + private static final ModConfigSpec.DoubleValue BRUTALFLY_ARMOR; + private static final ModConfigSpec.DoubleValue BRUTALFLY_ARMOR_TOUGHNESS; + private static final ModConfigSpec.DoubleValue BRUTALFLY_KNOCKBACK_RESISTANCE; + private static final ModConfigSpec.DoubleValue BRUTALFLY_MOVEMENT_SPEED; + private static final ModConfigSpec.DoubleValue BRUTALFLY_FLYING_SPEED; // Mantis @@ -122,7 +150,6 @@ public final class AntarchyMobsConfig { private static final ModConfigSpec.DoubleValue ROLLY_POLLY_ROLL_SPEED_MULTIPLIER; private static final ModConfigSpec.IntValue ROLLY_POLLY_TAME_CHANCE; private static final ModConfigSpec.DoubleValue ROLLY_POLLY_BOWLING_DAMAGE; - private static final ModConfigSpec.DoubleValue ROLLY_POLLY_TUMBLE_DAMAGE; private static final ModConfigSpec.DoubleValue ROLLY_POLLY_BOWLING_KNOCKBACK; private static final ModConfigSpec.DoubleValue ROLLY_POLLY_ARMOR; private static final ModConfigSpec.DoubleValue ROLLY_POLLY_ROLLED_ARMOR_BONUS; @@ -166,6 +193,14 @@ public final class AntarchyMobsConfig { private static final ModConfigSpec.DoubleValue NIGHTMARE_HEALTH; private static final ModConfigSpec.DoubleValue NIGHTMARE_ATTACK_DAMAGE; + private static final ModConfigSpec.DoubleValue NIGHTMARE_MOVEMENT_SPEED; + private static final ModConfigSpec.IntValue NIGHTMARE_WEAKNESS_TICKS; + private static final ModConfigSpec.IntValue NIGHTMARE_DREAD_TICKS; + private static final ModConfigSpec.IntValue DIMENSIONAL_TEAR_LIFETIME_TICKS; + private static final ModConfigSpec.IntValue DIMENSIONAL_TEAR_INVERTED_DURATION_TICKS; + private static final ModConfigSpec.IntValue DIMENSIONAL_TEAR_EMERGENCE_MIN_INTERVAL_TICKS; + private static final ModConfigSpec.IntValue DIMENSIONAL_TEAR_EMERGENCE_MAX_INTERVAL_TICKS; + private static final ModConfigSpec.DoubleValue DIMENSIONAL_TEAR_LUCID_EVENT_CHANCE; // Basilisk @@ -202,8 +237,6 @@ public final class AntarchyMobsConfig { private static final ModConfigSpec.DoubleValue TORETERROR_SPIN_DAMAGE; private static final ModConfigSpec.DoubleValue TORETERROR_SPIN_KNOCKBACK; private static final ModConfigSpec.DoubleValue TORETERROR_PROJECTILE_DAMAGE_MULTIPLIER; - private static final ModConfigSpec.DoubleValue TORETERROR_RANGED_WATER_BOMB_CHANCE; - private static final ModConfigSpec.DoubleValue WATER_CANNON_COOLDOWN_SECONDS; private static final ModConfigSpec.DoubleValue WATER_BOMB_DAMAGE; private static final ModConfigSpec.IntValue WATER_BOMB_LIFETIME_TICKS; private static final ModConfigSpec.DoubleValue WATER_BOMB_GRAVITY; @@ -266,6 +299,11 @@ public final class AntarchyMobsConfig { private static final ModConfigSpec.DoubleValue LUCID_ATTACK_RANGE; private static final ModConfigSpec.DoubleValue LUCID_PEARL_INVERTED_DURATION_SECONDS; + private static final ModConfigSpec.DoubleValue LUCID_HEALTH; + private static final ModConfigSpec.DoubleValue LUCID_ATTACK_DAMAGE; + private static final ModConfigSpec.DoubleValue LUCID_MOVEMENT_SPEED; + private static final ModConfigSpec.DoubleValue LUCID_FLYING_SPEED; + private static final ModConfigSpec.DoubleValue LUCID_KNOCKBACK_RESISTANCE; // Dread effect @@ -406,7 +444,6 @@ public final class AntarchyMobsConfig { b.push("jumpyBug"); JUMPY_BUG_HEALTH = b.comment("Base max health.").defineInRange("health", 100.0D, 1.0D, 32768.0D); JUMPY_BUG_POUNCE_DAMAGE = b.comment("Damage dealt on a successful pounce latch.").defineInRange("pounceDamage", 2.0D, 0.0D, 1024.0D); - JUMPY_BUG_LATCH_DAMAGE = b.comment("Damage dealt while latched onto a target.").defineInRange("latchDamage", 2.0D, 0.0D, 1024.0D); JUMPY_BUG_CAMOUFLAGE_ALPHA = b.comment("Renderer alpha while camouflaged.").defineInRange("camouflageAlpha", 0.18D, 0.01D, 1.0D); b.pop(); @@ -414,6 +451,25 @@ public final class AntarchyMobsConfig { // Emperor Scorpion b.push("emperorScorpion"); + EMPEROR_SCORPION_HEALTH = b.comment("Base max health.").defineInRange("health", 300.0D, 1.0D, 32768.0D); + EMPEROR_SCORPION_ATTACK_DAMAGE = b.comment("Base attack damage.").defineInRange("attackDamage", 28.0D, 0.0D, 1024.0D); + EMPEROR_SCORPION_MOVEMENT_SPEED = b.comment("Base movement speed.").defineInRange("movementSpeed", 0.384D, 0.0D, 10.0D); + EMPEROR_SCORPION_ARMOR = b.comment("Base armor value.").defineInRange("armor", 22.0D, 0.0D, 1024.0D); + EMPEROR_SCORPION_KNOCKBACK_RESISTANCE = b.comment("Base knockback resistance.").defineInRange("knockbackResistance", 0.8D, 0.0D, 1.0D); + EMPEROR_SCORPION_FOLLOW_RANGE = b.comment("Base follow range.").defineInRange("followRange", 80.0D, 1.0D, 256.0D); + EMPEROR_SCORPION_XP_REWARD = b.comment("Base experience reward.").defineInRange("xpReward", 25, 0, 100000); + EMPEROR_SCORPION_CLAW_ANIM_TICKS = b.comment("Ticks for the claw attack animation window.").defineInRange("clawAnimTicks", 23, 1, 400); + EMPEROR_SCORPION_CLAW_HIT_TICK = b.comment("Tick during the claw animation when damage is applied.").defineInRange("clawHitTick", 12, 0, 400); + EMPEROR_SCORPION_CLAW_COOLDOWN_TICKS = b.comment("Ticks between claw attacks.").defineInRange("clawCooldownTicks", 28, 0, 2000); + EMPEROR_SCORPION_STING_ANIM_TICKS = b.comment("Ticks for the sting attack animation window.").defineInRange("stingAnimTicks", 25, 1, 400); + EMPEROR_SCORPION_STING_HIT_TICK = b.comment("Tick during the sting animation when damage is applied.").defineInRange("stingHitTick", 13, 0, 400); + EMPEROR_SCORPION_STING_COOLDOWN_TICKS = b.comment("Ticks between sting attacks.").defineInRange("stingCooldownTicks", 60, 0, 2000); + EMPEROR_SCORPION_POISON_TICKS = b.comment("Ticks the Poison effect from a sting lasts.").defineInRange("poisonTicks", 300, 0, 20000); + EMPEROR_SCORPION_WEAKNESS_TICKS = b.comment("Ticks the Weakness effect from a sting lasts.").defineInRange("weaknessTicks", 120, 0, 20000); + EMPEROR_SCORPION_SUMMON_INTERVAL_TICKS = b.comment("Ticks between minion scorpion summons while hardened.").defineInRange("summonIntervalTicks", 140, 20, 72000); + EMPEROR_SCORPION_MAX_SUMMONED_SCORPIONS = b.comment("Maximum scorpions summoned per hardening cast.").defineInRange("maxSummonedScorpions", 4, 0, 32); + EMPEROR_SCORPION_MAX_NEARBY_SCORPIONS = b.comment("Maximum owned scorpion minions allowed near this scorpion at once.").defineInRange("maxNearbyScorpions", 4, 0, 32); + EMPEROR_SCORPION_HARDEN_COOLDOWN_TICKS = b.comment("Cooldown in ticks before the Emperor Scorpion can harden and summon again.").defineInRange("hardenCooldownTicks", 2400, 0, 200000); EMPEROR_SCORPION_DAMAGE_RANGE = b .comment("Range in blocks a player must be within for the Emperor Scorpion to be able to take damage. Prevents cheesing it from outside its aggro range.") .defineInRange("damageRange", 25.0D, 1.0D, 256.0D); @@ -428,12 +484,17 @@ public final class AntarchyMobsConfig { b.push("kraken"); KRAKEN_HEALTH = b.comment("Base max health.") .defineInRange("health", 1500.0D, 1.0D, 32768.0D); KRAKEN_ATTACK_DAMAGE = b.comment("Base attack damage.") .defineInRange("attackDamage", 45.0D, 0.0D, 1024.0D); - KRAKEN_PROJECTILE_DAMAGE_TAKEN_MULTIPLIER = b.comment("Multiplier applied to projectile damage taken by the Kraken.").defineInRange("projectileDamageTakenMultiplier", 0.5D, 0.0D, 16.0D); KRAKEN_SQUID_SPAWN_ENABLED = b.comment("If true, a player killing a Missile Squid has a 1/100 chance to spawn a single Kraken nearby.") .define("squidSpawnEnabled", true); KRAKEN_MASS_SPAWN_ENABLED = b.comment("If true, a player killing a Missile Squid has a 1/500 chance to spawn 10 Krakens. Independent from the single spawn.").define("massSpawnEnabled", true); KRAKEN_REQUIRE_BAD_OMEN_TO_SUMMON = b.comment("If true, the killer must have Bad Omen to summon a single Kraken; chance scales with Bad Omen level. Mass spawn is unaffected by level but still requires Bad Omen when this is on.").define("requireBadOmenToSummon", true); KRAKEN_FOLLOW_RANGE = b.comment("How far the Kraken can see/target players.").defineInRange("followRange", 96.0D, 1.0D, 256.0D); KRAKEN_DAMAGE_RANGE = b.comment("Range in blocks a player must be within for the Kraken to be able to take damage. Prevents cheesing it from outside its aggro range.").defineInRange("damageRange", 35.0D, 1.0D, 256.0D); + KRAKEN_ARMOR = b.comment("Base armor value.").defineInRange("armor", 8.0D, 0.0D, 1024.0D); + KRAKEN_KNOCKBACK_RESISTANCE = b.comment("Base knockback resistance.").defineInRange("knockbackResistance", 0.8D, 0.0D, 1.0D); + KRAKEN_MOVEMENT_SPEED = b.comment("Base movement speed.").defineInRange("movementSpeed", 0.24D, 0.0D, 10.0D); + KRAKEN_FLYING_SPEED = b.comment("Base flying speed.").defineInRange("flyingSpeed", 0.24D, 0.0D, 10.0D); + KRAKEN_BOSS_BAR_RANGE = b.comment("Range in blocks within which the Kraken's boss bar is shown to players.").defineInRange("bossBarRange", 40.0D, 1.0D, 256.0D); + KRAKEN_LIGHTNING_DAMAGE_PHASE_ONE = b.comment("Lightning strike damage during phase one.").defineInRange("lightningDamagePhaseOne", 6.0D, 0.0D, 1024.0D); b.pop(); @@ -444,6 +505,11 @@ public final class AntarchyMobsConfig { BRUTALFLY_SWIPE_DAMAGE = b.comment("Damage dealt by a claw swipe.") .defineInRange("swipeDamage", 15.0D, 0.0D, 1024.0D); BRUTALFLY_SPIT_DAMAGE = b.comment("Direct hit damage from a spit orb before lingering effect.").defineInRange("spitDamage", 5.0D, 0.0D, 1024.0D); BRUTALFLY_DAMAGE_RANGE = b.comment("Range in blocks a player must be within for the Brutalfly to be able to take damage. Prevents cheesing it from outside its aggro range.").defineInRange("damageRange", 25.0D, 1.0D, 256.0D); + BRUTALFLY_ARMOR = b.comment("Base armor value.").defineInRange("armor", 10.0D, 0.0D, 1024.0D); + BRUTALFLY_ARMOR_TOUGHNESS = b.comment("Base armor toughness.").defineInRange("armorToughness", 4.0D, 0.0D, 100.0D); + BRUTALFLY_KNOCKBACK_RESISTANCE = b.comment("Base knockback resistance.").defineInRange("knockbackResistance", 0.7D, 0.0D, 1.0D); + BRUTALFLY_MOVEMENT_SPEED = b.comment("Base movement speed.").defineInRange("movementSpeed", 0.34D, 0.0D, 10.0D); + BRUTALFLY_FLYING_SPEED = b.comment("Base flying speed.").defineInRange("flyingSpeed", 0.55D, 0.0D, 10.0D); b.pop(); @@ -479,7 +545,6 @@ public final class AntarchyMobsConfig { ROLLY_POLLY_ROLL_SPEED_MULTIPLIER = b.comment("Speed multiplier while rolled up.") .defineInRange("rollSpeedMultiplier", 2.2D, 0.1D, 20.0D); ROLLY_POLLY_TAME_CHANCE = b.comment("Taming succeeds with a 1-in-N chance per food item.") .defineInRange("tameChance", 3, 1, 100); ROLLY_POLLY_BOWLING_DAMAGE = b.comment("Damage dealt by a tamed rolly polly's rolling bowling attack.") .defineInRange("bowlingDamage", 3.0D, 0.0D, 1024.0D); - ROLLY_POLLY_TUMBLE_DAMAGE = b.comment("Damage dealt by a tumbling rolly polly impact.").defineInRange("tumbleDamage", 3.0D, 0.0D, 1024.0D); ROLLY_POLLY_BOWLING_KNOCKBACK = b.comment("Knockback strength of a tamed rolly polly's rolling bowling attack.") .defineInRange("bowlingKnockback", 0.8D, 0.0D, 20.0D); ROLLY_POLLY_ARMOR = b.comment("Base armor value.") .defineInRange("armor", 2.0D, 0.0D, 100.0D); ROLLY_POLLY_ROLLED_ARMOR_BONUS = b.comment("Additional armor gained while rolled up.") .defineInRange("rolledArmorBonus", 16.0D, 0.0D, 100.0D); @@ -538,6 +603,17 @@ public final class AntarchyMobsConfig { b.push("nightmare"); NIGHTMARE_HEALTH = b.comment("Base max health.").defineInRange("health", 180.0D, 1.0D, 32768.0D); NIGHTMARE_ATTACK_DAMAGE = b.comment("Base attack damage.").defineInRange("attackDamage", 16.0D, 0.0D, 1024.0D); + NIGHTMARE_MOVEMENT_SPEED = b.comment("Base movement speed.").defineInRange("movementSpeed", 0.28D, 0.0D, 10.0D); + NIGHTMARE_WEAKNESS_TICKS = b.comment("Ticks the Weakness effect from Big Bertha's Nightmare-mode hit lasts.").defineInRange("weaknessTicks", 100, 0, 20000); + NIGHTMARE_DREAD_TICKS = b.comment("Ticks the Dread effect from Big Bertha's Nightmare-mode hit lasts.").defineInRange("dreadTicks", 160, 0, 20000); + b.pop(); + + b.push("dimensionalTear"); + DIMENSIONAL_TEAR_LIFETIME_TICKS = b.comment("Ticks before naturally generated linked Dimensional Tears collapse.").defineInRange("lifetimeTicks", 24000, 1200, 240000); + DIMENSIONAL_TEAR_INVERTED_DURATION_TICKS = b.comment("Ticks of Inverted applied to living entities exiting a Dimensional Tear.").defineInRange("invertedDurationTicks", 2400, 0, 240000); + DIMENSIONAL_TEAR_EMERGENCE_MIN_INTERVAL_TICKS = b.comment("Minimum ticks between Nightmare/Lucid emergence events per tear.").defineInRange("emergenceMinIntervalTicks", 2400, 20, 240000); + DIMENSIONAL_TEAR_EMERGENCE_MAX_INTERVAL_TICKS = b.comment("Maximum ticks between Nightmare/Lucid emergence events per tear.").defineInRange("emergenceMaxIntervalTicks", 7200, 20, 240000); + DIMENSIONAL_TEAR_LUCID_EVENT_CHANCE = b.comment("Chance that an emergence event spawns a Lucid instead of a Nightmare.").defineInRange("lucidEventChance", 0.65D, 0.0D, 1.0D); b.pop(); @@ -581,6 +657,11 @@ public final class AntarchyMobsConfig { LUCID_PEARL_INVERTED_DURATION_SECONDS = b .comment("How long the Inverted effect from a Lucid pearl lasts, in seconds.") .defineInRange("pearlInvertedDurationSeconds", 6.0D, 0.0D, 3600.0D); + LUCID_HEALTH = b.comment("Base max health.").defineInRange("health", 30.0D, 1.0D, 32768.0D); + LUCID_ATTACK_DAMAGE = b.comment("Base attack damage.").defineInRange("attackDamage", 4.0D, 0.0D, 1024.0D); + LUCID_MOVEMENT_SPEED = b.comment("Base movement speed.").defineInRange("movementSpeed", 0.22D, 0.0D, 10.0D); + LUCID_FLYING_SPEED = b.comment("Base flying speed.").defineInRange("flyingSpeed", 0.35D, 0.0D, 10.0D); + LUCID_KNOCKBACK_RESISTANCE = b.comment("Base knockback resistance.").defineInRange("knockbackResistance", 0.5D, 0.0D, 1.0D); b.pop(); @@ -655,8 +736,6 @@ public final class AntarchyMobsConfig { TORETERROR_SPIN_DAMAGE = b.comment("Damage per spin-attack tick.").defineInRange("spinDamage", 8.0D, 0.0D, 1024.0D); TORETERROR_SPIN_KNOCKBACK = b.comment("Knockback strength of the spin attack.").defineInRange("spinKnockback", 1.5D, 0.0D, 10.0D); TORETERROR_PROJECTILE_DAMAGE_MULTIPLIER = b.comment("Damage multiplier applied to projectile hits on the Toreterror (0.5 = half damage).").defineInRange("projectileDamageMultiplier", 0.5D, 0.0D, 1.0D); - TORETERROR_RANGED_WATER_BOMB_CHANCE = b.comment("Chance each ranged attack cycle launches a water bomb.").defineInRange("rangedWaterBombChance", 0.35D, 0.0D, 1.0D); - WATER_CANNON_COOLDOWN_SECONDS = b.comment("Cooldown between water cannon uses, in seconds.").defineInRange("waterCannonCooldownSeconds", 1.5D, 0.0D, 60.0D); WATER_BOMB_DAMAGE = b.comment("Damage dealt by a Water Bomb hit.").defineInRange("waterBombDamage", 6.0D, 0.0D, 1024.0D); WATER_BOMB_LIFETIME_TICKS = b.comment("Ticks before a Water Bomb despawns.").defineInRange("waterBombLifetimeTicks", 120, 1, 6000); WATER_BOMB_GRAVITY = b.comment("Gravity applied to Water Bombs (higher = steeper arc).").defineInRange("waterBombGravity", 0.12D, 0.0D, 2.0D); @@ -717,25 +796,53 @@ public final class AntarchyMobsConfig { static double jumpyBugHealth() { return JUMPY_BUG_HEALTH.get(); } static double jumpyBugPounceDamage() { return JUMPY_BUG_POUNCE_DAMAGE.get(); } - static double jumpyBugLatchDamage() { return JUMPY_BUG_LATCH_DAMAGE.get(); } static double jumpyBugCamouflageAlpha() { return JUMPY_BUG_CAMOUFLAGE_ALPHA.get(); } + static double emperorScorpionHealth() { return EMPEROR_SCORPION_HEALTH.get(); } + static double emperorScorpionAttackDamage() { return EMPEROR_SCORPION_ATTACK_DAMAGE.get(); } + static double emperorScorpionMovementSpeed() { return EMPEROR_SCORPION_MOVEMENT_SPEED.get(); } + static double emperorScorpionArmor() { return EMPEROR_SCORPION_ARMOR.get(); } + static double emperorScorpionKnockbackResistance() { return EMPEROR_SCORPION_KNOCKBACK_RESISTANCE.get(); } + static double emperorScorpionFollowRange() { return EMPEROR_SCORPION_FOLLOW_RANGE.get(); } + static int emperorScorpionXpReward() { return EMPEROR_SCORPION_XP_REWARD.get(); } + static int emperorScorpionClawAnimTicks() { return EMPEROR_SCORPION_CLAW_ANIM_TICKS.get(); } + static int emperorScorpionClawHitTick() { return EMPEROR_SCORPION_CLAW_HIT_TICK.get(); } + static int emperorScorpionClawCooldownTicks() { return EMPEROR_SCORPION_CLAW_COOLDOWN_TICKS.get(); } + static int emperorScorpionStingAnimTicks() { return EMPEROR_SCORPION_STING_ANIM_TICKS.get(); } + static int emperorScorpionStingHitTick() { return EMPEROR_SCORPION_STING_HIT_TICK.get(); } + static int emperorScorpionStingCooldownTicks() { return EMPEROR_SCORPION_STING_COOLDOWN_TICKS.get(); } + static int emperorScorpionPoisonTicks() { return EMPEROR_SCORPION_POISON_TICKS.get(); } + static int emperorScorpionWeaknessTicks() { return EMPEROR_SCORPION_WEAKNESS_TICKS.get(); } + static int emperorScorpionSummonIntervalTicks() { return EMPEROR_SCORPION_SUMMON_INTERVAL_TICKS.get(); } + static int emperorScorpionMaxSummonedScorpions() { return EMPEROR_SCORPION_MAX_SUMMONED_SCORPIONS.get(); } + static int emperorScorpionMaxNearbyScorpions() { return EMPEROR_SCORPION_MAX_NEARBY_SCORPIONS.get(); } + static int emperorScorpionHardenCooldownTicks() { return EMPEROR_SCORPION_HARDEN_COOLDOWN_TICKS.get(); } static double emperorScorpionDamageRange() { return EMPEROR_SCORPION_DAMAGE_RANGE.get(); } static int emperorScorpionMinDespawnTicks() { return EMPEROR_SCORPION_MIN_DESPAWN_TICKS.get(); } static double krakenHealth() { return KRAKEN_HEALTH.get(); } static double krakenAttackDamage() { return KRAKEN_ATTACK_DAMAGE.get(); } - static double krakenProjectileDamageTakenMultiplier() { return KRAKEN_PROJECTILE_DAMAGE_TAKEN_MULTIPLIER.get(); } static boolean krakenSquidSpawnEnabled() { return KRAKEN_SQUID_SPAWN_ENABLED.get(); } static boolean krakenMassSpawnEnabled() { return KRAKEN_MASS_SPAWN_ENABLED.get(); } static boolean krakenRequireBadOmenToSummon() { return KRAKEN_REQUIRE_BAD_OMEN_TO_SUMMON.get(); } static double krakenFollowRange() { return KRAKEN_FOLLOW_RANGE.get(); } static double krakenDamageRange() { return KRAKEN_DAMAGE_RANGE.get(); } + static double krakenArmor() { return KRAKEN_ARMOR.get(); } + static double krakenKnockbackResistance() { return KRAKEN_KNOCKBACK_RESISTANCE.get(); } + static double krakenMovementSpeed() { return KRAKEN_MOVEMENT_SPEED.get(); } + static double krakenFlyingSpeed() { return KRAKEN_FLYING_SPEED.get(); } + static double krakenBossBarRange() { return KRAKEN_BOSS_BAR_RANGE.get(); } + static float krakenLightningDamagePhaseOne() { return KRAKEN_LIGHTNING_DAMAGE_PHASE_ONE.get().floatValue(); } static double brutalflyHealth() { return BRUTALFLY_HEALTH.get(); } static double brutalflySwipeDamage() { return BRUTALFLY_SWIPE_DAMAGE.get(); } static double brutalflySpitDamage() { return BRUTALFLY_SPIT_DAMAGE.get(); } static double brutalflyDamageRange() { return BRUTALFLY_DAMAGE_RANGE.get(); } + static double brutalflyArmor() { return BRUTALFLY_ARMOR.get(); } + static double brutalflyArmorToughness() { return BRUTALFLY_ARMOR_TOUGHNESS.get(); } + static double brutalflyKnockbackResistance() { return BRUTALFLY_KNOCKBACK_RESISTANCE.get(); } + static double brutalflyMovementSpeed() { return BRUTALFLY_MOVEMENT_SPEED.get(); } + static double brutalflyFlyingSpeed() { return BRUTALFLY_FLYING_SPEED.get(); } static double mantisHealth() { return MANTIS_HEALTH.get(); } static double mantisAttackDamage() { return MANTIS_ATTACK_DAMAGE.get(); } @@ -754,7 +861,6 @@ public final class AntarchyMobsConfig { static double rollyPollyRollSpeedMultiplier() { return ROLLY_POLLY_ROLL_SPEED_MULTIPLIER.get(); } static int rollyPollyTameChance() { return ROLLY_POLLY_TAME_CHANCE.get(); } static double rollyPollyBowlingDamage() { return ROLLY_POLLY_BOWLING_DAMAGE.get(); } - static double rollyPollyTumbleDamage() { return ROLLY_POLLY_TUMBLE_DAMAGE.get(); } static double rollyPollyBowlingKnockback() { return ROLLY_POLLY_BOWLING_KNOCKBACK.get(); } static double rollyPollyArmor() { return ROLLY_POLLY_ARMOR.get(); } static double rollyPollyRolledArmorBonus() { return ROLLY_POLLY_ROLLED_ARMOR_BONUS.get(); } @@ -782,6 +888,14 @@ public final class AntarchyMobsConfig { static double nightmareHealth() { return NIGHTMARE_HEALTH.get(); } static double nightmareAttackDamage() { return NIGHTMARE_ATTACK_DAMAGE.get(); } + static int dimensionalTearLifetimeTicks() { return DIMENSIONAL_TEAR_LIFETIME_TICKS.get(); } + static int dimensionalTearInvertedDurationTicks(){ return DIMENSIONAL_TEAR_INVERTED_DURATION_TICKS.get(); } + static int dimensionalTearEmergenceMinIntervalTicks() { return DIMENSIONAL_TEAR_EMERGENCE_MIN_INTERVAL_TICKS.get(); } + static int dimensionalTearEmergenceMaxIntervalTicks() { return DIMENSIONAL_TEAR_EMERGENCE_MAX_INTERVAL_TICKS.get(); } + static float dimensionalTearLucidEventChance() { return DIMENSIONAL_TEAR_LUCID_EVENT_CHANCE.get().floatValue(); } + static double nightmareMovementSpeed() { return NIGHTMARE_MOVEMENT_SPEED.get(); } + static int nightmareWeaknessTicks() { return NIGHTMARE_WEAKNESS_TICKS.get(); } + static int nightmareDreadTicks() { return NIGHTMARE_DREAD_TICKS.get(); } static boolean basiliskPetrifyingGazeEnabled() { return BASILISK_PETRIFYING_GAZE_ENABLED.get(); } static int basiliskSpawnMaxLightLevel() { return BASILISK_SPAWN_MAX_LIGHT_LEVEL.get(); } @@ -807,6 +921,11 @@ public final class AntarchyMobsConfig { static double lucidAttackRange() { return LUCID_ATTACK_RANGE.get(); } static double lucidPearlInvertedDurationSeconds() { return LUCID_PEARL_INVERTED_DURATION_SECONDS.get(); } + static double lucidHealth() { return LUCID_HEALTH.get(); } + static double lucidAttackDamage() { return LUCID_ATTACK_DAMAGE.get(); } + static double lucidMovementSpeed() { return LUCID_MOVEMENT_SPEED.get(); } + static double lucidFlyingSpeed() { return LUCID_FLYING_SPEED.get(); } + static double lucidKnockbackResistance() { return LUCID_KNOCKBACK_RESISTANCE.get(); } static double toreterrorHealth() { return TORETERROR_HEALTH.get(); } static double toreterrorDamageRange() { return TORETERROR_DAMAGE_RANGE.get(); } @@ -815,8 +934,6 @@ public final class AntarchyMobsConfig { static double toreterrorSpinDamage() { return TORETERROR_SPIN_DAMAGE.get(); } static double toreterrorSpinKnockback() { return TORETERROR_SPIN_KNOCKBACK.get(); } static double toreterrorProjectileDamageMultiplier() { return TORETERROR_PROJECTILE_DAMAGE_MULTIPLIER.get(); } - static double toreterrorRangedWaterBombChance() { return TORETERROR_RANGED_WATER_BOMB_CHANCE.get(); } - static double waterCannonCooldownSeconds() { return WATER_CANNON_COOLDOWN_SECONDS.get(); } static double waterBombDamage() { return WATER_BOMB_DAMAGE.get(); } static int waterBombLifetimeTicks() { return WATER_BOMB_LIFETIME_TICKS.get(); } static double waterBombGravity() { return WATER_BOMB_GRAVITY.get(); } diff --git a/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/AntarchyNeoforge.java b/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/AntarchyNeoforge.java index 165e4497..e9379ae5 100644 --- a/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/AntarchyNeoforge.java +++ b/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/AntarchyNeoforge.java @@ -367,8 +367,11 @@ public class AntarchyNeoforge { ); AntarchyObjects.setOctopusBomb(AntarchyNeoforgeEntites.OCTOPUS_BOMB); AntarchyObjects.setTentacle(AntarchyNeoforgeEntites.TENTACLE); + AntarchyObjects.setNightmare(AntarchyNeoforgeEntites.NIGHTMARE); AntarchyObjects.setNightmarePortal(AntarchyNeoforgeEntites.NIGHTMARE_PORTAL); + AntarchyObjects.setDimensionalTear(AntarchyNeoforgeEntites.DIMENSIONAL_TEAR); AntarchyObjects.setNightmareBite(AntarchyNeoforgeEntites.NIGHTMARE_BITE); + AntarchyObjects.setLucid(AntarchyNeoforgeEntites.LUCID); AntarchyObjects.setKrakensGraspTrident(AntarchyNeoforgeEntites.KRAKENS_GRASP_TRIDENT); AntarchyObjects.setLotus(() -> AntarchyNeoforgeBlocks.LOTUS.get()); AntarchyObjects.setKrakenTentacle(() -> AntarchyNeoforgeItems.KRAKEN_TENTACLE.get()); diff --git a/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/AntarchyToolsConfig.java b/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/AntarchyToolsConfig.java index 3e82ab89..967ef0b5 100644 --- a/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/AntarchyToolsConfig.java +++ b/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/AntarchyToolsConfig.java @@ -106,8 +106,6 @@ public final class AntarchyToolsConfig { private static final ModConfigSpec.DoubleValue SCORPION_WHIP_PULL_STRENGTH; private static final ModConfigSpec.DoubleValue SCORPION_WHIP_HEAVY_PULL_MULTIPLIER; private static final ModConfigSpec.DoubleValue SCORPION_WHIP_SELF_PULL_MULTIPLIER; - private static final ModConfigSpec.IntValue SCORPION_WHIP_REEL_COOLDOWN_TICKS; - private static final ModConfigSpec.IntValue SCORPION_WHIP_SNAP_COOLDOWN_TICKS; private static final ModConfigSpec.IntValue BLOOD_CRYSTAL_KATANA_ATTACK_DAMAGE; private static final ModConfigSpec.DoubleValue BLOOD_CRYSTAL_KATANA_LAUNCH_STRENGTH; private static final ModConfigSpec.IntValue BLOOD_CRYSTAL_KATANA_TRAIL_DURATION_TICKS; @@ -124,8 +122,11 @@ public final class AntarchyToolsConfig { private static final ModConfigSpec.DoubleValue NIGHTMARE_LEGGINGS_ARMOR_TOUGHNESS; private static final ModConfigSpec.DoubleValue NIGHTMARE_BOOTS_ARMOR_TOUGHNESS; private static final ModConfigSpec.DoubleValue NIGHTMARE_ARMOR_KNOCKBACK_RESISTANCE; + private static final ModConfigSpec.DoubleValue NIGHTMARE_HELMET_DOUBLE_DAMAGE_CHANCE; + private static final ModConfigSpec.DoubleValue NIGHTMARE_CHESTPLATE_DOUBLE_DAMAGE_CHANCE; + private static final ModConfigSpec.DoubleValue NIGHTMARE_LEGGINGS_DOUBLE_DAMAGE_CHANCE; + private static final ModConfigSpec.DoubleValue NIGHTMARE_BOOTS_DOUBLE_DAMAGE_CHANCE; private static final ModConfigSpec.DoubleValue PRIMORDIAL_ARMOR_KNOCKBACK_PER_PIECE; - private static final ModConfigSpec.DoubleValue NIGHTMARE_ARMOR_DREAD_AURA_RANGE_PER_PIECE; private static final ModConfigSpec.DoubleValue NIGHTMARE_SWORD_BASE_DAMAGE; private static final ModConfigSpec.DoubleValue NIGHTMARE_SWORD_ATTACK_SPEED; private static final ModConfigSpec.DoubleValue NIGHTMARE_SWORD_SCALING_FACTOR; @@ -215,8 +216,6 @@ public final class AntarchyToolsConfig { // Moggles private static final ModConfigSpec.DoubleValue MOGGLES_VISION_RADIUS; - private static final ModConfigSpec.IntValue MOGGLES_VISION_MAX_LIGHT; - private static final ModConfigSpec.DoubleValue MOGGLES_VISION_ALPHA; static { @@ -354,8 +353,6 @@ public final class AntarchyToolsConfig { SCORPION_WHIP_PULL_STRENGTH = b.comment("Pull strength applied to normal tethered targets.").defineInRange("pullStrength", 0.75D, 0.0D, 8.0D); SCORPION_WHIP_HEAVY_PULL_MULTIPLIER = b.comment("Reduced pull strength applied to heavy targets.").defineInRange("heavyPullMultiplier", 0.25D, 0.0D, 8.0D); SCORPION_WHIP_SELF_PULL_MULTIPLIER = b.comment("Self-pull strength toward heavy tethered targets.").defineInRange("selfPullMultiplier", 0.45D, 0.0D, 8.0D); - SCORPION_WHIP_REEL_COOLDOWN_TICKS = b.comment("Cooldown after reeling with the whip, in ticks.").defineInRange("reelCooldownTicks", 10, 0, 72000); - SCORPION_WHIP_SNAP_COOLDOWN_TICKS = b.comment("Cooldown after snapping the whip, in ticks.").defineInRange("snapCooldownTicks", 30, 0, 72000); b.pop(); b.push("bloodCrystalKatana"); @@ -377,8 +374,11 @@ public final class AntarchyToolsConfig { NIGHTMARE_LEGGINGS_ARMOR_TOUGHNESS = b.comment("Armor toughness of the Nightmare Leggings.") .defineInRange("leggingsToughness", 3.0D, 0.0D, 100.0D); NIGHTMARE_BOOTS_ARMOR_TOUGHNESS = b.comment("Armor toughness of the Nightmare Boots.") .defineInRange("bootsToughness", 3.0D, 0.0D, 100.0D); NIGHTMARE_ARMOR_KNOCKBACK_RESISTANCE = b.comment("Knockback resistance granted by each Nightmare Armor piece.") .defineInRange("knockbackResistance", 0.1D, 0.0D, 1.0D); + NIGHTMARE_HELMET_DOUBLE_DAMAGE_CHANCE = b.comment("Chance for the Nightmare Helmet to double an incoming hit's damage.") .defineInRange("helmetDoubleDamageChance", 0.04D, 0.0D, 1.0D); + NIGHTMARE_CHESTPLATE_DOUBLE_DAMAGE_CHANCE = b.comment("Chance for the Nightmare Chestplate to double an incoming hit's damage.") .defineInRange("chestplateDoubleDamageChance", 0.06D, 0.0D, 1.0D); + NIGHTMARE_LEGGINGS_DOUBLE_DAMAGE_CHANCE = b.comment("Chance for the Nightmare Leggings to double an incoming hit's damage.") .defineInRange("leggingsDoubleDamageChance", 0.05D, 0.0D, 1.0D); + NIGHTMARE_BOOTS_DOUBLE_DAMAGE_CHANCE = b.comment("Chance for the Nightmare Boots to double an incoming hit's damage.") .defineInRange("bootsDoubleDamageChance", 0.03D, 0.0D, 1.0D); PRIMORDIAL_ARMOR_KNOCKBACK_PER_PIECE = b.comment("Attack knockback added by each Primordial Armor piece.") .defineInRange("primordialArmorKnockbackPerPiece", 0.5D, 0.0D, 16.0D); - NIGHTMARE_ARMOR_DREAD_AURA_RANGE_PER_PIECE = b.comment("Additional Dread aura range added by each Nightmare armor piece.").defineInRange("dreadAuraRangePerPiece", 2.0D, 0.0D, 64.0D); b.pop(); b.push("nightmareSword"); @@ -530,9 +530,7 @@ public final class AntarchyToolsConfig { b.pop(); b.push("moggles"); - MOGGLES_VISION_RADIUS = b.comment("Radius used by Moggles cave detection.").defineInRange("visionRadius", 20.0D, 1.0D, 128.0D); - MOGGLES_VISION_MAX_LIGHT = b.comment("Maximum block light level counted as dark enough for Moggles.").defineInRange("visionMaxLight", 7, 0, 15); - MOGGLES_VISION_ALPHA = b.comment("Overlay alpha used by Moggles vision rendering.").defineInRange("visionAlpha", 0.65D, 0.0D, 1.0D); + MOGGLES_VISION_RADIUS = b.comment("Search radius (in blocks) used by Moggles cave detection.").defineInRange("visionRadius", 20.0D, 1.0D, 128.0D); b.pop(); SPEC = b.build(); @@ -618,8 +616,6 @@ public final class AntarchyToolsConfig { static double scorpionWhipPullStrength() { return SCORPION_WHIP_PULL_STRENGTH.get(); } static double scorpionWhipHeavyPullMultiplier() { return SCORPION_WHIP_HEAVY_PULL_MULTIPLIER.get(); } static double scorpionWhipSelfPullMultiplier() { return SCORPION_WHIP_SELF_PULL_MULTIPLIER.get(); } - static int scorpionWhipReelCooldownTicks() { return SCORPION_WHIP_REEL_COOLDOWN_TICKS.get(); } - static int scorpionWhipSnapCooldownTicks() { return SCORPION_WHIP_SNAP_COOLDOWN_TICKS.get(); } static int bloodCrystalKatanaAttackDamage() { return BLOOD_CRYSTAL_KATANA_ATTACK_DAMAGE.get(); } static double bloodCrystalKatanaLaunchStrength() { return BLOOD_CRYSTAL_KATANA_LAUNCH_STRENGTH.get(); } static int bloodCrystalKatanaTrailDurationTicks() { return BLOOD_CRYSTAL_KATANA_TRAIL_DURATION_TICKS.get(); } @@ -633,8 +629,11 @@ public final class AntarchyToolsConfig { static double nightmareLeggingsArmorToughness() { return NIGHTMARE_LEGGINGS_ARMOR_TOUGHNESS.get(); } static double nightmareBootsArmorToughness() { return NIGHTMARE_BOOTS_ARMOR_TOUGHNESS.get(); } static double nightmareArmorKnockbackResistance() { return NIGHTMARE_ARMOR_KNOCKBACK_RESISTANCE.get(); } + static double nightmareHelmetDoubleDamageChance() { return NIGHTMARE_HELMET_DOUBLE_DAMAGE_CHANCE.get(); } + static double nightmareChestplateDoubleDamageChance() { return NIGHTMARE_CHESTPLATE_DOUBLE_DAMAGE_CHANCE.get(); } + static double nightmareLeggingsDoubleDamageChance() { return NIGHTMARE_LEGGINGS_DOUBLE_DAMAGE_CHANCE.get(); } + static double nightmareBootsDoubleDamageChance() { return NIGHTMARE_BOOTS_DOUBLE_DAMAGE_CHANCE.get(); } static double primordialArmorKnockbackPerPiece() { return PRIMORDIAL_ARMOR_KNOCKBACK_PER_PIECE.get(); } - static double nightmareArmorDreadAuraRangePerPiece() { return NIGHTMARE_ARMOR_DREAD_AURA_RANGE_PER_PIECE.get(); } static double nightmareSwordBaseDamage() { return NIGHTMARE_SWORD_BASE_DAMAGE.get(); } static double nightmareSwordAttackSpeed() { return NIGHTMARE_SWORD_ATTACK_SPEED.get(); } static double nightmareSwordScalingFactor() { return NIGHTMARE_SWORD_SCALING_FACTOR.get(); } @@ -701,8 +700,6 @@ public final class AntarchyToolsConfig { static int americanRegenerationDurationTicks() { return AMERICAN_REGENERATION_DURATION_TICKS.get(); } static int americanRegenerationAmplifier() { return AMERICAN_REGENERATION_AMPLIFIER.get(); } static double mogglesVisionRadius() { return MOGGLES_VISION_RADIUS.get(); } - static int mogglesVisionMaxLight() { return MOGGLES_VISION_MAX_LIGHT.get(); } - static double mogglesVisionAlpha() { return MOGGLES_VISION_ALPHA.get(); } } diff --git a/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/AntarchyWoodTypes.java b/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/AntarchyWoodTypes.java index d361610a..ba506aa6 100644 --- a/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/AntarchyWoodTypes.java +++ b/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/AntarchyWoodTypes.java @@ -7,6 +7,7 @@ import net.minecraft.world.level.block.state.properties.WoodType; public final class AntarchyWoodTypes { public static final WoodType OURANWOOD = register("ouranwood"); public static final WoodType PEACH = register("peach"); + public static final WoodType NADIR = register("nadir"); private AntarchyWoodTypes() { } diff --git a/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/client/AntarchyNeoForgeClient.java b/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/client/AntarchyNeoForgeClient.java index b915f2c9..a15f9acb 100644 --- a/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/client/AntarchyNeoForgeClient.java +++ b/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/client/AntarchyNeoForgeClient.java @@ -76,6 +76,8 @@ public final class AntarchyNeoForgeClient { private static final ResourceLocation OURANWOOD_CHEST_BOAT_TEXTURE = ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "textures/entity/chest_boat/ouranwood.png"); private static final ResourceLocation PEACH_BOAT_TEXTURE = ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "textures/entity/boat/peach.png"); private static final ResourceLocation PEACH_CHEST_BOAT_TEXTURE = ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "textures/entity/chest_boat/peach.png"); + private static final ResourceLocation NADIR_BOAT_TEXTURE = ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "textures/entity/boat/nadir.png"); + private static final ResourceLocation NADIR_CHEST_BOAT_TEXTURE = ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "textures/entity/chest_boat/nadir.png"); private static final ResourceLocation WATER_STILL = ResourceLocation.withDefaultNamespace("block/water_still"); private static final ResourceLocation WATER_FLOW = ResourceLocation.withDefaultNamespace("block/water_flow"); private static final ResourceLocation WATER_OVERLAY = ResourceLocation.withDefaultNamespace("block/water_overlay"); @@ -111,6 +113,8 @@ public final class AntarchyNeoForgeClient { event.registerEntityRenderer(AntarchyNeoforgeEntites.OURANWOOD_CHEST_BOAT_ENTITY.get(), context -> new OuranwoodBoatRenderer<>(context, OURANWOOD_CHEST_BOAT_TEXTURE, true)); event.registerEntityRenderer(AntarchyNeoforgeEntites.PEACH_BOAT_ENTITY.get(), context -> new PeachBoatRenderer<>(context, PEACH_BOAT_TEXTURE, false)); event.registerEntityRenderer(AntarchyNeoforgeEntites.PEACH_CHEST_BOAT_ENTITY.get(), context -> new PeachBoatRenderer<>(context, PEACH_CHEST_BOAT_TEXTURE, true)); + event.registerEntityRenderer(AntarchyNeoforgeEntites.NADIR_BOAT_ENTITY.get(), context -> new PeachBoatRenderer<>(context, NADIR_BOAT_TEXTURE, false)); + event.registerEntityRenderer(AntarchyNeoforgeEntites.NADIR_CHEST_BOAT_ENTITY.get(), context -> new PeachBoatRenderer<>(context, NADIR_CHEST_BOAT_TEXTURE, true)); event.registerEntityRenderer(AntarchyNeoforgeEntites.APPLE_COW.get(), context -> withParalyzedGeoLayer(new AppleCowRenderer(context))); event.registerEntityRenderer(AntarchyNeoforgeEntites.GOLDEN_APPLE_COW.get(), context -> withParalyzedGeoLayer(new AppleCowRenderer(context))); event.registerEntityRenderer(AntarchyNeoforgeEntites.ENCHANTED_GOLDEN_APPLE_COW.get(), context -> withParalyzedGeoLayer(new AppleCowRenderer(context))); @@ -124,6 +128,7 @@ public final class AntarchyNeoForgeClient { event.registerEntityRenderer(AntarchyNeoforgeEntites.OCTOPUS_BOMB.get(), context -> withParalyzedGeoLayer(new OctopusBombRenderer(context))); event.registerEntityRenderer(AntarchyNeoforgeEntites.NIGHTMARE.get(), context -> withParalyzedGeoLayer(new NightmareRenderer(context))); event.registerEntityRenderer(AntarchyNeoforgeEntites.NIGHTMARE_PORTAL.get(), NightmarePortalRenderer::new); + event.registerEntityRenderer(AntarchyNeoforgeEntites.DIMENSIONAL_TEAR.get(), DimensionalTearRenderer::new); event.registerEntityRenderer(AntarchyNeoforgeEntites.NIGHTMARE_BITE.get(), NightmareBiteRenderer::new); event.registerEntityRenderer(AntarchyNeoforgeEntites.LUCID.get(), context -> withParalyzedGeoLayer(new LucidRenderer(context))); event.registerEntityRenderer(AntarchyNeoforgeEntites.BED_BUG.get(), context -> withParalyzedGeoLayer(new BedBugRenderer(context))); @@ -571,6 +576,11 @@ public final class AntarchyNeoForgeClient { ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.PEACH_TRAPDOOR.get(), RenderType.cutout()); ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.PEACH_SAPLING.get(), RenderType.cutout()); ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.POTTED_PEACH_SAPLING.get(), RenderType.cutout()); + ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.NADIR_VEIL.get(), RenderType.translucent()); + ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.NADIR_DOOR.get(), RenderType.cutout()); + ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.NADIR_TRAPDOOR.get(), RenderType.cutout()); + ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.NADIR_SAPLING.get(), RenderType.cutout()); + ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.POTTED_NADIR_SAPLING.get(), RenderType.cutout()); ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.DUPLICATOR_SAPLING.get(), RenderType.cutout()); ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.ORANGE_MILKWEED.get(), RenderType.cutout()); ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.PINK_MILKWEED.get(), RenderType.cutout()); diff --git a/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoForgeEvents.java b/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoForgeEvents.java index 440b9180..d93443f4 100644 --- a/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoForgeEvents.java +++ b/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoForgeEvents.java @@ -1324,6 +1324,7 @@ public final class AntarchyNeoForgeEvents { ComposterBlock.COMPOSTABLES.put(AntarchyNeoforgeItems.CORNEA_EAR.get(), 0.65f); ComposterBlock.COMPOSTABLES.put(AntarchyNeoforgeBlocks.PEACH_LEAVES.get().asItem(), 0.3f); ComposterBlock.COMPOSTABLES.put(AntarchyNeoforgeItems.PEACH_SAPLING_ITEM.get(), 0.3f); + ComposterBlock.COMPOSTABLES.put(AntarchyNeoforgeItems.NADIR_SAPLING_ITEM.get(), 0.3f); ComposterBlock.COMPOSTABLES.put(AntarchyNeoforgeItems.CORN.get(), 0.65f); ComposterBlock.COMPOSTABLES.put(AntarchyNeoforgeItems.CORN_SEEDS.get(), 0.3f); ComposterBlock.COMPOSTABLES.put(AntarchyNeoforgeItems.PEACH.get(), 0.65f); diff --git a/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeBlocks.java b/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeBlocks.java index 8478c652..380f167f 100644 --- a/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeBlocks.java +++ b/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeBlocks.java @@ -153,6 +153,46 @@ public final class AntarchyNeoforgeBlocks { () -> new CeilingHangingSignBlock(AntarchyWoodTypes.PEACH, BlockBehaviour.Properties.ofFullCopy(Blocks.JUNGLE_HANGING_SIGN))); public static final DeferredBlock PEACH_WALL_HANGING_SIGN = BLOCKS.register("peach_wall_hanging_sign", () -> new WallHangingSignBlock(AntarchyWoodTypes.PEACH, BlockBehaviour.Properties.ofFullCopy(Blocks.JUNGLE_WALL_HANGING_SIGN))); + public static final DeferredBlock NADIR_LOG = BLOCKS.register("nadir_log", + () -> new RotatedPillarBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.JUNGLE_LOG))); + public static final DeferredBlock NADIR_WOOD = BLOCKS.register("nadir_wood", + () -> new RotatedPillarBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.JUNGLE_WOOD))); + public static final DeferredBlock STRIPPED_NADIR_LOG = BLOCKS.register("stripped_nadir_log", + () -> new RotatedPillarBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.STRIPPED_JUNGLE_LOG))); + public static final DeferredBlock STRIPPED_NADIR_WOOD = BLOCKS.register("stripped_nadir_wood", + () -> new RotatedPillarBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.STRIPPED_JUNGLE_WOOD))); + public static final DeferredBlock NADIR_PLANKS = BLOCKS.register("nadir_planks", + () -> new Block(BlockBehaviour.Properties.ofFullCopy(Blocks.JUNGLE_PLANKS))); + public static final DeferredBlock NADIR_STAIRS = BLOCKS.register("nadir_stairs", + () -> new StairBlock(NADIR_PLANKS.get().defaultBlockState(), BlockBehaviour.Properties.ofFullCopy(Blocks.JUNGLE_STAIRS))); + public static final DeferredBlock NADIR_SLAB = BLOCKS.register("nadir_slab", + () -> new SlabBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.JUNGLE_SLAB))); + public static final DeferredBlock NADIR_FENCE = BLOCKS.register("nadir_fence", + () -> new FenceBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.JUNGLE_FENCE))); + public static final DeferredBlock NADIR_FENCE_GATE = BLOCKS.register("nadir_fence_gate", + () -> new FenceGateBlock(WoodType.JUNGLE, BlockBehaviour.Properties.ofFullCopy(Blocks.JUNGLE_FENCE_GATE))); + public static final DeferredBlock NADIR_DOOR = BLOCKS.register("nadir_door", + () -> new DoorBlock(BlockSetType.JUNGLE, BlockBehaviour.Properties.ofFullCopy(Blocks.JUNGLE_DOOR))); + public static final DeferredBlock NADIR_TRAPDOOR = BLOCKS.register("nadir_trapdoor", + () -> new TrapDoorBlock(BlockSetType.JUNGLE, BlockBehaviour.Properties.ofFullCopy(Blocks.JUNGLE_TRAPDOOR))); + public static final DeferredBlock NADIR_PRESSURE_PLATE = BLOCKS.register("nadir_pressure_plate", + () -> new PressurePlateBlock(BlockSetType.JUNGLE, BlockBehaviour.Properties.ofFullCopy(Blocks.JUNGLE_PRESSURE_PLATE))); + public static final DeferredBlock NADIR_BUTTON = BLOCKS.register("nadir_button", + () -> new ButtonBlock(BlockSetType.JUNGLE, 30, BlockBehaviour.Properties.ofFullCopy(Blocks.JUNGLE_BUTTON))); + public static final DeferredBlock NADIR_VEIL = BLOCKS.register("nadir_veil", + () -> new Block(BlockBehaviour.Properties.ofFullCopy(Blocks.JUNGLE_LEAVES).sound(SoundType.SLIME_BLOCK).noOcclusion())); + public static final DeferredBlock NADIR_SAPLING = BLOCKS.register("nadir_sapling", + () -> new NadirSaplingBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.OAK_SAPLING).randomTicks().noCollission())); + public static final DeferredBlock POTTED_NADIR_SAPLING = BLOCKS.register("potted_nadir_sapling", + () -> new FlowerPotBlock(NADIR_SAPLING.get(), BlockBehaviour.Properties.ofFullCopy(Blocks.POTTED_DANDELION))); + public static final DeferredBlock NADIR_SIGN = BLOCKS.register("nadir_sign", + () -> new StandingSignBlock(AntarchyWoodTypes.NADIR, BlockBehaviour.Properties.ofFullCopy(Blocks.JUNGLE_SIGN))); + public static final DeferredBlock NADIR_WALL_SIGN = BLOCKS.register("nadir_wall_sign", + () -> new WallSignBlock(AntarchyWoodTypes.NADIR, BlockBehaviour.Properties.ofFullCopy(Blocks.JUNGLE_WALL_SIGN))); + public static final DeferredBlock NADIR_HANGING_SIGN = BLOCKS.register("nadir_hanging_sign", + () -> new CeilingHangingSignBlock(AntarchyWoodTypes.NADIR, BlockBehaviour.Properties.ofFullCopy(Blocks.JUNGLE_HANGING_SIGN))); + public static final DeferredBlock NADIR_WALL_HANGING_SIGN = BLOCKS.register("nadir_wall_hanging_sign", + () -> new WallHangingSignBlock(AntarchyWoodTypes.NADIR, BlockBehaviour.Properties.ofFullCopy(Blocks.JUNGLE_WALL_HANGING_SIGN))); public static final DeferredBlock DUPLICATOR_SAPLING = BLOCKS.register("duplicator_sapling", () -> new DuplicatorSaplingBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.OAK_SAPLING).randomTicks().noCollission())); public static final DeferredBlock DUCT_TAPE = BLOCKS.register("duct_tape", diff --git a/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeEntites.java b/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeEntites.java index 3d5cc50a..a2bfa3a7 100644 --- a/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeEntites.java +++ b/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeEntites.java @@ -30,6 +30,8 @@ import com.craisinlord.antarchy.content.entity.MolevoreEntity; import com.craisinlord.antarchy.content.entity.MolewormEntity; import com.craisinlord.antarchy.content.entity.OuranwoodBoatEntity; import com.craisinlord.antarchy.content.entity.OuranwoodChestBoatEntity; +import com.craisinlord.antarchy.content.entity.NadirBoatEntity; +import com.craisinlord.antarchy.content.entity.NadirChestBoatEntity; import com.craisinlord.antarchy.content.entity.PeachBoatEntity; import com.craisinlord.antarchy.content.entity.PeachChestBoatEntity; import com.craisinlord.antarchy.content.entity.ReverieEntity; @@ -59,6 +61,7 @@ import com.craisinlord.antarchy.content.entity.lucid.LucidEyeProjectileEntity; import com.craisinlord.antarchy.content.entity.nightmare.NightmareEntity; import com.craisinlord.antarchy.content.entity.nightmare.NightmarePortalEntity; import com.craisinlord.antarchy.content.entity.nightmare.NightmareBiteEntity; +import com.craisinlord.antarchy.content.entity.portal.DimensionalTearEntity; import com.craisinlord.antarchy.content.entity.CheepEntity; import com.craisinlord.antarchy.content.entity.CreepingHorrorEntity; import com.craisinlord.antarchy.content.entity.DorrieEntity; @@ -139,6 +142,18 @@ public final class AntarchyNeoforgeEntites { .clientTrackingRange(10) .updateInterval(10) .build("peach_chest_boat")); + public static final DeferredHolder, EntityType> NADIR_BOAT_ENTITY = ENTITY_TYPES.register("nadir_boat", + () -> EntityType.Builder.of(NadirBoatEntity::new, MobCategory.MISC) + .sized(1.375F, 0.5625F) + .clientTrackingRange(10) + .updateInterval(10) + .build("nadir_boat")); + public static final DeferredHolder, EntityType> NADIR_CHEST_BOAT_ENTITY = ENTITY_TYPES.register("nadir_chest_boat", + () -> EntityType.Builder.of(NadirChestBoatEntity::new, MobCategory.MISC) + .sized(1.375F, 0.5625F) + .clientTrackingRange(10) + .updateInterval(10) + .build("nadir_chest_boat")); public static final DeferredHolder, EntityType> MOLEVORE = ENTITY_TYPES.register("molevore", () -> EntityType.Builder.of(MolevoreEntity::new, MobCategory.MONSTER) .sized(1.95F, 1.1F) @@ -274,6 +289,12 @@ public final class AntarchyNeoforgeEntites { .clientTrackingRange(10) .updateInterval(1) .build("nightmare_portal")); + public static final DeferredHolder, EntityType> DIMENSIONAL_TEAR = ENTITY_TYPES.register("dimensional_tear", + () -> EntityType.Builder.of(DimensionalTearEntity::new, MobCategory.MISC) + .sized(2.8F, 3.2F) + .clientTrackingRange(12) + .updateInterval(1) + .build("dimensional_tear")); public static final DeferredHolder, EntityType> NIGHTMARE_BITE = ENTITY_TYPES.register("nightmare_bite", () -> EntityType.Builder.of(NightmareBiteEntity::new, MobCategory.MISC) .sized(2.5F, 2.0F) diff --git a/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeItems.java b/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeItems.java index 6b7fc1ee..d054e0ad 100644 --- a/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeItems.java +++ b/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeItems.java @@ -192,6 +192,21 @@ public final class AntarchyNeoforgeItems { public static final DeferredItem PEACH_BUTTON_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.PEACH_BUTTON); public static final DeferredItem PEACH_LEAVES_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.PEACH_LEAVES); public static final DeferredItem PEACH_SAPLING_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.PEACH_SAPLING); + public static final DeferredItem NADIR_LOG_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.NADIR_LOG); + public static final DeferredItem NADIR_WOOD_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.NADIR_WOOD); + public static final DeferredItem STRIPPED_NADIR_LOG_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.STRIPPED_NADIR_LOG); + public static final DeferredItem STRIPPED_NADIR_WOOD_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.STRIPPED_NADIR_WOOD); + public static final DeferredItem NADIR_PLANKS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.NADIR_PLANKS); + public static final DeferredItem NADIR_STAIRS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.NADIR_STAIRS); + public static final DeferredItem NADIR_SLAB_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.NADIR_SLAB); + public static final DeferredItem NADIR_FENCE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.NADIR_FENCE); + public static final DeferredItem NADIR_FENCE_GATE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.NADIR_FENCE_GATE); + public static final DeferredItem NADIR_DOOR_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.NADIR_DOOR); + public static final DeferredItem NADIR_TRAPDOOR_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.NADIR_TRAPDOOR); + public static final DeferredItem NADIR_PRESSURE_PLATE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.NADIR_PRESSURE_PLATE); + public static final DeferredItem NADIR_BUTTON_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.NADIR_BUTTON); + public static final DeferredItem NADIR_VEIL_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.NADIR_VEIL); + public static final DeferredItem NADIR_SAPLING_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.NADIR_SAPLING); public static final DeferredItem ORANGE_MILKWEED_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.ORANGE_MILKWEED); public static final DeferredItem PINK_MILKWEED_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.PINK_MILKWEED); public static final DeferredItem CAMELLIA_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.CAMELLIA); @@ -218,6 +233,14 @@ public final class AntarchyNeoforgeItems { () -> new PeachBoatOnlyItem(AntarchyNeoforgeEntites.PEACH_BOAT_ENTITY.get(), new Item.Properties().stacksTo(1))); public static final DeferredItem PEACH_CHEST_BOAT = ITEMS.register("peach_chest_boat", () -> new PeachChestBoatItem(AntarchyNeoforgeEntites.PEACH_CHEST_BOAT_ENTITY.get(), new Item.Properties().stacksTo(1))); + public static final DeferredItem NADIR_SIGN_ITEM = ITEMS.register("nadir_sign", + () -> new net.minecraft.world.item.SignItem(new Item.Properties().stacksTo(16), AntarchyNeoforgeBlocks.NADIR_SIGN.get(), AntarchyNeoforgeBlocks.NADIR_WALL_SIGN.get())); + public static final DeferredItem NADIR_HANGING_SIGN_ITEM = ITEMS.register("nadir_hanging_sign", + () -> new net.minecraft.world.item.HangingSignItem(AntarchyNeoforgeBlocks.NADIR_HANGING_SIGN.get(), AntarchyNeoforgeBlocks.NADIR_WALL_HANGING_SIGN.get(), new Item.Properties().stacksTo(16))); + public static final DeferredItem NADIR_BOAT = ITEMS.register("nadir_boat", + () -> new NadirBoatOnlyItem(AntarchyNeoforgeEntites.NADIR_BOAT_ENTITY.get(), new Item.Properties().stacksTo(1))); + public static final DeferredItem NADIR_CHEST_BOAT = ITEMS.register("nadir_chest_boat", + () -> new NadirChestBoatItem(AntarchyNeoforgeEntites.NADIR_CHEST_BOAT_ENTITY.get(), new Item.Properties().stacksTo(1))); public static final DeferredItem CRITTER_CAGE = ITEMS.register("critter_cage", () -> new CritterCageItem(new Item.Properties().stacksTo(16))); public static final DeferredItem DUPLICATOR_SAPLING_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.DUPLICATOR_SAPLING); diff --git a/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeMisc.java b/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeMisc.java index c1114a3f..4658b0be 100644 --- a/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeMisc.java +++ b/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeMisc.java @@ -356,6 +356,8 @@ public final class AntarchyNeoforgeMisc { () -> new LucidAntiwaterPoolFeature(ThoraxisAntiwaterPoolConfiguration.CODEC)); public static final DeferredHolder, ThoraxisDuneFeature> THORAXIS_DUNE = FEATURES.register("thoraxis_dune", () -> new ThoraxisDuneFeature(ThoraxisDuneConfiguration.CODEC)); + public static final DeferredHolder, DimensionalTearFeature> DIMENSIONAL_TEAR = FEATURES.register("dimensional_tear", + () -> new DimensionalTearFeature(NoneFeatureConfiguration.CODEC)); // Biome sources public static final DeferredHolder, MapCodec> ELYTHIA_BIOME_SOURCE = BIOME_SOURCES.register("elythia_biome_source",