2
1
Fork 1
mirror of https://github.com/ACGaming/Spackenmobs synced 2024-06-02 18:49:45 +02:00

Compare commits

...

2 commits

Author SHA1 Message Date
ACGaming eda02e783b Revamp config, fix Gisela spawning 2021-09-15 18:21:38 +02:00
ACGaming 9e7cbb7aab Revamp spawn system, improve ApoRed sounds 2021-09-15 16:03:06 +02:00
16 changed files with 315 additions and 231 deletions

View file

@ -50,6 +50,7 @@ public class EntityBakaMitaiCreeper extends EntityMob
this.setSize(0.6F, 1.7F); this.setSize(0.6F, 1.7F);
} }
@Override
public void onUpdate() public void onUpdate()
{ {
if (this.isEntityAlive()) if (this.isEntityAlive())
@ -84,27 +85,32 @@ public class EntityBakaMitaiCreeper extends EntityMob
super.onUpdate(); super.onUpdate();
} }
@Override
protected SoundEvent getHurtSound(DamageSource damageSourceIn) protected SoundEvent getHurtSound(DamageSource damageSourceIn)
{ {
return SoundEvents.ENTITY_CREEPER_HURT; return SoundEvents.ENTITY_CREEPER_HURT;
} }
@Override
protected SoundEvent getDeathSound() protected SoundEvent getDeathSound()
{ {
return SoundEvents.ENTITY_CREEPER_DEATH; return SoundEvents.ENTITY_CREEPER_DEATH;
} }
@Override
public boolean attackEntityAsMob(Entity entityIn) public boolean attackEntityAsMob(Entity entityIn)
{ {
return true; return true;
} }
@Override
protected void applyEntityAttributes() protected void applyEntityAttributes()
{ {
super.applyEntityAttributes(); super.applyEntityAttributes();
this.getEntityAttribute(SharedMonsterAttributes.MOVEMENT_SPEED).setBaseValue(0.25D); this.getEntityAttribute(SharedMonsterAttributes.MOVEMENT_SPEED).setBaseValue(0.25D);
} }
@Override
public void onDeath(DamageSource cause) public void onDeath(DamageSource cause)
{ {
super.onDeath(cause); super.onDeath(cause);
@ -126,6 +132,7 @@ public class EntityBakaMitaiCreeper extends EntityMob
} }
} }
@Override
public void fall(float distance, float damageMultiplier) public void fall(float distance, float damageMultiplier)
{ {
super.fall(distance, damageMultiplier); super.fall(distance, damageMultiplier);
@ -158,6 +165,7 @@ public class EntityBakaMitaiCreeper extends EntityMob
this.dataManager.set(STATE, state); this.dataManager.set(STATE, state);
} }
@Override
public void onStruckByLightning(EntityLightningBolt lightningBolt) public void onStruckByLightning(EntityLightningBolt lightningBolt)
{ {
super.onStruckByLightning(lightningBolt); super.onStruckByLightning(lightningBolt);
@ -184,6 +192,7 @@ public class EntityBakaMitaiCreeper extends EntityMob
++this.droppedSkulls; ++this.droppedSkulls;
} }
@Override
protected void initEntityAI() protected void initEntityAI()
{ {
this.tasks.addTask(1, new EntityAISwimming(this)); this.tasks.addTask(1, new EntityAISwimming(this));
@ -197,6 +206,7 @@ public class EntityBakaMitaiCreeper extends EntityMob
this.targetTasks.addTask(2, new EntityAIHurtByTarget(this, false)); this.targetTasks.addTask(2, new EntityAIHurtByTarget(this, false));
} }
@Override
protected void entityInit() protected void entityInit()
{ {
super.entityInit(); super.entityInit();
@ -205,6 +215,7 @@ public class EntityBakaMitaiCreeper extends EntityMob
this.dataManager.register(IGNITED, Boolean.FALSE); this.dataManager.register(IGNITED, Boolean.FALSE);
} }
@Override
public void writeEntityToNBT(NBTTagCompound compound) public void writeEntityToNBT(NBTTagCompound compound)
{ {
super.writeEntityToNBT(compound); super.writeEntityToNBT(compound);
@ -219,6 +230,7 @@ public class EntityBakaMitaiCreeper extends EntityMob
compound.setBoolean("ignited", this.hasIgnited()); compound.setBoolean("ignited", this.hasIgnited());
} }
@Override
public void readEntityFromNBT(NBTTagCompound compound) public void readEntityFromNBT(NBTTagCompound compound)
{ {
super.readEntityFromNBT(compound); super.readEntityFromNBT(compound);
@ -241,16 +253,19 @@ public class EntityBakaMitaiCreeper extends EntityMob
} }
@Nullable @Nullable
@Override
protected ResourceLocation getLootTable() protected ResourceLocation getLootTable()
{ {
return LootTableList.ENTITIES_CREEPER; return LootTableList.ENTITIES_CREEPER;
} }
@Override
public int getMaxFallHeight() public int getMaxFallHeight()
{ {
return this.getAttackTarget() == null ? 3 : 3 + (int) (this.getHealth() - 1.0F); return this.getAttackTarget() == null ? 3 : 3 + (int) (this.getHealth() - 1.0F);
} }
@Override
protected boolean processInteract(EntityPlayer player, EnumHand hand) protected boolean processInteract(EntityPlayer player, EnumHand hand)
{ {
ItemStack itemstack = player.getHeldItem(hand); ItemStack itemstack = player.getHeldItem(hand);

View file

@ -1,13 +1,11 @@
package mod.acgaming.spackenmobs.entities; package mod.acgaming.spackenmobs.entities;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.entity.EntityAgeable; import net.minecraft.entity.EntityCreature;
import net.minecraft.entity.EntityLiving; import net.minecraft.entity.EntityLiving;
import net.minecraft.entity.SharedMonsterAttributes; import net.minecraft.entity.SharedMonsterAttributes;
import net.minecraft.entity.ai.*; import net.minecraft.entity.ai.*;
import net.minecraft.entity.passive.EntityAnimal;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Items;
import net.minecraft.init.SoundEvents; import net.minecraft.init.SoundEvents;
import net.minecraft.util.DamageSource; import net.minecraft.util.DamageSource;
import net.minecraft.util.SoundEvent; import net.minecraft.util.SoundEvent;
@ -16,7 +14,7 @@ import net.minecraft.world.World;
import mod.acgaming.spackenmobs.misc.ModSoundEvents; import mod.acgaming.spackenmobs.misc.ModSoundEvents;
public class EntityGisela extends EntityAnimal public class EntityGisela extends EntityCreature
{ {
public EntityGisela(World worldIn) public EntityGisela(World worldIn)
{ {
@ -24,24 +22,19 @@ public class EntityGisela extends EntityAnimal
this.setSize(0.6F, 1.8F); this.setSize(0.6F, 1.8F);
} }
public EntityGisela createChild(EntityAgeable ageable) @Override
{
return new EntityGisela(this.world);
}
protected void initEntityAI() protected void initEntityAI()
{ {
this.tasks.addTask(0, new EntityAISwimming(this)); this.tasks.addTask(0, new EntityAISwimming(this));
this.tasks.addTask(1, new EntityAIPanic(this, 2.0D)); this.tasks.addTask(1, new EntityAIPanic(this, 2.0D));
this.tasks.addTask(2, new EntityAIMate(this, 1.0D)); this.tasks.addTask(2, new EntityAIWanderAvoidWater(this, 1.0D));
this.tasks.addTask(3, new EntityAITempt(this, 1.25D, Items.SUGAR, false)); this.tasks.addTask(3, new EntityAIWatchClosest(this, EntityPlayer.class, 6.0F));
this.tasks.addTask(4, new EntityAIFollowParent(this, 1.25D)); this.tasks.addTask(4, new EntityAILookIdle(this));
this.tasks.addTask(5, new EntityAIWanderAvoidWater(this, 1.0D)); this.targetTasks.addTask(1, new EntityAIHurtByTarget(this, false));
this.tasks.addTask(6, new EntityAIWatchClosest(this, EntityPlayer.class, 6.0F)); this.targetTasks.addTask(2, new EntityAINearestAttackableTarget(this, EntityLiving.class, true));
this.tasks.addTask(7, new EntityAILookIdle(this));
this.targetTasks.addTask(1, new EntityAINearestAttackableTarget<>(this, EntityLiving.class, true));
} }
@Override
protected void applyEntityAttributes() protected void applyEntityAttributes()
{ {
super.applyEntityAttributes(); super.applyEntityAttributes();
@ -49,21 +42,25 @@ public class EntityGisela extends EntityAnimal
this.getEntityAttribute(SharedMonsterAttributes.MOVEMENT_SPEED).setBaseValue(1.25D); this.getEntityAttribute(SharedMonsterAttributes.MOVEMENT_SPEED).setBaseValue(1.25D);
} }
@Override
protected SoundEvent getAmbientSound() protected SoundEvent getAmbientSound()
{ {
return ModSoundEvents.ENTITY_GISELA_AMBIENT; return ModSoundEvents.ENTITY_GISELA_AMBIENT;
} }
@Override
protected SoundEvent getHurtSound(DamageSource damageSourceIn) protected SoundEvent getHurtSound(DamageSource damageSourceIn)
{ {
return ModSoundEvents.ENTITY_GISELA_HURT; return ModSoundEvents.ENTITY_GISELA_HURT;
} }
@Override
protected SoundEvent getDeathSound() protected SoundEvent getDeathSound()
{ {
return ModSoundEvents.ENTITY_GISELA_HURT; return ModSoundEvents.ENTITY_GISELA_HURT;
} }
@Override
protected void playStepSound(BlockPos pos, Block blockIn) protected void playStepSound(BlockPos pos, Block blockIn)
{ {
this.playSound(SoundEvents.ENTITY_COW_STEP, 0.15F, 1.0F); this.playSound(SoundEvents.ENTITY_COW_STEP, 0.15F, 1.0F);

View file

@ -153,9 +153,9 @@ public class EntityJens extends EntityAnimal
} }
@Override @Override
public mod.acgaming.spackenmobs.entities.EntityJens createChild(EntityAgeable ageable) public EntityJens createChild(EntityAgeable ageable)
{ {
return new mod.acgaming.spackenmobs.entities.EntityJens(this.world); return new EntityJens(this.world);
} }
@Override @Override
@ -283,7 +283,7 @@ public class EntityJens extends EntityAnimal
this.digesting = true; this.digesting = true;
this.dataManager.set(DIGESTING, true); this.dataManager.set(DIGESTING, true);
this.digestTime = (ModConfigs.Jens_digest_time * 20); this.digestTime = (ModConfigs.misc.Jens_digest_time * 20);
this.dataManager.set(DIGEST_TIME, this.digestTime); this.dataManager.set(DIGEST_TIME, this.digestTime);
for (int i = 0; i < 7; ++i) for (int i = 0; i < 7; ++i)
@ -294,7 +294,7 @@ public class EntityJens extends EntityAnimal
this.world.spawnParticle(EnumParticleTypes.HEART, this.posX + this.rand.nextFloat() * this.width * 2.0F - this.width, this.posY + 0.5D + this.rand.nextFloat() * this.height, this.posZ + this.rand.nextFloat() * this.width * 2.0F - this.width, d0, d1, d2); this.world.spawnParticle(EnumParticleTypes.HEART, this.posX + this.rand.nextFloat() * this.width * 2.0F - this.width, this.posY + 0.5D + this.rand.nextFloat() * this.height, this.posZ + this.rand.nextFloat() * this.width * 2.0F - this.width, d0, d1, d2);
} }
this.addPotionEffect(new PotionEffect(MobEffects.NAUSEA, ModConfigs.Jens_digest_time * 20)); this.addPotionEffect(new PotionEffect(MobEffects.NAUSEA, ModConfigs.misc.Jens_digest_time * 20));
} }
@Override @Override
@ -302,7 +302,7 @@ public class EntityJens extends EntityAnimal
{ {
this.tasks.addTask(0, new EntityAISwimming(this)); this.tasks.addTask(0, new EntityAISwimming(this));
this.tasks.addTask(1, new EntityAIPanic(this, 1.25D)); this.tasks.addTask(1, new EntityAIPanic(this, 1.25D));
this.tasks.addTask(2, new EntityAIDance(this, ModConfigs.Jens_search_distance)); this.tasks.addTask(2, new EntityAIDance(this, ModConfigs.misc.Jens_search_distance));
this.tasks.addTask(2, new EntityAIEatDroppedFish(this)); this.tasks.addTask(2, new EntityAIEatDroppedFish(this));
this.tasks.addTask(3, new EntityAIMate(this, 1.0D)); this.tasks.addTask(3, new EntityAIMate(this, 1.0D));
this.tasks.addTask(4, new EntityAITempt(this, 1.2D, ModItems.RAM, false)); this.tasks.addTask(4, new EntityAITempt(this, 1.2D, ModItems.RAM, false));

View file

@ -1,46 +0,0 @@
package mod.acgaming.spackenmobs.misc;
import java.util.ArrayList;
import java.util.List;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EnumCreatureType;
import net.minecraft.world.biome.Biome;
import net.minecraft.world.biome.Biome.SpawnListEntry;
// Thanks to Vazkii!
public class BiomeHelper
{
public static Biome[] getBiomesWithMonster(Class<? extends Entity> clazz)
{
List<Biome> biomes = new ArrayList<>();
for (Biome b : Biome.REGISTRY)
{
List<SpawnListEntry> spawnList = b.getSpawnableList(EnumCreatureType.MONSTER);
for (SpawnListEntry e : spawnList)
if (e.entityClass == clazz)
{
biomes.add(b);
break;
}
}
return biomes.toArray(new Biome[0]);
}
public static Biome[] getBiomesWithCreature(Class<? extends Entity> clazz)
{
List<Biome> biomes = new ArrayList<>();
for (Biome b : Biome.REGISTRY)
{
List<SpawnListEntry> spawnList = b.getSpawnableList(EnumCreatureType.CREATURE);
for (SpawnListEntry e : spawnList)
if (e.entityClass == clazz)
{
biomes.add(b);
break;
}
}
return biomes.toArray(new Biome[0]);
}
}

View file

@ -5,141 +5,164 @@ import net.minecraftforge.common.config.Config.LangKey;
import net.minecraftforge.common.config.Config.Name; import net.minecraftforge.common.config.Config.Name;
import net.minecraftforge.common.config.ConfigManager; import net.minecraftforge.common.config.ConfigManager;
import net.minecraftforge.fml.client.event.ConfigChangedEvent; import net.minecraftforge.fml.client.event.ConfigChangedEvent;
import net.minecraftforge.fml.common.Mod.EventBusSubscriber; import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
@Config(modid = "spackenmobs") import mod.acgaming.spackenmobs.Spackenmobs;
@Config(modid = Spackenmobs.MODID, name = "Spackenmobs")
@LangKey("spackenmobs.config.title") @LangKey("spackenmobs.config.title")
public class ModConfigs public class ModConfigs
{ {
@Name("Allow ApoRed to spawn?") @Config.Comment("Spawn Switches")
public static boolean ApoRed_spawn = true; @LangKey("spackenmobs.config.spawn_switches")
@Name("Allow Baka Mitai Creeper to spawn?") public static SpawnSwitches spawn_switches = new SpawnSwitches();
public static boolean BakaMitaiCreeper_spawn = true;
@Name("Allow Drachenlord to spawn?")
public static boolean Drachenlord_spawn = true;
@Name("Allow Friedrich Liechtenstein to spawn?")
public static boolean Friedrich_spawn = true;
@Name("Allow Holzstammhuhn to spawn?")
public static boolean Holzstammhuhn_spawn = true;
@Name("Allow Islamist to spawn?")
public static boolean Islamist_spawn = true;
@Name("Allow Jens to spawn?")
public static boolean Jens_spawn = true;
@Name("Allow Marcell D'Avis to spawn?")
public static boolean MarcellDAvis_spawn = true;
@Name("Allow Mr. Bean to spawn?")
public static boolean MrBean_spawn = true;
@Name("Allow Schalker to spawn?")
public static boolean Schalker_spawn = true;
@Name("Allow Smava Creeper to spawn?")
public static boolean SmavaCreeper_spawn = true;
@Name("Allow MZTEWolf to spawn?")
public static boolean MZTEWolf_spawn = true;
@Name("Allow Gisela to spawn?")
public static boolean Gisela_spawn = true;
@Name("Allow tilera Ghast to spawn?")
public static boolean tileraGhast_spawn = true;
@Name("ApoRed spawn weight:") @Config.Comment("Spawn Values")
public static int ApoRed_weight = 10; @LangKey("spackenmobs.config.spawn_values")
@Name("ApoRed min group size:") public static SpawnValues spawn_values = new SpawnValues();
public static int ApoRed_min = 1;
@Name("ApoRed max group size:")
public static int ApoRed_max = 1;
@Name("Baka Mitai Creeper spawn weight:")
public static int BakaMitaiCreeper_weight = 10;
@Name("Baka Mitai Creeper min group size:")
public static int BakaMitaiCreeper_min = 1;
@Name("Baka Mitai Creeper max group size:")
public static int BakaMitaiCreeper_max = 1;
@Name("Drachenlord spawn weight:")
public static int Drachenlord_weight = 10;
@Name("Drachenlord min group size:")
public static int Drachenlord_min = 1;
@Name("Drachenlord max group size:")
public static int Drachenlord_max = 1;
@Name("Friedrich Liechtenstein spawn weight:")
public static int Friedrich_weight = 10;
@Name("Friedrich Liechtenstein min group size:")
public static int Friedrich_min = 1;
@Name("Friedrich Liechtenstein max group size:")
public static int Friedrich_max = 1;
@Name("Holzstammhuhn spawn weight:")
public static int Holzstammhuhn_weight = 10;
@Name("Holzstammhuhn min group size:")
public static int Holzstammhuhn_min = 1;
@Name("Holzstammhuhn max group size:")
public static int Holzstammhuhn_max = 1;
@Name("Islamist spawn weight:")
public static int Islamist_weight = 10;
@Name("Islamist min group size:")
public static int Islamist_min = 1;
@Name("Islamist max group size:")
public static int Islamist_max = 1;
@Name("Jens spawn weight:")
public static int Jens_weight = 10;
@Name("Jens min group size:")
public static int Jens_min = 1;
@Name("Jens max group size:")
public static int Jens_max = 1;
@Name("Marcell D'Avis spawn weight:")
public static int MarcellDAvis_weight = 10;
@Name("Marcell D'Avis min group size:")
public static int MarcellDAvis_min = 1;
@Name("Marcell D'Avis max group size:")
public static int MarcellDAvis_max = 1;
@Name("Mr. Bean spawn weight:")
public static int MrBean_weight = 10;
@Name("Mr. Bean min group size:")
public static int MrBean_min = 1;
@Name("Mr. Bean max group size:")
public static int MrBean_max = 1;
@Name("Schalker spawn weight:")
public static int Schalker_weight = 10;
@Name("Schalker min group size:")
public static int Schalker_min = 1;
@Name("Schalker max group size:")
public static int Schalker_max = 1;
@Name("Smava Creeper spawn weight:")
public static int SmavaCreeper_weight = 10;
@Name("Smava Creeper min group size:")
public static int SmavaCreeper_min = 1;
@Name("Smava Creeper max group size:")
public static int SmavaCreeper_max = 1;
@Name("MZTEWolf spawn weight:")
public static int MZTEWolf_weight = 10;
@Name("MZTEWolf min group size:")
public static int MZTEWolf_min = 1;
@Name("MZTEWolf max group size:")
public static int MZTEWolf_max = 1;
@Name("Gisela spawn weight:")
public static int Gisela_weight = 10;
@Name("Gisela min group size:")
public static int Gisela_min = 1;
@Name("Gisela max group size:")
public static int Gisela_max = 1;
@Name("tilera Ghast spawn weight:")
public static int tileraGhast_weight = 10;
@Name("tilera Ghast min group size:")
public static int tileraGhast_min = 1;
@Name("tilera Ghast max group size:")
public static int tileraGhast_max = 1;
@Name("Time in seconds Jens needs to digest:") @Config.Comment("Misc")
public static int Jens_digest_time = 120; @LangKey("spackenmobs.config.misc")
@Name("Maximum distance in blocks Jens can search:") public static Misc misc = new Misc();
public static int Jens_search_distance = 16;
@EventBusSubscriber(modid = "spackenmobs") public static class SpawnSwitches
private static class EventHandler {
@Name("Allow ApoRed to spawn?")
public boolean ApoRed_spawn = true;
@Name("Allow Baka Mitai Creeper to spawn?")
public boolean BakaMitaiCreeper_spawn = true;
@Name("Allow Drachenlord to spawn?")
public boolean Drachenlord_spawn = true;
@Name("Allow Friedrich Liechtenstein to spawn?")
public boolean Friedrich_spawn = true;
@Name("Allow Holzstammhuhn to spawn?")
public boolean Holzstammhuhn_spawn = true;
@Name("Allow Islamist to spawn?")
public boolean Islamist_spawn = true;
@Name("Allow Jens to spawn?")
public boolean Jens_spawn = true;
@Name("Allow Marcell D'Avis to spawn?")
public boolean MarcellDAvis_spawn = true;
@Name("Allow Mr. Bean to spawn?")
public boolean MrBean_spawn = true;
@Name("Allow Schalker to spawn?")
public boolean Schalker_spawn = true;
@Name("Allow Smava Creeper to spawn?")
public boolean SmavaCreeper_spawn = true;
@Name("Allow MZTEWolf to spawn?")
public boolean MZTEWolf_spawn = true;
@Name("Allow Gisela to spawn?")
public boolean Gisela_spawn = true;
@Name("Allow tilera Ghast to spawn?")
public boolean tileraGhast_spawn = true;
}
public static class SpawnValues
{
@Name("ApoRed spawn weight:")
public int ApoRed_weight = 15;
@Name("ApoRed min group size:")
public int ApoRed_min = 1;
@Name("ApoRed max group size:")
public int ApoRed_max = 1;
@Name("Baka Mitai Creeper spawn weight:")
public int BakaMitaiCreeper_weight = 10;
@Name("Baka Mitai Creeper min group size:")
public int BakaMitaiCreeper_min = 1;
@Name("Baka Mitai Creeper max group size:")
public int BakaMitaiCreeper_max = 1;
@Name("Drachenlord spawn weight:")
public int Drachenlord_weight = 10;
@Name("Drachenlord min group size:")
public int Drachenlord_min = 1;
@Name("Drachenlord max group size:")
public int Drachenlord_max = 1;
@Name("Friedrich Liechtenstein spawn weight:")
public int Friedrich_weight = 10;
@Name("Friedrich Liechtenstein min group size:")
public int Friedrich_min = 1;
@Name("Friedrich Liechtenstein max group size:")
public int Friedrich_max = 1;
@Name("Holzstammhuhn spawn weight:")
public int Holzstammhuhn_weight = 10;
@Name("Holzstammhuhn min group size:")
public int Holzstammhuhn_min = 1;
@Name("Holzstammhuhn max group size:")
public int Holzstammhuhn_max = 1;
@Name("Islamist spawn weight:")
public int Islamist_weight = 15;
@Name("Islamist min group size:")
public int Islamist_min = 1;
@Name("Islamist max group size:")
public int Islamist_max = 1;
@Name("Jens spawn weight:")
public int Jens_weight = 10;
@Name("Jens min group size:")
public int Jens_min = 1;
@Name("Jens max group size:")
public int Jens_max = 1;
@Name("Marcell D'Avis spawn weight:")
public int MarcellDAvis_weight = 15;
@Name("Marcell D'Avis min group size:")
public int MarcellDAvis_min = 1;
@Name("Marcell D'Avis max group size:")
public int MarcellDAvis_max = 1;
@Name("Mr. Bean spawn weight:")
public int MrBean_weight = 15;
@Name("Mr. Bean min group size:")
public int MrBean_min = 1;
@Name("Mr. Bean max group size:")
public int MrBean_max = 1;
@Name("Schalker spawn weight:")
public int Schalker_weight = 10;
@Name("Schalker min group size:")
public int Schalker_min = 1;
@Name("Schalker max group size:")
public int Schalker_max = 1;
@Name("Smava Creeper spawn weight:")
public int SmavaCreeper_weight = 15;
@Name("Smava Creeper min group size:")
public int SmavaCreeper_min = 1;
@Name("Smava Creeper max group size:")
public int SmavaCreeper_max = 1;
@Name("MZTEWolf spawn weight:")
public int MZTEWolf_weight = 10;
@Name("MZTEWolf min group size:")
public int MZTEWolf_min = 1;
@Name("MZTEWolf max group size:")
public int MZTEWolf_max = 1;
@Name("Gisela spawn weight:")
public int Gisela_weight = 10;
@Name("Gisela min group size:")
public int Gisela_min = 1;
@Name("Gisela max group size:")
public int Gisela_max = 1;
@Name("tilera Ghast spawn weight:")
public int tileraGhast_weight = 10;
@Name("tilera Ghast min group size:")
public int tileraGhast_min = 1;
@Name("tilera Ghast max group size:")
public int tileraGhast_max = 1;
}
public static class Misc
{
@Name("Time in seconds Jens needs to digest:")
public int Jens_digest_time = 120;
@Name("Maximum distance in blocks Jens can search:")
public int Jens_search_distance = 16;
}
@Mod.EventBusSubscriber(modid = Spackenmobs.MODID)
public static class EventHandler
{ {
@SubscribeEvent @SubscribeEvent
public void onConfigChanged(ConfigChangedEvent.OnConfigChangedEvent event) public static void onConfigChanged(final ConfigChangedEvent.OnConfigChangedEvent event)
{ {
if (event.getModID().equals("spackenmobs")) if (event.getModID().equals(Spackenmobs.MODID))
{ {
ConfigManager.sync("spackenmobs", Config.Type.INSTANCE); ConfigManager.sync(Spackenmobs.MODID, Config.Type.INSTANCE);
} }
} }
} }

View file

@ -1,8 +1,10 @@
package mod.acgaming.spackenmobs.misc; package mod.acgaming.spackenmobs.misc;
import java.util.List;
import java.util.Set;
import com.google.common.collect.Lists;
import net.minecraft.entity.EnumCreatureType; import net.minecraft.entity.EnumCreatureType;
import net.minecraft.entity.monster.*;
import net.minecraft.entity.passive.*;
import net.minecraft.item.Item; import net.minecraft.item.Item;
import net.minecraft.util.ResourceLocation; import net.minecraft.util.ResourceLocation;
import net.minecraft.util.SoundEvent; import net.minecraft.util.SoundEvent;
@ -23,114 +25,198 @@ public class RegistryHandler
@SubscribeEvent @SubscribeEvent
public static void registerEntities(Register<EntityEntry> event) public static void registerEntities(Register<EntityEntry> event)
{ {
List<Biome> regularSpawning = Lists.newArrayList();
for (Biome b : Biome.REGISTRY)
{
Set<BiomeDictionary.Type> types = BiomeDictionary.getTypes(b);
if (!types.contains(BiomeDictionary.Type.WATER) || !types.contains(BiomeDictionary.Type.NETHER) || !types.contains(BiomeDictionary.Type.END))
{
regularSpawning.add(b);
}
}
int id = 1; int id = 1;
// Smava Creeper // Smava Creeper
EntityRegistry.registerModEntity(new ResourceLocation("spackenmobs:smava_creeper"), EntitySmavaCreeper.class, "smava_creeper", id++, Spackenmobs.instance, 64, 1, true, 7649828, 11053224); EntityRegistry.registerModEntity(new ResourceLocation("spackenmobs:smava_creeper"), EntitySmavaCreeper.class, "smava_creeper", id++, Spackenmobs.instance, 64, 1, true, 7649828, 11053224);
if (ModConfigs.SmavaCreeper_spawn) if (ModConfigs.spawn_switches.SmavaCreeper_spawn)
{ {
EntityRegistry.addSpawn(EntitySmavaCreeper.class, ModConfigs.SmavaCreeper_weight, ModConfigs.SmavaCreeper_min, ModConfigs.SmavaCreeper_max, EnumCreatureType.MONSTER, EntityRegistry.addSpawn(
BiomeHelper.getBiomesWithMonster(EntityCreeper.class)); EntitySmavaCreeper.class,
ModConfigs.spawn_values.SmavaCreeper_weight,
ModConfigs.spawn_values.SmavaCreeper_min,
ModConfigs.spawn_values.SmavaCreeper_max,
EnumCreatureType.MONSTER,
regularSpawning.toArray(new Biome[0]));
} }
// Marcell D'Avis // Marcell D'Avis
EntityRegistry.registerModEntity(new ResourceLocation("spackenmobs:marcell_davis"), EntityMarcellDAvis.class, "marcell_davis", id++, Spackenmobs.instance, 64, 1, true, 15759, 16777215); EntityRegistry.registerModEntity(new ResourceLocation("spackenmobs:marcell_davis"), EntityMarcellDAvis.class, "marcell_davis", id++, Spackenmobs.instance, 64, 1, true, 15759, 16777215);
if (ModConfigs.MarcellDAvis_spawn) if (ModConfigs.spawn_switches.MarcellDAvis_spawn)
{ {
EntityRegistry.addSpawn(EntityMarcellDAvis.class, ModConfigs.MarcellDAvis_weight, ModConfigs.MarcellDAvis_min, ModConfigs.MarcellDAvis_max, EnumCreatureType.MONSTER, EntityRegistry.addSpawn(
BiomeHelper.getBiomesWithMonster(EntityZombie.class)); EntityMarcellDAvis.class,
ModConfigs.spawn_values.MarcellDAvis_weight,
ModConfigs.spawn_values.MarcellDAvis_min,
ModConfigs.spawn_values.MarcellDAvis_max,
EnumCreatureType.MONSTER,
regularSpawning.toArray(new Biome[0]));
} }
// Islamist // Islamist
EntityRegistry.registerModEntity(new ResourceLocation("spackenmobs:islamist"), EntityIslamist.class, "islamist", id++, Spackenmobs.instance, 64, 1, true, 15263976, 15211548); EntityRegistry.registerModEntity(new ResourceLocation("spackenmobs:islamist"), EntityIslamist.class, "islamist", id++, Spackenmobs.instance, 64, 1, true, 15263976, 15211548);
if (ModConfigs.Islamist_spawn) if (ModConfigs.spawn_switches.Islamist_spawn)
{ {
EntityRegistry.addSpawn(EntityIslamist.class, ModConfigs.Islamist_weight, ModConfigs.Islamist_min, ModConfigs.Islamist_max, EnumCreatureType.MONSTER, EntityRegistry.addSpawn(
BiomeHelper.getBiomesWithMonster(EntityCreeper.class)); EntityIslamist.class,
ModConfigs.spawn_values.Islamist_weight,
ModConfigs.spawn_values.Islamist_min,
ModConfigs.spawn_values.Islamist_max,
EnumCreatureType.MONSTER,
regularSpawning.toArray(new Biome[0]));
} }
// ApoRed // ApoRed
EntityRegistry.registerModEntity(new ResourceLocation("spackenmobs:apored"), EntityApoRed.class, "apored", id++, Spackenmobs.instance, 64, 1, true, 2039583, 16711680); EntityRegistry.registerModEntity(new ResourceLocation("spackenmobs:apored"), EntityApoRed.class, "apored", id++, Spackenmobs.instance, 64, 1, true, 2039583, 16711680);
if (ModConfigs.ApoRed_spawn) if (ModConfigs.spawn_switches.ApoRed_spawn)
{ {
EntityRegistry.addSpawn(EntityApoRed.class, ModConfigs.ApoRed_weight, ModConfigs.ApoRed_min, ModConfigs.ApoRed_max, EnumCreatureType.MONSTER, EntityRegistry.addSpawn(
BiomeHelper.getBiomesWithMonster(EntitySkeleton.class)); EntityApoRed.class,
ModConfigs.spawn_values.ApoRed_weight,
ModConfigs.spawn_values.ApoRed_min,
ModConfigs.spawn_values.ApoRed_max,
EnumCreatureType.MONSTER,
regularSpawning.toArray(new Biome[0]));
} }
// Mr. Bean // Mr. Bean
EntityRegistry.registerModEntity(new ResourceLocation("spackenmobs:mr_bean"), EntityMrBean.class, "mr_bean", id++, Spackenmobs.instance, 64, 1, true, 4802350, 3220238); EntityRegistry.registerModEntity(new ResourceLocation("spackenmobs:mr_bean"), EntityMrBean.class, "mr_bean", id++, Spackenmobs.instance, 64, 1, true, 4802350, 3220238);
if (ModConfigs.MrBean_spawn) if (ModConfigs.spawn_switches.MrBean_spawn)
{ {
EntityRegistry.addSpawn(EntityMrBean.class, ModConfigs.MrBean_weight, ModConfigs.MrBean_min, ModConfigs.MrBean_max, EnumCreatureType.MONSTER, EntityRegistry.addSpawn(
BiomeHelper.getBiomesWithMonster(EntityZombie.class)); EntityMrBean.class,
ModConfigs.spawn_values.MrBean_weight,
ModConfigs.spawn_values.MrBean_min,
ModConfigs.spawn_values.MrBean_max,
EnumCreatureType.MONSTER,
regularSpawning.toArray(new Biome[0]));
} }
// Drachenlord // Drachenlord
EntityRegistry.registerModEntity(new ResourceLocation("spackenmobs:drachenlord"), EntityDrachenlord.class, "drachenlord", id++, Spackenmobs.instance, 64, 1, true, 15256745, 8738878); EntityRegistry.registerModEntity(new ResourceLocation("spackenmobs:drachenlord"), EntityDrachenlord.class, "drachenlord", id++, Spackenmobs.instance, 64, 1, true, 15256745, 8738878);
if (ModConfigs.Drachenlord_spawn) if (ModConfigs.spawn_switches.Drachenlord_spawn)
{ {
EntityRegistry.addSpawn(EntityDrachenlord.class, ModConfigs.Drachenlord_weight, ModConfigs.Drachenlord_min, ModConfigs.Drachenlord_max, EnumCreatureType.MONSTER, EntityRegistry.addSpawn(
BiomeHelper.getBiomesWithMonster(EntityPigZombie.class)); EntityDrachenlord.class,
ModConfigs.spawn_values.Drachenlord_weight,
ModConfigs.spawn_values.Drachenlord_min,
ModConfigs.spawn_values.Drachenlord_max,
EnumCreatureType.MONSTER,
BiomeDictionary.getBiomes(BiomeDictionary.Type.NETHER).toArray(new Biome[0]));
} }
// Schalker // Schalker
EntityRegistry.registerModEntity(new ResourceLocation("spackenmobs:schalker"), EntitySchalker.class, "schalker", id++, Spackenmobs.instance, 64, 1, true, 24745, 16777215); EntityRegistry.registerModEntity(new ResourceLocation("spackenmobs:schalker"), EntitySchalker.class, "schalker", id++, Spackenmobs.instance, 64, 1, true, 24745, 16777215);
if (ModConfigs.Schalker_spawn) if (ModConfigs.spawn_switches.Schalker_spawn)
{ {
EntityRegistry.addSpawn(EntitySchalker.class, ModConfigs.Schalker_weight, ModConfigs.Schalker_min, ModConfigs.Schalker_max, EnumCreatureType.MONSTER, EntityRegistry.addSpawn(
EntitySchalker.class,
ModConfigs.spawn_values.Schalker_weight,
ModConfigs.spawn_values.Schalker_min,
ModConfigs.spawn_values.Schalker_max,
EnumCreatureType.MONSTER,
BiomeDictionary.getBiomes(BiomeDictionary.Type.END).toArray(new Biome[0])); BiomeDictionary.getBiomes(BiomeDictionary.Type.END).toArray(new Biome[0]));
} }
// Jens // Jens
EntityRegistry.registerModEntity(new ResourceLocation("spackenmobs:jens"), EntityJens.class, "jens", id++, Spackenmobs.instance, 64, 1, true, 6704526, 6767911); EntityRegistry.registerModEntity(new ResourceLocation("spackenmobs:jens"), EntityJens.class, "jens", id++, Spackenmobs.instance, 64, 1, true, 6704526, 6767911);
if (ModConfigs.Jens_spawn) if (ModConfigs.spawn_switches.Jens_spawn)
{ {
EntityRegistry.addSpawn(EntityJens.class, ModConfigs.Jens_weight, ModConfigs.Jens_min, ModConfigs.Jens_max, EnumCreatureType.CREATURE, BiomeHelper.getBiomesWithCreature(EntityPig.class)); EntityRegistry.addSpawn(
EntityJens.class,
ModConfigs.spawn_values.Jens_weight,
ModConfigs.spawn_values.Jens_min,
ModConfigs.spawn_values.Jens_max,
EnumCreatureType.CREATURE,
regularSpawning.toArray(new Biome[0]));
} }
// MZTEWolf // MZTEWolf
EntityRegistry.registerModEntity(new ResourceLocation("spackenmobs:mztewolf"), EntityMZTEWolf.class, "mztewolf", id++, Spackenmobs.instance, 64, 1, true, 16711680, 0); EntityRegistry.registerModEntity(new ResourceLocation("spackenmobs:mztewolf"), EntityMZTEWolf.class, "mztewolf", id++, Spackenmobs.instance, 64, 1, true, 16711680, 0);
if (ModConfigs.MZTEWolf_spawn) if (ModConfigs.spawn_switches.MZTEWolf_spawn)
{ {
EntityRegistry.addSpawn(EntityMZTEWolf.class, ModConfigs.MZTEWolf_weight, ModConfigs.MZTEWolf_min, ModConfigs.MZTEWolf_max, EnumCreatureType.CREATURE, EntityRegistry.addSpawn(
BiomeHelper.getBiomesWithCreature(EntityWolf.class)); EntityMZTEWolf.class,
ModConfigs.spawn_values.MZTEWolf_weight,
ModConfigs.spawn_values.MZTEWolf_min,
ModConfigs.spawn_values.MZTEWolf_max,
EnumCreatureType.CREATURE,
regularSpawning.toArray(new Biome[0]));
} }
// Holzstammhuhn // Holzstammhuhn
EntityRegistry.registerModEntity(new ResourceLocation("spackenmobs:holzstammhuhn"), EntityHolzstammhuhn.class, "holzstammhuhn", id++, Spackenmobs.instance, 64, 1, true, 12096347, 5295899); EntityRegistry.registerModEntity(new ResourceLocation("spackenmobs:holzstammhuhn"), EntityHolzstammhuhn.class, "holzstammhuhn", id++, Spackenmobs.instance, 64, 1, true, 12096347, 5295899);
if (ModConfigs.Holzstammhuhn_spawn) if (ModConfigs.spawn_switches.Holzstammhuhn_spawn)
{ {
EntityRegistry.addSpawn(EntityHolzstammhuhn.class, ModConfigs.Holzstammhuhn_weight, ModConfigs.Holzstammhuhn_min, ModConfigs.Holzstammhuhn_max, EnumCreatureType.CREATURE, EntityRegistry.addSpawn(
BiomeHelper.getBiomesWithCreature(EntityChicken.class)); EntityHolzstammhuhn.class,
ModConfigs.spawn_values.Holzstammhuhn_weight,
ModConfigs.spawn_values.Holzstammhuhn_min,
ModConfigs.spawn_values.Holzstammhuhn_max,
EnumCreatureType.CREATURE,
regularSpawning.toArray(new Biome[0]));
} }
// Baka Mitai Creeper // Baka Mitai Creeper
EntityRegistry.registerModEntity(new ResourceLocation("spackenmobs:bakamitai_creeper"), EntityBakaMitaiCreeper.class, "bakamitai_creeper", id++, Spackenmobs.instance, 64, 1, true, 826890, 0); EntityRegistry.registerModEntity(new ResourceLocation("spackenmobs:bakamitai_creeper"), EntityBakaMitaiCreeper.class, "bakamitai_creeper", id++, Spackenmobs.instance, 64, 1, true, 826890, 0);
if (ModConfigs.BakaMitaiCreeper_spawn) if (ModConfigs.spawn_switches.BakaMitaiCreeper_spawn)
{ {
EntityRegistry.addSpawn(EntityBakaMitaiCreeper.class, ModConfigs.BakaMitaiCreeper_weight, ModConfigs.BakaMitaiCreeper_min, ModConfigs.BakaMitaiCreeper_max, EnumCreatureType.MONSTER, EntityRegistry.addSpawn(
BiomeHelper.getBiomesWithMonster(EntityCreeper.class)); EntityBakaMitaiCreeper.class,
ModConfigs.spawn_values.BakaMitaiCreeper_weight,
ModConfigs.spawn_values.BakaMitaiCreeper_min,
ModConfigs.spawn_values.BakaMitaiCreeper_max,
EnumCreatureType.MONSTER,
regularSpawning.toArray(new Biome[0]));
} }
// Friedrich Liechtenstein // Friedrich Liechtenstein
EntityRegistry.registerModEntity(new ResourceLocation("spackenmobs:friedrich"), EntityFriedrichLiechtenstein.class, "friedrich", id++, Spackenmobs.instance, 64, 1, true, 16447728, 15878595); EntityRegistry.registerModEntity(new ResourceLocation("spackenmobs:friedrich"), EntityFriedrichLiechtenstein.class, "friedrich", id++, Spackenmobs.instance, 64, 1, true, 16447728, 15878595);
if (ModConfigs.Friedrich_spawn) if (ModConfigs.spawn_switches.Friedrich_spawn)
{ {
EntityRegistry.addSpawn(EntityFriedrichLiechtenstein.class, ModConfigs.Friedrich_weight, ModConfigs.Friedrich_min, ModConfigs.Friedrich_max, EnumCreatureType.CREATURE, BiomeHelper.getBiomesWithCreature(EntityCow.class)); EntityRegistry.addSpawn(
EntityFriedrichLiechtenstein.class,
ModConfigs.spawn_values.Friedrich_weight,
ModConfigs.spawn_values.Friedrich_min,
ModConfigs.spawn_values.Friedrich_max,
EnumCreatureType.CREATURE,
regularSpawning.toArray(new Biome[0]));
} }
// Gisela // Gisela
EntityRegistry.registerModEntity(new ResourceLocation("spackenmobs:gisela"), EntityGisela.class, "gisela", id++, Spackenmobs.instance, 64, 1, true, 39835, 16448250); EntityRegistry.registerModEntity(new ResourceLocation("spackenmobs:gisela"), EntityGisela.class, "gisela", id++, Spackenmobs.instance, 64, 1, true, 39835, 16448250);
if (ModConfigs.Gisela_spawn) if (ModConfigs.spawn_switches.Gisela_spawn)
{ {
EntityRegistry.addSpawn(EntityGisela.class, ModConfigs.Gisela_weight, ModConfigs.Gisela_min, ModConfigs.Gisela_max, EnumCreatureType.MONSTER, BiomeHelper.getBiomesWithCreature(EntitySheep.class)); EntityRegistry.addSpawn(
EntityGisela.class,
ModConfigs.spawn_values.Gisela_weight,
ModConfigs.spawn_values.Gisela_min,
ModConfigs.spawn_values.Gisela_max,
EnumCreatureType.CREATURE,
regularSpawning.toArray(new Biome[0]));
} }
// tilera Ghast // tilera Ghast
EntityRegistry.registerModEntity(new ResourceLocation("spackenmobs:tilera_ghast"), EntityTileraGhast.class, "tilera_ghast", id++, Spackenmobs.instance, 64, 1, true, 16447728, 15878595); EntityRegistry.registerModEntity(new ResourceLocation("spackenmobs:tilera_ghast"), EntityTileraGhast.class, "tilera_ghast", id++, Spackenmobs.instance, 64, 1, true, 16447728, 15878595);
if (ModConfigs.tileraGhast_spawn) if (ModConfigs.spawn_switches.tileraGhast_spawn)
{ {
EntityRegistry.addSpawn(EntityTileraGhast.class, ModConfigs.tileraGhast_weight, ModConfigs.tileraGhast_min, ModConfigs.tileraGhast_max, EnumCreatureType.MONSTER, BiomeHelper.getBiomesWithMonster(EntityGhast.class)); EntityRegistry.addSpawn(
EntityTileraGhast.class,
ModConfigs.spawn_values.tileraGhast_weight,
ModConfigs.spawn_values.tileraGhast_min,
ModConfigs.spawn_values.tileraGhast_max,
EnumCreatureType.MONSTER,
BiomeDictionary.getBiomes(BiomeDictionary.Type.NETHER).toArray(new Biome[0]));
} }
} }

View file

@ -31,4 +31,7 @@ item.ram.name=RAM
item.ram_on_a_stick.name=RAM-Rute item.ram_on_a_stick.name=RAM-Rute
item.surstroemming.name=Surströmming item.surstroemming.name=Surströmming
itemGroup.spackenmobs=Spackenmobs itemGroup.spackenmobs=Spackenmobs
spackenmobs.config.title=Spackenmobs-Einstellungen spackenmobs.config.title=Spackenmobs-Einstellungen
spackenmobs.config.spawn_switches=Spawnschalter
spackenmobs.config.spawn_values=Spawnwerte
spackenmobs.config.misc=Sonstiges

View file

@ -31,4 +31,7 @@ item.ram.name=RAM
item.ram_on_a_stick.name=RAM on a Stick item.ram_on_a_stick.name=RAM on a Stick
item.surstroemming.name=Surströmming item.surstroemming.name=Surströmming
itemGroup.spackenmobs=Spackenmobs itemGroup.spackenmobs=Spackenmobs
spackenmobs.config.title=Spackenmobs Settings spackenmobs.config.title=Spackenmobs Settings
spackenmobs.config.spawn_switches=Spawn Switches
spackenmobs.config.spawn_values=Spawn Values
spackenmobs.config.misc=Miscellaneous

View file

@ -487,6 +487,9 @@
}, },
{ {
"name": "spackenmobs:apored/hurt19" "name": "spackenmobs:apored/hurt19"
},
{
"name": "spackenmobs:apored/hurt20"
} }
] ]
}, },