Hercules beetle assets, dorrie, cheep, start of toreterror sounds, etc

This commit is contained in:
craisinlord committed 2026-06-29 23:26:19 -05:00
1 parent eb70e23b57
commit cc87361ba9
98 files changed
+11154 -198

No files matched your search

@@ -166,6 +166,9 @@ public final class AntarchyConfigModuleNeoforge {
AntarchySettings.setCreepingHorrorAttackDamage(AntarchyMobsConfig.creepingHorrorAttackDamage());
AntarchySettings.setLurkingTerrorHealth(AntarchyMobsConfig.lurkingTerrorHealth());
AntarchySettings.setLurkingTerrorAttackDamage(AntarchyMobsConfig.lurkingTerrorAttackDamage());
AntarchySettings.setCheepHealth(AntarchyMobsConfig.cheepHealth());
AntarchySettings.setCheepAttackDamage(AntarchyMobsConfig.cheepAttackDamage());
AntarchySettings.setDorrieHealth(AntarchyMobsConfig.dorrieHealth());
}
private static void bakeToolsConfig() {
@@ -182,6 +182,17 @@ public final class AntarchyMobsConfig {
private static final ModConfigSpec.DoubleValue LURKING_TERROR_ATTACK_DAMAGE;
// Cheep
private static final ModConfigSpec.DoubleValue CHEEP_HEALTH;
private static final ModConfigSpec.DoubleValue CHEEP_ATTACK_DAMAGE;
// Dorrie
private static final ModConfigSpec.DoubleValue DORRIE_HEALTH;
// Lucid
private static final ModConfigSpec.DoubleValue LUCID_ATTACK_RANGE;
@@ -473,6 +484,15 @@ public final class AntarchyMobsConfig {
LURKING_TERROR_ATTACK_DAMAGE = b.comment("Base attack damage.").defineInRange("attackDamage", 6.0D, 0.0D, 1024.0D);
b.pop();
b.push("cheep");
CHEEP_HEALTH = b.comment("Base max health.").defineInRange("health", 8.0D, 1.0D, 32768.0D);
CHEEP_ATTACK_DAMAGE = b.comment("Base attack damage.").defineInRange("attackDamage", 3.0D, 0.0D, 1024.0D);
b.pop();
b.push("dorrie");
DORRIE_HEALTH = b.comment("Base max health.").defineInRange("health", 60.0D, 1.0D, 32768.0D);
b.pop();
b.push("toreterror");
TORETERROR_HEALTH = b.comment("Base max health.").defineInRange("health", 300.0D, 1.0D, 32768.0D);
TORETERROR_JUMP_ATTACK_DAMAGE = b.comment("Damage dealt by the jump shockwave.").defineInRange("jumpAttackDamage", 14.0D, 0.0D, 1024.0D);
@@ -629,4 +649,7 @@ public final class AntarchyMobsConfig {
static double creepingHorrorAttackDamage() { return CREEPING_HORROR_ATTACK_DAMAGE.get(); }
static double lurkingTerrorHealth() { return LURKING_TERROR_HEALTH.get(); }
static double lurkingTerrorAttackDamage() { return LURKING_TERROR_ATTACK_DAMAGE.get(); }
static double cheepHealth() { return CHEEP_HEALTH.get(); }
static double cheepAttackDamage() { return CHEEP_ATTACK_DAMAGE.get(); }
static double dorrieHealth() { return DORRIE_HEALTH.get(); }
}
@@ -197,6 +197,8 @@ public class AntarchyNeoforge {
AntarchyNeoforgeEntites.CREEPING_HORROR,
AntarchyNeoforgeEntites.LURKING_TERROR,
AntarchyNeoforgeEntites.STINK_BUG,
AntarchyNeoforgeEntites.CHEEP,
AntarchyNeoforgeEntites.DORRIE,
() -> AntarchyNeoforgeBlocks.DUPLICATOR_LOG.get(),
() -> AntarchyNeoforgeBlocks.DUPLICATOR_SAPLING.get(),
() -> AntarchyNeoforgeBlocks.DUCT_TAPE.get(),
@@ -21,10 +21,19 @@ public final class AntarchyKeyBindings {
CATEGORY
);
public static final KeyMapping DORRIE_CHARGE_JUMP = new KeyMapping(
"key.antarchy.dorrie_charge_jump",
KeyConflictContext.IN_GAME,
InputConstants.Type.KEYSYM,
InputConstants.KEY_LCONTROL,
CATEGORY
);
private AntarchyKeyBindings() {}
@SubscribeEvent
public static void onRegisterKeyMappings(RegisterKeyMappingsEvent event) {
event.register(BRUTALFLY_FLAP);
event.register(DORRIE_CHARGE_JUMP);
}
}
@@ -130,6 +130,8 @@ public final class AntarchyNeoForgeClient {
event.registerEntityRenderer(AntarchyNeoforgeEntites.WATER_BOMB.get(), WaterBombRenderer::new);
event.registerEntityRenderer(AntarchyNeoforgeEntites.CREEPING_HORROR.get(), CreepingHorrorRenderer::new);
event.registerEntityRenderer(AntarchyNeoforgeEntites.LURKING_TERROR.get(), LurkingTerrorRenderer::new);
event.registerEntityRenderer(AntarchyNeoforgeEntites.CHEEP.get(), context -> withParalyzedGeoLayer(new com.craisinlord.antarchy.content.client.renderer.CheepRenderer(context)));
event.registerEntityRenderer(AntarchyNeoforgeEntites.DORRIE.get(), context -> withParalyzedGeoLayer(new com.craisinlord.antarchy.content.client.renderer.DorrieRenderer(context)));
}
@SubscribeEvent
@@ -248,6 +250,10 @@ public final class AntarchyNeoForgeClient {
ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "jumpy_boots"),
(guiGraphics, partialTick) -> JumpyBootsHudRenderer.render(guiGraphics)
);
event.registerAboveAll(
ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "dorrie_jump"),
(guiGraphics, partialTick) -> DorrieJumpHudRenderer.render(guiGraphics)
);
}
@SubscribeEvent
@@ -0,0 +1,60 @@
package com.craisinlord.antarchy.neoforge.client;
import com.craisinlord.antarchy.Antarchy;
import com.craisinlord.antarchy.content.entity.DorrieEntity;
import com.craisinlord.antarchy.content.network.DorrieChargeJumpPayload;
import com.craisinlord.antarchy.content.network.DorrieJumpInputPayload;
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 DorrieJumpClientHandler {
private static boolean wasPressingJump = false;
private static boolean wasPressingCharge = false;
private DorrieJumpClientHandler() {}
@SubscribeEvent
public static void onClientTick(ClientTickEvent.Post event) {
Minecraft mc = Minecraft.getInstance();
LocalPlayer player = mc.player;
if (player == null || mc.screen != null) {
resetAll();
return;
}
if (!(player.getVehicle() instanceof DorrieEntity)) {
resetAll();
return;
}
boolean pressingJump = mc.options.keyJump.isDown();
if (pressingJump != wasPressingJump) {
PacketDistributor.sendToServer(new DorrieJumpInputPayload(pressingJump));
wasPressingJump = pressingJump;
}
boolean pressingCharge = AntarchyKeyBindings.DORRIE_CHARGE_JUMP.isDown();
if (pressingCharge != wasPressingCharge) {
PacketDistributor.sendToServer(new DorrieChargeJumpPayload(pressingCharge));
wasPressingCharge = pressingCharge;
}
}
private static void resetAll() {
if (wasPressingJump) {
PacketDistributor.sendToServer(new DorrieJumpInputPayload(false));
wasPressingJump = false;
}
if (wasPressingCharge) {
PacketDistributor.sendToServer(new DorrieChargeJumpPayload(false));
wasPressingCharge = false;
}
}
}
@@ -0,0 +1,47 @@
package com.craisinlord.antarchy.neoforge.client;
import com.craisinlord.antarchy.content.entity.DorrieEntity;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.GuiGraphics;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.util.Mth;
import net.minecraft.world.entity.Entity;
import net.minecraft.world.entity.player.Player;
public final class DorrieJumpHudRenderer {
private static final ResourceLocation JUMP_BAR_BACKGROUND =
ResourceLocation.withDefaultNamespace("textures/gui/sprites/hud/jump_bar_background.png");
private static final ResourceLocation JUMP_BAR_PROGRESS =
ResourceLocation.withDefaultNamespace("textures/gui/sprites/hud/jump_bar_progress.png");
private static final int BAR_WIDTH = 182;
private static final int BAR_HEIGHT = 5;
private DorrieJumpHudRenderer() {}
public static void render(GuiGraphics guiGraphics) {
Minecraft mc = Minecraft.getInstance();
Player player = mc.player;
if (player == null || mc.screen != null || player.isDeadOrDying()) return;
Entity vehicle = player.getVehicle();
if (!(vehicle instanceof DorrieEntity dorrie)) return;
int charge = dorrie.getJumpCharge();
if (charge <= 0) return;
int width = mc.getWindow().getGuiScaledWidth();
int height = mc.getWindow().getGuiScaledHeight();
int x0 = width / 2 - BAR_WIDTH / 2;
int y0 = height - 29;
guiGraphics.blit(JUMP_BAR_BACKGROUND, x0, y0, 0, 0, BAR_WIDTH, BAR_HEIGHT, BAR_WIDTH, BAR_HEIGHT);
float chargeRatio = Mth.clamp(charge / 100.0F, 0.0F, 1.0F);
int filledWidth = Mth.clamp((int) (chargeRatio * BAR_WIDTH), 0, BAR_WIDTH);
if (filledWidth > 0) {
guiGraphics.setColor(0.2F, 0.8F, 1.0F, 0.4F + chargeRatio * 0.6F);
guiGraphics.blit(JUMP_BAR_PROGRESS, x0, y0, 0, 0, filledWidth, BAR_HEIGHT, BAR_WIDTH, BAR_HEIGHT);
guiGraphics.setColor(1.0F, 1.0F, 1.0F, 1.0F);
}
}
}
@@ -34,7 +34,7 @@ public final class ToreterrorCameraShakeHandler {
)) {
double distance = Math.sqrt(cameraPos.distanceToSqr(toreterror.position().add(0, toreterror.getBbHeight() * 0.5, 0)));
if (distance > MAX_SHAKE_RANGE) continue;
shakeStrength += (float) ((1.0D - distance / MAX_SHAKE_RANGE) * 2.0D);
shakeStrength += (float) ((1.0D - distance / MAX_SHAKE_RANGE) * 1.0D);
}
if (BigBerthaItem.clientShakeTicks > 0) {
@@ -0,0 +1,45 @@
package com.craisinlord.antarchy.neoforge.network;
import com.craisinlord.antarchy.content.entity.DorrieEntity;
import com.craisinlord.antarchy.content.network.DorrieChargeJumpPayload;
import com.craisinlord.antarchy.content.network.DorrieJumpInputPayload;
import net.minecraft.server.level.ServerPlayer;
import net.neoforged.neoforge.network.handling.IPayloadContext;
import net.neoforged.neoforge.network.registration.PayloadRegistrar;
public final class DorrieJumpNetworking {
private DorrieJumpNetworking() {}
public static void register(PayloadRegistrar registrar) {
registrar.playToServer(
DorrieJumpInputPayload.TYPE,
DorrieJumpInputPayload.STREAM_CODEC,
DorrieJumpNetworking::handleJumpInput
);
registrar.playToServer(
DorrieChargeJumpPayload.TYPE,
DorrieChargeJumpPayload.STREAM_CODEC,
DorrieJumpNetworking::handleChargeInput
);
}
private static void handleJumpInput(DorrieJumpInputPayload payload, IPayloadContext context) {
context.enqueueWork(() -> {
if (!(context.player() instanceof ServerPlayer player)) return;
if (!(player.getVehicle() instanceof DorrieEntity dorrie)) return;
dorrie.setPressingJump(payload.pressing());
});
}
private static void handleChargeInput(DorrieChargeJumpPayload payload, IPayloadContext context) {
context.enqueueWork(() -> {
if (!(context.player() instanceof ServerPlayer player)) return;
if (!(player.getVehicle() instanceof DorrieEntity dorrie)) return;
if (payload.pressing()) {
dorrie.startJumpCharge();
} else {
dorrie.releaseJump();
}
});
}
}
@@ -115,6 +115,7 @@ public class AntarchyNeoforgeCreativeModeTabs {
}
if (event.getTabKey() == CreativeModeTabs.TOOLS_AND_UTILITIES) {
event.accept(AntarchyNeoforgeItems.CHEEP_ON_A_STICK.get());
event.insertAfter(new ItemStack(Items.SHEARS), new ItemStack(AntarchyNeoforgeItems.DUCT_TAPE_ITEM.get()), CreativeModeTab.TabVisibility.PARENT_AND_SEARCH_TABS);
event.insertAfter(new ItemStack(Items.MINECART), new ItemStack(AntarchyNeoforgeItems.DIAMOND_MINECART_ITEM.get()), CreativeModeTab.TabVisibility.PARENT_AND_SEARCH_TABS);
event.accept(AntarchyNeoforgeItems.BILE_BUCKET.get());
@@ -144,6 +145,7 @@ public class AntarchyNeoforgeCreativeModeTabs {
event.accept(AntarchyNeoforgeItems.MOLEVORE_NOSE.get());
event.accept(AntarchyNeoforgeItems.MOLEWORM_ITEM.get());
event.accept(AntarchyNeoforgeItems.MUD_PIE.get());
event.accept(AntarchyNeoforgeItems.CHEEP.get());
event.accept(AntarchyNeoforgeItems.LUCID_EYE.get());
event.accept(AntarchyNeoforgeItems.BLOOD_CRYSTAL_SHARD.get());
event.accept(AntarchyNeoforgeItems.BLOOD_CRYSTAL_APPLE.get());
@@ -407,7 +409,7 @@ public class AntarchyNeoforgeCreativeModeTabs {
// 15 - Tools
case "ultimate_pickaxe", "ultimate_axe", "ultimate_shovel", "ultimate_hoe",
"duct_tape", "diamond_minecart", "gravity_sculk_sensor" -> 15;
"duct_tape", "diamond_minecart", "gravity_sculk_sensor", "cheep_on_a_stick" -> 15;
// 16 - Liquid buckets
case "bile_bucket", "ichor_bucket", "antiwater_bucket", "cloud_bucket" -> 16;
@@ -435,7 +437,7 @@ public class AntarchyNeoforgeCreativeModeTabs {
case "ultimate_bow", "ultimate_crossbow" -> 20;
// 21 - Foods
case "cloud_shark_fin_soup", "mud_pie", "rainbow_sugar",
case "cloud_shark_fin_soup", "mud_pie", "cheep", "rainbow_sugar",
"blood_crystal_apple" -> 21;
// 22 - Crafting ingredients
@@ -46,7 +46,9 @@ import com.craisinlord.antarchy.content.entity.lucid.LucidBoltEntity;
import com.craisinlord.antarchy.content.entity.lucid.LucidEntity;
import com.craisinlord.antarchy.content.entity.lucid.LucidEyeProjectileEntity;
import com.craisinlord.antarchy.content.entity.nightmare.NightmareEntity;
import com.craisinlord.antarchy.content.entity.CheepEntity;
import com.craisinlord.antarchy.content.entity.CreepingHorrorEntity;
import com.craisinlord.antarchy.content.entity.DorrieEntity;
import com.craisinlord.antarchy.content.entity.LurkingTerrorEntity;
import com.craisinlord.antarchy.content.entity.ToreterrorEntity;
import com.craisinlord.antarchy.content.entity.WaterBombEntity;
@@ -299,6 +301,16 @@ public final class AntarchyNeoforgeEntites {
.sized(1.3F, 1.5F)
.clientTrackingRange(10)
.build("lurking_terror"));
public static final DeferredHolder<EntityType<?>, EntityType<CheepEntity>> CHEEP = ENTITY_TYPES.register("cheep",
() -> EntityType.Builder.of(CheepEntity::new, MobCategory.WATER_CREATURE)
.sized(1.0F, 1.2F)
.clientTrackingRange(8)
.build("cheep"));
public static final DeferredHolder<EntityType<?>, EntityType<DorrieEntity>> DORRIE = ENTITY_TYPES.register("dorrie",
() -> EntityType.Builder.of(DorrieEntity::new, MobCategory.WATER_CREATURE)
.sized(2.4F, 2.0F)
.clientTrackingRange(10)
.build("dorrie"));
public static final DeferredHolder<EntityType<?>, EntityType<UpwardFallingBlockEntity>> UPWARD_FALLING_BLOCK = ENTITY_TYPES.register("upward_falling_block",
() -> EntityType.Builder.<UpwardFallingBlockEntity>of(
UpwardFallingBlockEntity::new, MobCategory.MISC)
@@ -72,6 +72,8 @@ public class AntarchyNeoforgeEntityAttributes {
event.put(AntarchyNeoforgeEntites.TERMITE.get(), termiteAttributes);
event.put(AntarchyNeoforgeEntites.MOLEWORM.get(), MolewormEntity.createAttributes().build());
event.put(AntarchyNeoforgeEntites.MOLEVORE.get(), MolevoreEntity.createAttributes().build());
event.put(AntarchyNeoforgeEntites.CHEEP.get(), com.craisinlord.antarchy.content.entity.CheepEntity.createAttributes().build());
event.put(AntarchyNeoforgeEntites.DORRIE.get(), com.craisinlord.antarchy.content.entity.DorrieEntity.createAttributes().build());
}
private static AttributeSupplier.Builder buildAntAttributes(double health, double speed, double attackDamage) {
@@ -7,6 +7,7 @@ import com.craisinlord.antarchy.content.block.entity.PotentNyxiteBlockEntity;
import com.craisinlord.antarchy.content.block.entity.WaspNestBlockEntity;
import com.craisinlord.antarchy.content.entity.SizeRayProjectileEntity;
import com.craisinlord.antarchy.content.item.*;
import com.craisinlord.antarchy.content.item.CheepOnAStickItem;
import com.craisinlord.antarchy.content.item.BloodCrystalArmorItem;
import com.craisinlord.antarchy.content.item.BloodCrystalAppleItem;
import com.craisinlord.antarchy.content.item.BloodCrystalKatanaItem;
@@ -362,6 +363,14 @@ public final class AntarchyNeoforgeItems {
public static final DeferredItem<Item> URANIUM_INGOT = ITEMS.registerSimpleItem("uranium_ingot", new Item.Properties().rarity(Rarity.UNCOMMON).fireResistant());
public static final DeferredItem<Item> TITANIUM_INGOT = ITEMS.registerSimpleItem("titanium_ingot", new Item.Properties().rarity(Rarity.UNCOMMON).fireResistant());
public static final DeferredItem<Item> MOLEVORE_NOSE = ITEMS.registerSimpleItem("molevore_nose", new Item.Properties().rarity(Rarity.RARE));
public static final DeferredItem<Item> CHEEP = ITEMS.register("cheep",
() -> new Item(new Item.Properties()
.food(new FoodProperties.Builder()
.nutrition(2)
.saturationModifier(0.2F)
.build())));
public static final DeferredItem<CheepOnAStickItem> CHEEP_ON_A_STICK = ITEMS.register("cheep_on_a_stick",
() -> new CheepOnAStickItem(new Item.Properties().stacksTo(1).durability(25)));
public static final DeferredItem<Item> MOLEWORM_ITEM = ITEMS.register("moleworm",
() -> new Item(new Item.Properties()
.food(new FoodProperties.Builder()
@@ -578,6 +587,10 @@ public final class AntarchyNeoforgeItems {
() -> new DeferredSpawnEggItem(AntarchyNeoforgeEntites.CREEPING_HORROR, 0x6B3A1F, 0x6B0000, new Item.Properties()));
public static final DeferredItem<DeferredSpawnEggItem> LURKING_TERROR_SPAWN_EGG = ITEMS.register("lurking_terror_spawn_egg",
() -> new DeferredSpawnEggItem(AntarchyNeoforgeEntites.LURKING_TERROR, 0x2D5A1B, 0x8B0000, new Item.Properties()));
public static final DeferredItem<DeferredSpawnEggItem> CHEEP_SPAWN_EGG = ITEMS.register("cheep_spawn_egg",
() -> new DeferredSpawnEggItem(AntarchyNeoforgeEntites.CHEEP, 0xAA22FF, 0x22FF44, new Item.Properties()));
public static final DeferredItem<DeferredSpawnEggItem> DORRIE_SPAWN_EGG = ITEMS.register("dorrie_spawn_egg",
() -> new DeferredSpawnEggItem(AntarchyNeoforgeEntites.DORRIE, 0x1B91B3, 0xC0E8FF, new Item.Properties()));
private AntarchyNeoforgeItems() {}
@@ -3,6 +3,7 @@ package com.craisinlord.antarchy.neoforge.registry;
import com.craisinlord.antarchy.content.network.BloodCrystalKatanaTrailPayload;
import com.craisinlord.antarchy.neoforge.network.AntarchyGravityNetworking;
import com.craisinlord.antarchy.neoforge.network.BrutalflyElytraNetworking;
import com.craisinlord.antarchy.neoforge.network.DorrieJumpNetworking;
import com.craisinlord.antarchy.neoforge.network.JumpyBootsNetworking;
import com.craisinlord.antarchy.neoforge.network.MultipartNetworking;
import net.neoforged.bus.api.IEventBus;
@@ -20,6 +21,7 @@ public class AntarchyNeoforgePayloadHandlers {
AntarchyGravityNetworking.register(registrar);
BrutalflyElytraNetworking.register(registrar);
JumpyBootsNetworking.register(registrar);
DorrieJumpNetworking.register(registrar);
registrar.playToClient(
com.craisinlord.antarchy.content.network.BloodglassStatePayload.TYPE,
com.craisinlord.antarchy.content.network.BloodglassStatePayload.STREAM_CODEC,