Hi everybody. This is a mod i´ve been working on for 1 year, and its the third mod i make for minecraft.
This that adds more than 70 new mobs, but only animals that exist on our world, its a realistic match to minecraft of real life species, the goal of the mod is provide a huge variation of fauna so the player´s world become more alive and richer.
A lot of animals can be tamed, others will attack the player if provoked and others will attack at sight. Most of the mobs can be breed, so like cows, you can generate some food and raw materials.
Since there are dozens and dozens of new models and a lot of texture variations of them, this mod will take a bit more time (not to much thou), maybe 1 month, to be Beta Release.
[MOD MAIN PICTURE WILL COME HERE]
List of the Mobs so far (Pictures will be upload slowly):
Giraffe, West African
Giraffa c. peralta
Giraffe, Reticulated
Giraffa c. reticulata
Model Type: Giraffe
Spawn Biome: Savanah Rock
Spawn Rate: 10% (2-6)
Hit Points: 40
Attack Strenght: 4
Speed: 0,25
Common Drop: Leather
Rare Drop: Beef
Breeding: Yes (SugarCane)
Tameable: No
XP: 30
Special: Only attacks if provoked.
Kangaroo, Antilopine
Macropus antilopinus
Member of the Macropodidae family, the kangaroo diet is mainly foliage and grass, they can live up to 20 years. The Antilopine kangaroo habit in the Northern Australia fields, and its main height is 1,4m, The Red kangaroo lives mainly on the australians deserts, and its a bit taller than the antilopine, reaching 1,5m. The West Gray kangaroo is the smallest of the three, with 1,3m, and habits the australian southern parts. The conservation status is on Least Concern.
ok so i solve it, but by error/try, so i dont know how i fix it lol...
here is the code, the part i want to understand is where i could set the Y axis high interval this mob will appear, for example, i want the starfish here to spawn on the ocean floor only, but it spawns near the surface and gentle falls to the ocean floor.. its not bad the way it is now, but i want to understand how it work . thanks!
import net.minecraftforge.fml.common.registry.EntityRegistry;
import net.minecraftforge.fml.common.event.FMLServerStartingEvent;
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
import net.minecraftforge.fml.common.event.FMLInitializationEvent;
import net.minecraftforge.fml.client.registry.RenderingRegistry;
import net.minecraft.world.gen.structure.template.Template;
import net.minecraft.world.biome.Biome;
import net.minecraft.world.World;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.DamageSource;
import net.minecraft.item.ItemStack;
import net.minecraft.item.Item;
import net.minecraft.init.Items;
import net.minecraft.entity.passive.EntityAnimal;
import net.minecraft.entity.ai.EntityAIMate;
import net.minecraft.entity.SharedMonsterAttributes;
import net.minecraft.entity.EnumCreatureType;
import net.minecraft.entity.EntityAgeable;
import net.minecraft.entity.Entity;
import net.minecraft.client.renderer.entity.RenderLiving;
import net.minecraft.client.model.ModelRenderer;
import net.minecraft.client.model.ModelBase;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.GlStateManager;
import net.minecraft.entity.ai.EntityAIFollowParent;
import net.minecraft.entity.ai.EntityAIWatchClosest;
import net.minecraft.entity.ai.EntityMoveHelper;
import net.minecraft.entity.ai.EntityAINearestAttackableTarget;
import net.minecraft.entity.ai.EntityAIHurtByTarget;
import net.minecraft.entity.effect.EntityLightningBolt;
import net.minecraft.entity.ai.EntityAIWander;
import net.minecraft.entity.ai.EntityAITempt;
import net.minecraft.entity.ai.EntityAISwimming;
import net.minecraft.entity.ai.EntityAIMate;
import net.minecraft.entity.ai.EntityAILookIdle;
import net.minecraftforge.fml.relauncher.SideOnly;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraft.util.math.MathHelper;
import net.minecraft.entity.ai.EntityAIEatGrass;
import net.minecraft.entity.ai.EntityAIWatchClosest;
import net.minecraft.entity.ai.EntityAIFollowParent;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.EntityLiving;
import net.minecraft.entity.EntitySpawnPlacementRegistry;
import java.util.Random;
public class mcreator_starfishCommon {
public static Object instance;
public static int mobid = 95;
public static int mobid2 = 96;
public void preInit(FMLPreInitializationEvent event) {
EntityRegistry.registerModEntity(new ResourceLocation("testenvironmentmod:starfishcommon"), EntitystarfishCommon.class, "starfishcommon",
mobid, instance, 64, 1, true, -2851227, -1011647);
Biome[] spawnBiomes = {Biome.REGISTRY.getObject(new ResourceLocation("ocean")), Biome.REGISTRY.getObject(new ResourceLocation("deep_ocean")),};
EntityRegistry.addSpawn(EntitystarfishCommon.class, 25, 3, 6, EnumCreatureType.WATER_CREATURE, spawnBiomes);
EntitySpawnPlacementRegistry.setPlacementType(EntitystarfishCommon.class, EntityLiving.SpawnPlacementType.IN_WATER); // <---- is this on the right place?
}
public void load(FMLInitializationEvent event) {
}
public void serverLoad(FMLServerStartingEvent event) {
}
@SideOnly(Side.CLIENT)
public void registerRenderers() {
RenderLiving customRender = new RenderLiving<EntityAgeable>(Minecraft.getMinecraft().getRenderManager(), new ModelStarfish(), 0) {
protected ResourceLocation getEntityTexture(EntityAgeable par1Entity) {
return new ResourceLocation("Starfish_Common.png");
}
protected void preRenderCallback(EntityAgeable entitylivingbaseIn, float partialTickTime) {
float f = 0.6F;
if (entitylivingbaseIn.getGrowingAge() < 0) {
f = (float)((double)f * 0.5D);
this.shadowSize = 0.3F;
} else {
this.shadowSize = 0.6F;
}
GlStateManager.scale(f, f, f);
}
};
RenderingRegistry.registerEntityRenderingHandler(EntitystarfishCommon.class, customRender);
}
public void generateNether(World world, Random random, int chunkX, int chunkZ) {
}
public void generateSurface(World world, Random random, int chunkX, int chunkZ) {
}
public int addFuel(ItemStack fuel) {
return 0;
}
public static class EntitystarfishCommon extends EntityAnimal {
public EntitystarfishCommon(World world) {
super(world);
addRandomArmor();
experienceValue = 2;
this.isImmuneToFire = false;
setNoAI(!true);
this.tasks.addTask(4, new EntityAIWander(this, 1.0D));
this.tasks.addTask(3, new EntityAILookIdle(this));
this.tasks.addTask(2, new EntityAITempt(this, 1.1D, Items.REEDS, false));
this.tasks.addTask(1, new EntityAIMate(this, 1.0D));
this.setSize(1F, 1F);
}
@Override
protected Item getDropItem() {
return null;
}
@Override
public net.minecraft.util.SoundEvent getAmbientSound() {
return (net.minecraft.util.SoundEvent) net.minecraft.util.SoundEvent.REGISTRY.getObject(new ResourceLocation(""));
}
@Override
public net.minecraft.util.SoundEvent getHurtSound(DamageSource ds) {
return (net.minecraft.util.SoundEvent) net.minecraft.util.SoundEvent.REGISTRY.getObject(new ResourceLocation(""));
}
@Override
public net.minecraft.util.SoundEvent getDeathSound() {
return (net.minecraft.util.SoundEvent) net.minecraft.util.SoundEvent.REGISTRY.getObject(new ResourceLocation(""));
}
@Override
protected float getSoundVolume() {
return 1.0F;
}
@Override
protected void applyEntityAttributes() {
super.applyEntityAttributes();
this.getEntityAttribute(SharedMonsterAttributes.MOVEMENT_SPEED).setBaseValue(0.05D);
this.getEntityAttribute(SharedMonsterAttributes.MAX_HEALTH).setBaseValue(2D);
if (this.getEntityAttribute(SharedMonsterAttributes.ATTACK_DAMAGE) != null)
this.getEntityAttribute(SharedMonsterAttributes.ATTACK_DAMAGE).setBaseValue(0D);
}
protected void addRandomArmor() {
}
// aquatic code
public boolean canBreatheUnderwater()
{
return true;
}
public boolean isPushedByWater()
{
return false;
}
public boolean isNotColliding()
{
return this.world.checkNoEntityCollision(this.getEntityBoundingBox(), this);
}
public boolean CheckInWater()
{
return this.isInWater(); <--- i guess that what was missing and now it works for it
}
public boolean getCanSpawnHere()
{
return true;
//return this.posY > 45.0D && this.posY < (double)this.world.getSeaLevel() && super.getCanSpawnHere(); <--- im not using this.. should i?
}
//aquatic code end
@Override
public EntitystarfishCommon createChild(EntityAgeable ageable) {
return new EntitystarfishCommon(world);
}
@Override
public float getEyeHeight() {
return this.isChild() ? this.height : 1.3F;
}
@Override
public boolean isBreedingItem(ItemStack stack) {
if (stack == null)
return false;
if (new ItemStack(Items.REEDS, (int) (1)).getItem() == stack.getItem())
return true;
return false;
}
}
i forgot to mention; the mod actually DO spawn on 'ocean' biome, BUT it only spawn if you cover a layer of solid block like grass, over the ocean surface, then the mob spawn on the surface, not on the liquid... i know i miss a liquid/spawn entrance here, just dont know witch, also i might have to change this part maybe?
public void generateNether(World world, Random random, int chunkX, int chunkZ) {
}
public void generateSurface(World world, Random random, int chunkX, int chunkZ) {
}
Mo creature mods did it.. i was trying to look the .class of that mod on a class viewer to try to learn, but all i see are those 'func_xxxx' things hehe, i wish Java did not compile/recompile codes all the time
i need the part of the code that Define that mob A can breed only with mob B (not itself), so A with A is not allowed, for that i would make a second model/entity/class (a second mob), so i would have 2 mobs, would this make the code easie
ok so i got it, i think i did everything right, but i might be put something on the wrong place or i miss something, but i made a sitting version of my techne model and i put the code in it, made a IF/Else, yet it wont sit.. what im missing here guys?
0
Wizard´s Animals+ Mod
Hi everybody. This is a mod i´ve been working on for 1 year, and its the third mod i make for minecraft.
This that adds more than 70 new mobs, but only animals that exist on our world, its a realistic match to minecraft of real life species, the goal of the mod is provide a huge variation of fauna so the player´s world become more alive and richer.
A lot of animals can be tamed, others will attack the player if provoked and others will attack at sight. Most of the mobs can be breed, so like cows, you can generate some food and raw materials.
Since there are dozens and dozens of new models and a lot of texture variations of them, this mod will take a bit more time (not to much thou), maybe 1 month, to be Beta Release.
[MOD MAIN PICTURE WILL COME HERE]
List of the Mobs so far (Pictures will be upload slowly):
Giraffe, West African
Giraffa c. peralta
Giraffe, Reticulated
Giraffa c. reticulata
Model Type: Giraffe
Spawn Biome: Savanah Rock
Spawn Rate: 10% (2-6)
Hit Points: 40
Attack Strenght: 4
Speed: 0,25
Common Drop: Leather
Rare Drop: Beef
Breeding: Yes (SugarCane)
Tameable: No
XP: 30
Special: Only attacks if provoked.
Kangaroo, Antilopine
Macropus antilopinus
Member of the Macropodidae family, the kangaroo diet is mainly foliage and grass, they can live up to 20 years. The Antilopine kangaroo habit in the Northern Australia fields, and its main height is 1,4m, The Red kangaroo lives mainly on the australians deserts, and its a bit taller than the antilopine, reaching 1,5m. The West Gray kangaroo is the smallest of the three, with 1,3m, and habits the australian southern parts. The conservation status is on Least Concern.
Capuchin, White-Headed
Cebus capucinus
Tamarin, Golden Lion
Leontopithecus rosalia
Squirrel, Red
Sciurius vulgaris
Rhinocerus, White
Ceratotherium simum
Marmoset, Common
Callithrix jacchus
Red Panda
Ailurus fulgens
Gorilla, Western
Gorilla gorilla
My flickr:
https://www.flickr.com/photos/121771033@N05/
Complete Wiki Encyclopedia (updated 26/11):
http://www.mediafire.com/file/96jyo0ofl0ot8ba/zzz_My Mod Mobs.pptx
0
ok so i solve it, but by error/try, so i dont know how i fix it lol...
here is the code, the part i want to understand is where i could set the Y axis high interval this mob will appear, for example, i want the starfish here to spawn on the ocean floor only, but it spawns near the surface and gentle falls to the ocean floor.. its not bad the way it is now, but i want to understand how it work . thanks!
0
use MCreator to add sounds, its so easy to do there
0
i just add this
EntitySpawnPlacementRegistry.setPlacementType(EntitystarfishCommon.class, EntityLiving.SpawnPlacementType.IN_WATER);
to my EntityRegister, still they are not spawning
0
i forgot to mention; the mod actually DO spawn on 'ocean' biome, BUT it only spawn if you cover a layer of solid block like grass, over the ocean surface, then the mob spawn on the surface, not on the liquid... i know i miss a liquid/spawn entrance here, just dont know witch, also i might have to change this part maybe?
public void generateNether(World world, Random random, int chunkX, int chunkZ) {
}
public void generateSurface(World world, Random random, int chunkX, int chunkZ) {
}
0
Jaffa could you tell me how to make the Mob spawn in the ocean in the first place? i miss that on my mod thanks
0
Mo creature mods did it.. i was trying to look the .class of that mod on a class viewer to try to learn, but all i see are those 'func_xxxx' things hehe, i wish Java did not compile/recompile codes all the time
i need the part of the code that Define that mob A can breed only with mob B (not itself), so A with A is not allowed, for that i would make a second model/entity/class (a second mob), so i would have 2 mobs, would this make the code easie
0
hey guys,
i notice setting the biome to 'ocean' is not all we need to do to spawn aquatic mobs, what else i need to do?
Notice 'aquatic code' part i tried to add some things there...
thanks!
0
1.12
Hey guys, so i was wondering how i make 1 of my mobs Mate only with 1 another with my mobs, so i can make:
1) male/female animals to breed.
2) the child have 50% of chance to be male/female
any help?
i found this but dont know how to set it up true and make the child changes
public boolean canMateWith(EntityAnimal otherAnimal)
{
return false;
}
0
well i will be a son of a gun... it works.
thank you all for the help! i will be sure of mention you when i release this mod
0
i think might have something to do with this part here:
public void setLivingAnimations(EntityLivingBase entitylivingbaseIn)
{
EntitycapuchinBrown entitycapuchinBrown = (EntitycapuchinBrown)entitylivingbaseIn;
witch i dont understand well... the wolf one is like this:
public void setLivingAnimations(EntityLivingBase entitylivingbaseIn, float limbSwing, float limbSwingAmount, float partialTickTime)
{
EntityWolf entitywolf = (EntityWolf)entitylivingbaseIn;
but i dont need those floats since it wont animate while its not moving (its animations have par2 so it only animates when the entity moves)
0
i found them on MCreator.. what model do you need?
here is the wolf
0
ok so i got it, i think i did everything right, but i might be put something on the wrong place or i miss something, but i made a sitting version of my techne model and i put the code in it, made a IF/Else, yet it wont sit.. what im missing here guys?
0
working on it...
0
oh i dont think i have that on my class yet... can i paste it from the wolf entity for example? then change the rotations/stuff like that?
btw long time no see ya! how are you my friend?
thanks
hum i cant find that method on the wolf file nor the tameable file.. how do i set this up man?
thanks again