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

@@ -264,6 +264,7 @@ public final class AntarchyFabricContent {
private static final DeferredRegister<Potion> POTIONS = DeferredRegister.create(Registries.POTION, Antarchy.MODID);
private static final DeferredRegister<SoundEvent> SOUND_EVENTS = DeferredRegister.create(Registries.SOUND_EVENT, Antarchy.MODID);
private static final DeferredRegister<Fluid> FLUIDS = DeferredRegister.create(Registries.FLUID, Antarchy.MODID);
private static final DeferredRegister<net.minecraft.world.inventory.MenuType<?>> MENUS = DeferredRegister.create(Registries.MENU, Antarchy.MODID);
private static final Tier ULTIMATE_TIER = new SimpleToolTier(
3072,
10.5F,
@@ -1808,6 +1809,26 @@ public final class AntarchyFabricContent {
() -> new DeferredSpawnEggItem(CREEPING_HORROR, 0x6B3A1F, 0x6B0000, new Item.Properties()));
public static final DeferredItem<DeferredSpawnEggItem> LURKING_TERROR_SPAWN_EGG = ITEMS.register("lurking_terror_spawn_egg",
() -> new DeferredSpawnEggItem(LURKING_TERROR, 0x2D5A1B, 0x8B0000, new Item.Properties()));
public static final DeferredHolder<EntityType<?>, EntityType<com.craisinlord.antarchy.content.entity.CheepEntity>> CHEEP = ENTITY_TYPES.register("cheep",
() -> EntityType.Builder.of(com.craisinlord.antarchy.content.entity.CheepEntity::new, MobCategory.WATER_CREATURE)
.sized(1.0F, 1.2F)
.clientTrackingRange(8)
.build("cheep"));
public static final DeferredHolder<EntityType<?>, EntityType<com.craisinlord.antarchy.content.entity.DorrieEntity>> DORRIE = ENTITY_TYPES.register("dorrie",
() -> EntityType.Builder.of(com.craisinlord.antarchy.content.entity.DorrieEntity::new, MobCategory.WATER_CREATURE)
.sized(2.4F, 2.0F)
.clientTrackingRange(10)
.build("dorrie"));
public static final DeferredItem<Item> CHEEP_ITEM = ITEMS.register("cheep",
() -> new Item(new Item.Properties().food(new FoodProperties.Builder().nutrition(2).saturationModifier(0.2F).build())));
public static final DeferredItem<com.craisinlord.antarchy.content.item.CheepOnAStickItem> CHEEP_ON_A_STICK = ITEMS.register("cheep_on_a_stick",
() -> new com.craisinlord.antarchy.content.item.CheepOnAStickItem(new Item.Properties().stacksTo(1).durability(25)));
public static final DeferredItem<DeferredSpawnEggItem> CHEEP_SPAWN_EGG = ITEMS.register("cheep_spawn_egg",
() -> new DeferredSpawnEggItem(CHEEP, 0xFF00AA, 0x00FF44, new Item.Properties()));
public static final DeferredItem<DeferredSpawnEggItem> DORRIE_SPAWN_EGG = ITEMS.register("dorrie_spawn_egg",
() -> new DeferredSpawnEggItem(DORRIE, 0x1B91B3, 0xC0E8FF, new Item.Properties()));
public static final DeferredHolder<CreativeModeTab, CreativeModeTab> ANTARCHY_TAB = CREATIVE_MODE_TABS.register("antarchy",
() -> CreativeModeTab.builder(CreativeModeTab.Row.TOP, 0)
.title(net.minecraft.network.chat.Component.translatable("itemGroup.antarchy.antarchy"))
@@ -1894,6 +1915,8 @@ public final class AntarchyFabricContent {
FabricDefaultAttributeRegistry.register(TORETERROR.get(), ToreterrorEntity.createAttributes().build());
FabricDefaultAttributeRegistry.register(CREEPING_HORROR.get(), CreepingHorrorEntity.createAttributes().build());
FabricDefaultAttributeRegistry.register(LURKING_TERROR.get(), LurkingTerrorEntity.createAttributes().build());
FabricDefaultAttributeRegistry.register(CHEEP.get(), com.craisinlord.antarchy.content.entity.CheepEntity.createAttributes().build());
FabricDefaultAttributeRegistry.register(DORRIE.get(), com.craisinlord.antarchy.content.entity.DorrieEntity.createAttributes().build());
FabricDefaultAttributeRegistry.register(RED_ANT.get(), buildAntAttributes(
AntarchySettings.redAntHealth(),
@@ -2048,6 +2071,8 @@ public final class AntarchyFabricContent {
"basilisk_spawn_egg", "emperor_scorpion_spawn_egg", "toreterror_spawn_egg",
"creeping_horror_spawn_egg", "lurking_terror_spawn_egg" -> 90;
case "stink_bug", "chiten" -> 22;
case "cheep" -> 21;
case "cheep_on_a_stick" -> 52;
case "water_cannon" -> 52;
case "primordial_helmet", "primordial_chestplate", "primordial_leggings", "primordial_boots" -> 53;
case "jumpy_boots" -> 54;
@@ -2329,8 +2354,12 @@ public final class AntarchyFabricContent {
MOB_EFFECTS.register();
POTIONS.register();
ITEMS.register();
MENUS.register();
CREATIVE_MODE_TABS.register();
// Wire common-module accessors after all registrations are complete.
AntarchyObjects.CHEEP_ITEM = () -> CHEEP_ITEM.get();
AntarchySoundEvents.bind(
SQUIDZOOKA_FIRE,
SHRINK_RAY_SOUND,
@@ -2480,6 +2509,8 @@ public final class AntarchyFabricContent {
CREEPING_HORROR,
LURKING_TERROR,
STINK_BUG,
CHEEP,
DORRIE,
() -> DUPLICATOR_LOG.get(),
() -> DUPLICATOR_SAPLING.get(),
() -> DUCT_TAPE.get(),
@@ -49,6 +49,10 @@ public final class AntarchyFabricClientBootstrap {
public static void register() {
AntarchyKeyBindings.register();
net.minecraft.client.gui.screens.MenuScreens.register(
com.craisinlord.antarchy.fabric.AntarchyFabricContent.DORRIE_MENU.get(),
com.craisinlord.antarchy.content.client.screen.DorrieScreen::new
);
registerRenderers();
registerEntityLayers();
registerColors();
@@ -113,6 +117,8 @@ public final class AntarchyFabricClientBootstrap {
EntityRendererRegistry.register(AntarchyFabricContent.WATER_BOMB.get(), WaterBombRenderer::new);
EntityRendererRegistry.register(AntarchyFabricContent.CREEPING_HORROR.get(), CreepingHorrorRenderer::new);
EntityRendererRegistry.register(AntarchyFabricContent.LURKING_TERROR.get(), LurkingTerrorRenderer::new);
EntityRendererRegistry.register(AntarchyFabricContent.CHEEP.get(), com.craisinlord.antarchy.content.client.renderer.CheepRenderer::new);
EntityRendererRegistry.register(AntarchyFabricContent.DORRIE.get(), com.craisinlord.antarchy.content.client.renderer.DorrieRenderer::new);
EntityModelLayerRegistry.registerModelLayer(OuranwoodBoatRenderer.boatLayer(), BoatModel::createBodyModel);
EntityModelLayerRegistry.registerModelLayer(OuranwoodBoatRenderer.chestBoatLayer(), ChestBoatModel::createBodyModel);
@@ -325,6 +331,7 @@ public final class AntarchyFabricClientBootstrap {
DreadClientHandler.tick();
BloodCrystalKatanaTrailHandler.tick();
ScorpionWhipTetherRenderHandler.tick();
DorrieJumpClientHandler.tick();
});
GravityGunClientHandler.register();
@@ -342,6 +349,7 @@ public final class AntarchyFabricClientBootstrap {
JumpyBootsHudRenderer.render(guiGraphics);
BloodglassHudRenderer.render(guiGraphics);
TriffidGooHudRenderer.render(guiGraphics);
DorrieJumpHudRenderer.render(guiGraphics);
});
WorldRenderEvents.AFTER_TRANSLUCENT.register(context -> {
@@ -17,13 +17,25 @@ public final class AntarchyKeyBindings {
CATEGORY
);
public static final KeyMapping DORRIE_CHARGE_JUMP = new KeyMapping(
"key.antarchy.dorrie_charge_jump",
InputConstants.Type.KEYSYM,
GLFW.GLFW_KEY_LEFT_CONTROL,
CATEGORY
);
private AntarchyKeyBindings() {}
public static void register() {
KeyBindingHelper.registerKeyBinding(BRUTALFLY_FLAP);
KeyBindingHelper.registerKeyBinding(DORRIE_CHARGE_JUMP);
}
public static boolean isBrutalflyFlapPressed() {
return Minecraft.getInstance().screen == null && BRUTALFLY_FLAP.isDown();
}
public static boolean isDorrieChargeJumpPressed() {
return Minecraft.getInstance().screen == null && DORRIE_CHARGE_JUMP.isDown();
}
}
@@ -0,0 +1,55 @@
package com.craisinlord.antarchy.fabric.client;
import com.craisinlord.antarchy.content.entity.DorrieEntity;
import com.craisinlord.antarchy.content.network.DorrieChargeJumpPayload;
import com.craisinlord.antarchy.content.network.DorrieJumpInputPayload;
import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking;
import net.minecraft.client.Minecraft;
import net.minecraft.client.player.LocalPlayer;
public final class DorrieJumpClientHandler {
private static boolean wasPressingJump = false;
private static boolean wasPressingCharge = false;
private DorrieJumpClientHandler() {}
public static void tick() {
Minecraft mc = Minecraft.getInstance();
LocalPlayer player = mc.player;
if (player == null || mc.screen != null) {
resetAll();
return;
}
if (!(player.getVehicle() instanceof DorrieEntity)) {
resetAll();
return;
}
// Space bar → upward movement.
boolean pressingJump = mc.options.keyJump.isDown();
if (pressingJump != wasPressingJump) {
ClientPlayNetworking.send(new DorrieJumpInputPayload(pressingJump));
wasPressingJump = pressingJump;
}
// Left ctrl → charge jump.
boolean pressingCharge = AntarchyKeyBindings.isDorrieChargeJumpPressed();
if (pressingCharge != wasPressingCharge) {
ClientPlayNetworking.send(new DorrieChargeJumpPayload(pressingCharge));
wasPressingCharge = pressingCharge;
}
}
private static void resetAll() {
if (wasPressingJump) {
ClientPlayNetworking.send(new DorrieJumpInputPayload(false));
wasPressingJump = false;
}
if (wasPressingCharge) {
ClientPlayNetworking.send(new DorrieChargeJumpPayload(false));
wasPressingCharge = false;
}
}
}
@@ -0,0 +1,45 @@
package com.craisinlord.antarchy.fabric.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.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;
if (!(player.getVehicle() 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);
}
}
}
@@ -36,7 +36,7 @@ public abstract class ToreterrorCameraShakeMixin {
)) {
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.0F);
shakeStrength += (float) ((1.0D - distance / MAX_SHAKE_RANGE) * 1.0F);
}
if (BigBerthaItem.clientShakeTicks > 0) {
@@ -12,6 +12,8 @@ import com.craisinlord.antarchy.fabric.util.JumpyBootsFabricHelper;
import com.craisinlord.antarchy.content.item.JumpyBootsItem;
import com.craisinlord.antarchy.content.item.GravityGunItem;
import com.craisinlord.antarchy.content.network.*;
import com.craisinlord.antarchy.content.entity.DorrieEntity;
import com.craisinlord.antarchy.content.network.DorrieJumpInputPayload;
import com.craisinlord.antarchy.content.network.JumpyBootsLaunchPayload;
import com.craisinlord.antarchy.content.weather.ThoraxisWeatherSnapshot;
import net.fabricmc.fabric.api.networking.v1.PayloadTypeRegistry;
@@ -51,6 +53,8 @@ public final class AntarchyFabricNetworking {
PayloadTypeRegistry.playC2S().register(DiamondMinecartInputPayload.TYPE, DiamondMinecartInputPayload.STREAM_CODEC);
PayloadTypeRegistry.playC2S().register(BrutalflyElytraFlapPayload.TYPE, BrutalflyElytraFlapPayload.STREAM_CODEC);
PayloadTypeRegistry.playC2S().register(JumpyBootsLaunchPayload.TYPE, JumpyBootsLaunchPayload.STREAM_CODEC);
PayloadTypeRegistry.playC2S().register(DorrieJumpInputPayload.TYPE, DorrieJumpInputPayload.STREAM_CODEC);
PayloadTypeRegistry.playC2S().register(com.craisinlord.antarchy.content.network.DorrieChargeJumpPayload.TYPE, com.craisinlord.antarchy.content.network.DorrieChargeJumpPayload.STREAM_CODEC);
PayloadTypeRegistry.playC2S().register(MultipartAttackPayload.TYPE, MultipartAttackPayload.STREAM_CODEC);
PayloadTypeRegistry.playC2S().register(MultipartInteractPayload.TYPE, MultipartInteractPayload.STREAM_CODEC);
}
@@ -66,6 +70,10 @@ public final class AntarchyFabricNetworking {
context.server().execute(() -> handleBrutalflyFlap(context.player(), payload)));
ServerPlayNetworking.registerGlobalReceiver(JumpyBootsLaunchPayload.TYPE, (payload, context) ->
context.server().execute(() -> handleJumpyBootsLaunch(context.player(), payload)));
ServerPlayNetworking.registerGlobalReceiver(DorrieJumpInputPayload.TYPE, (payload, context) ->
context.server().execute(() -> handleDorrieJumpInput(context.player(), payload)));
ServerPlayNetworking.registerGlobalReceiver(com.craisinlord.antarchy.content.network.DorrieChargeJumpPayload.TYPE, (payload, context) ->
context.server().execute(() -> handleDorrieChargeJumpInput(context.player(), payload)));
ServerPlayNetworking.registerGlobalReceiver(MultipartAttackPayload.TYPE, (payload, context) ->
context.server().execute(() -> handleMultipartAttack(context.player(), payload)));
ServerPlayNetworking.registerGlobalReceiver(MultipartInteractPayload.TYPE, (payload, context) ->
@@ -306,4 +314,18 @@ public final class AntarchyFabricNetworking {
player.getCooldowns().addCooldown(boots.getItem(), JumpyBootsHelper.COOLDOWN_TICKS);
}
private static void handleDorrieJumpInput(ServerPlayer player, DorrieJumpInputPayload payload) {
if (!(player.getVehicle() instanceof DorrieEntity dorrie)) return;
dorrie.setPressingJump(payload.pressing());
}
private static void handleDorrieChargeJumpInput(ServerPlayer player, com.craisinlord.antarchy.content.network.DorrieChargeJumpPayload payload) {
if (!(player.getVehicle() instanceof DorrieEntity dorrie)) return;
if (payload.pressing()) {
dorrie.startJumpCharge();
} else {
dorrie.releaseJump();
}
}
}