ruined arena

new ant sacrifice portals
dorrie overhaul
new foliage in overworld biomes
This commit is contained in:
craisinlord committed 2026-07-08 01:35:41 -05:00
1 parent ae76303716
commit 4e67661448
92 files changed
+5802 -2512

No files matched your search

@@ -333,6 +333,10 @@ public final class AntarchyConfigModuleNeoforge {
AntarchySettings.setDiamondMinecartCoastDeceleration(AntarchyMiscConfig.diamondMinecartCoastDeceleration());
AntarchySettings.setDiamondMinecartMobDamageEnabled(AntarchyMiscConfig.diamondMinecartMobDamageEnabled());
AntarchySettings.setDiamondMinecartMaxMobDamage(AntarchyMiscConfig.diamondMinecartMaxMobDamage());
AntarchySettings.setPermanentPortalsEnabled(AntarchyMiscConfig.permanentPortalsEnabled());
AntarchySettings.setElythiaPortalEnabled(AntarchyMiscConfig.elythiaPortalEnabled());
AntarchySettings.setThoraxisPortalEnabled(AntarchyMiscConfig.thoraxisPortalEnabled());
AntarchySettings.setCavarynPortalEnabled(AntarchyMiscConfig.cavarynPortalEnabled());
// Misc
@@ -25,6 +25,12 @@ public final class AntarchyMiscConfig {
private static final ModConfigSpec.BooleanValue DISABLE_INFINITY_BOOK_PORTAL_CREATION;
private static final ModConfigSpec.BooleanValue RAINBOW_ANTS_LEAD_TO_INFINITY_DIMENSIONS;
// Permanent portals
private static final ModConfigSpec.BooleanValue PERMANENT_PORTALS_ENABLED;
private static final ModConfigSpec.BooleanValue ELYTHIA_PORTAL_ENABLED;
private static final ModConfigSpec.BooleanValue THORAXIS_PORTAL_ENABLED;
private static final ModConfigSpec.BooleanValue CAVARYN_PORTAL_ENABLED;
// Diamond Minecart
private static final ModConfigSpec.BooleanValue DIAMOND_MINECART_ENABLED;
private static final ModConfigSpec.BooleanValue DIAMOND_MINECART_PLACES_RAILS;
@@ -100,6 +106,16 @@ public final class AntarchyMiscConfig {
b.pop();
// Permanent Portals
b.push("permanentPortals");
PERMANENT_PORTALS_ENABLED = b.comment("Master toggle for sacrifice-activated permanent portals.").define("permanentPortalsEnabled", true);
ELYTHIA_PORTAL_ENABLED = b.comment("Whether mossy ouranwood wood portals to Elythia can activate and function.").define("elythiaPortalEnabled", true);
THORAXIS_PORTAL_ENABLED = b.comment("Whether Nyxite portals to Thoraxis can activate and function.").define("thoraxisPortalEnabled", true);
CAVARYN_PORTAL_ENABLED = b.comment("Whether Myrmite portals to Cavaryn can activate and function.").define("cavarynPortalEnabled", true);
b.pop();
// Diamond Minecart
b.push("diamondMinecart");
@@ -150,6 +166,10 @@ 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(); }
public static boolean permanentPortalsEnabled() { return PERMANENT_PORTALS_ENABLED.get(); }
public static boolean elythiaPortalEnabled() { return ELYTHIA_PORTAL_ENABLED.get(); }
public static boolean thoraxisPortalEnabled() { return THORAXIS_PORTAL_ENABLED.get(); }
public static boolean cavarynPortalEnabled() { return CAVARYN_PORTAL_ENABLED.get(); }
static boolean diamondMinecartEnabled() { return DIAMOND_MINECART_ENABLED.get(); }
static boolean diamondMinecartPlacesRails() { return DIAMOND_MINECART_PLACES_RAILS.get(); }
@@ -7,6 +7,7 @@ import com.craisinlord.antarchy.content.AntarchySoundEvents;
import com.craisinlord.antarchy.content.item.BloodCrystalKatanaItem;
import com.craisinlord.antarchy.content.item.ScorpionWhipTetherSync;
import com.craisinlord.antarchy.content.network.BloodCrystalKatanaTrailPayload;
import com.craisinlord.antarchy.content.portal.PermanentPortalType;
import com.craisinlord.antarchy.neoforge.registry.*;
import com.craisinlord.antarchy.neoforge.network.AntarchyGravityNetworking;
import net.neoforged.bus.api.IEventBus;
@@ -183,6 +184,14 @@ public class AntarchyNeoforge {
}
private static void bindCommonObjects() {
PermanentPortalType.bindBlocks(
() -> AntarchyNeoforgeBlocks.MOSSY_OURANWOOD_WOOD.get(),
() -> AntarchyNeoforgeBlocks.ELYTHIA_PORTAL.get(),
() -> AntarchyNeoforgeBlocks.NYXITE.get(),
() -> AntarchyNeoforgeBlocks.THORAXIS_PORTAL.get(),
() -> AntarchyNeoforgeBlocks.MYRMITE.get(),
() -> AntarchyNeoforgeBlocks.CAVARYN_PORTAL.get()
);
AntarchyObjects.bind(
AntarchyNeoforgeEntites.EASTER_BUNNY,
AntarchyNeoforgeEntites.FLYING_SQUIRREL,
@@ -433,6 +433,8 @@ public final class AntarchyNeoForgeClient {
ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.OURANWOOD_DOOR.get(), RenderType.cutout());
ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.OURANWOOD_TRAPDOOR.get(), RenderType.cutout());
ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.OURANWOOD_ACORN_BLOCK.get(), RenderType.cutout());
// ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.OURANWOOD_VINE.get(), RenderType.cutout());
// ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.OURANWOOD_VINE_PLANT.get(), RenderType.cutout());
ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.DUPLICATOR_SAPLING.get(), RenderType.cutout());
ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.ORANGE_MILKWEED.get(), RenderType.cutout());
ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.PINK_MILKWEED.get(), RenderType.cutout());
@@ -462,6 +464,9 @@ public final class AntarchyNeoForgeClient {
ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.DREAM_FIRE.get(), RenderType.cutout());
ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.DREAM_CEILING_FIRE.get(), RenderType.cutout());
ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.ANTIWATER_BLOCK.get(), RenderType.translucent());
ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.ELYTHIA_PORTAL.get(), RenderType.translucent());
ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.THORAXIS_PORTAL.get(), RenderType.translucent());
ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.CAVARYN_PORTAL.get(), RenderType.translucent());
ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.TRIFFID_GOO_BLOCK.get(), RenderType.translucent());
ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.URANIUM_DOOR.get(), RenderType.cutout());
ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.TITANIUM_DOOR.get(), RenderType.cutout());
@@ -18,6 +18,7 @@ import com.craisinlord.antarchy.content.item.*;
import com.craisinlord.antarchy.content.item.ultimate.UltimateGearHelper;
import com.craisinlord.antarchy.content.movement.DreamSandLowGravityAccess;
import com.craisinlord.antarchy.content.AntarchyTags;
import com.craisinlord.antarchy.content.portal.PermanentPortalManager;
import com.craisinlord.antarchy.neoforge.AntarchyNeoForgeFluidTypes;
import com.craisinlord.antarchy.neoforge.entity.multipart.MultipartPartEntity;
import com.craisinlord.antarchy.neoforge.network.AntarchyGravityNetworking;
@@ -65,6 +66,7 @@ public final class AntarchyNeoForgeEvents {
public static void register(IEventBus modEventBus) {
modEventBus.addListener(AntarchyNeoForgeEvents::onCommonSetup);
NeoForge.EVENT_BUS.addListener(AntarchyNeoForgeEvents::onMissileSquidDeath);
NeoForge.EVENT_BUS.addListener(AntarchyNeoForgeEvents::onPermanentPortalSacrifice);
NeoForge.EVENT_BUS.addListener(AntarchyNeoForgeEvents::onLivingBreathe);
NeoForge.EVENT_BUS.addListener(AntarchyNeoForgeEvents::registerBrewingRecipes);
NeoForge.EVENT_BUS.addListener(AntarchyNeoForgeEvents::handleNaturalRabbitReplacement);
@@ -132,6 +134,10 @@ public final class AntarchyNeoForgeEvents {
}
}
public static void onPermanentPortalSacrifice(LivingDeathEvent event) {
PermanentPortalManager.handleSacrifice(event.getEntity());
}
public static void onLivingBreathe(LivingBreatheEvent event) {
if (!(event.getEntity() instanceof Player)) {
return;
@@ -12,6 +12,7 @@ import com.craisinlord.antarchy.content.block.entity.HushweedBlockEntity;
import com.craisinlord.antarchy.content.block.entity.PotentNyxiteBlockEntity;
import com.craisinlord.antarchy.content.block.entity.WaspNestBlockEntity;
import com.craisinlord.antarchy.content.fluid.BileLiquidBlock;
import com.craisinlord.antarchy.content.portal.PermanentPortalType;
import com.craisinlord.antarchy.neoforge.OuranwoodWoodTypes;
import com.craisinlord.antarchy.neoforge.content.fluid.AntiwaterFluidType;
import com.mojang.serialization.MapCodec;
@@ -37,6 +38,8 @@ import net.neoforged.neoforge.registries.DeferredRegister;
public final class AntarchyNeoforgeBlocks {
private static final DeferredRegister.Blocks BLOCKS = DeferredRegister.createBlocks(Antarchy.MODID);
private static final DeferredRegister<BlockEntityType<?>> BLOCK_ENTITY_TYPES = DeferredRegister.create(Registries.BLOCK_ENTITY_TYPE, Antarchy.MODID);
// private static final OuranwoodVineBlock OURANWOOD_VINE_INSTANCE = new OuranwoodVineBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.WEEPING_VINES).lightLevel(state -> 12));
// private static final OuranwoodVinePlantBlock OURANWOOD_VINE_PLANT_INSTANCE = createOuranwoodVinePlant();
public static final DeferredBlock<DuplicatorLogBlock> DUPLICATOR_LOG = BLOCKS.register("duplicator_log",
() -> new DuplicatorLogBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.OAK_LOG).randomTicks()));
@@ -74,6 +77,10 @@ public final class AntarchyNeoforgeBlocks {
() -> new OuranwoodLeavesBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.JUNGLE_LEAVES).randomTicks()));
public static final DeferredBlock<OuranwoodAcornBlock> OURANWOOD_ACORN_BLOCK = BLOCKS.register("ouranwood_acorn",
() -> new OuranwoodAcornBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.OAK_SAPLING).randomTicks().noCollission()));
// public static final DeferredBlock<OuranwoodVineBlock> OURANWOOD_VINE = BLOCKS.register("ouranwood_vine",
// () -> OURANWOOD_VINE_INSTANCE);
// public static final DeferredBlock<OuranwoodVinePlantBlock> OURANWOOD_VINE_PLANT = BLOCKS.register("ouranwood_vine_plant",
// () -> OURANWOOD_VINE_PLANT_INSTANCE);
public static final DeferredBlock<MilkweedBlock> ORANGE_MILKWEED = BLOCKS.register("orange_milkweed",
() -> new MilkweedBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.PEONY)));
public static final DeferredBlock<MilkweedBlock> PINK_MILKWEED = BLOCKS.register("pink_milkweed",
@@ -191,6 +198,12 @@ public final class AntarchyNeoforgeBlocks {
AntarchyNeoforgeItems::cloudBucketItem,
BlockBehaviour.Properties.ofFullCopy(Blocks.POWDER_SNOW).noLootTable().noOcclusion()
));
public static final DeferredBlock<AntDimensionPortalBlock> ELYTHIA_PORTAL = BLOCKS.register("elythia_portal",
() -> new AntDimensionPortalBlock(PermanentPortalType.ELYTHIA, portalProperties()));
public static final DeferredBlock<AntDimensionPortalBlock> THORAXIS_PORTAL = BLOCKS.register("thoraxis_portal",
() -> new AntDimensionPortalBlock(PermanentPortalType.THORAXIS, portalProperties()));
public static final DeferredBlock<AntDimensionPortalBlock> CAVARYN_PORTAL = BLOCKS.register("cavaryn_portal",
() -> new AntDimensionPortalBlock(PermanentPortalType.CAVARYN, portalProperties()));
public static final DeferredBlock<Block> PALE_NYXITE = BLOCKS.register("pale_nyxite",
() -> new Block(nyxiteProperties()));
public static final DeferredBlock<NyxiteSpikeBlock> NYXITE_SPIKE = BLOCKS.register("nyxite_spike",
@@ -419,6 +432,17 @@ public final class AntarchyNeoforgeBlocks {
return BlockBehaviour.Properties.ofFullCopy(Blocks.NETHERRACK);
}
private static BlockBehaviour.Properties portalProperties() {
return BlockBehaviour.Properties.of()
.strength(-1.0F)
.noCollission()
.noOcclusion()
.lightLevel(state -> 11)
.noLootTable()
.isSuffocating((state, level, pos) -> false)
.isViewBlocking((state, level, pos) -> false);
}
private static Block createOre(Block copyFrom, int minExperience, int maxExperience) {
return new DropExperienceBlock(UniformInt.of(minExperience, maxExperience), BlockBehaviour.Properties.ofFullCopy(copyFrom).requiresCorrectToolForDrops());
}
@@ -453,6 +477,13 @@ public final class AntarchyNeoforgeBlocks {
return BLOOD_CRYSTAL_CRYSTAL.get();
}
// private static OuranwoodVinePlantBlock createOuranwoodVinePlant() {
// OuranwoodVinePlantBlock.bindHeadBlock(OURANWOOD_VINE_INSTANCE);
// OuranwoodVinePlantBlock block = new OuranwoodVinePlantBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.WEEPING_VINES_PLANT));
// OuranwoodVineBlock.bindBodyBlock(block);
// return block;
// }
private static final class SimpleHorizontalFacingBlock extends HorizontalDirectionalBlock {
private static final MapCodec<SimpleHorizontalFacingBlock> CODEC = simpleCodec(SimpleHorizontalFacingBlock::new);
@@ -91,6 +91,7 @@ public class AntarchyNeoforgeCreativeModeTabs {
if (event.getTabKey() == CreativeModeTabs.NATURAL_BLOCKS) {
event.accept(AntarchyNeoforgeItems.OURANWOOD_LEAVES_ITEM.get());
event.accept(AntarchyNeoforgeItems.OURANWOOD_ACORN.get());
// event.accept(AntarchyNeoforgeItems.OURANWOOD_VINE_ITEM.get());
event.accept(AntarchyNeoforgeItems.DUPLICATOR_LOG_ITEM.get());
event.accept(AntarchyNeoforgeItems.DUPLICATOR_SAPLING_ITEM.get());
event.accept(AntarchyNeoforgeItems.ORANGE_MILKWEED_ITEM.get());
@@ -158,6 +158,7 @@ public final class AntarchyNeoforgeItems {
public static final DeferredItem<net.minecraft.world.item.BlockItem> OURANWOOD_BUTTON_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.OURANWOOD_BUTTON);
public static final DeferredItem<net.minecraft.world.item.BlockItem> OURANWOOD_LEAVES_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.OURANWOOD_LEAVES);
public static final DeferredItem<net.minecraft.world.item.BlockItem> OURANWOOD_ACORN = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.OURANWOOD_ACORN_BLOCK);
// public static final DeferredItem<net.minecraft.world.item.BlockItem> OURANWOOD_VINE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.OURANWOOD_VINE);
public static final DeferredItem<net.minecraft.world.item.BlockItem> ORANGE_MILKWEED_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.ORANGE_MILKWEED);
public static final DeferredItem<net.minecraft.world.item.BlockItem> PINK_MILKWEED_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.PINK_MILKWEED);
public static final DeferredItem<net.minecraft.world.item.BlockItem> TORCHFLOWER_BUSH_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.TORCHFLOWER_BUSH);
@@ -22,6 +22,8 @@ import com.craisinlord.antarchy.content.worldgen.cavaryn.ChitenSpikeConfiguratio
import com.craisinlord.antarchy.content.worldgen.cavaryn.ChitenSpikeFeature;
import com.craisinlord.antarchy.content.worldgen.elythia.*;
import com.craisinlord.antarchy.content.worldgen.thoraxis.*;
import com.craisinlord.antarchy.content.worldgen.VeryTallGrassWorldgenFeature;
import com.craisinlord.antarchy.content.worldgen.BigBushWorldgenFeature;
import com.craisinlord.antarchy.neoforge.content.fluid.AntiwaterFluid;
import com.craisinlord.antarchy.neoforge.content.fluid.AntiwaterFluidType;
import com.mojang.serialization.MapCodec;
@@ -213,6 +215,12 @@ public final class AntarchyNeoforgeMisc {
() -> new ElythiaFloraFeature(NoneFeatureConfiguration.CODEC, ElythiaFloraFeature.Variant.TORCHFLOWER_FIELDS));
public static final DeferredHolder<Feature<?>, ElythiaSurfaceCoverFeature> ELYTHIA_SURFACE_COVER = FEATURES.register("elythia_surface_cover",
() -> new ElythiaSurfaceCoverFeature(NoneFeatureConfiguration.CODEC));
public static final DeferredHolder<Feature<?>, VeryTallGrassWorldgenFeature> VERY_TALL_GRASS_FEATURE = FEATURES.register("very_tall_grass",
() -> new VeryTallGrassWorldgenFeature(NoneFeatureConfiguration.CODEC));
public static final DeferredHolder<Feature<?>, BigBushWorldgenFeature> BIG_BUSH_2X2_FEATURE = FEATURES.register("big_bush_2x2",
() -> new BigBushWorldgenFeature(NoneFeatureConfiguration.CODEC, 1));
public static final DeferredHolder<Feature<?>, BigBushWorldgenFeature> BIG_BUSH_3X3_FEATURE = FEATURES.register("big_bush_3x3",
() -> new BigBushWorldgenFeature(NoneFeatureConfiguration.CODEC, 2));
public static final DeferredHolder<Feature<?>, ElythiaUndergroundFeature> ELYTHIA_UNDERGROUND = FEATURES.register("elythia_underground",
() -> new ElythiaUndergroundFeature(NoneFeatureConfiguration.CODEC));
public static final DeferredHolder<Feature<?>, BrutalflyCocoonFeature> BRUTALFLY_COCOON = FEATURES.register("brutalfly_cocoon",
@@ -0,0 +1,8 @@
{
"type": "neoforge:add_features",
"biomes": "#antarchy:big_bush_spawn_biomes",
"features": [
"antarchy:big_bush"
],
"step": "vegetal_decoration"
}
@@ -0,0 +1,8 @@
{
"type": "neoforge:add_features",
"biomes": "#antarchy:big_bush_2x2_spawn_biomes",
"features": [
"antarchy:big_bush_2x2"
],
"step": "vegetal_decoration"
}
@@ -0,0 +1,8 @@
{
"type": "neoforge:add_features",
"biomes": "#antarchy:mega_taiga_spawn_biomes",
"features": [
"antarchy:big_bush_3x3"
],
"step": "vegetal_decoration"
}
@@ -0,0 +1,8 @@
{
"type": "neoforge:add_features",
"biomes": "#antarchy:very_short_grass_spawn_biomes",
"features": [
"antarchy:very_short_grass"
],
"step": "vegetal_decoration"
}
@@ -0,0 +1,8 @@
{
"type": "neoforge:add_features",
"biomes": "#antarchy:very_tall_grass_spawn_biomes",
"features": [
"antarchy:very_tall_grass"
],
"step": "vegetal_decoration"
}