alpha mantis boss, mantis spin fix, overworld mantis spawns, elythia turtle fix
This commit is contained in:
1 parent
fe2e4d55a4
commit
ebf8abcdbd
24 files changed
+509
-5
No files matched your search
@@ -100,6 +100,12 @@ public final class AntarchySettings {
|
||||
private static double mantisMovementSpeed = 0.42D;
|
||||
private static double mantisFlyingSpeed = 0.77D;
|
||||
private static boolean mantisIgnoreLightLevel = false;
|
||||
private static double alphaMantisHealth = 500.0D;
|
||||
private static double alphaMantisAttackDamage = 18.0D;
|
||||
private static double alphaMantisMovementSpeed = 0.42D;
|
||||
private static double alphaMantisFlyingSpeed = 0.77D;
|
||||
private static int alphaMantisSummonIntervalTicks = 300;
|
||||
private static int alphaMantisMaxMinions = 4;
|
||||
private static double krakenProjectileDamageTakenMultiplier = 0.5D;
|
||||
private static boolean krakenSquidSpawnEnabled = true;
|
||||
private static boolean krakenMassSpawnEnabled = true;
|
||||
@@ -789,6 +795,30 @@ public final class AntarchySettings {
|
||||
mantisIgnoreLightLevel = value;
|
||||
}
|
||||
|
||||
public static double alphaMantisHealth() {
|
||||
return alphaMantisHealth;
|
||||
}
|
||||
|
||||
public static double alphaMantisAttackDamage() {
|
||||
return alphaMantisAttackDamage;
|
||||
}
|
||||
|
||||
public static double alphaMantisMovementSpeed() {
|
||||
return alphaMantisMovementSpeed;
|
||||
}
|
||||
|
||||
public static double alphaMantisFlyingSpeed() {
|
||||
return alphaMantisFlyingSpeed;
|
||||
}
|
||||
|
||||
public static int alphaMantisSummonIntervalTicks() {
|
||||
return alphaMantisSummonIntervalTicks;
|
||||
}
|
||||
|
||||
public static int alphaMantisMaxMinions() {
|
||||
return alphaMantisMaxMinions;
|
||||
}
|
||||
|
||||
public static double waspHealth() {
|
||||
return waspHealth;
|
||||
}
|
||||
@@ -1193,6 +1223,30 @@ public final class AntarchySettings {
|
||||
mantisFlyingSpeed = value;
|
||||
}
|
||||
|
||||
public static void setAlphaMantisHealth(double value) {
|
||||
alphaMantisHealth = value;
|
||||
}
|
||||
|
||||
public static void setAlphaMantisAttackDamage(double value) {
|
||||
alphaMantisAttackDamage = value;
|
||||
}
|
||||
|
||||
public static void setAlphaMantisMovementSpeed(double value) {
|
||||
alphaMantisMovementSpeed = value;
|
||||
}
|
||||
|
||||
public static void setAlphaMantisFlyingSpeed(double value) {
|
||||
alphaMantisFlyingSpeed = value;
|
||||
}
|
||||
|
||||
public static void setAlphaMantisSummonIntervalTicks(int value) {
|
||||
alphaMantisSummonIntervalTicks = value;
|
||||
}
|
||||
|
||||
public static void setAlphaMantisMaxMinions(int value) {
|
||||
alphaMantisMaxMinions = value;
|
||||
}
|
||||
|
||||
public static void setKrakenProjectileDamageTakenMultiplier(double value) {
|
||||
krakenProjectileDamageTakenMultiplier = value;
|
||||
}
|
||||
|
||||
+23
@@ -0,0 +1,23 @@
|
||||
package com.craisinlord.antarchy.content.client.model;
|
||||
|
||||
import com.craisinlord.antarchy.Antarchy;
|
||||
import com.craisinlord.antarchy.content.entity.AlphaMantisEntity;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import software.bernie.geckolib.model.GeoModel;
|
||||
|
||||
public class AlphaMantisModel extends GeoModel<AlphaMantisEntity> {
|
||||
@Override
|
||||
public ResourceLocation getModelResource(AlphaMantisEntity animatable) {
|
||||
return ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "geo/mantis.geo.json");
|
||||
}
|
||||
|
||||
@Override
|
||||
public ResourceLocation getTextureResource(AlphaMantisEntity animatable) {
|
||||
return ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "textures/entity/mantis_alpha.png");
|
||||
}
|
||||
|
||||
@Override
|
||||
public ResourceLocation getAnimationResource(AlphaMantisEntity animatable) {
|
||||
return ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "animations/mantis.animation.json");
|
||||
}
|
||||
}
|
||||
+15
@@ -0,0 +1,15 @@
|
||||
package com.craisinlord.antarchy.content.client.renderer;
|
||||
|
||||
import com.craisinlord.antarchy.content.client.model.AlphaMantisModel;
|
||||
import com.craisinlord.antarchy.content.entity.AlphaMantisEntity;
|
||||
import net.minecraft.client.renderer.entity.EntityRendererProvider;
|
||||
import software.bernie.geckolib.renderer.GeoEntityRenderer;
|
||||
|
||||
public class AlphaMantisRenderer extends GeoEntityRenderer<AlphaMantisEntity> {
|
||||
public AlphaMantisRenderer(EntityRendererProvider.Context context) {
|
||||
super(context, new AlphaMantisModel());
|
||||
this.shadowRadius = 1.5F;
|
||||
// Mantis renders at 1.25x; the alpha is 1.5x bigger overall
|
||||
this.withScale(1.875F);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,184 @@
|
||||
package com.craisinlord.antarchy.content.entity;
|
||||
|
||||
import com.craisinlord.antarchy.config.AntarchySettings;
|
||||
import com.craisinlord.antarchy.content.AntarchyObjects;
|
||||
import com.craisinlord.antarchy.content.AntarchyTags;
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.network.chat.Component;
|
||||
import net.minecraft.server.level.ServerBossEvent;
|
||||
import net.minecraft.server.level.ServerLevel;
|
||||
import net.minecraft.server.level.ServerPlayer;
|
||||
import net.minecraft.util.RandomSource;
|
||||
import net.minecraft.world.BossEvent;
|
||||
import net.minecraft.world.Difficulty;
|
||||
import net.minecraft.world.entity.Entity;
|
||||
import net.minecraft.world.entity.EntityType;
|
||||
import net.minecraft.world.entity.LivingEntity;
|
||||
import net.minecraft.world.entity.Mob;
|
||||
import net.minecraft.world.entity.MobSpawnType;
|
||||
import net.minecraft.world.entity.ai.attributes.AttributeSupplier;
|
||||
import net.minecraft.world.entity.ai.attributes.Attributes;
|
||||
import net.minecraft.world.entity.monster.Monster;
|
||||
import net.minecraft.world.level.Level;
|
||||
import net.minecraft.world.level.ServerLevelAccessor;
|
||||
import net.minecraft.world.level.block.LeavesBlock;
|
||||
import net.minecraft.world.level.levelgen.Heightmap;
|
||||
import net.minecraft.world.phys.AABB;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
public class AlphaMantisEntity extends MantisEntity {
|
||||
private final ServerBossEvent bossEvent =
|
||||
new ServerBossEvent(Component.translatable("entity.antarchy.alpha_mantis"), BossEvent.BossBarColor.GREEN, BossEvent.BossBarOverlay.PROGRESS);
|
||||
|
||||
private int summonCooldownTicks;
|
||||
|
||||
public AlphaMantisEntity(EntityType<? extends AlphaMantisEntity> entityType, Level level) {
|
||||
super(entityType, level);
|
||||
this.xpReward = 60;
|
||||
this.summonCooldownTicks = AntarchySettings.alphaMantisSummonIntervalTicks() / 2;
|
||||
}
|
||||
|
||||
public static AttributeSupplier.Builder createAttributes() {
|
||||
return Mob.createMobAttributes()
|
||||
.add(Attributes.MAX_HEALTH, AntarchySettings.alphaMantisHealth())
|
||||
.add(Attributes.ATTACK_DAMAGE, AntarchySettings.alphaMantisAttackDamage())
|
||||
.add(Attributes.MOVEMENT_SPEED, AntarchySettings.alphaMantisMovementSpeed())
|
||||
.add(Attributes.FLYING_SPEED, AntarchySettings.alphaMantisFlyingSpeed())
|
||||
.add(Attributes.FOLLOW_RANGE, 48.0D)
|
||||
.add(Attributes.ARMOR, 8.0D)
|
||||
.add(Attributes.KNOCKBACK_RESISTANCE, 0.8D);
|
||||
}
|
||||
|
||||
public static boolean checkAlphaMantisSpawnRules(EntityType<AlphaMantisEntity> entityType, ServerLevelAccessor level, MobSpawnType spawnReason, BlockPos pos, RandomSource random) {
|
||||
if (spawnReason == MobSpawnType.SPAWN_EGG || spawnReason == MobSpawnType.SPAWNER || spawnReason == MobSpawnType.COMMAND) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (level.getDifficulty() == Difficulty.PEACEFUL) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (spawnReason != MobSpawnType.NATURAL) {
|
||||
return false;
|
||||
}
|
||||
|
||||
boolean atSurface = level.getHeightmapPos(Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, pos).getY() <= pos.getY();
|
||||
boolean posOpen = level.isEmptyBlock(pos) && level.isEmptyBlock(pos.above()) && level.getFluidState(pos).isEmpty();
|
||||
boolean onSolidGround = level.getBlockState(pos.below()).isFaceSturdy(level, pos.below(), Direction.UP)
|
||||
&& !(level.getBlockState(pos.below()).getBlock() instanceof LeavesBlock);
|
||||
|
||||
if (!posOpen || !onSolidGround || !atSurface) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// Only one alpha at a time in the area
|
||||
if (!level.getLevel().getEntitiesOfClass(AlphaMantisEntity.class, new AABB(pos).inflate(128.0D), Entity::isAlive).isEmpty()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
boolean ignoreLightLevel = AntarchySettings.mantisIgnoreLightLevel();
|
||||
|
||||
// Daytime overworld spawns can't pass the vanilla darkness check, so no light gate here
|
||||
if (level.getLevel().isDay() && level.getBiome(pos).is(AntarchyTags.Biomes.MANTIS_OVERWORLD_SPAWN_BIOMES)) {
|
||||
return level.canSeeSky(pos);
|
||||
}
|
||||
|
||||
if (level.getLevel().isNight() && level.getBiome(pos).is(AntarchyTags.Biomes.MANTIS_SPAWN_BIOMES)) {
|
||||
return ignoreLightLevel || Monster.checkMonsterSpawnRules(entityType, level, spawnReason, pos, random);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void tick() {
|
||||
super.tick();
|
||||
if (this.level().isClientSide) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (this.isDeadOrDying()) {
|
||||
this.bossEvent.setProgress(0.0F);
|
||||
return;
|
||||
}
|
||||
|
||||
this.bossEvent.setProgress(this.getHealth() / this.getMaxHealth());
|
||||
this.tickMinionSummon();
|
||||
}
|
||||
|
||||
private void tickMinionSummon() {
|
||||
LivingEntity target = this.getTarget();
|
||||
if (target == null || !target.isAlive()) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (this.summonCooldownTicks > 0) {
|
||||
this.summonCooldownTicks--;
|
||||
return;
|
||||
}
|
||||
this.summonCooldownTicks = AntarchySettings.alphaMantisSummonIntervalTicks();
|
||||
|
||||
if (!(this.level() instanceof ServerLevel serverLevel)) {
|
||||
return;
|
||||
}
|
||||
|
||||
int nearbyMinions = serverLevel.getEntitiesOfClass(
|
||||
MantisEntity.class,
|
||||
this.getBoundingBox().inflate(32.0D),
|
||||
mantis -> mantis.isAlive() && !(mantis instanceof AlphaMantisEntity)
|
||||
).size();
|
||||
int maxMinions = AntarchySettings.alphaMantisMaxMinions();
|
||||
if (nearbyMinions >= maxMinions) {
|
||||
return;
|
||||
}
|
||||
|
||||
int toSummon = Math.min(1 + this.random.nextInt(2), maxMinions - nearbyMinions);
|
||||
for (int i = 0; i < toSummon; i++) {
|
||||
MantisEntity minion = AntarchyObjects.MANTIS.get().create(serverLevel);
|
||||
if (minion == null) {
|
||||
continue;
|
||||
}
|
||||
double angle = this.random.nextDouble() * Math.PI * 2.0D;
|
||||
double distance = 3.0D + this.random.nextDouble() * 3.0D;
|
||||
minion.moveTo(
|
||||
this.getX() + Math.cos(angle) * distance,
|
||||
this.getY() + 0.5D,
|
||||
this.getZ() + Math.sin(angle) * distance,
|
||||
this.random.nextFloat() * 360.0F,
|
||||
0.0F
|
||||
);
|
||||
minion.finalizeSpawn(serverLevel, serverLevel.getCurrentDifficultyAt(minion.blockPosition()), MobSpawnType.MOB_SUMMONED, null);
|
||||
minion.setTarget(target);
|
||||
serverLevel.addFreshEntity(minion);
|
||||
}
|
||||
this.playSound(com.craisinlord.antarchy.content.AntarchySoundEvents.MANTIS_AMBIENT.get(), 2.0F, 0.6F);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setTarget(@Nullable LivingEntity target) {
|
||||
super.setTarget(target);
|
||||
// A boss that despawns mid-fight is no boss — stay loaded once engaged
|
||||
if (target != null) {
|
||||
this.setPersistenceRequired();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void startSeenByPlayer(ServerPlayer player) {
|
||||
super.startSeenByPlayer(player);
|
||||
this.bossEvent.addPlayer(player);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void stopSeenByPlayer(ServerPlayer player) {
|
||||
super.stopSeenByPlayer(player);
|
||||
this.bossEvent.removePlayer(player);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setCustomName(@Nullable Component name) {
|
||||
super.setCustomName(name);
|
||||
this.bossEvent.setName(this.getDisplayName());
|
||||
}
|
||||
}
|
||||
@@ -71,6 +71,7 @@ public class MantisEntity extends Monster implements GeoEntity {
|
||||
|
||||
public MantisEntity(EntityType<? extends MantisEntity> entityType, Level level) {
|
||||
super(entityType, level);
|
||||
this.lookControl = new SteadyLookControl(this);
|
||||
this.setNoGravity(false);
|
||||
this.setPathfindingMalus(PathType.WATER, -1.0F);
|
||||
this.setPathfindingMalus(PathType.WATER_BORDER, 16.0F);
|
||||
@@ -117,8 +118,9 @@ public class MantisEntity extends Monster implements GeoEntity {
|
||||
|
||||
boolean ignoreLightLevel = AntarchySettings.mantisIgnoreLightLevel();
|
||||
|
||||
// Daytime overworld spawns can't pass the vanilla darkness check, so no light gate here
|
||||
if (level.getLevel().isDay() && level.getBiome(pos).is(AntarchyTags.Biomes.MANTIS_OVERWORLD_SPAWN_BIOMES)) {
|
||||
return atSurface && level.canSeeSky(pos) && (ignoreLightLevel || Monster.checkMonsterSpawnRules(entityType, level, spawnReason, pos, random));
|
||||
return atSurface && level.canSeeSky(pos);
|
||||
}
|
||||
|
||||
// Elythia meadow (and any future mantis_spawn_biomes): nighttime, no sky-access requirement
|
||||
@@ -206,6 +208,14 @@ public class MantisEntity extends Monster implements GeoEntity {
|
||||
LivingEntity target = this.getTarget();
|
||||
if (target != null && target.isAlive()) {
|
||||
this.getLookControl().setLookAt(target, 30.0F, 30.0F);
|
||||
// If the target is horizontally inside our (wide) footprint, walking toward
|
||||
// it only makes us pivot in place — hold position, attack reach covers it
|
||||
double dx = target.getX() - this.getX();
|
||||
double dz = target.getZ() - this.getZ();
|
||||
double halfWidth = this.getBbWidth() * 0.5D;
|
||||
if (!this.isFlyingNow() && dx * dx + dz * dz < halfWidth * halfWidth) {
|
||||
this.getNavigation().stop();
|
||||
}
|
||||
} else if (this.flyBurstTicks <= 0 && this.flyCooldownTicks <= 0 && this.onGround() && this.random.nextInt(180) == 0) {
|
||||
this.startFlightBurst();
|
||||
}
|
||||
@@ -320,6 +330,31 @@ public class MantisEntity extends Monster implements GeoEntity {
|
||||
return this.flyBurstTicks > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* The mantis hitbox is several blocks wide, so a melee-range target is often
|
||||
* horizontally inside the footprint. The yaw from body center to such a target
|
||||
* flips wildly as the target moves past the center, which made the mantis spin
|
||||
* instead of facing the player — hold the current heading in that case.
|
||||
*/
|
||||
private static class SteadyLookControl extends net.minecraft.world.entity.ai.control.LookControl {
|
||||
SteadyLookControl(Mob mob) {
|
||||
super(mob);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void tick() {
|
||||
if (this.lookAtCooldown > 0) {
|
||||
double dx = this.wantedX - this.mob.getX();
|
||||
double dz = this.wantedZ - this.mob.getZ();
|
||||
double halfWidth = this.mob.getBbWidth() * 0.5D;
|
||||
if (dx * dx + dz * dz < halfWidth * halfWidth) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
super.tick();
|
||||
}
|
||||
}
|
||||
|
||||
private void tickDebugLog() {
|
||||
if (++this.debugLogTicks < 100) {
|
||||
return;
|
||||
|
||||
@@ -378,7 +378,7 @@ public class BigBerthaItem extends SwordItem implements GeoItem {
|
||||
player.fallDistance = 0.0F;
|
||||
player.getCooldowns().addCooldown(this, TORETERROR_COOLDOWN_TICKS);
|
||||
player.awardStat(Stats.ITEM_USED.get(this));
|
||||
level.playSound(null, player.blockPosition(), SoundEvents.GENERIC_EXPLODE.value(), SoundSource.PLAYERS, 1.0F, 0.6F);
|
||||
level.playSound(null, player.blockPosition(), AntarchySoundEvents.TORETERROR_JUMP_UP.get(), SoundSource.PLAYERS, 1.2F, 0.9F);
|
||||
}
|
||||
|
||||
private void applyToreterrorLanding(ServerLevel level, ServerPlayer player) {
|
||||
@@ -394,7 +394,7 @@ public class BigBerthaItem extends SwordItem implements GeoItem {
|
||||
victim.push(normalized.x * 2.5D, 0.6D, normalized.z * 2.5D);
|
||||
victim.hurtMarked = true;
|
||||
}
|
||||
level.playSound(null, player.blockPosition(), SoundEvents.GENERIC_EXPLODE.value(), SoundSource.PLAYERS, 1.5F, 0.75F);
|
||||
level.playSound(null, player.blockPosition(), AntarchySoundEvents.TORETERROR_JUMP_LAND.get(), SoundSource.PLAYERS, 1.2F, 0.9F);
|
||||
level.sendParticles(ParticleTypes.EXPLOSION, player.getX(), player.getY() + 0.5D, player.getZ(), 4, 1.5D, 0.3D, 1.5D, 0.0D);
|
||||
level.sendParticles(ParticleTypes.SPLASH, player.getX(), player.getY() + 0.5D, player.getZ(), 60, 3.0D, 0.5D, 3.0D, 0.2D);
|
||||
level.sendParticles(ParticleTypes.CRIT, player.getX(), player.getY() + 0.5D, player.getZ(), 20, 2.0D, 0.5D, 2.0D, 0.1D);
|
||||
|
||||
@@ -165,6 +165,7 @@
|
||||
"entity.antarchy.moleworm": "Moleworm",
|
||||
"entity.antarchy.molevore": "Molevore",
|
||||
"entity.antarchy.mantis": "Mantis",
|
||||
"entity.antarchy.alpha_mantis": "Alpha Mantis",
|
||||
"entity.antarchy.triffid": "Triffid",
|
||||
"entity.antarchy.toreterror": "Toreterror",
|
||||
"entity.antarchy.water_bomb": "Water Bomb",
|
||||
@@ -402,6 +403,7 @@
|
||||
"item.antarchy.molevore_spawn_egg": "Molevore Spawn Egg",
|
||||
"item.antarchy.reverie_spawn_egg": "Reverie Spawn Egg",
|
||||
"item.antarchy.mantis_spawn_egg": "Mantis Spawn Egg",
|
||||
"item.antarchy.alpha_mantis_spawn_egg": "Alpha Mantis Spawn Egg",
|
||||
"biome.antarchy.moleworm_caves": "Moleworm Caves",
|
||||
"biome.antarchy.butterfly_fields": "Butterfly Fields",
|
||||
"biome.antarchy.torchflower_fields": "Torchflower Fields",
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"parent": "minecraft:item/template_spawn_egg"
|
||||
}
|
||||
@@ -0,0 +1,90 @@
|
||||
{
|
||||
"type": "minecraft:entity",
|
||||
"pools": [
|
||||
{
|
||||
"rolls": 1.0,
|
||||
"entries": [
|
||||
{
|
||||
"type": "minecraft:item",
|
||||
"name": "antarchy:mantis_claw"
|
||||
}
|
||||
],
|
||||
"functions": [
|
||||
{
|
||||
"function": "minecraft:set_count",
|
||||
"count": {
|
||||
"type": "minecraft:uniform",
|
||||
"min": 3.0,
|
||||
"max": 4.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"function": "minecraft:enchanted_count_increase",
|
||||
"enchantment": "minecraft:looting",
|
||||
"count": {
|
||||
"type": "minecraft:uniform",
|
||||
"min": 0.0,
|
||||
"max": 2.0
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"rolls": 1.0,
|
||||
"entries": [
|
||||
{
|
||||
"type": "minecraft:item",
|
||||
"name": "antarchy:uranium_nugget"
|
||||
}
|
||||
],
|
||||
"functions": [
|
||||
{
|
||||
"function": "minecraft:set_count",
|
||||
"count": {
|
||||
"type": "minecraft:uniform",
|
||||
"min": 2.0,
|
||||
"max": 4.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"function": "minecraft:enchanted_count_increase",
|
||||
"enchantment": "minecraft:looting",
|
||||
"count": {
|
||||
"type": "minecraft:uniform",
|
||||
"min": 0.0,
|
||||
"max": 2.0
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"rolls": 1.0,
|
||||
"entries": [
|
||||
{
|
||||
"type": "minecraft:item",
|
||||
"name": "antarchy:titanium_nugget"
|
||||
}
|
||||
],
|
||||
"functions": [
|
||||
{
|
||||
"function": "minecraft:set_count",
|
||||
"count": {
|
||||
"type": "minecraft:uniform",
|
||||
"min": 2.0,
|
||||
"max": 4.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"function": "minecraft:enchanted_count_increase",
|
||||
"enchantment": "minecraft:looting",
|
||||
"count": {
|
||||
"type": "minecraft:uniform",
|
||||
"min": 0.0,
|
||||
"max": 2.0
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"random_sequence": "antarchy:entities/alpha_mantis"
|
||||
}
|
||||
@@ -121,6 +121,12 @@
|
||||
"weight": 20,
|
||||
"minCount": 1,
|
||||
"maxCount": 1
|
||||
},
|
||||
{
|
||||
"type": "antarchy:alpha_mantis",
|
||||
"weight": 1,
|
||||
"minCount": 1,
|
||||
"maxCount": 1
|
||||
}
|
||||
],
|
||||
"axolotls": [],
|
||||
|
||||
@@ -69,7 +69,6 @@
|
||||
"axolotls": [],
|
||||
"underground_water_creature": [],
|
||||
"water_creature": [
|
||||
{ "type": "minecraft:turtle", "weight": 5, "minCount": 1, "maxCount": 2 },
|
||||
{ "type": "antarchy:octopus_bomb", "weight": 4, "minCount": 1, "maxCount": 2 }],
|
||||
"water_ambient": [
|
||||
{ "type": "antarchy:cheep", "weight": 10, "minCount": 3, "maxCount": 6 },
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
"antarchy:brutalfly",
|
||||
"antarchy:bed_bug",
|
||||
"antarchy:mantis",
|
||||
"antarchy:alpha_mantis",
|
||||
"antarchy:scorpion",
|
||||
"antarchy:emperor_scorpion"
|
||||
]
|
||||
|
||||
@@ -34,6 +34,10 @@ public final class AntarchyFabric implements ModInitializer {
|
||||
Registries.BIOME,
|
||||
ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "octopus_bomb_spawn_biomes")
|
||||
);
|
||||
private static final TagKey<net.minecraft.world.level.biome.Biome> MANTIS_OVERWORLD_SPAWN_BIOMES = TagKey.create(
|
||||
Registries.BIOME,
|
||||
ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "mantis_overworld_spawn_biomes")
|
||||
);
|
||||
|
||||
@Override
|
||||
public void onInitialize() {
|
||||
@@ -75,5 +79,17 @@ public final class AntarchyFabric implements ModInitializer {
|
||||
AntarchyFabricContent.OCTOPUS_BOMB.get(),
|
||||
2, 1, 2
|
||||
);
|
||||
BiomeModifications.addSpawn(
|
||||
BiomeSelectors.tag(MANTIS_OVERWORLD_SPAWN_BIOMES),
|
||||
net.minecraft.world.entity.MobCategory.MONSTER,
|
||||
AntarchyFabricContent.MANTIS.get(),
|
||||
8, 1, 1
|
||||
);
|
||||
BiomeModifications.addSpawn(
|
||||
BiomeSelectors.tag(MANTIS_OVERWORLD_SPAWN_BIOMES),
|
||||
net.minecraft.world.entity.MobCategory.MONSTER,
|
||||
AntarchyFabricContent.ALPHA_MANTIS.get(),
|
||||
1, 1, 1
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -65,6 +65,7 @@ import com.craisinlord.antarchy.content.entity.JumpyBugEntity;
|
||||
import com.craisinlord.antarchy.content.entity.StinkBugEntity;
|
||||
import com.craisinlord.antarchy.content.entity.OuranwoodBoatEntity;
|
||||
import com.craisinlord.antarchy.content.entity.OuranwoodChestBoatEntity;
|
||||
import com.craisinlord.antarchy.content.entity.AlphaMantisEntity;
|
||||
import com.craisinlord.antarchy.content.entity.MantisEntity;
|
||||
import com.craisinlord.antarchy.content.entity.basilisk.BasiliskEntity;
|
||||
import com.craisinlord.antarchy.content.entity.EmperorScorpionEntity;
|
||||
@@ -789,6 +790,11 @@ public final class AntarchyFabricContent {
|
||||
.sized(3.125F, 2.5F)
|
||||
.clientTrackingRange(8)
|
||||
.build("mantis"));
|
||||
public static final DeferredHolder<EntityType<?>, EntityType<AlphaMantisEntity>> ALPHA_MANTIS = ENTITY_TYPES.register("alpha_mantis",
|
||||
() -> EntityType.Builder.of(AlphaMantisEntity::new, MobCategory.MONSTER)
|
||||
.sized(4.0F, 3.25F)
|
||||
.clientTrackingRange(10)
|
||||
.build("alpha_mantis"));
|
||||
public static final DeferredHolder<EntityType<?>, EntityType<OuranwoodBoatEntity>> OURANWOOD_BOAT_ENTITY = ENTITY_TYPES.register("ouranwood_boat",
|
||||
() -> EntityType.Builder.<OuranwoodBoatEntity>of(OuranwoodBoatEntity::new, MobCategory.MISC)
|
||||
.sized(1.375F, 0.5625F)
|
||||
@@ -1645,6 +1651,8 @@ public final class AntarchyFabricContent {
|
||||
() -> new DeferredSpawnEggItem(MOLEWORM, 0xB8B8B8, 0x8A623A, new Item.Properties()));
|
||||
public static final DeferredItem<DeferredSpawnEggItem> MANTIS_SPAWN_EGG = ITEMS.register("mantis_spawn_egg",
|
||||
() -> new DeferredSpawnEggItem(MANTIS, 0xF8F8F2, 0x63B44A, new Item.Properties()));
|
||||
public static final DeferredItem<DeferredSpawnEggItem> ALPHA_MANTIS_SPAWN_EGG = ITEMS.register("alpha_mantis_spawn_egg",
|
||||
() -> new DeferredSpawnEggItem(ALPHA_MANTIS, 0x8FDD6C, 0x2F5D22, new Item.Properties()));
|
||||
public static final DeferredItem<DeferredSpawnEggItem> MOLEVORE_SPAWN_EGG = ITEMS.register("molevore_spawn_egg",
|
||||
() -> new DeferredSpawnEggItem(MOLEVORE, 0x4A4A4A, 0x6B4A2B, new Item.Properties().rarity(Rarity.UNCOMMON)));
|
||||
public static final DeferredItem<DeferredSpawnEggItem> TRIFFID_SPAWN_EGG = ITEMS.register("triffid_spawn_egg",
|
||||
@@ -1799,6 +1807,7 @@ public final class AntarchyFabricContent {
|
||||
FabricDefaultAttributeRegistry.register(WASP.get(), WaspEntity.createAttributes().build());
|
||||
FabricDefaultAttributeRegistry.register(BOMBER.get(), BomberEntity.createAttributes().build());
|
||||
FabricDefaultAttributeRegistry.register(MANTIS.get(), MantisEntity.createAttributes().build());
|
||||
FabricDefaultAttributeRegistry.register(ALPHA_MANTIS.get(), AlphaMantisEntity.createAttributes().build());
|
||||
FabricDefaultAttributeRegistry.register(TRIFFID.get(), TriffidEntity.createAttributes().build());
|
||||
FabricDefaultAttributeRegistry.register(LUCID.get(), LucidEntity.createAttributes().build());
|
||||
FabricDefaultAttributeRegistry.register(SCORPION.get(), ScorpionEntity.createAttributes().build());
|
||||
@@ -1845,6 +1854,7 @@ public final class AntarchyFabricContent {
|
||||
SpawnPlacements.register(NIGHTMARE.get(), SpawnPlacementTypes.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, NightmareEntity::canSpawn);
|
||||
SpawnPlacements.register(MOLEWORM.get(), SpawnPlacementTypes.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, MolewormEntity::canSpawn);
|
||||
SpawnPlacements.register(MANTIS.get(), SpawnPlacementTypes.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, MantisEntity::canSpawn);
|
||||
SpawnPlacements.register(ALPHA_MANTIS.get(), SpawnPlacementTypes.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, AlphaMantisEntity::checkAlphaMantisSpawnRules);
|
||||
SpawnPlacements.register(MOLEVORE.get(), SpawnPlacementTypes.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, MolevoreEntity::canSpawn);
|
||||
SpawnPlacements.register(BED_BUG.get(), SpawnPlacementTypes.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, BedBugEntity::canSpawn);
|
||||
SpawnPlacements.register(LUCID.get(), SpawnPlacementTypes.NO_RESTRICTIONS, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, LucidEntity::canSpawn);
|
||||
@@ -1942,7 +1952,7 @@ public final class AntarchyFabricContent {
|
||||
case "easter_bunny_spawn_egg", "flying_squirrel_spawn_egg", "caterpillar_spawn_egg",
|
||||
"butterfly_spawn_egg", "reverie_spawn_egg", "brutalfly_spawn_egg",
|
||||
"red_ant_spawn_egg", "brown_ant_spawn_egg", "rainbow_ant_spawn_egg", "termite_spawn_egg",
|
||||
"moleworm_spawn_egg", "mantis_spawn_egg", "molevore_spawn_egg", "triffid_spawn_egg",
|
||||
"moleworm_spawn_egg", "mantis_spawn_egg", "alpha_mantis_spawn_egg", "molevore_spawn_egg", "triffid_spawn_egg",
|
||||
"apple_cow_spawn_egg", "golden_apple_cow_spawn_egg", "enchanted_golden_apple_cow_spawn_egg",
|
||||
"honeyed_apple_cow_spawn_egg", "dr_trayaurus_spawn_egg", "wasp_spawn_egg",
|
||||
"bomber_spawn_egg", "jumpy_bug_spawn_egg", "spit_bug_spawn_egg", "stink_bug_spawn_egg", "cloud_shark_spawn_egg", "kraken_spawn_egg", "missile_squid_spawn_egg", "octopus_bomb_spawn_egg",
|
||||
|
||||
+1
@@ -77,6 +77,7 @@ public final class AntarchyFabricClientBootstrap {
|
||||
EntityRendererRegistry.register(AntarchyFabricContent.RAINBOW_ANT.get(), AntRenderer::new);
|
||||
EntityRendererRegistry.register(AntarchyFabricContent.MOLEWORM.get(), MolewormRenderer::new);
|
||||
EntityRendererRegistry.register(AntarchyFabricContent.MANTIS.get(), MantisRenderer::new);
|
||||
EntityRendererRegistry.register(AntarchyFabricContent.ALPHA_MANTIS.get(), AlphaMantisRenderer::new);
|
||||
EntityRendererRegistry.register(AntarchyFabricContent.MOLEVORE.get(), MolevoreRenderer::new);
|
||||
EntityRendererRegistry.register(AntarchyFabricContent.TRIFFID.get(), TriffidRenderer::new);
|
||||
EntityRendererRegistry.register(AntarchyFabricContent.OURANWOOD_BOAT_ENTITY.get(), context -> new OuranwoodBoatRenderer<>(context, ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "textures/entity/boat/ouranwood.png"), false));
|
||||
|
||||
+7
@@ -109,6 +109,13 @@ public final class AntarchyConfigModuleNeoforge {
|
||||
AntarchySettings.setMantisFlyingSpeed(AntarchyMobsConfig.mantisFlyingSpeed());
|
||||
AntarchySettings.setMantisIgnoreLightLevel(AntarchyMobsConfig.mantisIgnoreLightLevel());
|
||||
|
||||
AntarchySettings.setAlphaMantisHealth(AntarchyMobsConfig.alphaMantisHealth());
|
||||
AntarchySettings.setAlphaMantisAttackDamage(AntarchyMobsConfig.alphaMantisAttackDamage());
|
||||
AntarchySettings.setAlphaMantisMovementSpeed(AntarchyMobsConfig.alphaMantisMovementSpeed());
|
||||
AntarchySettings.setAlphaMantisFlyingSpeed(AntarchyMobsConfig.alphaMantisFlyingSpeed());
|
||||
AntarchySettings.setAlphaMantisSummonIntervalTicks(AntarchyMobsConfig.alphaMantisSummonIntervalTicks());
|
||||
AntarchySettings.setAlphaMantisMaxMinions(AntarchyMobsConfig.alphaMantisMaxMinions());
|
||||
|
||||
AntarchySettings.setTriffidHealth(AntarchyMobsConfig.triffidHealth());
|
||||
AntarchySettings.setTriffidAttackDamage(AntarchyMobsConfig.triffidAttackDamage());
|
||||
AntarchySettings.setTriffidGrabDamage(AntarchyMobsConfig.triffidGrabDamage());
|
||||
|
||||
@@ -90,6 +90,16 @@ public final class AntarchyMobsConfig {
|
||||
private static final ModConfigSpec.BooleanValue MANTIS_IGNORE_LIGHT_LEVEL;
|
||||
|
||||
|
||||
// Alpha Mantis
|
||||
|
||||
private static final ModConfigSpec.DoubleValue ALPHA_MANTIS_HEALTH;
|
||||
private static final ModConfigSpec.DoubleValue ALPHA_MANTIS_ATTACK_DAMAGE;
|
||||
private static final ModConfigSpec.DoubleValue ALPHA_MANTIS_MOVEMENT_SPEED;
|
||||
private static final ModConfigSpec.DoubleValue ALPHA_MANTIS_FLYING_SPEED;
|
||||
private static final ModConfigSpec.IntValue ALPHA_MANTIS_SUMMON_INTERVAL_TICKS;
|
||||
private static final ModConfigSpec.IntValue ALPHA_MANTIS_MAX_MINIONS;
|
||||
|
||||
|
||||
// Triffid
|
||||
|
||||
private static final ModConfigSpec.DoubleValue TRIFFID_HEALTH;
|
||||
@@ -368,6 +378,18 @@ public final class AntarchyMobsConfig {
|
||||
b.pop();
|
||||
|
||||
|
||||
// Alpha Mantis
|
||||
|
||||
b.push("alphaMantis");
|
||||
ALPHA_MANTIS_HEALTH = b.comment("Base max health.") .defineInRange("health", 500.0D, 1.0D, 32768.0D);
|
||||
ALPHA_MANTIS_ATTACK_DAMAGE = b.comment("Base attack damage.") .defineInRange("attackDamage", 18.0D, 0.0D, 1024.0D);
|
||||
ALPHA_MANTIS_MOVEMENT_SPEED = b.comment("Base movement speed.") .defineInRange("movementSpeed", 0.42D, 0.0D, 10.0D);
|
||||
ALPHA_MANTIS_FLYING_SPEED = b.comment("Base flying speed.") .defineInRange("flyingSpeed", 0.77D, 0.0D, 10.0D);
|
||||
ALPHA_MANTIS_SUMMON_INTERVAL_TICKS = b.comment("Ticks between mantis minion summons while in combat.") .defineInRange("summonIntervalTicks", 300, 20, 72000);
|
||||
ALPHA_MANTIS_MAX_MINIONS = b.comment("Maximum summoned mantises alive near the alpha at once.") .defineInRange("maxMinions", 4, 0, 32);
|
||||
b.pop();
|
||||
|
||||
|
||||
// Triffid
|
||||
|
||||
b.push("triffid");
|
||||
@@ -589,6 +611,12 @@ public final class AntarchyMobsConfig {
|
||||
static double mantisMovementSpeed() { return MANTIS_MOVEMENT_SPEED.get(); }
|
||||
static double mantisFlyingSpeed() { return MANTIS_FLYING_SPEED.get(); }
|
||||
static boolean mantisIgnoreLightLevel() { return MANTIS_IGNORE_LIGHT_LEVEL.get(); }
|
||||
static double alphaMantisHealth() { return ALPHA_MANTIS_HEALTH.get(); }
|
||||
static double alphaMantisAttackDamage() { return ALPHA_MANTIS_ATTACK_DAMAGE.get(); }
|
||||
static double alphaMantisMovementSpeed() { return ALPHA_MANTIS_MOVEMENT_SPEED.get(); }
|
||||
static double alphaMantisFlyingSpeed() { return ALPHA_MANTIS_FLYING_SPEED.get(); }
|
||||
static int alphaMantisSummonIntervalTicks() { return ALPHA_MANTIS_SUMMON_INTERVAL_TICKS.get(); }
|
||||
static int alphaMantisMaxMinions() { return ALPHA_MANTIS_MAX_MINIONS.get(); }
|
||||
|
||||
static double triffidHealth() { return TRIFFID_HEALTH.get(); }
|
||||
static double triffidAttackDamage() { return TRIFFID_ATTACK_DAMAGE.get(); }
|
||||
|
||||
+1
@@ -93,6 +93,7 @@ public final class AntarchyNeoForgeClient {
|
||||
event.registerEntityRenderer(AntarchyNeoforgeEntites.RAINBOW_ANT.get(), context -> withParalyzedGeoLayer(new AntRenderer(context)));
|
||||
event.registerEntityRenderer(AntarchyNeoforgeEntites.MOLEWORM.get(), context -> withParalyzedGeoLayer(new MolewormRenderer(context)));
|
||||
event.registerEntityRenderer(AntarchyNeoforgeEntites.MANTIS.get(), context -> withParalyzedGeoLayer(new MantisRenderer(context)));
|
||||
event.registerEntityRenderer(AntarchyNeoforgeEntites.ALPHA_MANTIS.get(), context -> withParalyzedGeoLayer(new AlphaMantisRenderer(context)));
|
||||
event.registerEntityRenderer(AntarchyNeoforgeEntites.MOLEVORE.get(), context -> withParalyzedGeoLayer(new MolevoreRenderer(context)));
|
||||
event.registerEntityRenderer(AntarchyNeoforgeEntites.TRIFFID.get(), context -> withParalyzedGeoLayer(new TriffidRenderer(context)));
|
||||
event.registerEntityRenderer(AntarchyNeoforgeEntites.OURANWOOD_BOAT_ENTITY.get(), context -> new OuranwoodBoatRenderer<>(context, OURANWOOD_BOAT_TEXTURE, false));
|
||||
|
||||
+1
@@ -59,6 +59,7 @@ public class AntarchyNeoforgeCreativeModeTabs {
|
||||
event.accept(AntarchyNeoforgeItems.RAINBOW_ANT_SPAWN_EGG.get());
|
||||
event.accept(AntarchyNeoforgeItems.MOLEWORM_SPAWN_EGG.get());
|
||||
event.accept(AntarchyNeoforgeItems.MANTIS_SPAWN_EGG.get());
|
||||
event.accept(AntarchyNeoforgeItems.ALPHA_MANTIS_SPAWN_EGG.get());
|
||||
event.accept(AntarchyNeoforgeItems.MOLEVORE_SPAWN_EGG.get());
|
||||
event.accept(AntarchyNeoforgeItems.TRIFFID_SPAWN_EGG.get());
|
||||
event.accept(AntarchyNeoforgeItems.APPLE_COW_SPAWN_EGG.get());
|
||||
|
||||
+6
@@ -17,6 +17,7 @@ import com.craisinlord.antarchy.content.entity.EmperorScorpionEntity;
|
||||
import com.craisinlord.antarchy.content.entity.HushProjectileEntity;
|
||||
import com.craisinlord.antarchy.content.entity.HerculesBeetleEntity;
|
||||
import com.craisinlord.antarchy.content.entity.JumpyBugEntity;
|
||||
import com.craisinlord.antarchy.content.entity.AlphaMantisEntity;
|
||||
import com.craisinlord.antarchy.content.entity.MantisEntity;
|
||||
import com.craisinlord.antarchy.content.entity.MissileSquidEntity;
|
||||
import com.craisinlord.antarchy.content.entity.OctopusBombEntity;
|
||||
@@ -91,6 +92,11 @@ public final class AntarchyNeoforgeEntites {
|
||||
.sized(3.125F, 2.5F)
|
||||
.clientTrackingRange(8)
|
||||
.build("mantis"));
|
||||
public static final DeferredHolder<EntityType<?>, EntityType<AlphaMantisEntity>> ALPHA_MANTIS = ENTITY_TYPES.register("alpha_mantis",
|
||||
() -> EntityType.Builder.of(AlphaMantisEntity::new, MobCategory.MONSTER)
|
||||
.sized(4.0F, 3.25F)
|
||||
.clientTrackingRange(10)
|
||||
.build("alpha_mantis"));
|
||||
public static final DeferredHolder<EntityType<?>, EntityType<OuranwoodBoatEntity>> OURANWOOD_BOAT_ENTITY = ENTITY_TYPES.register("ouranwood_boat",
|
||||
() -> EntityType.Builder.<OuranwoodBoatEntity>of(OuranwoodBoatEntity::new, MobCategory.MISC)
|
||||
.sized(1.375F, 0.5625F)
|
||||
|
||||
+1
@@ -50,6 +50,7 @@ public class AntarchyNeoforgeEntityAttributes {
|
||||
event.put(AntarchyNeoforgeEntites.WASP.get(), WaspEntity.createAttributes().build());
|
||||
event.put(AntarchyNeoforgeEntites.BOMBER.get(), BomberEntity.createAttributes().build());
|
||||
event.put(AntarchyNeoforgeEntites.MANTIS.get(), MantisEntity.createAttributes().build());
|
||||
event.put(AntarchyNeoforgeEntites.ALPHA_MANTIS.get(), AlphaMantisEntity.createAttributes().build());
|
||||
event.put(AntarchyNeoforgeEntites.TRIFFID.get(), TriffidEntity.createAttributes().build());
|
||||
event.put(AntarchyNeoforgeEntites.LUCID.get(), LucidEntity.createAttributes().build());
|
||||
event.put(AntarchyNeoforgeEntites.SCORPION.get(), ScorpionEntity.createAttributes().build());
|
||||
|
||||
+2
@@ -500,6 +500,8 @@ public final class AntarchyNeoforgeItems {
|
||||
() -> 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> ALPHA_MANTIS_SPAWN_EGG = ITEMS.register("alpha_mantis_spawn_egg",
|
||||
() -> new DeferredSpawnEggItem(AntarchyNeoforgeEntites.ALPHA_MANTIS, 0x8FDD6C, 0x2F5D22, new Item.Properties().rarity(Rarity.UNCOMMON)));
|
||||
public static final DeferredItem<DeferredSpawnEggItem> MOLEVORE_SPAWN_EGG = ITEMS.register("molevore_spawn_egg",
|
||||
() -> 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",
|
||||
|
||||
+1
@@ -40,6 +40,7 @@ public class AntarchyNeoforgeSpawnPlacements {
|
||||
event.register(AntarchyNeoforgeEntites.NIGHTMARE.get(), SpawnPlacementTypes.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, NightmareEntity::canSpawn, RegisterSpawnPlacementsEvent.Operation.OR);
|
||||
event.register(AntarchyNeoforgeEntites.MOLEWORM.get(), SpawnPlacementTypes.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, MolewormEntity::canSpawn, RegisterSpawnPlacementsEvent.Operation.OR);
|
||||
event.register(AntarchyNeoforgeEntites.MANTIS.get(), SpawnPlacementTypes.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, MantisEntity::canSpawn, RegisterSpawnPlacementsEvent.Operation.OR);
|
||||
event.register(AntarchyNeoforgeEntites.ALPHA_MANTIS.get(), SpawnPlacementTypes.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, AlphaMantisEntity::checkAlphaMantisSpawnRules, RegisterSpawnPlacementsEvent.Operation.OR);
|
||||
event.register(AntarchyNeoforgeEntites.MOLEVORE.get(), SpawnPlacementTypes.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, MolevoreEntity::canSpawn, RegisterSpawnPlacementsEvent.Operation.OR);
|
||||
event.register(AntarchyNeoforgeEntites.BED_BUG.get(), SpawnPlacementTypes.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, BedBugEntity::canSpawn, RegisterSpawnPlacementsEvent.Operation.OR);
|
||||
event.register(AntarchyNeoforgeEntites.LUCID.get(), SpawnPlacementTypes.NO_RESTRICTIONS, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, LucidEntity::canSpawn, RegisterSpawnPlacementsEvent.Operation.OR);
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"type": "neoforge:add_spawns",
|
||||
"biomes": "#antarchy:mantis_overworld_spawn_biomes",
|
||||
"spawners": [
|
||||
{
|
||||
"type": "antarchy:mantis",
|
||||
"weight": 8,
|
||||
"minCount": 1,
|
||||
"maxCount": 1
|
||||
},
|
||||
{
|
||||
"type": "antarchy:alpha_mantis",
|
||||
"weight": 1,
|
||||
"minCount": 1,
|
||||
"maxCount": 1
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in new issue
Block a user