anthology split

This commit is contained in:
craisinlord committed 2026-10-12 19:55:08 -05:00
1 parent bba2a56671
commit f7e7bebac3
244 files changed
+452 -11595

No files matched your search

@@ -1,7 +1,6 @@
package com.craisinlord.antarchy.neoforge;
import com.craisinlord.antarchy.config.AntarchySettings;
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;
@@ -31,7 +30,6 @@ 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)));
KingJudgmentFlashSync.setSink((player, ticks) -> PacketDistributor.sendToPlayer(player, new KingJudgmentFlashPayload(ticks)));
ImpactShakeSync.setSink(PacketDistributor::sendToPlayer);
HordeIntensitySync.setSink(PacketDistributor::sendToPlayer);
AntarchyNeoforge.modEventBusTempHolder.addListener(AntarchyConfigModuleNeoforge::onConfigChange);
}
@@ -683,11 +681,7 @@ public final class AntarchyConfigModuleNeoforge {
AntarchySettings.setElythiaFireflyParticlesEnabled(AntarchyMiscConfig.elythiaFireflyParticlesEnabled());
AntarchySettings.setDreamSandEnabled(AntarchyMiscConfig.dreamSandEnabled());
AntarchySettings.setDreamSandJumpVelocityMultiplier(AntarchyMiscConfig.dreamSandJumpVelocityMultiplier());
AntarchySettings.setDreamSandGravityMultiplier(AntarchyMiscConfig.dreamSandGravityMultiplier());
AntarchySettings.setDreamSandFallingBlockGravityMultiplier(AntarchyMiscConfig.dreamSandFallingBlockGravityMultiplier());
AntarchySettings.setDreamSandEffectDurationSeconds(AntarchyMiscConfig.dreamSandEffectDurationSeconds());
AntarchySettings.setIchorWitherEnabled(AntarchyMiscConfig.ichorWitherEnabled());
@@ -9,10 +9,6 @@ public final class AntarchyMiscConfig {
private static final ModConfigSpec.BooleanValue ELYTHIA_FIREFLY_PARTICLES_ENABLED;
// Dream Sand
private static final ModConfigSpec.BooleanValue DREAM_SAND_ENABLED;
private static final ModConfigSpec.DoubleValue DREAM_SAND_JUMP_VELOCITY_MULTIPLIER;
private static final ModConfigSpec.DoubleValue DREAM_SAND_GRAVITY_MULTIPLIER;
private static final ModConfigSpec.DoubleValue DREAM_SAND_EFFECT_DURATION_SECONDS;
private static final ModConfigSpec.DoubleValue DREAM_SAND_FALLING_BLOCK_GRAVITY_MULTIPLIER;
// Ichor
@@ -85,11 +81,7 @@ public final class AntarchyMiscConfig {
// Dream Sand
b.push("dreamSand");
DREAM_SAND_ENABLED = b.comment("If true, jumping from dream sand applies temporary low gravity until solid ground is touched.").define("enabled", true);
DREAM_SAND_JUMP_VELOCITY_MULTIPLIER = b.comment("Multiplier applied to upward jump velocity when leaving dream sand.") .defineInRange("jumpVelocityMultiplier", 1.3D, 0.0D, 16.0D);
DREAM_SAND_GRAVITY_MULTIPLIER = b.comment("Multiplier applied to downward velocity while low gravity is active.") .defineInRange("gravityMultiplier", 0.45D, 0.0D, 1.0D);
DREAM_SAND_EFFECT_DURATION_SECONDS = b.comment("Seconds the low-gravity effect remains active after leaving dream sand.") .defineInRange("effectDurationSeconds", 7.0D, 0.0D, 60.0D);
DREAM_SAND_FALLING_BLOCK_GRAVITY_MULTIPLIER = b.comment("Multiplier applied to dream sand's own falling-block gravity (how slowly it falls as a block, distinct from the player low-gravity effect).").defineInRange("fallingBlockGravityMultiplier", 0.4D, 0.0D, 16.0D);
DREAM_SAND_FALLING_BLOCK_GRAVITY_MULTIPLIER = b.comment("Multiplier applied to dream sand's falling-block gravity, i.e. how slowly it falls as a block.").defineInRange("fallingBlockGravityMultiplier", 0.4D, 0.0D, 16.0D);
b.pop();
@@ -200,10 +192,6 @@ public final class AntarchyMiscConfig {
static boolean elythiaFireflyParticlesEnabled() { return ELYTHIA_FIREFLY_PARTICLES_ENABLED.get(); }
static boolean dreamSandEnabled() { return DREAM_SAND_ENABLED.get(); }
static double dreamSandJumpVelocityMultiplier() { return DREAM_SAND_JUMP_VELOCITY_MULTIPLIER.get(); }
static double dreamSandGravityMultiplier() { return DREAM_SAND_GRAVITY_MULTIPLIER.get(); }
static double dreamSandEffectDurationSeconds() { return DREAM_SAND_EFFECT_DURATION_SECONDS.get(); }
static double dreamSandFallingBlockGravityMultiplier() { return DREAM_SAND_FALLING_BLOCK_GRAVITY_MULTIPLIER.get(); }
static boolean ichorWitherEnabled() { return ICHOR_WITHER_ENABLED.get(); }
@@ -272,12 +272,6 @@ public class AntarchyNeoforge {
player,
TigerEyeCamouflageSync.payload(player)
));
com.craisinlord.antarchy.content.time.TimeDilationApi.setSyncDispatcher(
com.craisinlord.antarchy.neoforge.network.AntarchyTimeDilationNetworking::syncRate
);
com.craisinlord.antarchy.content.time.TimeDilationApi.setFieldSyncDispatcher(
com.craisinlord.antarchy.neoforge.network.AntarchyTimeDilationNetworking::syncFields
);
if (isSupportedInfinityLoaded()) {
InfinityCompat.bind(new NeoForgeInfinityCompat());
}
@@ -451,7 +445,6 @@ public class AntarchyNeoforge {
AntarchyObjects.setLucid(AntarchyNeoforgeEntites.LUCID);
AntarchyObjects.setVortex(AntarchyNeoforgeEntites.VORTEX);
AntarchyObjects.setWindVortex(() -> AntarchyNeoforgeEntites.WIND_VORTEX.get());
AntarchyObjects.setTimeDilationField(() -> AntarchyNeoforgeEntites.TIME_DILATION_FIELD.get());
AntarchyObjects.setRoyalBlackHole(() -> AntarchyNeoforgeEntites.ROYAL_BLACK_HOLE.get());
AntarchyObjects.setRoyalAssailantBlackHole(() -> AntarchyNeoforgeEntites.ROYAL_ASSAILANT_BLACK_HOLE.get());
AntarchyObjects.setVortexChargeProjectile(() -> AntarchyNeoforgeEntites.VORTEX_CHARGE_PROJECTILE.get());
@@ -6,7 +6,6 @@ import com.craisinlord.antarchy.content.command.CaterpillarCommand;
import com.craisinlord.antarchy.content.command.DimensionalTearCommand;
import com.craisinlord.antarchy.content.command.QueenLocateCommand;
import com.craisinlord.antarchy.content.command.RoyalCommand;
import com.craisinlord.antarchy.content.time.TimeDilationCommand;
import net.neoforged.bus.api.SubscribeEvent;
import net.neoforged.fml.common.EventBusSubscriber;
import net.neoforged.neoforge.event.RegisterCommandsEvent;
@@ -25,7 +24,6 @@ public final class AntarchyNeoforgeEvents {
CaterpillarCommand.register(event.getDispatcher());
DimensionalTearCommand.register(event.getDispatcher());
QueenLocateCommand.register(event.getDispatcher());
TimeDilationCommand.register(event.getDispatcher());
RoyalCommand.register(event.getDispatcher());
com.craisinlord.antarchy.content.command.PortalGunCommand.register(event.getDispatcher());
}
@@ -16,7 +16,6 @@ import com.craisinlord.antarchy.neoforge.registry.AntarchyNeoforgeItems;
import com.craisinlord.antarchy.neoforge.registry.AntarchyNeoforgeMisc;
import com.mojang.blaze3d.shaders.FogShape;
import com.mojang.blaze3d.systems.RenderSystem;
import com.mojang.blaze3d.vertex.DefaultVertexFormat;
import com.mojang.blaze3d.vertex.VertexConsumer;
import net.minecraft.client.model.BoatModel;
import net.minecraft.client.model.ArmorStandModel;
@@ -39,7 +38,6 @@ import net.minecraft.client.renderer.BiomeColors;
import net.minecraft.client.renderer.BlockEntityWithoutLevelRenderer;
import net.minecraft.client.renderer.ItemBlockRenderTypes;
import net.minecraft.client.renderer.RenderType;
import net.minecraft.client.renderer.ShaderInstance;
import net.minecraft.client.renderer.blockentity.CampfireRenderer;
import net.minecraft.client.renderer.entity.LivingEntityRenderer;
import net.minecraft.client.renderer.item.ItemProperties;
@@ -58,7 +56,6 @@ import net.neoforged.bus.api.SubscribeEvent;
import net.neoforged.fml.common.EventBusSubscriber;
import net.neoforged.fml.event.lifecycle.FMLClientSetupEvent;
import net.neoforged.neoforge.client.event.RegisterParticleProvidersEvent;
import net.neoforged.neoforge.client.event.RegisterShadersEvent;
import net.neoforged.neoforge.client.event.RegisterColorHandlersEvent;
import net.neoforged.neoforge.client.event.RegisterMenuScreensEvent;
import net.neoforged.neoforge.client.event.EntityRenderersEvent;
@@ -101,23 +98,10 @@ public final class AntarchyNeoForgeClient {
private AntarchyNeoForgeClient() {
}
@SubscribeEvent
public static void registerPortalViewShader(RegisterShadersEvent event) {
PortalGunPortalViewRenderer.clearPortalViewShader();
try {
event.registerShader(
new ShaderInstance(event.getResourceProvider(), ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "portal_view"), DefaultVertexFormat.POSITION_TEX),
PortalGunPortalViewRenderer::setPortalViewShader
);
} catch (java.io.IOException | RuntimeException exception) {
Antarchy.LOGGER.error("Failed to register portal view shader", exception);
}
}
@SubscribeEvent
public static void clientSetup(FMLClientSetupEvent event) {
Antarchy.physicalClient = true;
com.craisinlord.antarchy.content.movement.AntarchyGravityHooks.registerClient();
com.craisinlord.antarchy.content.AntarchyAnthologyHooks.registerClient();
event.enqueueWork(() -> {
AntarchyArchivePreviews.register();
AntarchyComputerGames.register();
@@ -187,7 +171,6 @@ public final class AntarchyNeoForgeClient {
event.registerEntityRenderer(AntarchyNeoforgeEntites.LUCID_PEARL_PROJECTILE.get(), ThrownItemRenderer::new);
event.registerEntityRenderer(AntarchyNeoforgeEntites.VORTEX_CHARGE_PROJECTILE.get(), ThrownItemRenderer::new);
event.registerEntityRenderer(AntarchyNeoforgeEntites.WIND_VORTEX.get(), WindVortexRenderer::new);
event.registerEntityRenderer(AntarchyNeoforgeEntites.TIME_DILATION_FIELD.get(), TimeDilationFieldRenderer::new);
event.registerEntityRenderer(AntarchyNeoforgeEntites.ROYAL_BLACK_HOLE.get(), com.craisinlord.antarchy.content.client.renderer.RoyalBlackHoleRenderer::new);
event.registerEntityRenderer(AntarchyNeoforgeEntites.ROYAL_ASSAILANT_BLACK_HOLE.get(), com.craisinlord.antarchy.content.client.renderer.RoyalAssailantBlackHoleRenderer::new);
event.registerEntityRenderer(AntarchyNeoforgeEntites.CRITTER_CAGE_PROJECTILE.get(), ThrownItemRenderer::new);
@@ -1,48 +0,0 @@
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.item.BigBerthaItem;
import net.minecraft.client.Minecraft;
import net.minecraft.util.Mth;
import net.neoforged.api.distmarker.Dist;
import net.neoforged.bus.api.SubscribeEvent;
import net.neoforged.fml.common.EventBusSubscriber;
import net.neoforged.neoforge.client.event.ViewportEvent;
@EventBusSubscriber(modid = Antarchy.MODID, value = Dist.CLIENT)
public final class CameraShakeHandler {
private static final int TORETERROR_SHAKE_TICKS = 25;
private CameraShakeHandler() {
}
@SubscribeEvent
public static void onComputeCameraAngles(ViewportEvent.ComputeCameraAngles event) {
Minecraft mc = Minecraft.getInstance();
if (mc.level == null || mc.player == null) {
CameraShakeClientState.clear();
return;
}
float shakeStrength = CameraShakeClientState.getStrength(event.getCamera().getPosition());
int beetleShakeTicks = HerculesBeetleImpactShakeClientState.getTicks();
if (beetleShakeTicks > 0) {
shakeStrength += (float) beetleShakeTicks / TORETERROR_SHAKE_TICKS * 2.0F;
}
int bigBerthaShakeTicks = BigBerthaItem.clientShakeTicks;
if (bigBerthaShakeTicks > 0) {
shakeStrength += (float) bigBerthaShakeTicks / TORETERROR_SHAKE_TICKS * 2.0F;
}
if (shakeStrength <= 0.0F) return;
float time = (float) (mc.player.tickCount + event.getPartialTick());
event.setYaw(event.getYaw() + Mth.sin(time * 1.5F) * shakeStrength * 2.5F);
event.setPitch(event.getPitch() + Mth.cos(time * 1.8F) * shakeStrength * 2.0F);
event.setRoll(event.getRoll() + Mth.sin(time * 2.2F) * shakeStrength * 1.5F);
}
}
@@ -1,19 +0,0 @@
package com.craisinlord.antarchy.neoforge.client;
import com.craisinlord.antarchy.neoforge.mixins.level.ClientLevelPartEntitiesAccessor;
import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
import net.minecraft.client.multiplayer.ClientLevel;
import net.minecraft.world.level.Level;
import net.neoforged.neoforge.entity.PartEntity;
public final class ClientPartEntityRegistry {
private ClientPartEntityRegistry() {
}
public static Int2ObjectMap<PartEntity<?>> get(Level level) {
if (level instanceof ClientLevel clientLevel) {
return ((ClientLevelPartEntitiesAccessor) clientLevel).antarchy$getPartEntities();
}
return null;
}
}
@@ -1,23 +0,0 @@
package com.craisinlord.antarchy.neoforge.client;
import com.craisinlord.antarchy.Antarchy;
import com.craisinlord.antarchy.content.client.ClientTimeDilationTicker;
import net.minecraft.client.Minecraft;
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;
@EventBusSubscriber(modid = Antarchy.MODID, value = Dist.CLIENT)
public final class ClientTimeDilationHandler {
private ClientTimeDilationHandler() {
}
@SubscribeEvent
public static void onClientTick(ClientTickEvent.Post event) {
Minecraft mc = Minecraft.getInstance();
if (mc.level != null) {
ClientTimeDilationTicker.tick(mc.level);
}
}
}
@@ -1,7 +1,6 @@
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.client.KingJudgmentFlashClientState;
@@ -30,7 +29,6 @@ public final class HerculesBeetleClientHandler {
@SubscribeEvent
public static void onClientTick(ClientTickEvent.Post event) {
CameraShakeClientState.tick();
HerculesBeetleImpactShakeClientState.tick();
KingJudgmentFlashClientState.tick();
HordeClientState.tick();
@@ -1,22 +0,0 @@
package com.craisinlord.antarchy.neoforge.client;
import com.craisinlord.antarchy.Antarchy;
import com.craisinlord.antarchy.content.client.renderer.PortalGunPortalViewRenderer;
import net.neoforged.api.distmarker.Dist;
import net.neoforged.bus.api.SubscribeEvent;
import net.neoforged.fml.common.EventBusSubscriber;
import net.neoforged.neoforge.client.event.RenderLevelStageEvent;
@EventBusSubscriber(modid = Antarchy.MODID, value = Dist.CLIENT)
public final class PortalGunPortalViewRenderHandler {
private PortalGunPortalViewRenderHandler() {
}
@SubscribeEvent
public static void onRenderLevelStage(RenderLevelStageEvent event) {
if (event.getStage() != RenderLevelStageEvent.Stage.AFTER_LEVEL) {
return;
}
PortalGunPortalViewRenderer.render(event.getCamera(), event.getModelViewMatrix(), event.getProjectionMatrix(), event.getPartialTick());
}
}
@@ -1,20 +0,0 @@
package com.craisinlord.antarchy.neoforge.client;
import com.craisinlord.antarchy.Antarchy;
import com.craisinlord.antarchy.content.client.PortalGunRollClientState;
import net.minecraft.client.Minecraft;
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;
@EventBusSubscriber(modid = Antarchy.MODID, value = Dist.CLIENT)
public final class PortalGunRollClientHandler {
private PortalGunRollClientHandler() {
}
@SubscribeEvent
public static void onClientTick(ClientTickEvent.Post event) {
PortalGunRollClientState.tick(Minecraft.getInstance());
}
}
@@ -1,207 +0,0 @@
package com.craisinlord.antarchy.neoforge.entity.multipart;
import com.craisinlord.antarchy.content.entity.multipart.MultipartEntityOwner;
import com.craisinlord.antarchy.content.entity.multipart.MultipartFramework;
import com.craisinlord.antarchy.content.entity.multipart.MultipartPartAccess;
import com.craisinlord.antarchy.content.entity.multipart.MultipartPartDefinition;
import com.craisinlord.anthology.gravity.GravityApi;
import com.craisinlord.anthology.gravity.GravityRotationUtil;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.world.InteractionHand;
import net.minecraft.world.InteractionResult;
import net.minecraft.world.damagesource.DamageSource;
import net.minecraft.world.entity.Entity;
import net.minecraft.world.entity.EntityDimensions;
import net.minecraft.world.entity.OwnableEntity;
import net.minecraft.world.entity.Pose;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.phys.Vec3;
import net.neoforged.neoforge.entity.PartEntity;
import org.jetbrains.annotations.Nullable;
public class MultipartPartEntity extends PartEntity<Entity> implements OwnableEntity, MultipartPartAccess {
private final MultipartEntityOwner owner;
private final int partIndex;
private final MultipartPartDefinition definition;
public MultipartPartEntity(Entity parent, MultipartEntityOwner owner, int partIndex, MultipartPartDefinition definition) {
super(parent);
this.owner = owner;
this.partIndex = partIndex;
this.definition = definition;
this.setNoGravity(true);
this.refreshDimensions();
this.antarchy$syncFromParent();
}
public int getPartIndex() {
return this.partIndex;
}
public String getPartName() {
return this.definition.name();
}
public float getDamageMultiplier() {
return this.definition.damageMultiplier();
}
public MultipartPartDefinition getPartDefinition() {
return this.definition;
}
@Override
public @Nullable java.util.UUID getOwnerUUID() {
Entity parent = this.getParent();
return parent instanceof OwnableEntity ownable ? ownable.getOwnerUUID() : null;
}
@Override
public EntityDimensions getDimensions(Pose pose) {
return EntityDimensions.scalable(this.definition.width(), this.definition.height());
}
@Override
public void antarchy$syncFromParent() {
Entity parent = this.getParent();
if (parent == null || parent.isRemoved()) {
return;
}
GravityApi.applySyncedState(
this,
GravityApi.getGravityDirection(parent),
GravityApi.getPrevGravityDirection(parent),
GravityApi.isGravityForced(parent),
GravityApi.getTransitionDuration(parent),
GravityApi.getTransitionRemaining(parent)
);
double oldX = this.getX();
double oldY = this.getY();
double oldZ = this.getZ();
double yawRadians = Math.toRadians(parent.getYRot());
Vec3 forward = new Vec3(-Math.sin(yawRadians), 0.0D, Math.cos(yawRadians));
Vec3 right = new Vec3(forward.z, 0.0D, -forward.x);
Vec3 localOffset = new Vec3(
forward.x * this.definition.forwardOffset() + right.x * this.definition.lateralOffset(),
this.definition.yOffset(),
forward.z * this.definition.forwardOffset() + right.z * this.definition.lateralOffset());
Vec3 offset = GravityRotationUtil.vecPlayerToWorld(localOffset, GravityApi.getGravityDirection(parent));
Vec3 position = parent.position().add(offset);
this.setPos(position.x, position.y, position.z);
this.setRot(parent.getYRot(), parent.getXRot());
this.xo = oldX;
this.yo = oldY;
this.zo = oldZ;
this.xOld = oldX;
this.yOld = oldY;
this.zOld = oldZ;
}
@Override
public boolean is(Entity entity) {
return entity == this || entity == this.getParent();
}
@Override
public boolean isPickable() {
return true;
}
@Override
public boolean isAttackable() {
return true;
}
@Override
public boolean isPushable() {
return false;
}
@Override
public boolean canBeCollidedWith() {
// Always true so player melee raycasts (ProjectileUtil.getEntityHitResult) can find this part.
// Physical push is prevented separately via isPushable()=false and canCollideWith()=false.
return !this.isRemoved();
}
@Override
public boolean canCollideWith(Entity entity) {
if (!this.definition.collisionEnabled()) {
return false;
}
Entity parent = this.getParent();
if (entity == parent) {
return false;
}
if (entity instanceof PartEntity<?> otherPart && otherPart.getParent() == parent) {
return false;
}
return entity.canBeCollidedWith() && !this.isPassengerOfSameVehicle(entity);
}
@Override
public boolean shouldBeSaved() {
return false;
}
@Override
public ItemStack getPickResult() {
Entity parent = this.getParent();
return parent == null ? ItemStack.EMPTY : parent.getPickResult();
}
@Override
public boolean hurt(DamageSource source, float amount) {
Entity parent = this.getParent();
if (parent == null || parent.isRemoved()) {
return false;
}
if (this.level().isClientSide()) {
if (source.getEntity() instanceof Player) {
MultipartFramework.sendMultipartAttack(parent.getUUID(), this.partIndex, amount * this.definition.damageMultiplier());
}
return true;
}
return this.owner.antarchy$hurtMultipartPart(this, source, amount * this.definition.damageMultiplier());
}
@Override
public boolean isInvulnerableTo(DamageSource source) {
return false;
}
@Override
public InteractionResult interactAt(Player player, Vec3 vec, InteractionHand hand) {
Entity parent = this.getParent();
if (parent == null || parent.isRemoved()) {
return InteractionResult.PASS;
}
if (this.level().isClientSide()) {
MultipartFramework.sendMultipartInteract(parent.getUUID(), this.partIndex, hand.ordinal());
return InteractionResult.SUCCESS;
}
return this.owner.antarchy$interactMultipartPart(this, player, vec, hand);
}
@Override
protected void defineSynchedData(net.minecraft.network.syncher.SynchedEntityData.Builder builder) {
}
@Override
protected void readAdditionalSaveData(CompoundTag tag) {
}
@Override
protected void addAdditionalSaveData(CompoundTag tag) {
}
}
@@ -1,62 +0,0 @@
package com.craisinlord.antarchy.neoforge.entity.multipart;
import com.craisinlord.antarchy.content.entity.multipart.MultipartEntityOwner;
import com.craisinlord.antarchy.neoforge.mixins.level.ServerLevelPartEntitiesAccessor;
import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
import net.minecraft.server.level.ServerLevel;
import net.minecraft.world.entity.Entity;
import net.minecraft.world.level.Level;
import net.neoforged.neoforge.entity.PartEntity;
public final class MultipartPartLevelRegistry {
private MultipartPartLevelRegistry() {
}
public static void register(MultipartEntityOwner owner) {
Entity[] parts = owner.antarchy$getMultipartParts();
if (parts == null) {
return;
}
Int2ObjectMap<PartEntity<?>> registry = getRegistry(((Entity) owner).level());
if (registry == null) {
return;
}
for (Entity part : parts) {
if (part instanceof PartEntity<?> partEntity) {
registry.put(partEntity.getId(), partEntity);
}
}
}
public static void unregister(MultipartEntityOwner owner) {
Entity[] parts = owner.antarchy$getMultipartParts();
if (parts == null) {
return;
}
Int2ObjectMap<PartEntity<?>> registry = getRegistry(((Entity) owner).level());
if (registry == null) {
return;
}
for (Entity part : parts) {
if (part instanceof PartEntity<?> partEntity) {
registry.remove(partEntity.getId());
}
}
}
private static Int2ObjectMap<PartEntity<?>> getRegistry(Level level) {
if (level instanceof ServerLevel serverLevel) {
return ((ServerLevelPartEntitiesAccessor) serverLevel).antarchy$getPartEntities();
}
if (level.isClientSide()) {
return com.craisinlord.antarchy.neoforge.client.ClientPartEntityRegistry.get(level);
}
return null;
}
}
@@ -1,56 +0,0 @@
package com.craisinlord.antarchy.neoforge.mixins.entity;
import com.craisinlord.antarchy.content.entity.multipart.MultipartEntityOwner;
import net.minecraft.world.entity.Entity;
import net.neoforged.neoforge.entity.PartEntity;
import org.jetbrains.annotations.Nullable;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Unique;
@Mixin(Entity.class)
/*
* Exposes multipart child lookup from base entities.
*/
public abstract class MultipartEntityBridgeMixin {
@Unique
private Entity[] antarchy$multipartSourceParts;
@Unique
private PartEntity<?>[] antarchy$multipartBridgeParts;
public boolean isMultipartEntity() {
return (Object) this instanceof MultipartEntityOwner;
}
@Nullable
public PartEntity<?>[] getParts() {
if (!((Object) this instanceof MultipartEntityOwner owner)) {
return null;
}
Entity[] parts = owner.antarchy$getMultipartParts();
if (parts == null) {
parts = owner.antarchy$createMultipartParts();
owner.antarchy$setMultipartParts(parts);
owner.antarchy$syncMultipartParts();
}
if (parts.length == 0) {
return new PartEntity<?>[0];
}
if (this.antarchy$multipartSourceParts != parts || this.antarchy$multipartBridgeParts == null || this.antarchy$multipartBridgeParts.length != parts.length) {
PartEntity<?>[] bridgedParts = new PartEntity<?>[parts.length];
for (int i = 0; i < parts.length; i++) {
if (!(parts[i] instanceof PartEntity<?> part)) {
throw new IllegalStateException("Multipart owner returned a non-PartEntity child: " + parts[i]);
}
bridgedParts[i] = part;
}
this.antarchy$multipartSourceParts = parts;
this.antarchy$multipartBridgeParts = bridgedParts;
}
return this.antarchy$multipartBridgeParts;
}
}
@@ -1,34 +0,0 @@
package com.craisinlord.antarchy.neoforge.mixins.entity;
import com.craisinlord.antarchy.content.entity.multipart.MultipartEntityOwner;
import com.craisinlord.antarchy.neoforge.entity.multipart.MultipartPartLevelRegistry;
import net.minecraft.world.entity.Entity;
import net.minecraft.world.level.entity.EntityInLevelCallback;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
@Mixin(Entity.class)
/*
* Keeps multipart child entities registered in NeoForge levels.
*/
public abstract class MultipartEntityLevelRegistryMixin {
@Inject(method = "setLevelCallback", at = @At("TAIL"))
private void antarchy$registerMultipartParts(EntityInLevelCallback entityInLevelCallback, CallbackInfo ci) {
if ((Object) this instanceof MultipartEntityOwner owner
&& entityInLevelCallback != EntityInLevelCallback.NULL) {
if (owner.antarchy$getMultipartParts() == null) {
owner.antarchy$spawnMultipartParts();
}
MultipartPartLevelRegistry.register(owner);
}
}
@Inject(method = "setRemoved", at = @At("HEAD"))
private void antarchy$unregisterMultipartParts(Entity.RemovalReason removalReason, CallbackInfo ci) {
if ((Object) this instanceof MultipartEntityOwner owner) {
MultipartPartLevelRegistry.unregister(owner);
}
}
}
@@ -1,16 +0,0 @@
package com.craisinlord.antarchy.neoforge.mixins.level;
import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
import net.minecraft.client.multiplayer.ClientLevel;
import net.neoforged.neoforge.entity.PartEntity;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.gen.Accessor;
@Mixin(ClientLevel.class)
/*
* Accessor for client part-entity storage.
*/
public interface ClientLevelPartEntitiesAccessor {
@Accessor("partEntities")
Int2ObjectMap<PartEntity<?>> antarchy$getPartEntities();
}
@@ -1,16 +0,0 @@
package com.craisinlord.antarchy.neoforge.mixins.level;
import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
import net.minecraft.server.level.ServerLevel;
import net.neoforged.neoforge.entity.PartEntity;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.gen.Accessor;
@Mixin(ServerLevel.class)
/*
* Accessor for server part-entity storage.
*/
public interface ServerLevelPartEntitiesAccessor {
@Accessor("dragonParts")
Int2ObjectMap<PartEntity<?>> antarchy$getPartEntities();
}
@@ -12,12 +12,9 @@ import com.craisinlord.antarchy.content.network.GravityGunPrimaryPayload;
import com.craisinlord.antarchy.content.network.GravityGunScrollPayload;
import com.craisinlord.antarchy.content.network.TemporalTunerScrollPayload;
import com.craisinlord.antarchy.content.item.TemporalTunerItem;
import com.craisinlord.antarchy.content.network.ImpactShakePayload;
import com.craisinlord.antarchy.content.network.PortalGunPrimaryPayload;
import com.craisinlord.antarchy.content.client.CameraShakeClientState;
import net.minecraft.server.level.ServerPlayer;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.phys.Vec3;
import net.neoforged.neoforge.network.PacketDistributor;
import net.neoforged.neoforge.network.handling.IPayloadContext;
import net.neoforged.neoforge.network.registration.PayloadRegistrar;
@@ -36,10 +33,6 @@ public final class AntarchyGravityNetworking {
com.craisinlord.antarchy.content.network.PortalGunIndicatorRequestPayload.TYPE,
com.craisinlord.antarchy.content.network.PortalGunIndicatorRequestPayload.STREAM_CODEC,
AntarchyGravityNetworking::handlePortalGunIndicatorRequest
).playToClient(
ImpactShakePayload.TYPE,
ImpactShakePayload.STREAM_CODEC,
AntarchyGravityNetworking::handleImpactShake
).playToServer(
GravityGunPrimaryPayload.TYPE,
GravityGunPrimaryPayload.STREAM_CODEC,
@@ -48,20 +41,6 @@ public final class AntarchyGravityNetworking {
PortalGunPrimaryPayload.TYPE,
PortalGunPrimaryPayload.STREAM_CODEC,
AntarchyGravityNetworking::handlePortalGunPrimary
).playToServer(
com.craisinlord.antarchy.content.network.PortalGunTransitPayload.TYPE,
com.craisinlord.antarchy.content.network.PortalGunTransitPayload.STREAM_CODEC,
(payload, context) -> {
if (context.player() instanceof ServerPlayer serverPlayer && serverPlayer.getServer() != null && serverPlayer.getServer().isSameThread()) {
com.craisinlord.antarchy.content.portalgun.PortalGunTransitHandler.handle(serverPlayer, payload);
return;
}
context.enqueueWork(() -> {
if (context.player() instanceof ServerPlayer serverPlayer) {
com.craisinlord.antarchy.content.portalgun.PortalGunTransitHandler.handle(serverPlayer, payload);
}
});
}
).playToServer(
com.craisinlord.antarchy.content.network.PortalGunMoonAimPayload.TYPE,
com.craisinlord.antarchy.content.network.PortalGunMoonAimPayload.STREAM_CODEC,
@@ -105,15 +84,6 @@ public final class AntarchyGravityNetworking {
);
}
private static void handleImpactShake(ImpactShakePayload payload, IPayloadContext context) {
context.enqueueWork(() -> CameraShakeClientState.triggerImpact(
new Vec3(payload.x(), payload.y(), payload.z()),
payload.intensity(),
payload.durationTicks(),
payload.radius()
));
}
private static void handleGravityGunScroll(GravityGunScrollPayload payload, IPayloadContext context) {
context.enqueueWork(() -> {
if (!(context.player() instanceof ServerPlayer serverPlayer)) {
@@ -1,52 +0,0 @@
package com.craisinlord.antarchy.neoforge.network;
import com.craisinlord.antarchy.content.network.TimeDilationRatePayload;
import com.craisinlord.antarchy.content.network.TimeDilationFieldsPayload;
import com.craisinlord.antarchy.content.time.TimeDilationFieldSnapshot;
import java.util.List;
import com.craisinlord.antarchy.content.time.TimeDilationApi;
import net.minecraft.world.entity.Entity;
import net.minecraft.server.level.ServerPlayer;
import net.neoforged.neoforge.network.PacketDistributor;
import net.neoforged.neoforge.network.handling.IPayloadContext;
import net.neoforged.neoforge.network.registration.PayloadRegistrar;
public final class AntarchyTimeDilationNetworking {
private AntarchyTimeDilationNetworking() {
}
public static void register(PayloadRegistrar registrar) {
registrar.playToClient(
TimeDilationRatePayload.TYPE,
TimeDilationRatePayload.STREAM_CODEC,
AntarchyTimeDilationNetworking::handleTimeDilationRate
);
registrar.playToClient(
TimeDilationFieldsPayload.TYPE,
TimeDilationFieldsPayload.STREAM_CODEC,
AntarchyTimeDilationNetworking::handleTimeDilationFields
);
}
public static void syncRate(Entity entity, double rate) {
PacketDistributor.sendToPlayersTrackingEntityAndSelf(entity, new TimeDilationRatePayload(entity.getUUID(), rate));
}
public static void syncRateToPlayer(ServerPlayer player, Entity entity, double rate) {
PacketDistributor.sendToPlayer(player, new TimeDilationRatePayload(entity.getUUID(), rate));
}
public static void syncFields(ServerPlayer player, List<TimeDilationFieldSnapshot> fields) {
PacketDistributor.sendToPlayer(player, new TimeDilationFieldsPayload(fields));
}
private static void handleTimeDilationRate(TimeDilationRatePayload payload, IPayloadContext context) {
context.enqueueWork(() -> {
TimeDilationApi.applySyncedRate(payload.entityUuid(), payload.rate());
});
}
private static void handleTimeDilationFields(TimeDilationFieldsPayload payload, IPayloadContext context) {
context.enqueueWork(() -> com.craisinlord.antarchy.content.client.ClientTimeDilationTicker.applyFields(payload.fields()));
}
}
@@ -1,95 +0,0 @@
package com.craisinlord.antarchy.neoforge.network;
import com.craisinlord.antarchy.content.entity.multipart.MultipartEntityOwner;
import com.craisinlord.antarchy.content.entity.multipart.network.MultipartAttackPayload;
import com.craisinlord.antarchy.content.entity.multipart.network.MultipartInteractPayload;
import net.minecraft.server.level.ServerPlayer;
import net.minecraft.world.InteractionHand;
import net.minecraft.world.damagesource.DamageSource;
import net.minecraft.world.entity.Entity;
import net.neoforged.neoforge.network.handling.IPayloadContext;
import net.neoforged.neoforge.network.registration.PayloadRegistrar;
public final class MultipartNetworking {
private MultipartNetworking() {
}
public static void register(PayloadRegistrar registrar) {
registrar.playToServer(
MultipartAttackPayload.TYPE,
MultipartAttackPayload.STREAM_CODEC,
MultipartNetworking::handleAttack
).playToServer(
MultipartInteractPayload.TYPE,
MultipartInteractPayload.STREAM_CODEC,
MultipartNetworking::handleInteract
);
}
private static void handleAttack(MultipartAttackPayload payload, IPayloadContext context) {
context.enqueueWork(() -> {
if (!(context.player() instanceof ServerPlayer serverPlayer)) {
return;
}
Entity entity = serverPlayer.serverLevel().getEntity(payload.parentId());
if (!(entity instanceof MultipartEntityOwner owner)) {
return;
}
Entity[] parts = owner.antarchy$getMultipartParts();
if (parts == null) {
parts = owner.antarchy$createMultipartParts();
owner.antarchy$setMultipartParts(parts);
owner.antarchy$syncMultipartParts();
}
if (payload.partIndex() < 0 || payload.partIndex() >= parts.length) {
return;
}
Entity part = parts[payload.partIndex()];
if (part == null || part.isRemoved()) {
return;
}
if (serverPlayer.distanceToSqr(part) > 10000.0D) {
return;
}
serverPlayer.attack(part);
});
}
private static void handleInteract(MultipartInteractPayload payload, IPayloadContext context) {
context.enqueueWork(() -> {
if (!(context.player() instanceof ServerPlayer serverPlayer)) {
return;
}
Entity entity = serverPlayer.serverLevel().getEntity(payload.parentId());
if (!(entity instanceof MultipartEntityOwner owner)) {
return;
}
Entity[] parts = owner.antarchy$getMultipartParts();
if (parts == null) {
parts = owner.antarchy$createMultipartParts();
owner.antarchy$setMultipartParts(parts);
owner.antarchy$syncMultipartParts();
}
if (payload.partIndex() < 0 || payload.partIndex() >= parts.length) {
return;
}
Entity part = parts[payload.partIndex()];
if (part == null || part.isRemoved()) {
return;
}
InteractionHand hand = payload.handId() == 0 ? InteractionHand.MAIN_HAND : InteractionHand.OFF_HAND;
owner.antarchy$interactMultipartPart(part, serverPlayer, part.position(), hand);
});
}
}
@@ -20,7 +20,6 @@ import com.craisinlord.antarchy.content.entity.kraken.KrakenEntity;
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.multipart.MultipartFramework;
import com.craisinlord.antarchy.content.entity.vortex.VortexChargeProjectileEntity;
import com.craisinlord.antarchy.content.entity.vortex.VortexEntity;
import com.craisinlord.antarchy.content.entity.trades.DrTrayaurusTradeManager;
@@ -32,11 +31,9 @@ import com.craisinlord.antarchy.content.item.ultimate.UltimateGearHelper;
import com.craisinlord.antarchy.content.AntarchyTags;
import com.craisinlord.antarchy.mixins.PoiTypesAccessor;
import com.craisinlord.antarchy.content.portal.PermanentPortalManager;
import com.craisinlord.antarchy.content.time.TimeDilationManager;
import com.craisinlord.antarchy.content.tigereye.TigerEyeCamouflageController;
import com.craisinlord.antarchy.content.tigereye.TigerEyeCamouflageSync;
import com.craisinlord.antarchy.neoforge.AntarchyNeoForgeFluidTypes;
import com.craisinlord.antarchy.neoforge.entity.multipart.MultipartPartEntity;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Holder;
import net.minecraft.core.registries.BuiltInRegistries;
@@ -139,13 +136,10 @@ public final class AntarchyNeoForgeEvents {
NeoForge.EVENT_BUS.addListener(AntarchyNeoForgeEvents::handleBloodglassWardRemoved);
NeoForge.EVENT_BUS.addListener(AntarchyNeoForgeEvents::handleBloodglassWardExpired);
NeoForge.EVENT_BUS.addListener(AntarchyNeoForgeEvents::tickBloodglassRecharge);
NeoForge.EVENT_BUS.addListener(AntarchyNeoForgeEvents::tickTimeDilation);
NeoForge.EVENT_BUS.addListener(AntarchyNeoForgeEvents::tickAntArrivals);
NeoForge.EVENT_BUS.addListener(AntarchyNeoForgeEvents::handleBloodglassPlayerDeath);
NeoForge.EVENT_BUS.addListener(AntarchyNeoForgeEvents::handleBloodglassRespawn);
NeoForge.EVENT_BUS.addListener(AntarchyNeoForgeEvents::handleBloodglassLogin);
NeoForge.EVENT_BUS.addListener(AntarchyNeoForgeEvents::handleTimeDilationLogin);
NeoForge.EVENT_BUS.addListener(AntarchyNeoForgeEvents::handleTimeDilationRespawn);
NeoForge.EVENT_BUS.addListener(AntarchyNeoForgeEvents::handleCavarynHordeKill);
NeoForge.EVENT_BUS.addListener(AntarchyNeoForgeEvents::handleCavarynHordeBlockBreak);
NeoForge.EVENT_BUS.addListener(AntarchyNeoForgeEvents::tickCavarynHordes);
@@ -258,10 +252,6 @@ public final class AntarchyNeoForgeEvents {
}
}
static void tickTimeDilation(ServerTickEvent.Post event) {
TimeDilationManager.tickServer(event.getServer());
}
static void tickAntArrivals(ServerTickEvent.Post event) {
com.craisinlord.antarchy.content.entity.ant.AntArrivalScheduler.tick(event.getServer());
}
@@ -326,29 +316,11 @@ public final class AntarchyNeoForgeEvents {
return;
}
if (event.getTarget() instanceof com.craisinlord.antarchy.content.time.TimeDilationEntityAccess access
&& event.getEntity() instanceof ServerPlayer trackingPlayer) {
com.craisinlord.antarchy.neoforge.network.AntarchyTimeDilationNetworking.syncRateToPlayer(
trackingPlayer, event.getTarget(), access.antarchy$getTimeDilationRate()
);
}
if (event.getTarget() instanceof ServerPlayer trackedPlayer && event.getEntity() instanceof ServerPlayer trackingPlayer) {
TigerEyeCamouflageSync.syncTo(trackingPlayer, trackedPlayer);
}
}
static void handleTimeDilationLogin(PlayerEvent.PlayerLoggedInEvent event) {
if (event.getEntity() instanceof ServerPlayer player) {
TimeDilationManager.resyncPersistentEffects(player);
}
}
static void handleTimeDilationRespawn(PlayerEvent.PlayerRespawnEvent event) {
if (event.getEntity() instanceof ServerPlayer player) {
TimeDilationManager.resyncPersistentEffects(player);
}
}
static void handleTigerEyeLogout(PlayerEvent.PlayerLoggedOutEvent event) {
if (event.getEntity() instanceof ServerPlayer player) {
TigerEyeCamouflageController.deactivate(player, false);
@@ -364,7 +336,6 @@ public final class AntarchyNeoForgeEvents {
static void handleTigerEyeRespawn(PlayerEvent.PlayerRespawnEvent event) {
if (event.getEntity() instanceof ServerPlayer player) {
com.craisinlord.antarchy.content.time.ChronosphereManager.refresh(player);
TigerEyeCamouflageController.deactivate(player, false);
TigerEyeCamouflageSync.sync(player);
}
@@ -372,14 +343,12 @@ public final class AntarchyNeoForgeEvents {
static void handleTigerEyeLogin(PlayerEvent.PlayerLoggedInEvent event) {
if (event.getEntity() instanceof ServerPlayer player) {
com.craisinlord.antarchy.content.time.ChronosphereManager.refresh(player);
TigerEyeCamouflageSync.sync(player);
}
}
static void handleTigerEyeDimensionChange(PlayerEvent.PlayerChangedDimensionEvent event) {
if (event.getEntity() instanceof ServerPlayer player) {
com.craisinlord.antarchy.content.time.ChronosphereManager.refresh(player);
TigerEyeCamouflageController.deactivate(player, false);
TigerEyeCamouflageSync.sync(player);
}
@@ -1403,24 +1372,6 @@ public final class AntarchyNeoForgeEvents {
VortexChargeProjectileEntity.defaultItemSupplier = () -> AntarchyNeoforgeItems.VORTEX_CHARGE.get();
VortexChargeProjectileEntity.projectileTypeSupplier = () -> AntarchyNeoforgeEntites.VORTEX_CHARGE_PROJECTILE.get();
VortexChargeProjectileEntity.windVortexTypeSupplier = () -> AntarchyNeoforgeEntites.WIND_VORTEX.get();
MultipartFramework.bootstrap(
(owner, partIndex, spec) -> new MultipartPartEntity((Entity) owner, owner, partIndex, spec),
new MultipartFramework.NetworkBridge() {
@Override
public void sendAttack(java.util.UUID parentId, int partIndex, float damage) {
net.neoforged.neoforge.network.PacketDistributor.sendToServer(
new com.craisinlord.antarchy.content.entity.multipart.network.MultipartAttackPayload(parentId, partIndex, damage)
);
}
@Override
public void sendInteract(java.util.UUID parentId, int partIndex, int handId) {
net.neoforged.neoforge.network.PacketDistributor.sendToServer(
new com.craisinlord.antarchy.content.entity.multipart.network.MultipartInteractPayload(parentId, partIndex, handId)
);
}
}
);
ComposterBlock.COMPOSTABLES.put(AntarchyNeoforgeBlocks.UMBRAL_MOSS_BLOCK.get().asItem(), 0.65f);
ComposterBlock.COMPOSTABLES.put(AntarchyNeoforgeBlocks.UMBRAL_MOSS_CARPET.get().asItem(), 0.3f);
ComposterBlock.COMPOSTABLES.put(AntarchyNeoforgeBlocks.BLUSH_MOSS_BLOCK.get().asItem(), 0.65f);
@@ -68,7 +68,6 @@ import com.craisinlord.antarchy.content.entity.lucid.LucidEyeProjectileEntity;
import com.craisinlord.antarchy.content.entity.vortex.VortexChargeProjectileEntity;
import com.craisinlord.antarchy.content.entity.vortex.VortexEntity;
import com.craisinlord.antarchy.content.entity.vortex.WindVortexEntity;
import com.craisinlord.antarchy.content.time.TimeDilationFieldEntity;
import com.craisinlord.antarchy.content.entity.nightmare.NightmareEntity;
import com.craisinlord.antarchy.content.entity.nightmare.NightmarePortalEntity;
import com.craisinlord.antarchy.content.entity.nightmare.NightmareBiteEntity;
@@ -394,13 +393,6 @@ public final class AntarchyNeoforgeEntites {
.updateInterval(2)
.fireImmune()
.build("royal_assailant_black_hole"));
public static final DeferredHolder<EntityType<?>, EntityType<TimeDilationFieldEntity>> TIME_DILATION_FIELD = ENTITY_TYPES.register("time_dilation_field",
() -> EntityType.Builder.<TimeDilationFieldEntity>of(TimeDilationFieldEntity::new, MobCategory.MISC)
.sized(0.5F, 0.5F)
.clientTrackingRange(16)
.updateInterval(20)
.fireImmune()
.build("time_dilation_field"));
public static final DeferredHolder<EntityType<?>, EntityType<LucidBoltEntity>> LUCID_BOLT = ENTITY_TYPES.register("lucid_bolt",
() -> EntityType.Builder.<LucidBoltEntity>of(LucidBoltEntity::new, MobCategory.MISC)
.sized(0.3F, 0.3F)
@@ -10,8 +10,6 @@ import com.craisinlord.antarchy.content.effect.BloodMoonMobEffect;
import com.craisinlord.antarchy.content.effect.GoopedMobEffect;
import com.craisinlord.antarchy.content.effect.GrowthMobEffect;
import com.craisinlord.antarchy.content.effect.CommandedMobEffect;
import com.craisinlord.antarchy.content.effect.DilatedMobEffect;
import com.craisinlord.antarchy.content.effect.ContractedMobEffect;
import com.craisinlord.antarchy.content.effect.ParalyzedMobEffect;
import com.craisinlord.antarchy.content.effect.ShrinkMobEffect;
import com.craisinlord.antarchy.content.effect.StinkyMobEffect;
@@ -179,8 +177,6 @@ public final class AntarchyNeoforgeMisc {
public static final DeferredHolder<MobEffect, BloodMoonMobEffect> BLOOD_MOON = MOB_EFFECTS.register("blood_moon", BloodMoonMobEffect::new);
public static final DeferredHolder<MobEffect, ParalyzedMobEffect> PARALYZED = MOB_EFFECTS.register("paralyzed", ParalyzedMobEffect::new);
public static final DeferredHolder<MobEffect, CommandedMobEffect> COMMANDED = MOB_EFFECTS.register("commanded", CommandedMobEffect::new);
public static final DeferredHolder<MobEffect, DilatedMobEffect> DILATED = MOB_EFFECTS.register("dilated", DilatedMobEffect::new);
public static final DeferredHolder<MobEffect, ContractedMobEffect> CONTRACTED = MOB_EFFECTS.register("contracted", ContractedMobEffect::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);
@@ -200,13 +196,13 @@ public final class AntarchyNeoforgeMisc {
public static final DeferredHolder<Potion, Potion> LONG_COMMAND = POTIONS.register("long_command",
() -> new Potion("command", new MobEffectInstance(COMMANDED, 1200)));
public static final DeferredHolder<Potion, Potion> TIME_DILATION = POTIONS.register("time_dilation",
() -> new Potion(new MobEffectInstance(DILATED, 1200)));
() -> new Potion(new MobEffectInstance(AnthologyEffects.dilated(), 1200)));
public static final DeferredHolder<Potion, Potion> LONG_TIME_DILATION = POTIONS.register("long_time_dilation",
() -> new Potion("time_dilation", new MobEffectInstance(DILATED, 1200, 1)));
() -> new Potion("time_dilation", new MobEffectInstance(AnthologyEffects.dilated(), 1200, 1)));
public static final DeferredHolder<Potion, Potion> TIME_CONTRACTION = POTIONS.register("time_contraction",
() -> new Potion(new MobEffectInstance(CONTRACTED, 1200)));
() -> new Potion(new MobEffectInstance(AnthologyEffects.contracted(), 1200)));
public static final DeferredHolder<Potion, Potion> LONG_TIME_CONTRACTION = POTIONS.register("long_time_contraction",
() -> new Potion("time_contraction", new MobEffectInstance(CONTRACTED, 1200, 1)));
() -> new Potion("time_contraction", new MobEffectInstance(AnthologyEffects.contracted(), 1200, 1)));
public static final DeferredHolder<Potion, Potion> STINKY_POTION = POTIONS.register("stinky",
() -> new Potion(new MobEffectInstance(STINKY, 1200)));
public static final DeferredHolder<Potion, Potion> LONG_STINKY = POTIONS.register("long_stinky",
@@ -12,8 +12,6 @@ import com.craisinlord.antarchy.neoforge.network.BrutalflyElytraNetworking;
import com.craisinlord.antarchy.neoforge.network.DorrieJumpNetworking;
import com.craisinlord.antarchy.neoforge.network.HerculesBeetleNetworking;
import com.craisinlord.antarchy.neoforge.network.SpringyBootsNetworking;
import com.craisinlord.antarchy.neoforge.network.MultipartNetworking;
import com.craisinlord.antarchy.neoforge.network.AntarchyTimeDilationNetworking;
import net.neoforged.bus.api.IEventBus;
import net.neoforged.neoforge.network.event.RegisterPayloadHandlersEvent;
@@ -41,7 +39,6 @@ public class AntarchyNeoforgePayloadHandlers {
(payload, ctx) -> ctx.enqueueWork(() -> com.craisinlord.antarchy.content.client.AntarchyGameClientState.update(payload))
);
AntarchyGravityNetworking.register(registrar);
AntarchyTimeDilationNetworking.register(registrar);
BrutalflyElytraNetworking.register(registrar);
SpringyBootsNetworking.register(registrar);
DorrieJumpNetworking.register(registrar);
@@ -182,6 +179,5 @@ public class AntarchyNeoforgePayloadHandlers {
com.craisinlord.antarchy.content.client.HordeClientState.update(payload.intensity())
)
);
MultipartNetworking.register(registrar);
}
}
@@ -17,9 +17,6 @@ displayURL="https://www.curseforge.com/minecraft/mc-mods/antarchy"
[[mixins]]
config = "antarchy-common.mixins.json"
[[mixins]]
config = "antarchy-sodium.mixins.json"
[[mixins]]
config = "antarchy-neoforge.mixins.json"
@@ -6,18 +6,14 @@
"mixins": [
"compat.SablePhysicsColliderBlockGetterMixin",
"item.BucketItemThoraxisWaterMixin",
"entity.MultipartEntityBridgeMixin",
"entity.MultipartEntityLevelRegistryMixin",
"entity.ParalyzedMobFreezeMixin",
"infinity.AmendmentRareOresMixin",
"infinity.ConfigGenInvocationMixin",
"infinity.PortalCreatorMixin",
"infinity.PortalCreatorInvoker",
"infinity.WarpLogicMixin",
"level.ServerLevelPartEntitiesAccessor"
"infinity.WarpLogicMixin"
],
"client": [
"level.ClientLevelPartEntitiesAccessor"
],
"injectors": {
"defaultRequire": 1