time dilation and contraction effects, various fixes

This commit is contained in:
craisinlord committed 2026-09-09 09:37:55 -05:00
1 parent 68eba61022
commit 89d41dd7e1
192 files changed
+2962 -1981

No files matched your search

@@ -199,6 +199,10 @@ public class AntarchyForge {
new BloodCrystalKatanaTrailPayload(player.getId(), durationTicks)
));
com.craisinlord.antarchy.content.gravity.AntarchyGravityApi.setSyncDispatcher(AntarchyGravityNetworking::syncEntity);
com.craisinlord.antarchy.content.time.TimeDilationApi.setSyncDispatcher(
com.craisinlord.antarchy.forge.network.AntarchyTimeDilationNetworking::syncRate);
com.craisinlord.antarchy.content.time.TimeDilationApi.setFieldSyncDispatcher(
com.craisinlord.antarchy.forge.network.AntarchyTimeDilationNetworking::syncFields);
com.craisinlord.antarchy.content.tigereye.TigerEyeCamouflageSync.setSendToPlayer(
com.craisinlord.antarchy.forge.network.AntarchyForgeNetworkCore::sendToPlayer);
com.craisinlord.antarchy.content.tigereye.TigerEyeCamouflageSync.setSyncSelfAndTracking(player ->
@@ -362,6 +366,8 @@ public class AntarchyForge {
AntarchyObjects.setRollyPolly(AntarchyForgeEntites.ROLLY_POLLY);
AntarchyObjects.setSpiritApple(() -> AntarchyForgeItems.SPIRIT_APPLE.get());
AntarchyObjects.setGlimmeringEffect(() -> AntarchyForgeMisc.mobEffectHolder(AntarchyForgeMisc.GLIMMERING));
AntarchyObjects.setTimeDilationField(() -> AntarchyForgeEntites.TIME_DILATION_FIELD.get());
AntarchyObjects.setDilatedEffect(() -> AntarchyForgeMisc.mobEffectHolder(AntarchyForgeMisc.DILATED));
AntarchyObjects.setElka(AntarchyForgeEntites.ELKA);
AntarchyObjects.setPeach(() -> AntarchyForgeItems.PEACH.get());
AntarchyObjects.setCorn(() -> AntarchyForgeItems.CORN.get());
@@ -4,6 +4,7 @@ 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 com.craisinlord.antarchy.content.time.TimeDilationCommand;
import net.minecraftforge.event.RegisterCommandsEvent;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;
@@ -18,5 +19,6 @@ final class AntarchyForgeCommandEvents {
CavarynCommand.register(event.getDispatcher());
GravityCommand.register(event.getDispatcher());
CaterpillarCommand.register(event.getDispatcher());
TimeDilationCommand.register(event.getDispatcher());
}
}
@@ -126,6 +126,7 @@ public final class AntarchyForgeClient {
event.registerEntityRenderer(AntarchyForgeEntites.NIGHTMARE_PORTAL.get(), NightmarePortalRenderer::new);
event.registerEntityRenderer(AntarchyForgeEntites.NIGHTMARE_BITE.get(), NightmareBiteRenderer::new);
event.registerEntityRenderer(AntarchyForgeEntites.DIMENSIONAL_TEAR.get(), DimensionalTearRenderer::new);
event.registerEntityRenderer(AntarchyForgeEntites.TIME_DILATION_FIELD.get(), TimeDilationFieldRenderer::new);
event.registerEntityRenderer(AntarchyForgeEntites.LUCID.get(), context -> withParalyzedGeoLayer(new LucidRenderer(context)));
event.registerEntityRenderer(AntarchyForgeEntites.BED_BUG.get(), context -> withParalyzedGeoLayer(new BedBugRenderer(context)));
event.registerEntityRenderer(AntarchyForgeEntites.WASP.get(), context -> withParalyzedGeoLayer(new WaspRenderer(context)));
@@ -62,6 +62,7 @@ import com.craisinlord.antarchy.content.entity.nightmare.NightmareEntity;
import com.craisinlord.antarchy.content.entity.nightmare.NightmareBiteEntity;
import com.craisinlord.antarchy.content.entity.nightmare.NightmarePortalEntity;
import com.craisinlord.antarchy.content.entity.portal.DimensionalTearEntity;
import com.craisinlord.antarchy.content.time.TimeDilationFieldEntity;
import com.craisinlord.antarchy.content.entity.CheepEntity;
import com.craisinlord.antarchy.content.entity.CreepingHorrorEntity;
import com.craisinlord.antarchy.content.entity.DorrieEntity;
@@ -428,6 +429,12 @@ public final class AntarchyForgeEntites {
.clientTrackingRange(12)
.updateInterval(2)
.build("dimensional_tear"));
public static final RegistryObject<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)
.build("time_dilation_field"));
private AntarchyForgeEntites() {}
@@ -73,6 +73,7 @@ import net.minecraftforge.event.village.WandererTradesEvent;
import com.craisinlord.antarchy.content.item.MinersDreamExcavationManager;
import net.minecraftforge.fluids.FluidInteractionRegistry;
import com.craisinlord.antarchy.forge.network.AntarchyForgeNetworkCore;
import com.craisinlord.antarchy.content.time.TimeDilationManager;
public final class AntarchyForgeEvents {
private AntarchyForgeEvents() {}
@@ -106,6 +107,7 @@ public final class AntarchyForgeEvents {
MinecraftForge.EVENT_BUS.addListener(AntarchyForgeEvents::tickScorpionWhips);
MinecraftForge.EVENT_BUS.addListener(AntarchyForgeEvents::tickDreamSandLowGravity);
MinecraftForge.EVENT_BUS.addListener(AntarchyForgeEvents::tickMinersDreamExcavations);
MinecraftForge.EVENT_BUS.addListener(AntarchyForgeEvents::tickTimeDilation);
MinecraftForge.EVENT_BUS.addListener(AntarchyForgeEvents::handleAntiwaterDamage);
MinecraftForge.EVENT_BUS.addListener(AntarchyForgeEvents::handleAntiwaterFall);
MinecraftForge.EVENT_BUS.addListener(AntarchyForgeEvents::handleDreamSandFall);
@@ -208,6 +210,13 @@ public final class AntarchyForgeEvents {
}
}
@net.minecraftforge.eventbus.api.SubscribeEvent
static void tickTimeDilation(TickEvent.ServerTickEvent event) {
if (event.phase == TickEvent.Phase.END) {
TimeDilationManager.tickServer(event.getServer());
}
}
private static int badOmenLevel(Player player) {
MobEffectInstance effect = player.getEffect(MobEffects.BAD_OMEN);
return effect != null ? effect.getAmplifier() + 1 : 0;
@@ -280,6 +289,12 @@ public final class AntarchyForgeEvents {
}
AntarchyGravityNetworking.syncEntity(event.getTarget());
if (event.getTarget() instanceof com.craisinlord.antarchy.content.time.TimeDilationEntityAccess access
&& event.getEntity() instanceof ServerPlayer trackingPlayer) {
com.craisinlord.antarchy.forge.network.AntarchyTimeDilationNetworking.syncRateToPlayer(
trackingPlayer, event.getTarget(), access.antarchy$getTimeDilationRate()
);
}
if (event.getTarget() instanceof ServerPlayer trackedPlayer && event.getEntity() instanceof ServerPlayer trackingPlayer) {
com.craisinlord.antarchy.content.tigereye.TigerEyeCamouflageSync.syncTo(trackingPlayer, trackedPlayer);
}
@@ -1187,6 +1202,8 @@ public final class AntarchyForgeEvents {
addPotionMix(Potions.AWKWARD, AntarchyForgeItems.TITANIUM_NUGGET.get(), AntarchyForgeMisc.GROWING.get());
addPotionMix(AntarchyForgeMisc.GROWING.get(), Items.GLOWSTONE_DUST, AntarchyForgeMisc.STRONG_GROWING.get());
addPotionMix(AntarchyForgeMisc.STRONG_GROWING.get(), Items.GLOWSTONE_DUST, AntarchyForgeMisc.EXTREME_GROWING.get());
addPotionMix(Potions.AWKWARD, AntarchyForgeItems.QUEEN_SCALE.get(), AntarchyForgeMisc.TIME_DILATION.get());
addPotionMix(AntarchyForgeMisc.TIME_DILATION.get(), Items.GLOWSTONE_DUST, AntarchyForgeMisc.LONG_TIME_DILATION.get());
}
static void onMobEffectApplicable(MobEffectEvent.Applicable event) {
@@ -10,6 +10,7 @@ import com.craisinlord.antarchy.content.effect.InvertedMobEffect;
import com.craisinlord.antarchy.content.effect.ParalyzedMobEffect;
import com.craisinlord.antarchy.content.effect.ShrinkMobEffect;
import com.craisinlord.antarchy.content.effect.StinkyMobEffect;
import com.craisinlord.antarchy.content.effect.DilatedMobEffect;
import com.craisinlord.antarchy.content.recipe.AmericanizeRecipe;
import com.craisinlord.antarchy.content.worldgen.ants.BrownAntNestFeature;
import com.craisinlord.antarchy.content.worldgen.ants.RainbowAntNestFeature;
@@ -98,6 +99,7 @@ public final class AntarchyForgeMisc {
public static final RegistryObject<DreadMobEffect> DREAD = MOB_EFFECTS.register("dread", DreadMobEffect::new);
public static final RegistryObject<ParalyzedMobEffect> PARALYZED = MOB_EFFECTS.register("paralyzed", ParalyzedMobEffect::new);
public static final RegistryObject<InvertedMobEffect> INVERTED = MOB_EFFECTS.register("inverted", InvertedMobEffect::new);
public static final RegistryObject<DilatedMobEffect> DILATED = MOB_EFFECTS.register("dilated", DilatedMobEffect::new);
public static final RegistryObject<StinkyMobEffect> STINKY = MOB_EFFECTS.register("stinky", StinkyMobEffect::new);
public static final RegistryObject<GoopedMobEffect> GOOPED = MOB_EFFECTS.register("gooped", GoopedMobEffect::new);
public static final RegistryObject<com.craisinlord.antarchy.content.effect.BloodglassWardEffect> BLOODGLASS_WARD = MOB_EFFECTS.register("bloodglass_ward", com.craisinlord.antarchy.content.effect.BloodglassWardEffect::new);
@@ -110,6 +112,10 @@ public final class AntarchyForgeMisc {
() -> new Potion(new MobEffectInstance(mobEffectHolder(INVERTED), 600)));
public static final RegistryObject<Potion> LONG_INVERSION = POTIONS.register("long_inversion",
() -> new Potion("inversion", new MobEffectInstance(mobEffectHolder(INVERTED), 2400)));
public static final RegistryObject<Potion> TIME_DILATION = POTIONS.register("time_dilation",
() -> new Potion(new MobEffectInstance(mobEffectHolder(DILATED), 1200)));
public static final RegistryObject<Potion> LONG_TIME_DILATION = POTIONS.register("long_time_dilation",
() -> new Potion("time_dilation", new MobEffectInstance(mobEffectHolder(DILATED), 1200, 1)));
public static final RegistryObject<Potion> STINKY_POTION = POTIONS.register("stinky",
() -> new Potion(new MobEffectInstance(mobEffectHolder(STINKY), 1200)));
public static final RegistryObject<Potion> LONG_STINKY = POTIONS.register("long_stinky",
@@ -41,5 +41,6 @@ public class AntarchyForgePayloadHandlers {
payload -> com.craisinlord.antarchy.content.client.HordeClientState.update(payload.intensity())
);
MultipartNetworking.register();
com.craisinlord.antarchy.forge.network.AntarchyTimeDilationNetworking.register();
}
}