mirror of
https://github.com/ACGaming/Spackenmobs
synced 2024-06-11 06:58:56 +02:00
Fun and games for CurseForge
This commit is contained in:
parent
1a07d7c71a
commit
bda83c8f75
|
@ -9,4 +9,4 @@ mod_id=spackenmobs
|
|||
|
||||
# Version
|
||||
mc_version=1.16.5
|
||||
version=1.1
|
||||
version=1.1-CF
|
|
@ -19,7 +19,6 @@ public class ClientHandler
|
|||
RenderingRegistry.registerEntityRenderingHandler(SpackenmobsRegistry.FRIEDRICH_LIECHTENSTEIN.get(), FriedrichLiechtensteinRenderer::new);
|
||||
RenderingRegistry.registerEntityRenderingHandler(SpackenmobsRegistry.GISELA.get(), GiselaRenderer::new);
|
||||
RenderingRegistry.registerEntityRenderingHandler(SpackenmobsRegistry.HOLZSTAMMHUHN.get(), HolzstammhuhnRenderer::new);
|
||||
RenderingRegistry.registerEntityRenderingHandler(SpackenmobsRegistry.ISLAMIST.get(), IslamistRenderer::new);
|
||||
RenderingRegistry.registerEntityRenderingHandler(SpackenmobsRegistry.JENS.get(), JensRenderer::new);
|
||||
RenderingRegistry.registerEntityRenderingHandler(SpackenmobsRegistry.MARCELLDAVIS.get(), MarcellDAvisRenderer::new);
|
||||
RenderingRegistry.registerEntityRenderingHandler(SpackenmobsRegistry.MRBEAN.get(), MrBeanRenderer::new);
|
||||
|
|
|
@ -1,49 +0,0 @@
|
|||
package mod.acgaming.spackenmobs.client.renderer.entity;
|
||||
|
||||
import net.minecraft.client.renderer.entity.EntityRendererManager;
|
||||
import net.minecraft.client.renderer.entity.IEntityRenderer;
|
||||
import net.minecraft.client.renderer.entity.MobRenderer;
|
||||
import net.minecraft.client.renderer.entity.model.CreeperModel;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
import net.minecraft.util.math.MathHelper;
|
||||
import net.minecraftforge.api.distmarker.Dist;
|
||||
import net.minecraftforge.api.distmarker.OnlyIn;
|
||||
|
||||
import com.mojang.blaze3d.matrix.MatrixStack;
|
||||
import mod.acgaming.spackenmobs.client.renderer.entity.layer.IslamistChargeLayer;
|
||||
import mod.acgaming.spackenmobs.entity.IslamistEntity;
|
||||
|
||||
@OnlyIn(Dist.CLIENT)
|
||||
public class IslamistRenderer extends MobRenderer<IslamistEntity, CreeperModel<IslamistEntity>> implements IEntityRenderer<IslamistEntity, CreeperModel<IslamistEntity>>
|
||||
{
|
||||
private static final ResourceLocation ISLAMIST_TEXTURES = new ResourceLocation("spackenmobs:textures/entities/islamist.png");
|
||||
|
||||
public IslamistRenderer(EntityRendererManager renderManagerIn)
|
||||
{
|
||||
super(renderManagerIn, new CreeperModel<>(), 0.5F);
|
||||
this.addLayer(new IslamistChargeLayer(this));
|
||||
}
|
||||
|
||||
public ResourceLocation getTextureLocation(IslamistEntity entity)
|
||||
{
|
||||
return ISLAMIST_TEXTURES;
|
||||
}
|
||||
|
||||
protected float getWhiteOverlayProgress(IslamistEntity livingEntityIn, float partialTicks)
|
||||
{
|
||||
float f = livingEntityIn.getCreeperFlashIntensity(partialTicks);
|
||||
return (int) (f * 10.0F) % 2 == 0 ? 0.0F : MathHelper.clamp(f, 0.5F, 1.0F);
|
||||
}
|
||||
|
||||
protected void scale(IslamistEntity entitylivingbaseIn, MatrixStack matrixStackIn, float partialTickTime)
|
||||
{
|
||||
float f = entitylivingbaseIn.getCreeperFlashIntensity(partialTickTime);
|
||||
float f1 = 1.0F + MathHelper.sin(f * 100.0F) * f * 0.01F;
|
||||
f = MathHelper.clamp(f, 0.0F, 1.0F);
|
||||
f = f * f;
|
||||
f = f * f;
|
||||
float f2 = (1.0F + f * 0.4F) * f1;
|
||||
float f3 = (1.0F + f * 0.1F) / f1;
|
||||
matrixStackIn.scale(f2, f3, f2);
|
||||
}
|
||||
}
|
|
@ -1,38 +0,0 @@
|
|||
package mod.acgaming.spackenmobs.client.renderer.entity.layer;
|
||||
|
||||
import net.minecraft.client.renderer.entity.IEntityRenderer;
|
||||
import net.minecraft.client.renderer.entity.layers.EnergyLayer;
|
||||
import net.minecraft.client.renderer.entity.model.CreeperModel;
|
||||
import net.minecraft.client.renderer.entity.model.EntityModel;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
import net.minecraftforge.api.distmarker.Dist;
|
||||
import net.minecraftforge.api.distmarker.OnlyIn;
|
||||
|
||||
import mod.acgaming.spackenmobs.entity.IslamistEntity;
|
||||
|
||||
@OnlyIn(Dist.CLIENT)
|
||||
public class IslamistChargeLayer extends EnergyLayer<IslamistEntity, CreeperModel<IslamistEntity>>
|
||||
{
|
||||
private static final ResourceLocation LIGHTNING_TEXTURE = new ResourceLocation("textures/entity/creeper/creeper_armor.png");
|
||||
private final CreeperModel<IslamistEntity> creeperModel = new CreeperModel<>(2.0F);
|
||||
|
||||
public IslamistChargeLayer(IEntityRenderer<IslamistEntity, CreeperModel<IslamistEntity>> p_i50947_1_)
|
||||
{
|
||||
super(p_i50947_1_);
|
||||
}
|
||||
|
||||
protected float xOffset(float p_225634_1_)
|
||||
{
|
||||
return p_225634_1_ * 0.01F;
|
||||
}
|
||||
|
||||
protected ResourceLocation getTextureLocation()
|
||||
{
|
||||
return LIGHTNING_TEXTURE;
|
||||
}
|
||||
|
||||
protected EntityModel<IslamistEntity> model()
|
||||
{
|
||||
return this.creeperModel;
|
||||
}
|
||||
}
|
|
@ -1,311 +0,0 @@
|
|||
package mod.acgaming.spackenmobs.entity;
|
||||
|
||||
import java.util.Collection;
|
||||
|
||||
import net.minecraft.entity.AreaEffectCloudEntity;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.EntityType;
|
||||
import net.minecraft.entity.IChargeableMob;
|
||||
import net.minecraft.entity.ai.attributes.AttributeModifierMap;
|
||||
import net.minecraft.entity.ai.attributes.Attributes;
|
||||
import net.minecraft.entity.ai.goal.*;
|
||||
import net.minecraft.entity.effect.LightningBoltEntity;
|
||||
import net.minecraft.entity.monster.MonsterEntity;
|
||||
import net.minecraft.entity.passive.CatEntity;
|
||||
import net.minecraft.entity.passive.OcelotEntity;
|
||||
import net.minecraft.entity.player.PlayerEntity;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.item.Items;
|
||||
import net.minecraft.nbt.CompoundNBT;
|
||||
import net.minecraft.network.datasync.DataParameter;
|
||||
import net.minecraft.network.datasync.DataSerializers;
|
||||
import net.minecraft.network.datasync.EntityDataManager;
|
||||
import net.minecraft.potion.EffectInstance;
|
||||
import net.minecraft.util.*;
|
||||
import net.minecraft.util.math.MathHelper;
|
||||
import net.minecraft.world.Explosion;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraft.world.server.ServerWorld;
|
||||
import net.minecraftforge.api.distmarker.Dist;
|
||||
import net.minecraftforge.api.distmarker.OnlyIn;
|
||||
|
||||
import mod.acgaming.spackenmobs.entity.ai.goal.IslamistSwellGoal;
|
||||
import mod.acgaming.spackenmobs.init.SpackenmobsRegistry;
|
||||
|
||||
@OnlyIn(
|
||||
value = Dist.CLIENT,
|
||||
_interface = IChargeableMob.class
|
||||
)
|
||||
public class IslamistEntity extends MonsterEntity implements IChargeableMob
|
||||
{
|
||||
private static final DataParameter<Integer> STATE = EntityDataManager.defineId(IslamistEntity.class, DataSerializers.INT);
|
||||
private static final DataParameter<Boolean> POWERED = EntityDataManager.defineId(IslamistEntity.class, DataSerializers.BOOLEAN);
|
||||
private static final DataParameter<Boolean> IGNITED = EntityDataManager.defineId(IslamistEntity.class, DataSerializers.BOOLEAN);
|
||||
|
||||
public static AttributeModifierMap.MutableAttribute registerAttributes()
|
||||
{
|
||||
return MonsterEntity.createMonsterAttributes().add(Attributes.MOVEMENT_SPEED, 0.25D);
|
||||
}
|
||||
|
||||
private int lastActiveTime;
|
||||
private int timeSinceIgnited;
|
||||
private int fuseTime = 30;
|
||||
private int explosionRadius = 6;
|
||||
private int droppedSkulls;
|
||||
|
||||
public IslamistEntity(EntityType<? extends IslamistEntity> type, World worldIn)
|
||||
{
|
||||
super(type, worldIn);
|
||||
}
|
||||
|
||||
public boolean causeFallDamage(float distance, float damageMultiplier)
|
||||
{
|
||||
boolean flag = super.causeFallDamage(distance, damageMultiplier);
|
||||
this.timeSinceIgnited = (int) ((float) this.timeSinceIgnited + distance * 1.5F);
|
||||
if (this.timeSinceIgnited > this.fuseTime - 5)
|
||||
{
|
||||
this.timeSinceIgnited = this.fuseTime - 5;
|
||||
}
|
||||
|
||||
return flag;
|
||||
}
|
||||
|
||||
protected float getSoundVolume()
|
||||
{
|
||||
return 0.6F;
|
||||
}
|
||||
|
||||
public boolean isPowered()
|
||||
{
|
||||
return this.entityData.get(POWERED);
|
||||
}
|
||||
|
||||
@OnlyIn(Dist.CLIENT)
|
||||
public float getCreeperFlashIntensity(float partialTicks)
|
||||
{
|
||||
return MathHelper.lerp(partialTicks, (float) this.lastActiveTime, (float) this.timeSinceIgnited) / (float) (this.fuseTime - 2);
|
||||
}
|
||||
|
||||
public int getCreeperState()
|
||||
{
|
||||
return this.entityData.get(STATE);
|
||||
}
|
||||
|
||||
public void setCreeperState(int state)
|
||||
{
|
||||
this.entityData.set(STATE, state);
|
||||
}
|
||||
|
||||
public void thunderHit(ServerWorld p_241841_1_, LightningBoltEntity p_241841_2_)
|
||||
{
|
||||
super.thunderHit(p_241841_1_, p_241841_2_);
|
||||
this.entityData.set(POWERED, true);
|
||||
}
|
||||
|
||||
public boolean hasIgnited()
|
||||
{
|
||||
return this.entityData.get(IGNITED);
|
||||
}
|
||||
|
||||
public void ignite()
|
||||
{
|
||||
this.entityData.set(IGNITED, true);
|
||||
}
|
||||
|
||||
public boolean ableToCauseSkullDrop()
|
||||
{
|
||||
return this.isPowered() && this.droppedSkulls < 1;
|
||||
}
|
||||
|
||||
public void incrementDroppedSkulls()
|
||||
{
|
||||
++this.droppedSkulls;
|
||||
}
|
||||
|
||||
protected void registerGoals()
|
||||
{
|
||||
this.goalSelector.addGoal(1, new SwimGoal(this));
|
||||
this.goalSelector.addGoal(2, new IslamistSwellGoal(this));
|
||||
this.goalSelector.addGoal(3, new AvoidEntityGoal<>(this, OcelotEntity.class, 6.0F, 1.0D, 1.2D));
|
||||
this.goalSelector.addGoal(3, new AvoidEntityGoal<>(this, CatEntity.class, 6.0F, 1.0D, 1.2D));
|
||||
this.goalSelector.addGoal(3, new LeapAtTargetGoal(this, 0.8F));
|
||||
this.goalSelector.addGoal(4, new MeleeAttackGoal(this, 1.0D, false));
|
||||
this.goalSelector.addGoal(5, new WaterAvoidingRandomWalkingGoal(this, 0.8D));
|
||||
this.goalSelector.addGoal(6, new LookAtGoal(this, PlayerEntity.class, 8.0F));
|
||||
this.goalSelector.addGoal(6, new LookRandomlyGoal(this));
|
||||
this.targetSelector.addGoal(1, new NearestAttackableTargetGoal<>(this, PlayerEntity.class, true));
|
||||
this.targetSelector.addGoal(2, new HurtByTargetGoal(this));
|
||||
}
|
||||
|
||||
protected void defineSynchedData()
|
||||
{
|
||||
super.defineSynchedData();
|
||||
this.entityData.define(STATE, -1);
|
||||
this.entityData.define(POWERED, false);
|
||||
this.entityData.define(IGNITED, false);
|
||||
}
|
||||
|
||||
public void tick()
|
||||
{
|
||||
if (this.isAlive())
|
||||
{
|
||||
this.lastActiveTime = this.timeSinceIgnited;
|
||||
if (this.hasIgnited())
|
||||
{
|
||||
this.setCreeperState(1);
|
||||
}
|
||||
|
||||
int i = this.getCreeperState();
|
||||
if (i > 0 && this.timeSinceIgnited == 0)
|
||||
{
|
||||
this.playSound(SpackenmobsRegistry.ENTITY_ISLAMIST_FUSE.get(), 1.0F, 0.5F);
|
||||
}
|
||||
|
||||
this.timeSinceIgnited += i;
|
||||
if (this.timeSinceIgnited < 0)
|
||||
{
|
||||
this.timeSinceIgnited = 0;
|
||||
}
|
||||
|
||||
if (this.timeSinceIgnited >= this.fuseTime)
|
||||
{
|
||||
this.timeSinceIgnited = this.fuseTime;
|
||||
this.explode();
|
||||
}
|
||||
}
|
||||
|
||||
super.tick();
|
||||
}
|
||||
|
||||
protected SoundEvent getAmbientSound()
|
||||
{
|
||||
return SpackenmobsRegistry.ENTITY_ISLAMIST_AMBIENT.get();
|
||||
}
|
||||
|
||||
public void addAdditionalSaveData(CompoundNBT compound)
|
||||
{
|
||||
super.addAdditionalSaveData(compound);
|
||||
if (this.entityData.get(POWERED))
|
||||
{
|
||||
compound.putBoolean("powered", true);
|
||||
}
|
||||
|
||||
compound.putShort("Fuse", (short) this.fuseTime);
|
||||
compound.putByte("ExplosionRadius", (byte) this.explosionRadius);
|
||||
compound.putBoolean("ignited", this.hasIgnited());
|
||||
}
|
||||
|
||||
public void readAdditionalSaveData(CompoundNBT compound)
|
||||
{
|
||||
super.readAdditionalSaveData(compound);
|
||||
this.entityData.set(POWERED, compound.getBoolean("powered"));
|
||||
if (compound.contains("Fuse", 99))
|
||||
{
|
||||
this.fuseTime = compound.getShort("Fuse");
|
||||
}
|
||||
|
||||
if (compound.contains("ExplosionRadius", 99))
|
||||
{
|
||||
this.explosionRadius = compound.getByte("ExplosionRadius");
|
||||
}
|
||||
|
||||
if (compound.getBoolean("ignited"))
|
||||
{
|
||||
this.ignite();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public int getMaxFallDistance()
|
||||
{
|
||||
return this.getTarget() == null ? 3 : 3 + (int) (this.getHealth() - 1.0F);
|
||||
}
|
||||
|
||||
protected void dropCustomDeathLoot(DamageSource source, int looting, boolean recentlyHitIn)
|
||||
{
|
||||
super.dropCustomDeathLoot(source, looting, recentlyHitIn);
|
||||
Entity entity = source.getEntity();
|
||||
if (entity != this && entity instanceof IslamistEntity)
|
||||
{
|
||||
IslamistEntity creeperentity = (IslamistEntity) entity;
|
||||
if (creeperentity.ableToCauseSkullDrop())
|
||||
{
|
||||
creeperentity.incrementDroppedSkulls();
|
||||
this.spawnAtLocation(Items.CREEPER_HEAD);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected ActionResultType mobInteract(PlayerEntity p_230254_1_, Hand p_230254_2_)
|
||||
{
|
||||
ItemStack itemstack = p_230254_1_.getItemInHand(p_230254_2_);
|
||||
if (itemstack.getItem() == Items.FLINT_AND_STEEL)
|
||||
{
|
||||
this.level.playSound(p_230254_1_, this.getX(), this.getY(), this.getZ(), SoundEvents.FLINTANDSTEEL_USE, this.getSoundSource(), 1.0F, this.random.nextFloat() * 0.4F + 0.8F);
|
||||
if (!this.level.isClientSide)
|
||||
{
|
||||
this.ignite();
|
||||
itemstack.hurtAndBreak(1, p_230254_1_, (player) ->
|
||||
player.broadcastBreakEvent(p_230254_2_));
|
||||
}
|
||||
|
||||
return ActionResultType.sidedSuccess(this.level.isClientSide);
|
||||
}
|
||||
else
|
||||
{
|
||||
return super.mobInteract(p_230254_1_, p_230254_2_);
|
||||
}
|
||||
}
|
||||
|
||||
public boolean doHurtTarget(Entity entityIn)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
protected SoundEvent getHurtSound(DamageSource damageSourceIn)
|
||||
{
|
||||
return SpackenmobsRegistry.ENTITY_ISLAMIST_HURT.get();
|
||||
}
|
||||
|
||||
protected SoundEvent getDeathSound()
|
||||
{
|
||||
return SpackenmobsRegistry.ENTITY_ISLAMIST_AMBIENT.get();
|
||||
}
|
||||
|
||||
private void explode()
|
||||
{
|
||||
if (!this.level.isClientSide)
|
||||
{
|
||||
Explosion.Mode explosion$mode = net.minecraftforge.event.ForgeEventFactory.getMobGriefingEvent(this.level, this) ? Explosion.Mode.DESTROY : Explosion.Mode.NONE;
|
||||
float f = this.isPowered() ? 2.0F : 1.0F;
|
||||
this.dead = true;
|
||||
this.playSound(SpackenmobsRegistry.ENTITY_ISLAMIST_BLOW.get(), 1.0F, 1.0F);
|
||||
this.level.explode(this, this.getX(), this.getY(), this.getZ(), (float) this.explosionRadius * f, explosion$mode);
|
||||
this.remove();
|
||||
this.spawnLingeringCloud();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void spawnLingeringCloud()
|
||||
{
|
||||
Collection<EffectInstance> collection = this.getActiveEffects();
|
||||
if (!collection.isEmpty())
|
||||
{
|
||||
AreaEffectCloudEntity areaeffectcloudentity = new AreaEffectCloudEntity(this.level, this.getX(), this.getY(), this.getZ());
|
||||
areaeffectcloudentity.setRadius(2.5F);
|
||||
areaeffectcloudentity.setRadiusOnUse(-0.5F);
|
||||
areaeffectcloudentity.setWaitTime(10);
|
||||
areaeffectcloudentity.setDuration(areaeffectcloudentity.getDuration() / 2);
|
||||
areaeffectcloudentity.setRadiusPerTick(-areaeffectcloudentity.getRadius() / (float) areaeffectcloudentity.getDuration());
|
||||
|
||||
for (EffectInstance effectinstance : collection)
|
||||
{
|
||||
areaeffectcloudentity.addEffect(new EffectInstance(effectinstance));
|
||||
}
|
||||
|
||||
this.level.addFreshEntity(areaeffectcloudentity);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -1,57 +0,0 @@
|
|||
package mod.acgaming.spackenmobs.entity.ai.goal;
|
||||
|
||||
import java.util.EnumSet;
|
||||
|
||||
import net.minecraft.entity.LivingEntity;
|
||||
import net.minecraft.entity.ai.goal.Goal;
|
||||
|
||||
import mod.acgaming.spackenmobs.entity.IslamistEntity;
|
||||
|
||||
public class IslamistSwellGoal extends Goal
|
||||
{
|
||||
private final IslamistEntity swellingCreeper;
|
||||
private LivingEntity creeperAttackTarget;
|
||||
|
||||
public IslamistSwellGoal(IslamistEntity entityislamistIn)
|
||||
{
|
||||
this.swellingCreeper = entityislamistIn;
|
||||
this.setFlags(EnumSet.of(Flag.MOVE));
|
||||
}
|
||||
|
||||
public boolean canUse()
|
||||
{
|
||||
LivingEntity livingentity = this.swellingCreeper.getTarget();
|
||||
return this.swellingCreeper.getCreeperState() > 0 || livingentity != null && this.swellingCreeper.distanceToSqr(livingentity) < 9.0D;
|
||||
}
|
||||
|
||||
public void start()
|
||||
{
|
||||
this.swellingCreeper.getNavigation().stop();
|
||||
this.creeperAttackTarget = this.swellingCreeper.getTarget();
|
||||
}
|
||||
|
||||
public void stop()
|
||||
{
|
||||
this.creeperAttackTarget = null;
|
||||
}
|
||||
|
||||
public void tick()
|
||||
{
|
||||
if (this.creeperAttackTarget == null)
|
||||
{
|
||||
this.swellingCreeper.setCreeperState(-1);
|
||||
}
|
||||
else if (this.swellingCreeper.distanceToSqr(this.creeperAttackTarget) > 49.0D)
|
||||
{
|
||||
this.swellingCreeper.setCreeperState(-1);
|
||||
}
|
||||
else if (!this.swellingCreeper.getSensing().canSee(this.creeperAttackTarget))
|
||||
{
|
||||
this.swellingCreeper.setCreeperState(-1);
|
||||
}
|
||||
else
|
||||
{
|
||||
this.swellingCreeper.setCreeperState(1);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -39,7 +39,6 @@ public class SpackenmobsEntities
|
|||
registerSpawn(monster_spawns, entry, ConfigurationHandler.SPAWN.apored_weight.get(), ConfigurationHandler.SPAWN.apored_min.get(), ConfigurationHandler.SPAWN.apored_max.get(), EntityType.SKELETON, SpackenmobsRegistry.APORED.get());
|
||||
registerSpawn(monster_spawns, entry, ConfigurationHandler.SPAWN.bakamitai_creeper_weight.get(), ConfigurationHandler.SPAWN.bakamitai_creeper_min.get(), ConfigurationHandler.SPAWN.bakamitai_creeper_max.get(), EntityType.CREEPER, SpackenmobsRegistry.BAKAMITAI_CREEPER.get());
|
||||
registerSpawn(monster_spawns, entry, ConfigurationHandler.SPAWN.drachenlord_weight.get(), ConfigurationHandler.SPAWN.drachenlord_min.get(), ConfigurationHandler.SPAWN.drachenlord_max.get(), EntityType.PIGLIN, SpackenmobsRegistry.DRACHENLORD.get());
|
||||
registerSpawn(monster_spawns, entry, ConfigurationHandler.SPAWN.islamist_weight.get(), ConfigurationHandler.SPAWN.islamist_min.get(), ConfigurationHandler.SPAWN.islamist_max.get(), EntityType.CREEPER, SpackenmobsRegistry.ISLAMIST.get());
|
||||
registerSpawn(monster_spawns, entry, ConfigurationHandler.SPAWN.marcell_davis_weight.get(), ConfigurationHandler.SPAWN.marcell_davis_min.get(), ConfigurationHandler.SPAWN.marcell_davis_max.get(), EntityType.ZOMBIE, SpackenmobsRegistry.MARCELLDAVIS.get());
|
||||
registerSpawn(monster_spawns, entry, ConfigurationHandler.SPAWN.mr_bean_weight.get(), ConfigurationHandler.SPAWN.mr_bean_min.get(), ConfigurationHandler.SPAWN.mr_bean_max.get(), EntityType.ZOMBIE, SpackenmobsRegistry.MRBEAN.get());
|
||||
registerSpawn(monster_spawns, entry, ConfigurationHandler.SPAWN.schalker_weight.get(), ConfigurationHandler.SPAWN.schalker_min.get(), ConfigurationHandler.SPAWN.schalker_max.get(), EntityType.SHULKER, SpackenmobsRegistry.SCHALKER.get());
|
||||
|
@ -67,7 +66,6 @@ public class SpackenmobsEntities
|
|||
EntitySpawnPlacementRegistry.register(SpackenmobsRegistry.FRIEDRICH_LIECHTENSTEIN.get(), PlacementType.ON_GROUND, Type.MOTION_BLOCKING_NO_LEAVES, AnimalEntity::checkAnimalSpawnRules);
|
||||
EntitySpawnPlacementRegistry.register(SpackenmobsRegistry.GISELA.get(), PlacementType.ON_GROUND, Type.MOTION_BLOCKING_NO_LEAVES, AnimalEntity::checkAnimalSpawnRules);
|
||||
EntitySpawnPlacementRegistry.register(SpackenmobsRegistry.HOLZSTAMMHUHN.get(), PlacementType.ON_GROUND, Type.MOTION_BLOCKING_NO_LEAVES, AnimalEntity::checkAnimalSpawnRules);
|
||||
EntitySpawnPlacementRegistry.register(SpackenmobsRegistry.ISLAMIST.get(), PlacementType.ON_GROUND, Type.MOTION_BLOCKING_NO_LEAVES, MonsterEntity::checkMonsterSpawnRules);
|
||||
EntitySpawnPlacementRegistry.register(SpackenmobsRegistry.JENS.get(), PlacementType.ON_GROUND, Type.MOTION_BLOCKING_NO_LEAVES, AnimalEntity::checkAnimalSpawnRules);
|
||||
EntitySpawnPlacementRegistry.register(SpackenmobsRegistry.MARCELLDAVIS.get(), PlacementType.ON_GROUND, Type.MOTION_BLOCKING_NO_LEAVES, MonsterEntity::checkMonsterSpawnRules);
|
||||
EntitySpawnPlacementRegistry.register(SpackenmobsRegistry.MRBEAN.get(), PlacementType.ON_GROUND, Type.MOTION_BLOCKING_NO_LEAVES, MonsterEntity::checkMonsterSpawnRules);
|
||||
|
@ -82,7 +80,6 @@ public class SpackenmobsEntities
|
|||
GlobalEntityTypeAttributes.put(SpackenmobsRegistry.FRIEDRICH_LIECHTENSTEIN.get(), FriedrichLiechtensteinEntity.registerAttributes().build());
|
||||
GlobalEntityTypeAttributes.put(SpackenmobsRegistry.GISELA.get(), GiselaEntity.registerAttributes().build());
|
||||
GlobalEntityTypeAttributes.put(SpackenmobsRegistry.HOLZSTAMMHUHN.get(), HolzstammhuhnEntity.registerAttributes().build());
|
||||
GlobalEntityTypeAttributes.put(SpackenmobsRegistry.ISLAMIST.get(), IslamistEntity.registerAttributes().build());
|
||||
GlobalEntityTypeAttributes.put(SpackenmobsRegistry.JENS.get(), JensEntity.registerAttributes().build());
|
||||
GlobalEntityTypeAttributes.put(SpackenmobsRegistry.MARCELLDAVIS.get(), MarcellDAvisEntity.registerAttributes().build());
|
||||
GlobalEntityTypeAttributes.put(SpackenmobsRegistry.MRBEAN.get(), MrBeanEntity.registerAttributes().build());
|
||||
|
|
|
@ -54,11 +54,6 @@ public class SpackenmobsRegistry
|
|||
() -> register("holzstammhuhn", EntityType.Builder.of(HolzstammhuhnEntity::new, EntityClassification.CREATURE)
|
||||
.sized(0.4F, 0.7F).clientTrackingRange(10)));
|
||||
public static final RegistryObject<Item> HOLZSTAMMHUHN_SPAWN_EGG = ITEMS.register("holzstammhuhn_spawn_egg", () -> new CustomSpawnEggItem(SpackenmobsRegistry.HOLZSTAMMHUHN::get, 12096347, 5295899, itemBuilder()));
|
||||
// Islamist
|
||||
public static final RegistryObject<EntityType<IslamistEntity>> ISLAMIST = ENTITIES.register("islamist",
|
||||
() -> register("islamist", EntityType.Builder.of(IslamistEntity::new, EntityClassification.MONSTER)
|
||||
.sized(0.6F, 1.7F).clientTrackingRange(10)));
|
||||
public static final RegistryObject<Item> ISLAMIST_SPAWN_EGG = ITEMS.register("islamist_spawn_egg", () -> new CustomSpawnEggItem(SpackenmobsRegistry.ISLAMIST::get, 15263976, 15211548, itemBuilder()));
|
||||
// Jens
|
||||
public static final RegistryObject<EntityType<JensEntity>> JENS = ENTITIES.register("jens",
|
||||
() -> register("jens", EntityType.Builder.of(JensEntity::new, EntityClassification.CREATURE)
|
||||
|
@ -121,11 +116,6 @@ public class SpackenmobsRegistry
|
|||
public static final RegistryObject<SoundEvent> ENTITY_GISELA_AMBIENT = SOUND_EVENTS.register("entities.gisela.ambient", () -> createSound("entities.gisela.ambient"));
|
||||
public static final RegistryObject<SoundEvent> ENTITY_GISELA_HURT = SOUND_EVENTS.register("entities.gisela.hurt", () -> createSound("entities.gisela.hurt"));
|
||||
//public static final RegistryObject<SoundEvent> ENTITY_GISELA_DEATH = SOUND_EVENTS.register("entities.gisela.death", () -> createSound("entities.gisela.death"));
|
||||
// Islamist
|
||||
public static final RegistryObject<SoundEvent> ENTITY_ISLAMIST_FUSE = SOUND_EVENTS.register("entities.islamist.fuse", () -> createSound("entities.islamist.fuse"));
|
||||
public static final RegistryObject<SoundEvent> ENTITY_ISLAMIST_BLOW = SOUND_EVENTS.register("entities.islamist.blow", () -> createSound("entities.islamist.blow"));
|
||||
public static final RegistryObject<SoundEvent> ENTITY_ISLAMIST_HURT = SOUND_EVENTS.register("entities.islamist.hurt", () -> createSound("entities.islamist.hurt"));
|
||||
public static final RegistryObject<SoundEvent> ENTITY_ISLAMIST_AMBIENT = SOUND_EVENTS.register("entities.islamist.ambient", () -> createSound("entities.islamist.ambient"));
|
||||
// Jens
|
||||
public static final RegistryObject<SoundEvent> ENTITY_JENS_AMBIENT = SOUND_EVENTS.register("entities.jens.ambient", () -> createSound("entities.jens.ambient"));
|
||||
public static final RegistryObject<SoundEvent> ENTITY_JENS_HURT = SOUND_EVENTS.register("entities.jens.hurt", () -> createSound("entities.jens.hurt"));
|
||||
|
|
|
@ -39,9 +39,9 @@ public class ConfigurationHandler
|
|||
public final ForgeConfigSpec.IntValue bakamitai_creeper_max;
|
||||
public final ForgeConfigSpec.IntValue bakamitai_creeper_weight;
|
||||
|
||||
public final ForgeConfigSpec.IntValue dagibee_min;
|
||||
public final ForgeConfigSpec.IntValue dagibee_max;
|
||||
public final ForgeConfigSpec.IntValue dagibee_weight;
|
||||
//public final ForgeConfigSpec.IntValue dagibee_min;
|
||||
//public final ForgeConfigSpec.IntValue dagibee_max;
|
||||
//public final ForgeConfigSpec.IntValue dagibee_weight;
|
||||
|
||||
public final ForgeConfigSpec.IntValue drachenlord_min;
|
||||
public final ForgeConfigSpec.IntValue drachenlord_max;
|
||||
|
@ -59,10 +59,6 @@ public class ConfigurationHandler
|
|||
public final ForgeConfigSpec.IntValue holzstammhuhn_max;
|
||||
public final ForgeConfigSpec.IntValue holzstammhuhn_weight;
|
||||
|
||||
public final ForgeConfigSpec.IntValue islamist_min;
|
||||
public final ForgeConfigSpec.IntValue islamist_max;
|
||||
public final ForgeConfigSpec.IntValue islamist_weight;
|
||||
|
||||
public final ForgeConfigSpec.IntValue jens_min;
|
||||
public final ForgeConfigSpec.IntValue jens_max;
|
||||
public final ForgeConfigSpec.IntValue jens_weight;
|
||||
|
@ -100,9 +96,9 @@ public class ConfigurationHandler
|
|||
bakamitai_creeper_max = builder.defineInRange("bakamitai_creeper_max", 1, 1, 64);
|
||||
bakamitai_creeper_weight = builder.defineInRange("bakamitai_creeper_weight", 60, 0, 200);
|
||||
|
||||
dagibee_min = builder.defineInRange("dagibee_min", 1, 1, 64);
|
||||
dagibee_max = builder.defineInRange("dagibee_max", 1, 1, 64);
|
||||
dagibee_weight = builder.defineInRange("dagibee_weight", 8, 0, 200);
|
||||
//dagibee_min = builder.defineInRange("dagibee_min", 1, 1, 64);
|
||||
//dagibee_max = builder.defineInRange("dagibee_max", 1, 1, 64);
|
||||
//dagibee_weight = builder.defineInRange("dagibee_weight", 8, 0, 200);
|
||||
|
||||
drachenlord_min = builder.defineInRange("drachenlord_min", 1, 1, 64);
|
||||
drachenlord_max = builder.defineInRange("drachenlord_max", 1, 1, 64);
|
||||
|
@ -120,10 +116,6 @@ public class ConfigurationHandler
|
|||
holzstammhuhn_max = builder.defineInRange("holzstammhuhn_max", 1, 1, 64);
|
||||
holzstammhuhn_weight = builder.defineInRange("holzstammhuhn_weight", 8, 0, 200);
|
||||
|
||||
islamist_min = builder.defineInRange("islamist_min", 1, 1, 64);
|
||||
islamist_max = builder.defineInRange("islamist_max", 1, 1, 64);
|
||||
islamist_weight = builder.defineInRange("islamist_weight", 60, 0, 200);
|
||||
|
||||
jens_min = builder.defineInRange("jens_min", 1, 1, 64);
|
||||
jens_max = builder.defineInRange("jens_max", 1, 1, 64);
|
||||
jens_weight = builder.defineInRange("jens_weight", 8, 0, 200);
|
||||
|
|
|
@ -17,7 +17,6 @@
|
|||
"entity.spackenmobs.friedrich": "Friedrich Liechtenstein",
|
||||
"entity.spackenmobs.gisela": "Gisela",
|
||||
"entity.spackenmobs.holzstammhuhn": "Holzstammhuhn",
|
||||
"entity.spackenmobs.islamist": "Islamist",
|
||||
"entity.spackenmobs.jens": "Jens",
|
||||
"entity.spackenmobs.marcell_davis": "Marcell D'Avis",
|
||||
"entity.spackenmobs.mr_bean": "Mr. Bean",
|
||||
|
@ -32,7 +31,6 @@
|
|||
"item.spackenmobs.friedrich_spawn_egg": "Erschaffe Friedrich Liechtenstein",
|
||||
"item.spackenmobs.gisela_spawn_egg": "Erschaffe Gisela",
|
||||
"item.spackenmobs.holzstammhuhn_spawn_egg": "Erschaffe Holzstammhuhn",
|
||||
"item.spackenmobs.islamist_spawn_egg": "Erschaffe Islamist",
|
||||
"item.spackenmobs.jens_spawn_egg": "Erschaffe Jens",
|
||||
"item.spackenmobs.marcell_davis_spawn_egg": "Erschaffe Marcell D'Avis",
|
||||
"item.spackenmobs.mr_bean_spawn_egg": "Erschaffe Mr. Bean",
|
||||
|
|
|
@ -17,7 +17,6 @@
|
|||
"entity.spackenmobs.friedrich": "Friedrich Liechtenstein",
|
||||
"entity.spackenmobs.gisela": "Gisela",
|
||||
"entity.spackenmobs.holzstammhuhn": "Holzstammhuhn",
|
||||
"entity.spackenmobs.islamist": "Islamist",
|
||||
"entity.spackenmobs.jens": "Jens",
|
||||
"entity.spackenmobs.marcell_davis": "Marcell D'Avis",
|
||||
"entity.spackenmobs.mr_bean": "Mr. Bean",
|
||||
|
@ -32,7 +31,6 @@
|
|||
"item.spackenmobs.friedrich_spawn_egg": "Spawn Friedrich Liechtenstein",
|
||||
"item.spackenmobs.gisela_spawn_egg": "Spawn Gisela",
|
||||
"item.spackenmobs.holzstammhuhn_spawn_egg": "Spawn Holzstammhuhn",
|
||||
"item.spackenmobs.islamist_spawn_egg": "Spawn Islamist",
|
||||
"item.spackenmobs.jens_spawn_egg": "Spawn Jens",
|
||||
"item.spackenmobs.marcell_davis_spawn_egg": "Spawn Marcell D'Avis",
|
||||
"item.spackenmobs.mr_bean_spawn_egg": "Spawn Mr. Bean",
|
||||
|
|
|
@ -1,3 +0,0 @@
|
|||
{
|
||||
"parent": "item/template_spawn_egg"
|
||||
}
|
|
@ -270,61 +270,6 @@
|
|||
}
|
||||
]
|
||||
},
|
||||
"entities.islamist.fuse": {
|
||||
"sounds": [
|
||||
{
|
||||
"name": "spackenmobs:islamist/fuse1"
|
||||
},
|
||||
{
|
||||
"name": "spackenmobs:islamist/fuse2"
|
||||
},
|
||||
{
|
||||
"name": "spackenmobs:islamist/fuse3"
|
||||
},
|
||||
{
|
||||
"name": "spackenmobs:islamist/fuse4"
|
||||
}
|
||||
]
|
||||
},
|
||||
"entities.islamist.blow": {
|
||||
"sounds": [
|
||||
{
|
||||
"name": "spackenmobs:islamist/blow"
|
||||
}
|
||||
]
|
||||
},
|
||||
"entities.islamist.hurt": {
|
||||
"sounds": [
|
||||
{
|
||||
"name": "spackenmobs:islamist/say1"
|
||||
},
|
||||
{
|
||||
"name": "spackenmobs:islamist/say2"
|
||||
},
|
||||
{
|
||||
"name": "spackenmobs:islamist/say3"
|
||||
},
|
||||
{
|
||||
"name": "spackenmobs:islamist/say4"
|
||||
}
|
||||
]
|
||||
},
|
||||
"entities.islamist.ambient": {
|
||||
"sounds": [
|
||||
{
|
||||
"name": "spackenmobs:islamist/say1"
|
||||
},
|
||||
{
|
||||
"name": "spackenmobs:islamist/say2"
|
||||
},
|
||||
{
|
||||
"name": "spackenmobs:islamist/say3"
|
||||
},
|
||||
{
|
||||
"name": "spackenmobs:islamist/say4"
|
||||
}
|
||||
]
|
||||
},
|
||||
"entities.apored.ambient": {
|
||||
"sounds": [
|
||||
{
|
||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Before Width: | Height: | Size: 4.8 KiB |
|
@ -1,50 +0,0 @@
|
|||
{
|
||||
"type": "minecraft:entity",
|
||||
"pools": [
|
||||
{
|
||||
"rolls": 1,
|
||||
"entries": [
|
||||
{
|
||||
"type": "minecraft:item",
|
||||
"functions": [
|
||||
{
|
||||
"function": "minecraft:set_count",
|
||||
"count": {
|
||||
"min": 0.0,
|
||||
"max": 2.0,
|
||||
"type": "minecraft:uniform"
|
||||
}
|
||||
},
|
||||
{
|
||||
"function": "minecraft:looting_enchant",
|
||||
"count": {
|
||||
"min": 0.0,
|
||||
"max": 1.0
|
||||
}
|
||||
}
|
||||
],
|
||||
"name": "minecraft:gunpowder"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"rolls": 1.0,
|
||||
"entries": [
|
||||
{
|
||||
"type": "minecraft:tag",
|
||||
"name": "minecraft:creeper_drop_music_discs",
|
||||
"expand": true
|
||||
}
|
||||
],
|
||||
"conditions": [
|
||||
{
|
||||
"condition": "minecraft:entity_properties",
|
||||
"predicate": {
|
||||
"type": "#minecraft:skeletons"
|
||||
},
|
||||
"entity": "killer"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
Loading…
Reference in a new issue