summaryrefslogtreecommitdiffstats
path: root/src/main/java/net/minecraft/server/Village.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/net/minecraft/server/Village.java')
-rw-r--r--src/main/java/net/minecraft/server/Village.java446
1 files changed, 0 insertions, 446 deletions
diff --git a/src/main/java/net/minecraft/server/Village.java b/src/main/java/net/minecraft/server/Village.java
deleted file mode 100644
index 89f1b74e..00000000
--- a/src/main/java/net/minecraft/server/Village.java
+++ /dev/null
@@ -1,446 +0,0 @@
-package net.minecraft.server;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import java.util.TreeMap;
-
-public class Village {
-
- private World world;
- private final List doors = new ArrayList();
- private final ChunkCoordinates c = new ChunkCoordinates(0, 0, 0);
- private final ChunkCoordinates center = new ChunkCoordinates(0, 0, 0);
- private int size;
- private int f;
- private int time;
- private int population;
- private int noBreedTicks;
- private TreeMap playerStandings = new TreeMap();
- private List aggressors = new ArrayList();
- private int ironGolemCount;
-
- public Village() {}
-
- public Village(World world) {
- this.world = world;
- }
-
- public void a(World world) {
- this.world = world;
- }
-
- public void tick(int i) {
- this.time = i;
- this.m();
- this.l();
- if (i % 20 == 0) {
- this.k();
- }
-
- if (i % 30 == 0) {
- this.countPopulation();
- }
-
- int j = this.population / 10;
-
- if (this.ironGolemCount < j && this.doors.size() > 20 && this.world.random.nextInt(7000) == 0) {
- Vec3D vec3d = this.a(MathHelper.d((float) this.center.x), MathHelper.d((float) this.center.y), MathHelper.d((float) this.center.z), 2, 4, 2);
-
- if (vec3d != null) {
- EntityIronGolem entityirongolem = new EntityIronGolem(this.world);
-
- entityirongolem.setPosition(vec3d.a, vec3d.b, vec3d.c);
- this.world.addEntity(entityirongolem, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.VILLAGE_DEFENSE); // CraftBukkit
- ++this.ironGolemCount;
- }
- }
- }
-
- private Vec3D a(int i, int j, int k, int l, int i1, int j1) {
- for (int k1 = 0; k1 < 10; ++k1) {
- int l1 = i + this.world.random.nextInt(16) - 8;
- int i2 = j + this.world.random.nextInt(6) - 3;
- int j2 = k + this.world.random.nextInt(16) - 8;
-
- if (this.a(l1, i2, j2) && this.b(l1, i2, j2, l, i1, j1)) {
- return Vec3D.a((double) l1, (double) i2, (double) j2);
- }
- }
-
- return null;
- }
-
- private boolean b(int i, int j, int k, int l, int i1, int j1) {
- if (!World.a((IBlockAccess) this.world, i, j - 1, k)) {
- return false;
- } else {
- int k1 = i - l / 2;
- int l1 = k - j1 / 2;
-
- for (int i2 = k1; i2 < k1 + l; ++i2) {
- for (int j2 = j; j2 < j + i1; ++j2) {
- for (int k2 = l1; k2 < l1 + j1; ++k2) {
- if (this.world.getType(i2, j2, k2).r()) {
- return false;
- }
- }
- }
- }
-
- return true;
- }
- }
-
- private void countPopulation() {
- List list = this.world.a(EntityIronGolem.class, AxisAlignedBB.a((double) (this.center.x - this.size), (double) (this.center.y - 4), (double) (this.center.z - this.size), (double) (this.center.x + this.size), (double) (this.center.y + 4), (double) (this.center.z + this.size)));
-
- this.ironGolemCount = list.size();
- }
-
- private void k() {
- List list = this.world.a(EntityVillager.class, AxisAlignedBB.a((double) (this.center.x - this.size), (double) (this.center.y - 4), (double) (this.center.z - this.size), (double) (this.center.x + this.size), (double) (this.center.y + 4), (double) (this.center.z + this.size)));
-
- this.population = list.size();
- if (this.population == 0) {
- this.playerStandings.clear();
- }
- }
-
- public ChunkCoordinates getCenter() {
- return this.center;
- }
-
- public int getSize() {
- return this.size;
- }
-
- public int getDoorCount() {
- return this.doors.size();
- }
-
- public int d() {
- return this.time - this.f;
- }
-
- public int getPopulationCount() {
- return this.population;
- }
-
- public boolean a(int i, int j, int k) {
- return this.center.e(i, j, k) < (float) (this.size * this.size);
- }
-
- public List getDoors() {
- return this.doors;
- }
-
- public VillageDoor b(int i, int j, int k) {
- VillageDoor villagedoor = null;
- int l = Integer.MAX_VALUE;
- Iterator iterator = this.doors.iterator();
-
- while (iterator.hasNext()) {
- VillageDoor villagedoor1 = (VillageDoor) iterator.next();
- int i1 = villagedoor1.b(i, j, k);
-
- if (i1 < l) {
- villagedoor = villagedoor1;
- l = i1;
- }
- }
-
- return villagedoor;
- }
-
- public VillageDoor c(int i, int j, int k) {
- VillageDoor villagedoor = null;
- int l = Integer.MAX_VALUE;
- Iterator iterator = this.doors.iterator();
-
- while (iterator.hasNext()) {
- VillageDoor villagedoor1 = (VillageDoor) iterator.next();
- int i1 = villagedoor1.b(i, j, k);
-
- if (i1 > 256) {
- i1 *= 1000;
- } else {
- i1 = villagedoor1.f();
- }
-
- if (i1 < l) {
- villagedoor = villagedoor1;
- l = i1;
- }
- }
-
- return villagedoor;
- }
-
- public VillageDoor e(int i, int j, int k) {
- if (this.center.e(i, j, k) > (float) (this.size * this.size)) {
- return null;
- } else {
- Iterator iterator = this.doors.iterator();
-
- VillageDoor villagedoor;
-
- do {
- if (!iterator.hasNext()) {
- return null;
- }
-
- villagedoor = (VillageDoor) iterator.next();
- } while (villagedoor.locX != i || villagedoor.locZ != k || Math.abs(villagedoor.locY - j) > 1);
-
- return villagedoor;
- }
- }
-
- public void addDoor(VillageDoor villagedoor) {
- this.doors.add(villagedoor);
- this.c.x += villagedoor.locX;
- this.c.y += villagedoor.locY;
- this.c.z += villagedoor.locZ;
- this.n();
- this.f = villagedoor.addedTime;
- }
-
- public boolean isAbandoned() {
- return this.doors.isEmpty();
- }
-
- public void a(EntityLiving entityliving) {
- Iterator iterator = this.aggressors.iterator();
-
- VillageAggressor villageaggressor;
-
- do {
- if (!iterator.hasNext()) {
- this.aggressors.add(new VillageAggressor(this, entityliving, this.time));
- return;
- }
-
- villageaggressor = (VillageAggressor) iterator.next();
- } while (villageaggressor.a != entityliving);
-
- villageaggressor.b = this.time;
- }
-
- public EntityLiving b(EntityLiving entityliving) {
- double d0 = Double.MAX_VALUE;
- VillageAggressor villageaggressor = null;
-
- for (int i = 0; i < this.aggressors.size(); ++i) {
- VillageAggressor villageaggressor1 = (VillageAggressor) this.aggressors.get(i);
- double d1 = villageaggressor1.a.f(entityliving);
-
- if (d1 <= d0) {
- villageaggressor = villageaggressor1;
- d0 = d1;
- }
- }
-
- return villageaggressor != null ? villageaggressor.a : null;
- }
-
- public EntityHuman c(EntityLiving entityliving) {
- double d0 = Double.MAX_VALUE;
- EntityHuman entityhuman = null;
- Iterator iterator = this.playerStandings.keySet().iterator();
-
- while (iterator.hasNext()) {
- String s = (String) iterator.next();
-
- if (this.d(s)) {
- EntityHuman entityhuman1 = this.world.a(s);
-
- if (entityhuman1 != null) {
- double d1 = entityhuman1.f(entityliving);
-
- if (d1 <= d0) {
- entityhuman = entityhuman1;
- d0 = d1;
- }
- }
- }
- }
-
- return entityhuman;
- }
-
- private void l() {
- Iterator iterator = this.aggressors.iterator();
-
- while (iterator.hasNext()) {
- VillageAggressor villageaggressor = (VillageAggressor) iterator.next();
-
- if (!villageaggressor.a.isAlive() || Math.abs(this.time - villageaggressor.b) > 300) {
- iterator.remove();
- }
- }
- }
-
- private void m() {
- boolean flag = false;
- boolean flag1 = this.world.random.nextInt(50) == 0;
- Iterator iterator = this.doors.iterator();
-
- while (iterator.hasNext()) {
- VillageDoor villagedoor = (VillageDoor) iterator.next();
-
- if (flag1) {
- villagedoor.d();
- }
-
- if (!this.isDoor(villagedoor.locX, villagedoor.locY, villagedoor.locZ) || Math.abs(this.time - villagedoor.addedTime) > 1200) {
- this.c.x -= villagedoor.locX;
- this.c.y -= villagedoor.locY;
- this.c.z -= villagedoor.locZ;
- flag = true;
- villagedoor.removed = true;
- iterator.remove();
- }
- }
-
- if (flag) {
- this.n();
- }
- }
-
- private boolean isDoor(int i, int j, int k) {
- return this.world.getType(i, j, k) == Blocks.WOODEN_DOOR;
- }
-
- private void n() {
- int i = this.doors.size();
-
- if (i == 0) {
- this.center.b(0, 0, 0);
- this.size = 0;
- } else {
- this.center.b(this.c.x / i, this.c.y / i, this.c.z / i);
- int j = 0;
-
- VillageDoor villagedoor;
-
- for (Iterator iterator = this.doors.iterator(); iterator.hasNext(); j = Math.max(villagedoor.b(this.center.x, this.center.y, this.center.z), j)) {
- villagedoor = (VillageDoor) iterator.next();
- }
-
- this.size = Math.max(32, (int) Math.sqrt((double) j) + 1);
- }
- }
-
- public int a(String s) {
- Integer integer = (Integer) this.playerStandings.get(s);
-
- return integer != null ? integer.intValue() : 0;
- }
-
- public int a(String s, int i) {
- int j = this.a(s);
- int k = MathHelper.a(j + i, -30, 10);
-
- this.playerStandings.put(s, Integer.valueOf(k));
- return k;
- }
-
- public boolean d(String s) {
- return this.a(s) <= -15;
- }
-
- public void a(NBTTagCompound nbttagcompound) {
- this.population = nbttagcompound.getInt("PopSize");
- this.size = nbttagcompound.getInt("Radius");
- this.ironGolemCount = nbttagcompound.getInt("Golems");
- this.f = nbttagcompound.getInt("Stable");
- this.time = nbttagcompound.getInt("Tick");
- this.noBreedTicks = nbttagcompound.getInt("MTick");
- this.center.x = nbttagcompound.getInt("CX");
- this.center.y = nbttagcompound.getInt("CY");
- this.center.z = nbttagcompound.getInt("CZ");
- this.c.x = nbttagcompound.getInt("ACX");
- this.c.y = nbttagcompound.getInt("ACY");
- this.c.z = nbttagcompound.getInt("ACZ");
- NBTTagList nbttaglist = nbttagcompound.getList("Doors", 10);
-
- for (int i = 0; i < nbttaglist.size(); ++i) {
- NBTTagCompound nbttagcompound1 = nbttaglist.get(i);
- VillageDoor villagedoor = new VillageDoor(nbttagcompound1.getInt("X"), nbttagcompound1.getInt("Y"), nbttagcompound1.getInt("Z"), nbttagcompound1.getInt("IDX"), nbttagcompound1.getInt("IDZ"), nbttagcompound1.getInt("TS"));
-
- this.doors.add(villagedoor);
- }
-
- NBTTagList nbttaglist1 = nbttagcompound.getList("Players", 10);
-
- for (int j = 0; j < nbttaglist1.size(); ++j) {
- NBTTagCompound nbttagcompound2 = nbttaglist1.get(j);
-
- this.playerStandings.put(nbttagcompound2.getString("Name"), Integer.valueOf(nbttagcompound2.getInt("S")));
- }
- }
-
- public void b(NBTTagCompound nbttagcompound) {
- nbttagcompound.setInt("PopSize", this.population);
- nbttagcompound.setInt("Radius", this.size);
- nbttagcompound.setInt("Golems", this.ironGolemCount);
- nbttagcompound.setInt("Stable", this.f);
- nbttagcompound.setInt("Tick", this.time);
- nbttagcompound.setInt("MTick", this.noBreedTicks);
- nbttagcompound.setInt("CX", this.center.x);
- nbttagcompound.setInt("CY", this.center.y);
- nbttagcompound.setInt("CZ", this.center.z);
- nbttagcompound.setInt("ACX", this.c.x);
- nbttagcompound.setInt("ACY", this.c.y);
- nbttagcompound.setInt("ACZ", this.c.z);
- NBTTagList nbttaglist = new NBTTagList();
- Iterator iterator = this.doors.iterator();
-
- while (iterator.hasNext()) {
- VillageDoor villagedoor = (VillageDoor) iterator.next();
- NBTTagCompound nbttagcompound1 = new NBTTagCompound();
-
- nbttagcompound1.setInt("X", villagedoor.locX);
- nbttagcompound1.setInt("Y", villagedoor.locY);
- nbttagcompound1.setInt("Z", villagedoor.locZ);
- nbttagcompound1.setInt("IDX", villagedoor.d);
- nbttagcompound1.setInt("IDZ", villagedoor.e);
- nbttagcompound1.setInt("TS", villagedoor.addedTime);
- nbttaglist.add(nbttagcompound1);
- }
-
- nbttagcompound.set("Doors", nbttaglist);
- NBTTagList nbttaglist1 = new NBTTagList();
- Iterator iterator1 = this.playerStandings.keySet().iterator();
-
- while (iterator1.hasNext()) {
- String s = (String) iterator1.next();
- NBTTagCompound nbttagcompound2 = new NBTTagCompound();
-
- nbttagcompound2.setString("Name", s);
- nbttagcompound2.setInt("S", ((Integer) this.playerStandings.get(s)).intValue());
- nbttaglist1.add(nbttagcompound2);
- }
-
- nbttagcompound.set("Players", nbttaglist1);
- }
-
- public void h() {
- this.noBreedTicks = this.time;
- }
-
- public boolean i() {
- return this.noBreedTicks == 0 || this.time - this.noBreedTicks >= 3600;
- }
-
- public void b(int i) {
- Iterator iterator = this.playerStandings.keySet().iterator();
-
- while (iterator.hasNext()) {
- String s = (String) iterator.next();
-
- this.a(s, i);
- }
- }
-}