• 0

    posted a message on 1.11 SPAWN IN MESA BIOME WITH SURFACE MINESHAFT

    Pretty bootyful seed I found. Check it out.


    You spawn literally facing this:


    Just over the hill is this:


    Pretty Mesa Biome:


    Map:


    Posted in: Seeds
  • 0

    posted a message on Why does no one do mod reviews anymore?

    Pretty hard to find English mod reviews uploaded in the last few months. Also modded let's plays have all but died out!!


    I don't feel like too many mods have been left un-updated.

    I dont think that all the new mods are boring or less awesome.

    Is it because command blocks have gotten so advanced?

    Is it because vanilla minecraft updates have been pumped out so fast?

    Is it because all original ideas are gone?


    I dont think any of these have happened so why not???


    (If the answer is because people stopped watching or got bored then why? and why now and not 3 years ago??

    Posted in: Mods Discussion
  • 0

    posted a message on RoughMobs Mod Help!

    the config file is located at:

    C:\Users\user\AppData\Roaming\.minecraft\config\


    the config for the rough mobs mod will probably be named RoughMobs.cfg

    Simply open it with a word editor like Notepad or microsoft word even.


    all you need to do is wherever you see the word "false" or the word "true" replace it with the other.

    EXAMPLE:


    Blazes Explode=false


    change this to


    Blazes Explode=true


    it's that easy! the only thing I'm not sure you cant change is whether or not there are spaces before and after the equal sign. i dont think it matters but just dont.

    as for numbers, its basically the same thing.


    Creeper amount of hearts=30


    change this to


    Creeper amount of hearts=20



    obviously anything that isn't listed in the config file can't be changed. sorry :(


    but when you launch the game the mod will read directly from this config file.

    Posted in: Mods Discussion
  • 0

    posted a message on I haven't got the JSON file for tools, and I dont know where to find it

    You can find it in the same github as the item texture


    ah!!! thanks sooo much for the code I finally got it to work! :D :D :D

    (ugh, json files make it so simple yet so hard)
    Posted in: Modification Development
  • 0

    posted a message on The Camping Mod

    Thank you for the source code!! I officially despise json files but you helped so much. always loved this mod, too. :D

    Posted in: Minecraft Mods
  • 0

    posted a message on I haven't got the JSON file for tools, and I dont know where to find it

    You should be able to just look in the vanilla assets...
    Either way here is the link to my swords model JSON. I haven't used it in 1.11 but I didn't hear anything about any changes to the JSON files so it should work.


    Thanks! It's weird I couldn't find it online OR in the game files.

    "item/handheld", is exactly what I needed.

    I don't suppose you have a custom block json file template I can use? My game still cant find the texture for mine.

    Posted in: Modification Development
  • 0

    posted a message on Spawn Probability of EnumCreatureType.MONSTER is too High, Even on the Lowest Integers

    SOLVED the biome problem... kind of.


    I made a method for setting the biome type using the biome dictionary.


    BUT I can only use one since I'm too lazy and tired rn to figure out how to set multiple possible biomes.



    public static Biome[] setBiome(Type type) {
    Biome[] list = BiomeDictionary.getBiomes(type).toArray(new Biome[1]);
    return list;
    }

    Posted in: Modification Development
  • 0

    posted a message on I haven't got the JSON file for tools, and I dont know where to find it

    I just want a custom sword to look like a sword, but I can't find any 1.11 JSON files to use as a template. Where are they in vanilla code? (or where are they online?! xD)

    Posted in: Modification Development
  • 0

    posted a message on Spawn Probability of EnumCreatureType.MONSTER is too High, Even on the Lowest Integers

    Yea, I thought that, but "Set<Biome>" (which is the what "getBiomes" returns) is different than "Biomes" (which is what the parameter is).


    In other words, I get this error.


    Posted in: Modification Development
  • 0

    posted a message on [1.11] 4 Villages (3 Blacksmiths), 2 Desert Temples, (all within 1000 blocks from spawn)!

    -167 75 269 < Village w/ Blacksmith


    143 75 90 < Village w/ Blacksmith


    1240 75 35 < Village w/ Blacksmith


    1280 75 -500 < Village without Blacksmith


    -359 75 26 < Desert Temple


    315 75 330 < Desert Temple


    Seed: -3394524063817218233


    Just thought id share since 1.11 seeds are a little sparse right now. ;)

    Posted in: Seeds
  • 0

    posted a message on Spawn Probability of EnumCreatureType.MONSTER is too High, Even on the Lowest Integers

    I want my mob to be very rare, but setting the rarity in the "setSpawn" method still causes him to spawn too often for my liking.


    My method:


    EntityRegistry.addSpawn(EntityShapeshifter.class, 1, 1, 1, EnumCreatureType.MONSTER, Biomes.PLAINS);


    Where the "1" is bolded and underlined. That is what controls the rarity, yet its still just a bit too high. My mod has a lot of mobs and instead of getting a nice thin scattering I have way too many of all of them.


    MAYBE-NOT-SO-POINTLESS NOTE: this method is being run in initialization event. (So, not pre- or post-initialization event).


    -Extra Question/Update-

    While I'm asking questions, could you tell me how to use Forge's BiomeDictionary in this method instead of using a vanilla biome? The biomes in BiomeDictionary are "Type" classes, and not "Biome" classes, so they dont work in this method anymore.

    Posted in: Modification Development
  • 0

    posted a message on Mob Models Affected By Mob Class

    package com.ani.siege;

    import net.minecraft.entity.Entity;
    import net.minecraft.entity.EntityLivingBase;
    import net.minecraft.entity.IRangedAttackMob;
    import net.minecraft.entity.SharedMonsterAttributes;
    import net.minecraft.entity.ai.EntityAIAvoidEntity;
    import net.minecraft.entity.ai.EntityAILookIdle;
    import net.minecraft.entity.ai.EntityAIOpenDoor;
    import net.minecraft.entity.ai.EntityAISwimming;
    import net.minecraft.entity.ai.EntityAIWatchClosest;
    import net.minecraft.entity.item.EntityTNTPrimed;
    import net.minecraft.entity.monster.EntityMob;
    import net.minecraft.entity.monster.EntitySlime;
    import net.minecraft.entity.player.EntityPlayer;
    import net.minecraft.world.World;

    public class EntityArcher extends EntitySoldier implements IRangedAttackMob {

    public int isAimed;

    public EntityArcher(World par1World) {
    super(par1World);
    setSize(0.6F, 1.9F);
    getNavigator().setBreakDoors(true);
    tasks.addTask(0, new EntityAISwimming(this));
    tasks.addTask(1, new EntityAIAvoidEntity(this, EntityTNTPrimed.class, 8.0F, 1.0D, 1.2D));
    tasks.addTask(2, new EntityAIOpenDoor(this, true));
    tasks.addTask(3, new EntityAIFollowKing(this, 1.0F, 2.0F, 3.0F));
    tasks.addTask(4, new EntityAIArrowAttackModded(this));
    tasks.addTask(5, new EntityAIWatchClosest(this, EntityPlayer.class, 8.0F));
    tasks.addTask(6, new EntityAILookIdle(this));
    targetTasks.addTask(0, new EntityAIAttackTarget(this));
    targetTasks.addTask(1, new EntityAIChooseAttackableTarget(this, EntityEnemy.class, false));
    targetTasks.addTask(2, new EntityAIChooseAttackableTarget(this, EntityMob.class, false));
    targetTasks.addTask(2, new EntityAIChooseAttackableTarget(this, EntitySlime.class, false));
    targetTasks.addTask(2, new EntityAIKingHurtByTarget(this));
    }

    public void onLivingUpdate() {
    if (isAimed > 0)
    --isAimed;
    if (!worldObj.isRemote)
    System.out.println(isAimed);
    super.onLivingUpdate();
    }

    public boolean attackEntityAsMob(Entity par1Entity) {
    return true;
    }

    protected void applyEntityAttributes() {
    super.applyEntityAttributes();
    getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(20.0D);
    getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.25D);
    getEntityAttribute(SharedMonsterAttributes.followRange).setBaseValue(28.0D);
    getEntityAttribute(SharedMonsterAttributes.knockbackResistance).setBaseValue(8.0D);
    }

    public boolean isAIEnabled() {
    return true;
    }

    protected boolean canDespawn() {
    return false;
    }

    protected void entityInit() {
    super.entityInit();
    getDataWatcher().addObject(13, Byte.valueOf((byte) 0));
    }

    @Override
    public void attackEntityWithRangedAttack(EntityLivingBase p_82196_1_, float p_82196_2_) {
    }

    public double getYOffset() {
    return super.getYOffset() - 0.8D;
    }
    }



    system prints 39 39 39 39 39 39 when attacktarget is not null and prings 38 37 36 35 34 33 32... when it is null. I have this set in an entity ai class.

    Posted in: Modification Development
  • 0

    posted a message on Mob Models Affected By Mob Class

    I've copied the code in EntityIronGolem, RenderIronGolem, and ModelIronGolem (but changed them to extending ModelBiped/RenderBiped).

    Yet I am unable to control the swing of the arms or the textures or anything based on a variable in the entity's class.


    Model


    package com.ani.siege;

    import net.minecraft.client.model.ModelBiped;
    import net.minecraft.entity.Entity;
    import net.minecraft.entity.EntityLivingBase;

    public class ModelArcher extends ModelBiped {
    public ModelArcher() {
    super();
    }

    public void render(Entity p_78088_1_, float p_78088_2_, float p_78088_3_, float p_78088_4_, float p_78088_5_, float p_78088_6_, float p_78088_7_) {
    this.setRotationAngles(p_78088_2_, p_78088_3_, p_78088_4_, p_78088_5_, p_78088_6_, p_78088_7_, p_78088_1_);
    super.render(p_78088_1_, p_78088_2_, p_78088_3_, p_78088_4_, p_78088_5_, p_78088_6_, p_78088_7_);
    }

    public void setLivingAnimations(EntityLivingBase entity, float p_78086_2_, float p_78086_3_, float p_78086_4_) {
    int i = 0;

    if (entity instanceof EntityArcher)
    i = ((EntityArcher) entity).isAimed;

    if (entity instanceof EntityEnemyArcher)
    i = ((EntityEnemyArcher) entity).isAimed;

    if (i > 0) {
    this.bipedRightArm.rotateAngleX = -2.0F + 1.5F * this.func_78172_a((float) i - p_78086_4_, 10.0F);
    this.bipedLeftArm.rotateAngleX = -2.0F + 1.5F * this.func_78172_a((float) i - p_78086_4_, 10.0F);
    }
    super.setLivingAnimations(entity, p_78086_2_, p_78086_3_, p_78086_4_);
    }

    private float func_78172_a(float p_78172_1_, float p_78172_2_) {
    return (Math.abs(p_78172_1_ % p_78172_2_ - p_78172_2_ * 0.5F) - p_78172_2_ * 0.25F) / (p_78172_2_ * 0.25F);
    }
    }


    Render



    package com.ani.siege;

    import org.lwjgl.opengl.GL11;

    import cpw.mods.fml.relauncher.Side;
    import cpw.mods.fml.relauncher.SideOnly;
    import net.minecraft.client.renderer.entity.RenderBiped;
    import net.minecraft.entity.Entity;
    import net.minecraft.entity.EntityLiving;
    import net.minecraft.entity.EntityLivingBase;
    import net.minecraft.util.ResourceLocation;

    @SideOnly(Side.CLIENT)
    public class RenderArcher extends RenderBiped {
    private static final ResourceLocation peasantTextures = new ResourceLocation(SiegeMod.modid + ":textures/archer.png");

    public RenderArcher() {
    super(new ModelArcher(), 0.5F);
    }

    public void doRender(EntityArcher p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_) {
    super.doRender((EntityLiving) p_76986_1_, p_76986_2_, p_76986_4_, p_76986_6_, p_76986_8_, p_76986_9_);
    }

    protected ResourceLocation getEntityTexture(EntityArcher p_110775_1_) {
    return peasantTextures;
    }

    protected void rotateCorpse(EntityArcher p_77043_1_, float p_77043_2_, float p_77043_3_, float p_77043_4_) {
    super.rotateCorpse(p_77043_1_, p_77043_2_, p_77043_3_, p_77043_4_);
    }

    protected void renderEquippedItems(EntityArcher p_77029_1_, float p_77029_2_) {
    super.renderEquippedItems(p_77029_1_, p_77029_2_);
    }

    public void doRender(EntityLiving p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_) {
    this.doRender((EntityArcher) p_76986_1_, p_76986_2_, p_76986_4_, p_76986_6_, p_76986_8_, p_76986_9_);
    }

    protected void renderEquippedItems(EntityLivingBase p_77029_1_, float p_77029_2_) {
    this.renderEquippedItems((EntityArcher) p_77029_1_, p_77029_2_);
    }

    protected void rotateCorpse(EntityLivingBase p_77043_1_, float p_77043_2_, float p_77043_3_, float p_77043_4_) {
    this.rotateCorpse((EntityArcher) p_77043_1_, p_77043_2_, p_77043_3_, p_77043_4_);
    }

    public void doRender(EntityLivingBase p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_) {
    this.doRender((EntityArcher) p_76986_1_, p_76986_2_, p_76986_4_, p_76986_6_, p_76986_8_, p_76986_9_);
    }

    protected ResourceLocation getEntityTexture(Entity p_110775_1_) {
    return this.getEntityTexture((EntityArcher) p_110775_1_);
    }

    public void doRender(Entity p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_) {
    this.doRender((EntityArcher) p_76986_1_, p_76986_2_, p_76986_4_, p_76986_6_, p_76986_8_, p_76986_9_);
    }
    }

    And the variable 'isAimed' is being set to 40 and subtracted by 1 every tick. But there is no movement on the model whatsoever.

    Posted in: Modification Development
  • 0

    posted a message on Simple Java Question
    Quote from Choonster»

    You need to take a Class<? extends EntityLiving> argument (use the .class keyword, e.g. EntitySnowman.class), then use Class#isInstance to check if the closest target is an instance of that class.


    Keep in mind that EntityLiving is only extended by non-player living entities. If you want to cover players as well, use EntityLivingBase instead.


    Ok thanks, but let's say I use this method for both good and bad entities? So for the bad entities I put:
    setEntityToTarget(getClosestEntity(), EntityPlayer); <---So he will attack anything instanceof EntityPlayer.

    And for the GOOD entities I put:

    setEntityToTarget(getClosestEntity(), EntityMob); <-----So he will attack anything instanceof EntityMob.

    But now the argument is not a specific class, it is a variable, and the keyword 'instanceof' does not like variables.
    So this method does not work:

    	public boolean isEntity(Class entity1Class, Class targetClass) {
    		if (<strong>entity1Class instanceof targetClass</strong>) {
    			return true;
    		}
    		return false;
    	}
    
    I need to return true IF the first argument is 'instanceof' the second argument, but they both need to be variables that I can set from a whole other class.
    Thanks!
    Posted in: Modification Development
  • 0

    posted a message on Simple Java Question

    I wanted to make it so that you can set which entity another entity targets. In order to do that I use "instanceof" (eg. if(entityTarget instanceof EntitySnowman).

    Except that I can't figure out how to turn 'EntitySnowman' in the above example into a parameter. This should clear it up:

    public void setEntityToTarget(EntityLiving closestTarget, EntityLiving attackTarget) { 
    
    if(closestTarget instanceof attackTarget) 
    this.setAttackTarget(closestTarget); 
    }

    Does attackTarget have to be static or abstract somehow? Can you alter parameters to be abstract or static?


    And no comments like "oh you suck at java! go learn basic java" because, well, I am learning right now; when you answer.

    I overlooked something when teaching myself and I've come to correct it!

    Posted in: Modification Development
  • To post a comment, please or register a new account.