mirror of
https://github.com/Ellpeck/ActuallyAdditions.git
synced 2024-11-26 08:48:34 +01:00
Fixed goggles being a little broken
This commit is contained in:
parent
9b21323c4f
commit
bdabd081be
1 changed files with 25 additions and 8 deletions
|
@ -14,6 +14,7 @@ import de.ellpeck.actuallyadditions.mod.ActuallyAdditions;
|
|||
import de.ellpeck.actuallyadditions.mod.items.base.ItemArmorAA;
|
||||
import de.ellpeck.actuallyadditions.mod.material.InitArmorMaterials;
|
||||
import de.ellpeck.actuallyadditions.mod.util.StackUtil;
|
||||
import io.netty.util.internal.ConcurrentSet;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.EnumRarity;
|
||||
|
@ -26,9 +27,12 @@ import net.minecraftforge.fml.relauncher.Side;
|
|||
import net.minecraftforge.fml.relauncher.SideOnly;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
public class ItemInfraredGoggles extends ItemArmorAA{
|
||||
|
||||
private final Set<Entity> cachedGlowingEntities = new ConcurrentSet<Entity>();
|
||||
|
||||
public ItemInfraredGoggles(String name){
|
||||
super(name, InitArmorMaterials.armorMaterialGoggles, 0, StackUtil.getNull());
|
||||
this.setMaxDamage(0);
|
||||
|
@ -41,21 +45,34 @@ public class ItemInfraredGoggles extends ItemArmorAA{
|
|||
public void onClientTick(ClientTickEvent event){
|
||||
EntityPlayer player = ActuallyAdditions.proxy.getCurrentPlayer();
|
||||
if(player != null && isWearing(player)){
|
||||
double innerRange = 8;
|
||||
double remRange = innerRange+2;
|
||||
|
||||
AxisAlignedBB aabb = new AxisAlignedBB(player.posX-remRange, player.posY-remRange, player.posZ-remRange, player.posX+remRange, player.posY+remRange, player.posZ+remRange);
|
||||
double range = 8;
|
||||
AxisAlignedBB aabb = new AxisAlignedBB(player.posX-range, player.posY-range, player.posZ-range, player.posX+range, player.posY+range, player.posZ+range);
|
||||
List<Entity> entities = player.world.getEntitiesWithinAABB(Entity.class, aabb);
|
||||
if(entities != null && !entities.isEmpty()){
|
||||
this.cachedGlowingEntities.addAll(entities);
|
||||
}
|
||||
|
||||
for(Entity entity : entities){
|
||||
if(entity != player){
|
||||
if(entity.getDistanceSq(player.posX, player.posY, player.posZ) <= innerRange*innerRange){
|
||||
entity.setGlowing(true);
|
||||
if(!this.cachedGlowingEntities.isEmpty()){
|
||||
for(Entity entity : this.cachedGlowingEntities){
|
||||
if(entity.getDistanceSq(player.posX, player.posY, player.posZ) > range*range){
|
||||
entity.setGlowing(false);
|
||||
|
||||
this.cachedGlowingEntities.remove(entity);
|
||||
}
|
||||
else{
|
||||
entity.setGlowing(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else{
|
||||
if(!this.cachedGlowingEntities.isEmpty()){
|
||||
for(Entity entity : this.cachedGlowingEntities){
|
||||
if(!entity.isDead){
|
||||
entity.setGlowing(false);
|
||||
}
|
||||
}
|
||||
this.cachedGlowingEntities.clear();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue