updated spirit apple texture

fixed tigers eye shrine broken
credit russian lang
fixed queen music handler
fixed permanent portals not placing corners and not finding exisitng portals
fixed keybind conflict sprint conflicts
added back cloud sea
This commit is contained in:
craisinlord committed 2026-09-21 18:47:14 -05:00
1 parent 93e2adbe12
commit 6e12612559
30 files changed
+460 -452

No files matched your search

+6 -4
View File
@@ -46,9 +46,8 @@ neoForge {
}
dependencies {
// AntOS is developed beside Antarchy as a separate local project.
compileOnly(files("$rootDir/../AntOS/neoforge-1.21.1/build/libs/antos-neoforge-1.21.1-1.0.1.jar"))
runtimeOnly(files("$rootDir/../AntOS/neoforge-1.21.1/build/libs/antos-neoforge-1.21.1-1.0.1.jar"))
compileOnly("curse.maven:antos-${antos_curseforge_id}:${antos_curseforge_file_id_neoforge}")
runtimeOnly("curse.maven:antos-${antos_curseforge_id}:${antos_curseforge_file_id_neoforge}")
compileOnly("curse.maven:intapi-${intapi_curseforge_id}:${intapi_curseforge_file_id_neoforge}")
runtimeOnly("curse.maven:intapi-${intapi_curseforge_id}:${intapi_curseforge_file_id_neoforge}")
implementation "software.bernie.geckolib:geckolib-neoforge-1.21.1:${geckolib_version}"
@@ -79,7 +78,10 @@ dependencies {
tasks.withType(ProcessResources).configureEach {
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
var replaceProperties = [version: project.version]
var replaceProperties = [
version: project.version,
architectury_api_version: architectury_api_version
]
inputs.properties replaceProperties
filesMatching('META-INF/neoforge.mods.toml') {
@@ -993,8 +993,8 @@ public final class AntarchyMobsConfig {
b.pop();
b.push("manticore");
MANTICORE_HEALTH = b.comment("Base max health.").defineInRange("health", 40.0D, 1.0D, 32768.0D);
MANTICORE_ATTACK_DAMAGE = b.comment("Base attack damage for bites and stings.").defineInRange("attackDamage", 7.0D, 0.0D, 1024.0D);
MANTICORE_HEALTH = b.comment("Base max health.").defineInRange("health", 60.0D, 1.0D, 32768.0D);
MANTICORE_ATTACK_DAMAGE = b.comment("Base attack damage for bites and stings.").defineInRange("attackDamage", 11.0D, 0.0D, 1024.0D);
MANTICORE_STING_POISON_TICKS = b.comment("Poison duration in ticks applied by a Manticore sting.").defineInRange("stingPoisonTicks", 100, 0, 12000);
QUEEN_MANTICORE_CAP = b.comment("Maximum number of living Manticores a single Queen may keep summoned.").defineInRange("queenSummonCap", 6, 1, 200);
QUEEN_MANTICORE_SUMMON_COOLDOWN_TICKS = b.comment("Ticks between Queen Manticore summon attempts.").defineInRange("queenSummonCooldownTicks", 800, 20, 200000);
@@ -83,6 +83,8 @@ public final class AntarchyNeoForgeClient {
private static final ResourceLocation NADIR_CHEST_BOAT_TEXTURE = ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "textures/entity/chest_boat/nadir.png");
private static final ResourceLocation ROYAL_BOAT_TEXTURE = ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "textures/entity/boat/royal.png");
private static final ResourceLocation ROYAL_CHEST_BOAT_TEXTURE = ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "textures/entity/chest_boat/royal.png");
private static final ResourceLocation TRUFFALO_BOAT_TEXTURE = ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "textures/entity/boat/truffalo.png");
private static final ResourceLocation TRUFFALO_CHEST_BOAT_TEXTURE = ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "textures/entity/chest_boat/truffalo.png");
private static final ResourceLocation WATER_STILL = ResourceLocation.withDefaultNamespace("block/water_still");
private static final ResourceLocation WATER_FLOW = ResourceLocation.withDefaultNamespace("block/water_flow");
private static final ResourceLocation WATER_OVERLAY = ResourceLocation.withDefaultNamespace("block/water_overlay");
@@ -134,6 +136,8 @@ public final class AntarchyNeoForgeClient {
event.registerEntityRenderer(AntarchyNeoforgeEntites.NADIR_CHEST_BOAT_ENTITY.get(), context -> new PeachBoatRenderer<>(context, NADIR_CHEST_BOAT_TEXTURE, true));
event.registerEntityRenderer(AntarchyNeoforgeEntites.ROYAL_BOAT_ENTITY.get(), context -> new PeachBoatRenderer<>(context, ROYAL_BOAT_TEXTURE, false));
event.registerEntityRenderer(AntarchyNeoforgeEntites.ROYAL_CHEST_BOAT_ENTITY.get(), context -> new PeachBoatRenderer<>(context, ROYAL_CHEST_BOAT_TEXTURE, true));
event.registerEntityRenderer(AntarchyNeoforgeEntites.TRUFFALO_BOAT_ENTITY.get(), context -> new PeachBoatRenderer<>(context, TRUFFALO_BOAT_TEXTURE, false));
event.registerEntityRenderer(AntarchyNeoforgeEntites.TRUFFALO_CHEST_BOAT_ENTITY.get(), context -> new PeachBoatRenderer<>(context, TRUFFALO_CHEST_BOAT_TEXTURE, true));
event.registerEntityRenderer(AntarchyNeoforgeEntites.APPLE_COW.get(), context -> withParalyzedGeoLayer(new AppleCowRenderer(context)));
event.registerEntityRenderer(AntarchyNeoforgeEntites.GOLDEN_APPLE_COW.get(), context -> withParalyzedGeoLayer(new AppleCowRenderer(context)));
event.registerEntityRenderer(AntarchyNeoforgeEntites.ENCHANTED_GOLDEN_APPLE_COW.get(), context -> withParalyzedGeoLayer(new AppleCowRenderer(context)));
@@ -0,0 +1,117 @@
package com.craisinlord.antarchy.neoforge.client;
import com.craisinlord.antarchy.Antarchy;
import com.craisinlord.antarchy.content.AntarchySoundEvents;
import com.craisinlord.antarchy.content.entity.portal.DimensionalTearEntity;
import net.minecraft.client.Minecraft;
import net.minecraft.client.resources.sounds.AbstractTickableSoundInstance;
import net.minecraft.sounds.SoundSource;
import net.neoforged.api.distmarker.Dist;
import net.neoforged.bus.api.SubscribeEvent;
import net.neoforged.fml.common.EventBusSubscriber;
import net.neoforged.neoforge.client.event.ClientTickEvent;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.UUID;
@EventBusSubscriber(modid = Antarchy.MODID, value = Dist.CLIENT)
public final class TearIdleSoundHandler {
private static final double START_SCAN_RADIUS = 64.0D;
private static final int DISCOVERY_SCAN_INTERVAL_TICKS = 10;
private static final Map<UUID, TearIdleSound> ACTIVE_LOOPS = new HashMap<>();
private static long nextDiscoveryScanTick;
private TearIdleSoundHandler() {
}
@SubscribeEvent
public static void onClientTick(ClientTickEvent.Post event) {
Minecraft mc = Minecraft.getInstance();
if (mc.level == null || mc.player == null || mc.isPaused()) {
resetAll(mc);
return;
}
pruneStaleLoops(mc);
long gameTime = mc.level.getGameTime();
if (gameTime >= nextDiscoveryScanTick) {
nextDiscoveryScanTick = gameTime + DISCOVERY_SCAN_INTERVAL_TICKS;
discoverNearbyTears(mc);
}
}
private static void discoverNearbyTears(Minecraft mc) {
List<DimensionalTearEntity> tears = mc.level.getEntitiesOfClass(
DimensionalTearEntity.class,
mc.player.getBoundingBox().inflate(START_SCAN_RADIUS)
);
for (DimensionalTearEntity tear : tears) {
if (!tear.shouldPlayIdleSound() || ACTIVE_LOOPS.containsKey(tear.getUUID())) {
continue;
}
TearIdleSound sound = new TearIdleSound(tear);
ACTIVE_LOOPS.put(tear.getUUID(), sound);
mc.getSoundManager().play(sound);
}
}
private static void pruneStaleLoops(Minecraft mc) {
Iterator<Map.Entry<UUID, TearIdleSound>> iterator = ACTIVE_LOOPS.entrySet().iterator();
while (iterator.hasNext()) {
TearIdleSound sound = iterator.next().getValue();
if (!sound.isValid()) {
mc.getSoundManager().stop(sound);
iterator.remove();
}
}
}
private static void resetAll(Minecraft mc) {
for (TearIdleSound sound : ACTIVE_LOOPS.values()) {
mc.getSoundManager().stop(sound);
}
ACTIVE_LOOPS.clear();
nextDiscoveryScanTick = 0L;
}
private static final class TearIdleSound extends AbstractTickableSoundInstance {
private final DimensionalTearEntity tear;
private TearIdleSound(DimensionalTearEntity tear) {
super(AntarchySoundEvents.DIMENSIONAL_TEAR_IDLE.get(), SoundSource.HOSTILE, tear.getRandom());
this.tear = tear;
this.looping = true;
this.delay = 0;
this.volume = 0.6F;
this.pitch = 1.0F;
this.x = tear.getX();
this.y = tear.getY();
this.z = tear.getZ();
}
private boolean isValid() {
return !this.tear.isRemoved() && this.tear.shouldPlayIdleSound();
}
@Override
public void tick() {
if (!this.isValid()) {
this.stop();
return;
}
this.x = this.tear.getX();
this.y = this.tear.getY();
this.z = this.tear.getZ();
}
@Override
public boolean canStartSilent() {
return true;
}
}
}
@@ -32,6 +32,7 @@ import net.minecraft.core.registries.Registries;
import net.minecraft.sounds.SoundEvent;
import net.minecraft.util.valueproviders.UniformInt;
import net.minecraft.world.item.context.BlockPlaceContext;
import net.minecraft.world.item.context.UseOnContext;
import net.minecraft.world.level.block.*;
import net.minecraft.world.level.block.entity.BlockEntityType;
import net.minecraft.world.level.block.state.BlockBehaviour;
@@ -43,6 +44,8 @@ import net.minecraft.world.level.block.state.properties.WoodType;
import net.minecraft.world.level.material.FlowingFluid;
import net.minecraft.world.level.material.FluidState;
import net.neoforged.bus.api.IEventBus;
import net.neoforged.neoforge.common.ItemAbilities;
import net.neoforged.neoforge.common.ItemAbility;
import net.neoforged.neoforge.fluids.BaseFlowingFluid;
import net.neoforged.neoforge.registries.DeferredBlock;
import net.neoforged.neoforge.registries.DeferredHolder;
@@ -265,9 +268,25 @@ public final class AntarchyNeoforgeBlocks {
public static final DeferredBlock<WallHangingSignBlock> ROYAL_WALL_HANGING_SIGN = BLOCKS.register("royal_wall_hanging_sign",
() -> new WallHangingSignBlock(AntarchyWoodTypes.ROYAL, BlockBehaviour.Properties.ofFullCopy(Blocks.JUNGLE_WALL_HANGING_SIGN)));
public static final DeferredBlock<TruffaloLogBlock> TRUFFALO_LOG = BLOCKS.register("truffalo_log",
() -> new TruffaloLogBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.JUNGLE_LOG)));
() -> new TruffaloLogBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.JUNGLE_LOG)) {
@Override
public BlockState getToolModifiedState(BlockState state, UseOnContext context, ItemAbility itemAbility, boolean simulate) {
if (itemAbility == ItemAbilities.AXE_STRIP) {
return STRIPPED_TRUFFALO_LOG.get().withPropertiesOf(state);
}
return super.getToolModifiedState(state, context, itemAbility, simulate);
}
});
public static final DeferredBlock<RotatedPillarBlock> TRUFFALO_WOOD = BLOCKS.register("truffalo_wood",
() -> new RotatedPillarBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.JUNGLE_WOOD)));
() -> new RotatedPillarBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.JUNGLE_WOOD)) {
@Override
public BlockState getToolModifiedState(BlockState state, UseOnContext context, ItemAbility itemAbility, boolean simulate) {
if (itemAbility == ItemAbilities.AXE_STRIP) {
return STRIPPED_TRUFFALO_WOOD.get().withPropertiesOf(state);
}
return super.getToolModifiedState(state, context, itemAbility, simulate);
}
});
public static final DeferredBlock<TruffaloLogBlock> STRIPPED_TRUFFALO_LOG = BLOCKS.register("stripped_truffalo_log",
() -> new TruffaloLogBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.STRIPPED_JUNGLE_LOG)));
public static final DeferredBlock<RotatedPillarBlock> STRIPPED_TRUFFALO_WOOD = BLOCKS.register("stripped_truffalo_wood",
@@ -26,7 +26,14 @@ displayURL="https://www.curseforge.com/minecraft/mc-mods/antarchy"
versionRange="[1.21.1,)"
[[dependencies.antarchy]]
modId="antos"
modId="architectury"
type="required"
versionRange="[${architectury_api_version},)"
ordering="AFTER"
side="BOTH"
[[dependencies.antarchy]]
modId="antos"
type="required"
versionRange="*"
ordering="AFTER"