Jump to content
  • Home
  • Files
  • Docs
Status Updates
  • All Content

  • Advanced Search
  • Existing user? Sign In  

    Sign In



    • Not recommended on shared computers


    • Forgot your password?

  • Sign Up
  • All Activity
  • Home
  • hotrods20

hotrods20

Members
 View Profile  See their activity
  • Content Count

    197
  • Joined

    June 24, 2012
  • Last visited

    May 9, 2015

Community Reputation

8 Neutral

About hotrods20

  • Rank
    Creeper Killer

Converted

  • Gender
    Male
  • URL
    http://slothygaming.com
  • Location
    Sloth HQ
  • Personal Text
    Rock down to Electric Avenue

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. hotrods20 started following Render Error and Increased block limit code for Forge February 1, 2017
  2. hotrods20

    [1.7.10] Custom Furnace(s) aren't saving

    hotrods20 replied to hotrods20's topic in Modder Support

    I wish it would output an error instead of just continuing on its way.
    • March 29, 2015
    • 7 replies
  3. hotrods20

    [1.7.10] Custom Furnace(s) aren't saving

    hotrods20 replied to hotrods20's topic in Modder Support

    Thanks! That fixed it. That's a bit odd...
    • March 29, 2015
    • 7 replies
  4. hotrods20

    [1.7.10] Custom Furnace(s) aren't saving

    hotrods20 replied to hotrods20's topic in Modder Support

    I meant saving. Sorry for the confusion.
    • March 29, 2015
    • 7 replies
  5. hotrods20

    [1.7.10] Custom Furnace(s) aren't saving

    hotrods20 posted a topic in Modder Support

    "Hurr durr use search fucktin!" I already did. I tried the code and looked over everything. None of it helped. Anyways! Here is my Tile Entity code with certain bits redacted since they're useless. How would one go about getting this to sync? package com.slothygaming.ironfurnaces; import java.util.logging.Level; import java.util.logging.Logger; 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.material.Material; 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.ItemHoe; import net.minecraft.item.ItemStack; import net.minecraft.item.ItemSword; import net.minecraft.item.ItemTool; import net.minecraft.item.crafting.FurnaceRecipes; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; import net.minecraft.network.NetworkManager; import net.minecraft.network.Packet; import net.minecraft.network.play.server.S35PacketUpdateTileEntity; import net.minecraft.tileentity.TileEntity; public class TileEntityIronFurnace extends TileEntity implements ISidedInventory { public String TYPE; private static final int[] slotsTop = new int[] {0}; private static final int[] slotsBottom = new int[] {2, 1}; private static final int[] slotsSides = new int[] {1}; private ItemStack[] furnaceItemStacks = new ItemStack[3]; public int furnaceBurnTime; public int currentItemBurnTime; public int furnaceCookTime; private int maxCookTime; private String field_145958_o; public TileEntityIronFurnace(String furnaceType) { super(); this.TYPE = furnaceType; if(this.TYPE = "Hurr Durr") { this.maxCookTime = 175; } } public void func_145951_a(String p_145951_1_) { this.field_145958_o = p_145951_1_; } @Override public int getSizeInventory() { return this.furnaceItemStacks.length; } @Override public ItemStack getStackInSlot(int p_70301_1_) { return this.furnaceItemStacks[p_70301_1_]; } @Override public Packet getDescriptionPacket() { NBTTagCompound tagCompound = new NBTTagCompound(); writeToNBT(tagCompound); return new S35PacketUpdateTileEntity(this.xCoord, this.yCoord, this.zCoord, 1, tagCompound); } @Override public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity pkt) { readFromNBT(pkt.func_148857_g()); } @Override public ItemStack decrStackSize(int p_70298_1_, int p_70298_2_) { if (this.furnaceItemStacks[p_70298_1_] != null) { ItemStack itemstack; if (this.furnaceItemStacks[p_70298_1_].stackSize <= p_70298_2_) { itemstack = this.furnaceItemStacks[p_70298_1_]; this.furnaceItemStacks[p_70298_1_] = null; return itemstack; } else { itemstack = this.furnaceItemStacks[p_70298_1_].splitStack(p_70298_2_); if (this.furnaceItemStacks[p_70298_1_].stackSize == 0) { this.furnaceItemStacks[p_70298_1_] = null; } return itemstack; } } else { return null; } } @Override public ItemStack getStackInSlotOnClosing(int p_70304_1_) { if (this.furnaceItemStacks[p_70304_1_] != null) { ItemStack itemstack = this.furnaceItemStacks[p_70304_1_]; this.furnaceItemStacks[p_70304_1_] = null; return itemstack; } else { return null; } } @Override public void setInventorySlotContents(int p_70299_1_, ItemStack p_70299_2_) { this.furnaceItemStacks[p_70299_1_] = p_70299_2_; if (p_70299_2_ != null && p_70299_2_.stackSize > this.getInventoryStackLimit()) { p_70299_2_.stackSize = this.getInventoryStackLimit(); } } @Override public void readFromNBT(NBTTagCompound tag) { super.readFromNBT(tag); Logger.getAnonymousLogger().log(Level.WARNING, "Began Reading NBT"); NBTTagList nbttaglist = tag.getTagList("Items", 10); this.furnaceItemStacks = new ItemStack[this.getSizeInventory()]; for (int i = 0; i < nbttaglist.tagCount(); ++i) { NBTTagCompound nbttagcompound1 = nbttaglist.getCompoundTagAt(i); byte b0 = nbttagcompound1.getByte("Slot"); if (b0 >= 0 && b0 < this.furnaceItemStacks.length) { this.furnaceItemStacks[b0] = ItemStack.loadItemStackFromNBT(nbttagcompound1); Logger.getAnonymousLogger().log(Level.WARNING, "Saved Slotted Item: " + this.furnaceItemStacks[b0].getDisplayName()); } } this.maxCookTime = tag.getShort("MaxTimeForCook"); this.furnaceBurnTime = tag.getShort("BurnTime"); this.furnaceCookTime = tag.getShort("CookTime"); this.currentItemBurnTime = getItemBurnTime(this.furnaceItemStacks[1]); this.TYPE = tag.getString("FurnaceType"); if (tag.hasKey("CustomName", ) { this.field_145958_o = tag.getString("CustomName"); } Logger.getAnonymousLogger().log(Level.WARNING, "Finish Reading NBT"); } @Override public void writeToNBT(NBTTagCompound tag) { super.writeToNBT(tag); Logger.getAnonymousLogger().log(Level.WARNING, "Began Writing NBT"); tag.setShort("BurnTime", (short)this.furnaceBurnTime); tag.setShort("CookTime", (short)this.furnaceCookTime); tag.setShort("MaxTimeForCook", (short)this.maxCookTime); tag.setString("FurnaceType", this.TYPE); NBTTagList nbttaglist = new NBTTagList(); for (int i = 0; i < this.furnaceItemStacks.length; ++i) { if (this.furnaceItemStacks[i] != null) { NBTTagCompound nbttagcompound1 = new NBTTagCompound(); nbttagcompound1.setByte("Slot", (byte)i); this.furnaceItemStacks[i].writeToNBT(nbttagcompound1); nbttaglist.appendTag(nbttagcompound1); } } tag.setTag("Items", nbttaglist); if (this.hasCustomInventoryName()) { tag.setString("CustomName", this.field_145958_o); } Logger.getAnonymousLogger().log(Level.WARNING, "Finish Writing NBT"); } @Override public String getInventoryName() { String invName; if(this.TYPE == "Hurr Durr") { invName = "container.hurrdurr"; } return this.hasCustomInventoryName() ? this.field_145958_o : invName; } @SideOnly(Side.CLIENT) public int getCookProgressScaled(int p_145953_1_) { return this.furnaceCookTime * p_145953_1_ / this.maxCookTime; } @SideOnly(Side.CLIENT) public int getBurnTimeRemainingScaled(int p_145955_1_) { if (this.currentItemBurnTime == 0) { this.currentItemBurnTime = 200; } return this.furnaceBurnTime * p_145955_1_ / this.currentItemBurnTime; } public boolean isBurning() { return this.furnaceBurnTime > 0; } @Override public void updateEntity() { boolean flag = this.furnaceBurnTime > 0; boolean flag1 = false; if (this.furnaceBurnTime > 0) { --this.furnaceBurnTime; } if (!this.worldObj.isRemote) { if (this.furnaceBurnTime != 0 || this.furnaceItemStacks[1] != null && this.furnaceItemStacks[0] != null) { if (this.furnaceBurnTime == 0 && this.canSmelt()) { this.currentItemBurnTime = this.furnaceBurnTime = getItemBurnTime(this.furnaceItemStacks[1]); if (this.furnaceBurnTime > 0) { flag1 = true; if (this.furnaceItemStacks[1] != null) { --this.furnaceItemStacks[1].stackSize; if (this.furnaceItemStacks[1].stackSize == 0) { this.furnaceItemStacks[1] = furnaceItemStacks[1].getItem().getContainerItem(furnaceItemStacks[1]); } } } } if (this.isBurning() && this.canSmelt()) { ++this.furnaceCookTime; if (this.furnaceCookTime == this.maxCookTime) { this.furnaceCookTime = 0; this.smeltItem(); flag1 = true; } } else { this.furnaceCookTime = 0; } } if (flag != this.furnaceBurnTime > 0) { flag1 = true; Block furnace; Block furnaceOn; if(this.TYPE == "Hurr Durr") { furnace = Hurr.Durr; furnaceOn = Hurr.DurrOn; } BlockIronFurnace.updateFurnaceBlockState(this.furnaceBurnTime > 0, this.worldObj, this.xCoord, this.yCoord, this.zCoord, furnace, furnaceOn); } } if (flag1) { this.worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); this.markDirty(); } } private boolean canSmelt() { if (this.furnaceItemStacks[0] == null) { return false; } else { ItemStack itemstack = FurnaceRecipes.smelting().getSmeltingResult(this.furnaceItemStacks[0]); if (itemstack == null) return false; if (this.furnaceItemStacks[2] == null) return true; if (!this.furnaceItemStacks[2].isItemEqual(itemstack)) return false; int result = furnaceItemStacks[2].stackSize + itemstack.stackSize; return result <= getInventoryStackLimit() && result <= this.furnaceItemStacks[2].getMaxStackSize(); //Forge BugFix: Make it respect stack sizes properly. } } public void smeltItem() { if (this.canSmelt()) { ItemStack itemstack = FurnaceRecipes.smelting().getSmeltingResult(this.furnaceItemStacks[0]); if (this.furnaceItemStacks[2] == null) { this.furnaceItemStacks[2] = itemstack.copy(); } else if (this.furnaceItemStacks[2].getItem() == itemstack.getItem()) { this.furnaceItemStacks[2].stackSize += itemstack.stackSize; // Forge BugFix: Results may have multiple items } --this.furnaceItemStacks[0].stackSize; if (this.furnaceItemStacks[0].stackSize <= 0) { this.furnaceItemStacks[0] = null; } } } public static int getItemBurnTime(ItemStack p_145952_0_) { if (p_145952_0_ == null) { return 0; } else { Item item = p_145952_0_.getItem(); if (item instanceof ItemBlock && Block.getBlockFromItem(item) != Blocks.air) { Block block = Block.getBlockFromItem(item); if (block == Blocks.wooden_slab) { return 150; } if (block.getMaterial() == Material.wood) { return 300; } if (block == Blocks.coal_block) { return 16000; } } if (item instanceof ItemTool && ((ItemTool)item).getToolMaterialName().equals("WOOD")) return 200; if (item instanceof ItemSword && ((ItemSword)item).getToolMaterialName().equals("WOOD")) return 200; if (item instanceof ItemHoe && ((ItemHoe)item).getToolMaterialName().equals("WOOD")) return 200; if (item == Items.stick) return 100; if (item == Items.coal) return 1600; if (item == Items.lava_bucket) return 20000; if (item == Item.getItemFromBlock(Blocks.sapling)) return 100; if (item == Items.blaze_rod) return 2400; return GameRegistry.getFuelValue(p_145952_0_); } } public static boolean isItemFuel(ItemStack p_145954_0_) { /** * Returns the number of ticks that the supplied fuel item will keep the furnace burning, or 0 if the item isn't * fuel */ return getItemBurnTime(p_145954_0_) > 0; } @Override public boolean isItemValidForSlot(int p_94041_1_, ItemStack p_94041_2_) { return p_94041_1_ == 2 ? false : (p_94041_1_ == 1 ? isItemFuel(p_94041_2_) : true); } /** * Returns an array containing the indices of the slots that can be accessed by automation on the given side of this * block. */ @Override public int[] getAccessibleSlotsFromSide(int p_94128_1_) { return p_94128_1_ == 0 ? slotsBottom : (p_94128_1_ == 1 ? slotsTop : slotsSides); } /** * Returns true if automation can insert the given item in the given slot from the given side. Args: Slot, item, * side */ @Override public boolean canInsertItem(int p_102007_1_, ItemStack p_102007_2_, int p_102007_3_) { return this.isItemValidForSlot(p_102007_1_, p_102007_2_); } /** * Returns true if automation can extract the given item in the given slot from the given side. Args: Slot, item, * side */ @Override public boolean canExtractItem(int p_102008_1_, ItemStack p_102008_2_, int p_102008_3_) { return p_102008_3_ != 0 || p_102008_1_ != 1 || p_102008_2_.getItem() == Items.bucket; } @Override public boolean hasCustomInventoryName() { return this.field_145958_o != null && this.field_145958_o.length() > 0; } @Override public int getInventoryStackLimit() { return 64; } @Override public boolean isUseableByPlayer(EntityPlayer p_70300_1_) { return this.worldObj.getTileEntity(this.xCoord, this.yCoord, this.zCoord) != this ? false : p_70300_1_.getDistanceSq((double)this.xCoord + 0.5D, (double)this.yCoord + 0.5D, (double)this.zCoord + 0.5D) <= 64.0D; } @Override public void openInventory(){} @Override public void closeInventory(){} }
    • March 29, 2015
    • 7 replies
  6. hotrods20

    [1.7.10]lit_redstone_ore not added in oreDictionary, can't add it.

    hotrods20 replied to hotrods20's topic in Modder Support

    @Draco, sorry I didn't understand what you said when I first read it. That's not a bad idea and might make it easier. I'll try that, thank you.
    • March 16, 2015
    • 8 replies
  7. hotrods20

    [1.7.10]lit_redstone_ore not added in oreDictionary, can't add it.

    hotrods20 replied to hotrods20's topic in Modder Support

    I have to do it by ore dictionary because many other mods add their own ores and I can't account for every single mod. Using the ore dictionary simplifies this by getting ores registered to the ore dictionary and allows for custom ores to be added to my mod by adding them to a config file. I've decided of just making a special exception for lit_redstone_ore. @Draco, yes, that's what I am doing.
    • March 16, 2015
    • 8 replies
  8. hotrods20

    [1.7.10]lit_redstone_ore not added in oreDictionary, can't add it.

    hotrods20 replied to hotrods20's topic in Modder Support

    The problem is that when redstone ore is activated(lit), it won't/can't be affected by my item. Would I just have to put a special exception in my code to handle this or is there another way to do this?
    • March 16, 2015
    • 8 replies
  9. hotrods20

    [1.7.10]lit_redstone_ore not added in oreDictionary, can't add it.

    hotrods20 replied to hotrods20's topic in Modder Support

    I don't do it in pre. I do it in post. I tried doing it in init but it produced the same error there.
    • March 16, 2015
    • 8 replies
  10. hotrods20

    [1.7.10]lit_redstone_ore not added in oreDictionary, can't add it.

    hotrods20 posted a topic in Modder Support

    So, I have a tool that uses the ore dictionary to mine certain ores but Blocks.lit_redstone_ore isn't default in the ore dictionary. I tried adding it with, OreDictionary.registerOre("oreRedstone", (Block)Blocks.lit_redstone_ore); in my post initialization event but the game gave me the error, I'm not sure what it is referring to or if I can even fix it. Anyone able to help?
    • March 16, 2015
    • 8 replies
  11. hotrods20

    [1.7.10]Load chunk in world for until an inventory is closed?

    hotrods20 replied to hotrods20's topic in Modder Support

    No, it works for all dimensions. It just doesn't interact with things in other dimensions since the client only knows about one dimension at a time.
    • December 14, 2014
    • 9 replies
  12. hotrods20

    [1.7.10]Load chunk in world for until an inventory is closed?

    hotrods20 replied to hotrods20's topic in Modder Support

    You mean inventories of other dimensions? I'll have to make it so players can't use the item unless they're in the same dimension as the inventory.
    • December 14, 2014
    • 9 replies
  13. hotrods20

    [1.7.10]Load chunk in world for until an inventory is closed?

    hotrods20 replied to hotrods20's topic in Modder Support

    All I really need is load the exact inventory at the exact coords. Like, somehow send a message to the server to load the dimension at that chunk, open the inventory, and send back that information to the client. I'm not sure how to do that though.
    • December 14, 2014
    • 9 replies
  14. hotrods20

    [1.7.10]Load chunk in world for until an inventory is closed?

    hotrods20 replied to hotrods20's topic in Modder Support

    BUMP. can anyone help?
    • December 13, 2014
    • 9 replies
  15. hotrods20

    running my mod

    hotrods20 replied to Xyphoris's topic in Modder Support

    Oh, I don't know much of all about Forge for 1.8. I wish you specified. Sorry, I can't be of much help today.
    • December 12, 2014
    • 15 replies
  16. hotrods20

    running my mod

    hotrods20 replied to Xyphoris's topic in Modder Support

    You can keep the current one.
    • December 12, 2014
    • 15 replies
  • All Activity
  • Home
  • hotrods20
  • Theme

Copyright © 2019 ForgeDevelopment LLC · Ads by Longitude Ads LLC Powered by Invision Community