Jump to content

Setting data in an entity before it is loaded from the save file


ItsAMysteriousYT

Recommended Posts

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);
}

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements



×
×
  • Create New...

Important Information

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