start metroids

This commit is contained in:
craisinlord committed 2026-07-20 01:08:17 -05:00
1 parent e4b7b76cff
commit c116054a87
110 files changed
+19614 -75

No files matched your search

@@ -5,6 +5,7 @@ import com.craisinlord.antarchy.content.network.ImpactShakeSync;
import com.craisinlord.antarchy.config.ConfigResetGuard;
import com.craisinlord.antarchy.content.network.HerculesBeetleImpactShakePayload;
import com.craisinlord.antarchy.content.network.HerculesBeetleImpactShakeSync;
import com.craisinlord.antarchy.content.network.HordeIntensitySync;
import java.nio.file.Path;
import net.neoforged.fml.loading.FMLPaths;
import net.neoforged.neoforge.network.PacketDistributor;
@@ -28,6 +29,7 @@ public final class AntarchyConfigModuleNeoforge {
modContainer.registerConfig(ModConfig.Type.COMMON, AntarchyMiscConfig.SPEC, "antarchy/antarchy_misc.toml");
HerculesBeetleImpactShakeSync.setSink((player, ticks) -> PacketDistributor.sendToPlayer(player, new HerculesBeetleImpactShakePayload(ticks)));
ImpactShakeSync.setSink(PacketDistributor::sendToPlayer);
HordeIntensitySync.setSink(PacketDistributor::sendToPlayer);
AntarchyNeoforge.modEventBusTempHolder.addListener(AntarchyConfigModuleNeoforge::onConfigChange);
}
@@ -1,6 +1,7 @@
package com.craisinlord.antarchy.neoforge;
import com.craisinlord.antarchy.Antarchy;
import com.craisinlord.antarchy.content.command.CavarynCommand;
import com.craisinlord.antarchy.content.command.CaterpillarCommand;
import com.craisinlord.antarchy.content.command.GravityCommand;
import net.neoforged.bus.api.SubscribeEvent;
@@ -14,6 +15,7 @@ public final class AntarchyNeoforgeEvents {
@SubscribeEvent
public static void onRegisterCommands(RegisterCommandsEvent event) {
CavarynCommand.register(event.getDispatcher());
GravityCommand.register(event.getDispatcher());
CaterpillarCommand.register(event.getDispatcher());
}
@@ -1,6 +1,8 @@
package com.craisinlord.antarchy.neoforge.client;
import com.craisinlord.antarchy.Antarchy;
import com.craisinlord.antarchy.content.client.GoopedHudRenderer;
import com.craisinlord.antarchy.content.client.HordeHudRenderer;
import com.craisinlord.antarchy.content.client.hud.BloodglassHudRenderer;
import com.craisinlord.antarchy.content.client.particle.*;
import com.craisinlord.antarchy.content.client.renderer.*;
@@ -158,6 +160,7 @@ public final class AntarchyNeoForgeClient {
(LivingEntityRenderer<AbstractClientPlayer, PlayerModel<AbstractClientPlayer>>) event.getSkin(skin);
if (renderer != null) {
renderer.addLayer(new ParalyzedStonePlayerLayer(renderer));
renderer.addLayer(new GoopedLivingLayer(renderer));
renderer.addLayer(new BrutalflyElytraLayer(renderer));
renderer.addLayer(new FallenKingCrownLayer(renderer));
}
@@ -167,7 +170,7 @@ public final class AntarchyNeoForgeClient {
if (armorStandRenderer != null) {
armorStandRenderer.addLayer(new FallenKingCrownArmorStandLayer(armorStandRenderer));
}
BuiltInRegistries.ENTITY_TYPE.forEach(entityType -> addParalyzedLayerToEntity(event, entityType));
BuiltInRegistries.ENTITY_TYPE.forEach(entityType -> addStatusLayersToEntity(event, entityType));
}
@SubscribeEvent
@@ -179,7 +182,7 @@ public final class AntarchyNeoForgeClient {
}
@SuppressWarnings({"rawtypes", "unchecked"})
private static <E extends Entity> void addParalyzedLayerToEntity(EntityRenderersEvent.AddLayers event, EntityType<E> entityType) {
private static <E extends Entity> void addStatusLayersToEntity(EntityRenderersEvent.AddLayers event, EntityType<E> entityType) {
if (entityType == EntityType.PLAYER) {
return;
}
@@ -194,10 +197,12 @@ public final class AntarchyNeoForgeClient {
return;
}
((LivingEntityRenderer) livingRenderer).addLayer(new ParalyzedStoneLivingLayer<>(livingRenderer));
((LivingEntityRenderer) livingRenderer).addLayer(new GoopedLivingLayer<>(livingRenderer));
}
private static <T extends LivingEntity & GeoAnimatable> GeoEntityRenderer<T> withParalyzedGeoLayer(GeoEntityRenderer<T> renderer) {
renderer.addRenderLayer(new ParalyzedStoneGeoLayer<>(renderer));
renderer.addRenderLayer(new GoopedGeoLayer<>(renderer));
return renderer;
}
@@ -290,10 +295,18 @@ public final class AntarchyNeoForgeClient {
ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "dread_darkness"),
(guiGraphics, partialTick) -> DreadHudRenderer.render(guiGraphics)
);
event.registerAboveAll(
ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "horde_intensity"),
(guiGraphics, partialTick) -> HordeHudRenderer.render(guiGraphics)
);
event.registerAboveAll(
ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "paralyzed_stone"),
(guiGraphics, partialTick) -> ParalyzedHudRenderer.render(guiGraphics)
);
event.registerAboveAll(
ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "gooped_tint"),
(guiGraphics, partialTick) -> GoopedHudRenderer.render(guiGraphics)
);
event.registerAboveAll(
ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "brutalfly_elytra"),
(guiGraphics, partialTick) -> BrutalflyElytraHudRenderer.render(guiGraphics)
@@ -576,6 +589,9 @@ public final class AntarchyNeoForgeClient {
ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.TITANIUM_BARS.get(), RenderType.cutout());
ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.CLOUD_BLOCK.get(), RenderType.translucent());
ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.JUMPY_BUG_EGG.get(), RenderType.translucent());
ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.SPIT_BUG_EGG.get(), RenderType.translucent());
ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.METROID_EGG.get(), RenderType.translucent());
ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.BIOWART_TENDRILS.get(), RenderType.cutout());
ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.HANGING_CREEPROOTS.get(), RenderType.cutout());
ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.MOLTING_VINES.get(), RenderType.cutout());
ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.POTTED_GLOWCAP_MUSHROOM.get(), RenderType.cutout());
@@ -3,6 +3,7 @@ package com.craisinlord.antarchy.neoforge.client;
import com.craisinlord.antarchy.Antarchy;
import com.craisinlord.antarchy.content.client.CameraShakeClientState;
import com.craisinlord.antarchy.content.client.HerculesBeetleImpactShakeClientState;
import com.craisinlord.antarchy.content.client.HordeClientState;
import com.craisinlord.antarchy.content.entity.HerculesBeetleEntity;
import com.craisinlord.antarchy.content.network.HerculesBeetleJumpInputPayload;
import com.craisinlord.antarchy.content.network.HerculesBeetleMountedAttackPayload;
@@ -31,6 +32,7 @@ public final class HerculesBeetleClientHandler {
public static void onClientTick(ClientTickEvent.Post event) {
CameraShakeClientState.tick();
HerculesBeetleImpactShakeClientState.tick();
HordeClientState.tick();
Minecraft mc = Minecraft.getInstance();
LocalPlayer player = mc.player;
@@ -15,6 +15,7 @@ import com.craisinlord.antarchy.content.entity.lucid.LucidEntity;
import com.craisinlord.antarchy.content.entity.lucid.LucidEyeProjectileEntity;
import com.craisinlord.antarchy.content.entity.multipart.MultipartFramework;
import com.craisinlord.antarchy.content.entity.trades.DrTrayaurusTradeManager;
import com.craisinlord.antarchy.content.horde.CavarynHordeManager;
import com.craisinlord.antarchy.content.item.*;
import com.craisinlord.antarchy.content.item.ultimate.UltimateGearHelper;
import com.craisinlord.antarchy.content.movement.DreamSandLowGravityAccess;
@@ -116,6 +117,9 @@ public final class AntarchyNeoForgeEvents {
NeoForge.EVENT_BUS.addListener(AntarchyNeoForgeEvents::handleBloodglassPlayerDeath);
NeoForge.EVENT_BUS.addListener(AntarchyNeoForgeEvents::handleBloodglassRespawn);
NeoForge.EVENT_BUS.addListener(AntarchyNeoForgeEvents::handleBloodglassLogin);
NeoForge.EVENT_BUS.addListener(AntarchyNeoForgeEvents::handleCavarynHordeKill);
NeoForge.EVENT_BUS.addListener(AntarchyNeoForgeEvents::handleCavarynHordeBlockBreak);
NeoForge.EVENT_BUS.addListener(AntarchyNeoForgeEvents::tickCavarynHordes);
modEventBus.addListener(AntarchyNeoForgeEvents::modifyEntityAttributes);
NeoForge.EVENT_BUS.addListener(AntarchyNeoForgeEvents::tickOverheadInversion);
NeoForge.EVENT_BUS.addListener(AntarchyNeoForgeEvents::tickDuctTapeStickiness);
@@ -176,6 +180,24 @@ public final class AntarchyNeoForgeEvents {
}
}
static void handleCavarynHordeKill(LivingDeathEvent event) {
if (event.getEntity().getKillCredit() instanceof ServerPlayer player) {
CavarynHordeManager.recordMobKill(player, event.getEntity());
}
}
static void handleCavarynHordeBlockBreak(BlockEvent.BreakEvent event) {
if (event.getPlayer() instanceof ServerPlayer player) {
CavarynHordeManager.recordBlockBreak(player, event.getState(), event.getPos());
}
}
static void tickCavarynHordes(ServerTickEvent.Post event) {
for (ServerLevel level : event.getServer().getAllLevels()) {
CavarynHordeManager.tick(level);
}
}
private static int badOmenLevel(Player player) {
MobEffectInstance effect = player.getEffect(MobEffects.BAD_OMEN);
return effect != null ? effect.getAmplifier() + 1 : 0;
@@ -248,6 +248,14 @@ public final class AntarchyNeoforgeBlocks {
));
public static final DeferredBlock<Block> MYRMITE = BLOCKS.register("myrmite",
() -> new Block(nyxiteProperties()));
public static final DeferredBlock<Block> BIOMITE = BLOCKS.register("biomite",
() -> new Block(BlockBehaviour.Properties.ofFullCopy(Blocks.NETHERRACK)));
public static final DeferredBlock<Block> BIOMITE_TURF = BLOCKS.register("biomite_turf",
() -> new Block(BlockBehaviour.Properties.ofFullCopy(Blocks.NETHERRACK)));
public static final DeferredBlock<BiowartBlock> BIOWART = BLOCKS.register("biowart",
() -> new BiowartBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.MOSS_BLOCK)));
public static final DeferredBlock<BiowartTendrilsBlock> BIOWART_TENDRILS = BLOCKS.register("biowart_tendrils",
() -> new BiowartTendrilsBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.MOSS_CARPET).noCollission().noOcclusion()));
public static final DeferredBlock<Block> MYRMITE_COAL_ORE = BLOCKS.register("myrmite_coal_ore",
() -> createOre(Blocks.COAL_ORE, 0, 2));
public static final DeferredBlock<Block> BROODSTONE = BLOCKS.register("broodstone",
@@ -324,8 +332,16 @@ public final class AntarchyNeoforgeBlocks {
() -> new CreepingHorrorEggBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.TURTLE_EGG)));
public static final DeferredBlock<JumpyBugEggBlock> JUMPY_BUG_EGG = BLOCKS.register("jumpy_bug_egg",
() -> new JumpyBugEggBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.TURTLE_EGG)));
public static final DeferredBlock<SpitBugEggBlock> SPIT_BUG_EGG = BLOCKS.register("spit_bug_egg",
() -> new SpitBugEggBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.TURTLE_EGG)));
public static final DeferredBlock<MetroidEggBlock> METROID_EGG = BLOCKS.register("metroid_egg",
() -> new MetroidEggBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.TURTLE_EGG)));
public static final DeferredBlock<LurkingTerrorEggBlock> LURKING_TERROR_EGG = BLOCKS.register("lurking_terror_egg",
() -> new LurkingTerrorEggBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.TURTLE_EGG)));
static {
BiowartBlock.bindTendrils(BIOWART_TENDRILS);
}
public static final DeferredBlock<WaspNestBlock> WASP_NEST = BLOCKS.register("wasp_nest",
() -> new WaspNestBlock(AntarchyNeoforgeItems::waspNestBlockEntityType, BlockBehaviour.Properties.ofFullCopy(Blocks.BEE_NEST)));
public static final DeferredBlock<com.craisinlord.antarchy.content.block.OuranwoodSquirrelNestBlock> OURANWOOD_SQUIRREL_NEST = BLOCKS.register("ouranwood_squirrel_nest",
@@ -123,6 +123,8 @@ public class AntarchyNeoforgeCreativeModeTabs {
event.accept(AntarchyNeoforgeItems.CREEPING_HORROR_EGG_ITEM.get());
event.accept(AntarchyNeoforgeItems.LURKING_TERROR_EGG_ITEM.get());
event.accept(AntarchyNeoforgeItems.JUMPY_BUG_EGG_ITEM.get());
event.accept(AntarchyNeoforgeItems.SPIT_BUG_EGG_ITEM.get());
event.accept(AntarchyNeoforgeItems.METROID_EGG_ITEM.get());
event.accept(AntarchyNeoforgeItems.WASP_NEST_ITEM.get());
event.accept(AntarchyNeoforgeItems.RED_ANT_NEST_ITEM.get());
event.accept(AntarchyNeoforgeItems.BROWN_ANT_NEST_ITEM.get());
@@ -317,6 +319,10 @@ public class AntarchyNeoforgeCreativeModeTabs {
event.accept(AntarchyNeoforgeItems.MEDIUM_BLOOD_CRYSTAL_BUD_ITEM.get());
event.accept(AntarchyNeoforgeItems.LARGE_BLOOD_CRYSTAL_BUD_ITEM.get());
event.accept(AntarchyNeoforgeItems.MYRMITE_ITEM.get());
event.accept(AntarchyNeoforgeItems.BIOMITE_ITEM.get());
event.accept(AntarchyNeoforgeItems.BIOMITE_TURF_ITEM.get());
event.accept(AntarchyNeoforgeItems.BIOWART_ITEM.get());
event.accept(AntarchyNeoforgeItems.BIOWART_TENDRILS_ITEM.get());
event.accept(AntarchyNeoforgeItems.BROODSTONE_ITEM.get());
event.accept(AntarchyNeoforgeItems.POLISHED_BROODSTONE_ITEM.get());
event.accept(AntarchyNeoforgeItems.CHISELED_BROODSTONE_ITEM.get());
@@ -275,6 +275,10 @@ public final class AntarchyNeoforgeItems {
public static final DeferredItem<net.minecraft.world.item.BlockItem> INFESTED_COARSE_DIRT_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.INFESTED_COARSE_DIRT);
public static final DeferredItem<net.minecraft.world.item.BlockItem> NYXITE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.NYXITE);
public static final DeferredItem<net.minecraft.world.item.BlockItem> MYRMITE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.MYRMITE);
public static final DeferredItem<net.minecraft.world.item.BlockItem> BIOMITE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.BIOMITE);
public static final DeferredItem<net.minecraft.world.item.BlockItem> BIOMITE_TURF_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.BIOMITE_TURF);
public static final DeferredItem<net.minecraft.world.item.BlockItem> BIOWART_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.BIOWART);
public static final DeferredItem<net.minecraft.world.item.BlockItem> BIOWART_TENDRILS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.BIOWART_TENDRILS);
public static final DeferredItem<net.minecraft.world.item.BlockItem> BROODSTONE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.BROODSTONE);
public static final DeferredItem<net.minecraft.world.item.BlockItem> POLISHED_BROODSTONE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.POLISHED_BROODSTONE);
public static final DeferredItem<net.minecraft.world.item.BlockItem> CHISELED_BROODSTONE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.CHISELED_BROODSTONE);
@@ -346,6 +350,8 @@ public final class AntarchyNeoforgeItems {
public static final DeferredItem<net.minecraft.world.item.BlockItem> BED_BUG_EGG_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.BED_BUG_EGG);
public static final DeferredItem<net.minecraft.world.item.BlockItem> CREEPING_HORROR_EGG_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.CREEPING_HORROR_EGG);
public static final DeferredItem<net.minecraft.world.item.BlockItem> JUMPY_BUG_EGG_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.JUMPY_BUG_EGG);
public static final DeferredItem<net.minecraft.world.item.BlockItem> SPIT_BUG_EGG_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.SPIT_BUG_EGG);
public static final DeferredItem<net.minecraft.world.item.BlockItem> METROID_EGG_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.METROID_EGG);
public static final DeferredItem<net.minecraft.world.item.BlockItem> LURKING_TERROR_EGG_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.LURKING_TERROR_EGG);
public static final DeferredItem<net.minecraft.world.item.BlockItem> WASP_NEST_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.WASP_NEST);
public static final DeferredItem<net.minecraft.world.item.BlockItem> HUSHWEED_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.HUSHWEED);
@@ -4,6 +4,7 @@ import com.craisinlord.antarchy.Antarchy;
import com.craisinlord.antarchy.content.client.particle.InvertedGeyserBaseParticleOptions;
import com.craisinlord.antarchy.content.client.particle.InvertedGeyserParticleOptions;
import com.craisinlord.antarchy.content.effect.DreadMobEffect;
import com.craisinlord.antarchy.content.effect.GoopedMobEffect;
import com.craisinlord.antarchy.content.effect.GrowthMobEffect;
import com.craisinlord.antarchy.content.effect.InvertedMobEffect;
import com.craisinlord.antarchy.content.effect.ParalyzedMobEffect;
@@ -127,6 +128,7 @@ public final class AntarchyNeoforgeMisc {
public static final DeferredHolder<MobEffect, ParalyzedMobEffect> PARALYZED = MOB_EFFECTS.register("paralyzed", ParalyzedMobEffect::new);
public static final DeferredHolder<MobEffect, InvertedMobEffect> INVERTED = MOB_EFFECTS.register("inverted", InvertedMobEffect::new);
public static final DeferredHolder<MobEffect, StinkyMobEffect> STINKY = MOB_EFFECTS.register("stinky", StinkyMobEffect::new);
public static final DeferredHolder<MobEffect, GoopedMobEffect> GOOPED = MOB_EFFECTS.register("gooped", GoopedMobEffect::new);
public static final DeferredHolder<MobEffect, com.craisinlord.antarchy.content.effect.BloodglassWardEffect> BLOODGLASS_WARD = MOB_EFFECTS.register("bloodglass_ward", com.craisinlord.antarchy.content.effect.BloodglassWardEffect::new);
public static final DeferredHolder<MobEffect, ShrinkMobEffect> SHRINKING_EFFECT = MOB_EFFECTS.register("shrinking", ShrinkMobEffect::new);
public static final DeferredHolder<MobEffect, GrowthMobEffect> GROWTH_EFFECT = MOB_EFFECTS.register("growth", GrowthMobEffect::new);
@@ -318,6 +320,8 @@ public final class AntarchyNeoforgeMisc {
() -> new com.craisinlord.antarchy.content.worldgen.cavaryn.GroundMoltingVinesFeature(NoneFeatureConfiguration.CODEC));
public static final DeferredHolder<Feature<?>, com.craisinlord.antarchy.content.worldgen.cavaryn.JumpyBugEggCeilingFeature> JUMPY_BUG_EGG_CEILING = FEATURES.register("jumpy_bug_egg_ceiling",
() -> new com.craisinlord.antarchy.content.worldgen.cavaryn.JumpyBugEggCeilingFeature(NoneFeatureConfiguration.CODEC));
public static final DeferredHolder<Feature<?>, com.craisinlord.antarchy.content.worldgen.cavaryn.SpitBugEggPatchFeature> SPIT_BUG_EGG_PATCH = FEATURES.register("spit_bug_egg_patch",
() -> new com.craisinlord.antarchy.content.worldgen.cavaryn.SpitBugEggPatchFeature(NoneFeatureConfiguration.CODEC));
public static final DeferredHolder<Feature<?>, com.craisinlord.antarchy.content.worldgen.cavaryn.RollyCavesGiantCavernFeature> ROLLY_CAVES_GIANT_CAVERN = FEATURES.register("rolly_caves_giant_cavern",
() -> new com.craisinlord.antarchy.content.worldgen.cavaryn.RollyCavesGiantCavernFeature(NoneFeatureConfiguration.CODEC));
public static final DeferredHolder<Feature<?>, CavarynWallAmberMossFeature> CAVARYN_WALL_AMBER_MOSS = FEATURES.register("cavaryn_wall_amber_moss",
@@ -45,6 +45,13 @@ public class AntarchyNeoforgePayloadHandlers {
com.craisinlord.antarchy.content.client.ScorpionWhipTetherClientState.update(payload.playerId(), payload.targetId())
)
);
registrar.playToClient(
com.craisinlord.antarchy.content.network.HordeIntensityPayload.TYPE,
com.craisinlord.antarchy.content.network.HordeIntensityPayload.STREAM_CODEC,
(payload, ctx) -> ctx.enqueueWork(() ->
com.craisinlord.antarchy.content.client.HordeClientState.update(payload.intensity())
)
);
MultipartNetworking.register(registrar);
// ThoraxisWeatherNetworking.register(registrar);
}