package pcc.chemicraft.util;
-import java.awt.Toolkit;
import java.util.ArrayList;
-import pcc.chemicraft.ChemiCraft;
-import pcc.chemicraft.debug.DebugData;
-import pcc.chemicraft.debug.DebugTick;
-
-import sinVisualizer.SinVisualizerPanel;
-import sinVisualizer.Values;
-
import net.minecraft.block.Block;
import net.minecraft.entity.Entity;
-import net.minecraft.entity.EntityLiving;
-import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
-import net.minecraft.pathfinding.PathEntity;
-import net.minecraft.util.DamageSource;
-import net.minecraft.util.MathHelper;
import net.minecraft.world.World;
import cpw.mods.fml.common.registry.LanguageRegistry;
public static class ArrayAuxiliary{
- public ItemStack[] deleteNull(ItemStack[] array){
+ public static ItemStack[] deleteNull(ItemStack[] array){
int count = 0;
ItemStack[] arrayCopy;
for(int i = 0;i < array.length;i++){
public static class MathAuxiliary {
- public static ArrayList<Entity> getTriangleEntitys(World par1World,
+ public static ArrayList<Entity> getTriangleEntitysByPlayer(World par1World,
double par2, double par3, double par4,
double yaw,
double pitch,
ArrayList<Entity> entitys = (ArrayList<Entity>) par1World.loadedEntityList;
ArrayList<Entity> result = new ArrayList<Entity>();
for (int i = 0; i < entitys.size(); i++) {
+ String a = "";
Entity entity = entitys.get(i);
double x = entity.posX;
double y = entity.posY;
return result;
}
+ public static ArrayList<Entity> getTriangleEntitys(World par1World,
+ double par2, double par3, double par4,
+ double yaw,
+ double pitch,
+ double angle,
+ double rad) {
+
+ ArrayList<Entity> entitys = (ArrayList<Entity>) par1World.loadedEntityList;
+ ArrayList<Entity> result = new ArrayList<Entity>();
+ for (int i = 0; i < entitys.size(); i++) {
+ String a = "";
+ Entity entity = entitys.get(i);
+ double x = entity.posX;
+ double y = entity.posY;
+ double z = entity.posZ;
+ double bx = par2;
+ double by = par3;
+ double bz = par4;
+ double playerToEntityAngleXZ = Math.sin(Math.atan2(bx - x, bz - z)) * 180;
+ double playerToEntityAngleY = Math.toDegrees(Math.atan(y - by));
+ double length =
+ Math.sqrt(
+ Math.pow(Math.abs(bx - x), 2) +
+ Math.pow(Math.abs(by - y), 2) +
+ Math.pow(Math.abs(bz - z), 2));
+
+ if (playerToEntityAngleXZ + angle/2 > playerToEntityAngleXZ && playerToEntityAngleXZ - angle/2 < playerToEntityAngleXZ) {
+ if (length < rad) {
+ result.add(entity);
+ }
+ }
+
+ }
+
+ return result;
+ }
+
}
}