tweaked thoraxis gen

This commit is contained in:
craisinlord committed 2026-09-03 22:06:03 -05:00
1 parent 867fef9d0a
commit bb43425edc
40 files changed
+422 -343

No files matched your search

@@ -165,6 +165,23 @@ public final class AntarchyConfigModuleNeoforge {
AntarchySettings.setKingBeamTerrainCap(AntarchyMobsConfig.kingBeamTerrainCap());
AntarchySettings.setRoyalDecreeCooldownTicks(AntarchyMobsConfig.royalDecreeCooldownTicks());
AntarchySettings.setRoyalEggHatchChance(AntarchyMobsConfig.royalEggHatchChance());
AntarchySettings.setRoyalBoltDamage(AntarchyMobsConfig.royalBoltDamage());
AntarchySettings.setPrinceHealth(AntarchyMobsConfig.princeHealth());
AntarchySettings.setPrinceAttackDamage(AntarchyMobsConfig.princeAttackDamage());
AntarchySettings.setPrinceMovementSpeed(AntarchyMobsConfig.princeMovementSpeed());
AntarchySettings.setPrinceFlyingSpeed(AntarchyMobsConfig.princeFlyingSpeed());
AntarchySettings.setPrinceArmor(AntarchyMobsConfig.princeArmor());
AntarchySettings.setPrinceKnockbackResistance(AntarchyMobsConfig.princeKnockbackResistance());
AntarchySettings.setPrinceFollowRange(AntarchyMobsConfig.princeFollowRange());
AntarchySettings.setPrincessHealth(AntarchyMobsConfig.princessHealth());
AntarchySettings.setPrincessAttackDamage(AntarchyMobsConfig.princessAttackDamage());
AntarchySettings.setPrincessMovementSpeed(AntarchyMobsConfig.princessMovementSpeed());
AntarchySettings.setPrincessFlyingSpeed(AntarchyMobsConfig.princessFlyingSpeed());
AntarchySettings.setPrincessArmor(AntarchyMobsConfig.princessArmor());
AntarchySettings.setPrincessKnockbackResistance(AntarchyMobsConfig.princessKnockbackResistance());
AntarchySettings.setPrincessFollowRange(AntarchyMobsConfig.princessFollowRange());
AntarchySettings.setBrutalflyHealth(AntarchyMobsConfig.brutalflyHealth());
AntarchySettings.setBrutalflySwipeDamage(AntarchyMobsConfig.brutalflySwipeDamage());
AntarchySettings.setBrutalflySpitDamage(AntarchyMobsConfig.brutalflySpitDamage());
@@ -130,6 +130,25 @@ public final class AntarchyMobsConfig {
private static final ModConfigSpec.IntValue KING_BEAM_DURATION_TICKS, KING_BEAM_COOLDOWN_TICKS, KING_BEAM_TERRAIN_CAP;
private static final ModConfigSpec.IntValue ROYAL_DECREE_COOLDOWN_TICKS;
// Royal mounts
private static final ModConfigSpec.IntValue ROYAL_EGG_HATCH_CHANCE;
private static final ModConfigSpec.DoubleValue ROYAL_BOLT_DAMAGE;
private static final ModConfigSpec.DoubleValue PRINCE_HEALTH;
private static final ModConfigSpec.DoubleValue PRINCE_ATTACK_DAMAGE;
private static final ModConfigSpec.DoubleValue PRINCE_MOVEMENT_SPEED;
private static final ModConfigSpec.DoubleValue PRINCE_FLYING_SPEED;
private static final ModConfigSpec.DoubleValue PRINCE_ARMOR;
private static final ModConfigSpec.DoubleValue PRINCE_KNOCKBACK_RESISTANCE;
private static final ModConfigSpec.DoubleValue PRINCE_FOLLOW_RANGE;
private static final ModConfigSpec.DoubleValue PRINCESS_HEALTH;
private static final ModConfigSpec.DoubleValue PRINCESS_ATTACK_DAMAGE;
private static final ModConfigSpec.DoubleValue PRINCESS_MOVEMENT_SPEED;
private static final ModConfigSpec.DoubleValue PRINCESS_FLYING_SPEED;
private static final ModConfigSpec.DoubleValue PRINCESS_ARMOR;
private static final ModConfigSpec.DoubleValue PRINCESS_KNOCKBACK_RESISTANCE;
private static final ModConfigSpec.DoubleValue PRINCESS_FOLLOW_RANGE;
// Brutalfly
@@ -574,6 +593,25 @@ public final class AntarchyMobsConfig {
ROYAL_DECREE_COOLDOWN_TICKS = b.comment("Cooldown in ticks between the end of one King decree and the next.").defineInRange("royalDecreeCooldownTicks", 1200, 1, 72000);
b.pop();
b.push("royalMounts");
ROYAL_EGG_HATCH_CHANCE = b.comment("Chance denominator for a royal egg advancing one hatch stage on a random tick.").defineInRange("eggHatchChance", 3, 1, 100000);
ROYAL_BOLT_DAMAGE = b.comment("Direct damage dealt by a Prince or Princess royal bolt.").defineInRange("boltDamage", 6.0D, 0.0D, 1024.0D);
PRINCE_HEALTH = b.comment("Prince base max health.").defineInRange("princeHealth", 120.0D, 1.0D, 32768.0D);
PRINCE_ATTACK_DAMAGE = b.comment("Prince bite damage.").defineInRange("princeAttackDamage", 14.0D, 0.0D, 1024.0D);
PRINCE_MOVEMENT_SPEED = b.comment("Prince grounded movement speed.").defineInRange("princeMovementSpeed", 0.28D, 0.0D, 10.0D);
PRINCE_FLYING_SPEED = b.comment("Prince flying movement speed.").defineInRange("princeFlyingSpeed", 0.9D, 0.0D, 10.0D);
PRINCE_ARMOR = b.comment("Prince armor value.").defineInRange("princeArmor", 10.0D, 0.0D, 1024.0D);
PRINCE_KNOCKBACK_RESISTANCE = b.comment("Prince knockback resistance.").defineInRange("princeKnockbackResistance", 0.6D, 0.0D, 1.0D);
PRINCE_FOLLOW_RANGE = b.comment("Prince owner and target range.").defineInRange("princeFollowRange", 48.0D, 1.0D, 256.0D);
PRINCESS_HEALTH = b.comment("Princess base max health.").defineInRange("princessHealth", 110.0D, 1.0D, 32768.0D);
PRINCESS_ATTACK_DAMAGE = b.comment("Princess bite damage.").defineInRange("princessAttackDamage", 10.0D, 0.0D, 1024.0D);
PRINCESS_MOVEMENT_SPEED = b.comment("Princess grounded movement speed.").defineInRange("princessMovementSpeed", 0.28D, 0.0D, 10.0D);
PRINCESS_FLYING_SPEED = b.comment("Princess flying movement speed.").defineInRange("princessFlyingSpeed", 0.95D, 0.0D, 10.0D);
PRINCESS_ARMOR = b.comment("Princess armor value.").defineInRange("princessArmor", 8.0D, 0.0D, 1024.0D);
PRINCESS_KNOCKBACK_RESISTANCE = b.comment("Princess knockback resistance.").defineInRange("princessKnockbackResistance", 0.5D, 0.0D, 1.0D);
PRINCESS_FOLLOW_RANGE = b.comment("Princess owner and target range.").defineInRange("princessFollowRange", 48.0D, 1.0D, 256.0D);
b.pop();
// Brutalfly
@@ -970,6 +1008,23 @@ public final class AntarchyMobsConfig {
static int kingBeamTerrainCap() { return KING_BEAM_TERRAIN_CAP.get(); }
static int royalDecreeCooldownTicks() { return ROYAL_DECREE_COOLDOWN_TICKS.get(); }
static int royalEggHatchChance() { return ROYAL_EGG_HATCH_CHANCE.get(); }
static double royalBoltDamage() { return ROYAL_BOLT_DAMAGE.get(); }
static double princeHealth() { return PRINCE_HEALTH.get(); }
static double princeAttackDamage() { return PRINCE_ATTACK_DAMAGE.get(); }
static double princeMovementSpeed() { return PRINCE_MOVEMENT_SPEED.get(); }
static double princeFlyingSpeed() { return PRINCE_FLYING_SPEED.get(); }
static double princeArmor() { return PRINCE_ARMOR.get(); }
static double princeKnockbackResistance() { return PRINCE_KNOCKBACK_RESISTANCE.get(); }
static double princeFollowRange() { return PRINCE_FOLLOW_RANGE.get(); }
static double princessHealth() { return PRINCESS_HEALTH.get(); }
static double princessAttackDamage() { return PRINCESS_ATTACK_DAMAGE.get(); }
static double princessMovementSpeed() { return PRINCESS_MOVEMENT_SPEED.get(); }
static double princessFlyingSpeed() { return PRINCESS_FLYING_SPEED.get(); }
static double princessArmor() { return PRINCESS_ARMOR.get(); }
static double princessKnockbackResistance() { return PRINCESS_KNOCKBACK_RESISTANCE.get(); }
static double princessFollowRange() { return PRINCESS_FOLLOW_RANGE.get(); }
static double brutalflyHealth() { return BRUTALFLY_HEALTH.get(); }
static double brutalflySwipeDamage() { return BRUTALFLY_SWIPE_DAMAGE.get(); }
static double brutalflySpitDamage() { return BRUTALFLY_SPIT_DAMAGE.get(); }
@@ -27,7 +27,6 @@ import com.craisinlord.antarchy.content.horde.CavarynHordeManager;
import com.craisinlord.antarchy.content.item.*;
import com.craisinlord.antarchy.content.worldgen.thoraxis.ThoraxisUndersideManager;
import com.craisinlord.antarchy.content.item.ultimate.UltimateGearHelper;
import com.craisinlord.antarchy.content.movement.DreamSandLowGravityAccess;
import com.craisinlord.antarchy.content.AntarchyTags;
import com.craisinlord.antarchy.content.portal.PermanentPortalManager;
import com.craisinlord.antarchy.content.time.TimeDilationManager;
@@ -113,15 +112,12 @@ public final class AntarchyNeoForgeEvents {
NeoForge.EVENT_BUS.addListener(AntarchyNeoForgeEvents::handleParalyzedRightClickItem);
NeoForge.EVENT_BUS.addListener(AntarchyNeoForgeEvents::handleParalyzedEntityInteract);
NeoForge.EVENT_BUS.addListener(AntarchyNeoForgeEvents::handleParalyzedEntityInteractSpecific);
NeoForge.EVENT_BUS.addListener(AntarchyNeoForgeEvents::handleDreamSandJump);
NeoForge.EVENT_BUS.addListener(AntarchyNeoForgeEvents::tickDreadAndIchor);
NeoForge.EVENT_BUS.addListener(AntarchyNeoForgeEvents::tickScorpionWhips);
NeoForge.EVENT_BUS.addListener(AntarchyNeoForgeEvents::tickWormHooks);
NeoForge.EVENT_BUS.addListener(AntarchyNeoForgeEvents::tickDreamSandLowGravity);
NeoForge.EVENT_BUS.addListener(AntarchyNeoForgeEvents::tickMinersDreamExcavations);
NeoForge.EVENT_BUS.addListener(AntarchyNeoForgeEvents::handleAntiwaterDamage);
NeoForge.EVENT_BUS.addListener(AntarchyNeoForgeEvents::handleAntiwaterFall);
NeoForge.EVENT_BUS.addListener(AntarchyNeoForgeEvents::handleDreamSandFall);
NeoForge.EVENT_BUS.addListener(AntarchyNeoForgeEvents::handleBloodCrystalBootsFall);
NeoForge.EVENT_BUS.addListener(AntarchyNeoForgeEvents::handleBloodglassShield);
NeoForge.EVENT_BUS.addListener(AntarchyNeoForgeEvents::handleBloodCrystalArmorEquip);
@@ -144,7 +140,6 @@ public final class AntarchyNeoForgeEvents {
NeoForge.EVENT_BUS.addListener(AntarchyNeoForgeEvents::handleFallenKingCrownKill);
NeoForge.EVENT_BUS.addListener(AntarchyNeoForgeEvents::handleDreadBedSleep);
NeoForge.EVENT_BUS.addListener(AntarchyNeoForgeEvents::handleStartTracking);
NeoForge.EVENT_BUS.addListener(AntarchyNeoForgeEvents::handleDreamSandLogout);
NeoForge.EVENT_BUS.addListener(AntarchyNeoForgeEvents::handleTigerEyeLogout);
NeoForge.EVENT_BUS.addListener(AntarchyNeoForgeEvents::handleTigerEyeDeath);
NeoForge.EVENT_BUS.addListener(AntarchyNeoForgeEvents::handleTigerEyeRespawn);
@@ -285,19 +280,6 @@ public final class AntarchyNeoForgeEvents {
static void registerReloadListeners(AddReloadListenerEvent event) {
event.addListener(new DrTrayaurusTradeManager());
}
static void handleDreamSandLogout(PlayerEvent.PlayerLoggedOutEvent event) {
clearDreamSandLowGravity(event.getEntity());
}
private static void clearDreamSandLowGravity(LivingEntity livingEntity) {
DreamSandLowGravityAccess access = dreamSandAccess(livingEntity);
access.antarchy$setDreamSandLowGravityActive(false);
access.antarchy$setDreamSandLowGravityTicksRemaining(0);
access.antarchy$setDreamSandLandingGraceTicks(0);
}
private static DreamSandLowGravityAccess dreamSandAccess(LivingEntity livingEntity) {
return (DreamSandLowGravityAccess) livingEntity;
}
static void handleStartTracking(PlayerEvent.StartTracking event) {
if (event.getTarget().level().isClientSide()) {
return;
@@ -423,7 +405,6 @@ public final class AntarchyNeoForgeEvents {
static void handleDreadDeath(LivingDeathEvent event) {
LivingEntity entity = event.getEntity();
clearDreamSandLowGravity(entity);
if (!entity.hasEffect(AntarchyNeoforgeMisc.DREAD)) {
return;
}
@@ -1027,24 +1008,6 @@ public final class AntarchyNeoForgeEvents {
return player.hasEffect(AntarchyNeoforgeMisc.PARALYZED);
}
static void handleDreamSandJump(LivingEvent.LivingJumpEvent event) {
LivingEntity livingEntity = event.getEntity();
if (!AntarchySettings.dreamSandEnabled() || isDreamSandLowGravityBlacklisted(livingEntity)) {
clearDreamSandLowGravity(livingEntity);
} else if (isStandingOnDreamSand(livingEntity)) {
livingEntity.setDeltaMovement(
livingEntity.getDeltaMovement().x,
livingEntity.getDeltaMovement().y * AntarchySettings.dreamSandJumpVelocityMultiplier(),
livingEntity.getDeltaMovement().z
);
DreamSandLowGravityAccess access = dreamSandAccess(livingEntity);
access.antarchy$setDreamSandLowGravityActive(true);
access.antarchy$setDreamSandLowGravityTicksRemaining((int) Math.max(1L, Math.round(AntarchySettings.dreamSandEffectDurationSeconds() * 20.0D)));
access.antarchy$setDreamSandLandingGraceTicks(0);
}
}
static void tickDreadAndIchor(PlayerTickEvent.Post event) {
Player player = event.getEntity();
if (player.level().isClientSide()) {
@@ -1074,51 +1037,6 @@ public final class AntarchyNeoForgeEvents {
}
}
static void tickDreamSandLowGravity(EntityTickEvent.Post event) {
if (!(event.getEntity() instanceof LivingEntity livingEntity)) {
return;
}
DreamSandLowGravityAccess access = dreamSandAccess(livingEntity);
int landingGraceTicks = access.antarchy$getDreamSandLandingGraceTicks();
if (landingGraceTicks > 0) {
access.antarchy$setDreamSandLandingGraceTicks(landingGraceTicks - 1);
}
if (!AntarchySettings.dreamSandEnabled() || isDreamSandLowGravityBlacklisted(livingEntity) || !access.antarchy$isDreamSandLowGravityActive()) {
return;
}
int remainingTicks = access.antarchy$getDreamSandLowGravityTicksRemaining();
if (remainingTicks > 0) {
access.antarchy$setDreamSandLowGravityTicksRemaining(remainingTicks - 1);
}
if (access.antarchy$getDreamSandLowGravityTicksRemaining() <= 0) {
clearDreamSandLowGravity(livingEntity);
return;
}
if (isOnSolidGround(livingEntity)) {
access.antarchy$setDreamSandLowGravityActive(false);
access.antarchy$setDreamSandLowGravityTicksRemaining(0);
access.antarchy$setDreamSandLandingGraceTicks(2);
} else if (!livingEntity.onGround() && livingEntity.getDeltaMovement().y < 0.0D) {
livingEntity.setDeltaMovement(
livingEntity.getDeltaMovement().x,
livingEntity.getDeltaMovement().y * AntarchySettings.dreamSandGravityMultiplier(),
livingEntity.getDeltaMovement().z
);
}
}
private static boolean isOnSolidGround(LivingEntity livingEntity) {
return livingEntity.onGround() && livingEntity.getBlockStateOn().blocksMotion();
}
private static boolean isStandingOnDreamSand(LivingEntity livingEntity) {
return livingEntity.level().getBlockState(livingEntity.getOnPosLegacy()).is(AntarchyNeoforgeBlocks.DREAM_SAND.get());
}
static void handleAntiwaterFall(LivingFallEvent event) {
LivingEntity livingEntity = event.getEntity();
if (intersectsAntiwater(livingEntity, livingEntity.getBoundingBox().inflate(0.05D))) {
@@ -1126,22 +1044,6 @@ public final class AntarchyNeoForgeEvents {
}
}
static void handleDreamSandFall(LivingFallEvent event) {
LivingEntity livingEntity = event.getEntity();
DreamSandLowGravityAccess access = dreamSandAccess(livingEntity);
if (!AntarchySettings.dreamSandEnabled()
|| isDreamSandLowGravityBlacklisted(livingEntity)
|| (!access.antarchy$isDreamSandLowGravityActive() && access.antarchy$getDreamSandLandingGraceTicks() <= 0)) {
return;
}
event.setCanceled(true);
}
private static boolean isDreamSandLowGravityBlacklisted(LivingEntity livingEntity) {
return livingEntity.getType().is(AntarchyTags.Entities.DREAM_SAND_LOW_GRAVITY_BLACKLIST);
}
private static boolean intersectsAntiwater(Entity entity, AABB box) {
BlockPos.MutableBlockPos cursor = new BlockPos.MutableBlockPos();
@@ -288,6 +288,10 @@ public final class AntarchyNeoforgeMisc {
() -> new LumenLilyPadFeature(NoneFeatureConfiguration.CODEC));
public static final DeferredHolder<Feature<?>, com.craisinlord.antarchy.content.worldgen.elythia.GlimmeringReedFeature> GLIMMERING_REEDS = FEATURES.register("glimmering_reeds",
() -> new com.craisinlord.antarchy.content.worldgen.elythia.GlimmeringReedFeature(NoneFeatureConfiguration.CODEC));
public static final DeferredHolder<Feature<?>, NaturalDirectionalVineFeature> SPIRALING_VINES = FEATURES.register("spiraling_vines",
() -> new NaturalDirectionalVineFeature(NoneFeatureConfiguration.CODEC, "spiraling_vines", net.minecraft.core.Direction.UP, 4, 12));
public static final DeferredHolder<Feature<?>, NaturalDirectionalVineFeature> GOREVINE = FEATURES.register("gorevine",
() -> new NaturalDirectionalVineFeature(NoneFeatureConfiguration.CODEC, "gorevine", net.minecraft.core.Direction.DOWN, 8, 16));
public static final DeferredHolder<Feature<?>, com.craisinlord.antarchy.content.worldgen.elythia.GiantLilyPadPatchFeature> GIANT_LILY_PAD_PATCH = FEATURES.register("giant_lily_pad_patch",
() -> new com.craisinlord.antarchy.content.worldgen.elythia.GiantLilyPadPatchFeature(NoneFeatureConfiguration.CODEC));
public static final DeferredHolder<Feature<?>, com.craisinlord.antarchy.content.worldgen.elythia.GiantLilyPadPatchFeature> GIANT_LILY_PAD_PATCH_PEACH_FOREST = FEATURES.register("giant_lily_pad_patch_peach_forest",
@@ -320,6 +324,8 @@ public final class AntarchyNeoforgeMisc {
() -> new NyxiteSpikeFeature(NyxiteSpikeConfiguration.CODEC));
public static final DeferredHolder<Feature<?>, TyphoniteSpikeFeature> TYPHONITE_SPIKES = FEATURES.register("typhonite_spikes",
() -> new TyphoniteSpikeFeature(TyphoniteSpikeConfiguration.CODEC));
public static final DeferredHolder<Feature<?>, TyphoniteSwirlFeature> TYPHONITE_SWIRLS = FEATURES.register("typhonite_swirls",
() -> new TyphoniteSwirlFeature(NoneFeatureConfiguration.CODEC));
public static final DeferredHolder<Feature<?>, ChitinSpikeFeature> CAVARYN_CHITIN_SPIKES = FEATURES.register("cavaryn_chitin_spikes",
() -> new ChitinSpikeFeature(ChitinSpikeConfiguration.CODEC));
public static final DeferredHolder<Feature<?>, CavarynBileVeinFeature> CAVARYN_BILE_VEINS = FEATURES.register("cavaryn_bile_veins",