Everything posted by CaptainMiner
-
[1.7.2] NBT not working???
Ok, so i changed some stuff around and the readFromNBT is only called when there isnt anything in the inventory! Anyone know why?
-
[1.7.2] NBT not working???
Main Class: package com.ljcoding.robotmod; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.init.Items; import net.minecraft.item.Item; import com.ljcoding.robotmod.robotworkshop.BlockWorkshop; import com.ljcoding.robotmod.robotworkshop.GuiHandler; import com.ljcoding.robotmod.robotworkshop.TileEntityWorkshop; import cpw.mods.fml.common.Mod; import cpw.mods.fml.common.Mod.EventHandler; import cpw.mods.fml.common.Mod.Instance; import cpw.mods.fml.common.event.FMLInitializationEvent; import cpw.mods.fml.common.event.FMLPreInitializationEvent; import cpw.mods.fml.common.registry.GameRegistry; @Mod(modid = RobotMod.MODID, version = RobotMod.VERSION) public class RobotMod { public static final String MODID = "RobotMod"; public static final String VERSION = "0.0.1"; @Instance(value = MODID) public static RobotMod instance; //Creative Tabs public static CreativeTabs robotTab = new CreativeTabs("robotTab") { @Override public Item getTabIconItem() { return Items.paper; } }; //Blocks public static final Block workshop = new BlockWorkshop(1000, Material.iron); @EventHandler public void preInit(FMLPreInitializationEvent event) { GameRegistry.registerBlock(workshop, "Robot Workshop"); } @EventHandler public void init(FMLInitializationEvent event) { new GuiHandler(); GameRegistry.registerTileEntity(TileEntityWorkshop.class, "tileentityworkshop"); } } Block Class: package com.ljcoding.robotmod.robotworkshop; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.IIcon; import net.minecraft.world.World; import com.ljcoding.robotmod.RobotMod; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; public class BlockWorkshop extends BlockContainer { private IIcon icon; public BlockWorkshop(int i, Material mat) { super(mat); this.setCreativeTab(RobotMod.robotTab); this.setStepSound(soundTypeMetal); this.setHardness(8f); this.setResistance(10f); this.setLightLevel(0.2f); this.setBlockName("Robot Workshop"); } @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { if(!world.isRemote) { FMLNetworkHandler.openGui(player, RobotMod.instance, 0, world, x, y, z); } return false; } @Override public TileEntity createNewTileEntity(World var1, int var2) { return new TileEntityWorkshop(); } @Override @SideOnly(Side.CLIENT) public void registerBlockIcons(IIconRegister iconRegister) { icon = iconRegister.registerIcon("robot:block_workshop"); } @SideOnly(Side.CLIENT) @Override public IIcon getIcon(int i, int j) { return icon; } }
-
[1.7.2] NBT not working???
It still doesn't work! Maybe im being stupid somewhere else in my tile entity: package com.ljcoding.robotmod.robotworkshop; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; 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 TileEntityWorkshop extends TileEntity implements IInventory { private ItemStack[] items; public TileEntityWorkshop() { items = new ItemStack[12]; } @Override public void closeInventory() {} @Override public void openInventory() {} @Override public ItemStack decrStackSize(int i, int count) { ItemStack itemstack = getStackInSlot(i); if(itemstack != null) { if(itemstack.stackSize <= count) { setInventorySlotContents(i, null); } else { itemstack = itemstack.splitStack(count); markDirty(); } } return itemstack; } @Override public String getInventoryName() { return "RobotWorkshop"; } @Override public int getInventoryStackLimit() { return 64; } @Override public int getSizeInventory() { return items.length; } @Override public ItemStack getStackInSlot(int i) { return items[i]; } @Override public ItemStack getStackInSlotOnClosing(int i) { ItemStack item = getStackInSlot(i); setInventorySlotContents(i, null); return item; } @Override public boolean hasCustomInventoryName() { return true; } @Override public boolean isItemValidForSlot(int i, ItemStack itemstack) { return false; } @Override public boolean isUseableByPlayer(EntityPlayer player) { return player.getDistanceSq(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5) <= 64; } @Override public void setInventorySlotContents(int i, ItemStack itemstack) { items[i] = itemstack; if(itemstack != null && itemstack.stackSize > getInventoryStackLimit()) { itemstack.stackSize = getInventoryStackLimit(); } markDirty(); } @Override public void writeToNBT(NBTTagCompound compound) { super.writeToNBT(compound); NBTTagList items = new NBTTagList(); for(int i=0;i<getSizeInventory();i++) { ItemStack stack = getStackInSlot(i); if(stack != null) { NBTTagCompound item = new NBTTagCompound(); item.setByte("Slot", (byte)i); stack.writeToNBT(compound); items.appendTag(item); System.out.println("Storing Stack "+i); } } compound.setTag("Items", items); } @Override public void readFromNBT(NBTTagCompound compound) { super.readFromNBT(compound); NBTTagList items = compound.getTagList("Items", compound.getId()); for (int i = 0; i < items.tagCount(); ++i) { NBTTagCompound item = items.getCompoundTagAt(i); byte slot = item.getByte("Slot"); if (slot >= 0 && slot < getSizeInventory()) { setInventorySlotContents(slot, ItemStack.loadItemStackFromNBT(item)); System.out.println("Storing Stack "+i); } } } @Override public Packet getDescriptionPacket() { NBTTagCompound tag = new NBTTagCompound(); this.writeToNBT(tag); return new S35PacketUpdateTileEntity(xCoord, yCoord, zCoord, 1, tag); } @Override public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity packet) { readFromNBT(packet.func_148857_g()); } }
-
[1.7.2] NBT not working???
I copied it in and changed it for 1.7.2 (after a few minutes of google searching) but it still doesnt work!! If you need more code im happy to show it.
-
[1.7.2] NBT not working???
@coolAlias: Thanks, do i just copy that? I'm not very good with packet handlers!
-
[1.7.2] NBT not working???
I didn't call the write method and that still works. I use the markDirty() method though.
-
[1.7.2] NBT not working???
Hi, i have a registered tile entity and stuff, everything works fine except for when i reload my world the items inside the arent there. I added system.out.println() codes and the writeToNBT gets called but not readFromNBT! Is it just me being stupid? Thanks in advance! nbt code (It wont let me add a spoiler for some reason -.-): @Override public void writeToNBT(NBTTagCompound compound) { super.writeToNBT(compound); NBTTagList items = new NBTTagList(); for(int i=0;i<getSizeInventory();i++) { ItemStack stack = getStackInSlot(i); if(stack != null) { NBTTagCompound item = new NBTTagCompound(); item.setByte("Slot", (byte)i); stack.writeToNBT(compound); items.appendTag(item); System.out.println("Storing Stack "+i); } } compound.setTag("Items", items); } @Override public void readFromNBT(NBTTagCompound compound) { super.readFromNBT(compound); NBTTagList items = compound.getTagList("Items", compound.getId()); for (int i = 0; i < items.tagCount(); ++i) { NBTTagCompound item = items.getCompoundTagAt(i); byte slot = item.getByte("Slot"); if (slot >= 0 && slot < getSizeInventory()) { setInventorySlotContents(slot, ItemStack.loadItemStackFromNBT(item)); System.out.println("Storing Stack "+i); } } }
-
Saving data to players on lan
I solved it.
-
Saving data to players on lan
Like this?: Its not printing the "Testing 123..." I tried @ForgeSubscribe, that didnt work either!
-
Saving data to players on lan
But how do i use IExtendedEntityProperties?
-
Saving data to players on lan
I don't care how it works but I know I can work, maybe another way, because it has been done before! If u can think of another way please tell me.
-
Saving data to players on lan
Hi, first of all thanks for replying. I do know what static means and when more that 1 player are on the world they have different gold values so that isnt a problem. Can u pls explain a bit more about the iextendedproperty? Thanks
-
Saving data to players on lan
Hi, im making a gold coin manager for minecraft 1.6.2 you can add and remove gold. It saves fine for singleplayer and for the player hosting the world over lan, but it doesnt save gold for other players over lan and they have to start again! My question: How can i save the int gold for a player over lan? Details: Im using NBTTagCompound to save and load. My GoldHandler class: My PlayerHandler class: Please HELP!!!! Thanks in advance!
-
Looking for a modder to help make mod, will pay up to 100$
Can u send me the details of the mod like name, description, etc.
-
Looking for a modder to help make mod, will pay up to 100$
Sure
-
Looking for a modder to help make mod, will pay up to 100$
Hi, I can code a mod with everything u listed (I've never tried buckets tho). I also know how to make custom dimensions and biomes! No payment from ether of us tho, that is my only condition. EDIT: I can also make custom furnaces/machines.
-
Render 3D Armor (ModelArmor) from techne
I would like to do that too, though i haven't found a way yet.
-
Compiling issues
I had the same problem, I solved it here: http://www.minecraftforge.net/forum/index.php/topic,9387.0.html
-
World Generation / Dimensions
Hi, I have never found any good tutorials on dimensions. Through trial and error, and a bit of research, I have successfully made a new dimension using only minecraft forge! I don't mind uploading the code for u to use if u like?
-
Minecraft won't start in eclipse
Have u tried refreshing the workspace?
-
Tile Entity troubles...
I have made a block with a tileentity, etc. I will upload my code for u to see as soon as I can.
-
Tile Entity troubles...
I'm not sure about this but don't u have to add .class to TileEntityBlockCover? Like this:
-
How to tell if a player is on multiplayer?
I'm not sure exactly what I am gonna do with it yet, I have a few ideas tho. I just want some code to run when there is more than 1 player on a world.
-
[Solved] Negating mirrored crafting recipes [1.5.2]
Ok, I get the problem but what do u want it to do?
-
How to tell if a player is on multiplayer?
Thanks, I forgot about that.
IPS spam blocked by CleanTalk.