fix sign crash, no more holes in elythia, brutalfly cacoon perf improvements, shake hanlder perf fix, herc beetle improvements, new triffifd texture, new spit bug, new lurking terror
This commit is contained in:
1 parent
8cabdb33bf
commit
c478e560f9
49 files changed
+906
-447
No files matched your search
@@ -258,6 +258,7 @@ public class AntarchyNeoforge {
|
||||
() -> AntarchyNeoforgeBlocks.WASP_NEST.get(),
|
||||
() -> AntarchyNeoforgeBlocks.HUSHWEED.get(),
|
||||
() -> AntarchyNeoforgeBlocks.OURANWOOD_SQUIRREL_NEST.get(),
|
||||
() -> AntarchyNeoforgeBlocks.BRUTALFLY_COCOON_SPAWNER.get(),
|
||||
() -> AntarchyNeoforgeBlocks.ANT_NEST_BLOCK_ENTITY.get(),
|
||||
() -> AntarchyNeoforgeBlocks.DREAM_CAMPFIRE_BLOCK_ENTITY.get(),
|
||||
() -> AntarchyNeoforgeBlocks.WASP_NEST_BLOCK_ENTITY.get(),
|
||||
|
||||
@@ -336,14 +336,14 @@ public final class AntarchyToolsConfig {
|
||||
"Base attack damage. Also the minimum damage at full health.",
|
||||
"Formula: damage = baseDamage * (1 + missingHealthFraction * scalingFactor)"
|
||||
)
|
||||
.defineInRange("baseDamage", 30.0D, 0.0D, 1024.0D);
|
||||
.defineInRange("baseDamage", 15.0D, 0.0D, 1024.0D);
|
||||
NIGHTMARE_SWORD_ATTACK_SPEED = b.comment("Attack speed of the Nightmare Sword.").defineInRange("attackSpeed", -2.4D, -10.0D, 10.0D);
|
||||
NIGHTMARE_SWORD_SCALING_FACTOR = b
|
||||
.comment(
|
||||
"How much damage scales with missing health.",
|
||||
"At 1.0 and 0 HP remaining: damage doubles. At full health: always baseDamage."
|
||||
)
|
||||
.defineInRange("scalingFactor", 1.0D, 0.0D, 100.0D);
|
||||
.defineInRange("scalingFactor", 1.5D, 0.0D, 100.0D);
|
||||
b.pop();
|
||||
|
||||
b.push("fallenKingCrown");
|
||||
|
||||
+11
-27
@@ -1,12 +1,11 @@
|
||||
package com.craisinlord.antarchy.neoforge.client;
|
||||
|
||||
import com.craisinlord.antarchy.Antarchy;
|
||||
import com.craisinlord.antarchy.content.client.CameraShakeClientState;
|
||||
import com.craisinlord.antarchy.content.client.HerculesBeetleImpactShakeClientState;
|
||||
import com.craisinlord.antarchy.content.entity.ToreterrorEntity;
|
||||
import com.craisinlord.antarchy.content.entity.nightmare.NightmareEntity;
|
||||
import com.craisinlord.antarchy.content.item.BigBerthaItem;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.util.Mth;
|
||||
import net.minecraft.world.phys.Vec3;
|
||||
import net.neoforged.api.distmarker.Dist;
|
||||
import net.neoforged.bus.api.SubscribeEvent;
|
||||
import net.neoforged.fml.common.EventBusSubscriber;
|
||||
@@ -14,9 +13,7 @@ import net.neoforged.neoforge.client.event.ViewportEvent;
|
||||
|
||||
@EventBusSubscriber(modid = Antarchy.MODID, value = Dist.CLIENT)
|
||||
public final class CameraShakeHandler {
|
||||
private static final double MAX_SHAKE_RANGE = 48.0D;
|
||||
private static final int TORETERROR_SHAKE_TICKS = 25;
|
||||
private static final double NIGHTMARE_SHAKE_RANGE = 32.0D;
|
||||
|
||||
private CameraShakeHandler() {
|
||||
}
|
||||
@@ -24,36 +21,23 @@ public final class CameraShakeHandler {
|
||||
@SubscribeEvent
|
||||
public static void onComputeCameraAngles(ViewportEvent.ComputeCameraAngles event) {
|
||||
Minecraft mc = Minecraft.getInstance();
|
||||
if (mc.level == null || mc.player == null) return;
|
||||
|
||||
Vec3 cameraPos = event.getCamera().getPosition();
|
||||
float shakeStrength = 0.0F;
|
||||
|
||||
for (ToreterrorEntity toreterror : mc.level.getEntitiesOfClass(
|
||||
ToreterrorEntity.class,
|
||||
mc.player.getBoundingBox().inflate(MAX_SHAKE_RANGE),
|
||||
t -> t.isAlive() && t.isJumpShaking()
|
||||
)) {
|
||||
double distance = Math.sqrt(cameraPos.distanceToSqr(toreterror.position().add(0, toreterror.getBbHeight() * 0.5, 0)));
|
||||
if (distance > MAX_SHAKE_RANGE) continue;
|
||||
shakeStrength += (float) ((1.0D - distance / MAX_SHAKE_RANGE) * 1.0D);
|
||||
if (mc.level == null || mc.player == null) {
|
||||
CameraShakeClientState.clear();
|
||||
return;
|
||||
}
|
||||
|
||||
for (NightmareEntity nightmare : mc.level.getEntitiesOfClass(
|
||||
NightmareEntity.class,
|
||||
mc.player.getBoundingBox().inflate(NIGHTMARE_SHAKE_RANGE),
|
||||
entity -> entity.isAlive() && entity.isRoaring()
|
||||
)) {
|
||||
double distance = Math.sqrt(cameraPos.distanceToSqr(nightmare.position().add(0.0D, nightmare.getBbHeight() * 0.5D, 0.0D)));
|
||||
if (distance > NIGHTMARE_SHAKE_RANGE) continue;
|
||||
shakeStrength += (float) ((1.0D - distance / NIGHTMARE_SHAKE_RANGE) * 1.35D);
|
||||
}
|
||||
float shakeStrength = CameraShakeClientState.getStrength(event.getCamera().getPosition());
|
||||
|
||||
int beetleShakeTicks = HerculesBeetleImpactShakeClientState.getTicks();
|
||||
if (beetleShakeTicks > 0) {
|
||||
shakeStrength += (float) beetleShakeTicks / TORETERROR_SHAKE_TICKS * 2.0F;
|
||||
}
|
||||
|
||||
int bigBerthaShakeTicks = BigBerthaItem.clientShakeTicks;
|
||||
if (bigBerthaShakeTicks > 0) {
|
||||
shakeStrength += (float) bigBerthaShakeTicks / TORETERROR_SHAKE_TICKS * 2.0F;
|
||||
}
|
||||
|
||||
if (shakeStrength <= 0.0F) return;
|
||||
|
||||
float time = (float) (mc.player.tickCount + event.getPartialTick());
|
||||
|
||||
-52
@@ -1,52 +0,0 @@
|
||||
package com.craisinlord.antarchy.neoforge.client;
|
||||
|
||||
import com.craisinlord.antarchy.Antarchy;
|
||||
import com.craisinlord.antarchy.content.entity.nightmare.NightmareEntity;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.util.Mth;
|
||||
import net.minecraft.world.phys.Vec3;
|
||||
import net.neoforged.api.distmarker.Dist;
|
||||
import net.neoforged.bus.api.SubscribeEvent;
|
||||
import net.neoforged.fml.common.EventBusSubscriber;
|
||||
import net.neoforged.neoforge.client.event.ViewportEvent;
|
||||
|
||||
@EventBusSubscriber(modid = Antarchy.MODID, value = Dist.CLIENT)
|
||||
public final class NightmareCameraShakeHandler {
|
||||
private static final double MAX_SHAKE_RANGE = 32.0D;
|
||||
|
||||
private NightmareCameraShakeHandler() {
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void onComputeCameraAngles(ViewportEvent.ComputeCameraAngles event) {
|
||||
Minecraft minecraft = Minecraft.getInstance();
|
||||
if (minecraft.level == null || minecraft.player == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
Vec3 cameraPos = event.getCamera().getPosition();
|
||||
float shakeStrength = 0.0F;
|
||||
|
||||
for (NightmareEntity nightmare : minecraft.level.getEntitiesOfClass(
|
||||
NightmareEntity.class,
|
||||
minecraft.player.getBoundingBox().inflate(MAX_SHAKE_RANGE),
|
||||
nightmare -> nightmare.isAlive() && nightmare.isRoaring()
|
||||
)) {
|
||||
double distance = Math.sqrt(cameraPos.distanceToSqr(nightmare.position().add(0.0D, nightmare.getBbHeight() * 0.5D, 0.0D)));
|
||||
if (distance > MAX_SHAKE_RANGE) {
|
||||
continue;
|
||||
}
|
||||
|
||||
shakeStrength += (float) ((1.0D - distance / MAX_SHAKE_RANGE) * 1.35D);
|
||||
}
|
||||
|
||||
if (shakeStrength <= 0.0F) {
|
||||
return;
|
||||
}
|
||||
|
||||
float time = (float) (minecraft.player.tickCount + event.getPartialTick());
|
||||
event.setYaw(event.getYaw() + Mth.sin(time * 1.85F) * shakeStrength * 1.8F);
|
||||
event.setPitch(event.getPitch() + Mth.cos(time * 2.15F) * shakeStrength * 1.45F);
|
||||
event.setRoll(event.getRoll() + Mth.sin(time * 2.65F) * shakeStrength * 1.05F);
|
||||
}
|
||||
}
|
||||
+2
@@ -229,6 +229,8 @@ public final class AntarchyNeoforgeBlocks {
|
||||
() -> new WaspNestBlock(AntarchyNeoforgeItems::waspNestBlockEntityType, BlockBehaviour.Properties.ofFullCopy(Blocks.BEE_NEST)));
|
||||
public static final DeferredBlock<com.craisinlord.antarchy.content.block.OuranwoodSquirrelNestBlock> OURANWOOD_SQUIRREL_NEST = BLOCKS.register("ouranwood_squirrel_nest",
|
||||
() -> new com.craisinlord.antarchy.content.block.OuranwoodSquirrelNestBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.COARSE_DIRT).noLootTable()));
|
||||
public static final DeferredBlock<com.craisinlord.antarchy.content.block.BrutalflyCocoonSpawnerBlock> BRUTALFLY_COCOON_SPAWNER = BLOCKS.register("brutalfly_cocoon_spawner",
|
||||
() -> new com.craisinlord.antarchy.content.block.BrutalflyCocoonSpawnerBlock(BlockBehaviour.Properties.of().noCollission().instabreak().noLootTable()));
|
||||
public static final DeferredBlock<HushweedBlock> HUSHWEED = BLOCKS.register("hushweed",
|
||||
() -> new HushweedBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.AZALEA).noCollission().noOcclusion()));
|
||||
public static final DeferredBlock<LiquidBlock> BILE_BLOCK = BLOCKS.register("bile",
|
||||
|
||||
+2
-2
@@ -516,11 +516,11 @@ public final class AntarchyNeoforgeItems {
|
||||
public static final DeferredItem<DeferredSpawnEggItem> TERMITE_SPAWN_EGG = ITEMS.register("termite_spawn_egg",
|
||||
() -> new DeferredSpawnEggItem(AntarchyNeoforgeEntites.TERMITE, 0xD4B96A, 0xFF6B1A, new Item.Properties()));
|
||||
public static final DeferredItem<DeferredSpawnEggItem> MOLEWORM_SPAWN_EGG = ITEMS.register("moleworm_spawn_egg",
|
||||
() -> new DeferredSpawnEggItem(AntarchyNeoforgeEntites.MOLEWORM, 0x7A6150, 0xD2B8A3, new Item.Properties()));
|
||||
() -> new DeferredSpawnEggItem(AntarchyNeoforgeEntites.MOLEWORM, 0xB8B8B8, 0x8A623A, new Item.Properties()));
|
||||
public static final DeferredItem<DeferredSpawnEggItem> MANTIS_SPAWN_EGG = ITEMS.register("mantis_spawn_egg",
|
||||
() -> new DeferredSpawnEggItem(AntarchyNeoforgeEntites.MANTIS, 0xF8F8F2, 0x63B44A, new Item.Properties()));
|
||||
public static final DeferredItem<DeferredSpawnEggItem> MOLEVORE_SPAWN_EGG = ITEMS.register("molevore_spawn_egg",
|
||||
() -> new DeferredSpawnEggItem(AntarchyNeoforgeEntites.MOLEVORE, 0x3E2E24, 0xB67B4F, new Item.Properties().rarity(Rarity.UNCOMMON)));
|
||||
() -> new DeferredSpawnEggItem(AntarchyNeoforgeEntites.MOLEVORE, 0x4A4A4A, 0x6B4A2B, new Item.Properties().rarity(Rarity.UNCOMMON)));
|
||||
public static final DeferredItem<DeferredSpawnEggItem> TRIFFID_SPAWN_EGG = ITEMS.register("triffid_spawn_egg",
|
||||
() -> new DeferredSpawnEggItem(AntarchyNeoforgeEntites.TRIFFID, 0x4C8F3A, 0xFF2FB3, new Item.Properties().rarity(Rarity.UNCOMMON)));
|
||||
public static final DeferredItem<DeferredSpawnEggItem> APPLE_COW_SPAWN_EGG = ITEMS.register("apple_cow_spawn_egg",
|
||||
|
||||
+2
@@ -1,6 +1,7 @@
|
||||
package com.craisinlord.antarchy.neoforge.registry;
|
||||
|
||||
import com.craisinlord.antarchy.content.entity.*;
|
||||
import net.minecraft.world.entity.animal.AbstractFish;
|
||||
import com.craisinlord.antarchy.content.entity.basilisk.BasiliskEntity;
|
||||
import com.craisinlord.antarchy.content.entity.cloud_shark.CloudSharkEntity;
|
||||
import com.craisinlord.antarchy.content.entity.flying_squirrel.FlyingSquirrelEntity;
|
||||
@@ -51,5 +52,6 @@ public class AntarchyNeoforgeSpawnPlacements {
|
||||
event.register(AntarchyNeoforgeEntites.CREEPING_HORROR.get(), SpawnPlacementTypes.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, CreepingHorrorEntity::canSpawn, RegisterSpawnPlacementsEvent.Operation.OR);
|
||||
event.register(AntarchyNeoforgeEntites.LURKING_TERROR.get(), SpawnPlacementTypes.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, LurkingTerrorEntity::canSpawn, RegisterSpawnPlacementsEvent.Operation.OR);
|
||||
event.register(AntarchyNeoforgeEntites.TERMITE.get(), SpawnPlacementTypes.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, net.minecraft.world.entity.animal.Animal::checkAnimalSpawnRules, RegisterSpawnPlacementsEvent.Operation.OR);
|
||||
event.register(AntarchyNeoforgeEntites.CHEEP.get(), SpawnPlacementTypes.IN_WATER, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, AbstractFish::checkSurfaceWaterAnimalSpawnRules, RegisterSpawnPlacementsEvent.Operation.OR);
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user