It is the death that is causing it. As per the advice of another developer, I changed the system by which it tracks players' "first logins". It uses NBT data saved to the player, rather than a saved list of players.
However, in hindsight, since death and respawn creates a new player entity, yes, it will reset.
Forge has a way to save persistent NBT data to the player, it's the "PlayerPersisted" TagCompound in ForgeData. Move the values into there. Not sure if Forge has a certain way you are supposed to use it.
Reika, can you add an encased version of the turbine that won't lag my game to <10 FPS when I place down 100 or so of them? I like fancy models as much as the next guy, but come on, the game is pretty much unplayable with this many polys.
EDIT: They also seem to eat up ridiculous amounts of tick time, dropping my server tick rate to less than 5 TPS.
EDIT2: Nevermind, after more testing I determined both issues are the result of placing about 100 turbines in one long line. It's calling getStage() a ton of times. Probably an easy fix, also probably not worth fixing anyways, considering doing this isn't even intended or valid.
Reika, found a slight error. At line 169 of TileEntityToroidMagnet.java, you used bitwise-and rather than modulus. Or is this intentional?
EDIT: Found another bug. The explosion code for Van De Graffs is running on the client, sometimes resulting in client-side exploding Van De Graffs that didn't really get overcharged.
Reika, I believe I found the offending code causing the fusion plasma to despawn. Lines 56-57 in DragonAPI/Base/ParticleEntity.java:
if (ticksExisted > 240 && ReikaRandomHelper.doWithChance(ticksExisted-240))
this.setDead();
EDIT: I'm able to get the plasma dense enough to undergo fusion if I activate all 4 injectors, but there's really not a whole lot, a bit under 1000 plasma entities. I thought it was supposed to be possible to run the reactor with just one active injector.
I have this in my dev environment, which is the final code:
@Override
protected void onTick() {
if (ticksExisted > 1200)
;//this.setDead();
if (!worldObj.isRemote && rand.nextInt(12) == 0)
this.checkFusion();
motionY = 0;
posY = originY;
if (this.getDistanceFromSpawn() > 100)
this.setDead();
}
Yeah, there's a possibility my decompiler is choking on that empty if statement, the bytecode for that is a bit weird. Or the empty if statement is actually a problem, never heard of or seen it causing issues before though. Hmm, strange thing indeed...
EDIT: I looked at the bytecode, and determined it's just my decompiler getting confused. So, what is causing the entities to despawn then? Very strange...
Are you sure they are despawning? As for WAILA, that is an issue I do not see and is probably dependent on the mod version.
Well, I'm not getting any fusion events after leaving it on for a few minutes, and there's only about 130 plasma entities. In addition, I can see them disappearing after I un-form the injector by breaking an induction coil. Also I'm using Waila 1.5.2a, the latest last time I checked.
EDIT: That's strange, the compiled EntityPlasma doesn't match the source code on Github. Here's the mis-matched line of code from onTick() in the compiled class:
0
Forge has a way to save persistent NBT data to the player, it's the "PlayerPersisted" TagCompound in ForgeData. Move the values into there. Not sure if Forge has a certain way you are supposed to use it.
0
I'm having the same issue, and I can confirm that this fix works.
P.S. I just got another RotaryCraft and ReactorCraft handbook... again.
0
Reika, can you add an encased version of the turbine that won't lag my game to <10 FPS when I place down 100 or so of them? I like fancy models as much as the next guy, but come on, the game is pretty much unplayable with this many polys.
EDIT: They also seem to eat up ridiculous amounts of tick time, dropping my server tick rate to less than 5 TPS.
EDIT2: Nevermind, after more testing I determined both issues are the result of placing about 100 turbines in one long line. It's calling getStage() a ton of times. Probably an easy fix, also probably not worth fixing anyways, considering doing this isn't even intended or valid.
0
EDIT: Actually, it just seems to be randomly giving handbooks.
0
Magnetic containment pipes are melting client-side as well, can you fix that?
0
EDIT: Looks like you need to add an @SideOnly annotation to getRenderInstance() in CritterType.java
0
Awesome, thanks! I've added to the post.
0
Yeah, your tooltips have been broken since 1.5, might wanna look into that.
0
0
EDIT: Found another bug. The explosion code for Van De Graffs is running on the client, sometimes resulting in client-side exploding Van De Graffs that didn't really get overcharged.
0
That's a feature I intend to add, though it's a bit tricky. Keep an eye for it in the future.
0
So that code is the culprit then?
Yeah, there should be a lot more plasma entities shouldn't there? And is 20GW too much for that amount of plasma?
0
EDIT: I'm able to get the plasma dense enough to undergo fusion if I activate all 4 injectors, but there's really not a whole lot, a bit under 1000 plasma entities. I thought it was supposed to be possible to run the reactor with just one active injector.
0
Yeah, there's a possibility my decompiler is choking on that empty if statement, the bytecode for that is a bit weird. Or the empty if statement is actually a problem, never heard of or seen it causing issues before though. Hmm, strange thing indeed...
EDIT: I looked at the bytecode, and determined it's just my decompiler getting confused. So, what is causing the entities to despawn then? Very strange...
0
Well, I'm not getting any fusion events after leaving it on for a few minutes, and there's only about 130 plasma entities. In addition, I can see them disappearing after I un-form the injector by breaking an induction coil. Also I'm using Waila 1.5.2a, the latest last time I checked.
EDIT: That's strange, the compiled EntityPlasma doesn't match the source code on Github. Here's the mis-matched line of code from onTick() in the compiled class:
In addition the rest of onTick() is getting called on the client I believe, which might cause issues.