mirror of
https://github.com/ACGaming/Spackenmobs
synced 2024-05-19 11:54:25 +02:00
Revamp spawn system, improve ApoRed sounds
This commit is contained in:
parent
4d2572db2c
commit
9e7cbb7aab
|
@ -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]);
|
||||
}
|
||||
}
|
|
@ -5,10 +5,12 @@ import net.minecraftforge.common.config.Config.LangKey;
|
|||
import net.minecraftforge.common.config.Config.Name;
|
||||
import net.minecraftforge.common.config.ConfigManager;
|
||||
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;
|
||||
|
||||
@Config(modid = "spackenmobs")
|
||||
import mod.acgaming.spackenmobs.Spackenmobs;
|
||||
|
||||
@Config(modid = Spackenmobs.MODID)
|
||||
@LangKey("spackenmobs.config.title")
|
||||
public class ModConfigs
|
||||
{
|
||||
|
@ -42,7 +44,7 @@ public class ModConfigs
|
|||
public static boolean tileraGhast_spawn = true;
|
||||
|
||||
@Name("ApoRed spawn weight:")
|
||||
public static int ApoRed_weight = 10;
|
||||
public static int ApoRed_weight = 15;
|
||||
@Name("ApoRed min group size:")
|
||||
public static int ApoRed_min = 1;
|
||||
@Name("ApoRed max group size:")
|
||||
|
@ -72,7 +74,7 @@ public class ModConfigs
|
|||
@Name("Holzstammhuhn max group size:")
|
||||
public static int Holzstammhuhn_max = 1;
|
||||
@Name("Islamist spawn weight:")
|
||||
public static int Islamist_weight = 10;
|
||||
public static int Islamist_weight = 15;
|
||||
@Name("Islamist min group size:")
|
||||
public static int Islamist_min = 1;
|
||||
@Name("Islamist max group size:")
|
||||
|
@ -84,13 +86,13 @@ public class ModConfigs
|
|||
@Name("Jens max group size:")
|
||||
public static int Jens_max = 1;
|
||||
@Name("Marcell D'Avis spawn weight:")
|
||||
public static int MarcellDAvis_weight = 10;
|
||||
public static int MarcellDAvis_weight = 15;
|
||||
@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;
|
||||
public static int MrBean_weight = 15;
|
||||
@Name("Mr. Bean min group size:")
|
||||
public static int MrBean_min = 1;
|
||||
@Name("Mr. Bean max group size:")
|
||||
|
@ -102,7 +104,7 @@ public class ModConfigs
|
|||
@Name("Schalker max group size:")
|
||||
public static int Schalker_max = 1;
|
||||
@Name("Smava Creeper spawn weight:")
|
||||
public static int SmavaCreeper_weight = 10;
|
||||
public static int SmavaCreeper_weight = 15;
|
||||
@Name("Smava Creeper min group size:")
|
||||
public static int SmavaCreeper_min = 1;
|
||||
@Name("Smava Creeper max group size:")
|
||||
|
@ -131,15 +133,15 @@ public class ModConfigs
|
|||
@Name("Maximum distance in blocks Jens can search:")
|
||||
public static int Jens_search_distance = 16;
|
||||
|
||||
@EventBusSubscriber(modid = "spackenmobs")
|
||||
private static class EventHandler
|
||||
@Mod.EventBusSubscriber(modid = Spackenmobs.MODID)
|
||||
public static class EventHandler
|
||||
{
|
||||
@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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,8 +1,10 @@
|
|||
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.monster.*;
|
||||
import net.minecraft.entity.passive.*;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
import net.minecraft.util.SoundEvent;
|
||||
|
@ -23,61 +25,106 @@ public class RegistryHandler
|
|||
@SubscribeEvent
|
||||
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;
|
||||
|
||||
// Smava Creeper
|
||||
EntityRegistry.registerModEntity(new ResourceLocation("spackenmobs:smava_creeper"), EntitySmavaCreeper.class, "smava_creeper", id++, Spackenmobs.instance, 64, 1, true, 7649828, 11053224);
|
||||
if (ModConfigs.SmavaCreeper_spawn)
|
||||
{
|
||||
EntityRegistry.addSpawn(EntitySmavaCreeper.class, ModConfigs.SmavaCreeper_weight, ModConfigs.SmavaCreeper_min, ModConfigs.SmavaCreeper_max, EnumCreatureType.MONSTER,
|
||||
BiomeHelper.getBiomesWithMonster(EntityCreeper.class));
|
||||
EntityRegistry.addSpawn(
|
||||
EntitySmavaCreeper.class,
|
||||
ModConfigs.SmavaCreeper_weight,
|
||||
ModConfigs.SmavaCreeper_min,
|
||||
ModConfigs.SmavaCreeper_max,
|
||||
EnumCreatureType.MONSTER,
|
||||
regularSpawning.toArray(new Biome[0]));
|
||||
}
|
||||
|
||||
// Marcell D'Avis
|
||||
EntityRegistry.registerModEntity(new ResourceLocation("spackenmobs:marcell_davis"), EntityMarcellDAvis.class, "marcell_davis", id++, Spackenmobs.instance, 64, 1, true, 15759, 16777215);
|
||||
if (ModConfigs.MarcellDAvis_spawn)
|
||||
{
|
||||
EntityRegistry.addSpawn(EntityMarcellDAvis.class, ModConfigs.MarcellDAvis_weight, ModConfigs.MarcellDAvis_min, ModConfigs.MarcellDAvis_max, EnumCreatureType.MONSTER,
|
||||
BiomeHelper.getBiomesWithMonster(EntityZombie.class));
|
||||
EntityRegistry.addSpawn(
|
||||
EntityMarcellDAvis.class,
|
||||
ModConfigs.MarcellDAvis_weight,
|
||||
ModConfigs.MarcellDAvis_min,
|
||||
ModConfigs.MarcellDAvis_max,
|
||||
EnumCreatureType.MONSTER,
|
||||
regularSpawning.toArray(new Biome[0]));
|
||||
}
|
||||
|
||||
// Islamist
|
||||
EntityRegistry.registerModEntity(new ResourceLocation("spackenmobs:islamist"), EntityIslamist.class, "islamist", id++, Spackenmobs.instance, 64, 1, true, 15263976, 15211548);
|
||||
if (ModConfigs.Islamist_spawn)
|
||||
{
|
||||
EntityRegistry.addSpawn(EntityIslamist.class, ModConfigs.Islamist_weight, ModConfigs.Islamist_min, ModConfigs.Islamist_max, EnumCreatureType.MONSTER,
|
||||
BiomeHelper.getBiomesWithMonster(EntityCreeper.class));
|
||||
EntityRegistry.addSpawn(
|
||||
EntityIslamist.class,
|
||||
ModConfigs.Islamist_weight,
|
||||
ModConfigs.Islamist_min,
|
||||
ModConfigs.Islamist_max,
|
||||
EnumCreatureType.MONSTER,
|
||||
regularSpawning.toArray(new Biome[0]));
|
||||
}
|
||||
|
||||
// ApoRed
|
||||
EntityRegistry.registerModEntity(new ResourceLocation("spackenmobs:apored"), EntityApoRed.class, "apored", id++, Spackenmobs.instance, 64, 1, true, 2039583, 16711680);
|
||||
if (ModConfigs.ApoRed_spawn)
|
||||
{
|
||||
EntityRegistry.addSpawn(EntityApoRed.class, ModConfigs.ApoRed_weight, ModConfigs.ApoRed_min, ModConfigs.ApoRed_max, EnumCreatureType.MONSTER,
|
||||
BiomeHelper.getBiomesWithMonster(EntitySkeleton.class));
|
||||
EntityRegistry.addSpawn(
|
||||
EntityApoRed.class,
|
||||
ModConfigs.ApoRed_weight,
|
||||
ModConfigs.ApoRed_min,
|
||||
ModConfigs.ApoRed_max,
|
||||
EnumCreatureType.MONSTER,
|
||||
regularSpawning.toArray(new Biome[0]));
|
||||
}
|
||||
|
||||
// Mr. Bean
|
||||
EntityRegistry.registerModEntity(new ResourceLocation("spackenmobs:mr_bean"), EntityMrBean.class, "mr_bean", id++, Spackenmobs.instance, 64, 1, true, 4802350, 3220238);
|
||||
if (ModConfigs.MrBean_spawn)
|
||||
{
|
||||
EntityRegistry.addSpawn(EntityMrBean.class, ModConfigs.MrBean_weight, ModConfigs.MrBean_min, ModConfigs.MrBean_max, EnumCreatureType.MONSTER,
|
||||
BiomeHelper.getBiomesWithMonster(EntityZombie.class));
|
||||
EntityRegistry.addSpawn(
|
||||
EntityMrBean.class,
|
||||
ModConfigs.MrBean_weight,
|
||||
ModConfigs.MrBean_min,
|
||||
ModConfigs.MrBean_max,
|
||||
EnumCreatureType.MONSTER,
|
||||
regularSpawning.toArray(new Biome[0]));
|
||||
}
|
||||
|
||||
// Drachenlord
|
||||
EntityRegistry.registerModEntity(new ResourceLocation("spackenmobs:drachenlord"), EntityDrachenlord.class, "drachenlord", id++, Spackenmobs.instance, 64, 1, true, 15256745, 8738878);
|
||||
if (ModConfigs.Drachenlord_spawn)
|
||||
{
|
||||
EntityRegistry.addSpawn(EntityDrachenlord.class, ModConfigs.Drachenlord_weight, ModConfigs.Drachenlord_min, ModConfigs.Drachenlord_max, EnumCreatureType.MONSTER,
|
||||
BiomeHelper.getBiomesWithMonster(EntityPigZombie.class));
|
||||
EntityRegistry.addSpawn(
|
||||
EntityDrachenlord.class,
|
||||
ModConfigs.Drachenlord_weight,
|
||||
ModConfigs.Drachenlord_min,
|
||||
ModConfigs.Drachenlord_max,
|
||||
EnumCreatureType.MONSTER,
|
||||
BiomeDictionary.getBiomes(BiomeDictionary.Type.NETHER).toArray(new Biome[0]));
|
||||
}
|
||||
|
||||
// Schalker
|
||||
EntityRegistry.registerModEntity(new ResourceLocation("spackenmobs:schalker"), EntitySchalker.class, "schalker", id++, Spackenmobs.instance, 64, 1, true, 24745, 16777215);
|
||||
if (ModConfigs.Schalker_spawn)
|
||||
{
|
||||
EntityRegistry.addSpawn(EntitySchalker.class, ModConfigs.Schalker_weight, ModConfigs.Schalker_min, ModConfigs.Schalker_max, EnumCreatureType.MONSTER,
|
||||
EntityRegistry.addSpawn(
|
||||
EntitySchalker.class,
|
||||
ModConfigs.Schalker_weight,
|
||||
ModConfigs.Schalker_min,
|
||||
ModConfigs.Schalker_max,
|
||||
EnumCreatureType.MONSTER,
|
||||
BiomeDictionary.getBiomes(BiomeDictionary.Type.END).toArray(new Biome[0]));
|
||||
}
|
||||
|
||||
|
@ -85,52 +132,91 @@ public class RegistryHandler
|
|||
EntityRegistry.registerModEntity(new ResourceLocation("spackenmobs:jens"), EntityJens.class, "jens", id++, Spackenmobs.instance, 64, 1, true, 6704526, 6767911);
|
||||
if (ModConfigs.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.Jens_weight,
|
||||
ModConfigs.Jens_min,
|
||||
ModConfigs.Jens_max,
|
||||
EnumCreatureType.CREATURE,
|
||||
regularSpawning.toArray(new Biome[0]));
|
||||
}
|
||||
|
||||
// MZTEWolf
|
||||
EntityRegistry.registerModEntity(new ResourceLocation("spackenmobs:mztewolf"), EntityMZTEWolf.class, "mztewolf", id++, Spackenmobs.instance, 64, 1, true, 16711680, 0);
|
||||
if (ModConfigs.MZTEWolf_spawn)
|
||||
{
|
||||
EntityRegistry.addSpawn(EntityMZTEWolf.class, ModConfigs.MZTEWolf_weight, ModConfigs.MZTEWolf_min, ModConfigs.MZTEWolf_max, EnumCreatureType.CREATURE,
|
||||
BiomeHelper.getBiomesWithCreature(EntityWolf.class));
|
||||
EntityRegistry.addSpawn(
|
||||
EntityMZTEWolf.class,
|
||||
ModConfigs.MZTEWolf_weight,
|
||||
ModConfigs.MZTEWolf_min,
|
||||
ModConfigs.MZTEWolf_max,
|
||||
EnumCreatureType.CREATURE,
|
||||
regularSpawning.toArray(new Biome[0]));
|
||||
}
|
||||
|
||||
// Holzstammhuhn
|
||||
EntityRegistry.registerModEntity(new ResourceLocation("spackenmobs:holzstammhuhn"), EntityHolzstammhuhn.class, "holzstammhuhn", id++, Spackenmobs.instance, 64, 1, true, 12096347, 5295899);
|
||||
if (ModConfigs.Holzstammhuhn_spawn)
|
||||
{
|
||||
EntityRegistry.addSpawn(EntityHolzstammhuhn.class, ModConfigs.Holzstammhuhn_weight, ModConfigs.Holzstammhuhn_min, ModConfigs.Holzstammhuhn_max, EnumCreatureType.CREATURE,
|
||||
BiomeHelper.getBiomesWithCreature(EntityChicken.class));
|
||||
EntityRegistry.addSpawn(
|
||||
EntityHolzstammhuhn.class,
|
||||
ModConfigs.Holzstammhuhn_weight,
|
||||
ModConfigs.Holzstammhuhn_min,
|
||||
ModConfigs.Holzstammhuhn_max,
|
||||
EnumCreatureType.CREATURE,
|
||||
regularSpawning.toArray(new Biome[0]));
|
||||
}
|
||||
|
||||
// Baka Mitai Creeper
|
||||
EntityRegistry.registerModEntity(new ResourceLocation("spackenmobs:bakamitai_creeper"), EntityBakaMitaiCreeper.class, "bakamitai_creeper", id++, Spackenmobs.instance, 64, 1, true, 826890, 0);
|
||||
if (ModConfigs.BakaMitaiCreeper_spawn)
|
||||
{
|
||||
EntityRegistry.addSpawn(EntityBakaMitaiCreeper.class, ModConfigs.BakaMitaiCreeper_weight, ModConfigs.BakaMitaiCreeper_min, ModConfigs.BakaMitaiCreeper_max, EnumCreatureType.MONSTER,
|
||||
BiomeHelper.getBiomesWithMonster(EntityCreeper.class));
|
||||
EntityRegistry.addSpawn(
|
||||
EntityBakaMitaiCreeper.class,
|
||||
ModConfigs.BakaMitaiCreeper_weight,
|
||||
ModConfigs.BakaMitaiCreeper_min,
|
||||
ModConfigs.BakaMitaiCreeper_max,
|
||||
EnumCreatureType.MONSTER,
|
||||
regularSpawning.toArray(new Biome[0]));
|
||||
}
|
||||
|
||||
// Friedrich Liechtenstein
|
||||
EntityRegistry.registerModEntity(new ResourceLocation("spackenmobs:friedrich"), EntityFriedrichLiechtenstein.class, "friedrich", id++, Spackenmobs.instance, 64, 1, true, 16447728, 15878595);
|
||||
if (ModConfigs.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.Friedrich_weight,
|
||||
ModConfigs.Friedrich_min,
|
||||
ModConfigs.Friedrich_max,
|
||||
EnumCreatureType.CREATURE,
|
||||
regularSpawning.toArray(new Biome[0]));
|
||||
}
|
||||
|
||||
// Gisela
|
||||
EntityRegistry.registerModEntity(new ResourceLocation("spackenmobs:gisela"), EntityGisela.class, "gisela", id++, Spackenmobs.instance, 64, 1, true, 39835, 16448250);
|
||||
if (ModConfigs.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.Gisela_weight,
|
||||
ModConfigs.Gisela_min,
|
||||
ModConfigs.Gisela_max,
|
||||
EnumCreatureType.MONSTER,
|
||||
regularSpawning.toArray(new Biome[0]));
|
||||
}
|
||||
|
||||
// tilera Ghast
|
||||
EntityRegistry.registerModEntity(new ResourceLocation("spackenmobs:tilera_ghast"), EntityTileraGhast.class, "tilera_ghast", id++, Spackenmobs.instance, 64, 1, true, 16447728, 15878595);
|
||||
if (ModConfigs.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.tileraGhast_weight,
|
||||
ModConfigs.tileraGhast_min,
|
||||
ModConfigs.tileraGhast_max,
|
||||
EnumCreatureType.MONSTER,
|
||||
BiomeDictionary.getBiomes(BiomeDictionary.Type.NETHER).toArray(new Biome[0]));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load diff
BIN
src/main/resources/assets/spackenmobs/sounds/apored/hurt20.ogg
Normal file
BIN
src/main/resources/assets/spackenmobs/sounds/apored/hurt20.ogg
Normal file
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.
Loading…
Reference in a new issue