moved miners dream to seperate mod

new portal gun draft
fixed scorched guns mixin
sodium compat layer
This commit is contained in:
craisinlord committed 2026-09-29 23:37:11 -05:00
1 parent 23599c4c59
commit c7cb48edfb
193 files changed
+6528 -2821

No files matched your search

+12 -6
View File
@@ -37,8 +37,12 @@ dependencies {
modImplementation "net.fabricmc:fabric-loader:${fabric_loader_version_1_21_1}"
modApi "net.fabricmc.fabric-api:fabric-api:${fabric_api_version_1_21_1}"
modLocalRuntime "maven.modrinth:midnightlib:${midnightlib}"
modImplementation "software.bernie.geckolib:geckolib-fabric-1.21.1:${geckolib_version}"
modImplementation(files("$rootDir/infinite_dimensions_jars/antos-fabric-1.21.1-${antos_version}.jar"))
if (providers.gradleProperty('antarchySodiumCompatTest').orNull == 'true') {
modLocalRuntime(files("$rootDir/infinite_dimensions_jars/sodium-fabric-0.8.13+mc1.21.1.jar"))
}
modCompileOnly("curse.maven:intapi-${intapi_curseforge_id}:${intapi_curseforge_file_id_fabric}")
modLocalRuntime("curse.maven:intapi-${intapi_curseforge_id}:${intapi_curseforge_file_id_fabric}")
modLocalRuntime("dev.architectury:architectury-fabric:${architectury_api_version}")
@@ -46,8 +50,8 @@ dependencies {
compileOnly "mezz.jei:jei-1.21.1-fabric-api:${jei_version}"
modLocalRuntime "mezz.jei:jei-1.21.1-fabric:${jei_version}"
modLocalRuntime(files("$rootDir/infinite_dimensions_jars/infinity-2.7.3+1.21.1-fabric.jar"))
compileOnly(files("$rootDir/infinite_dimensions_jars/infinity-2.7.3+1.21.1-neoforge.jar"))
runtimeOnly(files("$rootDir/infinite_dimensions_jars/infinity-2.7.3+1.21.1-fabric.jar"))
compileOnly(files("$rootDir/infinite_dimensions_jars/gravity-api-1.0.7-1.20.1.jar"))
compileOnly(files("$rootDir/infinite_dimensions_jars/sable-neoforge-1.21.1-2.0.3.jar"))
@@ -71,7 +75,7 @@ dependencies {
// space) but load the real Fabric jar at runtime — sizeable_foliage's Fabric jar ships
// intermediary-mapped, which this compileOnly classpath can't resolve directly.
compileOnly(files("$rootDir/sizeable_foliage_jars/sizeable_foliage-neoforge-1.21.1-1.0.0.jar"))
runtimeOnly(files("$rootDir/sizeable_foliage_jars/sizeable_foliage-fabric-1.21.1-1.0.0.jar"))
modLocalRuntime(files("$rootDir/sizeable_foliage_jars/sizeable_foliage-fabric-1.21.1-1.0.0.jar"))
annotationProcessor "org.spongepowered:mixin:0.8.7:processor"
implementation(annotationProcessor("io.github.llamalad7:mixinextras-common:${mixin_extras_1_21_1}"))
@@ -111,10 +115,12 @@ tasks.named('processResources', ProcessResources).configure {
// does — inject the refmap key into fabric's own copy of the shared file after copying.
tasks.named('processResources', ProcessResources).configure {
doLast {
var commonMixinConfig = new File(destinationDir, 'antarchy-common.mixins.json')
var json = new groovy.json.JsonSlurper().parse(commonMixinConfig)
json.put('refmap', 'antarchy.mixins.refmap.json')
commonMixinConfig.text = groovy.json.JsonOutput.prettyPrint(groovy.json.JsonOutput.toJson(json))
['antarchy-common.mixins.json', 'antarchy-sodium.mixins.json'].each { configName ->
var mixinConfig = new File(destinationDir, configName)
var json = new groovy.json.JsonSlurper().parse(mixinConfig)
json.put('refmap', 'antarchy.mixins.refmap.json')
mixinConfig.text = groovy.json.JsonOutput.prettyPrint(groovy.json.JsonOutput.toJson(json))
}
}
}
@@ -18,6 +18,8 @@ import com.craisinlord.antarchy.content.gravity.AntarchyGravityDirection;
import com.craisinlord.antarchy.content.gravity.AntarchyGravityTransition;
import com.craisinlord.antarchy.content.horde.CavarynHordeManager;
import com.craisinlord.antarchy.content.portal.PermanentPortalManager;
import com.craisinlord.antarchy.content.portalgun.PortalGunProjectileEntity;
import com.craisinlord.antarchy.content.portalgun.PortalGunGrabManager;
import com.craisinlord.antarchy.content.command.CavarynCommand;
import com.craisinlord.antarchy.content.command.CaterpillarCommand;
import com.craisinlord.antarchy.content.command.DimensionalTearCommand;
@@ -27,7 +29,6 @@ import com.craisinlord.antarchy.content.command.RoyalCommand;
import com.craisinlord.antarchy.content.time.TimeDilationCommand;
import com.craisinlord.antarchy.content.time.TimeDilationManager;
import com.craisinlord.antarchy.content.time.ChronosphereManager;
import com.craisinlord.antarchy.content.item.MinersDreamExcavationManager;
import com.craisinlord.antarchy.content.item.WormHookTetherManager;
import com.craisinlord.antarchy.content.entity.trades.ComputerScientistTradeManager;
import com.craisinlord.antarchy.content.worldgen.thoraxis.ThoraxisUndersideManager;
@@ -36,6 +37,7 @@ import net.fabricmc.fabric.api.entity.event.v1.ServerLivingEntityEvents;
import net.fabricmc.fabric.api.entity.event.v1.ServerEntityWorldChangeEvents;
import net.fabricmc.fabric.api.entity.event.v1.ServerPlayerEvents;
import net.fabricmc.fabric.api.event.lifecycle.v1.ServerTickEvents;
import net.fabricmc.fabric.api.event.lifecycle.v1.ServerLifecycleEvents;
import net.fabricmc.fabric.api.networking.v1.ServerPlayConnectionEvents;
import net.fabricmc.fabric.api.object.builder.v1.trade.TradeOfferHelper;
import net.fabricmc.fabric.api.event.player.AttackEntityCallback;
@@ -75,6 +77,9 @@ public final class AntarchyFabricEvents {
}
public static void register() {
ServerLifecycleEvents.SERVER_STOPPING.register(server -> PortalGunProjectileEntity.releaseAllProjectileTickets());
ServerLifecycleEvents.SERVER_STOPPING.register(PortalGunGrabManager::clear);
ServerLifecycleEvents.SERVER_STOPPING.register(com.craisinlord.antarchy.content.portalgun.PortalGunResetManager::clear);
ServerPlayConnectionEvents.JOIN.register((handler, sender, server) -> {
ChronosphereManager.refresh(handler.player);
TimeDilationManager.resyncPersistentEffects(handler.player);
@@ -183,13 +188,16 @@ public final class AntarchyFabricEvents {
: net.minecraft.world.InteractionResultHolder.fail(held);
});
AttackEntityCallback.EVENT.register((player, world, hand, entity, hitResult) -> {
if (player.getItemInHand(hand).getItem() instanceof com.craisinlord.antarchy.content.item.PortalGunItem) {
return InteractionResult.FAIL;
}
if (!world.isClientSide && player.getItemInHand(hand).getItem() instanceof AttitudeAdjusterItem && player.getAttackStrengthScale(0.5F) >= 0.95F) {
AttitudeAdjusterSlamManager.markSpecialHit(player);
}
return InteractionResult.PASS;
});
net.fabricmc.fabric.api.event.player.AttackBlockCallback.EVENT.register((player, world, hand, pos, direction) -> {
if (player.getMainHandItem().getItem() instanceof com.craisinlord.antarchy.content.item.PortalGunItem) {
if (player.getItemInHand(hand).getItem() instanceof com.craisinlord.antarchy.content.item.PortalGunItem) {
return InteractionResult.FAIL;
}
return InteractionResult.PASS;
@@ -201,6 +209,7 @@ public final class AntarchyFabricEvents {
});
ServerTickEvents.END_SERVER_TICK.register(server -> {
PortalGunGrabManager.tick(server);
Set<UUID> activeThisTick = new HashSet<>();
for (ServerLevel level : server.getAllLevels()) {
CavarynHordeManager.tick(level);
@@ -211,7 +220,6 @@ public final class AntarchyFabricEvents {
tickIchorPlayers(level);
tickBloodglassRecharge(level);
AttitudeAdjusterSlamManager.tick(level);
MinersDreamExcavationManager.tick(level);
for (ServerPlayer player : level.players()) {
WormHookTetherManager.tick(player);
}
@@ -5,6 +5,7 @@ import com.craisinlord.antarchy.fabric.registry.AntarchyFabricItems;
import com.craisinlord.antarchy.fabric.registry.AntarchyFabricMisc;
import com.craisinlord.antarchy.Antarchy;
import com.craisinlord.antarchy.content.client.PortalGunCrosshairRenderer;
import com.craisinlord.antarchy.content.client.CameraShakeClientState;
import com.craisinlord.antarchy.content.client.AntarchyArchivePreviews;
import com.craisinlord.antarchy.content.client.HerculesBeetleImpactShakeClientState;
@@ -28,6 +29,7 @@ import net.fabricmc.fabric.api.client.render.fluid.v1.FluidRenderHandlerRegistry
import net.fabricmc.fabric.api.client.particle.v1.ParticleFactoryRegistry;
import net.fabricmc.fabric.api.client.rendering.v1.BlockEntityRendererRegistry;
import net.fabricmc.fabric.api.client.rendering.v1.ColorProviderRegistry;
import net.fabricmc.fabric.api.client.rendering.v1.CoreShaderRegistrationCallback;
import net.fabricmc.fabric.api.client.rendering.v1.EntityModelLayerRegistry;
import net.fabricmc.fabric.api.client.rendering.v1.EntityRendererRegistry;
import net.fabricmc.fabric.api.client.rendering.v1.HudRenderCallback;
@@ -37,6 +39,7 @@ import net.minecraft.client.model.ChestBoatModel;
import net.minecraft.client.gui.screens.MenuScreens;
import net.minecraft.client.renderer.BiomeColors;
import net.minecraft.client.renderer.RenderType;
import com.mojang.blaze3d.vertex.DefaultVertexFormat;
import net.minecraft.client.renderer.texture.TextureAtlas;
import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider;
import net.minecraft.client.renderer.blockentity.CampfireRenderer;
@@ -66,6 +69,18 @@ public final class AntarchyFabricClientBootstrap {
}
public static void register() {
CoreShaderRegistrationCallback.EVENT.register(context -> {
PortalGunPortalViewRenderer.clearPortalViewShader();
try {
context.register(
ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "portal_view"),
DefaultVertexFormat.POSITION_TEX,
PortalGunPortalViewRenderer::setPortalViewShader
);
} catch (java.io.IOException | RuntimeException exception) {
Antarchy.LOGGER.error("Failed to register portal view shader", exception);
}
});
AntarchyArchivePreviews.register();
AntarchyKeyBindings.register();
MenuScreens.register(AntarchyFabricMisc.DORRIE_INVENTORY_MENU.get(), com.craisinlord.antarchy.content.client.screen.DorrieInventoryScreen::new);
@@ -611,14 +626,15 @@ public final class AntarchyFabricClientBootstrap {
DorrieJumpHudRenderer.render(guiGraphics);
HerculesBeetleChargeHudRenderer.render(guiGraphics);
com.craisinlord.antarchy.content.client.KingJudgmentFlashHudRenderer.render(guiGraphics);
PortalGunCrosshairRenderer.render(guiGraphics);
});
WorldRenderEvents.AFTER_TRANSLUCENT.register(context -> {
WorldRenderEvents.LAST.register(context -> {
BloodCrystalKatanaTrailHandler.render(context);
ScorpionWhipTetherRenderHandler.render(context);
WormHookTetherRenderHandler.render(context);
if (context.matrixStack() != null && com.craisinlord.antarchy.content.client.renderer.PortalGunPortalViewRenderer.isEnabled()) {
com.craisinlord.antarchy.content.client.renderer.PortalGunPortalViewRenderer.render(context.camera(), context.matrixStack().last().pose(), context.tickCounter());
com.craisinlord.antarchy.content.client.renderer.PortalGunPortalViewRenderer.render(context.camera(), context.matrixStack().last().pose(), context.projectionMatrix(), context.tickCounter());
}
});
}
@@ -49,6 +49,24 @@ public final class AntarchyKeyBindings {
GLFW.GLFW_KEY_B,
CATEGORY
);
public static final KeyMapping PORTAL_GUN_ZOOM = new KeyMapping(
"key.antarchy.portal_gun_zoom",
InputConstants.Type.MOUSE,
GLFW.GLFW_MOUSE_BUTTON_MIDDLE,
CATEGORY
);
public static final KeyMapping PORTAL_GUN_GRAB = new KeyMapping(
"key.antarchy.portal_gun_grab",
InputConstants.Type.KEYSYM,
GLFW.GLFW_KEY_G,
CATEGORY
);
public static final KeyMapping PORTAL_GUN_RESET = new KeyMapping(
"key.antarchy.portal_gun_reset",
InputConstants.Type.KEYSYM,
GLFW.GLFW_KEY_R,
CATEGORY
);
private AntarchyKeyBindings() {}
@@ -59,6 +77,9 @@ public final class AntarchyKeyBindings {
KeyBindingHelper.registerKeyBinding(TIGERS_EYE_CAMOUFLAGE);
KeyBindingHelper.registerKeyBinding(ROYAL_INVERSION_TOGGLE);
KeyBindingHelper.registerKeyBinding(ROYAL_BOUNDARY);
KeyBindingHelper.registerKeyBinding(PORTAL_GUN_ZOOM);
KeyBindingHelper.registerKeyBinding(PORTAL_GUN_GRAB);
KeyBindingHelper.registerKeyBinding(PORTAL_GUN_RESET);
}
public static boolean isBrutalflyFlapPressed() {
@@ -84,4 +105,20 @@ public final class AntarchyKeyBindings {
public static boolean consumeRoyalBoundaryPressed() {
return Minecraft.getInstance().screen == null && ROYAL_BOUNDARY.consumeClick();
}
public static boolean consumePortalGunZoomPressed() {
return Minecraft.getInstance().screen == null && PORTAL_GUN_ZOOM.consumeClick();
}
public static boolean consumePortalGunGrabPressed() {
return Minecraft.getInstance().screen == null && PORTAL_GUN_GRAB.consumeClick();
}
public static boolean consumePortalGunResetPressed() {
return Minecraft.getInstance().screen == null && PORTAL_GUN_RESET.consumeClick();
}
public static boolean isPortalGunResetDown() {
return Minecraft.getInstance().screen == null && (PORTAL_GUN_RESET.isDown() || PORTAL_GUN_RESET.consumeClick());
}
}
@@ -1,7 +1,9 @@
package com.craisinlord.antarchy.fabric.client;
import com.craisinlord.antarchy.content.item.PortalGunItem;
import com.craisinlord.antarchy.content.client.PortalGunZoomClientState;
import com.craisinlord.antarchy.content.network.PortalGunPrimaryPayload;
import com.craisinlord.antarchy.content.network.PortalGunGrabPayload;
import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents;
import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking;
import net.minecraft.client.Minecraft;
@@ -17,19 +19,39 @@ public final class PortalGunClientHandler {
}
private static void tickMouse(Minecraft mc) {
if (mc.player == null) {
com.craisinlord.antarchy.content.client.PortalGunGrabClientState.clear();
com.craisinlord.antarchy.content.client.PortalGunResetClientState.clear();
}
boolean hasPortalGun = mc.player != null && (mc.player.getMainHandItem().getItem() instanceof PortalGunItem || mc.player.getOffhandItem().getItem() instanceof PortalGunItem);
boolean gameplayInput = mc.screen == null;
boolean held = hasPortalGun && gameplayInput;
boolean zoomPressed = AntarchyKeyBindings.consumePortalGunZoomPressed();
PortalGunZoomClientState.tick(mc, hasPortalGun, zoomPressed && gameplayInput);
boolean resetActive = com.craisinlord.antarchy.content.client.PortalGunResetClientState.tick(
mc,
held,
AntarchyKeyBindings.isPortalGunResetDown(),
ClientPlayNetworking::send
);
if (held && AntarchyKeyBindings.consumePortalGunGrabPressed()) {
ClientPlayNetworking.send(new PortalGunGrabPayload());
}
if (mc.player == null || mc.level == null || mc.screen != null) {
lastAttackDown = false;
return;
}
if (!(mc.player.getMainHandItem().getItem() instanceof PortalGunItem)) {
boolean offhand = !(mc.player.getMainHandItem().getItem() instanceof PortalGunItem)
&& mc.player.getOffhandItem().getItem() instanceof PortalGunItem;
if (!offhand && !(mc.player.getMainHandItem().getItem() instanceof PortalGunItem)) {
lastAttackDown = false;
return;
}
boolean attackDown = mc.options.keyAttack.isDown();
if (attackDown && !lastAttackDown) {
ClientPlayNetworking.send(new PortalGunPrimaryPayload());
if (attackDown && !lastAttackDown && !resetActive) {
ClientPlayNetworking.send(new PortalGunPrimaryPayload(offhand));
}
lastAttackDown = attackDown;
}
@@ -42,6 +42,11 @@ public final class AntarchyFabricClientNetworking {
ClientPlayNetworking.registerGlobalReceiver(AntarchyGameResultPayload.TYPE, (payload, context) ->
context.client().execute(() -> com.craisinlord.antarchy.content.client.AntarchyGameClientState.update(payload)));
com.craisinlord.antarchy.content.network.AntarchyGameNetworking.setSender(ClientPlayNetworking::send);
com.craisinlord.antarchy.content.client.PortalGunIndicatorClientState.setRequestSender(ClientPlayNetworking::send);
ClientPlayNetworking.registerGlobalReceiver(PortalGunIndicatorPayload.TYPE, (payload, context) ->
context.client().execute(() -> com.craisinlord.antarchy.content.client.PortalGunIndicatorClientState.update(payload)));
ClientPlayNetworking.registerGlobalReceiver(PortalGunGrabStatePayload.TYPE, (payload, context) ->
context.client().execute(() -> com.craisinlord.antarchy.content.client.PortalGunGrabClientState.update(payload.active())));
ClientPlayNetworking.registerGlobalReceiver(GravityStatePayload.TYPE, (payload, context) ->
context.client().execute(() -> AntarchyFabricNetworking.handleGravityState(context.player(), payload)));
ClientPlayNetworking.registerGlobalReceiver(BloodglassStatePayload.TYPE, (payload, context) ->
@@ -49,6 +49,8 @@ public final class AntarchyFabricNetworking {
registerPayloadTypes();
registerServerReceivers();
com.craisinlord.antarchy.content.network.AntarchyGameNetworkHandler.setResultSender(ServerPlayNetworking::send);
com.craisinlord.antarchy.content.portalgun.PortalGunIndicatorSync.setSender(ServerPlayNetworking::send);
com.craisinlord.antarchy.content.portalgun.PortalGunGrabManager.setStateSender(ServerPlayNetworking::send);
}
public static void bootstrapMultipartCommon() {
@@ -73,6 +75,8 @@ public final class AntarchyFabricNetworking {
private static void registerPayloadTypes() {
PayloadTypeRegistry.playS2C().register(AntarchyGameResultPayload.TYPE, AntarchyGameResultPayload.STREAM_CODEC);
PayloadTypeRegistry.playS2C().register(PortalGunIndicatorPayload.TYPE, PortalGunIndicatorPayload.STREAM_CODEC);
PayloadTypeRegistry.playS2C().register(PortalGunGrabStatePayload.TYPE, PortalGunGrabStatePayload.STREAM_CODEC);
PayloadTypeRegistry.playS2C().register(GravityStatePayload.TYPE, GravityStatePayload.STREAM_CODEC);
PayloadTypeRegistry.playS2C().register(BloodglassStatePayload.TYPE, BloodglassStatePayload.STREAM_CODEC);
PayloadTypeRegistry.playS2C().register(TigerEyeCamouflageStatePayload.TYPE, TigerEyeCamouflageStatePayload.STREAM_CODEC);
@@ -88,6 +92,9 @@ public final class AntarchyFabricNetworking {
PayloadTypeRegistry.playC2S().register(GravityGunPrimaryPayload.TYPE, GravityGunPrimaryPayload.STREAM_CODEC);
PayloadTypeRegistry.playC2S().register(PortalGunPrimaryPayload.TYPE, PortalGunPrimaryPayload.STREAM_CODEC);
PayloadTypeRegistry.playC2S().register(PortalGunIndicatorRequestPayload.TYPE, PortalGunIndicatorRequestPayload.STREAM_CODEC);
PayloadTypeRegistry.playC2S().register(PortalGunGrabPayload.TYPE, PortalGunGrabPayload.STREAM_CODEC);
PayloadTypeRegistry.playC2S().register(PortalGunResetPayload.TYPE, PortalGunResetPayload.STREAM_CODEC);
PayloadTypeRegistry.playC2S().register(EyeOfStormPrimaryPayload.TYPE, EyeOfStormPrimaryPayload.STREAM_CODEC);
PayloadTypeRegistry.playC2S().register(OpenGiantFryingPanPayload.TYPE, OpenGiantFryingPanPayload.STREAM_CODEC);
PayloadTypeRegistry.playC2S().register(RoyalMountActionPayload.TYPE, RoyalMountActionPayload.STREAM_CODEC);
@@ -121,6 +128,12 @@ public final class AntarchyFabricNetworking {
context.server().execute(() -> handleGravityGunPrimary(context.player(), payload)));
ServerPlayNetworking.registerGlobalReceiver(PortalGunPrimaryPayload.TYPE, (payload, context) ->
context.server().execute(() -> handlePortalGunPrimary(context.player(), payload)));
ServerPlayNetworking.registerGlobalReceiver(PortalGunIndicatorRequestPayload.TYPE, (payload, context) ->
context.server().execute(() -> com.craisinlord.antarchy.content.portalgun.PortalGunIndicatorSync.handleRequest(context.player(), payload)));
ServerPlayNetworking.registerGlobalReceiver(PortalGunGrabPayload.TYPE, (payload, context) ->
context.server().execute(() -> com.craisinlord.antarchy.content.portalgun.PortalGunGrabManager.toggle(context.player())));
ServerPlayNetworking.registerGlobalReceiver(PortalGunResetPayload.TYPE, (payload, context) ->
context.server().execute(() -> com.craisinlord.antarchy.content.portalgun.PortalGunResetManager.handleInput(context.player(), payload.action())));
ServerPlayNetworking.registerGlobalReceiver(EyeOfStormPrimaryPayload.TYPE, (payload, context) ->
context.server().execute(() -> handleEyeOfStormPrimary(context.player(), payload)));
ServerPlayNetworking.registerGlobalReceiver(OpenGiantFryingPanPayload.TYPE, (payload, context) ->
@@ -260,10 +273,11 @@ public final class AntarchyFabricNetworking {
}
private static void handlePortalGunPrimary(ServerPlayer player, PortalGunPrimaryPayload payload) {
if (!(player.getMainHandItem().getItem() instanceof PortalGunItem portalGunItem)) {
ItemStack stack = payload.offhand() ? player.getOffhandItem() : player.getMainHandItem();
if (!(stack.getItem() instanceof PortalGunItem portalGunItem)) {
return;
}
portalGunItem.firePrimary(player.serverLevel(), player, player.getMainHandItem());
portalGunItem.firePrimary(player.serverLevel(), player, stack, payload.offhand());
}
private static void handleRoyalMountAction(ServerPlayer player, RoyalMountActionPayload payload) {
@@ -344,6 +344,9 @@ public final class AntarchyFabricSounds {
public static final DeferredHolder<SoundEvent, SoundEvent> PORTAL_FIZZLE = registerSoundEvent("portal_fizzle");
public static final DeferredHolder<SoundEvent, SoundEvent> PORTAL_ENTER = registerSoundEvent("portal_enter");
public static final DeferredHolder<SoundEvent, SoundEvent> PORTAL_EXIT = registerSoundEvent("portal_exit");
public static final DeferredHolder<SoundEvent, SoundEvent> PORTAL_AMBIENT = registerSoundEvent("portal_ambient");
public static final DeferredHolder<SoundEvent, SoundEvent> BED_BUG_AMBIENT = registerSoundEvent("bed_bug_ambient");
@@ -67,7 +67,7 @@ public final class AntarchyFabricSpawnPlacements {
SpawnPlacements.register(AntarchyFabricEntities.VORTEX.get(), SpawnPlacementTypes.NO_RESTRICTIONS, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, com.craisinlord.antarchy.content.entity.vortex.VortexEntity::canSpawn);
SpawnPlacements.register(AntarchyFabricEntities.SCORPION.get(), SpawnPlacementTypes.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, ScorpionEntity::canSpawn);
SpawnPlacements.register(AntarchyFabricEntities.BASILISK.get(), SpawnPlacementTypes.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, BasiliskEntity::canSpawn);
SpawnPlacements.register(AntarchyFabricEntities.EMPEROR_SCORPION.get(), SpawnPlacementTypes.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, EmperorScorpionEntity::canSpawn);
SpawnPlacements.register(AntarchyFabricEntities.EMPEROR_SCORPION.get(), SpawnPlacementTypes.NO_RESTRICTIONS, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, EmperorScorpionEntity::canSpawn);
SpawnPlacements.register(AntarchyFabricEntities.TORETERROR.get(), SpawnPlacementTypes.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, ToreterrorEntity::canSpawn);
SpawnPlacements.register(AntarchyFabricEntities.CRAWLING_BLIGHT.get(), SpawnPlacementTypes.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, com.craisinlord.antarchy.content.entity.CrawlingBlightEntity::canSpawn);
SpawnPlacements.register(AntarchyFabricEntities.SKULKING_FRIGHT.get(), SpawnPlacementTypes.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, com.craisinlord.antarchy.content.entity.SkulkingFrightEntity::canSpawn);
@@ -28,6 +28,7 @@
},
"mixins": [
"antarchy-common.mixins.json",
"antarchy-sodium.mixins.json",
"antarchy-fabric.mixins.json"
],
"depends": {
@@ -42,7 +43,9 @@
"sizeable_foliage": "*"
},
"breaks": {
"infinity": "<2.7.3"
"infinity": "<2.7.3",
"apple_cows": "*",
"hoverboards": "*"
},
"suggests": {
"modmenu": "*",