rolly polly mob, rolly caves biome, toreterror sounds, alpha mantis turning revert, scorpion and cloud shark updates

This commit is contained in:
craisinlord committed 2026-07-06 08:50:56 -05:00
1 parent 9d34c45285
commit 303a56f7fc
65 files changed
+10746 -2647

No files matched your search

@@ -116,6 +116,12 @@ public final class AntarchyConfigModuleNeoforge {
AntarchySettings.setAlphaMantisSummonIntervalTicks(AntarchyMobsConfig.alphaMantisSummonIntervalTicks());
AntarchySettings.setAlphaMantisMaxMinions(AntarchyMobsConfig.alphaMantisMaxMinions());
AntarchySettings.setRollyPollyHealth(AntarchyMobsConfig.rollyPollyHealth());
AntarchySettings.setRollyPollyMovementSpeed(AntarchyMobsConfig.rollyPollyMovementSpeed());
AntarchySettings.setRollyPollyRollSpeedMultiplier(AntarchyMobsConfig.rollyPollyRollSpeedMultiplier());
AntarchySettings.setRollyPollyTumbleDamage(AntarchyMobsConfig.rollyPollyTumbleDamage());
AntarchySettings.setRollyPollyTameChance(AntarchyMobsConfig.rollyPollyTameChance());
AntarchySettings.setTriffidHealth(AntarchyMobsConfig.triffidHealth());
AntarchySettings.setTriffidAttackDamage(AntarchyMobsConfig.triffidAttackDamage());
AntarchySettings.setTriffidGrabDamage(AntarchyMobsConfig.triffidGrabDamage());
@@ -100,6 +100,15 @@ public final class AntarchyMobsConfig {
private static final ModConfigSpec.IntValue ALPHA_MANTIS_MAX_MINIONS;
// Rolly Polly
private static final ModConfigSpec.DoubleValue ROLLY_POLLY_HEALTH;
private static final ModConfigSpec.DoubleValue ROLLY_POLLY_MOVEMENT_SPEED;
private static final ModConfigSpec.DoubleValue ROLLY_POLLY_ROLL_SPEED_MULTIPLIER;
private static final ModConfigSpec.DoubleValue ROLLY_POLLY_TUMBLE_DAMAGE;
private static final ModConfigSpec.IntValue ROLLY_POLLY_TAME_CHANCE;
// Triffid
private static final ModConfigSpec.DoubleValue TRIFFID_HEALTH;
@@ -390,6 +399,17 @@ public final class AntarchyMobsConfig {
b.pop();
// Rolly Polly
b.push("rollyPolly");
ROLLY_POLLY_HEALTH = b.comment("Base max health.") .defineInRange("health", 12.0D, 1.0D, 32768.0D);
ROLLY_POLLY_MOVEMENT_SPEED = b.comment("Base movement speed.") .defineInRange("movementSpeed", 0.3D, 0.0D, 10.0D);
ROLLY_POLLY_ROLL_SPEED_MULTIPLIER = b.comment("Speed multiplier while rolled up and ridden.") .defineInRange("rollSpeedMultiplier", 2.2D, 0.1D, 20.0D);
ROLLY_POLLY_TUMBLE_DAMAGE = b.comment("Damage dealt to a helmetless rider while rolling. 0 disables.") .defineInRange("tumbleDamage", 1.0D, 0.0D, 1024.0D);
ROLLY_POLLY_TAME_CHANCE = b.comment("Taming succeeds with a 1-in-N chance per food item.") .defineInRange("tameChance", 3, 1, 100);
b.pop();
// Triffid
b.push("triffid");
@@ -617,6 +637,11 @@ public final class AntarchyMobsConfig {
static double alphaMantisFlyingSpeed() { return ALPHA_MANTIS_FLYING_SPEED.get(); }
static int alphaMantisSummonIntervalTicks() { return ALPHA_MANTIS_SUMMON_INTERVAL_TICKS.get(); }
static int alphaMantisMaxMinions() { return ALPHA_MANTIS_MAX_MINIONS.get(); }
static double rollyPollyHealth() { return ROLLY_POLLY_HEALTH.get(); }
static double rollyPollyMovementSpeed() { return ROLLY_POLLY_MOVEMENT_SPEED.get(); }
static double rollyPollyRollSpeedMultiplier() { return ROLLY_POLLY_ROLL_SPEED_MULTIPLIER.get(); }
static double rollyPollyTumbleDamage() { return ROLLY_POLLY_TUMBLE_DAMAGE.get(); }
static int rollyPollyTameChance() { return ROLLY_POLLY_TAME_CHANCE.get(); }
static double triffidHealth() { return TRIFFID_HEALTH.get(); }
static double triffidAttackDamage() { return TRIFFID_ATTACK_DAMAGE.get(); }
@@ -37,6 +37,14 @@ public final class AntarchyKeyBindings {
CATEGORY
);
public static final KeyMapping ROLLY_POLLY_ROLL = new KeyMapping(
"key.antarchy.rolly_polly_roll",
KeyConflictContext.IN_GAME,
InputConstants.Type.KEYSYM,
InputConstants.KEY_R,
CATEGORY
);
private AntarchyKeyBindings() {}
@SubscribeEvent
@@ -44,5 +52,6 @@ public final class AntarchyKeyBindings {
event.register(BRUTALFLY_FLAP);
event.register(DORRIE_CHARGE_JUMP);
event.register(HERCULES_BEETLE_CHARGE);
event.register(ROLLY_POLLY_ROLL);
}
}
@@ -95,6 +95,7 @@ public final class AntarchyNeoForgeClient {
event.registerEntityRenderer(AntarchyNeoforgeEntites.MOLEWORM.get(), context -> withParalyzedGeoLayer(new MolewormRenderer(context)));
event.registerEntityRenderer(AntarchyNeoforgeEntites.MANTIS.get(), context -> withParalyzedGeoLayer(new MantisRenderer(context)));
event.registerEntityRenderer(AntarchyNeoforgeEntites.ALPHA_MANTIS.get(), context -> withParalyzedGeoLayer(new AlphaMantisRenderer(context)));
event.registerEntityRenderer(AntarchyNeoforgeEntites.ROLLY_POLLY.get(), context -> withParalyzedGeoLayer(new RollyPollyRenderer(context)));
event.registerEntityRenderer(AntarchyNeoforgeEntites.MOLEVORE.get(), context -> withParalyzedGeoLayer(new MolevoreRenderer(context)));
event.registerEntityRenderer(AntarchyNeoforgeEntites.TRIFFID.get(), context -> withParalyzedGeoLayer(new TriffidRenderer(context)));
event.registerEntityRenderer(AntarchyNeoforgeEntites.OURANWOOD_BOAT_ENTITY.get(), context -> new OuranwoodBoatRenderer<>(context, OURANWOOD_BOAT_TEXTURE, false));
@@ -0,0 +1,36 @@
package com.craisinlord.antarchy.neoforge.client;
import com.craisinlord.antarchy.Antarchy;
import com.craisinlord.antarchy.content.entity.RollyPollyEntity;
import com.craisinlord.antarchy.content.network.RollyPollyRollPayload;
import net.minecraft.client.Minecraft;
import net.minecraft.client.player.LocalPlayer;
import net.neoforged.api.distmarker.Dist;
import net.neoforged.bus.api.SubscribeEvent;
import net.neoforged.fml.common.EventBusSubscriber;
import net.neoforged.neoforge.client.event.ClientTickEvent;
import net.neoforged.neoforge.network.PacketDistributor;
@EventBusSubscriber(modid = Antarchy.MODID, value = Dist.CLIENT)
public final class RollyPollyClientHandler {
private static boolean wasPressingRoll;
private RollyPollyClientHandler() {
}
@SubscribeEvent
public static void onClientTick(ClientTickEvent.Post event) {
Minecraft mc = Minecraft.getInstance();
LocalPlayer player = mc.player;
if (player == null || mc.screen != null || !(player.getVehicle() instanceof RollyPollyEntity)) {
wasPressingRoll = false;
return;
}
boolean pressingRoll = AntarchyKeyBindings.ROLLY_POLLY_ROLL.isDown();
if (pressingRoll && !wasPressingRoll) {
PacketDistributor.sendToServer(new RollyPollyRollPayload());
}
wasPressingRoll = pressingRoll;
}
}
@@ -0,0 +1,31 @@
package com.craisinlord.antarchy.neoforge.network;
import com.craisinlord.antarchy.content.entity.RollyPollyEntity;
import com.craisinlord.antarchy.content.network.RollyPollyRollPayload;
import net.minecraft.server.level.ServerPlayer;
import net.neoforged.neoforge.network.handling.IPayloadContext;
import net.neoforged.neoforge.network.registration.PayloadRegistrar;
public final class RollyPollyNetworking {
private RollyPollyNetworking() {
}
public static void register(PayloadRegistrar registrar) {
registrar.playToServer(
RollyPollyRollPayload.TYPE,
RollyPollyRollPayload.STREAM_CODEC,
RollyPollyNetworking::handleRollToggle
);
}
private static void handleRollToggle(RollyPollyRollPayload payload, IPayloadContext context) {
context.enqueueWork(() -> {
if (!(context.player() instanceof ServerPlayer player)) {
return;
}
if (player.getVehicle() instanceof RollyPollyEntity rollyPolly) {
rollyPolly.handleRollToggle(player);
}
});
}
}
@@ -61,6 +61,7 @@ public class AntarchyNeoforgeCreativeModeTabs {
event.accept(AntarchyNeoforgeItems.MOLEWORM_SPAWN_EGG.get());
event.accept(AntarchyNeoforgeItems.MANTIS_SPAWN_EGG.get());
event.accept(AntarchyNeoforgeItems.ALPHA_MANTIS_SPAWN_EGG.get());
event.accept(AntarchyNeoforgeItems.ROLLY_POLLY_SPAWN_EGG.get());
event.accept(AntarchyNeoforgeItems.MOLEVORE_SPAWN_EGG.get());
event.accept(AntarchyNeoforgeItems.TRIFFID_SPAWN_EGG.get());
event.accept(AntarchyNeoforgeItems.APPLE_COW_SPAWN_EGG.get());
@@ -18,6 +18,7 @@ import com.craisinlord.antarchy.content.entity.HushProjectileEntity;
import com.craisinlord.antarchy.content.entity.HerculesBeetleEntity;
import com.craisinlord.antarchy.content.entity.JumpyBugEntity;
import com.craisinlord.antarchy.content.entity.AlphaMantisEntity;
import com.craisinlord.antarchy.content.entity.RollyPollyEntity;
import com.craisinlord.antarchy.content.entity.MantisEntity;
import com.craisinlord.antarchy.content.entity.MissileSquidEntity;
import com.craisinlord.antarchy.content.entity.OctopusBombEntity;
@@ -99,6 +100,11 @@ public final class AntarchyNeoforgeEntites {
.sized(4.0F, 3.25F)
.clientTrackingRange(10)
.build("alpha_mantis"));
public static final DeferredHolder<EntityType<?>, EntityType<RollyPollyEntity>> ROLLY_POLLY = ENTITY_TYPES.register("rolly_polly",
() -> EntityType.Builder.of(RollyPollyEntity::new, MobCategory.CREATURE)
.sized(0.95F, 0.85F)
.clientTrackingRange(10)
.build("rolly_polly"));
public static final DeferredHolder<EntityType<?>, EntityType<OuranwoodBoatEntity>> OURANWOOD_BOAT_ENTITY = ENTITY_TYPES.register("ouranwood_boat",
() -> EntityType.Builder.<OuranwoodBoatEntity>of(OuranwoodBoatEntity::new, MobCategory.MISC)
.sized(1.375F, 0.5625F)
@@ -266,8 +272,8 @@ public final class AntarchyNeoforgeEntites {
.build("basilisk"));
public static final DeferredHolder<EntityType<?>, EntityType<EmperorScorpionEntity>> EMPEROR_SCORPION = ENTITY_TYPES.register("emperor_scorpion",
() -> EntityType.Builder.of(EmperorScorpionEntity::new, MobCategory.MONSTER)
.sized(4.05F, 1.35F)
.clientTrackingRange(10)
.sized(6.0F, 3.0F)
.clientTrackingRange(12)
.build("emperor_scorpion"));
public static final DeferredHolder<EntityType<?>, EntityType<LucidEyeProjectileEntity>> LUCID_PEARL_PROJECTILE = ENTITY_TYPES.register("lucid_pearl_projectile",
() -> EntityType.Builder.<LucidEyeProjectileEntity>of(LucidEyeProjectileEntity::new, MobCategory.MISC)
@@ -54,6 +54,7 @@ public class AntarchyNeoforgeEntityAttributes {
event.put(AntarchyNeoforgeEntites.SPIT_BUG.get(), SpitBugEntity.createAttributes().build());
event.put(AntarchyNeoforgeEntites.MANTIS.get(), MantisEntity.createAttributes().build());
event.put(AntarchyNeoforgeEntites.ALPHA_MANTIS.get(), AlphaMantisEntity.createAttributes().build());
event.put(AntarchyNeoforgeEntites.ROLLY_POLLY.get(), RollyPollyEntity.createAttributes().build());
event.put(AntarchyNeoforgeEntites.TRIFFID.get(), TriffidEntity.createAttributes().build());
event.put(AntarchyNeoforgeEntites.LUCID.get(), LucidEntity.createAttributes().build());
event.put(AntarchyNeoforgeEntites.SCORPION.get(), ScorpionEntity.createAttributes().build());
@@ -515,6 +515,8 @@ public final class AntarchyNeoforgeItems {
() -> new DeferredSpawnEggItem(AntarchyNeoforgeEntites.MANTIS, 0xF8F8F2, 0x63B44A, new Item.Properties()));
public static final DeferredItem<DeferredSpawnEggItem> ALPHA_MANTIS_SPAWN_EGG = ITEMS.register("alpha_mantis_spawn_egg",
() -> new DeferredSpawnEggItem(AntarchyNeoforgeEntites.ALPHA_MANTIS, 0x8FDD6C, 0x2F5D22, new Item.Properties().rarity(Rarity.UNCOMMON)));
public static final DeferredItem<DeferredSpawnEggItem> ROLLY_POLLY_SPAWN_EGG = ITEMS.register("rolly_polly_spawn_egg",
() -> new DeferredSpawnEggItem(AntarchyNeoforgeEntites.ROLLY_POLLY, 0x7284A3, 0xBCC8DB, new Item.Properties()));
public static final DeferredItem<DeferredSpawnEggItem> MOLEVORE_SPAWN_EGG = ITEMS.register("molevore_spawn_egg",
() -> new DeferredSpawnEggItem(AntarchyNeoforgeEntites.MOLEVORE, 0x4A4A4A, 0x6B4A2B, new Item.Properties().rarity(Rarity.UNCOMMON)));
public static final DeferredItem<DeferredSpawnEggItem> TRIFFID_SPAWN_EGG = ITEMS.register("triffid_spawn_egg",
@@ -556,7 +558,7 @@ public final class AntarchyNeoforgeItems {
public static final DeferredItem<DeferredSpawnEggItem> BASILISK_SPAWN_EGG = ITEMS.register("basilisk_spawn_egg",
() -> new DeferredSpawnEggItem(AntarchyNeoforgeEntites.BASILISK, 0x4A7C40, 0xD4A040, new Item.Properties()));
public static final DeferredItem<DeferredSpawnEggItem> EMPEROR_SCORPION_SPAWN_EGG = ITEMS.register("emperor_scorpion_spawn_egg",
() -> new DeferredSpawnEggItem(AntarchyNeoforgeEntites.EMPEROR_SCORPION, 0x1A1A0A, 0x8B2200, new Item.Properties()));
() -> new DeferredSpawnEggItem(AntarchyNeoforgeEntites.EMPEROR_SCORPION, 0x3A3242, 0xD8CDB4, new Item.Properties()));
public static final DeferredItem<LucidEyeItem> LUCID_EYE = ITEMS.register("lucid_eye",
() -> new LucidEyeItem(new Item.Properties().stacksTo(16).rarity(Rarity.UNCOMMON)));
public static final DeferredItem<LucidPearlItem> LUCID_PEARL = ITEMS.register("lucid_pearl",
@@ -24,6 +24,7 @@ public class AntarchyNeoforgePayloadHandlers {
JumpyBootsNetworking.register(registrar);
DorrieJumpNetworking.register(registrar);
HerculesBeetleNetworking.register(registrar);
com.craisinlord.antarchy.neoforge.network.RollyPollyNetworking.register(registrar);
registrar.playToClient(
com.craisinlord.antarchy.content.network.BloodglassStatePayload.TYPE,
com.craisinlord.antarchy.content.network.BloodglassStatePayload.STREAM_CODEC,