Posted June 16, 20178 yr Does MC reused Entity Ids when the original holder is kill? For example: There are 600 entities in a world and I kill entity number 32, will entity 601 have an id of 600 or 31?
June 16, 20178 yr Author 3 minutes ago, diesieben07 said: They will not be re-used until all integers have been used. At which point does this happen? (A.K.A., can I rely on it not ever being not reused)
June 16, 20178 yr An integer represents a lot of values. As for whether it is good to use or not depends on what you want to use it for. What is it you are trying to do?
June 16, 20178 yr Author 12 minutes ago, OreCruncher said: As for whether it is good to use or not depends on what you want to use it for. What is it you are trying to do? At either world gen or birth, I want the baby of my custom mob to store its parents' entity ids. As well, I want the game to check if the id is dead to check if the parents are dead. If MC reuses the ids too often, then the above way will eventually break.
June 16, 20178 yr For this I would think you need to use the unqiue ID of the mob. This ID is persistent across world reloads and what not. The ID is a UUID, not a simple integer.
June 16, 20178 yr Author Alright, but when I use the UUIDs, the console is spammed with this: [19:48:20] [Server thread/WARN]: Keeping entity iv:villager that already exists with UUID 8bcface4-efef-410c-94db-637c8434c733
June 17, 20178 yr Author 17 hours ago, diesieben07 said: Show your code. I don't know where it is doing that, so I'll post the github: https://github.com/Orange1861/Improved-Villagers/tree/Orange1861-2.1.0-B1
June 17, 20178 yr Author 5 minutes ago, diesieben07 said: Yeah, I am not looking through your whole code. Where do you interact with the entity's UUID? IvVillager.class and GuiIvVillagerInfo.
June 17, 20178 yr 1 hour ago, OrangeVillager61 said: GuiIvVillagerInfo. GuiIvVillagerInfo does not interact with the UUID. There is a distinct lack of the string "UUID" in that file. Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable. If you think this is the case, JUST REPORT ME. Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice. Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked. DO NOT PM ME WITH PROBLEMS. No help will be given.
June 17, 20178 yr Author 13 minutes ago, Draco18s said: GuiIvVillagerInfo does not interact with the UUID. There is a distinct lack of the string "UUID" in that file. Oops, I meant VillageStructures in the below method: protected void spawnIvVillagers(World worldIn, StructureBoundingBox structurebb, int x, int y, int z, int count, boolean allow_children, int prof) { if (this.villagersSpawned < count) { for (int i = this.villagersSpawned; i < count; ++i) { int j = this.getXWithOffset(x + i, z); int k = this.getYWithOffset(y); int l = this.getZWithOffset(x + i, z); if (!structurebb.isVecInside(new BlockPos(j, k, l))) { break; } ++this.villagersSpawned; if (this.isZombieInfested) { EntityZombieVillager entityzombievillager = new EntityZombieVillager(worldIn); entityzombievillager.setLocationAndAngles((double)j + 0.5D, (double)k, (double)l + 0.5D, 0.0F, 0.0F); entityzombievillager.onInitialSpawn(worldIn.getDifficultyForLocation(new BlockPos(entityzombievillager)), (IEntityLivingData)null); entityzombievillager.enablePersistence(); worldIn.spawnEntity(entityzombievillager); } else { if (allow_children) { int Gender; Gender = r.nextInt(2) + 1; String Name = IvVillager.random_name(Gender); IvVillager entityvillager = new IvVillager(worldIn, prof, Gender, Name); entityvillager.setLocationAndAngles((double)j + 0.5D, (double)k, (double)l + 0.5D, 0.0F, 0.0F); entityvillager.setProfession(this.chooseForgeProfession(i, entityvillager.getProfessionForge())); entityvillager.finalizeMobSpawn(worldIn.getDifficultyForLocation(new BlockPos(entityvillager)), (IEntityLivingData)null, false); worldIn.spawnEntity(entityvillager); if (r.nextInt(3) == 0) { UUID father_id = entityvillager.getUniqueID(); Gender = r.nextInt(2) + 1; Name = IvVillager.random_name(Gender); IvVillager entityvillager2 = new IvVillager(worldIn, prof, Gender, Name); entityvillager2.setLocationAndAngles((double)j + 0.5D, (double)k, (double)l + 0.5D, 0.0F, 0.0F); entityvillager2.setProfession(this.chooseForgeProfession(i, entityvillager2.getProfessionForge())); entityvillager2.finalizeMobSpawn(worldIn.getDifficultyForLocation(new BlockPos(entityvillager2)), (IEntityLivingData)null, false); worldIn.spawnEntity(entityvillager2); UUID mother_id = entityvillager2.getUniqueID(); Gender = r.nextInt(2) + 1; Name = IvVillager.random_name(Gender); IvVillager entityvillager3 = new IvVillager(worldIn, prof, Gender, Name, father_id, mother_id); entityvillager3.setGrowingAge(-23000); entityvillager3.setLocationAndAngles((double)j + 0.5D, (double)k, (double)l + 0.5D, 0.0F, 0.0F); entityvillager3.setProfession(this.chooseForgeProfession(i, entityvillager.getProfessionForge())); entityvillager3.finalizeMobSpawn(worldIn.getDifficultyForLocation(new BlockPos(entityvillager3)), (IEntityLivingData)null, false); worldIn.spawnEntity(entityvillager3); } } int Gender; Gender = r.nextInt(2) + 1; String Name = IvVillager.random_name(Gender); IvVillager entityvillager = new IvVillager(worldIn, prof, Gender, Name); entityvillager.setLocationAndAngles((double)j + 0.5D, (double)k, (double)l + 0.5D, 0.0F, 0.0F); entityvillager.setProfession(this.chooseForgeProfession(i, entityvillager.getProfessionForge())); entityvillager.finalizeMobSpawn(worldIn.getDifficultyForLocation(new BlockPos(entityvillager)), (IEntityLivingData)null, false); worldIn.spawnEntity(entityvillager); } } } }
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.