Posted September 7, 201510 yr I created a custom vehicle entity that can be loaded from a simple txt file. Now i want that entities are saved through world saving. So i added an ID to my vehicleFIle(file comes in the entities construuctor to define it) and save this entity in onEntityWriteToNBT. Somehow the value is not there when the entity respawns. This is my saving code: @Override public void readEntityFromNBT(NBTTagCompound tagCompund) { NBTTagCompound vehicletag = tagCompund.getCompoundTag("VehicleTag"); this.fuellevel = vehicletag.getDouble("Fuel"); if (file == null) if (Vehicles.getFromId(vehicletag.getInteger("FileID")) != null) { this.file = Vehicles.getFromId(vehicletag.getInteger("FileID")); } } @Override public void writeEntityToNBT(NBTTagCompound tagCompund) { NBTTagCompound tag = new NBTTagCompound(); tag.setDouble("Fuel", this.fuellevel); tagCompund.setInteger("FileID", file.getID()); tagCompund.setTag("VehicleTag", tag); }
September 7, 201510 yr 1. Moar code. Might be handy: "new" Entity is created once - by spawner. When entity is "new" NBT is NOT being read. Loaded entities on the other hand are being created using reflection (.newInstance()) and then filled with data from NBT. Following that - you can/should inject yourself into MyEntity(World) constructor that will ALWAYS (no matter if loaded or created) will set default values for your vehicle. Then if it happend that entity was loaded from world - use your readNBT method to replace file field. Idk whole code so might be missing design. 1.7.10 is no longer supported by forge, you are on your own.
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.