update 1.20 WIP port

This commit is contained in:
craisinlord committed 2026-08-03 22:15:18 -05:00
1 parent 58e504cf1d
commit 68a823d5ff
31 files changed
+559 -62

No files matched your search

@@ -16,6 +16,10 @@ public interface InfinityCompatBridge {
return null;
}
default ResourceLocation getRandomDimensionId(RandomSource random, double easterEggChance) {
return getRandomDimensionId(random);
}
default boolean requestWarp(ServerPlayer player, ResourceLocation dimensionId) {
return false;
}
@@ -9,6 +9,7 @@ public final class AntarchySettings {
private static boolean easterBunnyEnabled = true;
private static int easterBunnyNaturalSpawnChancePercent = 1;
private static boolean rainbowAntsLeadToInfinityDimensions = true;
private static double rainbowAntInfinityEasterEggChance = 0.01D;
private static boolean brownAntRequiresReagent = false;
private static boolean brownAntRightClickDimension = true;
private static boolean redAntRequiresReagent = false;
@@ -316,7 +317,7 @@ public final class AntarchySettings {
private static double krakenArmor = 8.0D;
private static double krakenProjectileDamageTakenMultiplier = 0.5D;
private static double krakenBossBarRange = 40.0D;
private static float krakenLightningDamagePhaseOne = 8.0F;
private static float krakenLightningDamagePhaseOne = 6.0F;
private static double lucidHealth = 30.0D;
private static double lucidAttackDamage = 4.0D;
private static double lucidMovementSpeed = 0.22D;
@@ -465,6 +466,10 @@ public final class AntarchySettings {
return rainbowAntsLeadToInfinityDimensions;
}
public static double rainbowAntInfinityEasterEggChance() {
return rainbowAntInfinityEasterEggChance;
}
public static boolean brownAntRightClickDimension() {
return brownAntRightClickDimension;
}
@@ -1004,6 +1009,10 @@ public final class AntarchySettings {
rainbowAntsLeadToInfinityDimensions = value;
}
public static void setRainbowAntInfinityEasterEggChance(double value) {
rainbowAntInfinityEasterEggChance = value;
}
public static void setBrownAntRightClickDimension(boolean value) {
brownAntRightClickDimension = value;
}
@@ -291,7 +291,7 @@ public class RainbowAntEntity extends BaseAntEntity implements GeoEntity {
}
private String createRandomDimensionId() {
ResourceLocation dimensionId = InfinityCompat.get().getRandomDimensionId(this.random);
ResourceLocation dimensionId = InfinityCompat.get().getRandomDimensionId(this.random, AntarchySettings.rainbowAntInfinityEasterEggChance());
if (dimensionId == null) {
return "";
}
@@ -125,6 +125,9 @@ public class UltimateCrossbowItem extends CrossbowItem {
super.shootProjectile(shooter, projectile, projectileIndex, velocity, inaccuracy, angle, target);
if (projectile instanceof AbstractArrow arrow) {
scaleArrowDamage(arrow);
if (projectileIndex > 0) {
arrow.pickup = AbstractArrow.Pickup.DISALLOWED;
}
UltimateGearHelper.tagUltimateCrossbowProjectile(arrow);
}
}
@@ -7,72 +7,72 @@
"bones": {
"left_leg": {
"rotation": {
"vector": ["5+math.cos(query.anim_time*90*2)*2", 0, -2.5]
"vector": ["5+math.cos(query.anim_time*2)*2", 0, -2.5]
},
"position": {
"vector": [0, "0.15+math.cos(query.anim_time*90*2)/14", "-math.cos(query.anim_time*90*2)/5"]
"vector": [0, "0.15+math.cos(query.anim_time*2)/14", "-math.cos(query.anim_time*2)/5"]
}
},
"right_leg": {
"rotation": {
"vector": ["5+math.cos(query.anim_time*90*2)*2", 0, 2.5]
"vector": ["5+math.cos(query.anim_time*2)*2", 0, 2.5]
},
"position": {
"vector": [0, "0.15+math.cos(query.anim_time*90*2)/14", "-math.cos(query.anim_time*90*2)/5"]
"vector": [0, "0.15+math.cos(query.anim_time*2)/14", "-math.cos(query.anim_time*2)/5"]
}
},
"torso": {
"rotation": {
"vector": ["-math.cos(query.anim_time*90*2-60)", 0, 0]
"vector": ["-math.cos(query.anim_time*2-60)", 0, 0]
},
"position": {
"vector": [0, "math.cos(query.anim_time*90*2)/5", 0]
"vector": [0, "math.cos(query.anim_time*2)/5", 0]
}
},
"head": {
"rotation": {
"vector": ["-math.cos(query.anim_time*90*2-160)*2", 0, 0]
"vector": ["-math.cos(query.anim_time*2-160)*2", 0, 0]
}
},
"left_ear": {
"rotation": {
"vector": ["math.cos(query.anim_time*90*2)*6", "math.cos(query.anim_time*90*2-40)*5", "7.5+math.cos(query.anim_time*90*2+30)*5"]
"vector": ["math.cos(query.anim_time*2)*6", "math.cos(query.anim_time*2-40)*5", "7.5+math.cos(query.anim_time*2+30)*5"]
}
},
"right_ear": {
"rotation": {
"vector": ["math.cos(query.anim_time*90*2)*6", "-math.cos(query.anim_time*90*2-40)*5", "-7.5-math.cos(query.anim_time*90*2+30)*5"]
"vector": ["math.cos(query.anim_time*2)*6", "-math.cos(query.anim_time*2-40)*5", "-7.5-math.cos(query.anim_time*2+30)*5"]
}
},
"tail": {
"rotation": {
"vector": ["math.cos(query.anim_time*90*2+50)*4", 0, 0]
"vector": ["math.cos(query.anim_time*2+50)*4", 0, 0]
}
},
"left_arm": {
"rotation": {
"vector": ["math.cos(query.anim_time*90*2-60)*3-3", 0, -5]
"vector": ["math.cos(query.anim_time*2-60)*3-3", 0, -5]
},
"position": {
"vector": [0, "-math.cos(query.anim_time*90*2-30)/4", "-math.cos(query.anim_time*90*2-50)/5"]
"vector": [0, "-math.cos(query.anim_time*2-30)/4", "-math.cos(query.anim_time*2-50)/5"]
}
},
"right_arm": {
"rotation": {
"vector": ["math.cos(query.anim_time*90*2-60)*3-3", 0, 5]
"vector": ["math.cos(query.anim_time*2-60)*3-3", 0, 5]
},
"position": {
"vector": [0, "-math.cos(query.anim_time*90*2-30)/4", "-math.cos(query.anim_time*90*2-50)/5"]
"vector": [0, "-math.cos(query.anim_time*2-30)/4", "-math.cos(query.anim_time*2-50)/5"]
}
},
"left_leg2": {
"rotation": {
"vector": ["-5-math.cos(query.anim_time*90*2)*2", 0, 2.5]
"vector": ["-5-math.cos(query.anim_time*2)*2", 0, 2.5]
}
},
"right_leg2": {
"rotation": {
"vector": ["-5-math.cos(query.anim_time*90*2)*2", 0, -2.5]
"vector": ["-5-math.cos(query.anim_time*2)*2", 0, -2.5]
}
}
}
@@ -1478,7 +1478,7 @@
"vector": [0, 0, 0]
},
"0.7917": {
"vector": ["-math.cos(query.anim_time*90*32-60)*20", "-math.cos(query.anim_time*90*32)*20", "math.cos(query.anim_time*90*32-50)*20"]
"vector": ["-math.cos(query.anim_time*32-60)*20", "-math.cos(query.anim_time*32)*20", "math.cos(query.anim_time*32-50)*20"]
},
"0.9167": {
"vector": [0, 0, 0]
@@ -1491,7 +1491,7 @@
"vector": [0, 0, 0]
},
"0.4583": {
"vector": ["-math.cos(query.anim_time*90*32-60)*20", "math.cos(query.anim_time*90*32)*20", "-math.cos(query.anim_time*90*32-50)*20"]
"vector": ["-math.cos(query.anim_time*32-60)*20", "math.cos(query.anim_time*32)*20", "-math.cos(query.anim_time*32-50)*20"]
},
"0.5833": {
"vector": [0, 0, 0]
@@ -1500,7 +1500,7 @@
"vector": [0, 0, 0]
},
"1.2917": {
"vector": ["-math.cos(query.anim_time*90*32-60)*20", "math.cos(query.anim_time*90*32)*20", "-math.cos(query.anim_time*90*32-50)*20"]
"vector": ["-math.cos(query.anim_time*32-60)*20", "math.cos(query.anim_time*32)*20", "-math.cos(query.anim_time*32-50)*20"]
},
"1.4167": {
"vector": [0, 0, 0]
@@ -1547,13 +1547,13 @@
},
"1.0": {
"post": {
"vector": [67.5, "-math.cos(query.anim_time*90*16)*10", "-17.5+math.cos(query.anim_time*90*16-60)*10"]
"vector": [67.5, "-math.cos(query.anim_time*16)*10", "-17.5+math.cos(query.anim_time*16-60)*10"]
},
"lerp_mode": "catmullrom"
},
"1.1667": {
"post": {
"vector": [67.5, "-math.cos(query.anim_time*90*16)*10", "-17.5+math.cos(query.anim_time*90*16-60)*10"]
"vector": [67.5, "-math.cos(query.anim_time*16)*10", "-17.5+math.cos(query.anim_time*16-60)*10"]
},
"lerp_mode": "catmullrom"
},
@@ -2145,13 +2145,13 @@
},
"0.5": {
"post": {
"vector": ["85-math.clamp(math.cos(query.anim_time*90*10-80)*10,0,10)", "math.cos(query.anim_time*90*8)*20", "math.cos(query.anim_time*90*8-80)*10"]
"vector": ["85-math.clamp(math.cos(query.anim_time*10-80)*10,0,10)", "math.cos(query.anim_time*8)*20", "math.cos(query.anim_time*8-80)*10"]
},
"lerp_mode": "catmullrom"
},
"1.0": {
"post": {
"vector": ["85-math.clamp(math.cos(query.anim_time*90*10-80)*10,0,10)", "math.cos(query.anim_time*90*8)*20", "math.cos(query.anim_time*90*8-80)*10"]
"vector": ["85-math.clamp(math.cos(query.anim_time*10-80)*10,0,10)", "math.cos(query.anim_time*8)*20", "math.cos(query.anim_time*8-80)*10"]
},
"lerp_mode": "catmullrom"
},
@@ -7984,7 +7984,7 @@
},
"0.2917": {
"post": {
"vector": [0, "-1+math.cos(query.anim_time*90*32)*2", 6]
"vector": [0, "-1+math.cos(query.anim_time*32)*2", 6]
},
"lerp_mode": "catmullrom"
},
@@ -8014,7 +8014,7 @@
},
"0.7917": {
"post": {
"vector": [0, "-1+math.cos(query.anim_time*90*32)*2", 6]
"vector": [0, "-1+math.cos(query.anim_time*32)*2", 6]
},
"lerp_mode": "catmullrom"
},
@@ -8044,7 +8044,7 @@
},
"1.2917": {
"post": {
"vector": [0, "-1+math.cos(query.anim_time*90*32)*2", 6]
"vector": [0, "-1+math.cos(query.anim_time*32)*2", 6]
},
"lerp_mode": "catmullrom"
},
@@ -9176,13 +9176,13 @@
},
"1.6667": {
"post": {
"vector": ["35-math.cos(query.anim_time*90*32-50)*5", 0, 0]
"vector": ["35-math.cos(query.anim_time*32-50)*5", 0, 0]
},
"lerp_mode": "catmullrom"
},
"1.875": {
"post": {
"vector": ["35-math.cos(query.anim_time*90*32-50)*5", 0, 0]
"vector": ["35-math.cos(query.anim_time*32-50)*5", 0, 0]
},
"lerp_mode": "catmullrom"
},
@@ -281,6 +281,8 @@ public final class AntarchyFabricContent {
AntarchyObjects.setOctopusBomb(AntarchyFabricEntities.OCTOPUS_BOMB);
AntarchyObjects.setTentacle(AntarchyFabricEntities.TENTACLE);
AntarchyObjects.setNightmarePortal(AntarchyFabricEntities.NIGHTMARE_PORTAL);
AntarchyObjects.setNightmareBite(AntarchyFabricEntities.NIGHTMARE_BITE);
AntarchyObjects.setKrakensGraspTrident(AntarchyFabricEntities.KRAKENS_GRASP_TRIDENT);
AntarchyObjects.setLotus(() -> AntarchyFabricBlocks.LOTUS.get());
AntarchyObjects.setKrakenTentacle(() -> AntarchyFabricItems.KRAKEN_TENTACLE.get());
@@ -288,6 +290,7 @@ public final class AntarchyFabricContent {
AntarchyObjects.setOuranwoodDeer(AntarchyFabricEntities.OURANWOOD_DEER);
AntarchyObjects.setGlimmer(AntarchyFabricEntities.GLIMMER);
AntarchyObjects.setSpiritApple(() -> AntarchyFabricItems.SPIRIT_APPLE.get());
AntarchyObjects.setGlimmeringEffect(() -> AntarchyFabricMisc.mobEffectHolder(AntarchyFabricMisc.GLIMMERING));
AntarchyObjects.setElka(AntarchyFabricEntities.ELKA);
AntarchyObjects.setPeach(() -> AntarchyFabricItems.PEACH.get());
AntarchyObjects.setCorn(() -> AntarchyFabricItems.CORN.get());
@@ -309,6 +312,8 @@ public final class AntarchyFabricContent {
AntarchyObjects.setCritterCage(() -> AntarchyFabricItems.CRITTER_CAGE.get());
AntarchyObjects.setCritterCageBlock(() -> AntarchyFabricBlocks.CRITTER_CAGE_BLOCK.get());
AntarchyObjects.setCritterCageBlockEntity(() -> AntarchyFabricBlocks.CRITTER_CAGE_BLOCK_ENTITY.get());
AntarchyObjects.setLucidAnchor(() -> AntarchyFabricBlocks.LUCID_ANCHOR.get());
AntarchyObjects.setLucidAnchorBlockEntity(() -> AntarchyFabricBlocks.LUCID_ANCHOR_BLOCK_ENTITY.get());
AntarchyObjects.setCritterCageProjectile(() -> AntarchyFabricEntities.CRITTER_CAGE_PROJECTILE.get());
AntarchyObjects.bind(
AntarchyFabricEntities.EASTER_BUNNY,
@@ -363,8 +368,8 @@ public final class AntarchyFabricContent {
() -> AntarchyFabricBlocks.TRIFFID_GOO_BLOCK.get(),
() -> AntarchyFabricBlocks.PALE_NYXITE.get(),
() -> AntarchyFabricBlocks.NYXITE_SPIKE.get(),
() -> AntarchyFabricBlocks.CHITEN_BLOCK.get(),
() -> AntarchyFabricBlocks.CHITEN_SPIKE.get(),
() -> AntarchyFabricBlocks.CHITIN_BLOCK.get(),
() -> AntarchyFabricBlocks.CHITIN_SPIKE.get(),
() -> AntarchyFabricBlocks.POTENT_NYXITE.get(),
() -> AntarchyFabricBlocks.ANTIMETAL.get(),
() -> AntarchyFabricBlocks.POLISHED_ANTIMETAL.get(),
@@ -431,6 +436,12 @@ public final class AntarchyFabricContent {
com.craisinlord.antarchy.fabric.network.AntarchyFabricNetworking.sendToPlayer(player, payload, com.craisinlord.antarchy.content.network.HordeIntensityPayload.STREAM_CODEC, com.craisinlord.antarchy.content.network.HordeIntensityPayload.TYPE));
BloodCrystalKatanaItem.setTrailCallback(AntarchyFabricNetworking::syncKatanaTrail);
com.craisinlord.antarchy.content.gravity.AntarchyGravityApi.setSyncDispatcher(AntarchyFabricNetworking::syncGravityEntity);
com.craisinlord.antarchy.content.tigereye.TigerEyeCamouflageSync.setSendToPlayer((player, payload) ->
AntarchyFabricNetworking.sendToPlayer(player, payload,
com.craisinlord.antarchy.content.network.TigerEyeCamouflageStatePayload.STREAM_CODEC,
com.craisinlord.antarchy.content.network.TigerEyeCamouflageStatePayload.TYPE));
com.craisinlord.antarchy.content.tigereye.TigerEyeCamouflageSync.setSyncSelfAndTracking(AntarchyFabricNetworking::syncTigerEyeCamouflage);
com.craisinlord.antarchy.fabric.TigerEyeFabricManager.register();
AntarchyFabricEvents.register();
if (isSupportedInfinityLoaded()) {
@@ -57,6 +57,8 @@ public final class AntarchyFabricClientBootstrap {
public static void register() {
AntarchyKeyBindings.register();
com.craisinlord.antarchy.content.client.TigerEyeClientHooks.setCamouflageKeyTextSupplier(
() -> AntarchyKeyBindings.TIGERS_EYE_CAMOUFLAGE.getTranslatedKeyMessage());
MenuScreens.register(AntarchyFabricMisc.DORRIE_INVENTORY_MENU.get(), com.craisinlord.antarchy.content.client.screen.DorrieInventoryScreen::new);
registerRenderers();
registerEntityLayers();
@@ -77,6 +79,10 @@ public final class AntarchyFabricClientBootstrap {
(net.minecraft.world.level.block.entity.BlockEntityType) AntarchyFabricBlocks.SEASHELL_BLOCK_ENTITY.get(),
(BlockEntityRendererProvider) SeashellRenderer::new
);
BlockEntityRendererRegistry.register(
(net.minecraft.world.level.block.entity.BlockEntityType) AntarchyFabricBlocks.LUCID_ANCHOR_BLOCK_ENTITY.get(),
(BlockEntityRendererProvider) LucidAnchorBlockEntityRenderer::new
);
BlockEntityRendererRegistry.register(
(net.minecraft.world.level.block.entity.BlockEntityType) AntarchyFabricBlocks.CRITTER_CAGE_BLOCK_ENTITY.get(),
(BlockEntityRendererProvider) CritterCageRenderer::new
@@ -113,6 +119,8 @@ public final class AntarchyFabricClientBootstrap {
EntityRendererRegistry.register(AntarchyFabricEntities.MISSILE_SQUID.get(), MissileSquidRenderer::new);
EntityRendererRegistry.register(AntarchyFabricEntities.OCTOPUS_BOMB.get(), OctopusBombRenderer::new);
EntityRendererRegistry.register(AntarchyFabricEntities.NIGHTMARE.get(), NightmareRenderer::new);
EntityRendererRegistry.register(AntarchyFabricEntities.NIGHTMARE_PORTAL.get(), NightmarePortalRenderer::new);
EntityRendererRegistry.register(AntarchyFabricEntities.NIGHTMARE_BITE.get(), NightmareBiteRenderer::new);
EntityRendererRegistry.register(AntarchyFabricEntities.LUCID.get(), LucidRenderer::new);
EntityRendererRegistry.register(AntarchyFabricEntities.BED_BUG.get(), BedBugRenderer::new);
EntityRendererRegistry.register(AntarchyFabricEntities.WASP.get(), WaspRenderer::new);
@@ -319,7 +327,7 @@ public final class AntarchyFabricClientBootstrap {
BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.ANTIMETAL_SCAFFOLDING.get(), RenderType.cutout());
BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.UMBRAL_MOSS_CARPET.get(), RenderType.cutout());
BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.NYXITE_SPIKE.get(), RenderType.cutout());
BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.CHITEN_SPIKE.get(), RenderType.cutout());
BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.CHITIN_SPIKE.get(), RenderType.cutout());
BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.STAR_CORAL.get(), RenderType.cutout());
BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.STAR_CORAL_FAN.get(), RenderType.cutout());
BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.STAR_CORAL_WALL_FAN.get(), RenderType.cutout());
@@ -430,7 +438,9 @@ public final class AntarchyFabricClientBootstrap {
if (entityType == EntityType.PLAYER) {
if (renderer instanceof net.minecraft.client.renderer.entity.player.PlayerRenderer playerRenderer) {
registrationHelper.register(new ParalyzedStonePlayerLayer(playerRenderer));
registrationHelper.register(new com.craisinlord.antarchy.content.client.renderer.TigerEyeCamouflagePlayerLayer(playerRenderer));
registrationHelper.register(new GoopedLivingLayer(playerRenderer));
registrationHelper.register(new GlimmeringLivingLayer(playerRenderer));
registrationHelper.register(new BrutalflyElytraLayer(playerRenderer));
registrationHelper.register(new FallenKingCrownLayer(playerRenderer));
}
@@ -449,6 +459,7 @@ public final class AntarchyFabricClientBootstrap {
}
registrationHelper.register(new ParalyzedStoneLivingLayer(renderer));
registrationHelper.register(new GoopedLivingLayer(renderer));
registrationHelper.register(new GlimmeringLivingLayer(renderer));
});
}
@@ -469,6 +480,7 @@ public final class AntarchyFabricClientBootstrap {
ScorpionWhipTetherRenderHandler.tick();
DorrieJumpClientHandler.tick();
HerculesBeetleClientHandler.tick();
TigerEyeCamouflageClientHandler.tick();
});
BigBerthaClientHandler.register();
@@ -483,6 +495,7 @@ public final class AntarchyFabricClientBootstrap {
DreadHudRenderer.render(guiGraphics);
com.craisinlord.antarchy.content.client.HordeHudRenderer.render(guiGraphics);
com.craisinlord.antarchy.content.client.GoopedHudRenderer.render(guiGraphics);
com.craisinlord.antarchy.content.client.GlimmeringHudRenderer.render(guiGraphics);
ParalyzedHudRenderer.render(guiGraphics);
BrutalflyElytraHudRenderer.render(guiGraphics);
JumpyBootsHudRenderer.render(guiGraphics);
@@ -37,6 +37,12 @@ public final class AntarchyKeyBindings {
GLFW.GLFW_KEY_R,
CATEGORY
);
public static final KeyMapping TIGERS_EYE_CAMOUFLAGE = new KeyMapping(
"key.antarchy.tigers_eye_camouflage",
InputConstants.Type.KEYSYM,
InputConstants.UNKNOWN.getValue(),
CATEGORY
);
private AntarchyKeyBindings() {}
@@ -45,6 +51,7 @@ public final class AntarchyKeyBindings {
KeyBindingHelper.registerKeyBinding(DORRIE_CHARGE_JUMP);
KeyBindingHelper.registerKeyBinding(HERCULES_BEETLE_CHARGE);
KeyBindingHelper.registerKeyBinding(HERCULES_BEETLE_FLIGHT_TOGGLE);
KeyBindingHelper.registerKeyBinding(TIGERS_EYE_CAMOUFLAGE);
}
public static boolean isBrutalflyFlapPressed() {
@@ -62,4 +69,8 @@ public final class AntarchyKeyBindings {
public static boolean isHerculesBeetleFlightTogglePressed() {
return Minecraft.getInstance().screen == null && HERCULES_BEETLE_FLIGHT_TOGGLE.isDown();
}
public static boolean consumeTigerEyeCamouflagePressed() {
return Minecraft.getInstance().screen == null && TIGERS_EYE_CAMOUFLAGE.consumeClick();
}
}
@@ -1,6 +1,7 @@
package com.craisinlord.antarchy.fabric.mixin;
import com.craisinlord.antarchy.content.AntarchyObjects;
import com.craisinlord.antarchy.content.AntarchyTags;
import com.craisinlord.antarchy.content.gravity.AntarchyGravityApi;
import com.craisinlord.antarchy.content.gravity.AntarchyGravityDirection;
import com.craisinlord.antarchy.content.gravity.AntarchyGravityTransition;
@@ -50,8 +51,7 @@ public abstract class AntimetalInversionMixin {
for (int y = minY; y <= maxY; y++) {
for (int z = minZ; z <= maxZ; z++) {
BlockPos above = new BlockPos(x, y + 1, z);
if (entity.level().getBlockState(above).is(AntarchyObjects.ANTIMETAL.get())
|| entity.level().getBlockState(above).is(AntarchyObjects.POLISHED_ANTIMETAL.get())) {
if (entity.level().getBlockState(above).is(AntarchyTags.Blocks.ANTIMETAL_INVERSION_BLOCKS)) {
return true;
}
}
@@ -4,6 +4,7 @@ import com.craisinlord.antarchy.content.client.BloodglassClientState;
import com.craisinlord.antarchy.content.client.BrutalflyElytraClientState;
import com.craisinlord.antarchy.content.client.HordeClientState;
import com.craisinlord.antarchy.content.client.ScorpionWhipTetherClientState;
import com.craisinlord.antarchy.content.client.TigerEyeCamouflageClientState;
import com.craisinlord.antarchy.content.client.ThoraxisWeatherClientState;
import com.craisinlord.antarchy.content.entity.multipart.MultipartFramework;
import com.craisinlord.antarchy.content.entity.multipart.network.MultipartAttackPayload;
@@ -84,5 +85,7 @@ public final class AntarchyFabricClientNetworking {
registerReceiver(ImpactShakePayload.TYPE, ImpactShakePayload.STREAM_CODEC, AntarchyFabricNetworking::triggerImpactShake);
registerReceiver(HordeIntensityPayload.TYPE, HordeIntensityPayload.STREAM_CODEC, payload ->
HordeClientState.update(payload.intensity()));
registerReceiver(TigerEyeCamouflageStatePayload.TYPE, TigerEyeCamouflageStatePayload.STREAM_CODEC, payload ->
TigerEyeCamouflageClientState.update(payload.entityId(), payload.active(), payload.blockStateId()));
}
}
@@ -17,6 +17,9 @@ import com.craisinlord.antarchy.content.item.JumpyBootsHelper;
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.item.TigerEyeArmorUtil;
import com.craisinlord.antarchy.content.tigereye.TigerEyeCamouflageController;
import com.craisinlord.antarchy.content.tigereye.TigerEyeCamouflageSync;
import com.craisinlord.antarchy.content.network.*;
import com.craisinlord.antarchy.content.entity.DorrieEntity;
import com.craisinlord.antarchy.content.network.DorrieJumpInputPayload;
@@ -104,6 +107,34 @@ public final class AntarchyFabricNetworking {
registerC2SReceiver(HerculesBeetleMountedChargePayload.TYPE, HerculesBeetleMountedChargePayload.STREAM_CODEC, AntarchyFabricNetworking::handleHerculesBeetleMountedCharge);
registerC2SReceiver(MultipartAttackPayload.TYPE, MultipartAttackPayload.STREAM_CODEC, AntarchyFabricNetworking::handleMultipartAttack);
registerC2SReceiver(MultipartInteractPayload.TYPE, MultipartInteractPayload.STREAM_CODEC, AntarchyFabricNetworking::handleMultipartInteract);
registerC2SReceiver(ToggleTigerEyeCamouflagePayload.TYPE, ToggleTigerEyeCamouflagePayload.STREAM_CODEC, (player, payload) -> handleTigerEyeCamouflageToggle(player));
}
public static void syncTigerEyeCamouflage(ServerPlayer player) {
TigerEyeCamouflageStatePayload payload = TigerEyeCamouflageSync.payload(player);
for (ServerPlayer tracking : PlayerLookup.tracking(player)) {
sendToPlayer(tracking, payload, TigerEyeCamouflageStatePayload.STREAM_CODEC, TigerEyeCamouflageStatePayload.TYPE);
}
sendToPlayer(player, payload, TigerEyeCamouflageStatePayload.STREAM_CODEC, TigerEyeCamouflageStatePayload.TYPE);
}
private static void handleTigerEyeCamouflageToggle(ServerPlayer player) {
TigerEyeCamouflageController.ToggleResult result = TigerEyeCamouflageController.toggle(player);
if (result != TigerEyeCamouflageController.ToggleResult.NO_CHANGE) {
syncTigerEyeCamouflage(player);
}
String messageKey = switch (result) {
case ACTIVATED -> "message.antarchy.tiger_eye_camouflage.activated";
case DEACTIVATED -> "message.antarchy.tiger_eye_camouflage.disabled";
case FULL_SET_REQUIRED -> TigerEyeArmorUtil.countEquippedPieces(player) > 0
? "message.antarchy.tiger_eye_camouflage.full_set_required"
: null;
case INVALID_BLOCK -> "message.antarchy.tiger_eye_camouflage.invalid_block";
case NO_CHANGE -> null;
};
if (messageKey != null) {
player.displayClientMessage(net.minecraft.network.chat.Component.translatable(messageKey), true);
}
}
public static void syncGravityToPlayer(ServerPlayer target, Entity entity) {
@@ -10,6 +10,7 @@ import com.craisinlord.antarchy.content.block.entity.DreamCampfireBlockEntity;
import com.craisinlord.antarchy.content.block.entity.HushweedBlockEntity;
import com.craisinlord.antarchy.content.block.entity.PotentNyxiteBlockEntity;
import com.craisinlord.antarchy.content.block.entity.SeashellBlockEntity;
import com.craisinlord.antarchy.content.block.entity.UpperBlockEntity;
import com.craisinlord.antarchy.content.block.entity.WaspNestBlockEntity;
import com.craisinlord.antarchy.content.fluid.BileLiquidBlock;
import com.craisinlord.antarchy.content.fluid.LumenLiquidBlock;
@@ -149,6 +150,8 @@ public final class AntarchyFabricBlocks {
() -> new net.minecraft.world.level.block.FlowerPotBlock(LOTUS.get(), BlockBehaviour.Properties.copy(Blocks.POTTED_DANDELION)));
public static final DeferredBlock<SeashellBlock> SEASHELL = BLOCKS.register("seashell",
() -> new SeashellBlock(BlockBehaviour.Properties.copy(Blocks.TURTLE_EGG).noOcclusion()));
public static final DeferredBlock<LucidAnchorBlock> LUCID_ANCHOR = BLOCKS.register("lucid_anchor",
() -> new LucidAnchorBlock(BlockBehaviour.Properties.copy(Blocks.BEACON).strength(3.0F)));
public static final DeferredBlock<CritterCageBlock> CRITTER_CAGE_BLOCK = BLOCKS.register("critter_cage_block",
() -> new CritterCageBlock(BlockBehaviour.Properties.of().strength(5.0F, 6.0F).sound(net.minecraft.world.level.block.SoundType.METAL).noOcclusion()));
@@ -327,6 +330,9 @@ public final class AntarchyFabricBlocks {
public static final DeferredBlock<net.minecraft.world.level.block.WallBlock> NYXITE_BRICK_WALL = BLOCKS.register("nyxite_brick_wall",
() -> new net.minecraft.world.level.block.WallBlock(nyxiteProperties()));
public static final DeferredBlock<RotatedPillarBlock> NYXITE_PILLAR = BLOCKS.register("nyxite_pillar",
() -> new RotatedPillarBlock(nyxiteProperties()));
public static final DeferredBlock<Block> SHELLSTONE = BLOCKS.register("shellstone",
() -> new Block(AntarchyObjects.shellstoneProperties()));
@@ -400,6 +406,10 @@ public final class AntarchyFabricBlocks {
() -> new net.minecraft.world.level.block.WallBlock(AntarchyObjects.shellstoneProperties()));
public static final DeferredBlock<RotatedPillarBlock> SHELLSTONE_PILLAR = BLOCKS.register("shellstone_pillar",
() -> new RotatedPillarBlock(AntarchyObjects.shellstoneProperties()));
public static final DeferredBlock<com.craisinlord.antarchy.content.block.TriffidGooBlock> TRIFFID_GOO_BLOCK = BLOCKS.register("triffid_goo_block",
() -> new com.craisinlord.antarchy.content.block.TriffidGooBlock(BlockBehaviour.Properties.copy(Blocks.SLIME_BLOCK).noOcclusion().isViewBlocking((s, l, p) -> false).isSuffocating((s, l, p) -> false)));
@@ -431,8 +441,8 @@ public final class AntarchyFabricBlocks {
() -> new NyxiteSpikeBlock(BlockBehaviour.Properties.copy(Blocks.POINTED_DRIPSTONE)));
public static final DeferredBlock<ChitenSpikeBlock> CHITEN_SPIKE = BLOCKS.register("chiten_spike",
() -> new ChitenSpikeBlock(BlockBehaviour.Properties.copy(Blocks.POINTED_DRIPSTONE)));
public static final DeferredBlock<ChitinSpikeBlock> CHITIN_SPIKE = BLOCKS.register("chitin_spike",
() -> new ChitinSpikeBlock(BlockBehaviour.Properties.copy(Blocks.POINTED_DRIPSTONE)));
public static final DeferredBlock<PotentNyxiteBlock> POTENT_NYXITE = BLOCKS.register("potent_nyxite",
@@ -526,7 +536,11 @@ public final class AntarchyFabricBlocks {
() -> createOre(Blocks.DEEPSLATE_DIAMOND_ORE, 4, 8, MapColor.COLOR_LIGHT_BLUE));
public static final DeferredBlock<RotatedPillarBlock> CHITEN_BLOCK = BLOCKS.register("chiten_block",
public static final DeferredBlock<RotatedPillarBlock> BROODSTONE_PILLAR = BLOCKS.register("broodstone_pillar",
() -> new RotatedPillarBlock(broodstoneProperties()));
public static final DeferredBlock<RotatedPillarBlock> CHITIN_BLOCK = BLOCKS.register("chitin_block",
() -> new RotatedPillarBlock(BlockBehaviour.Properties.copy(Blocks.BONE_BLOCK).requiresCorrectToolForDrops()));
@@ -730,6 +744,8 @@ public final class AntarchyFabricBlocks {
() -> new BluestoneComparatorBlock(BlockBehaviour.Properties.copy(Blocks.COMPARATOR).mapColor(MapColor.COLOR_BLUE).noCollission(), AntarchyFabricBlocks::bluestoneComparatorBlockEntityType));
public static final DeferredBlock<BluestoneTorchBlock> BLUESTONE_TORCH = BLOCKS.register("bluestone_torch",
() -> new BluestoneTorchBlock(BlockBehaviour.Properties.copy(Blocks.REDSTONE_TORCH).mapColor(MapColor.COLOR_BLUE).lightLevel(state -> state.getValue(BluestoneTorchBlock.LIT) ? 7 : 0).noCollission().instabreak()));
public static final DeferredBlock<BluestoneLampBlock> BLUESTONE_LAMP = BLOCKS.register("bluestone_lamp",
() -> new BluestoneLampBlock(BlockBehaviour.Properties.copy(Blocks.REDSTONE_LAMP).mapColor(MapColor.COLOR_BLUE)));
public static final DeferredBlock<Block> URANIUM_BLOCK = BLOCKS.register("uranium_block",
@@ -818,6 +834,14 @@ public final class AntarchyFabricBlocks {
public static final DeferredBlock<net.minecraft.world.level.block.RotatedPillarBlock> POLISHED_ANTIMETAL = BLOCKS.register("polished_antimetal",
() -> new net.minecraft.world.level.block.RotatedPillarBlock(BlockBehaviour.Properties.copy(Blocks.POLISHED_BASALT)));
public static final DeferredBlock<StairBlock> ANTIMETAL_STAIRS = BLOCKS.register("antimetal_stairs",
() -> new StairBlock(ANTIMETAL.get().defaultBlockState(), BlockBehaviour.Properties.copy(Blocks.BASALT)));
public static final DeferredBlock<SlabBlock> ANTIMETAL_SLAB = BLOCKS.register("antimetal_slab",
() -> new SlabBlock(BlockBehaviour.Properties.copy(Blocks.BASALT)));
public static final DeferredBlock<StairBlock> POLISHED_ANTIMETAL_STAIRS = BLOCKS.register("polished_antimetal_stairs",
() -> new StairBlock(POLISHED_ANTIMETAL.get().defaultBlockState(), BlockBehaviour.Properties.copy(Blocks.POLISHED_BASALT)));
public static final DeferredBlock<SlabBlock> POLISHED_ANTIMETAL_SLAB = BLOCKS.register("polished_antimetal_slab",
() -> new SlabBlock(BlockBehaviour.Properties.copy(Blocks.POLISHED_BASALT)));
public static final DeferredBlock<com.craisinlord.antarchy.content.block.AntimetalScaffoldingBlock> ANTIMETAL_SCAFFOLDING = BLOCKS.register("antimetal_scaffolding",
@@ -826,6 +850,8 @@ public final class AntarchyFabricBlocks {
public static final DeferredBlock<com.craisinlord.antarchy.content.block.AntimetalRailBlock> ANTIMETAL_RAIL = BLOCKS.register("antimetal_rail",
() -> new com.craisinlord.antarchy.content.block.AntimetalRailBlock(BlockBehaviour.Properties.copy(Blocks.RAIL)));
public static final DeferredBlock<UpperBlock> UPPER = BLOCKS.register("upper",
() -> new UpperBlock(AntarchyFabricBlocks::upperBlockEntityType, BlockBehaviour.Properties.copy(Blocks.HOPPER)));
public static final DeferredBlock<com.craisinlord.antarchy.content.block.AntimetalPoweredRailBlock> ANTIMETAL_POWERED_RAIL = BLOCKS.register("antimetal_powered_rail",
@@ -903,6 +929,12 @@ public final class AntarchyFabricBlocks {
public static final DeferredBlock<Block> DREAM_SAND = BLOCKS.register("dream_sand",
() -> new DreamSandBlock(BlockBehaviour.Properties.copy(Blocks.SAND)));
public static final DeferredBlock<AntigravelBlock> ANTIGRAVEL = BLOCKS.register("antigravel",
() -> new AntigravelBlock(BlockBehaviour.Properties.copy(Blocks.GRAVEL)));
public static final DeferredBlock<Block> LOAM = BLOCKS.register("loam",
() -> new Block(BlockBehaviour.Properties.copy(Blocks.MUD)));
public static final DeferredBlock<MucusBlock> MUCUS = BLOCKS.register("mucus",
() -> new MucusBlock(BlockBehaviour.Properties.copy(Blocks.GLOW_LICHEN).friction(0.98F).lightLevel(state -> 0).sound(net.minecraft.world.level.block.SoundType.SLIME_BLOCK)));
public static final DeferredBlock<Block> DREAM_SANDSTONE = BLOCKS.register("dream_sandstone",
@@ -1018,6 +1050,11 @@ public final class AntarchyFabricBlocks {
SeashellBlockEntity::new,
SEASHELL.get()
).build(null));
public static final DeferredHolder<BlockEntityType<?>, BlockEntityType<com.craisinlord.antarchy.content.block.entity.LucidAnchorBlockEntity>> LUCID_ANCHOR_BLOCK_ENTITY = BLOCK_ENTITY_TYPES.register("lucid_anchor",
() -> BlockEntityType.Builder.of(
com.craisinlord.antarchy.content.block.entity.LucidAnchorBlockEntity::new,
LUCID_ANCHOR.get()
).build(null));
public static final DeferredHolder<BlockEntityType<?>, BlockEntityType<CritterCageBlockEntity>> CRITTER_CAGE_BLOCK_ENTITY = BLOCK_ENTITY_TYPES.register("critter_cage_block",
() -> BlockEntityType.Builder.of(
CritterCageBlockEntity::new,
@@ -1028,6 +1065,11 @@ public final class AntarchyFabricBlocks {
(pos, state) -> new com.craisinlord.antarchy.content.block.entity.BluestoneComparatorBlockEntity(pos, state, AntarchyFabricBlocks::bluestoneComparatorBlockEntityType),
BLUESTONE_COMPARATOR.get()
).build(null));
public static final DeferredHolder<BlockEntityType<?>, BlockEntityType<UpperBlockEntity>> UPPER_BLOCK_ENTITY = BLOCK_ENTITY_TYPES.register("upper",
() -> BlockEntityType.Builder.of(
(pos, state) -> new UpperBlockEntity(pos, state, AntarchyFabricBlocks::upperBlockEntityType),
UPPER.get()
).build(null));
@@ -1055,6 +1097,10 @@ public final class AntarchyFabricBlocks {
return BLUESTONE_COMPARATOR_BLOCK_ENTITY.get();
}
private static BlockEntityType<UpperBlockEntity> upperBlockEntityType() {
return UPPER_BLOCK_ENTITY.get();
}
private static Block smallBloodCrystalBudBlock() {
@@ -32,6 +32,8 @@ import com.craisinlord.antarchy.content.entity.basilisk.BasiliskEntity;
import com.craisinlord.antarchy.content.entity.EmperorScorpionEntity;
import com.craisinlord.antarchy.content.entity.ScorpionEntity;
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.ToreterrorEntity;
import com.craisinlord.antarchy.content.entity.WaterBombEntity;
import com.craisinlord.antarchy.content.entity.kraken.KrakenEntity;
@@ -328,6 +330,20 @@ public final class AntarchyFabricEntities {
.clientTrackingRange(12)
.build("nightmare"));
public static final DeferredHolder<EntityType<?>, EntityType<NightmarePortalEntity>> NIGHTMARE_PORTAL = ENTITY_TYPES.register("nightmare_portal",
() -> EntityType.Builder.of(NightmarePortalEntity::new, MobCategory.MISC)
.sized(2.5F, 3.0F)
.clientTrackingRange(10)
.updateInterval(1)
.build("nightmare_portal"));
public static final DeferredHolder<EntityType<?>, EntityType<NightmareBiteEntity>> NIGHTMARE_BITE = ENTITY_TYPES.register("nightmare_bite",
() -> EntityType.Builder.of(NightmareBiteEntity::new, MobCategory.MISC)
.sized(2.5F, 2.0F)
.clientTrackingRange(10)
.updateInterval(1)
.build("nightmare_bite"));
public static final DeferredHolder<EntityType<?>, EntityType<LucidEntity>> LUCID = ENTITY_TYPES.register("lucid",
() -> EntityType.Builder.of(LucidEntity::new, MobCategory.MONSTER)
@@ -7,6 +7,7 @@ import com.craisinlord.antarchy.content.item.BloodCrystalAppleItem;
import com.craisinlord.antarchy.content.item.BloodCrystalKatanaItem;
import com.craisinlord.antarchy.content.item.CritterCageItem;
import com.craisinlord.antarchy.fabric.item.DeferredSpawnEggItem;
import com.craisinlord.antarchy.content.item.LucidAnchorBlockItem;
import com.craisinlord.antarchy.content.item.LucidEyeItem;
import com.craisinlord.antarchy.content.item.LucidPearlItem;
import com.craisinlord.antarchy.content.item.PrimordialArmorItem;
@@ -221,6 +222,8 @@ public final class AntarchyFabricItems {
public static final DeferredItem<net.minecraft.world.item.BlockItem> GIANT_LILY_PAD_ITEM = ITEMS.register("giant_lily_pad",
() -> new com.craisinlord.antarchy.content.item.GiantLilyPadItem(AntarchyFabricBlocks.GIANT_LILY_PAD.get(), new Item.Properties()));
public static final DeferredItem<net.minecraft.world.item.BlockItem> SEASHELL_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.SEASHELL);
public static final DeferredItem<net.minecraft.world.item.BlockItem> LUCID_ANCHOR_ITEM = ITEMS.register("lucid_anchor",
() -> new LucidAnchorBlockItem(AntarchyFabricBlocks.LUCID_ANCHOR.get(), new Item.Properties().rarity(Rarity.UNCOMMON)));
public static final DeferredItem<net.minecraft.world.item.BlockItem> LOTUS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.LOTUS);
@@ -295,6 +298,7 @@ public final class AntarchyFabricItems {
() -> new CeilingPlacementTooltipBlockItem(AntarchyFabricBlocks.BLUESTONE_COMPARATOR.get(), new Item.Properties()));
public static final DeferredItem<CeilingPlacementTooltipBlockItem> BLUESTONE_TORCH_ITEM = ITEMS.register("bluestone_torch",
() -> new CeilingPlacementTooltipBlockItem(AntarchyFabricBlocks.BLUESTONE_TORCH.get(), new Item.Properties()));
public static final DeferredItem<net.minecraft.world.item.BlockItem> BLUESTONE_LAMP_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.BLUESTONE_LAMP);
public static final DeferredItem<net.minecraft.world.item.BlockItem> URANIUM_BLOCK_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.URANIUM_BLOCK, new Item.Properties().rarity(Rarity.UNCOMMON));
@@ -365,6 +369,14 @@ public final class AntarchyFabricItems {
public static final DeferredItem<net.minecraft.world.item.BlockItem> POLISHED_ANTIMETAL_ITEM = ITEMS.register("polished_antimetal",
() -> new AntimetalBlockItem(AntarchyFabricBlocks.POLISHED_ANTIMETAL.get(), new Item.Properties()));
public static final DeferredItem<net.minecraft.world.item.BlockItem> ANTIMETAL_STAIRS_ITEM = ITEMS.register("antimetal_stairs",
() -> new AntimetalBlockItem(AntarchyFabricBlocks.ANTIMETAL_STAIRS.get(), new Item.Properties()));
public static final DeferredItem<net.minecraft.world.item.BlockItem> ANTIMETAL_SLAB_ITEM = ITEMS.register("antimetal_slab",
() -> new AntimetalBlockItem(AntarchyFabricBlocks.ANTIMETAL_SLAB.get(), new Item.Properties()));
public static final DeferredItem<net.minecraft.world.item.BlockItem> POLISHED_ANTIMETAL_STAIRS_ITEM = ITEMS.register("polished_antimetal_stairs",
() -> new AntimetalBlockItem(AntarchyFabricBlocks.POLISHED_ANTIMETAL_STAIRS.get(), new Item.Properties()));
public static final DeferredItem<net.minecraft.world.item.BlockItem> POLISHED_ANTIMETAL_SLAB_ITEM = ITEMS.register("polished_antimetal_slab",
() -> new AntimetalBlockItem(AntarchyFabricBlocks.POLISHED_ANTIMETAL_SLAB.get(), new Item.Properties()));
public static final DeferredItem<net.minecraft.world.item.BlockItem> ANTIMETAL_SCAFFOLDING_ITEM = ITEMS.register("antimetal_scaffolding",
@@ -373,6 +385,7 @@ public final class AntarchyFabricItems {
public static final DeferredItem<CeilingPlacementTooltipBlockItem> ANTIMETAL_RAIL_ITEM = ITEMS.register("antimetal_rail",
() -> new CeilingPlacementTooltipBlockItem(AntarchyFabricBlocks.ANTIMETAL_RAIL.get(), new Item.Properties()));
public static final DeferredItem<net.minecraft.world.item.BlockItem> UPPER_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.UPPER);
public static final DeferredItem<CeilingPlacementTooltipBlockItem> ANTIMETAL_POWERED_RAIL_ITEM = ITEMS.register("antimetal_powered_rail",
() -> new CeilingPlacementTooltipBlockItem(AntarchyFabricBlocks.ANTIMETAL_POWERED_RAIL.get(), new Item.Properties()));
public static final DeferredItem<CeilingPlacementTooltipBlockItem> ANTIMETAL_DETECTOR_RAIL_ITEM = ITEMS.register("antimetal_detector_rail",
@@ -401,6 +414,10 @@ public final class AntarchyFabricItems {
public static final DeferredItem<net.minecraft.world.item.BlockItem> DREAM_SAND_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.DREAM_SAND);
public static final DeferredItem<net.minecraft.world.item.BlockItem> ANTIGRAVEL_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.ANTIGRAVEL);
public static final DeferredItem<net.minecraft.world.item.BlockItem> LOAM_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.LOAM);
public static final DeferredItem<net.minecraft.world.item.BlockItem> MUCUS_ITEM = ITEMS.register("mucus",
() -> new com.craisinlord.antarchy.content.item.MucusBlockItem(AntarchyFabricBlocks.MUCUS.get(), new Item.Properties()));
public static final DeferredItem<net.minecraft.world.item.BlockItem> DREAM_SANDSTONE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.DREAM_SANDSTONE);
@@ -494,7 +511,7 @@ public final class AntarchyFabricItems {
public static final DeferredItem<net.minecraft.world.item.BlockItem> NYXITE_BRICKS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.NYXITE_BRICKS);
public static final DeferredItem<net.minecraft.world.item.BlockItem> CHITEN_BLOCK_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.CHITEN_BLOCK);
public static final DeferredItem<net.minecraft.world.item.BlockItem> CHITIN_BLOCK_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.CHITIN_BLOCK);
public static final DeferredItem<net.minecraft.world.item.BlockItem> NYXITE_STAIRS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.NYXITE_STAIRS);
@@ -589,7 +606,7 @@ public final class AntarchyFabricItems {
public static final DeferredItem<net.minecraft.world.item.BlockItem> NYXITE_SPIKE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.NYXITE_SPIKE);
public static final DeferredItem<net.minecraft.world.item.BlockItem> CHITEN_SPIKE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.CHITEN_SPIKE);
public static final DeferredItem<net.minecraft.world.item.BlockItem> CHITIN_SPIKE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.CHITIN_SPIKE);
public static final DeferredItem<net.minecraft.world.item.BlockItem> POTENT_NYXITE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.POTENT_NYXITE);
@@ -697,6 +714,25 @@ public final class AntarchyFabricItems {
() -> new BloodCrystalArmorItem(AntarchyFabricMisc.BLOOD_CRYSTAL_ARMOR_MATERIAL, ArmorItem.Type.BOOTS, new Item.Properties().rarity(Rarity.RARE)));
public static final DeferredItem<Item> TIGERS_EYE = ITEMS.registerSimpleItem("tigers_eye", new Item.Properties().rarity(Rarity.UNCOMMON));
public static final DeferredItem<com.craisinlord.antarchy.content.item.TigerEyeArmorItem> TIGERS_EYE_HELMET = ITEMS.register("tigers_eye_helmet",
() -> new com.craisinlord.antarchy.content.item.TigerEyeArmorItem(AntarchyFabricMisc.TIGERS_EYE_ARMOR_MATERIAL, ArmorItem.Type.HELMET, new Item.Properties().rarity(Rarity.UNCOMMON)));
public static final DeferredItem<com.craisinlord.antarchy.content.item.TigerEyeArmorItem> TIGERS_EYE_CHESTPLATE = ITEMS.register("tigers_eye_chestplate",
() -> new com.craisinlord.antarchy.content.item.TigerEyeArmorItem(AntarchyFabricMisc.TIGERS_EYE_ARMOR_MATERIAL, ArmorItem.Type.CHESTPLATE, new Item.Properties().rarity(Rarity.UNCOMMON)));
public static final DeferredItem<com.craisinlord.antarchy.content.item.TigerEyeArmorItem> TIGERS_EYE_LEGGINGS = ITEMS.register("tigers_eye_leggings",
() -> new com.craisinlord.antarchy.content.item.TigerEyeArmorItem(AntarchyFabricMisc.TIGERS_EYE_ARMOR_MATERIAL, ArmorItem.Type.LEGGINGS, new Item.Properties().rarity(Rarity.UNCOMMON)));
public static final DeferredItem<com.craisinlord.antarchy.content.item.TigerEyeArmorItem> TIGERS_EYE_BOOTS = ITEMS.register("tigers_eye_boots",
() -> new com.craisinlord.antarchy.content.item.TigerEyeArmorItem(AntarchyFabricMisc.TIGERS_EYE_ARMOR_MATERIAL, ArmorItem.Type.BOOTS, new Item.Properties().rarity(Rarity.UNCOMMON)));
public static final DeferredItem<BloodCrystalKatanaItem> BLOOD_CRYSTAL_KATANA = ITEMS.register("blood_crystal_katana",
() -> new BloodCrystalKatanaItem(
BLOOD_CRYSTAL_KATANA_TIER,
@@ -719,7 +755,7 @@ public final class AntarchyFabricItems {
() -> new MobComingSoonTooltipItem(new Item.Properties().rarity(Rarity.RARE)));
public static final DeferredItem<Item> CHITEN = ITEMS.registerSimpleItem("chiten", new Item.Properties().rarity(Rarity.UNCOMMON));
public static final DeferredItem<Item> CHITIN = ITEMS.registerSimpleItem("chitin", new Item.Properties().rarity(Rarity.UNCOMMON));
public static final DeferredItem<Item> JERRY_NUCLEUS = ITEMS.register("jerry_nucleus",
@@ -1218,6 +1254,15 @@ public final class AntarchyFabricItems {
.fireResistant()
));
public static final DeferredItem<Item> KRAKEN_KALAMARI = ITEMS.register("kraken_kalamari",
() -> new Item(new Item.Properties()
.rarity(Rarity.EPIC)
.food(new FoodProperties.Builder()
.nutrition(20)
.saturationMod(1.2F)
.alwaysEat()
.build())));
public static final DeferredItem<Item> KRAKEN_TENTACLE = ITEMS.registerSimpleItem(
"kraken_tentacle",
new Item.Properties().rarity(Rarity.RARE)
@@ -56,8 +56,8 @@ import com.craisinlord.antarchy.content.worldgen.elythia.PeachTreeConfiguration;
import com.craisinlord.antarchy.content.worldgen.elythia.PeachTreeFeature;
import com.craisinlord.antarchy.content.worldgen.elythia.TriffidPatchFeature;
import com.craisinlord.antarchy.content.worldgen.cavaryn.CavarynEggPatchFeature;
import com.craisinlord.antarchy.content.worldgen.cavaryn.ChitenSpikeConfiguration;
import com.craisinlord.antarchy.content.worldgen.cavaryn.ChitenSpikeFeature;
import com.craisinlord.antarchy.content.worldgen.cavaryn.ChitinSpikeConfiguration;
import com.craisinlord.antarchy.content.worldgen.cavaryn.ChitinSpikeFeature;
import com.craisinlord.antarchy.content.worldgen.thoraxis.BedBugNestFeature;
import com.craisinlord.antarchy.content.worldgen.thoraxis.BedBugSurfaceClusterFeature;
import com.craisinlord.antarchy.content.worldgen.thoraxis.CloudSeaCalciteFeature;
@@ -268,6 +268,11 @@ public final class AntarchyFabricMisc {
() -> Ingredient.of(Items.GOLD_INGOT), 0.0F, 0.0F, "fallen_king_crown");
public static final ArmorMaterial TIGERS_EYE_ARMOR_MATERIAL = armorMaterial(
18, createDiamondArmorDefense(), 18, SoundEvents.ARMOR_EQUIP_GOLD,
() -> Ingredient.of(AntarchyFabricItems.TIGERS_EYE.get()), 2.0F, 0.0F, "tigers_eye");
public static final DeferredHolder<ParticleType<?>, SimpleParticleType> DREAM_FIRE_FLAME = PARTICLE_TYPES.register("dream_fire_flame",
() -> simpleParticleType());
@@ -378,6 +383,7 @@ public final class AntarchyFabricMisc {
public static final DeferredHolder<MobEffect, GrowthMobEffect> GROWTH_EFFECT = MOB_EFFECTS.register("growth", GrowthMobEffect::new);
public static final DeferredHolder<MobEffect, com.craisinlord.antarchy.content.effect.GlimmeringMobEffect> GLIMMERING = MOB_EFFECTS.register("glimmering", com.craisinlord.antarchy.content.effect.GlimmeringMobEffect::new);
public static final DeferredHolder<Potion, Potion> PARALYSIS = POTIONS.register("paralysis",
@@ -668,8 +674,8 @@ public final class AntarchyFabricMisc {
() -> new NyxiteSpikeFeature(NyxiteSpikeConfiguration.CODEC));
public static final DeferredHolder<Feature<?>, ChitenSpikeFeature> CAVARYN_CHITEN_SPIKES = FEATURES.register("cavaryn_chiten_spikes",
() -> new ChitenSpikeFeature(ChitenSpikeConfiguration.CODEC));
public static final DeferredHolder<Feature<?>, ChitinSpikeFeature> CAVARYN_CHITIN_SPIKES = FEATURES.register("cavaryn_chitin_spikes",
() -> new ChitinSpikeFeature(ChitinSpikeConfiguration.CODEC));
public static final DeferredHolder<Feature<?>, CavarynBileVeinFeature> CAVARYN_BILE_VEINS = FEATURES.register("cavaryn_bile_veins",
@@ -821,6 +827,17 @@ public final class AntarchyFabricMisc {
private static java.util.EnumMap<ArmorItem.Type, Integer> createDiamondArmorDefense() {
java.util.EnumMap<ArmorItem.Type, Integer> defense = new java.util.EnumMap<>(ArmorItem.Type.class);
defense.put(ArmorItem.Type.BOOTS, 3);
defense.put(ArmorItem.Type.LEGGINGS, 6);
defense.put(ArmorItem.Type.CHESTPLATE, 8);
defense.put(ArmorItem.Type.HELMET, 3);
return defense;
}
private static java.util.EnumMap<ArmorItem.Type, Integer> createBloodCrystalArmorDefense() {
java.util.EnumMap<ArmorItem.Type, Integer> defense = new java.util.EnumMap<>(ArmorItem.Type.class);
defense.put(ArmorItem.Type.BOOTS, 2);
@@ -374,6 +374,7 @@ public final class AntarchyConfigModuleForge {
private static void bakeMiscConfig() {
AntarchySettings.setRainbowAntsLeadToInfinityDimensions(AntarchyMiscConfig.rainbowAntsLeadToInfinityDimensions());
AntarchySettings.setRainbowAntInfinityEasterEggChance(AntarchyMiscConfig.rainbowAntInfinityEasterEggChance());
AntarchySettings.setDisableInfinityBookPortalCreation(AntarchyMiscConfig.disableInfinityBookPortalCreation());
AntarchySettings.setHushweedSporeLifetimeSeconds(AntarchyMiscConfig.hushweedSporeLifetimeSeconds());
AntarchySettings.setDiamondMinecartEnabled(AntarchyMiscConfig.diamondMinecartEnabled());
@@ -199,6 +199,13 @@ public class AntarchyForge {
new BloodCrystalKatanaTrailPayload(player.getId(), durationTicks)
));
com.craisinlord.antarchy.content.gravity.AntarchyGravityApi.setSyncDispatcher(AntarchyGravityNetworking::syncEntity);
com.craisinlord.antarchy.content.tigereye.TigerEyeCamouflageSync.setSendToPlayer(
com.craisinlord.antarchy.forge.network.AntarchyForgeNetworkCore::sendToPlayer);
com.craisinlord.antarchy.content.tigereye.TigerEyeCamouflageSync.setSyncSelfAndTracking(player ->
com.craisinlord.antarchy.forge.network.AntarchyForgeNetworkCore.sendToTrackingEntity(
player,
com.craisinlord.antarchy.content.tigereye.TigerEyeCamouflageSync.payload(player)
));
com.craisinlord.antarchy.content.effect.AntarchySizeScaling.register(
com.craisinlord.antarchy.forge.registry.AntarchyForgeMisc.SHRINKING_EFFECT,
com.craisinlord.antarchy.forge.registry.AntarchyForgeMisc.GROWTH_EFFECT
@@ -291,8 +298,8 @@ public class AntarchyForge {
() -> AntarchyForgeBlocks.TRIFFID_GOO_BLOCK.get(),
() -> AntarchyForgeBlocks.PALE_NYXITE.get(),
() -> AntarchyForgeBlocks.NYXITE_SPIKE.get(),
() -> AntarchyForgeBlocks.CHITEN_BLOCK.get(),
() -> AntarchyForgeBlocks.CHITEN_SPIKE.get(),
() -> AntarchyForgeBlocks.CHITIN_BLOCK.get(),
() -> AntarchyForgeBlocks.CHITIN_SPIKE.get(),
() -> AntarchyForgeBlocks.POTENT_NYXITE.get(),
() -> AntarchyForgeBlocks.ANTIMETAL.get(),
() -> AntarchyForgeBlocks.POLISHED_ANTIMETAL.get(),
@@ -343,6 +350,8 @@ public class AntarchyForge {
);
AntarchyObjects.setOctopusBomb(AntarchyForgeEntites.OCTOPUS_BOMB);
AntarchyObjects.setTentacle(AntarchyForgeEntites.TENTACLE);
AntarchyObjects.setNightmarePortal(AntarchyForgeEntites.NIGHTMARE_PORTAL);
AntarchyObjects.setNightmareBite(AntarchyForgeEntites.NIGHTMARE_BITE);
AntarchyObjects.setKrakensGraspTrident(AntarchyForgeEntites.KRAKENS_GRASP_TRIDENT);
AntarchyObjects.setLotus(() -> AntarchyForgeBlocks.LOTUS.get());
AntarchyObjects.setKrakenTentacle(() -> AntarchyForgeItems.KRAKEN_TENTACLE.get());
@@ -350,6 +359,7 @@ public class AntarchyForge {
AntarchyObjects.setOuranwoodDeer(AntarchyForgeEntites.OURANWOOD_DEER);
AntarchyObjects.setGlimmer(AntarchyForgeEntites.GLIMMER);
AntarchyObjects.setSpiritApple(() -> AntarchyForgeItems.SPIRIT_APPLE.get());
AntarchyObjects.setGlimmeringEffect(() -> AntarchyForgeMisc.mobEffectHolder(AntarchyForgeMisc.GLIMMERING));
AntarchyObjects.setElka(AntarchyForgeEntites.ELKA);
AntarchyObjects.setPeach(() -> AntarchyForgeItems.PEACH.get());
AntarchyObjects.setCorn(() -> AntarchyForgeItems.CORN.get());
@@ -370,6 +380,8 @@ public class AntarchyForge {
AntarchyObjects.setCritterCage(() -> AntarchyForgeItems.CRITTER_CAGE.get());
AntarchyObjects.setCritterCageBlock(() -> AntarchyForgeBlocks.CRITTER_CAGE_BLOCK.get());
AntarchyObjects.setCritterCageBlockEntity(() -> AntarchyForgeBlocks.CRITTER_CAGE_BLOCK_ENTITY.get());
AntarchyObjects.setLucidAnchor(() -> AntarchyForgeBlocks.LUCID_ANCHOR.get());
AntarchyObjects.setLucidAnchorBlockEntity(() -> AntarchyForgeBlocks.LUCID_ANCHOR_BLOCK_ENTITY.get());
AntarchyObjects.setCritterCageProjectile(() -> AntarchyForgeEntites.CRITTER_CAGE_PROJECTILE.get());
}
@@ -24,6 +24,7 @@ public final class AntarchyMiscConfig {
// Infinite Dimensions
private static final ForgeConfigSpec.BooleanValue DISABLE_INFINITY_BOOK_PORTAL_CREATION;
private static final ForgeConfigSpec.BooleanValue RAINBOW_ANTS_LEAD_TO_INFINITY_DIMENSIONS;
private static final ForgeConfigSpec.DoubleValue RAINBOW_ANT_INFINITY_EASTER_EGG_CHANCE;
// Permanent portals
private static final ForgeConfigSpec.BooleanValue PERMANENT_PORTALS_ENABLED;
@@ -105,7 +106,13 @@ public final class AntarchyMiscConfig {
"Whether rainbow ants open randomly generated Infinity dimensions.",
"Only works if the Infinite Dimensions mod is installed."
)
.define("rainbowAntsLeadToInfinityDimensions", net.minecraftforge.fml.ModList.get().isLoaded("infinity"));
.define("rainbowAntsLeadToInfinityDimensions", true);
RAINBOW_ANT_INFINITY_EASTER_EGG_CHANCE = b
.comment(
"Chance for a rainbow ant Infinity destination roll to select an Infinity easter egg dimension instead of a normal generated one.",
"0.01 = 1%, 0 disables easter egg rolls."
)
.defineInRange("rainbowAntInfinityEasterEggChance", 0.01D, 0.0D, 1.0D);
b.pop();
@@ -174,6 +181,7 @@ public final class AntarchyMiscConfig {
static boolean disableInfinityBookPortalCreation() { return DISABLE_INFINITY_BOOK_PORTAL_CREATION.get(); }
static boolean rainbowAntsLeadToInfinityDimensions() { return RAINBOW_ANTS_LEAD_TO_INFINITY_DIMENSIONS.get(); }
static double rainbowAntInfinityEasterEggChance() { return RAINBOW_ANT_INFINITY_EASTER_EGG_CHANCE.get(); }
public static boolean permanentPortalsEnabled() { return PERMANENT_PORTALS_ENABLED.get(); }
public static boolean permanentPortalsFlintAndSteelEnabled() { return PERMANENT_PORTALS_FLINT_AND_STEEL_ENABLED.get(); }
public static boolean elythiaPortalEnabled() { return ELYTHIA_PORTAL_ENABLED.get(); }
@@ -2,12 +2,16 @@ package com.craisinlord.antarchy.forge;
import com.craisinlord.antarchy.Antarchy;
import com.craisinlord.antarchy.compat.infinity.InfinityCompatBridge;
import net.lerariemann.infinity.InfinityMod;
import net.lerariemann.infinity.util.InfinityMethods;
import net.lerariemann.infinity.util.teleport.WarpLogic;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.server.level.ServerPlayer;
import net.minecraft.util.RandomSource;
import java.util.ArrayList;
import java.util.List;
public final class ForgeInfinityCompat implements InfinityCompatBridge {
@Override
public boolean isAvailable() {
@@ -24,6 +28,43 @@ public final class ForgeInfinityCompat implements InfinityCompatBridge {
}
}
@Override
public ResourceLocation getRandomDimensionId(RandomSource random, double easterEggChance) {
try {
if (easterEggChance > 0.0D && random.nextDouble() < easterEggChance) {
ResourceLocation easterDimensionId = getRandomEasterDimensionId(random);
if (easterDimensionId != null) {
return easterDimensionId;
}
}
return InfinityMethods.getRandomId(random);
} catch (Throwable throwable) {
Antarchy.LOGGER.error("[Antarchy] Failed to get a random Infinity dimension id", throwable);
return null;
}
}
private static ResourceLocation getRandomEasterDimensionId(RandomSource random) {
if (InfinityMod.provider == null || InfinityMod.provider.easterizer == null) {
return null;
}
List<String> easterNames = new ArrayList<>();
for (String easterName : InfinityMod.provider.easterizer.map.keySet()) {
if (InfinityMod.provider.easterizer.isEaster(easterName)) {
easterNames.add(easterName);
}
}
if (easterNames.isEmpty()) {
return null;
}
String chosenEaster = easterNames.get(random.nextInt(easterNames.size()));
return InfinityMod.provider.easterizer.getAsEaster(chosenEaster);
}
@Override
public boolean requestWarp(ServerPlayer player, ResourceLocation dimensionId) {
try {
@@ -3,6 +3,7 @@ package com.craisinlord.antarchy.forge.client;
import net.minecraftforge.fml.common.Mod;
import com.craisinlord.antarchy.Antarchy;
import com.craisinlord.antarchy.content.client.GlimmeringHudRenderer;
import com.craisinlord.antarchy.content.client.GoopedHudRenderer;
import com.craisinlord.antarchy.content.client.HordeHudRenderer;
import com.craisinlord.antarchy.content.client.hud.BloodglassHudRenderer;
@@ -86,6 +87,7 @@ public final class AntarchyForgeClient {
public static void registerRenderers(EntityRenderersEvent.RegisterRenderers event) {
event.registerBlockEntityRenderer(AntarchyForgeBlocks.DREAM_CAMPFIRE_BLOCK_ENTITY.get(), CampfireRenderer::new);
event.registerBlockEntityRenderer(AntarchyForgeBlocks.SEASHELL_BLOCK_ENTITY.get(), SeashellRenderer::new);
event.registerBlockEntityRenderer(AntarchyForgeBlocks.LUCID_ANCHOR_BLOCK_ENTITY.get(), LucidAnchorBlockEntityRenderer::new);
event.registerBlockEntityRenderer(AntarchyForgeBlocks.CRITTER_CAGE_BLOCK_ENTITY.get(), CritterCageRenderer::new);
event.registerEntityRenderer(AntarchyForgeEntites.EASTER_BUNNY.get(), context -> withParalyzedGeoLayer(new EasterBunnyRenderer(context)));
event.registerEntityRenderer(AntarchyForgeEntites.FLYING_SQUIRREL.get(), context -> withParalyzedGeoLayer(new FlyingSquirrelRenderer(context)));
@@ -117,6 +119,8 @@ public final class AntarchyForgeClient {
event.registerEntityRenderer(AntarchyForgeEntites.MISSILE_SQUID.get(), context -> withParalyzedGeoLayer(new MissileSquidRenderer(context)));
event.registerEntityRenderer(AntarchyForgeEntites.OCTOPUS_BOMB.get(), context -> withParalyzedGeoLayer(new OctopusBombRenderer(context)));
event.registerEntityRenderer(AntarchyForgeEntites.NIGHTMARE.get(), context -> withParalyzedGeoLayer(new NightmareRenderer(context)));
event.registerEntityRenderer(AntarchyForgeEntites.NIGHTMARE_PORTAL.get(), NightmarePortalRenderer::new);
event.registerEntityRenderer(AntarchyForgeEntites.NIGHTMARE_BITE.get(), NightmareBiteRenderer::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)));
@@ -159,7 +163,9 @@ public final class AntarchyForgeClient {
(LivingEntityRenderer<AbstractClientPlayer, PlayerModel<AbstractClientPlayer>>) event.getSkin(skin);
if (renderer != null) {
renderer.addLayer(new ParalyzedStonePlayerLayer(renderer));
renderer.addLayer(new com.craisinlord.antarchy.content.client.renderer.TigerEyeCamouflagePlayerLayer(renderer));
renderer.addLayer(new GoopedLivingLayer(renderer));
renderer.addLayer(new GlimmeringLivingLayer(renderer));
renderer.addLayer(new BrutalflyElytraLayer(renderer));
renderer.addLayer(new FallenKingCrownLayer(renderer));
}
@@ -198,6 +204,7 @@ public final class AntarchyForgeClient {
LivingEntityRenderer livingRenderer = (LivingEntityRenderer) renderer;
livingRenderer.addLayer(new ParalyzedStoneLivingLayer<>(livingRenderer));
livingRenderer.addLayer(new GoopedLivingLayer<>(livingRenderer));
livingRenderer.addLayer(new GlimmeringLivingLayer<>(livingRenderer));
}
private static <T extends LivingEntity & GeoAnimatable> GeoEntityRenderer<T> withParalyzedGeoLayer(GeoEntityRenderer<T> renderer) {
@@ -302,6 +309,9 @@ public final class AntarchyForgeClient {
event.registerAboveAll("gooped_tint",
(gui, guiGraphics, partialTick, width, height) -> GoopedHudRenderer.render(guiGraphics)
);
event.registerAboveAll("glimmering_tint",
(gui, guiGraphics, partialTick, width, height) -> GlimmeringHudRenderer.render(guiGraphics)
);
event.registerAboveAll("brutalfly_elytra",
(gui, guiGraphics, partialTick, width, height) -> BrutalflyElytraHudRenderer.render(guiGraphics)
);
@@ -328,6 +338,8 @@ public final class AntarchyForgeClient {
public static void onClientSetup(FMLClientSetupEvent event) {
event.enqueueWork(() -> {
net.minecraft.client.gui.screens.MenuScreens.register(AntarchyForgeMisc.DORRIE_INVENTORY_MENU.get(), com.craisinlord.antarchy.content.client.screen.DorrieInventoryScreen::new);
com.craisinlord.antarchy.content.client.TigerEyeClientHooks.setCamouflageKeyTextSupplier(
() -> AntarchyKeyBindings.TIGERS_EYE_CAMOUFLAGE.getTranslatedKeyMessage());
ItemBlockRenderTypes.setRenderLayer(AntarchyForgeBlocks.ANTIMETAL_RAIL.get(), RenderType.cutout());
ItemBlockRenderTypes.setRenderLayer(AntarchyForgeBlocks.ANTIMETAL_POWERED_RAIL.get(), RenderType.cutout());
@@ -363,7 +375,7 @@ public final class AntarchyForgeClient {
ItemBlockRenderTypes.setRenderLayer(AntarchyForgeBlocks.ANTIMETAL_SCAFFOLDING.get(), RenderType.cutout());
ItemBlockRenderTypes.setRenderLayer(AntarchyForgeBlocks.UMBRAL_MOSS_CARPET.get(), RenderType.cutout());
ItemBlockRenderTypes.setRenderLayer(AntarchyForgeBlocks.NYXITE_SPIKE.get(), RenderType.cutout());
ItemBlockRenderTypes.setRenderLayer(AntarchyForgeBlocks.CHITEN_SPIKE.get(), RenderType.cutout());
ItemBlockRenderTypes.setRenderLayer(AntarchyForgeBlocks.CHITIN_SPIKE.get(), RenderType.cutout());
ItemBlockRenderTypes.setRenderLayer(AntarchyForgeBlocks.STAR_CORAL.get(), RenderType.cutout());
ItemBlockRenderTypes.setRenderLayer(AntarchyForgeBlocks.STAR_CORAL_FAN.get(), RenderType.cutout());
ItemBlockRenderTypes.setRenderLayer(AntarchyForgeBlocks.STAR_CORAL_WALL_FAN.get(), RenderType.cutout());
@@ -45,6 +45,13 @@ public final class AntarchyKeyBindings {
InputConstants.KEY_R,
CATEGORY
);
public static final KeyMapping TIGERS_EYE_CAMOUFLAGE = new KeyMapping(
"key.antarchy.tigers_eye_camouflage",
KeyConflictContext.IN_GAME,
InputConstants.Type.KEYSYM,
InputConstants.UNKNOWN.getValue(),
CATEGORY
);
private AntarchyKeyBindings() {}
@@ -54,9 +61,14 @@ public final class AntarchyKeyBindings {
event.register(DORRIE_CHARGE_JUMP);
event.register(HERCULES_BEETLE_CHARGE);
event.register(HERCULES_BEETLE_FLIGHT_TOGGLE);
event.register(TIGERS_EYE_CAMOUFLAGE);
}
public static boolean isHerculesBeetleFlightTogglePressed() {
return HERCULES_BEETLE_FLIGHT_TOGGLE.isDown();
}
public static boolean consumeTigerEyeCamouflagePressed() {
return TIGERS_EYE_CAMOUFLAGE.consumeClick();
}
}
@@ -10,6 +10,7 @@ import com.craisinlord.antarchy.content.block.entity.DreamCampfireBlockEntity;
import com.craisinlord.antarchy.content.block.entity.HushweedBlockEntity;
import com.craisinlord.antarchy.content.block.entity.PotentNyxiteBlockEntity;
import com.craisinlord.antarchy.content.block.entity.SeashellBlockEntity;
import com.craisinlord.antarchy.content.block.entity.UpperBlockEntity;
import com.craisinlord.antarchy.content.block.entity.WaspNestBlockEntity;
import com.craisinlord.antarchy.content.fluid.BileLiquidBlock;
import com.craisinlord.antarchy.content.fluid.LumenLiquidBlock;
@@ -95,6 +96,8 @@ public final class AntarchyForgeBlocks {
() -> new FlowerPotBlock(LOTUS.get(), BlockBehaviour.Properties.copy(Blocks.POTTED_DANDELION)));
public static final RegistryObject<SeashellBlock> SEASHELL = BLOCKS.register("seashell",
() -> new SeashellBlock(BlockBehaviour.Properties.copy(Blocks.TURTLE_EGG).noOcclusion()));
public static final RegistryObject<LucidAnchorBlock> LUCID_ANCHOR = BLOCKS.register("lucid_anchor",
() -> new LucidAnchorBlock(BlockBehaviour.Properties.copy(Blocks.BEACON).strength(3.0F)));
public static final RegistryObject<CritterCageBlock> CRITTER_CAGE_BLOCK = BLOCKS.register("critter_cage_block",
() -> new CritterCageBlock(BlockBehaviour.Properties.of().strength(5.0F, 6.0F).sound(net.minecraft.world.level.block.SoundType.METAL).noOcclusion()));
public static final RegistryObject<StandingSignBlock> OURANWOOD_SIGN = BLOCKS.register("ouranwood_sign",
@@ -189,6 +192,8 @@ public final class AntarchyForgeBlocks {
() -> new SlabBlock(nyxiteProperties()));
public static final RegistryObject<WallBlock> NYXITE_BRICK_WALL = BLOCKS.register("nyxite_brick_wall",
() -> new WallBlock(nyxiteProperties()));
public static final RegistryObject<RotatedPillarBlock> NYXITE_PILLAR = BLOCKS.register("nyxite_pillar",
() -> new RotatedPillarBlock(nyxiteProperties()));
public static final RegistryObject<Block> SHELLSTONE = BLOCKS.register("shellstone",
() -> new Block(AntarchyObjects.shellstoneProperties()));
public static final RegistryObject<Block> POLISHED_SHELLSTONE = BLOCKS.register("polished_shellstone",
@@ -225,6 +230,8 @@ public final class AntarchyForgeBlocks {
() -> new SlabBlock(AntarchyObjects.shellstoneProperties()));
public static final RegistryObject<WallBlock> SHELLSTONE_BRICK_WALL = BLOCKS.register("shellstone_brick_wall",
() -> new WallBlock(AntarchyObjects.shellstoneProperties()));
public static final RegistryObject<RotatedPillarBlock> SHELLSTONE_PILLAR = BLOCKS.register("shellstone_pillar",
() -> new RotatedPillarBlock(AntarchyObjects.shellstoneProperties()));
public static final RegistryObject<com.craisinlord.antarchy.content.block.TriffidGooBlock> TRIFFID_GOO_BLOCK = BLOCKS.register("triffid_goo_block",
() -> new com.craisinlord.antarchy.content.block.TriffidGooBlock(BlockBehaviour.Properties.copy(Blocks.SLIME_BLOCK).noOcclusion().isViewBlocking((s, l, p) -> false).isSuffocating((s, l, p) -> false)));
public static final RegistryObject<com.craisinlord.antarchy.content.block.CloudBlock> CLOUD_BLOCK = BLOCKS.register("cloud_block",
@@ -242,8 +249,8 @@ public final class AntarchyForgeBlocks {
() -> new Block(nyxiteProperties()));
public static final RegistryObject<NyxiteSpikeBlock> NYXITE_SPIKE = BLOCKS.register("nyxite_spike",
() -> new NyxiteSpikeBlock(BlockBehaviour.Properties.copy(Blocks.POINTED_DRIPSTONE)));
public static final RegistryObject<ChitenSpikeBlock> CHITEN_SPIKE = BLOCKS.register("chiten_spike",
() -> new ChitenSpikeBlock(BlockBehaviour.Properties.copy(Blocks.POINTED_DRIPSTONE)));
public static final RegistryObject<ChitinSpikeBlock> CHITIN_SPIKE = BLOCKS.register("chitin_spike",
() -> new ChitinSpikeBlock(BlockBehaviour.Properties.copy(Blocks.POINTED_DRIPSTONE)));
public static final RegistryObject<PotentNyxiteBlock> POTENT_NYXITE = BLOCKS.register("potent_nyxite",
() -> new PotentNyxiteBlock(
AntarchyForgeItems::potentNyxiteBlockEntityType,
@@ -291,7 +298,9 @@ public final class AntarchyForgeBlocks {
() -> createOre(Blocks.DEEPSLATE_EMERALD_ORE, 4, 8, MapColor.COLOR_YELLOW));
public static final RegistryObject<Block> BROODSTONE_TITANIUM_ORE = BLOCKS.register("broodstone_titanium_ore",
() -> createOre(Blocks.DEEPSLATE_DIAMOND_ORE, 4, 8, MapColor.COLOR_LIGHT_BLUE));
public static final RegistryObject<RotatedPillarBlock> CHITEN_BLOCK = BLOCKS.register("chiten_block",
public static final RegistryObject<RotatedPillarBlock> BROODSTONE_PILLAR = BLOCKS.register("broodstone_pillar",
() -> new RotatedPillarBlock(broodstoneProperties()));
public static final RegistryObject<RotatedPillarBlock> CHITIN_BLOCK = BLOCKS.register("chitin_block",
() -> new RotatedPillarBlock(BlockBehaviour.Properties.copy(Blocks.BONE_BLOCK).requiresCorrectToolForDrops()));
public static final RegistryObject<UmbralMossBlock> UMBRAL_MOSS_BLOCK = BLOCKS.register("umbral_moss_block",
() -> new UmbralMossBlock(BlockBehaviour.Properties.copy(Blocks.MOSS_BLOCK)));
@@ -406,6 +415,8 @@ public final class AntarchyForgeBlocks {
() -> new BluestoneComparatorBlock(BlockBehaviour.Properties.copy(Blocks.COMPARATOR).mapColor(MapColor.COLOR_BLUE).noCollission(), AntarchyForgeBlocks::bluestoneComparatorBlockEntityType));
public static final RegistryObject<BluestoneTorchBlock> BLUESTONE_TORCH = BLOCKS.register("bluestone_torch",
() -> new BluestoneTorchBlock(BlockBehaviour.Properties.copy(Blocks.REDSTONE_TORCH).mapColor(MapColor.COLOR_BLUE).lightLevel(state -> state.getValue(BluestoneTorchBlock.LIT) ? 7 : 0).noCollission().instabreak()));
public static final RegistryObject<BluestoneLampBlock> BLUESTONE_LAMP = BLOCKS.register("bluestone_lamp",
() -> new BluestoneLampBlock(BlockBehaviour.Properties.copy(Blocks.REDSTONE_LAMP).mapColor(MapColor.COLOR_BLUE)));
public static final RegistryObject<Block> URANIUM_BLOCK = BLOCKS.register("uranium_block",
() -> createStorageBlock(Blocks.EMERALD_BLOCK, MapColor.COLOR_YELLOW));
public static final RegistryObject<Block> TITANIUM_BLOCK = BLOCKS.register("titanium_block",
@@ -450,10 +461,20 @@ public final class AntarchyForgeBlocks {
() -> new RotatedPillarBlock(BlockBehaviour.Properties.copy(Blocks.BASALT)));
public static final RegistryObject<RotatedPillarBlock> POLISHED_ANTIMETAL = BLOCKS.register("polished_antimetal",
() -> new RotatedPillarBlock(BlockBehaviour.Properties.copy(Blocks.POLISHED_BASALT)));
public static final RegistryObject<StairBlock> ANTIMETAL_STAIRS = BLOCKS.register("antimetal_stairs",
() -> new StairBlock(ANTIMETAL.get().defaultBlockState(), BlockBehaviour.Properties.copy(Blocks.BASALT)));
public static final RegistryObject<SlabBlock> ANTIMETAL_SLAB = BLOCKS.register("antimetal_slab",
() -> new SlabBlock(BlockBehaviour.Properties.copy(Blocks.BASALT)));
public static final RegistryObject<StairBlock> POLISHED_ANTIMETAL_STAIRS = BLOCKS.register("polished_antimetal_stairs",
() -> new StairBlock(POLISHED_ANTIMETAL.get().defaultBlockState(), BlockBehaviour.Properties.copy(Blocks.POLISHED_BASALT)));
public static final RegistryObject<SlabBlock> POLISHED_ANTIMETAL_SLAB = BLOCKS.register("polished_antimetal_slab",
() -> new SlabBlock(BlockBehaviour.Properties.copy(Blocks.POLISHED_BASALT)));
public static final RegistryObject<com.craisinlord.antarchy.content.block.AntimetalScaffoldingBlock> ANTIMETAL_SCAFFOLDING = BLOCKS.register("antimetal_scaffolding",
() -> new com.craisinlord.antarchy.content.block.AntimetalScaffoldingBlock(BlockBehaviour.Properties.copy(Blocks.SCAFFOLDING)));
public static final RegistryObject<com.craisinlord.antarchy.content.block.AntimetalRailBlock> ANTIMETAL_RAIL = BLOCKS.register("antimetal_rail",
() -> new com.craisinlord.antarchy.content.block.AntimetalRailBlock(BlockBehaviour.Properties.copy(Blocks.RAIL)));
public static final RegistryObject<UpperBlock> UPPER = BLOCKS.register("upper",
() -> new UpperBlock(AntarchyForgeBlocks::upperBlockEntityType, BlockBehaviour.Properties.copy(Blocks.HOPPER)));
public static final RegistryObject<com.craisinlord.antarchy.content.block.AntimetalPoweredRailBlock> ANTIMETAL_POWERED_RAIL = BLOCKS.register("antimetal_powered_rail",
() -> new com.craisinlord.antarchy.content.block.AntimetalPoweredRailBlock(BlockBehaviour.Properties.copy(Blocks.POWERED_RAIL)));
public static final RegistryObject<com.craisinlord.antarchy.content.block.AntimetalDetectorRailBlock> ANTIMETAL_DETECTOR_RAIL = BLOCKS.register("antimetal_detector_rail",
@@ -499,6 +520,12 @@ public final class AntarchyForgeBlocks {
() -> new AmethystClusterBlock(7, 3, BlockBehaviour.Properties.copy(Blocks.AMETHYST_CLUSTER)));
public static final RegistryObject<Block> DREAM_SAND = BLOCKS.register("dream_sand",
() -> new DreamSandBlock(BlockBehaviour.Properties.copy(Blocks.SAND)));
public static final RegistryObject<AntigravelBlock> ANTIGRAVEL = BLOCKS.register("antigravel",
() -> new AntigravelBlock(BlockBehaviour.Properties.copy(Blocks.GRAVEL)));
public static final RegistryObject<Block> LOAM = BLOCKS.register("loam",
() -> new Block(BlockBehaviour.Properties.copy(Blocks.MUD)));
public static final RegistryObject<MucusBlock> MUCUS = BLOCKS.register("mucus",
() -> new MucusBlock(BlockBehaviour.Properties.copy(Blocks.GLOW_LICHEN).friction(0.98F).lightLevel(state -> 0).sound(net.minecraft.world.level.block.SoundType.SLIME_BLOCK)));
public static final RegistryObject<Block> DREAM_SANDSTONE = BLOCKS.register("dream_sandstone",
() -> new Block(BlockBehaviour.Properties.copy(Blocks.SANDSTONE)));
public static final RegistryObject<Block> CHISELED_DREAM_SANDSTONE = BLOCKS.register("chiseled_dream_sandstone",
@@ -570,6 +597,11 @@ public final class AntarchyForgeBlocks {
SeashellBlockEntity::new,
SEASHELL.get()
).build(null));
public static final RegistryObject<BlockEntityType<com.craisinlord.antarchy.content.block.entity.LucidAnchorBlockEntity>> LUCID_ANCHOR_BLOCK_ENTITY = BLOCK_ENTITY_TYPES.register("lucid_anchor",
() -> BlockEntityType.Builder.of(
com.craisinlord.antarchy.content.block.entity.LucidAnchorBlockEntity::new,
LUCID_ANCHOR.get()
).build(null));
public static final RegistryObject<BlockEntityType<CritterCageBlockEntity>> CRITTER_CAGE_BLOCK_ENTITY = BLOCK_ENTITY_TYPES.register("critter_cage_block",
() -> BlockEntityType.Builder.of(
CritterCageBlockEntity::new,
@@ -580,6 +612,11 @@ public final class AntarchyForgeBlocks {
(pos, state) -> new com.craisinlord.antarchy.content.block.entity.BluestoneComparatorBlockEntity(pos, state, AntarchyForgeBlocks::bluestoneComparatorBlockEntityType),
BLUESTONE_COMPARATOR.get()
).build(null));
public static final RegistryObject<BlockEntityType<UpperBlockEntity>> UPPER_BLOCK_ENTITY = BLOCK_ENTITY_TYPES.register("upper",
() -> BlockEntityType.Builder.of(
(pos, state) -> new UpperBlockEntity(pos, state, AntarchyForgeBlocks::upperBlockEntityType),
UPPER.get()
).build(null));
private AntarchyForgeBlocks() {}
@@ -643,6 +680,10 @@ public final class AntarchyForgeBlocks {
return BLUESTONE_COMPARATOR_BLOCK_ENTITY.get();
}
private static BlockEntityType<UpperBlockEntity> upperBlockEntityType() {
return UPPER_BLOCK_ENTITY.get();
}
private static final class SimpleHorizontalFacingBlock extends HorizontalDirectionalBlock {
private SimpleHorizontalFacingBlock(BlockBehaviour.Properties properties) {
@@ -57,6 +57,8 @@ 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.nightmare.NightmareEntity;
import com.craisinlord.antarchy.content.entity.nightmare.NightmareBiteEntity;
import com.craisinlord.antarchy.content.entity.nightmare.NightmarePortalEntity;
import com.craisinlord.antarchy.content.entity.CheepEntity;
import com.craisinlord.antarchy.content.entity.CreepingHorrorEntity;
import com.craisinlord.antarchy.content.entity.DorrieEntity;
@@ -265,6 +267,18 @@ public final class AntarchyForgeEntites {
.sized(3.2F, 3.8F)
.clientTrackingRange(12)
.build("nightmare"));
public static final RegistryObject<EntityType<NightmarePortalEntity>> NIGHTMARE_PORTAL = ENTITY_TYPES.register("nightmare_portal",
() -> EntityType.Builder.of(NightmarePortalEntity::new, MobCategory.MISC)
.sized(2.5F, 3.0F)
.clientTrackingRange(10)
.updateInterval(1)
.build("nightmare_portal"));
public static final RegistryObject<EntityType<NightmareBiteEntity>> NIGHTMARE_BITE = ENTITY_TYPES.register("nightmare_bite",
() -> EntityType.Builder.of(NightmareBiteEntity::new, MobCategory.MISC)
.sized(2.5F, 2.0F)
.clientTrackingRange(10)
.updateInterval(1)
.build("nightmare_bite"));
public static final RegistryObject<EntityType<LucidEntity>> LUCID = ENTITY_TYPES.register("lucid",
() -> EntityType.Builder.of(LucidEntity::new, MobCategory.MONSTER)
.sized(2.0F, 2.0F)
@@ -129,6 +129,12 @@ public final class AntarchyForgeEvents {
MinecraftForge.EVENT_BUS.addListener(AntarchyForgeEvents::handleDreadBedSleep);
MinecraftForge.EVENT_BUS.addListener(AntarchyForgeEvents::handleStartTracking);
MinecraftForge.EVENT_BUS.addListener(AntarchyForgeEvents::handleDreamSandLogout);
MinecraftForge.EVENT_BUS.addListener(AntarchyForgeEvents::handleTigerEyeLogin);
MinecraftForge.EVENT_BUS.addListener(AntarchyForgeEvents::handleTigerEyeLogout);
MinecraftForge.EVENT_BUS.addListener(AntarchyForgeEvents::handleTigerEyeDeath);
MinecraftForge.EVENT_BUS.addListener(AntarchyForgeEvents::handleTigerEyeRespawn);
MinecraftForge.EVENT_BUS.addListener(AntarchyForgeEvents::handleTigerEyeDimensionChange);
MinecraftForge.EVENT_BUS.addListener(AntarchyForgeEvents::tickTigerEyeCamouflage);
MinecraftForge.EVENT_BUS.addListener(AntarchyForgeEvents::registerReloadListeners);
MinecraftForge.EVENT_BUS.addListener(AntarchyForgeEvents::onVillagerTrades);
MinecraftForge.EVENT_BUS.addListener(AntarchyForgeEvents::onWandererTrades);
@@ -269,6 +275,50 @@ public final class AntarchyForgeEvents {
}
AntarchyGravityNetworking.syncEntity(event.getTarget());
if (event.getTarget() instanceof ServerPlayer trackedPlayer && event.getEntity() instanceof ServerPlayer trackingPlayer) {
com.craisinlord.antarchy.content.tigereye.TigerEyeCamouflageSync.syncTo(trackingPlayer, trackedPlayer);
}
}
static void handleTigerEyeLogin(PlayerEvent.PlayerLoggedInEvent event) {
if (event.getEntity() instanceof ServerPlayer player) {
com.craisinlord.antarchy.content.tigereye.TigerEyeCamouflageSync.sync(player);
}
}
static void handleTigerEyeLogout(PlayerEvent.PlayerLoggedOutEvent event) {
if (event.getEntity() instanceof ServerPlayer player) {
com.craisinlord.antarchy.content.tigereye.TigerEyeCamouflageController.deactivate(player, false);
}
}
static void handleTigerEyeDeath(LivingDeathEvent event) {
if (event.getEntity() instanceof ServerPlayer player) {
com.craisinlord.antarchy.content.tigereye.TigerEyeCamouflageController.deactivate(player, false);
com.craisinlord.antarchy.content.tigereye.TigerEyeCamouflageSync.sync(player);
}
}
static void handleTigerEyeRespawn(PlayerEvent.PlayerRespawnEvent event) {
if (event.getEntity() instanceof ServerPlayer player) {
com.craisinlord.antarchy.content.tigereye.TigerEyeCamouflageController.deactivate(player, false);
com.craisinlord.antarchy.content.tigereye.TigerEyeCamouflageSync.sync(player);
}
}
static void handleTigerEyeDimensionChange(PlayerEvent.PlayerChangedDimensionEvent event) {
if (event.getEntity() instanceof ServerPlayer player) {
com.craisinlord.antarchy.content.tigereye.TigerEyeCamouflageController.deactivate(player, false);
com.craisinlord.antarchy.content.tigereye.TigerEyeCamouflageSync.sync(player);
}
}
static void tickTigerEyeCamouflage(TickEvent.PlayerTickEvent event) {
if (event.phase != TickEvent.Phase.END) return;
if (event.player instanceof ServerPlayer player
&& com.craisinlord.antarchy.content.tigereye.TigerEyeCamouflageController.validateOrDeactivate(player)) {
com.craisinlord.antarchy.content.tigereye.TigerEyeCamouflageSync.sync(player);
}
}
private static final String DREAD_BED_BUG_NEXT_SPAWN_KEY = Antarchy.MODID + ":dread_bed_bug_next_spawn";
@@ -423,8 +473,7 @@ public final class AntarchyForgeEvents {
for (int y = minY; y <= maxY; y++) {
for (int z = minZ; z <= maxZ; z++) {
net.minecraft.core.BlockPos crystalPos = new net.minecraft.core.BlockPos(x, y + 1, z);
if (entity.level().getBlockState(crystalPos).is(AntarchyForgeBlocks.ANTIMETAL.get())
|| entity.level().getBlockState(crystalPos).is(AntarchyForgeBlocks.POLISHED_ANTIMETAL.get())) {
if (entity.level().getBlockState(crystalPos).is(AntarchyTags.Blocks.ANTIMETAL_INVERSION_BLOCKS)) {
return true;
}
}
@@ -161,6 +161,9 @@ public final class AntarchyForgeItems {
private static final ArmorMaterial FALLEN_KING_CROWN_ARMOR_MATERIAL = armorMaterial(
25, createFallenKingCrownDefense(), 25, SoundEvents.ARMOR_EQUIP_GOLD,
() -> Ingredient.of(Items.GOLD_INGOT), 0.0F, 0.0F, "fallen_king_crown");
private static final ArmorMaterial TIGERS_EYE_ARMOR_MATERIAL = armorMaterial(
18, createDiamondArmorDefense(), 18, SoundEvents.ARMOR_EQUIP_GOLD,
() -> Ingredient.of(AntarchyForgeItems.TIGERS_EYE.get()), 2.0F, 0.0F, "tigers_eye");
// Block items
public static final RegistryObject<net.minecraft.world.item.BlockItem> DUPLICATOR_LOG_ITEM = ITEMS.registerSimpleBlockItem(AntarchyForgeBlocks.DUPLICATOR_LOG);
@@ -203,6 +206,8 @@ public final class AntarchyForgeItems {
public static final RegistryObject<net.minecraft.world.item.BlockItem> GIANT_LILY_PAD_ITEM = ITEMS.register("giant_lily_pad",
() -> new com.craisinlord.antarchy.content.item.GiantLilyPadItem(AntarchyForgeBlocks.GIANT_LILY_PAD.get(), new Item.Properties()));
public static final RegistryObject<net.minecraft.world.item.BlockItem> SEASHELL_ITEM = ITEMS.registerSimpleBlockItem(AntarchyForgeBlocks.SEASHELL);
public static final RegistryObject<net.minecraft.world.item.BlockItem> LUCID_ANCHOR_ITEM = ITEMS.register("lucid_anchor",
() -> new LucidAnchorBlockItem(AntarchyForgeBlocks.LUCID_ANCHOR.get(), new Item.Properties().rarity(Rarity.UNCOMMON)));
public static final RegistryObject<net.minecraft.world.item.BlockItem> LOTUS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyForgeBlocks.LOTUS);
public static final RegistryObject<net.minecraft.world.item.SignItem> OURANWOOD_SIGN_ITEM = ITEMS.register("ouranwood_sign",
() -> new net.minecraft.world.item.SignItem(new Item.Properties().stacksTo(16), AntarchyForgeBlocks.OURANWOOD_SIGN.get(), AntarchyForgeBlocks.OURANWOOD_WALL_SIGN.get()));
@@ -247,6 +252,7 @@ public final class AntarchyForgeItems {
() -> new CeilingPlacementTooltipBlockItem(AntarchyForgeBlocks.BLUESTONE_COMPARATOR.get(), new Item.Properties()));
public static final RegistryObject<CeilingPlacementTooltipBlockItem> BLUESTONE_TORCH_ITEM = ITEMS.register("bluestone_torch",
() -> new CeilingPlacementTooltipBlockItem(AntarchyForgeBlocks.BLUESTONE_TORCH.get(), new Item.Properties()));
public static final RegistryObject<net.minecraft.world.item.BlockItem> BLUESTONE_LAMP_ITEM = ITEMS.registerSimpleBlockItem(AntarchyForgeBlocks.BLUESTONE_LAMP);
public static final RegistryObject<net.minecraft.world.item.BlockItem> URANIUM_BLOCK_ITEM = ITEMS.register("uranium_block",
() -> new net.minecraft.world.item.BlockItem(AntarchyForgeBlocks.URANIUM_BLOCK.get(), new Item.Properties().rarity(Rarity.UNCOMMON)));
public static final RegistryObject<net.minecraft.world.item.BlockItem> TITANIUM_BLOCK_ITEM = ITEMS.register("titanium_block",
@@ -291,10 +297,19 @@ public final class AntarchyForgeItems {
() -> new AntimetalBlockItem(AntarchyForgeBlocks.ANTIMETAL.get(), new Item.Properties()));
public static final RegistryObject<net.minecraft.world.item.BlockItem> POLISHED_ANTIMETAL_ITEM = ITEMS.register("polished_antimetal",
() -> new AntimetalBlockItem(AntarchyForgeBlocks.POLISHED_ANTIMETAL.get(), new Item.Properties()));
public static final RegistryObject<net.minecraft.world.item.BlockItem> ANTIMETAL_STAIRS_ITEM = ITEMS.register("antimetal_stairs",
() -> new AntimetalBlockItem(AntarchyForgeBlocks.ANTIMETAL_STAIRS.get(), new Item.Properties()));
public static final RegistryObject<net.minecraft.world.item.BlockItem> ANTIMETAL_SLAB_ITEM = ITEMS.register("antimetal_slab",
() -> new AntimetalBlockItem(AntarchyForgeBlocks.ANTIMETAL_SLAB.get(), new Item.Properties()));
public static final RegistryObject<net.minecraft.world.item.BlockItem> POLISHED_ANTIMETAL_STAIRS_ITEM = ITEMS.register("polished_antimetal_stairs",
() -> new AntimetalBlockItem(AntarchyForgeBlocks.POLISHED_ANTIMETAL_STAIRS.get(), new Item.Properties()));
public static final RegistryObject<net.minecraft.world.item.BlockItem> POLISHED_ANTIMETAL_SLAB_ITEM = ITEMS.register("polished_antimetal_slab",
() -> new AntimetalBlockItem(AntarchyForgeBlocks.POLISHED_ANTIMETAL_SLAB.get(), new Item.Properties()));
public static final RegistryObject<net.minecraft.world.item.BlockItem> ANTIMETAL_SCAFFOLDING_ITEM = ITEMS.register("antimetal_scaffolding",
() -> new AntimetalScaffoldingItem(AntarchyForgeBlocks.ANTIMETAL_SCAFFOLDING.get(), new Item.Properties()));
public static final RegistryObject<CeilingPlacementTooltipBlockItem> ANTIMETAL_RAIL_ITEM = ITEMS.register("antimetal_rail",
() -> new CeilingPlacementTooltipBlockItem(AntarchyForgeBlocks.ANTIMETAL_RAIL.get(), new Item.Properties()));
public static final RegistryObject<net.minecraft.world.item.BlockItem> UPPER_ITEM = ITEMS.registerSimpleBlockItem(AntarchyForgeBlocks.UPPER);
public static final RegistryObject<CeilingPlacementTooltipBlockItem> ANTIMETAL_POWERED_RAIL_ITEM = ITEMS.register("antimetal_powered_rail",
() -> new CeilingPlacementTooltipBlockItem(AntarchyForgeBlocks.ANTIMETAL_POWERED_RAIL.get(), new Item.Properties()));
public static final RegistryObject<CeilingPlacementTooltipBlockItem> ANTIMETAL_DETECTOR_RAIL_ITEM = ITEMS.register("antimetal_detector_rail",
@@ -309,6 +324,10 @@ public final class AntarchyForgeItems {
() -> new net.minecraft.world.item.BlockItem(AntarchyForgeBlocks.BLOOD_CRYSTAL.get(), new Item.Properties()));
public static final RegistryObject<net.minecraft.world.item.BlockItem> BLOOD_CRYSTAL_CRYSTAL_ITEM = ITEMS.registerSimpleBlockItem(AntarchyForgeBlocks.BLOOD_CRYSTAL_CRYSTAL);
public static final RegistryObject<net.minecraft.world.item.BlockItem> DREAM_SAND_ITEM = ITEMS.registerSimpleBlockItem(AntarchyForgeBlocks.DREAM_SAND);
public static final RegistryObject<net.minecraft.world.item.BlockItem> ANTIGRAVEL_ITEM = ITEMS.registerSimpleBlockItem(AntarchyForgeBlocks.ANTIGRAVEL);
public static final RegistryObject<net.minecraft.world.item.BlockItem> LOAM_ITEM = ITEMS.registerSimpleBlockItem(AntarchyForgeBlocks.LOAM);
public static final RegistryObject<net.minecraft.world.item.BlockItem> MUCUS_ITEM = ITEMS.register("mucus",
() -> new com.craisinlord.antarchy.content.item.MucusBlockItem(AntarchyForgeBlocks.MUCUS.get(), new Item.Properties()));
public static final RegistryObject<net.minecraft.world.item.BlockItem> DREAM_SANDSTONE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyForgeBlocks.DREAM_SANDSTONE);
public static final RegistryObject<net.minecraft.world.item.BlockItem> CHISELED_DREAM_SANDSTONE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyForgeBlocks.CHISELED_DREAM_SANDSTONE);
public static final RegistryObject<net.minecraft.world.item.BlockItem> CUT_DREAM_SANDSTONE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyForgeBlocks.CUT_DREAM_SANDSTONE);
@@ -358,7 +377,7 @@ public final class AntarchyForgeItems {
public static final RegistryObject<net.minecraft.world.item.BlockItem> POLISHED_NYXITE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyForgeBlocks.POLISHED_NYXITE);
public static final RegistryObject<net.minecraft.world.item.BlockItem> CHISELED_NYXITE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyForgeBlocks.CHISELED_NYXITE);
public static final RegistryObject<net.minecraft.world.item.BlockItem> NYXITE_BRICKS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyForgeBlocks.NYXITE_BRICKS);
public static final RegistryObject<net.minecraft.world.item.BlockItem> CHITEN_BLOCK_ITEM = ITEMS.registerSimpleBlockItem(AntarchyForgeBlocks.CHITEN_BLOCK);
public static final RegistryObject<net.minecraft.world.item.BlockItem> CHITIN_BLOCK_ITEM = ITEMS.registerSimpleBlockItem(AntarchyForgeBlocks.CHITIN_BLOCK);
public static final RegistryObject<net.minecraft.world.item.BlockItem> NYXITE_STAIRS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyForgeBlocks.NYXITE_STAIRS);
public static final RegistryObject<net.minecraft.world.item.BlockItem> NYXITE_SLAB_ITEM = ITEMS.registerSimpleBlockItem(AntarchyForgeBlocks.NYXITE_SLAB);
public static final RegistryObject<net.minecraft.world.item.BlockItem> NYXITE_WALL_ITEM = ITEMS.registerSimpleBlockItem(AntarchyForgeBlocks.NYXITE_WALL);
@@ -393,7 +412,7 @@ public final class AntarchyForgeItems {
() -> new com.craisinlord.antarchy.content.item.TriffidGooBlockItem(AntarchyForgeBlocks.TRIFFID_GOO_BLOCK.get(), new Item.Properties()));
public static final RegistryObject<net.minecraft.world.item.BlockItem> PALE_NYXITE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyForgeBlocks.PALE_NYXITE);
public static final RegistryObject<net.minecraft.world.item.BlockItem> NYXITE_SPIKE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyForgeBlocks.NYXITE_SPIKE);
public static final RegistryObject<net.minecraft.world.item.BlockItem> CHITEN_SPIKE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyForgeBlocks.CHITEN_SPIKE);
public static final RegistryObject<net.minecraft.world.item.BlockItem> CHITIN_SPIKE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyForgeBlocks.CHITIN_SPIKE);
public static final RegistryObject<net.minecraft.world.item.BlockItem> POTENT_NYXITE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyForgeBlocks.POTENT_NYXITE);
public static final RegistryObject<net.minecraft.world.item.BlockItem> UMBRAL_MOSS_BLOCK_ITEM = ITEMS.registerSimpleBlockItem(AntarchyForgeBlocks.UMBRAL_MOSS_BLOCK);
public static final RegistryObject<net.minecraft.world.item.BlockItem> UMBRAL_MOSS_CARPET_ITEM = ITEMS.registerSimpleBlockItem(AntarchyForgeBlocks.UMBRAL_MOSS_CARPET);
@@ -451,6 +470,15 @@ public final class AntarchyForgeItems {
() -> new BloodCrystalArmorItem(BLOOD_CRYSTAL_ARMOR_MATERIAL, ArmorItem.Type.LEGGINGS, new Item.Properties().rarity(Rarity.RARE)));
public static final RegistryObject<BloodCrystalArmorItem> BLOOD_CRYSTAL_BOOTS = ITEMS.register("blood_crystal_boots",
() -> new BloodCrystalArmorItem(BLOOD_CRYSTAL_ARMOR_MATERIAL, ArmorItem.Type.BOOTS, new Item.Properties().rarity(Rarity.RARE)));
public static final RegistryObject<Item> TIGERS_EYE = ITEMS.registerSimpleItem("tigers_eye", new Item.Properties().rarity(Rarity.UNCOMMON));
public static final RegistryObject<com.craisinlord.antarchy.content.item.TigerEyeArmorItem> TIGERS_EYE_HELMET = ITEMS.register("tigers_eye_helmet",
() -> new com.craisinlord.antarchy.content.item.TigerEyeArmorItem(TIGERS_EYE_ARMOR_MATERIAL, ArmorItem.Type.HELMET, new Item.Properties().rarity(Rarity.UNCOMMON)));
public static final RegistryObject<com.craisinlord.antarchy.content.item.TigerEyeArmorItem> TIGERS_EYE_CHESTPLATE = ITEMS.register("tigers_eye_chestplate",
() -> new com.craisinlord.antarchy.content.item.TigerEyeArmorItem(TIGERS_EYE_ARMOR_MATERIAL, ArmorItem.Type.CHESTPLATE, new Item.Properties().rarity(Rarity.UNCOMMON)));
public static final RegistryObject<com.craisinlord.antarchy.content.item.TigerEyeArmorItem> TIGERS_EYE_LEGGINGS = ITEMS.register("tigers_eye_leggings",
() -> new com.craisinlord.antarchy.content.item.TigerEyeArmorItem(TIGERS_EYE_ARMOR_MATERIAL, ArmorItem.Type.LEGGINGS, new Item.Properties().rarity(Rarity.UNCOMMON)));
public static final RegistryObject<com.craisinlord.antarchy.content.item.TigerEyeArmorItem> TIGERS_EYE_BOOTS = ITEMS.register("tigers_eye_boots",
() -> new com.craisinlord.antarchy.content.item.TigerEyeArmorItem(TIGERS_EYE_ARMOR_MATERIAL, ArmorItem.Type.BOOTS, new Item.Properties().rarity(Rarity.UNCOMMON)));
public static final RegistryObject<BloodCrystalKatanaItem> BLOOD_CRYSTAL_KATANA = ITEMS.register("blood_crystal_katana",
() -> new BloodCrystalKatanaItem(
BLOOD_CRYSTAL_KATANA_TIER,
@@ -465,7 +493,7 @@ public final class AntarchyForgeItems {
() -> new MobComingSoonTooltipItem(new Item.Properties().rarity(Rarity.RARE)));
public static final RegistryObject<Item> QUEEN_SCALE = ITEMS.register("queen_scale",
() -> new MobComingSoonTooltipItem(new Item.Properties().rarity(Rarity.RARE)));
public static final RegistryObject<Item> CHITEN = ITEMS.registerSimpleItem("chiten", new Item.Properties().rarity(Rarity.UNCOMMON));
public static final RegistryObject<Item> CHITIN = ITEMS.registerSimpleItem("chitin", new Item.Properties().rarity(Rarity.UNCOMMON));
public static final RegistryObject<Item> JERRY_NUCLEUS = ITEMS.register("jerry_nucleus",
() -> new com.craisinlord.antarchy.content.item.JerryNucleusItem(new Item.Properties().rarity(Rarity.UNCOMMON)
.food(new FoodProperties.Builder()
@@ -773,6 +801,14 @@ public final class AntarchyForgeItems {
}
});
public static final RegistryObject<Item> KRAKEN_KALAMARI = ITEMS.register("kraken_kalamari",
() -> new Item(new Item.Properties()
.rarity(Rarity.EPIC)
.food(new FoodProperties.Builder()
.nutrition(20)
.saturationMod(1.2F)
.alwaysEat()
.build())));
public static final RegistryObject<Item> KRAKEN_TENTACLE = ITEMS.registerSimpleItem("kraken_tentacle",
new Item.Properties().rarity(Rarity.RARE));
@@ -964,6 +1000,15 @@ public final class AntarchyForgeItems {
return defense;
}
private static EnumMap<ArmorItem.Type, Integer> createDiamondArmorDefense() {
EnumMap<ArmorItem.Type, Integer> defense = new EnumMap<>(ArmorItem.Type.class);
defense.put(ArmorItem.Type.BOOTS, 3);
defense.put(ArmorItem.Type.LEGGINGS, 6);
defense.put(ArmorItem.Type.CHESTPLATE, 8);
defense.put(ArmorItem.Type.HELMET, 3);
return defense;
}
private static EnumMap<ArmorItem.Type, Integer> createBloodCrystalArmorDefense() {
EnumMap<ArmorItem.Type, Integer> defense = new EnumMap<>(ArmorItem.Type.class);
defense.put(ArmorItem.Type.BOOTS, 2);
@@ -21,8 +21,8 @@ import com.craisinlord.antarchy.content.worldgen.cavaryn.CavarynCreepvineFeature
import com.craisinlord.antarchy.content.worldgen.cavaryn.CavarynEggPatchFeature;
import com.craisinlord.antarchy.content.worldgen.cavaryn.CavarynWallAmberMossFeature;
import com.craisinlord.antarchy.content.worldgen.cavaryn.HangingCreeprootsFeature;
import com.craisinlord.antarchy.content.worldgen.cavaryn.ChitenSpikeConfiguration;
import com.craisinlord.antarchy.content.worldgen.cavaryn.ChitenSpikeFeature;
import com.craisinlord.antarchy.content.worldgen.cavaryn.ChitinSpikeConfiguration;
import com.craisinlord.antarchy.content.worldgen.cavaryn.ChitinSpikeFeature;
import com.craisinlord.antarchy.content.worldgen.cavaryn.MoltingVinesFeature;
import com.craisinlord.antarchy.content.worldgen.ocean.SeashellFeature;
import com.craisinlord.antarchy.content.worldgen.elythia.*;
@@ -103,6 +103,7 @@ public final class AntarchyForgeMisc {
public static final RegistryObject<com.craisinlord.antarchy.content.effect.BloodglassWardEffect> BLOODGLASS_WARD = MOB_EFFECTS.register("bloodglass_ward", com.craisinlord.antarchy.content.effect.BloodglassWardEffect::new);
public static final RegistryObject<ShrinkMobEffect> SHRINKING_EFFECT = MOB_EFFECTS.register("shrinking", ShrinkMobEffect::new);
public static final RegistryObject<GrowthMobEffect> GROWTH_EFFECT = MOB_EFFECTS.register("growth", GrowthMobEffect::new);
public static final RegistryObject<com.craisinlord.antarchy.content.effect.GlimmeringMobEffect> GLIMMERING = MOB_EFFECTS.register("glimmering", com.craisinlord.antarchy.content.effect.GlimmeringMobEffect::new);
// Potions
public static final RegistryObject<Potion> INVERSION = POTIONS.register("inversion",
@@ -273,8 +274,8 @@ public final class AntarchyForgeMisc {
() -> new ThoraxisSpikeFeature(ThoraxisSpikeConfiguration.CODEC));
public static final RegistryObject<NyxiteSpikeFeature> NYXITE_SPIKES = FEATURES.register("nyxite_spikes",
() -> new NyxiteSpikeFeature(NyxiteSpikeConfiguration.CODEC));
public static final RegistryObject<ChitenSpikeFeature> CAVARYN_CHITEN_SPIKES = FEATURES.register("cavaryn_chiten_spikes",
() -> new ChitenSpikeFeature(ChitenSpikeConfiguration.CODEC));
public static final RegistryObject<ChitinSpikeFeature> CAVARYN_CHITIN_SPIKES = FEATURES.register("cavaryn_chitin_spikes",
() -> new ChitinSpikeFeature(ChitinSpikeConfiguration.CODEC));
public static final RegistryObject<CavarynBileVeinFeature> CAVARYN_BILE_VEINS = FEATURES.register("cavaryn_bile_veins",
() -> new CavarynBileVeinFeature(NoneFeatureConfiguration.CODEC));
public static final RegistryObject<CavarynBileCystFeature> CAVARYN_BILE_CYSTS = FEATURES.register("cavaryn_bile_cysts",
@@ -8,6 +8,7 @@ import com.craisinlord.antarchy.forge.network.DorrieJumpNetworking;
import com.craisinlord.antarchy.forge.network.HerculesBeetleNetworking;
import com.craisinlord.antarchy.forge.network.JumpyBootsNetworking;
import com.craisinlord.antarchy.forge.network.MultipartNetworking;
import com.craisinlord.antarchy.forge.network.TigerEyeNetworking;
public class AntarchyForgePayloadHandlers {
private AntarchyForgePayloadHandlers() {}
@@ -18,6 +19,7 @@ public class AntarchyForgePayloadHandlers {
JumpyBootsNetworking.register();
DorrieJumpNetworking.register();
HerculesBeetleNetworking.register();
TigerEyeNetworking.register();
AntarchyForgeNetworkCore.registerS2C(
com.craisinlord.antarchy.content.network.BloodglassStatePayload.class,
com.craisinlord.antarchy.content.network.BloodglassStatePayload.STREAM_CODEC,
@@ -374,6 +374,7 @@ public final class AntarchyConfigModuleNeoforge {
private static void bakeMiscConfig() {
AntarchySettings.setRainbowAntsLeadToInfinityDimensions(AntarchyMiscConfig.rainbowAntsLeadToInfinityDimensions());
AntarchySettings.setRainbowAntInfinityEasterEggChance(AntarchyMiscConfig.rainbowAntInfinityEasterEggChance());
AntarchySettings.setDisableInfinityBookPortalCreation(AntarchyMiscConfig.disableInfinityBookPortalCreation());
AntarchySettings.setHushweedSporeLifetimeSeconds(AntarchyMiscConfig.hushweedSporeLifetimeSeconds());
AntarchySettings.setDiamondMinecartEnabled(AntarchyMiscConfig.diamondMinecartEnabled());
@@ -24,6 +24,7 @@ public final class AntarchyMiscConfig {
// Infinite Dimensions
private static final ModConfigSpec.BooleanValue DISABLE_INFINITY_BOOK_PORTAL_CREATION;
private static final ModConfigSpec.BooleanValue RAINBOW_ANTS_LEAD_TO_INFINITY_DIMENSIONS;
private static final ModConfigSpec.DoubleValue RAINBOW_ANT_INFINITY_EASTER_EGG_CHANCE;
// Permanent portals
private static final ModConfigSpec.BooleanValue PERMANENT_PORTALS_ENABLED;
@@ -105,7 +106,13 @@ public final class AntarchyMiscConfig {
"Whether rainbow ants open randomly generated Infinity dimensions.",
"Only works if the Infinite Dimensions mod is installed."
)
.define("rainbowAntsLeadToInfinityDimensions", net.neoforged.fml.ModList.get().isLoaded("infinity"));
.define("rainbowAntsLeadToInfinityDimensions", true);
RAINBOW_ANT_INFINITY_EASTER_EGG_CHANCE = b
.comment(
"Chance for a rainbow ant Infinity destination roll to select an Infinity easter egg dimension instead of a normal generated one.",
"0.01 = 1%, 0 disables easter egg rolls."
)
.defineInRange("rainbowAntInfinityEasterEggChance", 0.01D, 0.0D, 1.0D);
b.pop();
@@ -174,6 +181,7 @@ public final class AntarchyMiscConfig {
static boolean disableInfinityBookPortalCreation() { return DISABLE_INFINITY_BOOK_PORTAL_CREATION.get(); }
static boolean rainbowAntsLeadToInfinityDimensions() { return RAINBOW_ANTS_LEAD_TO_INFINITY_DIMENSIONS.get(); }
static double rainbowAntInfinityEasterEggChance() { return RAINBOW_ANT_INFINITY_EASTER_EGG_CHANCE.get(); }
public static boolean permanentPortalsEnabled() { return PERMANENT_PORTALS_ENABLED.get(); }
public static boolean permanentPortalsFlintAndSteelEnabled() { return PERMANENT_PORTALS_FLINT_AND_STEEL_ENABLED.get(); }
public static boolean elythiaPortalEnabled() { return ELYTHIA_PORTAL_ENABLED.get(); }
@@ -2,12 +2,16 @@ package com.craisinlord.antarchy.neoforge;
import com.craisinlord.antarchy.Antarchy;
import com.craisinlord.antarchy.compat.infinity.InfinityCompatBridge;
import net.lerariemann.infinity.InfinityMod;
import net.lerariemann.infinity.util.InfinityMethods;
import net.lerariemann.infinity.util.teleport.WarpLogic;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.server.level.ServerPlayer;
import net.minecraft.util.RandomSource;
import java.util.ArrayList;
import java.util.List;
public final class NeoForgeInfinityCompat implements InfinityCompatBridge {
@Override
public boolean isAvailable() {
@@ -24,6 +28,43 @@ public final class NeoForgeInfinityCompat implements InfinityCompatBridge {
}
}
@Override
public ResourceLocation getRandomDimensionId(RandomSource random, double easterEggChance) {
try {
if (easterEggChance > 0.0D && random.nextDouble() < easterEggChance) {
ResourceLocation easterDimensionId = getRandomEasterDimensionId(random);
if (easterDimensionId != null) {
return easterDimensionId;
}
}
return InfinityMethods.getRandomId(random);
} catch (Throwable throwable) {
Antarchy.LOGGER.error("[Antarchy] Failed to get a random Infinity dimension id", throwable);
return null;
}
}
private static ResourceLocation getRandomEasterDimensionId(RandomSource random) {
if (InfinityMod.provider == null || InfinityMod.provider.easterizer == null) {
return null;
}
List<String> easterNames = new ArrayList<>();
for (String easterName : InfinityMod.provider.easterizer.map.keySet()) {
if (InfinityMod.provider.easterizer.isEaster(easterName)) {
easterNames.add(easterName);
}
}
if (easterNames.isEmpty()) {
return null;
}
String chosenEaster = easterNames.get(random.nextInt(easterNames.size()));
return InfinityMod.provider.easterizer.getAsEaster(chosenEaster);
}
@Override
public boolean requestWarp(ServerPlayer player, ResourceLocation dimensionId) {
try {