• 1

    posted a message on [ItemBound v1.9.] (Custom item skins + custom loot!) (150,000+ total downloads!!!)
    Quote from MatthewCarboy»

    sixfootblue i found someone copying your profile and your mc name on youtube https://www.youtube.com/user/CyrusBlue3D


    That's their profile lol...
    Posted in: Resource Packs
  • 0

    posted a message on [ItemBound v1.9.] (Custom item skins + custom loot!) (150,000+ total downloads!!!)

    Amazing update! I love your pixel art. Is there any chance of seeing a Homestuck update?

    Posted in: Resource Packs
  • 0

    posted a message on Custom block rotation based on metadata not working.

    I've been working on a beehive block, and I've been using the furnace metadata to attempt to get the rotation for the block working correctly. For some reason even though everything looks the same as the vanila furnace, when I load up the game the entire block is just a pink + black missing texture.


    Code:


    package com.natura.artifacts.block;
    
    import java.util.Random;
    
    import com.natura.artifacts.Main;
    import com.natura.artifacts.item.ArtifactItems;
    
    import cpw.mods.fml.relauncher.Side;
    import cpw.mods.fml.relauncher.SideOnly;
    import net.minecraft.block.Block;
    import net.minecraft.block.material.Material;
    import net.minecraft.client.renderer.texture.IIconRegister;
    import net.minecraft.entity.EntityLivingBase;
    import net.minecraft.entity.player.EntityPlayer;
    import net.minecraft.init.Blocks;
    import net.minecraft.init.Items;
    import net.minecraft.item.Item;
    import net.minecraft.item.ItemStack;
    import net.minecraft.tileentity.TileEntityFurnace;
    import net.minecraft.util.IIcon;
    import net.minecraft.util.MathHelper;
    import net.minecraft.world.World;
    
    public class BeeHive extends Block {
    
    	private Item drop;
    	private int meta;
    	private int least_quantity;
    	private int most_quantity;
    	@SideOnly(Side.CLIENT)
    	public IIcon iconFront;
    	@SideOnly(Side.CLIENT)
    	public IIcon blockIcon;
    	@SideOnly(Side.CLIENT)
    	public IIcon iconBottom;
    	
    	protected BeeHive(Material material, Item drop, int meta, int least, int most) {
    		super(material);
    		this.setBlockName("beeHive");
    		this.setCreativeTab(ArtifactItems.tabArtifacts);
    		this.setHardness(0.6F);
    		this.setResistance(0.2F);
    		this.setHarvestLevel("axe", 2);
    		this.setStepSound(soundTypeWood);
    		this.drop = drop;
    	    this.meta = meta;
    	    this.least_quantity = least;
    	    this.most_quantity = most;
    	}
    	
    	public void onBlockPlacedBy(World p_149689_1_, int p_149689_2_, int p_149689_3_, int p_149689_4_, EntityLivingBase p_149689_5_, ItemStack p_149689_6_)
        {
            int l = MathHelper.floor_double((double)(p_149689_5_.rotationYaw * 4.0F / 360.0F) + 0.5D) & 3;
    
            if (l == 0)
            {
                p_149689_1_.setBlockMetadataWithNotify(p_149689_2_, p_149689_3_, p_149689_4_, 2, 2);
            }
    
            if (l == 1)
            {
                p_149689_1_.setBlockMetadataWithNotify(p_149689_2_, p_149689_3_, p_149689_4_, 5, 2);
            }
    
            if (l == 2)
            {
                p_149689_1_.setBlockMetadataWithNotify(p_149689_2_, p_149689_3_, p_149689_4_, 3, 2);
            }
    
            if (l == 3)
            {
                p_149689_1_.setBlockMetadataWithNotify(p_149689_2_, p_149689_3_, p_149689_4_, 4, 2);
            }
    
        }
    	
    	@SideOnly(Side.CLIENT)
    	@Override
    	public IIcon getIcon(int side, int meta) {
    		 return side == 1 ? this.iconBottom : (side == 0 ? this.iconBottom : (side != meta ? this.blockIcon : this.iconFront));
    	}
    	
    	@SideOnly(Side.CLIENT)
    	@Override
    	public void registerBlockIcons(IIconRegister reg) {
    	  this.blockIcon = reg.registerIcon("beeHiveSide");
    	  this.iconBottom = reg.registerIcon("beeHiveBottom");
    	  this.iconFront = reg.registerIcon("beeHiveFront");
    	  	
    	}
    	
    	@Override
    	public boolean onBlockActivated(World p_149727_1_, int p_149727_2_, int p_149727_3_, int p_149727_4_,
    			EntityPlayer p_149727_5_, int p_149727_6_, float p_149727_7_, float p_149727_8_, float p_149727_9_) {
    
    		if(!p_149727_1_.isRemote) {
    	    	if(p_149727_5_.getCurrentEquippedItem() != null) {
    	    		if(p_149727_5_.getCurrentEquippedItem().getItem() == Items.bucket) {
    	    		p_149727_5_.inventory.consumeInventoryItem(Items.bucket);
    	    		p_149727_5_.inventory.addItemStackToInventory(new ItemStack(ArtifactItems.honeyBucket, 1, 0));
    	    		p_149727_5_.inventoryContainer.detectAndSendChanges();
    				return true;
    	    		}
    	    	}
    		}
    	    	
    		return true;
    	}
    	
    	
    	
    	@Override
    	public Item getItemDropped(int meta, Random random, int fortune) {
    	    return this.drop;
    	}
    
    
    	@Override
    	public int quantityDropped(int meta, int fortune, Random random) {
    	    if (this.least_quantity >= this.most_quantity)
    	        return this.least_quantity;
    	    return this.least_quantity + random.nextInt(this.most_quantity - this.least_quantity + fortune + 1);
    	}
    
    }
    


    Posted in: Modification Development
  • 0

    posted a message on Item places tile entity on the side of logs only?
    Quote from Melonslise»

    A. In your block's onBlockPlaced or onBlockPlacedBy method check for adjacent blocks (x+1, x-1, z+1, z-1) and check if they are logs, then allow to place the block.

    B. In 1.7.10 I used to do it with metadata. Metadata is set when placing the block in onBlockPlaced or onBlockPlacedBy. Here's an example of the renderer. Here's how I used to set metadata for rotation in my block's code.

    C. In your block's onBlockActivated remove the player's bucket and give him yours.

    D. Update to newer versions.

    EDIT: Sorry, onBlockPlaced doesn't prevent the block from being placed. Since I don't have source you'll have to look for the method on your own.



    Quote from Melonslise»

    A. In your block's onBlockPlaced or onBlockPlacedBy method check for adjacent blocks (x+1, x-1, z+1, z-1) and check if they are logs, then allow to place the block.

    B. In 1.7.10 I used to do it with metadata. Metadata is set when placing the block in onBlockPlaced or onBlockPlacedBy. Here's an example of the renderer. Here's how I used to set metadata for rotation in my block's code.

    C. In your block's onBlockActivated remove the player's bucket and give him yours.

    D. Update to newer versions.

    EDIT: Sorry, onBlockPlaced doesn't prevent the block from being placed. Since I don't have source you'll have to look for the method on your own.


    I'm having a little bit of a problem now. It seems to rotate the model itself but it's flipped backwards. I attached a screenshot of what I mean. The one on the tree is the correct orientation, but the one that's floating in the air is the rotated one.

    Model

    Posted in: Modification Development
  • 0

    posted a message on Item places tile entity on the side of logs only?

    Thanks for the examples, they're super helpful. metadata was the thing kind of escaping me. There's a method along the lines of canBlockPlace that can be used afaik.

    Posted in: Modification Development
  • 0

    posted a message on Item places tile entity on the side of logs only?

    I'm having more than a few issues with a tree tap I've been trying to work out. I've scoured forums, youtube videos, and documentation but it's not really making much sense to me.


    The tree tap block itself.


    package com.natura.artifacts.block;
    
    import java.util.Random;
    
    import com.natura.artifacts.Main;
    import com.natura.artifacts.item.ArtifactItems;
    import cpw.mods.fml.common.registry.GameRegistry;
    import cpw.mods.fml.relauncher.Side;
    import cpw.mods.fml.relauncher.SideOnly;
    import net.minecraft.block.Block;
    import net.minecraft.block.BlockContainer;
    import net.minecraft.block.ITileEntityProvider;
    import net.minecraft.block.material.Material;
    import net.minecraft.client.renderer.texture.IIconRegister;
    import net.minecraft.entity.player.EntityPlayer;
    import net.minecraft.init.Items;
    import net.minecraft.item.Item;
    import net.minecraft.item.ItemStack;
    import net.minecraft.tileentity.TileEntity;
    import net.minecraft.util.AxisAlignedBB;
    import net.minecraft.util.IIcon;
    import net.minecraft.world.IBlockAccess;
    import net.minecraft.world.World;
    import net.minecraftforge.common.util.ForgeDirection;
    
    
    public class TreeTap extends BlockContainer {
    	
        private static final String name = "treeTap";
        private static IIcon blockIcon;
     
        public TreeTap(Material material) {
        	
            super(material);
            this.setBlockTextureName(Main.MODID + ":treeTapItem");
            this.setBlockName(name);
            this.setBlockBounds(0.2f, 0.1f, 0.0f, 0.8f, 0.6f, 0.3f);
            this.setHardness(0.4F);
            this.setResistance(0.3f);
            this.setHarvestLevel("pickaxe", 1);
            this.setCreativeTab(ArtifactItems.tabArtifacts);
            this.setStepSound(soundTypeMetal);
            
            
        } 
        
        @Override
        public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_)
        {
            return Item.getItemFromBlock(ArtifactBlocks.treeTap);
        }
        
        @Override
        public void setBlockBoundsForItemRender()
        {
            this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F);
        }
        
        
        @Override
        public int getRenderType() {
        	
        	return -1;
        	
        }
     
        @Override
        public boolean isOpaqueCube() {
        	
            return false;
            
        }
     
        @Override
        public boolean renderAsNormalBlock() {
        	
            return false;
            
        }
        
        @SideOnly(Side.CLIENT)
        public void registerBlockIcons(IIconRegister icon) {
        	
        	this.blockIcon = icon.registerIcon(Main.MODID + this.getUnlocalizedName().substring(5));
        	
        }
        
        @Override
        public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int wx, int wy, int wz) {
        	
            return null;
            
        }
        
        //Called when the block is placed into the world.
    	@Override
    	public int onBlockPlaced(World world, int x, int y, int z, int side, float p_149660_6_, float p_149660_7_, float p_149660_8_, int p_149660_9_)  {
    
    		EntityTreeTap tile = (EntityTreeTap) world.getTileEntity(x, y, z);
    	
    		if (tile != null)
    			{
    				System.out.println("Side = "+side);
    				tile.setFacingDirection(side);
    			}
    		
    		return p_149660_9_;
    		
    	}
    	
        //Called when the block calls the tile entity on placement.
    	@Override
    	public TileEntity createNewTileEntity(World thisWorld, int int1) {
    		
    		return new EntityTreeTap();
    		
    	}
    	
    	@Override
        public void breakBlock(World thisWorld, int int1, int int2, int int3, Block thisBlock, int int4) {
    		 
    	        if (hasTileEntity(int4))
    	        	
    	        	{
    	        		thisWorld.removeTileEntity(int1, int2, int3);
    	        	}
    	 		}
    	
    	@Override
    	public boolean canPlaceBlockAt(World p_149742_1_, int p_149742_2_, int p_149742_3_, int p_149742_4_) {
    	
    		ForgeDirection dir = ForgeDirection.getOrientation(p_149742_4_);
    
    		return p_149742_1_.isSideSolid(p_149742_2_ - 1, p_149742_3_, p_149742_4_, dir.EAST ) ||
    				p_149742_1_.isSideSolid(p_149742_2_ + 1, p_149742_3_, p_149742_4_, dir.WEST ) ||
    				p_149742_1_.isSideSolid(p_149742_2_, p_149742_3_, p_149742_4_ - 1, dir.SOUTH) ||
    				p_149742_1_.isSideSolid(p_149742_2_, p_149742_3_, p_149742_4_ + 1, dir.NORTH);
    	
    	}
    	
    	@Override
    	public boolean canPlaceBlockOnSide(World p_149707_1_, int p_149707_2_, int p_149707_3_, int p_149707_4_, int p_149707_5_) {
    	
    		ForgeDirection dir = ForgeDirection.getOrientation(p_149707_5_);
    
    		if((dir == dir.NORTH && p_149707_1_.isSideSolid(p_149707_2_, p_149707_3_, p_149707_4_ + 1, dir.NORTH)) ||
    		   (dir == dir.SOUTH && p_149707_1_.isSideSolid(p_149707_2_, p_149707_3_, p_149707_4_ - 1, dir.SOUTH)) ||
    		   (dir == dir.WEST && p_149707_1_.isSideSolid(p_149707_2_ + 1, p_149707_3_, p_149707_4_, dir.WEST )) ||
    		   (dir == dir.EAST && p_149707_1_.isSideSolid(p_149707_2_ - 1, p_149707_3_, p_149707_4_, dir.EAST )))  {
    		
    			//currentSideOn = dir; //replaced with onBlockPlaced method
    			return true;
    			
    		}
    	
    		return false;
    
    	}
    
        //Called when the player right clicks the block.
        @Override
        public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int p_149727_6_, float p_149727_7_, float p_149727_8_, float p_149727_9_) {
           
        	return true;
        	
        }
        
        
        //Tells the game there is a tile entity associated with this block.
        @Override
        public boolean hasTileEntity() {
       
        	return true;
        	
        }
    
    }



    The tile entity for the tree tap:



    package com.natura.artifacts.block;
    
    import net.minecraft.entity.Entity;
    import net.minecraft.nbt.NBTTagCompound;
    import net.minecraft.tileentity.TileEntity;
    import net.minecraft.world.World;
    
    public class EntityTreeTap extends TileEntity {
    	
    	public EntityTreeTap() {
    		
    		super();
    	}
    	
    	private int facingDirection;
    
    	public int getFacingDirection()
    	    {
    	        return this.facingDirection;
    	    }
    
    	public void setFacingDirection(int par1)
    	    {
    	        this.facingDirection = par1;
    	    }
    	
    	@Override
    	public void readFromNBT(NBTTagCompound tag)
        {
    		super.readFromNBT(tag);  
            facingDirection = tag.getInteger("facingDirection");
        }
        
    	@Override
        public void writeToNBT(NBTTagCompound tag)
        {
    		 super.writeToNBT(tag);
    	     tag.setInteger("facingDirection", facingDirection);
        }
    
    
    	
    
    	}
    
    





    The render class for the tree tap:



    package com.natura.artifacts.block;
    
    import org.lwjgl.opengl.GL11;
    import org.lwjgl.opengl.GL12;
    
    import com.natura.artifacts.Main;
    
    import net.minecraft.block.Block;
    import net.minecraft.client.Minecraft;
    import net.minecraft.client.renderer.OpenGlHelper;
    import net.minecraft.client.renderer.Tessellator;
    import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
    import net.minecraft.tileentity.TileEntity;
    import net.minecraft.util.ResourceLocation;
    import net.minecraft.world.World;
    import net.minecraftforge.client.model.AdvancedModelLoader;
    import net.minecraftforge.client.model.IModelCustom;
    
    public class RenderTreeTap extends TileEntitySpecialRenderer {
    
        ResourceLocation texture = new ResourceLocation(Main.MODID, "textures/blocks/treeTapModel.png");
        public static RenderTreeTap render;
        private ModelTreeTap model;
        
        public RenderTreeTap()
        {
        	model = new ModelTreeTap();
        }
     
        @Override
        public void renderTileEntityAt(TileEntity entity, double x, double y, double z, float f) {
        	int dir = ((EntityTreeTap) entity).getFacingDirection();
        	//Tells the matrix to start drawing.
            GL11.glPushMatrix();
            //Sets the starting location.
            GL11.glTranslatef((float)x + 0.5f,(float)y + 1.5f, (float)z + 0.5f);
            //Sets the starting rotation.
            GL11.glRotatef(180, 0f, 0f, 1f);
            //Binds the used texture.
            this.bindTexture(texture);
            //Opens a new drawing matrix.
            GL11.glPushMatrix();
          //This line actually rotates the renderer.
    		this.model.renderModel(0.0625f);
            //Tells the matrix to stop.
            GL11.glPopMatrix();
            GL11.glPopMatrix();
           
        }
    
    		 
    	
    
    	
    		
    	}
    
    






    The item form of the tree tap I'm trying to make place the rotated tree tap



    package com.natura.artifacts.item;
    
    import com.natura.artifacts.block.ArtifactBlocks;
    import com.natura.artifacts.block.TreeTap;
    
    import net.minecraft.entity.player.EntityPlayer;
    import net.minecraft.init.Blocks;
    import net.minecraft.item.Item;
    import net.minecraft.item.ItemStack;
    import net.minecraft.util.MathHelper;
    import net.minecraft.world.World;
    import net.minecraftforge.common.util.ForgeDirection;
    
    public class TreeTapItem extends Item {
    
    	//Makes the item only stack to 1.
        public TreeTapItem() {
    		
    		this.maxStackSize = 1;
    	
    	}
        
        
        //Places the tree tap when clicked on a tree log.
        @Override
        public boolean onItemUse(ItemStack item, EntityPlayer player, World world, int p_77648_4_, int p_77648_5_, int p_77648_6_, int p_77648_7_, float p_77648_8_, float p_77648_9_, float p_77648_10_) {
        	
        	if (world.isRemote)
            {
                return true;
            }
            else if (p_77648_7_ != 1)
            {
                return false;
            }
            else
            {
                ++p_77648_5_;
                TreeTap treetap = (TreeTap)ArtifactBlocks.treeTap;
                
                    if (world.isAirBlock(p_77648_4_, p_77648_5_, p_77648_6_)) 
                    {
                        world.setBlock(p_77648_4_, p_77648_5_, p_77648_6_, treetap, 0, 3);
    
                        --item.stackSize;
                        return true;
                    }
            }
    		return true;    	
        }
        
        
        
    }
    





    I've been attempting to use the code from the bed item but to no luck. I've spent the last day or so on this. I just need to be able to


    A: Place the tile entity only on the side of logs when the item itself is used.


    B: Rotate the model of the tree tap to match the orientation its placed on.

    C: IF anyone has the answer, I'd like to be able to click on the tap itself with a bucket and then replace the bucket with a bucket of sap.

    Posted in: Modification Development
  • 0

    posted a message on Making a double plant by extending BlockDoublePlant?

    Recently picked up modding again as a downtime hobby and I'm working on making more rose bush type plants. Exactly how do I go about getting the plant to be a double plant and what methods do I need to use to clarify the top and bottom half textures?


    Thanks

    Posted in: Modification Development
  • 0

    posted a message on The Lodge: A Towny Based Survival Server. ||Friendly Staff!||Active Family-like Community!||No Whitelist!||Unique Plugins!||
    Quote from Falloutboy21»

    Im new to mine craft pc and this world looks sick could I join


    Yep! It's free to join! Just add play.thelodgemc.net to your server list!
    Quote from omodtcat»

    Looks interesting, I might check it out later.


    Thanks!
    Posted in: PC Servers
  • 0

    posted a message on The Lodge: A Towny Based Survival Server. ||Friendly Staff!||Active Family-like Community!||No Whitelist!||Unique Plugins!||
    The Lodge


    The Lodge is a Towny based survival server, focusing on quests, wars, and construction. In your adventures, you can cast spells, hunt for treasure, and find many secrets hidden around our world. We maintain our server 24/7 with an excellent hosting service, and have a wonderful, friendly staff team available at all hours to help you with any problem you may have! We have no whitelist, and accept any players of any age, race, or other denomination. We are LGBT+ friendly, and treat each individual player like family.

    To join, simply add play.thelodgemc.net in your server list.

    [Ranks]

    Below you can find a complete list of the ranks you will see or can earn on our fair server.

    Player Ranks:

    [Mortal]:
    This is our default rank.
    You are but a simple mortal, traveling the land, gaining knowledge, and attempting to appease the gods of this world.

    [Scribe]:
    This is a gift the gods bestow upon the most trusted, friendly, and active mortals. It bestows permissions on the player beyond that of a mortal.

    [Count]:
    This rank is bestowed upon selfless mortals who donate their funds to the furthering of the Lodge.

    [Duke]:
    This rank is only given to mortals who open their hearts and give even more than others have given to The Lodge.

    Staff Ranks:

    [God]:
    These are the leaders and owners of the server, and their will sways the world around us.

    [Devil]:
    The head admins of the server. Their will backs up that of the gods.

    [Seraph]:
    Admins of the server. They keep things running smoothly and lead the moderators below them.

    [Angel]:
    Moderators. These mods are good aligned.

    [Demon]:
    Moderators. The mods are bad aligned.

    Join us soon for CATACLYSM.

    Our launch trailer:

    A few images:

    We are of course EULA compliant. All donating is at the discretion of the player and will not afford that player an advantage.
    Posted in: PC Servers
  • 0

    posted a message on Full Organized Texture Pack Templates [8X, 16X, 32X, 64X, 128X, 256X, 512X]
    Quote from kaikun97»

    As long as they contain the .tga and tga mip files they should be fine

    You're a bite late with the reply, huh? :P I posted that two years ago, when the .tga and mip files did not exist. It was a much different texture system entirely.
    Posted in: MCPE: Texture Packs
  • 1

    posted a message on [64x][0.7.1] Dragon Dance Pocket Edition[Port][V. 2.1][UPDATE]

    Absolutely if you'd spare the time to do so. Great TP :)

    Alright! I'll definitely take a look into updating it!
    Posted in: MCPE: Texture Packs
  • 0

    posted a message on [64x][0.7.1] Dragon Dance Pocket Edition[Port][V. 2.1][UPDATE]
    Would anyone be interested in seeing this continued? Due to various circumstances, I've been away for nearly a year, but I have returned.
    Posted in: MCPE: Texture Packs
  • 0

    posted a message on [1.6.4] [Forge] [Updated 2/24/2014] [First Content Release] The Valiant Six - A fantasy RPG styled mod(Accepting Help!)
    Would anyone be interested in seeing this continued? I've got a mostly working update all ready to go if anyone was interested. It's been almost a year since I last picked this up.
    Posted in: WIP Mods
  • 0

    posted a message on Texture Pack Porting [Taking Requests] [Latest: None]
    Wow, so sorry, guys. I kinda got swamped with school and life and stuff. Would anyone actually want me to continue this?
    Posted in: MCPE: Texture Pack Help & Requests
  • 0

    posted a message on Pokecube PE v5 By Hexdro [0.13.1]
    Good to see you're still going, Anbu!
    Posted in: MCPE: Mods / Tools
  • To post a comment, please .