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.blocks.BlockRetinalScanner; 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.math.BlockPos; import net.minecraft.util.text.TextFormatting; import net.minecraft.util.text.translation.I18n; public class TileEntityRetinalScanner extends CustomizableSCTE { private OptionBoolean activatedByEntities = new OptionBoolean("activatedByEntities", false); @Override public void entityViewed(EntityLivingBase entity){ if(!worldObj.isRemote && !BlockUtils.getBlockPropertyAsBoolean(worldObj, pos, BlockRetinalScanner.POWERED)){ 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, I18n.translateToLocal("tile.retinalScanner.name"), I18n.translateToLocal("messages.retinalScanner.notOwner").replace("#", getOwner().getName()), TextFormatting.RED); return; } BlockUtils.setBlockProperty(worldObj, pos, BlockRetinalScanner.POWERED, true); worldObj.scheduleUpdate(new BlockPos(pos), mod_SecurityCraft.retinalScanner, 60); if(entity instanceof EntityPlayer){ PlayerUtils.sendMessageToPlayer((EntityPlayer) entity, I18n.translateToLocal("tile.retinalScanner.name"), I18n.translateToLocal("messages.retinalScanner.hello").replace("#", entity.getName()), TextFormatting.GREEN); } } } @Override public int getViewCooldown() { return 30; } @Override public boolean activatedOnlyByPlayer() { return !activatedByEntities.asBoolean(); } @Override public EnumCustomModules[] acceptedModules() { return new EnumCustomModules[]{EnumCustomModules.WHITELIST}; } @Override public Option<?>[] customOptions() { return new Option[]{ activatedByEntities }; } }