use of tonius.simplyjetpacks.network.message.MessageJetpackSync in project SimplyJetpacks by Tonius.
the class LivingTickHandler method onLivingTick.
@SubscribeEvent
public void onLivingTick(LivingUpdateEvent evt) {
if (!evt.entityLiving.worldObj.isRemote) {
ParticleType jetpackState = null;
ItemStack armor = evt.entityLiving.getEquipmentInSlot(3);
Jetpack jetpack = null;
if (armor != null && armor.getItem() instanceof ItemJetpack) {
jetpack = ((ItemJetpack) armor.getItem()).getPack(armor);
if (jetpack != null) {
jetpackState = jetpack.getDisplayParticleType(armor, (ItemJetpack) armor.getItem(), evt.entityLiving);
}
}
if (jetpackState != lastJetpackState.get(evt.entityLiving.getEntityId())) {
if (jetpackState == null) {
lastJetpackState.remove(evt.entityLiving.getEntityId());
} else {
lastJetpackState.put(evt.entityLiving.getEntityId(), jetpackState);
}
PacketHandler.instance.sendToAllAround(new MessageJetpackSync(evt.entityLiving.getEntityId(), jetpackState != null ? jetpackState.ordinal() : -1), new TargetPoint(evt.entityLiving.dimension, evt.entityLiving.posX, evt.entityLiving.posY, evt.entityLiving.posZ, 256));
} else if (jetpack != null && evt.entityLiving.worldObj.getTotalWorldTime() % 160L == 0) {
PacketHandler.instance.sendToAllAround(new MessageJetpackSync(evt.entityLiving.getEntityId(), jetpackState != null ? jetpackState.ordinal() : -1), new TargetPoint(evt.entityLiving.dimension, evt.entityLiving.posX, evt.entityLiving.posY, evt.entityLiving.posZ, 256));
}
if (evt.entityLiving.worldObj.getTotalWorldTime() % 200L == 0) {
Iterator<Integer> itr = lastJetpackState.keySet().iterator();
while (itr.hasNext()) {
int entityId = itr.next();
if (evt.entityLiving.worldObj.getEntityByID(entityId) == null) {
itr.remove();
}
}
}
}
}
Aggregations