Jump to content

Mikinilsen/MathiasVO053

Members
  • Posts

    58
  • Joined

  • Last visited

Everything posted by Mikinilsen/MathiasVO053

  1. sorry for the long time, i had to sleep and go to school thank you for your help i'm still learning the new 1.8 rendering engine
  2. so, i've got a problem(if you couldn't tell from the title) i'm trying to update my mod from 1.7 to 1.8. the problem is that i for some reason can't get the physical texture from the armor(the texture that is gonna be on top of your skin) to work does anyone know what i need to do? https://github.com/mikinilsen/RobinSamseCraft/tree/master/java/dk/MathiasVO053/RobinSamseCraft
  3. does anyone know how to check if an itemstack is a spicific item? for example: if (!this.mergeItemStack(itemstack1, 0, 1, true && itemstack1 == Items.beef)) {}
  4. I FIXED IT!!! it was the "addCraftingToCrafters" method where i gave the "InfuciumCount" a wrong ID...(i feel kind a stupid right now...) thanks for all the help you've given me
  5. ok, i'll update the raposetory when i make changes. and i'm very new to git so that's why i havn't used a .gitignore
  6. that's probably becourse i copied this code from the "infuser" and i aparently overlooked that... i've tried to remove it but it doesn't help thanks
  7. hi sorry it took this long, but i had some computer problems... now i think i got the github right(i hope) thanks https://github.com/mikinilsen/RobinSamseCraft
  8. ok now i've uploaded my whole workspace: https://github.com/mikinilsen/RobinSamseCraft.git
  9. is this better? https://github.com/mikinilsen/RobinSamseCraft.git
  10. ok, i'm glad it's not me just being an idiot... thanks
  11. no i don't pastebin... i've never used it before
  12. nvm... here is the source code: http://pastebin.com/1BNPqgap and here is the problem: https://www.youtube.dk/watch?v=YZ6qPHte8qo&feature=youtu.be
  13. ok, for some reason i can't get github to work and i it's so much code to put on pastebin so is it okay to give you a link where you can download it?
  14. hi i'm trying to make a dual input(technicly quard input) furnace that takes 2 inputs with fuel and 2 inputs of items. when i put the right fuel in the right slot then it shall be stored in a progress bar thingy, but when i close the gui and opens it again then it messes up and idk why. package dk.MathiasVO053.RobinsamseCraft.inventory; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; import net.minecraft.inventory.ICrafting; import net.minecraft.inventory.Slot; import net.minecraft.inventory.SlotFurnace; import net.minecraft.item.ItemStack; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import dk.MathiasVO053.RobinsamseCraft.Crafting.InfuserRecipes; import dk.MathiasVO053.RobinsamseCraft.tile_entity.TileEntityInfuser2; public class InfuserContainer2 extends Container{ private TileEntityInfuser2 Infuser; public int fuelCount; public int infuciumCount; public int lastCookTime; public InfuserContainer2(InventoryPlayer inventory, TileEntityInfuser2 tileentity) { this.Infuser = tileentity; this.addSlotToContainer(new Slot(tileentity, 0, 66, 16)); /*input 1*/ this.addSlotToContainer(new Slot(tileentity, 1, 66, 56)); /*input 2*/ this.addSlotToContainer(new SlotFurnace(inventory.player, tileentity, 2, 113, 36)); /*output*/ this.addSlotToContainer(new Slot(tileentity, 3, 150, 65)); /*infucium*/ this.addSlotToContainer(new Slot(tileentity, 4, 10, 65)); /*fuel*/ for(int i = 0; i < 3; i++) { for(int j = 0; j < 9; j++) { this.addSlotToContainer(new Slot(inventory, j + i * 9 + 9, 8 + j * 18, 84 + i * 18)); } } for(int i = 0; i < 9; i++) { this.addSlotToContainer(new Slot(inventory, i, 8 + i * 18, 142)); } } public void addCraftingToCrafters (ICrafting icrafting) { super.addCraftingToCrafters(icrafting); icrafting.sendProgressBarUpdate(this, 1, this.Infuser.cookTime); icrafting.sendProgressBarUpdate(this, 2, this.Infuser.currentItemBurnTime); icrafting.sendProgressBarUpdate(this, 3, this.Infuser.FuelCount); icrafting.sendProgressBarUpdate(this, 4, this.Infuser.InfuciumCount); } public void detectAndSendChanges() { super.detectAndSendChanges(); for(int i = 0; i < this.crafters.size(); i++) { ICrafting icrafting = (ICrafting) this.crafters.get(i); if(this.lastCookTime != this.Infuser.cookTime) { icrafting.sendProgressBarUpdate(this, 1, this.Infuser.cookTime); } if(this.fuelCount != this.Infuser.FuelCount) { icrafting.sendProgressBarUpdate(this, 2, this.Infuser.FuelCount); } if(this.infuciumCount != this.Infuser.InfuciumCount) { icrafting.sendProgressBarUpdate(this, 3, this.Infuser.InfuciumCount); } } this.lastCookTime = this.Infuser.cookTime; this.infuciumCount = this.Infuser.InfuciumCount; this.fuelCount = this.Infuser.FuelCount; } @SideOnly(Side.CLIENT) public void updateProgressBar(int i, int j){ if(i == 1){ Infuser.cookTime = j; } if(i == 2){ Infuser.FuelCount = j; } if(i == 3){ Infuser.InfuciumCount = j; } } public boolean canInteractWith(EntityPlayer var1) { return true; } } package dk.MathiasVO053.RobinsamseCraft.tile_entity; import cpw.mods.fml.common.registry.GameRegistry; import dk.MathiasVO053.RobinsamseCraft.ItemReg; import dk.MathiasVO053.RobinsamseCraft.Crafting.InfuserRecipes; import dk.MathiasVO053.RobinsamseCraft.blocks.Infuser2; import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.Item; import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; import net.minecraft.tileentity.TileEntity; public class TileEntityInfuser2 extends TileEntity implements ISidedInventory { private String localizedName; private static final int[] slots_top = new int[]{0}; private static final int[] slots_bottom = new int[]{2, 1}; private static final int[] slots_side = new int[]{1}; public static final int maxInfucium = 900; public static final int maxFuel = 900; private ItemStack[] slots = new ItemStack [5]; public int furnaceSpeed = 150; public int currentItemBurnTime; public int cookTime; public int FuelCount; public int InfuciumCount; public void setGuiDisplayName(String displayName) { this.localizedName = displayName; } public String getInventoryName() { return this.hasCustomInventoryName() ? this.localizedName : "container.Infuser"; } public boolean hasCustomInventoryName() { return this.localizedName != null && this.localizedName.length() > 0; } public int getSizeInventory() { return this.slots.length; } @Override public ItemStack getStackInSlot(int var1) { return this.slots[var1]; } @Override public ItemStack decrStackSize(int var1, int var2) { if(this.slots[var1] != null){ ItemStack itemstack; if(this.slots[var1].stackSize <= var2 ){ itemstack = this.slots[var1]; this.slots[var1] = null; return itemstack; }else{ itemstack = this.slots[var1].splitStack(var2); if(this.slots[var1].stackSize == 0) { this.slots[var1] = null; } return itemstack; } }else{ return null; } } @Override public ItemStack getStackInSlotOnClosing(int i) { if(this.slots!= null) { ItemStack itemstack = this.slots; this.slots = null; return itemstack; } return null; } @Override public void setInventorySlotContents(int i, ItemStack itemstack) { this.slots = itemstack; if(itemstack != null && itemstack.stackSize > this.getInventoryStackLimit()) { itemstack.stackSize = this.getInventoryStackLimit(); } } @Override public int getInventoryStackLimit() { return 64; } @Override public boolean isUseableByPlayer(EntityPlayer entityplayer) { return this.worldObj.getTileEntity(this.xCoord, this.yCoord, this.zCoord) != this ? false : entityplayer.getDistanceSq((double)this.xCoord + 0.5D, (double)this.yCoord + 0.5D, (double)this.zCoord + 0.5D) <= 64.0D; } public void openInventory() {} public void closeInventory() {} @Override public boolean isItemValidForSlot(int i, ItemStack itemstack) { return i == 2 ? false : (i == 1 ? hasItemPower(itemstack) : true); } private static int getItemInfucium(ItemStack itemstack) { if(itemstack == null){ return 0; }else{ Item item = itemstack.getItem(); if(item instanceof ItemBlock && Block.getBlockFromItem(item) != Blocks.air) { Block block = Block.getBlockFromItem(item); //if(block == Blocks.sapling) return 100; } if(item == ItemReg.InfuciumMk2) return 100; } return GameRegistry.getFuelValue(itemstack); } private static int getItemPower(ItemStack itemstack) { if(itemstack == null){ return 0; }else{ Item item = itemstack.getItem(); if(item instanceof ItemBlock && Block.getBlockFromItem(item) != Blocks.air) { Block block = Block.getBlockFromItem(item); //if(block == Blocks.sapling) return 100; } if(item == ItemReg.RainbowPowder) return 100; } return GameRegistry.getFuelValue(itemstack); } public boolean hasItemPower(ItemStack itemstack) { return getItemPower(itemstack) > 0; } public boolean hasItemInfucium(ItemStack itemstack) { return getItemInfucium(itemstack) > 0; } public int getFuelRemainingScaled(int i) { return (FuelCount * i) / maxFuel; } public int getInfuciumRemainingScaled(int i) { return (InfuciumCount * i) / maxInfucium; } public boolean hasEnergy() { return FuelCount > 0; } public boolean hasInfucium() { return InfuciumCount > 0; } public void updateEntity() { boolean flag = this.hasEnergy(); boolean flag1 = false; boolean flag2 = false; if(hasEnergy() && this.isBurning()){ this.FuelCount--; this.InfuciumCount--; } if(!worldObj.isRemote){ if(this.hasItemInfucium(this.slots[3]) && this.InfuciumCount < (this.maxInfucium - this.getItemInfucium(this.slots[3]))){ this.InfuciumCount += getItemInfucium(this.slots[3]); if(this.slots[3] != null){ flag2 = true; this.slots[3].stackSize--; if(this.slots[3].stackSize == 0){ this.slots[3] = this.slots[3].getItem().getContainerItem(this.slots[3]); } } } if(!worldObj.isRemote){ if(this.hasItemPower(this.slots[4]) && this.FuelCount < (this.maxFuel - this.getItemPower(this.slots[4]))){ this.FuelCount += getItemPower(this.slots[4]); if(this.slots[4] != null){ flag1 = true; this.slots[4].stackSize--; if(this.slots[4].stackSize == 0){ this.slots[4] = this.slots[4].getItem().getContainerItem(this.slots[4]); } } } if(hasEnergy() && canSmelt()){ cookTime++; if(this.cookTime == this.furnaceSpeed){ this.cookTime = 0; this.smeltItem(); flag1 = true; flag2 = true; }else{ cookTime = 0; } if(flag != this.hasEnergy()){ flag1 = true; flag2 = true; Infuser2.updateInfuserBlockState(this.hasEnergy(), worldObj, xCoord, yCoord, zCoord); } } if(flag1 && flag2){ this.markDirty(); } } } } public boolean canSmelt() { if (this.slots[0] == null) { return false; }else{ ItemStack itemstack = InfuserRecipes.smelting().getSmeltingResult(this.slots[0]); if(itemstack == null) return false; if(this.slots[2] == null) return true; if(!this.slots[2].isItemEqual(itemstack)) return false; int result = this.slots[2].stackSize + itemstack.stackSize; return (result <= getInventoryStackLimit() && result <= itemstack.getMaxStackSize()); } } public void smeltItem() { if(this.canSmelt()) { ItemStack itemstack = InfuserRecipes.smelting().getSmeltingResult(this.slots[0]); if(this.slots[2] == null) { this.slots[2] = itemstack.copy(); }else if(this.slots[2].isItemEqual(itemstack)) { this.slots[2].stackSize += itemstack.stackSize; } this.slots[0].stackSize--; if(this.slots[0].stackSize <= 0) { this.slots[0] = null; } } } @Override public int[] getAccessibleSlotsFromSide(int var1) { return var1 == 0 ? slots_bottom : (var1 == 1 ? slots_top : slots_side); } @Override public boolean canInsertItem(int i, ItemStack itemstack, int j) { return this.isItemValidForSlot(i, itemstack); } @Override public boolean canExtractItem(int i, ItemStack itemstack, int j) { return j != 0 || i != 1 || itemstack.getItem() == Items.bucket; } public boolean isBurning(){ return this.cookTime > 0; } public int getCookProgressScaled(int i) { return this.cookTime * i / this.furnaceSpeed; } public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); NBTTagList list = nbt.getTagList("Items", 10); this.slots = new ItemStack[this.getSizeInventory()]; for(int i = 0; i < list.tagCount(); i++) { NBTTagCompound compound = (NBTTagCompound) list.getCompoundTagAt(i); byte b = compound.getByte("Slot"); if(b >= 0 && b < this.slots.length) { this.slots = ItemStack.loadItemStackFromNBT(compound); } } this.cookTime = (int)nbt.getShort("CookTime"); this.currentItemBurnTime = (int)nbt.getShort("CurrentBurnTime"); this.InfuciumCount = (int)nbt.getShort("InfuciumCount"); this.FuelCount = (int)nbt.getShort("FuelCount"); if(nbt.hasKey("CustomName")) { this.localizedName = nbt.getString("CustomName"); } } public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); nbt.setShort("CookTime", (short)this.cookTime); nbt.setShort("CurrentBurnTime", (short)this.currentItemBurnTime); nbt.setShort("InfuciumCount", (short)this.InfuciumCount); nbt.setShort("FuelCount", (short)this.FuelCount); NBTTagList list = new NBTTagList(); for (int i = 0; i < this.slots.length; i++) { if(this.slots != null) { NBTTagCompound compound = new NBTTagCompound(); compound.setByte("Slot", (byte)i); this.slots.writeToNBT(compound); list.appendTag(compound); } } nbt.setTag("Items", list); if (this.hasCustomInventoryName()) { nbt.setString("CustomName", this.localizedName); } } } package dk.MathiasVO053.RobinsamseCraft.inventory; import org.lwjgl.opengl.GL11; import dk.MathiasVO053.RobinsamseCraft.Strings; import dk.MathiasVO053.RobinsamseCraft.tile_entity.TileEntityInfuser2; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.client.resources.I18n; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.util.ResourceLocation; public class InfuserGui2 extends GuiContainer { public static final ResourceLocation bground = new ResourceLocation(Strings.MODID + ":" + "textures/gui/InfuserMk2Gui.png"); public TileEntityInfuser2 Infuser; public InfuserGui2(InventoryPlayer inventoryPlayer, TileEntityInfuser2 entity) { super(new InfuserContainer2(inventoryPlayer, entity)); this.Infuser = entity; this.xSize = 176; this.ySize = 166; } public void drawGuiContainerForegroundLayer(int par1, int par2) { String name = "InfuserMk2"; this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); this.fontRendererObj.drawString(I18n.format("container.inventory", new Object[0]), 118, this.ySize - 96 + 2, 4210752); } @Override protected void drawGuiContainerBackgroundLayer(float var1, int var2, int var3) { GL11.glColor4f(1F, 1F, 1F, 1F); Minecraft.getMinecraft().getTextureManager().bindTexture(bground); drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); if (Infuser.hasEnergy()) { int i1 = Infuser.getFuelRemainingScaled(48); drawTexturedModalRect(guiLeft + 10, guiTop + 62 - i1, 180, 101 - i1, 16, i1); } if (Infuser.hasInfucium()) { int i2 = Infuser.getInfuciumRemainingScaled(48); drawTexturedModalRect(guiLeft + 150, guiTop + 62 - i2, 198, 101 - i2, 16, i2); } int k = this.Infuser.getCookProgressScaled(52); drawTexturedModalRect(guiLeft + 82, guiTop + 19, 176, 0, k + 1, 50); } }
  15. hi i have a problem, i've made an entity and it works fine. the problem is i need to give it more than one texture, like the horse has 4-5 ish diffrent textures. public class EntityButtMob extends EntityAnimal{ private int r; public ResourceLocation texture1, texture2, texture3, texture4, texture5, texture6, texture7, texture8, texture9; public static ResourceLocation TE; public EntityButtMob(World par1World) { super(par1World); this.setSize(0.5F, 0.4F); this.tasks.addTask(0, new EntityAIWander(this, 0.5D)); this.tasks.addTask(1, new EntityAIPanic(this, 1.0D)); this.tasks.addTask(2, new EntityAITempt(this, 0.7D, Items.beef, false)); this.tasks.addTask(4, new EntityAIFollowParent(this, 1.1D)); this.tasks.addTask(2, new EntityAIMate(this, 1.0D)); Random rand = new Random(); r = rand.nextInt(; switch®{ case 1: TE = texture1; break; case 2: TE = texture2; break; case 3: TE = texture3; break; case 4: TE = texture4; break; case 5: TE = texture5; break; case 6: TE = texture6; break; case 7: TE = texture7; break; case 8: TE = texture8; break; default: TE = texture9; } } public boolean isAIEnabled(){ return true; } protected void applyEntityAttributes(){ super.applyEntityAttributes(); this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(16.0F); this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.5D); } @Override public EntityAgeable createChild(EntityAgeable age) { return new EntityButtMob(worldObj); } public boolean isBreedingItem(ItemStack item) { return item != null && item.getItem() == ItemReg.RainbowPowder; } } public class RenderButtMob extends RenderLiving { private static ResourceLocation texture1 = new ResourceLocation(Strings.MODID + ":" + "textures/model/numse_blue.png"); private static ResourceLocation texture2 = new ResourceLocation(Strings.MODID + ":" + "textures/model/numse_gray.png"); private static ResourceLocation texture3 = new ResourceLocation(Strings.MODID + ":" + "textures/model/numse_green.png"); private static ResourceLocation texture4 = new ResourceLocation(Strings.MODID + ":" + "textures/model/numse_lime.png"); private static ResourceLocation texture5 = new ResourceLocation(Strings.MODID + ":" + "textures/model/numse_orange.png"); private static ResourceLocation texture6 = new ResourceLocation(Strings.MODID + ":" + "textures/model/numse_pink.png"); private static ResourceLocation texture7 = new ResourceLocation(Strings.MODID + ":" + "textures/model/numse_purple.png"); private static ResourceLocation texture8 = new ResourceLocation(Strings.MODID + ":" + "textures/model/numse_red.png"); private static ResourceLocation texture9 = new ResourceLocation(Strings.MODID + ":" + "textures/model/numse_yellow.png"); protected ModelButtMob modelEntity; public RenderButtMob(ModelBase par1ModelBase, float par2) { super(par1ModelBase, par2); modelEntity = ((ModelButtMob) mainModel); } public void renderButt(EntityButtMob entity, double x, double y, double z, float u, float v) { super.doRender(entity, x, y, z, u, v); } public void doRenderLiving(EntityLiving entityliving, double x, double y, double z, float u, float v) { renderButt((EntityButtMob) entityliving, x, y, z, u, v); } public void doRender(Entity entity, double x, double y, double z, float u, float v) { renderButt((EntityButtMob) entity, x, y, z, u, v); } int l = 1; private ResourceLocation p; @Override protected ResourceLocation getEntityTexture(Entity var1) { return EntityButtMob.TE; } }
  16. public static void removeFurnaceRecipe(ItemStack stack) { Map recipes = FurnaceRecipes.smelting().getSmeltingList(); Iterator entries = recipes.entrySet().iterator(); while (entries.hasNext()) { Entry thisEntry = (Entry) entries.next(); if (stack.getItem() != null && stack.getItem() == Items.baked_potato) { entries.remove(); } } }
  17. yes. i understand this... but if i try to replace it then it gives errors
  18. ohh... but then i'm back to... how do i do this without IRecipe?
  19. public static void removeFurnaceRecipe() { Map recipes = FurnaceRecipes.smelting().getSmeltingList(); Iterator entries = recipes.entrySet().iterator(); while (entries.hasNext()) { Entry thisEntry = (Entry) entries.next(); if (thisEntry != null && thisEntry.getKey() == Items.baked_potato) { entries.remove(); } } }
  20. ohh... well i've tried with baked potatoes and it still doesn't work...
  21. i have no idea how to implement that in my code
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.