package net.geforcemods.securitycraft.tileentity; import net.geforcemods.securitycraft.api.CustomizableSCTE; import net.geforcemods.securitycraft.api.Option; import net.geforcemods.securitycraft.api.Option.OptionBoolean; import net.geforcemods.securitycraft.main.mod_SecurityCraft; import net.geforcemods.securitycraft.misc.EnumCustomModules; import net.geforcemods.securitycraft.util.BlockUtils; import net.geforcemods.securitycraft.util.PlayerUtils; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.StatCollector; public class TileEntityRetinalScanner extends CustomizableSCTE { private OptionBoolean activatedByEntities = new OptionBoolean("activatedByEntities", false); public void entityViewed(EntityLivingBase entity) { if(!worldObj.isRemote && !BlockUtils.isMetadataBetween(worldObj, xCoord, yCoord, zCoord, 7, 10)){ if(!(entity instanceof EntityPlayer) && !activatedByEntities.asBoolean()) return; if(entity instanceof EntityPlayer && PlayerUtils.isPlayerMountedOnCamera(entity)) return; if(entity instanceof EntityPlayer && !getOwner().isOwner((EntityPlayer) entity)) { PlayerUtils.sendMessageToPlayer((EntityPlayer) entity, StatCollector.translateToLocal("tile.retinalScanner.name"), StatCollector.translateToLocal("messages.retinalScanner.notOwner").replace("#", getOwner().getName()), EnumChatFormatting.RED); return; } worldObj.setBlockMetadataWithNotify(xCoord, yCoord, zCoord, worldObj.getBlockMetadata(xCoord, yCoord, zCoord) + 5, 3); worldObj.scheduleBlockUpdate(xCoord, yCoord, zCoord, mod_SecurityCraft.retinalScanner, 60); if(entity instanceof EntityPlayer){ PlayerUtils.sendMessageToPlayer((EntityPlayer) entity, StatCollector.translateToLocal("tile.retinalScanner.name"), StatCollector.translateToLocal("messages.retinalScanner.hello").replace("#", entity.getCommandSenderName()), EnumChatFormatting.GREEN); } } } public int getViewCooldown() { return 30; } public boolean activatedOnlyByPlayer() { return !activatedByEntities.asBoolean(); } public EnumCustomModules[] acceptedModules() { return new EnumCustomModules[]{EnumCustomModules.WHITELIST}; } public Option<?>[] customOptions() { return new Option[]{ activatedByEntities }; } }