toreterror subtitles, alpha mantis turning revert, scorpion and cloud shark updates (from dev, without rolly polly)
No files matched your search
@@ -233,23 +233,23 @@ public final class AntarchySettings {
|
||||
private static final int reverieAmbientTargetMaxAgeTicks = 40;
|
||||
private static final int reverieAmbientPulseIntervalMinTicks = 12;
|
||||
private static final int reverieAmbientPulseIntervalMaxTicks = 19;
|
||||
private static double emperorScorpionHealth = 100.0D;
|
||||
private static double emperorScorpionAttackDamage = 12.0D;
|
||||
private static double emperorScorpionHealth = 400.0D;
|
||||
private static double emperorScorpionAttackDamage = 28.0D;
|
||||
private static double emperorScorpionMovementSpeed = 0.32D;
|
||||
private static double emperorScorpionArmor = 6.0D;
|
||||
private static double emperorScorpionKnockbackResistance = 0.6D;
|
||||
private static double emperorScorpionFollowRange = 32.0D;
|
||||
private static double emperorScorpionArmor = 25.0D;
|
||||
private static double emperorScorpionKnockbackResistance = 0.8D;
|
||||
private static double emperorScorpionFollowRange = 40.0D;
|
||||
private static int emperorScorpionXpReward = 25;
|
||||
private static int emperorScorpionClawAnimTicks = 12;
|
||||
private static int emperorScorpionClawHitTick = 6;
|
||||
private static int emperorScorpionClawCooldownTicks = 16;
|
||||
private static int emperorScorpionStingAnimTicks = 18;
|
||||
private static int emperorScorpionStingHitTick = 9;
|
||||
private static int emperorScorpionStingCooldownTicks = 42;
|
||||
private static int emperorScorpionPoisonTicks = 100;
|
||||
private static int emperorScorpionWeaknessTicks = 80;
|
||||
private static int emperorScorpionSummonIntervalTicks = 180;
|
||||
private static int emperorScorpionMaxSummonedScorpions = 4;
|
||||
private static int emperorScorpionClawAnimTicks = 23;
|
||||
private static int emperorScorpionClawHitTick = 12;
|
||||
private static int emperorScorpionClawCooldownTicks = 28;
|
||||
private static int emperorScorpionStingAnimTicks = 25;
|
||||
private static int emperorScorpionStingHitTick = 13;
|
||||
private static int emperorScorpionStingCooldownTicks = 60;
|
||||
private static int emperorScorpionPoisonTicks = 300;
|
||||
private static int emperorScorpionWeaknessTicks = 120;
|
||||
private static int emperorScorpionSummonIntervalTicks = 140;
|
||||
private static int emperorScorpionMaxSummonedScorpions = 8;
|
||||
private static double scorpionHealth = 30.0D;
|
||||
private static double scorpionAttackDamage = 5.0D;
|
||||
private static double scorpionMovementSpeed = 0.29D;
|
||||
|
||||
@@ -6,6 +6,11 @@ import net.minecraft.resources.ResourceLocation;
|
||||
import software.bernie.geckolib.model.GeoModel;
|
||||
|
||||
public class CloudSharkModel extends GeoModel<CloudSharkEntity> {
|
||||
public static final ResourceLocation BASE_TEXTURE =
|
||||
ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "textures/entity/cloud_shark/cloud_shark.png");
|
||||
public static final ResourceLocation EMISSIVE_TEXTURE =
|
||||
ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "textures/entity/cloud_shark/cloud_shark_emissive.png");
|
||||
|
||||
@Override
|
||||
public ResourceLocation getModelResource(CloudSharkEntity animatable) {
|
||||
return ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "geo/cloud_shark.geo.json");
|
||||
@@ -13,7 +18,7 @@ public class CloudSharkModel extends GeoModel<CloudSharkEntity> {
|
||||
|
||||
@Override
|
||||
public ResourceLocation getTextureResource(CloudSharkEntity animatable) {
|
||||
return ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "textures/entity/cloud_shark.png");
|
||||
return BASE_TEXTURE;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -7,6 +7,9 @@ import software.bernie.geckolib.model.GeoModel;
|
||||
|
||||
public class EmperorScorpionModel extends GeoModel<EmperorScorpionEntity> {
|
||||
|
||||
public static final ResourceLocation EMISSIVE_TEXTURE =
|
||||
ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "textures/entity/emperor_scorpion/emperor_scorpion_emissive.png");
|
||||
|
||||
@Override
|
||||
public ResourceLocation getModelResource(EmperorScorpionEntity animatable) {
|
||||
return ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "geo/emperor_scorpion.geo.json");
|
||||
@@ -14,7 +17,7 @@ public class EmperorScorpionModel extends GeoModel<EmperorScorpionEntity> {
|
||||
|
||||
@Override
|
||||
public ResourceLocation getTextureResource(EmperorScorpionEntity animatable) {
|
||||
return ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "textures/entity/emperor_scorpion.png");
|
||||
return ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "textures/entity/emperor_scorpion/emperor_scorpion.png");
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -2,8 +2,17 @@ package com.craisinlord.antarchy.content.client.renderer;
|
||||
|
||||
import com.craisinlord.antarchy.content.client.model.CloudSharkModel;
|
||||
import com.craisinlord.antarchy.content.entity.cloud_shark.CloudSharkEntity;
|
||||
import com.mojang.blaze3d.vertex.PoseStack;
|
||||
import com.mojang.blaze3d.vertex.VertexConsumer;
|
||||
import net.minecraft.client.renderer.MultiBufferSource;
|
||||
import net.minecraft.client.renderer.RenderType;
|
||||
import net.minecraft.client.renderer.entity.EntityRendererProvider;
|
||||
import net.minecraft.client.renderer.texture.OverlayTexture;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import software.bernie.geckolib.cache.object.BakedGeoModel;
|
||||
import software.bernie.geckolib.renderer.GeoEntityRenderer;
|
||||
import software.bernie.geckolib.renderer.layer.GeoRenderLayer;
|
||||
|
||||
public class CloudSharkRenderer extends GeoEntityRenderer<CloudSharkEntity> {
|
||||
private static final float SHADOW_RADIUS = 0.6F;
|
||||
@@ -11,5 +20,37 @@ public class CloudSharkRenderer extends GeoEntityRenderer<CloudSharkEntity> {
|
||||
public CloudSharkRenderer(EntityRendererProvider.Context context) {
|
||||
super(context, new CloudSharkModel());
|
||||
this.shadowRadius = SHADOW_RADIUS;
|
||||
this.addRenderLayer(new CloudSharkEmissiveLayer(this));
|
||||
}
|
||||
|
||||
@Override
|
||||
public RenderType getRenderType(CloudSharkEntity animatable, ResourceLocation texture, @Nullable MultiBufferSource bufferSource, float partialTick) {
|
||||
return RenderType.entityCutoutNoCull(texture);
|
||||
}
|
||||
|
||||
private static final class CloudSharkEmissiveLayer extends GeoRenderLayer<CloudSharkEntity> {
|
||||
private CloudSharkEmissiveLayer(GeoEntityRenderer<CloudSharkEntity> renderer) {
|
||||
super(renderer);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void render(PoseStack poseStack, CloudSharkEntity animatable, BakedGeoModel bakedModel, @Nullable RenderType renderType,
|
||||
MultiBufferSource bufferSource, @Nullable VertexConsumer buffer, float partialTick,
|
||||
int packedLight, int packedOverlay) {
|
||||
RenderType emissiveType = RenderType.eyes(CloudSharkModel.EMISSIVE_TEXTURE);
|
||||
VertexConsumer emissiveBuffer = bufferSource.getBuffer(emissiveType);
|
||||
this.getRenderer().reRender(
|
||||
bakedModel,
|
||||
poseStack,
|
||||
bufferSource,
|
||||
animatable,
|
||||
emissiveType,
|
||||
emissiveBuffer,
|
||||
partialTick,
|
||||
0xF000F0,
|
||||
OverlayTexture.NO_OVERLAY,
|
||||
0xFFFFFFFF
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2,14 +2,59 @@ package com.craisinlord.antarchy.content.client.renderer;
|
||||
|
||||
import com.craisinlord.antarchy.content.client.model.EmperorScorpionModel;
|
||||
import com.craisinlord.antarchy.content.entity.EmperorScorpionEntity;
|
||||
import com.mojang.blaze3d.vertex.PoseStack;
|
||||
import com.mojang.blaze3d.vertex.VertexConsumer;
|
||||
import net.minecraft.client.renderer.MultiBufferSource;
|
||||
import net.minecraft.client.renderer.RenderType;
|
||||
import net.minecraft.client.renderer.entity.EntityRendererProvider;
|
||||
import net.minecraft.client.renderer.texture.OverlayTexture;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import software.bernie.geckolib.cache.object.BakedGeoModel;
|
||||
import software.bernie.geckolib.renderer.GeoEntityRenderer;
|
||||
import software.bernie.geckolib.renderer.layer.GeoRenderLayer;
|
||||
|
||||
public class EmperorScorpionRenderer extends GeoEntityRenderer<EmperorScorpionEntity> {
|
||||
|
||||
public EmperorScorpionRenderer(EntityRendererProvider.Context context) {
|
||||
super(context, new EmperorScorpionModel());
|
||||
this.shadowRadius = 3.0F;
|
||||
this.withScale(1.5F);
|
||||
this.addRenderLayer(new EmperorScorpionEmissiveLayer(this));
|
||||
}
|
||||
|
||||
@Override
|
||||
public RenderType getRenderType(EmperorScorpionEntity animatable, ResourceLocation texture, @Nullable MultiBufferSource bufferSource, float partialTick) {
|
||||
return RenderType.entityCutoutNoCull(texture);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected float getDeathMaxRotation(EmperorScorpionEntity animatable) {
|
||||
return 0.0F;
|
||||
}
|
||||
|
||||
private static final class EmperorScorpionEmissiveLayer extends GeoRenderLayer<EmperorScorpionEntity> {
|
||||
private EmperorScorpionEmissiveLayer(GeoEntityRenderer<EmperorScorpionEntity> renderer) {
|
||||
super(renderer);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void render(PoseStack poseStack, EmperorScorpionEntity animatable, BakedGeoModel bakedModel, @Nullable RenderType renderType,
|
||||
MultiBufferSource bufferSource, @Nullable VertexConsumer buffer, float partialTick,
|
||||
int packedLight, int packedOverlay) {
|
||||
RenderType emissiveType = RenderType.eyes(EmperorScorpionModel.EMISSIVE_TEXTURE);
|
||||
VertexConsumer emissiveBuffer = bufferSource.getBuffer(emissiveType);
|
||||
this.getRenderer().reRender(
|
||||
bakedModel,
|
||||
poseStack,
|
||||
bufferSource,
|
||||
animatable,
|
||||
emissiveType,
|
||||
emissiveBuffer,
|
||||
partialTick,
|
||||
0xF000F0,
|
||||
OverlayTexture.NO_OVERLAY,
|
||||
0xFFFFFFFF
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -48,40 +48,50 @@ import software.bernie.geckolib.animation.RawAnimation;
|
||||
import software.bernie.geckolib.util.GeckoLibUtil;
|
||||
|
||||
public class EmperorScorpionEntity extends Monster implements GeoEntity {
|
||||
private static final byte CLAW_ATTACK_ANIM_EVENT = 4;
|
||||
private static final byte SNAP_ATTACK_ANIM_EVENT = 4;
|
||||
private static final byte STING_ATTACK_ANIM_EVENT = 5;
|
||||
private static final byte AGRO_ANIM_EVENT = 6;
|
||||
|
||||
private static final int CLAW_ATTACK_ANIM_TICKS = 12;
|
||||
private static final int CLAW_ATTACK_HIT_TICK = 6;
|
||||
private static final int CLAW_ATTACK_COOLDOWN_TICKS = 16;
|
||||
private static final int STING_ATTACK_ANIM_TICKS = 18;
|
||||
private static final int STING_ATTACK_HIT_TICK = 9;
|
||||
private static final int STING_ATTACK_COOLDOWN_TICKS = 42;
|
||||
private static final int POISON_DURATION_TICKS = 100;
|
||||
private static final int WEAKNESS_DURATION_TICKS = 80;
|
||||
private static final int SUMMON_INTERVAL_TICKS = 180;
|
||||
private static final int MAX_SUMMONED_SCORPIONS = 4;
|
||||
private static final int SNAP_ATTACK_ANIM_TICKS = 23;
|
||||
private static final int SNAP_ATTACK_HIT_TICK = 12;
|
||||
private static final int SNAP_ATTACK_COOLDOWN_TICKS = 28;
|
||||
private static final int STING_ATTACK_ANIM_TICKS = 25;
|
||||
private static final int STING_ATTACK_HIT_TICK = 13;
|
||||
private static final int STING_ATTACK_COOLDOWN_TICKS = 60;
|
||||
private static final int AGRO_ANIM_TICKS = 30;
|
||||
private static final int DEATH_ANIM_TICKS = 40;
|
||||
private static final float STING_DAMAGE = 18.0F;
|
||||
private static final double STING_AOE_RADIUS = 5.0D;
|
||||
private static final int POISON_DURATION_TICKS = 300;
|
||||
private static final int WEAKNESS_DURATION_TICKS = 120;
|
||||
private static final int SUMMON_INTERVAL_TICKS = 140;
|
||||
private static final int MAX_SUMMONED_SCORPIONS = 8;
|
||||
private static final String EMPEROR_SUMMON_TAG = "antarchy_emperor_summoned";
|
||||
|
||||
private static final ResourceKey<Level> THORAXIS_KEY =
|
||||
ResourceKey.create(Registries.DIMENSION,
|
||||
ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "thoraxis"));
|
||||
|
||||
private static final RawAnimation IDLE_ANIM = RawAnimation.begin().thenLoop("idle");
|
||||
private static final RawAnimation WALK_ANIM = RawAnimation.begin().thenLoop("walk");
|
||||
private static final RawAnimation ATTACK_ANIM = RawAnimation.begin().thenPlay("attack");
|
||||
private static final RawAnimation IDLE_ANIM = RawAnimation.begin().thenLoop("idle");
|
||||
private static final RawAnimation WALK_ANIM = RawAnimation.begin().thenLoop("walk");
|
||||
private static final RawAnimation SNAP_ANIM = RawAnimation.begin().thenPlay("snap");
|
||||
private static final RawAnimation STING_ANIM = RawAnimation.begin().thenPlay("sting");
|
||||
private static final RawAnimation AGRO_ANIM = RawAnimation.begin().thenPlay("agro");
|
||||
private static final RawAnimation DEATH_ANIM = RawAnimation.begin().thenPlay("death");
|
||||
|
||||
private final AnimatableInstanceCache geoCache = GeckoLibUtil.createInstanceCache(this);
|
||||
private final ServerBossEvent bossEvent =
|
||||
new ServerBossEvent(this.getDisplayName(), BossEvent.BossBarColor.RED, BossEvent.BossBarOverlay.PROGRESS);
|
||||
new ServerBossEvent(this.getDisplayName(), BossEvent.BossBarColor.PURPLE, BossEvent.BossBarOverlay.PROGRESS);
|
||||
|
||||
private int attackAnimTicks = 0;
|
||||
private int attackHitTick = 0;
|
||||
private int attackCooldownTicks = 0;
|
||||
private int stingCooldownTicks = 0;
|
||||
private int agroAnimTicks = 0;
|
||||
private int summonCooldown = 0;
|
||||
private boolean attackDamageApplied = false;
|
||||
private boolean stingAttackActive = false;
|
||||
private boolean hasAgroed = false;
|
||||
@Nullable private LivingEntity attackTarget;
|
||||
|
||||
public EmperorScorpionEntity(EntityType<? extends EmperorScorpionEntity> entityType, Level level) {
|
||||
@@ -92,12 +102,13 @@ public class EmperorScorpionEntity extends Monster implements GeoEntity {
|
||||
|
||||
public static AttributeSupplier.Builder createAttributes() {
|
||||
return Monster.createMonsterAttributes()
|
||||
.add(Attributes.MAX_HEALTH, 200.0D)
|
||||
.add(Attributes.MAX_HEALTH, 400.0D)
|
||||
.add(Attributes.MOVEMENT_SPEED, 0.32D)
|
||||
.add(Attributes.ATTACK_DAMAGE, 18.0D)
|
||||
.add(Attributes.ARMOR, 6.0D)
|
||||
.add(Attributes.KNOCKBACK_RESISTANCE, 0.6D)
|
||||
.add(Attributes.FOLLOW_RANGE, 32.0D);
|
||||
.add(Attributes.ATTACK_DAMAGE, 28.0D)
|
||||
.add(Attributes.ARMOR, 25.0D)
|
||||
.add(Attributes.ARMOR_TOUGHNESS, 10.0D)
|
||||
.add(Attributes.KNOCKBACK_RESISTANCE, 0.8D)
|
||||
.add(Attributes.FOLLOW_RANGE, 40.0D);
|
||||
}
|
||||
|
||||
public static boolean canSpawn(EntityType<EmperorScorpionEntity> entityType, ServerLevelAccessor level,
|
||||
@@ -154,10 +165,27 @@ public class EmperorScorpionEntity extends Monster implements GeoEntity {
|
||||
this.resetAttackState();
|
||||
}
|
||||
}
|
||||
if (this.agroAnimTicks > 0) {
|
||||
this.agroAnimTicks--;
|
||||
}
|
||||
if (this.summonCooldown > 0) {
|
||||
this.summonCooldown--;
|
||||
}
|
||||
|
||||
if (!this.level().isClientSide) {
|
||||
if (this.getTarget() != null) {
|
||||
if (!this.hasAgroed) {
|
||||
this.hasAgroed = true;
|
||||
this.agroAnimTicks = AGRO_ANIM_TICKS;
|
||||
this.getNavigation().stop();
|
||||
this.level().broadcastEntityEvent(this, AGRO_ANIM_EVENT);
|
||||
this.playSound(AntarchySoundEvents.EMPEROR_SCORPION_ROAR.get(), 2.0F, 0.7F);
|
||||
}
|
||||
} else {
|
||||
this.hasAgroed = false;
|
||||
}
|
||||
}
|
||||
|
||||
if (this.getTarget() != null
|
||||
&& this.summonCooldown <= 0
|
||||
&& !this.isAttackLocked()
|
||||
@@ -175,7 +203,7 @@ public class EmperorScorpionEntity extends Monster implements GeoEntity {
|
||||
return;
|
||||
}
|
||||
|
||||
int toSpawn = 1 + this.random.nextInt(2);
|
||||
int toSpawn = 2 + this.random.nextInt(2);
|
||||
EntityType<ScorpionEntity> scorpionType = AntarchyObjects.SCORPION.get();
|
||||
for (int i = 0; i < toSpawn; i++) {
|
||||
double offsetX = (this.random.nextDouble() - 0.5D) * 6.0D;
|
||||
@@ -198,10 +226,10 @@ public class EmperorScorpionEntity extends Monster implements GeoEntity {
|
||||
|
||||
@Override
|
||||
public boolean doHurtTarget(Entity target) {
|
||||
return this.performStingAttack(target);
|
||||
return this.performSnapAttack(target);
|
||||
}
|
||||
|
||||
private boolean performClawAttack(Entity target) {
|
||||
private boolean performSnapAttack(Entity target) {
|
||||
boolean hurt = super.doHurtTarget(target);
|
||||
if (hurt) {
|
||||
this.playSound(AntarchySoundEvents.EMPEROR_SCORPION_ATTACK.get(), 0.9F, 0.95F + this.random.nextFloat() * 0.08F);
|
||||
@@ -210,32 +238,39 @@ public class EmperorScorpionEntity extends Monster implements GeoEntity {
|
||||
}
|
||||
|
||||
private boolean performStingAttack(Entity target) {
|
||||
boolean hurt;
|
||||
if (this.level() instanceof ServerLevel serverLevel) {
|
||||
hurt = target.hurt(AntarchyDamageSources.emperorScorpionSting(serverLevel, this),
|
||||
(float) this.getAttributeValue(Attributes.ATTACK_DAMAGE));
|
||||
} else {
|
||||
hurt = super.doHurtTarget(target);
|
||||
if (!(this.level() instanceof ServerLevel serverLevel)) {
|
||||
return false;
|
||||
}
|
||||
if (hurt && target instanceof LivingEntity living) {
|
||||
int poisonDuration = this.level().getDifficulty() == Difficulty.HARD
|
||||
? POISON_DURATION_TICKS * 2 : POISON_DURATION_TICKS;
|
||||
living.addEffect(new MobEffectInstance(MobEffects.POISON, poisonDuration, 0));
|
||||
living.addEffect(new MobEffectInstance(MobEffects.WEAKNESS, WEAKNESS_DURATION_TICKS, 0));
|
||||
boolean hurtAny = false;
|
||||
for (LivingEntity living : serverLevel.getEntitiesOfClass(LivingEntity.class,
|
||||
this.getBoundingBox().inflate(STING_AOE_RADIUS),
|
||||
entity -> entity != this
|
||||
&& entity.isAlive()
|
||||
&& !(entity instanceof EmperorScorpionEntity)
|
||||
&& !(entity instanceof ScorpionEntity))) {
|
||||
if (living.hurt(AntarchyDamageSources.emperorScorpionSting(serverLevel, this), STING_DAMAGE)) {
|
||||
hurtAny = true;
|
||||
int poisonDuration = this.level().getDifficulty() == Difficulty.HARD
|
||||
? POISON_DURATION_TICKS * 2 : POISON_DURATION_TICKS;
|
||||
living.addEffect(new MobEffectInstance(MobEffects.POISON, poisonDuration, 1));
|
||||
living.addEffect(new MobEffectInstance(MobEffects.WEAKNESS, WEAKNESS_DURATION_TICKS, 0));
|
||||
}
|
||||
}
|
||||
if (hurtAny) {
|
||||
this.playSound(AntarchySoundEvents.EMPEROR_SCORPION_ATTACK.get(), 1.0F, 0.9F + this.random.nextFloat() * 0.08F);
|
||||
}
|
||||
return hurt;
|
||||
return hurtAny;
|
||||
}
|
||||
|
||||
private void beginClawAttack(LivingEntity target) {
|
||||
private void beginSnapAttack(LivingEntity target) {
|
||||
this.attackTarget = target;
|
||||
this.attackAnimTicks = CLAW_ATTACK_ANIM_TICKS;
|
||||
this.attackHitTick = CLAW_ATTACK_HIT_TICK;
|
||||
this.attackCooldownTicks = CLAW_ATTACK_COOLDOWN_TICKS;
|
||||
this.attackAnimTicks = SNAP_ATTACK_ANIM_TICKS;
|
||||
this.attackHitTick = SNAP_ATTACK_HIT_TICK;
|
||||
this.attackCooldownTicks = SNAP_ATTACK_COOLDOWN_TICKS;
|
||||
this.attackDamageApplied = false;
|
||||
this.stingAttackActive = false;
|
||||
this.getNavigation().stop();
|
||||
this.level().broadcastEntityEvent(this, CLAW_ATTACK_ANIM_EVENT);
|
||||
this.level().broadcastEntityEvent(this, SNAP_ATTACK_ANIM_EVENT);
|
||||
this.commitLunge(target, 0.42D, 0.10D);
|
||||
}
|
||||
|
||||
@@ -259,14 +294,13 @@ public class EmperorScorpionEntity extends Monster implements GeoEntity {
|
||||
}
|
||||
|
||||
this.getLookControl().setLookAt(this.attackTarget, 30.0F, 30.0F);
|
||||
if (!this.attackDamageApplied
|
||||
&& this.attackAnimTicks == this.attackHitTick
|
||||
&& this.distanceToSqr(this.attackTarget) <= this.getAttackReachSqr(this.attackTarget)) {
|
||||
this.attackDamageApplied = true;
|
||||
if (!this.attackDamageApplied && this.attackAnimTicks == this.attackHitTick) {
|
||||
if (this.stingAttackActive) {
|
||||
this.attackDamageApplied = true;
|
||||
this.performStingAttack(this.attackTarget);
|
||||
} else {
|
||||
this.performClawAttack(this.attackTarget);
|
||||
} else if (this.distanceToSqr(this.attackTarget) <= this.getAttackReachSqr(this.attackTarget)) {
|
||||
this.attackDamageApplied = true;
|
||||
this.performSnapAttack(this.attackTarget);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -306,13 +340,13 @@ public class EmperorScorpionEntity extends Monster implements GeoEntity {
|
||||
}
|
||||
|
||||
private boolean isAttackLocked() {
|
||||
return this.attackAnimTicks > 0;
|
||||
return this.attackAnimTicks > 0 || this.agroAnimTicks > 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handleEntityEvent(byte id) {
|
||||
if (id == CLAW_ATTACK_ANIM_EVENT) {
|
||||
this.attackAnimTicks = CLAW_ATTACK_ANIM_TICKS;
|
||||
if (id == SNAP_ATTACK_ANIM_EVENT) {
|
||||
this.attackAnimTicks = SNAP_ATTACK_ANIM_TICKS;
|
||||
this.attackDamageApplied = false;
|
||||
this.stingAttackActive = false;
|
||||
return;
|
||||
@@ -323,6 +357,10 @@ public class EmperorScorpionEntity extends Monster implements GeoEntity {
|
||||
this.stingAttackActive = true;
|
||||
return;
|
||||
}
|
||||
if (id == AGRO_ANIM_EVENT) {
|
||||
this.agroAnimTicks = AGRO_ANIM_TICKS;
|
||||
return;
|
||||
}
|
||||
super.handleEntityEvent(id);
|
||||
}
|
||||
|
||||
@@ -332,8 +370,14 @@ public class EmperorScorpionEntity extends Monster implements GeoEntity {
|
||||
}
|
||||
|
||||
private PlayState mainController(AnimationState<EmperorScorpionEntity> state) {
|
||||
if (this.isDeadOrDying()) {
|
||||
return state.setAndContinue(DEATH_ANIM);
|
||||
}
|
||||
if (this.attackAnimTicks > 0) {
|
||||
return state.setAndContinue(ATTACK_ANIM);
|
||||
return state.setAndContinue(this.stingAttackActive ? STING_ANIM : SNAP_ANIM);
|
||||
}
|
||||
if (this.agroAnimTicks > 0) {
|
||||
return state.setAndContinue(AGRO_ANIM);
|
||||
}
|
||||
if (state.isMoving()) {
|
||||
return state.setAndContinue(WALK_ANIM);
|
||||
@@ -341,6 +385,15 @@ public class EmperorScorpionEntity extends Monster implements GeoEntity {
|
||||
return state.setAndContinue(IDLE_ANIM);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void tickDeath() {
|
||||
this.deathTime++;
|
||||
if (this.deathTime >= DEATH_ANIM_TICKS && !this.level().isClientSide && !this.isRemoved()) {
|
||||
this.level().broadcastEntityEvent(this, (byte) 60);
|
||||
this.remove(RemovalReason.KILLED);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public AnimatableInstanceCache getAnimatableInstanceCache() {
|
||||
return this.geoCache;
|
||||
@@ -421,7 +474,7 @@ public class EmperorScorpionEntity extends Monster implements GeoEntity {
|
||||
if (EmperorScorpionEntity.this.shouldUseSting(enemy)) {
|
||||
EmperorScorpionEntity.this.beginStingAttack(enemy);
|
||||
} else {
|
||||
EmperorScorpionEntity.this.beginClawAttack(enemy);
|
||||
EmperorScorpionEntity.this.beginSnapAttack(enemy);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -71,7 +71,6 @@ 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);
|
||||
@@ -208,14 +207,6 @@ 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();
|
||||
}
|
||||
@@ -330,31 +321,6 @@ 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;
|
||||
|
||||
@@ -7,8 +7,8 @@
|
||||
"texture_width": 128,
|
||||
"texture_height": 128,
|
||||
"visible_bounds_width": 6,
|
||||
"visible_bounds_height": 3.5,
|
||||
"visible_bounds_offset": [0, 1.25, 0]
|
||||
"visible_bounds_height": 5,
|
||||
"visible_bounds_offset": [0, 1.5, 0]
|
||||
},
|
||||
"bones": [
|
||||
{
|
||||
@@ -22,7 +22,6 @@
|
||||
"cubes": [
|
||||
{"origin": [-6.5, 3, -22], "size": [13, 13, 25], "inflate": 0.01, "uv": [0, 0]},
|
||||
{"origin": [-1, 16, -12], "size": [2, 5, 9], "inflate": 0.01, "uv": [0, 0]},
|
||||
{"origin": [-1, 24, -9], "size": [2, 3, 16], "inflate": 0.1, "uv": [0, 99]},
|
||||
{"origin": [-1, 21, -9], "size": [2, 7, 6], "inflate": 0.01, "uv": [51, 0]}
|
||||
]
|
||||
},
|
||||
@@ -57,36 +56,68 @@
|
||||
{"origin": [-4.5, 10, -49], "size": [9, 6, 8], "uv": [63, 85]}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "right_wing",
|
||||
"parent": "head",
|
||||
"pivot": [-8, 16, -27.5],
|
||||
"cubes": [
|
||||
{"origin": [-22, 16, -33], "size": [14, 0, 11], "uv": [40, 105]}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "right_wing2",
|
||||
"parent": "right_wing",
|
||||
"pivot": [-22, 16, -27.5],
|
||||
"cubes": [
|
||||
{"origin": [-36, 16, -33], "size": [14, 0, 11], "uv": [89, 51]}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "left_wing",
|
||||
"parent": "head",
|
||||
"pivot": [8, 16, -27.5],
|
||||
"cubes": [
|
||||
{"origin": [8, 16, -33], "size": [14, 0, 11], "uv": [40, 105], "mirror": true}
|
||||
{"origin": [8, 16, -33], "size": [16, 0, 15], "uv": [48, 99], "mirror": true}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "left_wing2",
|
||||
"parent": "left_wing",
|
||||
"pivot": [22, 16, -27.5],
|
||||
"pivot": [24, 16, -27.5],
|
||||
"cubes": [
|
||||
{"origin": [22, 16, -33], "size": [14, 0, 11], "uv": [89, 51], "mirror": true}
|
||||
{"origin": [24, 16, -35], "size": [16, 0, 17], "uv": [-17, 105], "mirror": true}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "left_wing_back",
|
||||
"parent": "head",
|
||||
"pivot": [8, 16, -2.5],
|
||||
"cubes": [
|
||||
{"origin": [8, 16, -8], "size": [16, 0, 15], "uv": [48, 99], "mirror": true}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "left_wing_back2",
|
||||
"parent": "left_wing_back",
|
||||
"pivot": [24, 16, -2.5],
|
||||
"cubes": [
|
||||
{"origin": [24, 16, -10], "size": [16, 0, 17], "uv": [-17, 105], "mirror": true}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "right_wing_back",
|
||||
"parent": "head",
|
||||
"pivot": [-8, 16, -2.5],
|
||||
"cubes": [
|
||||
{"origin": [-24, 16, -8], "size": [16, 0, 15], "uv": [48, 99]}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "right_wing_back2",
|
||||
"parent": "right_wing_back",
|
||||
"pivot": [-24, 16, -2.5],
|
||||
"cubes": [
|
||||
{"origin": [-40, 16, -10], "size": [16, 0, 17], "uv": [-17, 105]}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "right_wing",
|
||||
"parent": "head",
|
||||
"pivot": [-8, 16, -27.5],
|
||||
"cubes": [
|
||||
{"origin": [-24, 16, -33], "size": [16, 0, 15], "uv": [48, 99]}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "right_wing2",
|
||||
"parent": "right_wing",
|
||||
"pivot": [-24, 16, -27.5],
|
||||
"cubes": [
|
||||
{"origin": [-40, 16, -35], "size": [16, 0, 17], "uv": [-17, 105]}
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -94,7 +125,10 @@
|
||||
"parent": "head",
|
||||
"pivot": [0, 17.5, -37],
|
||||
"cubes": [
|
||||
{"origin": [-4, 17, -41], "size": [8, 1, 8], "uv": [96, 108]}
|
||||
{"origin": [-4, 17, -41], "size": [1, 2, 8], "uv": [32, 105]},
|
||||
{"origin": [-3, 17, -41], "size": [6, 2, 1], "uv": [42, 105]},
|
||||
{"origin": [-3, 17, -34], "size": [6, 2, 1], "uv": [42, 115]},
|
||||
{"origin": [3, 17, -41], "size": [1, 2, 8], "uv": [32, 115]}
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -130,38 +164,6 @@
|
||||
{"origin": [4.5, 4, -17], "size": [12, 3, 10], "inflate": 0.01, "uv": [0, 65], "mirror": true},
|
||||
{"origin": [16.5, 4, -14], "size": [7, 3, 7], "inflate": 0.01, "uv": [90, 73], "mirror": true}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "right_wing3",
|
||||
"parent": "torso",
|
||||
"pivot": [-9, 16, 1.5],
|
||||
"cubes": [
|
||||
{"origin": [-23, 16, -4], "size": [14, 0, 11], "uv": [40, 105]}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "right_wing4",
|
||||
"parent": "right_wing3",
|
||||
"pivot": [-23, 16, 1.5],
|
||||
"cubes": [
|
||||
{"origin": [-37, 16, -4], "size": [14, 0, 11], "uv": [89, 51]}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "left_wing3",
|
||||
"parent": "torso",
|
||||
"pivot": [9, 16, 1.5],
|
||||
"cubes": [
|
||||
{"origin": [9, 16, -4], "size": [14, 0, 11], "uv": [40, 105], "mirror": true}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "left_wing4",
|
||||
"parent": "left_wing3",
|
||||
"pivot": [23, 16, 1.5],
|
||||
"cubes": [
|
||||
{"origin": [23, 16, -4], "size": [14, 0, 11], "uv": [89, 51], "mirror": true}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -5,163 +5,283 @@
|
||||
"description": {
|
||||
"identifier": "geometry.unknown",
|
||||
"texture_width": 128,
|
||||
"texture_height": 128,
|
||||
"visible_bounds_width": 12,
|
||||
"texture_height": 256,
|
||||
"visible_bounds_width": 15,
|
||||
"visible_bounds_height": 4.5,
|
||||
"visible_bounds_offset": [0, 1.75, 0]
|
||||
},
|
||||
"bones": [
|
||||
{
|
||||
"name": "scorpion_emperor",
|
||||
"pivot": [0, 6.85714, 5.25]
|
||||
"name": "Emperor_scorpion",
|
||||
"pivot": [0, 8, 3]
|
||||
},
|
||||
{
|
||||
"name": "l_leg3",
|
||||
"parent": "scorpion_emperor",
|
||||
"pivot": [10, 6.5, 14.5],
|
||||
"rotation": [0, 0, 15],
|
||||
"name": "body",
|
||||
"parent": "Emperor_scorpion",
|
||||
"pivot": [0, 13.77778, 4.77778]
|
||||
},
|
||||
{
|
||||
"name": "right_leg3",
|
||||
"parent": "body",
|
||||
"pivot": [-16, 14.5, 1.5],
|
||||
"cubes": [
|
||||
{"origin": [9.5, 5, 12], "size": [21, 3, 5], "uv": [0, 113], "mirror": true}
|
||||
{"origin": [-48, 13, -2], "size": [32, 3, 7], "uv": [44, 214], "mirror": true}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "r_leg3",
|
||||
"parent": "scorpion_emperor",
|
||||
"pivot": [-10, 6.5, 14.5],
|
||||
"rotation": [0, 0, -15],
|
||||
"name": "right_leg4",
|
||||
"parent": "right_leg3",
|
||||
"pivot": [-48, 16, 1.5],
|
||||
"cubes": [
|
||||
{"origin": [-30.5, 5, 12], "size": [21, 3, 5], "uv": [0, 113]}
|
||||
{"origin": [-80, 13, -2], "size": [32, 3, 7], "inflate": 0.1, "uv": [44, 224], "mirror": true},
|
||||
{"origin": [-97, 12, -3], "size": [17, 5, 9], "uv": [67, 143], "mirror": true}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "l_leg2",
|
||||
"parent": "scorpion_emperor",
|
||||
"pivot": [10, 6.5, 4.5],
|
||||
"rotation": [0, 0, 15],
|
||||
"name": "right_leg",
|
||||
"parent": "body",
|
||||
"pivot": [-16, 14.5, -5.5],
|
||||
"cubes": [
|
||||
{"origin": [9.5, 5, 2], "size": [21, 3, 5], "uv": [0, 113], "mirror": true}
|
||||
{"origin": [-48, 13, -9], "size": [32, 3, 7], "uv": [44, 214], "mirror": true}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "r_leg2",
|
||||
"parent": "scorpion_emperor",
|
||||
"pivot": [-10, 6.5, 4.5],
|
||||
"rotation": [0, 0, -15],
|
||||
"name": "right_leg2",
|
||||
"parent": "right_leg",
|
||||
"pivot": [-48, 16, -5.5],
|
||||
"cubes": [
|
||||
{"origin": [-30.5, 5, 2], "size": [21, 3, 5], "uv": [0, 113]}
|
||||
{"origin": [-80, 13, -9], "size": [32, 3, 7], "inflate": 0.1, "uv": [44, 224], "mirror": true},
|
||||
{"origin": [-97, 12, -10], "size": [17, 5, 9], "uv": [67, 143], "mirror": true}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "l_leg",
|
||||
"parent": "scorpion_emperor",
|
||||
"pivot": [10, 6.5, -4.5],
|
||||
"rotation": [0, 0, 15],
|
||||
"name": "left_leg",
|
||||
"parent": "body",
|
||||
"pivot": [16, 14.5, -5.5],
|
||||
"cubes": [
|
||||
{"origin": [9.5, 5, -7], "size": [21, 3, 5], "uv": [0, 113], "mirror": true}
|
||||
{"origin": [16, 13, -9], "size": [32, 3, 7], "uv": [44, 214]}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "r_leg",
|
||||
"parent": "scorpion_emperor",
|
||||
"pivot": [-10, 6.5, -4.5],
|
||||
"rotation": [0, 0, -15],
|
||||
"name": "left_leg2",
|
||||
"parent": "left_leg",
|
||||
"pivot": [48, 16, -5.5],
|
||||
"cubes": [
|
||||
{"origin": [-30.5, 5, -7], "size": [21, 3, 5], "uv": [0, 113]}
|
||||
{"origin": [48, 13, -9], "size": [32, 3, 7], "inflate": 0.1, "uv": [44, 224]},
|
||||
{"origin": [80, 12, -10], "size": [17, 5, 9], "uv": [67, 143]}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "left_leg3",
|
||||
"parent": "body",
|
||||
"pivot": [16, 14.5, 1.5],
|
||||
"cubes": [
|
||||
{"origin": [16, 13, -2], "size": [32, 3, 7], "uv": [44, 214]}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "left_leg4",
|
||||
"parent": "left_leg3",
|
||||
"pivot": [48, 16, 1.5],
|
||||
"cubes": [
|
||||
{"origin": [48, 13, -2], "size": [32, 3, 7], "inflate": 0.1, "uv": [44, 224]},
|
||||
{"origin": [80, 12, -3], "size": [17, 5, 9], "uv": [67, 143]}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "left_leg_back",
|
||||
"parent": "body",
|
||||
"pivot": [16, 14.5, 8.5],
|
||||
"cubes": [
|
||||
{"origin": [16, 13, 5], "size": [32, 3, 7], "uv": [44, 214]}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "left_leg_back2",
|
||||
"parent": "left_leg_back",
|
||||
"pivot": [48, 16, 8.5],
|
||||
"cubes": [
|
||||
{"origin": [48, 13, 5], "size": [32, 3, 7], "inflate": 0.1, "uv": [44, 224]},
|
||||
{"origin": [80, 12, 4], "size": [17, 5, 9], "uv": [67, 143]}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "right_leg_back",
|
||||
"parent": "body",
|
||||
"pivot": [-16, 14.5, 8.5],
|
||||
"cubes": [
|
||||
{"origin": [-48, 13, 5], "size": [32, 3, 7], "uv": [44, 214], "mirror": true}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "right_leg_back2",
|
||||
"parent": "right_leg_back",
|
||||
"pivot": [-48, 16, 8.5],
|
||||
"cubes": [
|
||||
{"origin": [-80, 13, 5], "size": [32, 3, 7], "inflate": 0.1, "uv": [44, 224], "mirror": true},
|
||||
{"origin": [-97, 12, 4], "size": [17, 5, 9], "uv": [67, 143], "mirror": true}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "left_leg_back3",
|
||||
"parent": "body",
|
||||
"pivot": [16, 14.5, 15.5],
|
||||
"cubes": [
|
||||
{"origin": [16, 13, 12], "size": [32, 3, 7], "uv": [44, 214]}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "left_leg_back4",
|
||||
"parent": "left_leg_back3",
|
||||
"pivot": [48, 16, 15.5],
|
||||
"cubes": [
|
||||
{"origin": [48, 13, 12], "size": [32, 3, 7], "inflate": 0.1, "uv": [44, 224]},
|
||||
{"origin": [80, 12, 11], "size": [17, 5, 9], "uv": [67, 143]}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "right_leg_back3",
|
||||
"parent": "body",
|
||||
"pivot": [-16, 14.5, 15.5],
|
||||
"cubes": [
|
||||
{"origin": [-48, 13, 12], "size": [32, 3, 7], "uv": [44, 214], "mirror": true}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "right_leg_back4",
|
||||
"parent": "right_leg_back3",
|
||||
"pivot": [-48, 16, 15.5],
|
||||
"cubes": [
|
||||
{"origin": [-80, 13, 12], "size": [32, 3, 7], "inflate": 0.1, "uv": [44, 224], "mirror": true},
|
||||
{"origin": [-97, 12, 11], "size": [17, 5, 9], "uv": [67, 143], "mirror": true}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "torso",
|
||||
"parent": "scorpion_emperor",
|
||||
"pivot": [0, 9, 7.75],
|
||||
"parent": "body",
|
||||
"pivot": [0, 8, 3],
|
||||
"cubes": [
|
||||
{"origin": [-10.5, 5, -10], "size": [21, 8, 27], "uv": [0, 0]},
|
||||
{"origin": [-8, 5, 17], "size": [16, 8, 11], "uv": [73, 109]},
|
||||
{"origin": [-9.5, 12.5, 13], "size": [4, 5, 0], "uv": [0, 21]},
|
||||
{"origin": [-4.5, 12.5, 13], "size": [4, 5, 0], "uv": [0, 21]},
|
||||
{"origin": [0.5, 12.5, 13], "size": [4, 5, 0], "uv": [0, 21], "mirror": true},
|
||||
{"origin": [5.5, 12.5, 13], "size": [4, 5, 0], "uv": [0, 21], "mirror": true},
|
||||
{"origin": [5.5, 12.5, 3], "size": [4, 5, 0], "uv": [0, 21], "mirror": true},
|
||||
{"origin": [0.5, 12.5, 3], "size": [4, 5, 0], "uv": [0, 21], "mirror": true},
|
||||
{"origin": [-4.5, 12.5, 3], "size": [4, 5, 0], "uv": [0, 21]},
|
||||
{"origin": [-9.5, 12.5, 3], "size": [4, 5, 0], "uv": [0, 21]},
|
||||
{"origin": [-9.5, 12.5, -4], "size": [4, 5, 0], "uv": [0, 21]},
|
||||
{"origin": [5.5, 12.5, -4], "size": [4, 5, 0], "uv": [0, 21], "mirror": true},
|
||||
{"origin": [6.5, 12.5, 8], "size": [4, 5, 0], "uv": [0, 21], "mirror": true},
|
||||
{"origin": [1.5, 12.5, 8], "size": [4, 5, 0], "uv": [0, 21], "mirror": true},
|
||||
{"origin": [-4.5, 12.5, 8], "size": [4, 5, 0], "uv": [0, 21]},
|
||||
{"origin": [-10.5, 12.5, 8], "size": [4, 5, 0], "uv": [0, 21]}
|
||||
{"origin": [-16, 8, -13], "size": [32, 11, 32], "uv": [0, 100]}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "tail_base",
|
||||
"parent": "torso",
|
||||
"pivot": [0, 14.5, 18.25],
|
||||
"cubes": [
|
||||
{"origin": [-12, 8, 19], "size": [24, 11, 19], "uv": [0, 143]}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "tail",
|
||||
"parent": "torso",
|
||||
"pivot": [0, 7.00833, 27.99167],
|
||||
"parent": "tail_base",
|
||||
"pivot": [0, 15.5, 38],
|
||||
"cubes": [
|
||||
{"origin": [-4, 7, 28], "size": [8, 6, 13], "inflate": 0.1, "uv": [0, 92]}
|
||||
{"origin": [-6.5, 12, 38], "size": [13, 7, 25], "uv": [0, 173]}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "tail2",
|
||||
"parent": "tail",
|
||||
"pivot": [0, 7, 41],
|
||||
"pivot": [0, 15.5, 63],
|
||||
"cubes": [
|
||||
{"origin": [-4, 7, 41], "size": [8, 6, 13], "uv": [42, 92]}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "tail3",
|
||||
"parent": "tail2",
|
||||
"pivot": [0, 7, 54],
|
||||
"cubes": [
|
||||
{"origin": [-6.5, 7, 54], "size": [13, 11, 11], "uv": [62, 62]},
|
||||
{"origin": [-2.5, 18, 56], "size": [5, 17, 7], "uv": [84, 84]},
|
||||
{"origin": [0, 35, 56], "size": [0, 17, 7], "uv": [52, 104]},
|
||||
{"origin": [0, 4, 70], "size": [0, 17, 7], "pivot": [0, 12.5, 73.5], "rotation": [-90, 0, 0], "uv": [52, 104]},
|
||||
{"origin": [0, 24, 49], "size": [0, 17, 7], "pivot": [0, 32.5, 52.5], "rotation": [45, 0, 0], "uv": [52, 104]}
|
||||
{"origin": [-5.5, 12, 97], "size": [11, 22, 11], "uv": [0, 205]},
|
||||
{"origin": [0, 34, 100], "size": [0, 15, 8], "uv": [51, 165]},
|
||||
{"origin": [-4.5, 12, 63], "size": [9, 7, 34], "uv": [42, 173]}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "head",
|
||||
"parent": "torso",
|
||||
"pivot": [0, 9, -8],
|
||||
"pivot": [0, 13.5, -13],
|
||||
"cubes": [
|
||||
{"origin": [-13.5, 4, -25], "size": [27, 10, 17], "uv": [0, 35]},
|
||||
{"origin": [-5, 1, -27], "size": [2, 8, 3], "uv": [0, 62]},
|
||||
{"origin": [3, 1, -27], "size": [2, 8, 3], "uv": [0, 62], "mirror": true}
|
||||
{"origin": [-14, 8, -35], "size": [28, 11, 22], "uv": [0, 0]}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "r_claw",
|
||||
"name": "right_mandibule",
|
||||
"parent": "head",
|
||||
"pivot": [-12.5, 8, -16],
|
||||
"pivot": [-9.13234, 15.5, -35.71164],
|
||||
"cubes": [
|
||||
{"origin": [-18.5, 3, -28], "size": [6, 10, 17], "uv": [69, 0]}
|
||||
{"origin": [-8, 5, -37], "size": [7, 13, 8], "pivot": [0, 13.5, -46], "rotation": [0, -22.5, 0], "uv": [54, 79]}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "r_claw2",
|
||||
"parent": "r_claw",
|
||||
"pivot": [-15.25, 8, -11],
|
||||
"cubes": [
|
||||
{"origin": [-26.5, 3, -31], "size": [11, 10, 20], "inflate": 0.1, "uv": [0, 62]},
|
||||
{"origin": [-35.5, 8, -31], "size": [9, 0, 19], "uv": [25, 63]}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "l_claw",
|
||||
"name": "left_mandibule",
|
||||
"parent": "head",
|
||||
"pivot": [12.5, 8, -16],
|
||||
"pivot": [9.13234, 15.5, -35.71164],
|
||||
"cubes": [
|
||||
{"origin": [12.5, 3, -28], "size": [6, 10, 17], "uv": [69, 0], "mirror": true}
|
||||
{"origin": [1, 5, -37], "size": [7, 13, 8], "pivot": [0, 13.5, -46], "rotation": [0, 22.5, 0], "uv": [0, 81]}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "l_claw2",
|
||||
"parent": "l_claw",
|
||||
"pivot": [15.25, 8, -11],
|
||||
"name": "right_arm",
|
||||
"parent": "head",
|
||||
"pivot": [-10, 13, -21],
|
||||
"cubes": [
|
||||
{"origin": [26.5, 8, -31], "size": [9, 0, 19], "uv": [25, 63], "mirror": true},
|
||||
{"origin": [15.5, 3, -31], "size": [11, 10, 20], "inflate": 0.1, "uv": [0, 62], "mirror": true}
|
||||
{"origin": [-28, 11, -25], "size": [18, 4, 7], "uv": [64, 44]}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "right_arm2",
|
||||
"parent": "right_arm",
|
||||
"pivot": [-28, 13, -18],
|
||||
"cubes": [
|
||||
{"origin": [-46, 11, -25], "size": [18, 4, 7], "uv": [64, 33]}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "right_claw",
|
||||
"parent": "right_arm2",
|
||||
"pivot": [-44, 13, -21],
|
||||
"cubes": [
|
||||
{"origin": [-57, 9, -27], "size": [13, 8, 11], "uv": [54, 60]},
|
||||
{"origin": [-67, 10, -29], "size": [12, 6, 15], "uv": [0, 60]},
|
||||
{"origin": [-91, 10, -22], "size": [24, 6, 8], "uv": [0, 33]},
|
||||
{"origin": [-91, 10, -29], "size": [8, 6, 7], "uv": [84, 79]}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "right_claw_open",
|
||||
"parent": "right_claw",
|
||||
"pivot": [-58.5, 13, -22.5],
|
||||
"cubes": [
|
||||
{"origin": [-83, 10, -30], "size": [25, 6, 7], "inflate": -0.1, "uv": [0, 47]}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "left_arm",
|
||||
"parent": "head",
|
||||
"pivot": [10, 13, -21],
|
||||
"cubes": [
|
||||
{"origin": [10, 11, -25], "size": [18, 4, 7], "uv": [64, 44], "mirror": true}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "left_arm2",
|
||||
"parent": "left_arm",
|
||||
"pivot": [28, 13, -18],
|
||||
"cubes": [
|
||||
{"origin": [28, 11, -25], "size": [18, 4, 7], "uv": [64, 33], "mirror": true}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "left_claw",
|
||||
"parent": "left_arm2",
|
||||
"pivot": [44, 13, -21],
|
||||
"cubes": [
|
||||
{"origin": [44, 9, -27], "size": [13, 8, 11], "uv": [54, 60], "mirror": true},
|
||||
{"origin": [55, 10, -29], "size": [12, 6, 15], "uv": [0, 60], "mirror": true},
|
||||
{"origin": [67, 10, -22], "size": [24, 6, 8], "uv": [0, 33], "mirror": true},
|
||||
{"origin": [83, 10, -29], "size": [8, 6, 7], "uv": [84, 79], "mirror": true}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "left_claw_open",
|
||||
"parent": "left_claw",
|
||||
"pivot": [58.5, 13, -22.5],
|
||||
"cubes": [
|
||||
{"origin": [58, 10, -30], "size": [25, 6, 7], "inflate": -0.1, "uv": [0, 47], "mirror": true}
|
||||
]
|
||||
}
|
||||
]
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
"parent": "squirrel",
|
||||
"pivot": [0, 4, 2],
|
||||
"cubes": [
|
||||
{"origin": [0, 8.5, -6], "size": [0, 3, 11], "uv": [42, 50]}
|
||||
{"origin": [0, 8.5, -6], "size": [0, 3, 11], "uv": [23, 30]}
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -46,7 +46,8 @@
|
||||
"parent": "body",
|
||||
"pivot": [0, 6, -0.5],
|
||||
"cubes": [
|
||||
{"origin": [-3, 3.5, -6], "size": [6, 5, 11], "uv": [0, 0]}
|
||||
{"origin": [-3, 3.5, -6], "size": [6, 5, 11], "uv": [0, 0]},
|
||||
{"origin": [-3, 5.5, -6], "size": [6, 3, 11], "inflate": 0.2, "uv": [0, 41]}
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -54,7 +55,8 @@
|
||||
"parent": "body",
|
||||
"pivot": [0, 7.33333, -5.91667],
|
||||
"cubes": [
|
||||
{"origin": [-2, 5.5, -11], "size": [4, 4, 5], "uv": [17, 17]}
|
||||
{"origin": [-2, 4.5, -11], "size": [4, 5, 5], "uv": [17, 17]},
|
||||
{"origin": [-1, 3.75, -11.075], "size": [2, 2, 0], "uv": [25, 1]}
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -62,7 +64,7 @@
|
||||
"parent": "head",
|
||||
"pivot": [2.5, 6, -8.5],
|
||||
"cubes": [
|
||||
{"origin": [2, 5.5, -10], "size": [1, 1, 3], "uv": [19, 19], "mirror": true}
|
||||
{"origin": [2, 4.5, -9], "size": [1, 2, 2], "uv": [30, 18], "mirror": true}
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -70,7 +72,7 @@
|
||||
"parent": "head",
|
||||
"pivot": [-2.5, 6, -8.5],
|
||||
"cubes": [
|
||||
{"origin": [-3, 5.5, -10], "size": [1, 1, 3], "uv": [19, 19]}
|
||||
{"origin": [-3, 4.5, -9], "size": [1, 2, 2], "uv": [16, 18]}
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -78,7 +80,7 @@
|
||||
"parent": "head",
|
||||
"pivot": [1, 9.5, -6.5],
|
||||
"cubes": [
|
||||
{"origin": [1, 9.5, -7], "size": [2, 2, 1], "uv": [35, 12]}
|
||||
{"origin": [1, 9.5, -7], "size": [2, 2, 0], "uv": [36, 13]}
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -86,7 +88,7 @@
|
||||
"parent": "head",
|
||||
"pivot": [-1, 9.5, -6.5],
|
||||
"cubes": [
|
||||
{"origin": [-3, 9.5, -7], "size": [2, 2, 1], "uv": [35, 12], "mirror": true}
|
||||
{"origin": [-3, 9.5, -7], "size": [2, 2, 0], "uv": [36, 13], "mirror": true}
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -94,9 +96,9 @@
|
||||
"parent": "body",
|
||||
"pivot": [0, 6, 5],
|
||||
"cubes": [
|
||||
{"origin": [-1.5, 5, 5], "size": [3, 11, 3], "uv": [17, 27]},
|
||||
{"origin": [-1.5, 5, 5], "size": [3, 11, 3], "uv": [14, 27]},
|
||||
{"origin": [-1.5, 9, 8], "size": [3, 7, 5], "uv": [0, 17]},
|
||||
{"origin": [0, 9, 13], "size": [0, 7, 2], "uv": [60, 18]}
|
||||
{"origin": [0, 9, 13], "size": [0, 7, 2], "uv": [0, 0]}
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -112,7 +114,7 @@
|
||||
"parent": "left_arm",
|
||||
"pivot": [3, 5, -1],
|
||||
"cubes": [
|
||||
{"origin": [3, 0, -3.5], "size": [0, 5, 5], "uv": [30, 27]}
|
||||
{"origin": [3, 0, -3.5], "size": [0, 5, 5], "inflate": 0.01, "uv": [26, 22]}
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -128,7 +130,7 @@
|
||||
"parent": "right_arm",
|
||||
"pivot": [-3, 5, -1],
|
||||
"cubes": [
|
||||
{"origin": [-3, 0, -3.5], "size": [0, 5, 5], "uv": [30, 27], "mirror": true}
|
||||
{"origin": [-3, 0, -3.5], "size": [0, 5, 5], "inflate": 0.01, "uv": [26, 22], "mirror": true}
|
||||
]
|
||||
}
|
||||
]
|
||||
|
||||
@@ -18,7 +18,12 @@
|
||||
{
|
||||
"name": "body",
|
||||
"parent": "root",
|
||||
"pivot": [0, 65, 0],
|
||||
"pivot": [0, 69, 0]
|
||||
},
|
||||
{
|
||||
"name": "torso",
|
||||
"parent": "body",
|
||||
"pivot": [0, 61, 0],
|
||||
"cubes": [
|
||||
{"origin": [-10, 65, -18], "size": [20, 32, 36], "uv": [0, 164]},
|
||||
{"origin": [-12, 97, -46], "size": [24, 12, 80], "uv": [0, 0]},
|
||||
@@ -36,7 +41,7 @@
|
||||
},
|
||||
{
|
||||
"name": "right_eye",
|
||||
"parent": "body",
|
||||
"parent": "torso",
|
||||
"pivot": [-18.32132, 90.25, -12.53553],
|
||||
"cubes": [
|
||||
{"origin": [-22.7, 83.25, -17], "size": [5, 14, 14], "pivot": [-16.2, 90.25, -9], "rotation": [0, -45, 0], "uv": [0, 0]}
|
||||
@@ -44,7 +49,7 @@
|
||||
},
|
||||
{
|
||||
"name": "left_eye",
|
||||
"parent": "body",
|
||||
"parent": "torso",
|
||||
"pivot": [18.32132, 90.25, -12.53553],
|
||||
"cubes": [
|
||||
{"origin": [17.7, 83.25, -17], "size": [5, 14, 14], "pivot": [16.2, 90.25, -9], "rotation": [0, 45, 0], "uv": [0, 0], "mirror": true}
|
||||
@@ -52,7 +57,7 @@
|
||||
},
|
||||
{
|
||||
"name": "rightGrip",
|
||||
"parent": "body",
|
||||
"parent": "torso",
|
||||
"pivot": [-18, 78, -16],
|
||||
"cubes": [
|
||||
{"origin": [-22, 76, -28], "size": [8, 4, 12], "uv": [268, 268]}
|
||||
@@ -60,7 +65,7 @@
|
||||
},
|
||||
{
|
||||
"name": "leftGrip",
|
||||
"parent": "body",
|
||||
"parent": "torso",
|
||||
"pivot": [18, 78, -16],
|
||||
"cubes": [
|
||||
{"origin": [14, 76, -28], "size": [8, 4, 12], "uv": [268, 268], "mirror": true}
|
||||
@@ -68,7 +73,7 @@
|
||||
},
|
||||
{
|
||||
"name": "rightAntenna",
|
||||
"parent": "body",
|
||||
"parent": "torso",
|
||||
"pivot": [-10, 95, 14],
|
||||
"cubes": [
|
||||
{"origin": [-42, 93, 14], "size": [32, 4, 4], "uv": [208, 77]}
|
||||
@@ -76,7 +81,7 @@
|
||||
},
|
||||
{
|
||||
"name": "leftAntenna",
|
||||
"parent": "body",
|
||||
"parent": "torso",
|
||||
"pivot": [10, 95, 14],
|
||||
"cubes": [
|
||||
{"origin": [10, 93, 14], "size": [32, 4, 4], "uv": [208, 77], "mirror": true}
|
||||
@@ -84,7 +89,7 @@
|
||||
},
|
||||
{
|
||||
"name": "rightArm",
|
||||
"parent": "body",
|
||||
"parent": "torso",
|
||||
"pivot": [-12, 93, -17],
|
||||
"cubes": [
|
||||
{"origin": [-14, 91, -35], "size": [4, 4, 20], "uv": [64, 232]}
|
||||
@@ -109,7 +114,7 @@
|
||||
},
|
||||
{
|
||||
"name": "leftArm",
|
||||
"parent": "body",
|
||||
"parent": "torso",
|
||||
"pivot": [12, 93, -17],
|
||||
"cubes": [
|
||||
{"origin": [10, 91, -35], "size": [4, 4, 20], "uv": [64, 232], "mirror": true}
|
||||
@@ -134,7 +139,7 @@
|
||||
},
|
||||
{
|
||||
"name": "backRightThigh",
|
||||
"parent": "root",
|
||||
"parent": "body",
|
||||
"pivot": [-12, 65, 14],
|
||||
"cubes": [
|
||||
{"origin": [-28, 57, 10], "size": [16, 8, 8], "uv": [116, 268]}
|
||||
@@ -170,7 +175,7 @@
|
||||
},
|
||||
{
|
||||
"name": "backLeftThigh",
|
||||
"parent": "root",
|
||||
"parent": "body",
|
||||
"pivot": [12, 65, 14],
|
||||
"cubes": [
|
||||
{"origin": [12, 57, 10], "size": [16, 8, 8], "uv": [116, 268], "mirror": true}
|
||||
@@ -206,7 +211,7 @@
|
||||
},
|
||||
{
|
||||
"name": "frontLeftThigh",
|
||||
"parent": "root",
|
||||
"parent": "body",
|
||||
"pivot": [12, 65, -14],
|
||||
"cubes": [
|
||||
{"origin": [12, 57, -18], "size": [16, 8, 8], "uv": [116, 268], "mirror": true}
|
||||
@@ -242,7 +247,7 @@
|
||||
},
|
||||
{
|
||||
"name": "frontRightThigh",
|
||||
"parent": "root",
|
||||
"parent": "body",
|
||||
"pivot": [-12, 65, -14],
|
||||
"cubes": [
|
||||
{"origin": [-28, 57, -18], "size": [16, 8, 8], "uv": [116, 268]}
|
||||
|
||||
|
Before Width: | Height: | Size: 7.5 KiB After Width: | Height: | Size: 8.9 KiB |
|
After Width: | Height: | Size: 7.2 KiB |
|
After Width: | Height: | Size: 764 B |
|
Before Width: | Height: | Size: 6.9 KiB |
|
After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.1 KiB |
|
Before Width: | Height: | Size: 2.0 KiB After Width: | Height: | Size: 2.1 KiB |
|
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.1 KiB |
|
Before Width: | Height: | Size: 348 B After Width: | Height: | Size: 386 B |
|
Before Width: | Height: | Size: 314 B After Width: | Height: | Size: 383 B |
@@ -133,6 +133,18 @@ processResources {
|
||||
exclude "antarchy-common.mixins.json"
|
||||
}
|
||||
|
||||
// Fabric needs a refmap on the common mixin config, NeoForge only boots without one.
|
||||
// Generate a fabric-only copy with the refmap injected so the shared file stays refmap-free.
|
||||
def commonMixinConfig = project(':common').file('src/main/resources/antarchy-common.mixins.json')
|
||||
inputs.file commonMixinConfig
|
||||
|
||||
doLast {
|
||||
def json = new groovy.json.JsonSlurper().parse(commonMixinConfig)
|
||||
json.put('refmap', 'antarchy.refmap.json')
|
||||
new File(destinationDir, 'antarchy-common-fabric.mixins.json').text =
|
||||
groovy.json.JsonOutput.prettyPrint(groovy.json.JsonOutput.toJson(json))
|
||||
}
|
||||
|
||||
filesMatching("fabric.mod.json") {
|
||||
expand(
|
||||
version: project.version,
|
||||
|
||||
@@ -1600,8 +1600,8 @@ public final class AntarchyFabricContent {
|
||||
.build("basilisk"));
|
||||
public static final DeferredHolder<EntityType<?>, EntityType<EmperorScorpionEntity>> EMPEROR_SCORPION = ENTITY_TYPES.register("emperor_scorpion",
|
||||
() -> EntityType.Builder.of(EmperorScorpionEntity::new, MobCategory.MONSTER)
|
||||
.sized(4.05F, 1.35F)
|
||||
.clientTrackingRange(10)
|
||||
.sized(6.0F, 3.0F)
|
||||
.clientTrackingRange(12)
|
||||
.build("emperor_scorpion"));
|
||||
public static final DeferredHolder<EntityType<?>, EntityType<LucidEyeProjectileEntity>> LUCID_PEARL_PROJECTILE = ENTITY_TYPES.register("lucid_pearl_projectile",
|
||||
() -> EntityType.Builder.<LucidEyeProjectileEntity>of(LucidEyeProjectileEntity::new, MobCategory.MISC)
|
||||
@@ -1688,7 +1688,7 @@ public final class AntarchyFabricContent {
|
||||
public static final DeferredItem<DeferredSpawnEggItem> BASILISK_SPAWN_EGG = ITEMS.register("basilisk_spawn_egg",
|
||||
() -> new DeferredSpawnEggItem(BASILISK, 0x4A7C40, 0xD4A040, new Item.Properties()));
|
||||
public static final DeferredItem<DeferredSpawnEggItem> EMPEROR_SCORPION_SPAWN_EGG = ITEMS.register("emperor_scorpion_spawn_egg",
|
||||
() -> new DeferredSpawnEggItem(EMPEROR_SCORPION, 0x1A1A0A, 0x8B2200, new Item.Properties()));
|
||||
() -> new DeferredSpawnEggItem(EMPEROR_SCORPION, 0x3A3242, 0xD8CDB4, new Item.Properties()));
|
||||
public static final DeferredItem<LucidEyeItem> LUCID_EYE = ITEMS.register("lucid_eye",
|
||||
() -> new LucidEyeItem(new Item.Properties().stacksTo(16).rarity(Rarity.UNCOMMON)));
|
||||
public static final DeferredItem<LucidPearlItem> LUCID_PEARL = ITEMS.register("lucid_pearl",
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
]
|
||||
},
|
||||
"mixins": [
|
||||
"antarchy-common.mixins.json",
|
||||
"antarchy-common-fabric.mixins.json",
|
||||
"antarchy-fabric.mixins.json"
|
||||
],
|
||||
"depends": {
|
||||
|
||||
@@ -85,3 +85,5 @@ regions_unexplored_curseforge_file_id=7826194
|
||||
|
||||
#infinite_dimensions_curseforge_id=981829
|
||||
#infinite_dimensions_curseforge_file_id=7739053
|
||||
# Gradle 8.8 cannot run on newer JDKs (e.g. 25); pin the build JVM to 21
|
||||
org.gradle.java.home=C:/Program Files/Java/jdk-21.0.10
|
||||
@@ -243,8 +243,8 @@ public final class AntarchyNeoforgeEntites {
|
||||
.build("basilisk"));
|
||||
public static final DeferredHolder<EntityType<?>, EntityType<EmperorScorpionEntity>> EMPEROR_SCORPION = ENTITY_TYPES.register("emperor_scorpion",
|
||||
() -> EntityType.Builder.of(EmperorScorpionEntity::new, MobCategory.MONSTER)
|
||||
.sized(4.05F, 1.35F)
|
||||
.clientTrackingRange(10)
|
||||
.sized(6.0F, 3.0F)
|
||||
.clientTrackingRange(12)
|
||||
.build("emperor_scorpion"));
|
||||
public static final DeferredHolder<EntityType<?>, EntityType<LucidEyeProjectileEntity>> LUCID_PEARL_PROJECTILE = ENTITY_TYPES.register("lucid_pearl_projectile",
|
||||
() -> EntityType.Builder.<LucidEyeProjectileEntity>of(LucidEyeProjectileEntity::new, MobCategory.MISC)
|
||||
|
||||
@@ -537,7 +537,7 @@ public final class AntarchyNeoforgeItems {
|
||||
public static final DeferredItem<DeferredSpawnEggItem> BASILISK_SPAWN_EGG = ITEMS.register("basilisk_spawn_egg",
|
||||
() -> new DeferredSpawnEggItem(AntarchyNeoforgeEntites.BASILISK, 0x4A7C40, 0xD4A040, new Item.Properties()));
|
||||
public static final DeferredItem<DeferredSpawnEggItem> EMPEROR_SCORPION_SPAWN_EGG = ITEMS.register("emperor_scorpion_spawn_egg",
|
||||
() -> new DeferredSpawnEggItem(AntarchyNeoforgeEntites.EMPEROR_SCORPION, 0x1A1A0A, 0x8B2200, new Item.Properties()));
|
||||
() -> new DeferredSpawnEggItem(AntarchyNeoforgeEntites.EMPEROR_SCORPION, 0x3A3242, 0xD8CDB4, new Item.Properties()));
|
||||
public static final DeferredItem<LucidEyeItem> LUCID_EYE = ITEMS.register("lucid_eye",
|
||||
() -> new LucidEyeItem(new Item.Properties().stacksTo(16).rarity(Rarity.UNCOMMON)));
|
||||
public static final DeferredItem<LucidPearlItem> LUCID_PEARL = ITEMS.register("lucid_pearl",
|
||||
|
||||