new king sounds

worm sizes
performance improvements
This commit is contained in:
craisinlord committed 2026-09-09 22:55:40 -05:00
1 parent 89d41dd7e1
commit f4f4e0c717
96 files changed
+2070 -501

No files matched your search

@@ -468,6 +468,9 @@ public final class AntarchySettings {
private static double molevoreBreakRange = 1.8D;
private static double molevoreBreakVerticalRange = 2.2D;
private static double molevoreBreakHalfWidth = 1.1D;
private static double jumpyBugLatchDamage = 2.0D;
private static double waterCannonCooldownSeconds = 4.0D;
private static double toreterrorRangedWaterBombChance = 0.35D;
private static double nightmareHealth = 380.0D;
private static double nightmareAttackDamage = 16.0D;
private static double nightmareMovementSpeed = 0.28D;
@@ -2715,6 +2718,21 @@ public final class AntarchySettings {
public static double molevoreAttackDamage() { return molevoreAttackDamage; }
public static void setMolevoreAttackDamage(double value) { molevoreAttackDamage = value; }
public static double molevoreMovementSpeed() { return molevoreMovementSpeed; }
public static void setMolevoreMovementSpeed(double value) { molevoreMovementSpeed = value; }
public static double molevoreArmor() { return molevoreArmor; }
public static void setMolevoreArmor(double value) { molevoreArmor = value; }
public static double molevoreKnockbackResistance() { return molevoreKnockbackResistance; }
public static void setMolevoreKnockbackResistance(double value) { molevoreKnockbackResistance = value; }
public static double molevoreFollowRange() { return molevoreFollowRange; }
public static void setMolevoreFollowRange(double value) { molevoreFollowRange = value; }
public static int molevoreXpReward() { return molevoreXpReward; }
public static void setMolevoreXpReward(int value) { molevoreXpReward = value; }
public static int molevoreSpinTicks() { return molevoreSpinTicks; }
public static void setMolevoreSpinTicks(int value) { molevoreSpinTicks = value; }
@@ -2985,7 +3003,10 @@ public final class AntarchySettings {
public static int bossMagicWardDurationTicks() { return bossMagicWardDurationTicks; }
public static int bossMagicWardTriggerBreaches() { return bossMagicWardTriggerBreaches; }
public static java.util.List<String> magicBurstDamageNamespaces() { return magicBurstDamageNamespaces; }
public static double jumpyBugLatchDamage() { return 2.0D; }
public static double waterCannonCooldownSeconds() { return 4.0D; }
public static double toreterrorRangedWaterBombChance() { return 0.35D; }
public static double jumpyBugLatchDamage() { return jumpyBugLatchDamage; }
public static void setJumpyBugLatchDamage(double value) { jumpyBugLatchDamage = value; }
public static double waterCannonCooldownSeconds() { return waterCannonCooldownSeconds; }
public static void setWaterCannonCooldownSeconds(double value) { waterCannonCooldownSeconds = value; }
public static double toreterrorRangedWaterBombChance() { return toreterrorRangedWaterBombChance; }
public static void setToreterrorRangedWaterBombChance(double value) { toreterrorRangedWaterBombChance = value; }
}
@@ -60,6 +60,7 @@ public class DimensionalTearEntity extends Entity implements GeoEntity {
private static final double PORTAL_RADIUS = 1.35D;
private static final double EXIT_OFFSET = 2.4D;
private static final Map<UUID, Long> TELEPORT_COOLDOWNS = new HashMap<>();
private static long lastTeleportCooldownCleanupTick = Long.MIN_VALUE;
private final AnimatableInstanceCache geoCache = GeckoLibUtil.createInstanceCache(this);
private UUID linkedTearId;
@@ -118,6 +119,7 @@ public class DimensionalTearEntity extends Entity implements GeoEntity {
}
this.ageTicks++;
cleanupTeleportCooldowns(this.level().getGameTime());
if (this.ageTicks >= this.lifetimeTicks - COLLAPSE_WARNING_TICKS) {
this.setTearState(TearState.COLLAPSING);
}
@@ -235,6 +237,15 @@ public class DimensionalTearEntity extends Entity implements GeoEntity {
this.level().playSound(null, this.blockPosition(), SoundEvents.ENDERMAN_TELEPORT, SoundSource.NEUTRAL, 0.7F, 0.65F + this.random.nextFloat() * 0.2F);
}
private static void cleanupTeleportCooldowns(long gameTime) {
if (gameTime <= lastTeleportCooldownCleanupTick
|| gameTime - lastTeleportCooldownCleanupTick < TELEPORT_COOLDOWN_TICKS * 4L) {
return;
}
lastTeleportCooldownCleanupTick = gameTime;
TELEPORT_COOLDOWNS.entrySet().removeIf(entry -> entry.getValue() <= gameTime);
}
private Vec3 exitPosition() {
Vec3 facing = this.getViewVector(1.0F);
if (facing.lengthSqr() < 1.0E-4D) {
@@ -1,11 +1,15 @@
package com.craisinlord.antarchy.content.item;
import java.util.List;
import java.util.Map;
import java.util.UUID;
import java.util.concurrent.ConcurrentHashMap;
import net.minecraft.world.level.Level;
import net.minecraft.ChatFormatting;
import net.minecraft.network.chat.Component;
import net.minecraft.server.level.ServerPlayer;
import net.minecraft.world.entity.LivingEntity;
import net.minecraft.world.entity.Entity;
import net.minecraft.world.item.Item;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.SwordItem;
@@ -21,6 +25,7 @@ public class BloodCrystalKatanaItem extends SwordItem {
}
private static TrailCallback trailCallback = (player, durationTicks) -> {};
private static final Map<UUID, Long> DASH_UNTIL_TICK = new ConcurrentHashMap<>();
private final Tier tier;
private final int attackDamage;
@@ -56,9 +61,23 @@ public class BloodCrystalKatanaItem extends SwordItem {
player.hasImpulse = true;
player.hurtMarked = true;
trailCallback.trigger(player, AntarchySettings.bloodCrystalKatanaTrailDurationTicks());
long now = player.level().getGameTime();
DASH_UNTIL_TICK.put(player.getUUID(), now + AntarchySettings.bloodCrystalKatanaTrailDurationTicks());
return result;
}
public static boolean isDashing(Entity entity) {
if (!(entity instanceof ServerPlayer player)) {
return false;
}
Long until = DASH_UNTIL_TICK.get(player.getUUID());
if (until == null || player.level().getGameTime() >= until) {
DASH_UNTIL_TICK.remove(player.getUUID());
return false;
}
return true;
}
@Override
public void appendHoverText(ItemStack stack, Level level, List<Component> tooltipComponents, TooltipFlag tooltipFlag) {
tooltipComponents.add(Component.translatable("tooltip.antarchy.blood_crystal_katana.launch").withStyle(ChatFormatting.RED));
@@ -16,6 +16,14 @@ import net.minecraft.world.level.biome.Climate;
import net.minecraft.world.level.biome.MultiNoiseBiomeSource;
public class ElythiaBiomeSource extends BiomeSource {
public static final Codec<ElythiaBiomeSource> CODEC = RecordCodecBuilder.create(instance -> instance.group(
MultiNoiseBiomeSource.DIRECT_CODEC.forGetter(ElythiaBiomeSource::parameters),
Codec.INT.optionalFieldOf("moleworm_caves_max_y", 72).forGetter(ElythiaBiomeSource::molewormCavesMaxY),
Codec.INT.optionalFieldOf("surface_biome_sample_y", 160).forGetter(ElythiaBiomeSource::surfaceBiomeSampleY),
Codec.INT.optionalFieldOf("ocean_max_y", 85).forGetter(ElythiaBiomeSource::oceanMaxY),
Codec.INT.optionalFieldOf("sea_level", 78).forGetter(ElythiaBiomeSource::seaLevel),
Codec.INT.optionalFieldOf("cloud_sea_min_y", 360).forGetter(ElythiaBiomeSource::cloudSeaMinY)
).apply(instance, ElythiaBiomeSource::new));
private static final ResourceKey<Biome> MOLEWORM_CAVES = ResourceKey.create(
Registries.BIOME,
new ResourceLocation(Antarchy.MODID, "moleworm_caves")
@@ -17,6 +17,12 @@ import net.minecraft.world.level.biome.Climate;
import net.minecraft.world.level.biome.MultiNoiseBiomeSource;
public final class ThoraxisBiomeSource extends BiomeSource {
public static final Codec<ThoraxisBiomeSource> CODEC = RecordCodecBuilder.create(instance -> instance.group(
MultiNoiseBiomeSource.DIRECT_CODEC.forGetter(ThoraxisBiomeSource::parameters),
Codec.INT.optionalFieldOf("dream_dunes_max_y", 160).forGetter(ThoraxisBiomeSource::dreamDunesMaxY),
Codec.INT.optionalFieldOf("umbral_hills_max_y", 160).forGetter(ThoraxisBiomeSource::umbralHillsMaxY),
Codec.INT.optionalFieldOf("lucid_pools_min_y", 116).forGetter(ThoraxisBiomeSource::lucidPoolsMinY)
).apply(instance, ThoraxisBiomeSource::new));
private static final int REGION_NOISE_SCALE = 96;
private static final int REGION_DETAIL_SCALE = 41;
private static final int VERTICAL_NOISE_SCALE = 8;