diff --git a/build.gradle b/build.gradle index ebe26ce..3b56fec 100644 --- a/build.gradle +++ b/build.gradle @@ -11,7 +11,7 @@ apply plugin: 'net.minecraftforge.gradle.forge' //Only edit below this line, the above code adds and enables the necessary things for Forge to be setup. -version = "RC1" +version = "RC2" group = "com.acgaming.spackenmobs" // http://maven.apache.org/guides/mini/guide-naming-conventions.html archivesBaseName = "Spackenmobs-1.12.2" diff --git a/src/main/java/mod/acgaming/spackenmobs/Spackenmobs.java b/src/main/java/mod/acgaming/spackenmobs/Spackenmobs.java index f2e4958..333f320 100644 --- a/src/main/java/mod/acgaming/spackenmobs/Spackenmobs.java +++ b/src/main/java/mod/acgaming/spackenmobs/Spackenmobs.java @@ -11,11 +11,11 @@ import net.minecraftforge.fml.common.event.FMLPreInitializationEvent; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; -@Mod(modid = "spackenmobs", version = "RC1", acceptedMinecraftVersions = "[1.12.2]") +@Mod(modid = "spackenmobs", version = "RC2", acceptedMinecraftVersions = "[1.12.2]") public class Spackenmobs { public static final String MODID = "spackenmobs"; - public static final String VERSION = "RC1"; + public static final String VERSION = "RC2"; public static final CreativeTabs SPACKENMOBS_TAB = new SpackenmobsTab("tabSpackenmobs"); diff --git a/src/main/java/mod/acgaming/spackenmobs/entities/EntityAIEatDroppedFish.java b/src/main/java/mod/acgaming/spackenmobs/entities/EntityAIEatDroppedFish.java index d2ca4cc..41fc50e 100644 --- a/src/main/java/mod/acgaming/spackenmobs/entities/EntityAIEatDroppedFish.java +++ b/src/main/java/mod/acgaming/spackenmobs/entities/EntityAIEatDroppedFish.java @@ -3,6 +3,7 @@ package mod.acgaming.spackenmobs.entities; import java.util.List; import java.util.Random; +import mod.acgaming.spackenmobs.misc.ModConfigs; import net.minecraft.entity.ai.EntityAIBase; import net.minecraft.entity.item.EntityItem; import net.minecraft.item.ItemStack; @@ -14,7 +15,7 @@ public class EntityAIEatDroppedFish extends EntityAIBase private EntityJens jens; private Random rand = new Random(); private World world = null; - double searchDistance = 10.0D; + double searchDistance = ModConfigs.Jens_search_distance; public EntityAIEatDroppedFish(EntityJens jens) { @@ -45,10 +46,10 @@ public class EntityAIEatDroppedFish extends EntityAIBase @Override public boolean shouldExecute() { - EntityItem getNearbyFood = getNearbyFood(); - if (getNearbyFood != null && !this.jens.isChild() && this.jens.yummy_in_tummy == false && this.jens.isFishItem(getNearbyFood.getItem())) + EntityItem nearbyFood = getNearbyFood(); + if (nearbyFood != null && !this.jens.isChild() && this.jens.yummy_in_tummy == false && this.jens.isFishItem(nearbyFood.getItem())) { - execute(this.jens, getNearbyFood); + execute(this.jens, nearbyFood); } return false; } diff --git a/src/main/java/mod/acgaming/spackenmobs/entities/EntityJens.java b/src/main/java/mod/acgaming/spackenmobs/entities/EntityJens.java index d38aecc..f8372d2 100644 --- a/src/main/java/mod/acgaming/spackenmobs/entities/EntityJens.java +++ b/src/main/java/mod/acgaming/spackenmobs/entities/EntityJens.java @@ -6,6 +6,7 @@ import javax.annotation.Nullable; import com.google.common.collect.Sets; +import mod.acgaming.spackenmobs.misc.ModConfigs; import mod.acgaming.spackenmobs.misc.ModItems; import mod.acgaming.spackenmobs.misc.ModLootTableList; import mod.acgaming.spackenmobs.misc.ModSoundEvents; @@ -39,6 +40,8 @@ import net.minecraft.util.SoundEvent; import net.minecraft.util.datafix.DataFixer; import net.minecraft.util.math.MathHelper; import net.minecraft.world.World; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; public class EntityJens extends EntityPig { @@ -53,6 +56,7 @@ public class EntityJens extends EntityPig public boolean yummy_in_tummy = false; public int time_until_surstroemming = 0; + @SideOnly(Side.CLIENT) Minecraft MINECRAFT = Minecraft.getMinecraft(); public EntityJens(World worldIn) @@ -203,7 +207,7 @@ public class EntityJens extends EntityPig if (!super.processInteract(player, hand)) { ItemStack itemstack = player.getHeldItem(hand); - if (itemstack.getItem() == Items.FISH && !player.capabilities.isCreativeMode && !this.isChild() && this.yummy_in_tummy == false) + if (itemstack.getItem() == Items.FISH && !this.isChild() && this.yummy_in_tummy == false) { itemstack.shrink(1); digestFish(); @@ -270,7 +274,7 @@ public class EntityJens extends EntityPig this.playSound(ModSoundEvents.ENTITY_JENS_EAT, 1.0F, 1.0F); this.yummy_in_tummy = true; - this.time_until_surstroemming = 200; + this.time_until_surstroemming = (ModConfigs.Jens_digest_time * 20); for (int i = 0; i < 7; ++i) { diff --git a/src/main/java/mod/acgaming/spackenmobs/entities/EntityWolfMZTE.java b/src/main/java/mod/acgaming/spackenmobs/entities/EntityWolfMZTE.java index a3dc9ea..da7b8a5 100644 --- a/src/main/java/mod/acgaming/spackenmobs/entities/EntityWolfMZTE.java +++ b/src/main/java/mod/acgaming/spackenmobs/entities/EntityWolfMZTE.java @@ -126,9 +126,6 @@ public class EntityWolfMZTE extends EntityWolf this.wolf = wolfIn; } - /** - * Returns whether the EntityAIBase should begin execution. - */ @Override public boolean shouldExecute() { @@ -147,9 +144,6 @@ public class EntityWolfMZTE extends EntityWolf return p_190854_1_.getStrength() >= EntityWolfMZTE.this.rand.nextInt(5); } - /** - * Execute a one shot task or start executing a continuous task - */ @Override public void startExecuting() { @@ -157,9 +151,6 @@ public class EntityWolfMZTE extends EntityWolf super.startExecuting(); } - /** - * Keep ticking a continuous task that has already been started - */ @Override public void updateTask() { diff --git a/src/main/java/mod/acgaming/spackenmobs/misc/ModConfigs.java b/src/main/java/mod/acgaming/spackenmobs/misc/ModConfigs.java new file mode 100644 index 0000000..a6799ad --- /dev/null +++ b/src/main/java/mod/acgaming/spackenmobs/misc/ModConfigs.java @@ -0,0 +1,124 @@ +package mod.acgaming.spackenmobs.misc; + +import net.minecraftforge.common.config.Config; +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.eventhandler.SubscribeEvent; + +@Config(modid = "spackenmobs") +@LangKey("spackenmobs.config.title") +public class ModConfigs +{ + @Name("Allow ApoRed to spawn?") + public static boolean ApoRed_spawn = true; + @Name("Allow Drachenlord to spawn?") + public static boolean Drachenlord_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 WolfMZTE to spawn?") + public static boolean WolfMZTE_spawn = true; + + @Name("ApoRed spawn probability:") + public static int ApoRed_weight = 50; + @Name("ApoRed min group size:") + public static int ApoRed_min = 1; + @Name("ApoRed max group size:") + public static int ApoRed_max = 4; + + @Name("Drachenlord spawn probability:") + public static int Drachenlord_weight = 50; + @Name("Drachenlord min group size:") + public static int Drachenlord_min = 1; + @Name("Drachenlord max group size:") + public static int Drachenlord_max = 4; + + @Name("Holzstammhuhn spawn probability:") + public static int Holzstammhuhn_weight = 50; + @Name("Holzstammhuhn min group size:") + public static int Holzstammhuhn_min = 1; + @Name("Holzstammhuhn max group size:") + public static int Holzstammhuhn_max = 4; + + @Name("Islamist spawn probability:") + public static int Islamist_weight = 50; + @Name("Islamist min group size:") + public static int Islamist_min = 1; + @Name("Islamist max group size:") + public static int Islamist_max = 4; + + @Name("Jens spawn probability:") + public static int Jens_weight = 25; + @Name("Jens min group size:") + public static int Jens_min = 1; + @Name("Jens max group size:") + public static int Jens_max = 4; + + @Name("Marcell D'Avis spawn probability:") + public static int MarcellDAvis_weight = 50; + @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 = 4; + + @Name("Mr. Bean spawn probability:") + public static int MrBean_weight = 50; + @Name("Mr. Bean min group size:") + public static int MrBean_min = 1; + @Name("Mr. Bean max group size:") + public static int MrBean_max = 4; + + @Name("Schalker spawn probability:") + public static int Schalker_weight = 50; + @Name("Schalker min group size:") + public static int Schalker_min = 1; + @Name("Schalker max group size:") + public static int Schalker_max = 4; + + @Name("Smava Creeper spawn probability:") + public static int SmavaCreeper_weight = 25; + @Name("Smava Creeper min group size:") + public static int SmavaCreeper_min = 1; + @Name("Smava Creeper max group size:") + public static int SmavaCreeper_max = 4; + + @Name("WolfMZTE spawn probability:") + public static int WolfMZTE_weight = 50; + @Name("WolfMZTE min group size:") + public static int WolfMZTE_min = 1; + @Name("WolfMZTE max group size:") + public static int WolfMZTE_max = 4; + + @Name("Time in seconds Jens needs to digest:") + public static int Jens_digest_time = 10; + + @Name("Maximum distance in blocks Jens can search for fish:") + public static double Jens_search_distance = 10.0; + + @EventBusSubscriber(modid = "spackenmobs") + private static class EventHandler + { + @SubscribeEvent + public void onConfigChanged(ConfigChangedEvent.OnConfigChangedEvent event) + { + if (event.getModID().equals("spackenmobs")) + { + ConfigManager.sync("spackenmobs", Config.Type.INSTANCE); + } + } + } +} \ No newline at end of file diff --git a/src/main/java/mod/acgaming/spackenmobs/misc/RegHandler.java b/src/main/java/mod/acgaming/spackenmobs/misc/RegHandler.java index c17284d..40d73a6 100644 --- a/src/main/java/mod/acgaming/spackenmobs/misc/RegHandler.java +++ b/src/main/java/mod/acgaming/spackenmobs/misc/RegHandler.java @@ -51,43 +51,82 @@ public class RegHandler // Smava Creeper EntityRegistry.registerModEntity(new ResourceLocation("spackenmobs:smava_creeper"), EntitySmavaCreeper.class, "smava_creeper", id++, Spackenmobs.instance, 64, 1, true, 7649828, 11053224); - EntityRegistry.addSpawn(EntitySmavaCreeper.class, 25, 1, 4, EnumCreatureType.MONSTER, BiomeHelper.getBiomesWithMonster(EntityCreeper.class)); + if (ModConfigs.SmavaCreeper_spawn == true) + { + EntityRegistry.addSpawn(EntitySmavaCreeper.class, ModConfigs.SmavaCreeper_weight, ModConfigs.SmavaCreeper_min, ModConfigs.SmavaCreeper_max, EnumCreatureType.MONSTER, + BiomeHelper.getBiomesWithMonster(EntityCreeper.class)); + } // Marcell D'Avis EntityRegistry.registerModEntity(new ResourceLocation("spackenmobs:marcell_davis"), EntityMarcellDAvis.class, "marcell_davis", id++, Spackenmobs.instance, 64, 1, true, 15759, 16777215); - EntityRegistry.addSpawn(EntityMarcellDAvis.class, 50, 1, 4, EnumCreatureType.MONSTER, BiomeHelper.getBiomesWithMonster(EntityZombie.class)); + if (ModConfigs.MarcellDAvis_spawn == true) + { + EntityRegistry.addSpawn(EntityMarcellDAvis.class, ModConfigs.MarcellDAvis_weight, ModConfigs.MarcellDAvis_min, ModConfigs.MarcellDAvis_max, EnumCreatureType.MONSTER, + BiomeHelper.getBiomesWithMonster(EntityZombie.class)); + } // Islamist EntityRegistry.registerModEntity(new ResourceLocation("spackenmobs:islamist"), EntityIslamist.class, "islamist", id++, Spackenmobs.instance, 64, 1, true, 15263976, 15211548); - EntityRegistry.addSpawn(EntityIslamist.class, 50, 1, 4, EnumCreatureType.MONSTER, BiomeHelper.getBiomesWithMonster(EntityCreeper.class)); + if (ModConfigs.Islamist_spawn == true) + { + EntityRegistry.addSpawn(EntityIslamist.class, ModConfigs.Islamist_weight, ModConfigs.Islamist_min, ModConfigs.Islamist_max, EnumCreatureType.MONSTER, + BiomeHelper.getBiomesWithMonster(EntityCreeper.class)); + } // ApoRed EntityRegistry.registerModEntity(new ResourceLocation("spackenmobs:apored"), EntityApoRed.class, "apored", id++, Spackenmobs.instance, 64, 1, true, 2039583, 16711680); - EntityRegistry.addSpawn(EntityApoRed.class, 50, 1, 4, EnumCreatureType.MONSTER, BiomeHelper.getBiomesWithMonster(EntitySkeleton.class)); + if (ModConfigs.ApoRed_spawn == true) + { + EntityRegistry.addSpawn(EntityApoRed.class, ModConfigs.ApoRed_weight, ModConfigs.ApoRed_min, ModConfigs.ApoRed_max, EnumCreatureType.MONSTER, + BiomeHelper.getBiomesWithMonster(EntitySkeleton.class)); + } // Mr. Bean EntityRegistry.registerModEntity(new ResourceLocation("spackenmobs:mr_bean"), EntityMrBean.class, "mr_bean", id++, Spackenmobs.instance, 64, 1, true, 4802350, 3220238); - EntityRegistry.addSpawn(EntityMrBean.class, 50, 1, 4, EnumCreatureType.MONSTER, BiomeHelper.getBiomesWithMonster(EntityZombie.class)); + if (ModConfigs.MrBean_spawn == true) + { + EntityRegistry.addSpawn(EntityMrBean.class, ModConfigs.MrBean_weight, ModConfigs.MrBean_min, ModConfigs.MrBean_max, EnumCreatureType.MONSTER, + BiomeHelper.getBiomesWithMonster(EntityZombie.class)); + } // Drachenlord EntityRegistry.registerModEntity(new ResourceLocation("spackenmobs:drachenlord"), EntityDrachenlord.class, "drachenlord", id++, Spackenmobs.instance, 64, 1, true, 15256745, 8738878); - EntityRegistry.addSpawn(EntityDrachenlord.class, 50, 1, 4, EnumCreatureType.MONSTER, BiomeHelper.getBiomesWithMonster(EntityPigZombie.class)); + if (ModConfigs.Drachenlord_spawn == true) + { + EntityRegistry.addSpawn(EntityDrachenlord.class, ModConfigs.Drachenlord_weight, ModConfigs.Drachenlord_min, ModConfigs.Drachenlord_max, EnumCreatureType.MONSTER, + BiomeHelper.getBiomesWithMonster(EntityPigZombie.class)); + } // Schalker EntityRegistry.registerModEntity(new ResourceLocation("spackenmobs:schalker"), EntitySchalker.class, "schalker", id++, Spackenmobs.instance, 64, 1, true, 24745, 16777215); - EntityRegistry.addSpawn(EntitySchalker.class, 50, 1, 4, EnumCreatureType.MONSTER, BiomeHelper.getBiomesWithMonster(EntityShulker.class)); + if (ModConfigs.Schalker_spawn == true) + { + EntityRegistry.addSpawn(EntitySchalker.class, ModConfigs.Schalker_weight, ModConfigs.Schalker_min, ModConfigs.Schalker_max, EnumCreatureType.MONSTER, + BiomeHelper.getBiomesWithMonster(EntityShulker.class)); + } // Jens EntityRegistry.registerModEntity(new ResourceLocation("spackenmobs:jens"), EntityJens.class, "jens", id++, Spackenmobs.instance, 64, 1, true, 6704526, 6767911); - EntityRegistry.addSpawn(EntityJens.class, 25, 1, 4, EnumCreatureType.CREATURE, BiomeHelper.getBiomesWithCreature(EntityPig.class)); + if (ModConfigs.Jens_spawn == true) + { + EntityRegistry.addSpawn(EntityJens.class, ModConfigs.Jens_weight, ModConfigs.Jens_min, ModConfigs.Jens_max, EnumCreatureType.CREATURE, BiomeHelper.getBiomesWithCreature(EntityPig.class)); + } // WolfMZTE EntityRegistry.registerModEntity(new ResourceLocation("spackenmobs:wolfmzte"), EntityWolfMZTE.class, "wolfmzte", id++, Spackenmobs.instance, 64, 1, true, 16711680, 0); - EntityRegistry.addSpawn(EntityJens.class, 50, 1, 4, EnumCreatureType.CREATURE, BiomeHelper.getBiomesWithCreature(EntityWolf.class)); + if (ModConfigs.WolfMZTE_spawn == true) + { + EntityRegistry.addSpawn(EntityJens.class, ModConfigs.WolfMZTE_weight, ModConfigs.WolfMZTE_min, ModConfigs.WolfMZTE_max, EnumCreatureType.CREATURE, + BiomeHelper.getBiomesWithCreature(EntityWolf.class)); + } // Holzstammhuhn EntityRegistry.registerModEntity(new ResourceLocation("spackenmobs:holzstammhuhn"), EntityHolzstammhuhn.class, "holzstammhuhn", id++, Spackenmobs.instance, 64, 1, true, 12096347, 5295899); - EntityRegistry.addSpawn(EntityJens.class, 50, 1, 4, EnumCreatureType.CREATURE, BiomeHelper.getBiomesWithCreature(EntityChicken.class)); + if (ModConfigs.Holzstammhuhn_spawn == true) + { + EntityRegistry.addSpawn(EntityJens.class, ModConfigs.Holzstammhuhn_weight, ModConfigs.Holzstammhuhn_min, ModConfigs.Holzstammhuhn_max, EnumCreatureType.CREATURE, + BiomeHelper.getBiomesWithCreature(EntityChicken.class)); + } } @SubscribeEvent diff --git a/src/main/resources/assets/spackenmobs/lang/de_de.lang b/src/main/resources/assets/spackenmobs/lang/de_de.lang index fd4f9bb..f9cd1bf 100644 --- a/src/main/resources/assets/spackenmobs/lang/de_de.lang +++ b/src/main/resources/assets/spackenmobs/lang/de_de.lang @@ -11,4 +11,5 @@ entity.wolfmzte.name=WolfMZTE item.spackenmobs.ram.name=RAM item.spackenmobs.ram_on_a_stick.name=RAM-Rute item.spackenmobs.surstroemming.name=Surströmming -itemGroup.spackenmobs.tabSpackenmobs=Spackenmobs \ No newline at end of file +itemGroup.spackenmobs.tabSpackenmobs=Spackenmobs +spackenmobs.config.title=Spackenmobs-Einstellungen \ No newline at end of file diff --git a/src/main/resources/assets/spackenmobs/lang/en_us.lang b/src/main/resources/assets/spackenmobs/lang/en_us.lang index 497aa6d..247fe59 100644 --- a/src/main/resources/assets/spackenmobs/lang/en_us.lang +++ b/src/main/resources/assets/spackenmobs/lang/en_us.lang @@ -11,4 +11,5 @@ entity.wolfmzte.name=WolfMZTE item.spackenmobs.ram.name=RAM item.spackenmobs.ram_on_a_stick.name=RAM on a Stick item.spackenmobs.surstroemming.name=Surströmming -itemGroup.spackenmobs.tabSpackenmobs=Spackenmobs \ No newline at end of file +itemGroup.spackenmobs.tabSpackenmobs=Spackenmobs +spackenmobs.config.title=Spackenmobs settings \ No newline at end of file diff --git a/src/main/resources/mcmod.info b/src/main/resources/mcmod.info index 3d71bf6..3b029df 100644 --- a/src/main/resources/mcmod.info +++ b/src/main/resources/mcmod.info @@ -3,7 +3,7 @@ "modid": "spackenmobs", "name": "Spackenmobs", "description": "The most important mobs in the history of Minecraft!", - "version": "RC1", + "version": "RC2", "mcversion": "1.12.2", "url": "https://acgaming.github.io", "updateUrl": "",