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:
1 parent
93e2adbe12
commit
6e12612559
30 files changed
+460
-452
No files matched your search
@@ -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') {
|
||||
|
||||
+2
-2
@@ -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);
|
||||
|
||||
+4
@@ -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)));
|
||||
|
||||
+117
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
+21
-2
@@ -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"
|
||||
|
||||
Reference in new issue
Block a user