Added PlayerDectector closes #286

This commit is contained in:
modmuss50 2015-11-22 11:16:54 +00:00
parent 05e7ecf2f3
commit d545521d04
4 changed files with 168 additions and 2 deletions

View file

@ -7,12 +7,18 @@ import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.ChatComponentText;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.util.IIcon;
import net.minecraft.util.MathHelper;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
import techreborn.client.TechRebornCreativeTab;
import techreborn.tiles.TilePlayerDectector;
import java.util.List;
import java.util.Random;
@ -70,4 +76,70 @@ public class BlockPlayerDetector extends BlockMachineBase {
public void onBlockAdded(World world, int x, int y, int z) {
}
@Override
public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) {
return new TilePlayerDectector();
}
@Override
public boolean canConnectRedstone(IBlockAccess world, int x, int y, int z, int side) {
return true;
}
@Override
public boolean canProvidePower() {
return true;
}
@Override
public int isProvidingStrongPower(IBlockAccess blockAccess, int x, int y, int z, int side) {
TileEntity entity = blockAccess.getTileEntity(x, y, z);
if (entity instanceof TilePlayerDectector) {
return ((TilePlayerDectector) entity).isProvidingPower() ? 15 : 0;
}
return 0;
}
@Override
public int isProvidingWeakPower(IBlockAccess blockAccess, int x, int y, int z, int side) {
TileEntity entity = blockAccess.getTileEntity(x, y, z);
if (entity instanceof TilePlayerDectector) {
return ((TilePlayerDectector) entity).isProvidingPower() ? 15 : 0;
}
return 0;
}
@Override
public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemstack) {
super.onBlockPlacedBy(world, x, y, z, player, itemstack);
TileEntity tile = world.getTileEntity(x, y, z);
if (tile instanceof TilePlayerDectector) {
((TilePlayerDectector) tile).owenerUdid = player.getUniqueID().toString();
}
}
@Override
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer entityplayer, int side, float hitX, float hitY, float hitZ) {
if (super.onBlockActivated(world, x, y, z, entityplayer, side, hitX, hitY, hitZ)) {
return true;
}
int newMeta = (world.getBlockMetadata(x, y, z) + 1) % 3;
String message = "";
switch (newMeta) {
case 0:
message = EnumChatFormatting.GREEN + "Detects all Players";
break;
case 1:
message = EnumChatFormatting.RED + "Detects only other Players";
break;
case 2:
message = EnumChatFormatting.BLUE + "Detects only you";
}
if(!world.isRemote){
entityplayer.addChatComponentMessage(new ChatComponentText(message));
world.setBlockMetadataWithNotify(x, y, z, newMeta, 2);
}
return true;
}
}