kings tree implementation

tons of 1.20 files
This commit is contained in:
craisinlord committed 2026-09-10 09:51:32 -05:00
1 parent f4f4e0c717
commit 326c503ddb
3734 files changed
+121959 -8

No files matched your search

@@ -367,7 +367,9 @@ public class AntarchyForge {
AntarchyObjects.setSpiritApple(() -> AntarchyForgeItems.SPIRIT_APPLE.get());
AntarchyObjects.setGlimmeringEffect(() -> AntarchyForgeMisc.mobEffectHolder(AntarchyForgeMisc.GLIMMERING));
AntarchyObjects.setTimeDilationField(() -> AntarchyForgeEntites.TIME_DILATION_FIELD.get());
AntarchyObjects.setRoyalAssailantBlackHole(() -> AntarchyForgeEntites.ROYAL_ASSAILANT_BLACK_HOLE.get());
AntarchyObjects.setDilatedEffect(() -> AntarchyForgeMisc.mobEffectHolder(AntarchyForgeMisc.DILATED));
AntarchyObjects.setContractedEffect(() -> AntarchyForgeMisc.mobEffectHolder(AntarchyForgeMisc.CONTRACTED));
AntarchyObjects.setElka(AntarchyForgeEntites.ELKA);
AntarchyObjects.setPeach(() -> AntarchyForgeItems.PEACH.get());
AntarchyObjects.setCorn(() -> AntarchyForgeItems.CORN.get());
@@ -127,6 +127,7 @@ public final class AntarchyForgeClient {
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.ROYAL_ASSAILANT_BLACK_HOLE.get(), com.craisinlord.antarchy.content.client.renderer.RoyalAssailantBlackHoleRenderer::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)));
@@ -174,6 +175,8 @@ public final class AntarchyForgeClient {
renderer.addLayer(new GlimmeringLivingLayer(renderer));
renderer.addLayer(new BrutalflyElytraLayer(renderer));
renderer.addLayer(new FallenKingCrownLayer(renderer));
renderer.addLayer(new com.craisinlord.antarchy.content.client.renderer.TemporalContractionAfterimageLayer(renderer));
renderer.addLayer(new com.craisinlord.antarchy.content.client.renderer.RoyalAssailantAxeAfterimageLayer(renderer));
}
}
LivingEntityRenderer<net.minecraft.world.entity.decoration.ArmorStand, ArmorStandModel> armorStandRenderer =
@@ -211,11 +214,13 @@ public final class AntarchyForgeClient {
livingRenderer.addLayer(new ParalyzedStoneLivingLayer<>(livingRenderer));
livingRenderer.addLayer(new GoopedLivingLayer<>(livingRenderer));
livingRenderer.addLayer(new GlimmeringLivingLayer<>(livingRenderer));
livingRenderer.addLayer(new com.craisinlord.antarchy.content.client.renderer.TemporalContractionAfterimageLayer(livingRenderer));
}
private static <T extends LivingEntity & GeoAnimatable> GeoEntityRenderer<T> withParalyzedGeoLayer(GeoEntityRenderer<T> renderer) {
renderer.addRenderLayer(new ParalyzedStoneGeoLayer<>(renderer));
renderer.addRenderLayer(new GoopedGeoLayer<>(renderer));
renderer.addRenderLayer(new com.craisinlord.antarchy.content.client.renderer.TemporalContractionGeoLayer<>(renderer));
return renderer;
}
@@ -0,0 +1,25 @@
package com.craisinlord.antarchy.forge.client;
import com.craisinlord.antarchy.Antarchy;
import com.craisinlord.antarchy.content.client.ClientTimeDilationTicker;
import net.minecraft.client.Minecraft;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.event.TickEvent;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;
@Mod.EventBusSubscriber(modid = Antarchy.MODID, value = Dist.CLIENT, bus = Mod.EventBusSubscriber.Bus.FORGE)
public final class ClientTimeDilationHandler {
private ClientTimeDilationHandler() {}
@SubscribeEvent
public static void onClientTick(TickEvent.ClientTickEvent event) {
if (event.phase == TickEvent.Phase.END) {
Minecraft mc = Minecraft.getInstance();
if (mc.level != null) {
ClientTimeDilationTicker.tick(mc.level);
com.craisinlord.antarchy.content.client.ContractionAfterimages.tick(mc.level);
}
}
}
}
@@ -1,5 +1,7 @@
package com.craisinlord.antarchy.forge.content.fluid;
import com.craisinlord.antarchy.content.fluid.AntiwaterBubbleColumnUtil;
import com.craisinlord.antarchy.forge.registry.AntarchyForgeBlocks;
import java.util.HashSet;
import java.util.Set;
@@ -173,6 +175,8 @@ public abstract class AntiwaterFluid extends ForgeFlowingFluid {
return;
}
AntiwaterBubbleColumnUtil.update(level, pos, state);
if (!state.isSource() && !this.isFlowingStateValid(level, pos, state)) {
level.setBlockAndUpdate(pos, net.minecraft.world.level.block.Blocks.AIR.defaultBlockState());
this.scheduleCleanup(level, pos);
@@ -0,0 +1,31 @@
package com.craisinlord.antarchy.forge.network;
import com.craisinlord.antarchy.content.network.TimeDilationFieldsPayload;
import com.craisinlord.antarchy.content.network.TimeDilationRatePayload;
import com.craisinlord.antarchy.content.time.TimeDilationFieldSnapshot;
import java.util.List;
import net.minecraft.server.level.ServerPlayer;
import net.minecraft.world.entity.Entity;
public final class AntarchyTimeDilationNetworking {
private AntarchyTimeDilationNetworking() {}
public static void register() {
AntarchyForgeNetworkCore.registerS2C(TimeDilationRatePayload.class, TimeDilationRatePayload.STREAM_CODEC,
payload -> com.craisinlord.antarchy.content.time.TimeDilationApi.applySyncedRate(payload.entityUuid(), payload.rate()));
AntarchyForgeNetworkCore.registerS2C(TimeDilationFieldsPayload.class, TimeDilationFieldsPayload.STREAM_CODEC,
payload -> com.craisinlord.antarchy.content.client.ClientTimeDilationTicker.applyFields(payload.fields()));
}
public static void syncRate(Entity entity, double rate) {
AntarchyForgeNetworkCore.sendToTrackingEntity(entity, new TimeDilationRatePayload(entity.getUUID(), rate));
}
public static void syncRateToPlayer(ServerPlayer player, Entity entity, double rate) {
AntarchyForgeNetworkCore.sendToPlayer(player, new TimeDilationRatePayload(entity.getUUID(), rate));
}
public static void syncFields(ServerPlayer player, List<TimeDilationFieldSnapshot> fields) {
AntarchyForgeNetworkCore.sendToPlayer(player, new TimeDilationFieldsPayload(fields));
}
}
@@ -435,6 +435,13 @@ public final class AntarchyForgeEntites {
.clientTrackingRange(16)
.updateInterval(20)
.build("time_dilation_field"));
public static final RegistryObject<EntityType<com.craisinlord.antarchy.content.entity.royal.RoyalAssailantBlackHoleEntity>> ROYAL_ASSAILANT_BLACK_HOLE = ENTITY_TYPES.register("royal_assailant_black_hole",
() -> EntityType.Builder.<com.craisinlord.antarchy.content.entity.royal.RoyalAssailantBlackHoleEntity>of(com.craisinlord.antarchy.content.entity.royal.RoyalAssailantBlackHoleEntity::new, MobCategory.MISC)
.sized(1.0F, 1.0F)
.clientTrackingRange(16)
.updateInterval(2)
.fireImmune()
.build("royal_assailant_black_hole"));
private AntarchyForgeEntites() {}
@@ -11,6 +11,7 @@ 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.effect.ContractedMobEffect;
import com.craisinlord.antarchy.content.recipe.AmericanizeRecipe;
import com.craisinlord.antarchy.content.worldgen.ants.BrownAntNestFeature;
import com.craisinlord.antarchy.content.worldgen.ants.RainbowAntNestFeature;
@@ -100,6 +101,7 @@ public final class AntarchyForgeMisc {
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<ContractedMobEffect> CONTRACTED = MOB_EFFECTS.register("contracted", ContractedMobEffect::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);
@@ -220,6 +222,9 @@ public final class AntarchyForgeMisc {
() -> new PeachTreeFeature(PeachTreeConfiguration.CODEC));
public static final RegistryObject<ElythiaFloraFeature> ELYTHIA_FOREST_FLORA = FEATURES.register("elythia_forest_flora",
() -> new ElythiaFloraFeature(NoneFeatureConfiguration.CODEC, ElythiaFloraFeature.Variant.FOREST));
public static final RegistryObject<KingsTreeGridFeature> KINGS_TREE_GRID = FEATURES.register("kings_tree_grid",
() -> new KingsTreeGridFeature(NoneFeatureConfiguration.CODEC));
public static final RegistryObject<ElythiaFloraFeature> ELYTHIA_MEADOW_FLORA = FEATURES.register("elythia_meadow_flora",
() -> new ElythiaFloraFeature(NoneFeatureConfiguration.CODEC, ElythiaFloraFeature.Variant.MEADOW));
public static final RegistryObject<ElythiaFloraFeature> PEACH_FOREST_FLORA = FEATURES.register("peach_forest_flora",