Implementation of Gradle build framework (#369)

* Cleanup

* Add build file

* The great migration

* Restore MINA to 1.1.7

* Removed .gradle

* Added flatdir for libs with no artifact repository

* Add README.md, rename Implementation-Title
This commit is contained in:
Damion
2020-02-04 09:13:57 +11:00
committed by GitHub
parent 54f42aaf8a
commit 02b4df2666
858 changed files with 99 additions and 124579 deletions
@@ -0,0 +1,56 @@
package com.rebotted.game.globalworldobjects;
import com.rebotted.game.objects.Object;
import com.rebotted.game.objects.ObjectDefaults;
import com.rebotted.game.players.Player;
import com.rebotted.world.clip.ObjectDef;
import com.rebotted.world.clip.Region;
public class ClimbOther {
public enum ClimbData {
VARROCK_MANHOLE(881, 882),
LUMBRIDGE_TRAPDOOR(14879, 10698),
VARROCK_TRAPDOOR(1568, 10698);
private int closedId, openId;
private ClimbData(int closedId, int openId) {
this.closedId = closedId;
this.openId = openId;
}
public int getClosed() {
return closedId;
}
public int getOpen() {
return openId;
}
}
public static void handleOpenOther(Player player, int objectType) {
for (ClimbData t: ClimbData.values()) {
if (objectType == t.getClosed()) {
new Object(t.getOpen(), player.objectX, player.objectY, player.heightLevel, ObjectDefaults.getObjectFace(player, t.getClosed()), 10, t.getClosed(), 100);
Region.addObject(t.getOpen(), player.objectX, player.objectY, player.heightLevel, 10, ObjectDefaults.getObjectFace(player, t.getClosed()), false);
}
}
}
public static void useOther(Player player, int objectType) {
final String objectName = ObjectDef.getObjectDef(objectType).name;
if (System.currentTimeMillis() - player.climbDelay < 1800) {
return;
}
player.stopMovement();
player.startAnimation(827);
player.getPacketSender().closeAllWindows();
player.teleportToX = player.absX;
player.teleportToY = player.absY + 6400;
player.getPacketSender().sendMessage("You climb down the " + objectName.toLowerCase() + ".");
player.climbDelay = System.currentTimeMillis();
}
}
@@ -0,0 +1,279 @@
package com.rebotted.game.globalworldobjects;
import java.util.ArrayList;
import java.util.List;
import java.io.*;
import java.util.Scanner;
import com.rebotted.GameEngine;
import com.rebotted.game.objects.Objects;
import com.rebotted.game.players.Player;
public class Doors {
private static Doors singleton = null;
private List<Doors> doors = new ArrayList<Doors>();
private File doorFile;
public static Doors getSingleton() {
if (singleton == null) {
singleton = new Doors(System.getProperty("user.dir") + "/data/doors.txt");
}
return singleton;
}
private Doors(String file){
doorFile = new File(file);
}
private Doors(int door, int x, int y, int z, int face, int type, int open) {
this.doorId = door;
this.originalId = door;
this.doorX = x;
this.doorY = y;
this.originalX = x;
this.originalY = y;
this.doorZ = z;
this.originalFace = face;
this.currentFace = face;
this.type = type;
this.open = open;
}
private Doors getDoor(int id, int x, int y, int z) {
for (Doors d : doors) {
if (d.doorId == id) {
if (d.doorX == x && d.doorY == y && d.doorZ == z) {
return d;
}
}
}
return null;
}
public boolean handleDoor(Player player, int id, int x, int y, int z) {
Doors d = getDoor(id, x, y, z);
if (d == null) {
//System.out.println("D: " + id + " null debug x: " + x + " y: " + y + ".");
return DoubleDoors.getSingleton().handleDoor(player, id, x, y, z);
}
//todo: improvment: if player manage to get to door then open the door.
if(player.distanceToPoint(x, y) > 1) {
//System.out.println("Door (single): " + id + " not in distance debug at x: " + x + " y: " + y + ".");
return false;
}
//Remove clipping for old door (gets added back in placeObject)
//Region.removeClipping(x, y, z);
int xAdjustment = 0, yAdjustment = 0;
if (d.type == 0) {
if (d.open == 0) {
if (d.originalFace == 0 && d.currentFace == 0) {
xAdjustment = -1;
} else if (d.originalFace == 1 && d.currentFace == 1) {
yAdjustment = 1;
} else if (d.originalFace == 2 && d.currentFace == 2) {
xAdjustment = 1;
} else if (d.originalFace == 3 && d.currentFace == 3) {
yAdjustment = -1;
}
} else if (d.open == 1) {
if (d.originalFace == 0 && d.currentFace == 0) {
yAdjustment = 1;
} else if (d.originalFace == 1 && d.currentFace == 1) {
xAdjustment = 1;
} else if (d.originalFace == 2 && d.currentFace == 2) {
yAdjustment = -1;
} else if (d.originalFace == 3 && d.currentFace == 3) {
xAdjustment = -1;
}
}
} else if (d.type == 9) {
if (d.open == 0) {
if (d.originalFace == 0 && d.currentFace == 0) {
xAdjustment = 1;
} else if (d.originalFace == 1 && d.currentFace == 1) {
xAdjustment = 1;
} else if (d.originalFace == 2 && d.currentFace == 2) {
xAdjustment = -1;
} else if (d.originalFace == 3 && d.currentFace == 3) {
xAdjustment = -1;
}
} else if (d.open == 1) {
if (d.originalFace == 0 && d.currentFace == 0) {
xAdjustment = 1;
} else if (d.originalFace == 1 && d.currentFace == 1) {
xAdjustment = 1;
} else if (d.originalFace == 2 && d.currentFace == 2) {
xAdjustment = -1;
} else if (d.originalFace == 3 && d.currentFace == 3) {
xAdjustment = -1;
}
}
}
if (xAdjustment != 0 || yAdjustment != 0) {
Objects o = new Objects(-1, d.doorX, d.doorY, d.doorZ, 0, d.type, 0);
GameEngine.objectHandler.placeObject(o);
}
if (d.doorX == d.originalX && d.doorY == d.originalY) {
d.doorX += xAdjustment;
d.doorY += yAdjustment;
} else {
Objects o = new Objects(-1, d.doorX, d.doorY, d.doorZ, 0, d.type, 0);
GameEngine.objectHandler.placeObject(o);
d.doorX = d.originalX;
d.doorY = d.originalY;
}
if (d.doorId == d.originalId) {
if (d.open == 0) {
d.doorId += 1;
} else if (d.open == 1) {
d.doorId -= 1;
}
} else if (d.doorId != d.originalId) {
if (d.open == 0) {
d.doorId -= 1;
} else if (d.open == 1) {
d.doorId += 1;
}
}
GameEngine.objectHandler.placeObject(new Objects(d.doorId, d.doorX, d.doorY, d.doorZ, getNextFace(d), d.type, 0));
return true;
}
private int getNextFace(Doors d) {
int f = d.originalFace;
if (d.type == 0) {
if (d.open == 0) {
if (d.originalFace == 0 && d.currentFace == 0) {
f = 1;
} else if (d.originalFace == 1 && d.currentFace == 1) {
f = 2;
} else if (d.originalFace == 2 && d.currentFace == 2) {
f = 3;
} else if (d.originalFace == 3 && d.currentFace == 3) {
f = 0;
} else if (d.originalFace != d.currentFace){
f = d.originalFace;
}
} else if (d.open == 1) {
if (d.originalFace == 0 && d.currentFace == 0) {
f = 3;
} else if (d.originalFace == 1 && d.currentFace == 1) {
f = 0;
} else if (d.originalFace == 2 && d.currentFace == 2) {
f = 1;
} else if (d.originalFace == 3 && d.currentFace == 3) {
f = 2;
} else if (d.originalFace != d.currentFace){
f = d.originalFace;
}
}
} else if (d.type == 9) {
if (d.open == 0) {
if (d.originalFace == 0 && d.currentFace == 0) {
f = 3;
} else if (d.originalFace == 1 && d.currentFace == 1) {
f = 2;
} else if (d.originalFace == 2 && d.currentFace == 2) {
f = 1;
} else if (d.originalFace == 3 && d.currentFace == 3) {
f = 0;
} else if (d.originalFace != d.currentFace){
f = d.originalFace;
}
} else if (d.open == 1) {
if (d.originalFace == 0 && d.currentFace == 0) {
f = 3;
} else if (d.originalFace == 1 && d.currentFace == 1) {
f = 0;
} else if (d.originalFace == 2 && d.currentFace == 2) {
f = 1;
} else if (d.originalFace == 3 && d.currentFace == 3) {
f = 2;
} else if (d.originalFace != d.currentFace){
f = d.originalFace;
}
}
}
d.currentFace = f;
return f;
}
public void load() {
//long start = System.currentTimeMillis();
try {
singleton.processLineByLine();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
//System.out.println("Loaded "+ doors.size() +" doors in "+ (System.currentTimeMillis() - start) +"ms.");
}
private final void processLineByLine() throws FileNotFoundException {
Scanner scanner = new Scanner(new FileReader(doorFile));
try {
while(scanner.hasNextLine()) {
processLine(scanner.nextLine());
}
} finally {
scanner.close();
}
}
protected void processLine(String line){
Scanner scanner = new Scanner(line);
scanner.useDelimiter(" ");
try {
while(scanner.hasNextLine()) {
int id = Integer.parseInt(scanner.next());
int x = Integer.parseInt(scanner.next());
int y = Integer.parseInt(scanner.next());
int f = Integer.parseInt(scanner.next());
int z = Integer.parseInt(scanner.next());
int t = Integer.parseInt(scanner.next());
doors.add(new Doors(id,x,y,z,f,t,alreadyOpen(id)?1:0));
}
} finally {
scanner.close();
}
}
private boolean alreadyOpen(int id) {
for (int i = 0; i < openDoors.length; i++) {
if (openDoors[i] == id) {
return true;
}
}
return false;
}
private int doorId;
private int originalId;
private int doorX;
private int doorY;
private int originalX;
private int originalY;
private int doorZ;
private int originalFace;
private int currentFace;
private int type;
private int open;
private static int[] openDoors = {
1504, 1514, 1517, 1520, 1531,
1534, 2033, 2035, 2037, 2998,
3271, 4468, 4697, 6101,6103,
6105, 6107, 6109, 6111, 6113,
6115, 6976, 6978, 8696, 8819,
10261, 10263,10265,11708,11710,
11712,11715,11994,12445, 13002,
};
}
@@ -0,0 +1,393 @@
package com.rebotted.game.globalworldobjects;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
import com.rebotted.GameEngine;
import com.rebotted.game.objects.Objects;
import com.rebotted.game.players.Player;
/**
*
* @author Killamess
*
*/
public class DoubleDoors {
private static DoubleDoors singleton = null;
private List<DoubleDoors> doors = new ArrayList<DoubleDoors>();
private File doorFile;
public static DoubleDoors getSingleton() {
if (singleton == null) {
singleton = new DoubleDoors("./data/doubledoors.txt");
}
return singleton;
}
private DoubleDoors(String file){
doorFile = new File(file);
}
private DoubleDoors getDoor(int id, int x, int y, int z) {
for (DoubleDoors d : doors) {
if (d.doorId == id) {
if (d.x == x && d.y == y && d.z == z) {
return d;
}
}
}
return null;
}
public boolean handleDoor(Player player, int id, int x, int y, int z) {
DoubleDoors doorClicked = getDoor(id, x, y, z);
if (doorClicked == null) {
//System.out.println("Door: " + id + " null debug at x: " + x + " y: " + y + ".");
//GameEngine.objectHandler.placeObject(new Objects(-1, x, y, z, 0, 0, 0));
return true;
}
if (doorClicked.doorId > 15000) {
// System.out.println("Door: " + id + " clicking debug x: " + x + " y: " + y + ".");
return true; //nearly all of these are not opened
}
//Region.removeClipping(x, y, z);
if (doorClicked.open == 0) {
if (doorClicked.originalFace == 0) {
DoubleDoors lowerDoor = getDoor(id - 3, x, y -1, z);
DoubleDoors upperDoor = getDoor(id + 3, x, y +1, z);
if (lowerDoor != null) {
changeLeftDoor(lowerDoor);
changeRightDoor(doorClicked);
} else if (upperDoor != null) {
changeLeftDoor(doorClicked);
changeRightDoor(upperDoor);
}
} else if (doorClicked.originalFace == 1) {
DoubleDoors westDoor = getDoor(id - 3, x -1, y, z);
DoubleDoors eastDoor = getDoor(id + 3, x +1, y, z);
if (westDoor != null) {
changeLeftDoor(westDoor);
changeRightDoor(doorClicked);
} else if (eastDoor != null) {
changeLeftDoor(doorClicked);
changeRightDoor(eastDoor);
}
} else if (doorClicked.originalFace == 2) {
DoubleDoors lowerDoor = getDoor(id - 3, x, y +1, z);
DoubleDoors upperDoor = getDoor(id + 3, x, y -1, z);
if (lowerDoor != null) {
changeLeftDoor(lowerDoor);
changeRightDoor(doorClicked);
} else if (upperDoor != null) {
changeLeftDoor(doorClicked);
changeRightDoor(upperDoor);
}
} else if (doorClicked.originalFace == 3) {
DoubleDoors westDoor = getDoor(id + 3, x -1, y, z);
DoubleDoors eastDoor = getDoor(id - 3, x +1, y, z);
if (westDoor != null) {
changeLeftDoor(westDoor);
changeRightDoor(doorClicked);
} else if (eastDoor != null) {
changeLeftDoor(doorClicked);
changeRightDoor(eastDoor);
}
}
} else if (doorClicked.open == 1) {
if (doorClicked.originalFace == 0) {
DoubleDoors westDoor = getDoor(id - 3, x -1, y, z);
DoubleDoors upperDoor = getDoor(id + 3, x +1, y, z);
if (westDoor != null) {
changeLeftDoor(westDoor);
changeRightDoor(doorClicked);
} else if (upperDoor != null) {
changeLeftDoor(doorClicked);
changeRightDoor(upperDoor);
}
} else if (doorClicked.originalFace == 1) {
DoubleDoors northDoor = getDoor(id - 3, x, y + 1, z);
DoubleDoors southDoor = getDoor(id + 3, x, y -1, z);
if (northDoor != null) {
changeLeftDoor(northDoor);
changeRightDoor(doorClicked);
} else if (southDoor != null) {
changeLeftDoor(doorClicked);
changeRightDoor(southDoor);
}
} else if (doorClicked.originalFace == 2) {
DoubleDoors westDoor = getDoor(id - 3, x -1, y, z);
DoubleDoors eastDoor = getDoor(id + 3, x, y -1, z);
if (westDoor != null) {
changeLeftDoor(westDoor);
changeRightDoor(doorClicked);
} else if (eastDoor != null) {
changeLeftDoor(doorClicked);
changeRightDoor(eastDoor);
}
} else if (doorClicked.originalFace == 3) {
DoubleDoors northDoor = getDoor(id - 3, x, y + 1, z);
DoubleDoors southDoor = getDoor(id + 3, x, y -1, z);
if (northDoor != null) {
changeLeftDoor(northDoor);
changeRightDoor(doorClicked);
} else if (southDoor != null) {
changeLeftDoor(doorClicked);
changeRightDoor(southDoor);
}
}
}
return true;
}
public void changeLeftDoor(DoubleDoors d) {
int xAdjustment = 0, yAdjustment = 0;
if (d.open == 0) {
if (d.originalFace == 0 && d.currentFace == 0) {
xAdjustment = -1;
} else if (d.originalFace == 1 && d.currentFace == 1) {
yAdjustment = 1;
} else if (d.originalFace == 2 && d.currentFace == 2) {
xAdjustment = +1;
} else if (d.originalFace == 3 && d.currentFace == 3) {
yAdjustment = -1;
}
} else if (d.open == 1) {
if (d.originalFace == 0 && d.currentFace == 0) {
yAdjustment = -1;
} else if (d.originalFace == 1 && d.currentFace == 1) {
xAdjustment = -1;
} else if (d.originalFace == 2 && d.currentFace == 2) {
xAdjustment = -1;
} else if (d.originalFace == 3 && d.currentFace == 3) {
xAdjustment = -1;
}
}
if (xAdjustment != 0 || yAdjustment != 0) {
GameEngine.objectHandler.placeObject(new Objects(-1, d.x, d.y, d.z, 0, 0, 0));
}
if (d.x == d.originalX && d.y == d.originalY) {
d.x += xAdjustment;
d.y += yAdjustment;
} else {
GameEngine.objectHandler.placeObject(new Objects(-1, d.x, d.y, d.z, 0, 0, 0));
d.x = d.originalX;
d.y = d.originalY;
}
if (d.doorId == d.originalId) {
if (d.open == 0) {
d.doorId += 1;
} else if (d.open == 1) {
d.doorId -= 1;
}
} else if (d.doorId != d.originalId) {
if (d.open == 0) {
d.doorId = d.originalId;
} else if (d.open == 1) {
d.doorId = d.originalId;
}
}
GameEngine.objectHandler.placeObject(new Objects(d.doorId, d.x, d.y, d.z, getNextLeftFace(d), 0, 0));
}
private int getNextLeftFace(DoubleDoors d) {
int f = d.originalFace;
if (d.open == 0) {
if (d.originalFace == 0 && d.currentFace == 0) {
f = 3;
} else if (d.originalFace == 1 && d.currentFace == 1) {
f = 0;
} else if (d.originalFace == 2 && d.currentFace == 2) {
f = 1;
} else if (d.originalFace == 3 && d.currentFace == 3) {
f = 0;
} else if (d.originalFace != d.currentFace){
f = d.originalFace;
}
} else if (d.open == 1) {
if (d.originalFace == 0 && d.currentFace == 0) {
f = 1;
} else if (d.originalFace == 1 && d.currentFace == 1) {
f = 2;
} else if (d.originalFace == 2 && d.currentFace == 2) {
f = 1;
} else if (d.originalFace == 3 && d.currentFace == 3) {
f = 2;
} else if (d.originalFace != d.currentFace){
f = d.originalFace;
}
}
d.currentFace = f;
return f;
}
public void changeRightDoor(DoubleDoors d) {
int xAdjustment = 0, yAdjustment = 0;
if (d.open == 0) {
if (d.originalFace == 0 && d.currentFace == 0) {
xAdjustment = -1;
} else if (d.originalFace == 1 && d.currentFace == 1) {
yAdjustment = 1;
} else if (d.originalFace == 2 && d.currentFace == 2) {
xAdjustment = +1;
} else if (d.originalFace == 3 && d.currentFace == 3) {
yAdjustment = -1;
}
} else if (d.open == 1) {
if (d.originalFace == 0 && d.currentFace == 0) {
xAdjustment = 1;
} else if (d.originalFace == 1 && d.currentFace == 1) {
xAdjustment = -1;
} else if (d.originalFace == 2 && d.currentFace == 2) {
yAdjustment = -1;
} else if (d.originalFace == 3 && d.currentFace == 3) {
xAdjustment = -1;
}
}
if (xAdjustment != 0 || yAdjustment != 0) {
GameEngine.objectHandler.placeObject(new Objects(-1, d.x, d.y, d.z, 0, 0, 0));
}
if (d.x == d.originalX && d.y == d.originalY) {
d.x += xAdjustment;
d.y += yAdjustment;
} else {
GameEngine.objectHandler.placeObject(new Objects(-1, d.x, d.y, d.z, 0, 0, 0));
d.x = d.originalX;
d.y = d.originalY;
}
if (d.doorId == d.originalId) {
if (d.open == 0) {
d.doorId += 1;
} else if (d.open == 1) {
d.doorId -= 1;
}
} else if (d.doorId != d.originalId) {
if (d.open == 0) {
d.doorId = d.originalId;
} else if (d.open == 1) {
d.doorId = d.originalId;
}
}
GameEngine.objectHandler.placeObject(new Objects(d.doorId, d.x, d.y, d.z, getNextRightFace(d), 0, 0));
}
private int getNextRightFace(DoubleDoors d) {
int f = d.originalFace;
if (d.open == 0) {
if (d.originalFace == 0 && d.currentFace == 0) {
f = 1;
} else if (d.originalFace == 1 && d.currentFace == 1) {
f = 2;
} else if (d.originalFace == 2 && d.currentFace == 2) {
f = 3;
} else if (d.originalFace == 3 && d.currentFace == 3) {
f = 2;
} else if (d.originalFace != d.currentFace){
f = d.originalFace;
}
} else if (d.open == 1) {
if (d.originalFace == 0 && d.currentFace == 0) {
f = 3;
} else if (d.originalFace == 1 && d.currentFace == 1) {
f = 0;
} else if (d.originalFace == 2 && d.currentFace == 2) {
f = 1;
} else if (d.originalFace == 3 && d.currentFace == 3) {
f = 2;
} else if (d.originalFace != d.currentFace){
f = d.originalFace;
}
}
d.currentFace = f;
return f;
}
private int doorId;
private int originalId;
private int open;
private int x;
private int y;
private int z;
private int originalX;
private int originalY;
private int currentFace;
private int originalFace;
public DoubleDoors(int id, int x, int y, int z, int f, int open) {
this.doorId = id;
this.originalId = id;
this.open = open;
this.x = x;
this.originalX = x;
this.y = y;
this.z = z;
this.originalY = y;
this.currentFace = f;
this.originalFace = f;
}
public boolean isOpenDoor(int id){
for (int i = 0; i < openDoors.length; i++) {
if (id == openDoors[i] || id + 3 == openDoors[i]) {
return true;
}
}
return false;
}
//Have not found any others yet. Maybe only 1 type of double
//doors exist to operate.
private static int[] openDoors = {
1520, 1517
};
public void load() {
//long start = System.currentTimeMillis();
try {
singleton.processLineByLine();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
//System.out.println("Loaded "+ doors.size() +" Double doors in "+ (System.currentTimeMillis() - start) +"ms.");
}
private final void processLineByLine() throws FileNotFoundException {
Scanner scanner = new Scanner(new FileReader(doorFile));
try {
while(scanner.hasNextLine()) {
processLine(scanner.nextLine());
}
} finally {
scanner.close();
}
}
protected void processLine(String line){
Scanner scanner = new Scanner(line);
scanner.useDelimiter(" ");
try {
while(scanner.hasNextLine()) {
int id = Integer.parseInt(scanner.next());
int x = Integer.parseInt(scanner.next());
int y = Integer.parseInt(scanner.next());
int f = Integer.parseInt(scanner.next());
int z = Integer.parseInt(scanner.next());
doors.add(new DoubleDoors(id, x, y, z, f, isOpenDoor(id) ? 1 : 0));
}
} finally {
scanner.close();
}
}
}
@@ -0,0 +1,233 @@
package com.rebotted.game.globalworldobjects;
import com.rebotted.game.players.Player;
/**
* Aug 24, 2017 : 4:20:18 AM
* DoubleGates.java
* @author Andrew (Mr Extremez)
*/
public class DoubleGates extends GateHandler {
public void useDoubleGate(Player player, int objectId) {
switch (objectId) {
case 7049:
if ((player.objectX == 3052 || player.objectX == 3053) && player.objectY >= 3283 && player.objectY <= 3285) {
handleWoodenGate(player, 7049, 7050, 3052, 3284, 3052, 3285, 3052, 3283, 3053, 3283, 2);
} else if ((player.objectX == 3052 || player.objectX == 3053) && player.objectY >= 3299 && player.objectY <= 3301) {
handleWoodenGate(player, 7049, 7050, 3052, 3300, 3052, 3301, 3052, 3299, 3053, 3299, 2);
} else if (player.objectX > 3030 && player.objectX < 3033) {
handleWoodenGate(player, 7049, 7050, 3031, 3314, 3031, 3315, 3031, 3313, 3032, 3313, 2);
} else if (player.objectY > 3304 && player.objectY < 3307) {
handleWoodenGate(player, 7049, 7050, 3020, 3305, 3019, 3305, 3021, 3305, 3021, 3306, 1);
} else if (player.objectY > 3299 && player.objectY < 3302) {
handleWoodenGate(player, 7049, 7050, 3020, 3300, 3019, 3300, 3021, 3300, 3021, 3301, 1);
} else {
handleWoodenGate(player, 7049, 7050, 3077, 3259, 3077, 3260, 3077, 3258, 3078, 3258, 2);
}
break;
case 7050:
if ((player.objectX == 3052 || player.objectX == 3053) && player.objectY >= 3283 && player.objectY <= 3285) {
handleWoodenGate(player, 7050, 7049, 3052, 3285, 3052, 3284, 3053, 3283, 3052, 3283, 2);
} else if (player.objectY > 3299 && player.objectY < 3302) {
handleWoodenGate(player, 7049, 7050, 3019, 3300, 3020, 3300, 3021, 3301, 3021, 3300, 1);
} else if (player.objectY > 3304 && player.objectY < 3307) {
handleWoodenGate(player, 7050, 7049, 3019, 3305, 3020, 3305, 3021, 3306, 3021, 3305, 1);
} else if ((player.objectX == 3052 || player.objectX == 3053) && player.objectY >= 3299 && player.objectY <= 3301) {
handleWoodenGate(player, 7050, 7049, 3052, 3301, 3052, 3300, 3053, 3299, 3052, 3299, 2);
} else if (player.objectX > 3030 && player.objectX < 3033) {
handleWoodenGate(player, 7050, 7049, 3031, 3315, 3031, 3314, 3032, 3313, 3031, 3313, 2);
} else {
handleWoodenGate(player, 7049, 7050, 3077, 3259, 3077, 3260, 3077, 3258, 3078, 3258, 2);
}
break;
case 1598:
handleWoodenGate(player, 1598, 1599, 3319, 3467, 3318, 3467, 3320, 3467, 3320, 3468, 1);
break;
case 1599:
handleWoodenGate(player, 1599, 1598, 3318, 3467, 3319, 3467, 3320, 3468, 3320, 3467, 1);
break;
case 3197:
handleWoodenGate(player, 3197, 3198, 3311, 3234, 3310, 3234, 3312, 3234, 3312, 3235, 1);
break;
case 3198:
handleWoodenGate(player, 3198, 3197, 3310, 3234, 3311, 3234, 3312, 3235, 3312, 3234, 1);
break;
case 1551:
if (player.objectX > 3179 && player.objectX < 3182) {
handleWoodenGate(player, 1551, 1553, 3181, 3288, 3181, 3287, 3181, 3289, 3180, 3289, 0);
} else if (player.objectX > 2922 && player.objectX < 2925) {
handleWoodenGate(player, 1551, 1553, 2924, 3291, 2924, 3290, 2924, 3292, 2923, 3292, 0);
} else if (player.objectX > 3078 && player.objectX < 3081) {
handleWoodenGate(player, 1551, 1553, 3080, 3500, 3080, 3499, 3080, 3501, 3079, 3501, 0);
} else if (player.objectX > 3161 && player.objectX < 3164) {
handleWoodenGate(player, 1551, 1553, 3163, 3289, 3163, 3288, 3163, 3290, 3162, 3290, 0);
} else if (player.objectY > 3290 && player.objectY < 3294) {
handleWoodenGate(player, 1551, 1553, 3145, 3292, 3145, 3293, 3145, 3291, 3146, 3291, 2);
} else if (player.objectY > 3272 && player.objectY < 3275) {
handleWoodenGate(player, 1551, 1553, 3106, 3273, 3105, 3273, 3107, 3273, 3107, 3274, 1);
} else if (player.objectY > 3265 && player.objectY < 3268) {
handleWoodenGate(player, 1551, 1553, 3252, 3266, 3251, 3266, 3253, 3266, 3253, 3267, 1);
} else if (player.objectY > 3283 && player.objectY < 3286) {
handleWoodenGate(player, 1551, 1553, 3237, 3285, 3238, 3285, 3236, 3285, 3236, 3284, 5);
} else if (player.objectY > 3294 && player.objectY < 3297) {
handleWoodenGate(player, 1551, 1553, 3237, 3296, 3238, 3296, 3236, 3296, 3236, 3295, 5);
} else if (player.objectY > 3300 && player.objectY < 3303) {
handleWoodenGate(player, 1551, 1553, 3240, 3301, 3239, 3301, 3241, 3301, 3241, 3302, 1);
} else if (player.objectX > 3260 & player.objectX < 3263) {
handleWoodenGate(player, 1551, 1553, 3261, 3322, 3261, 3323, 3261, 3321, 3262, 3321, 2);
} else if (player.objectY > 3348 && player.objectY < 3351) {
handleWoodenGate(player, 1551, 1553, 2676, 3350, 2677, 3350, 2675, 3350, 2675, 3349, 5);
} else if (player.objectY > 3313 && player.objectY < 3318) {
handleWoodenGate(player, 1551, 1553, 3174, 3314, 3174, 3315, 3175, 3316, 3174, 3316, 4);
} else if (player.objectY > 3442 && player.objectY < 3445) {
handleWoodenGate(player, 1551, 1553, 2767, 3444, 2768, 3444, 2766, 3444, 2766, 3443, 5);
} else {
handleWoodenGate(player, 1551, 1553, 3198, 3281, 3198, 3280, 3198, 3282, 3197, 3282, 0);
}
break;
case 1553:
if (player.objectX > 3179 && player.objectX < 3182) {
handleWoodenGate(player, 1553, 1551, 3181, 3287, 3181, 3288, 3180, 3289, 3181, 3289, 0);
} else if (player.objectX > 2922 && player.objectX < 2925) {
handleWoodenGate(player, 1553, 1551, 2924, 3290, 2924, 3291, 2923, 3292, 2924, 3292, 0);
} else if (player.objectY > 3442 && player.objectY < 3445) {
handleWoodenGate(player, 1553, 1551, 2768, 3444, 2767, 3444, 2766, 3443, 2766, 3444, 5);
} else if (player.objectX > 3078 && player.objectX < 3081) {
handleWoodenGate(player, 1553, 1551, 3080, 3499, 3080, 3500, 3079, 3501, 3080, 3501, 0);
} else if (player.objectX > 3161 && player.objectX < 3164) {
handleWoodenGate(player, 1553, 1551, 3163, 3288, 3163, 3289, 3162, 3290, 3163, 3290, 0);
} else if (player.objectY > 3290 && player.objectY < 3294) {
handleWoodenGate(player, 1553, 1551, 3145, 3293, 3145, 3292, 3146, 3291, 3145, 3291, 2);
} else if (player.objectY > 3272 && player.objectY < 3275) {
handleWoodenGate(player, 1553, 1551, 3105, 3273, 3106, 3273, 3107, 3274, 3107, 3273, 1);
} else if (player.objectY > 3265 && player.objectY < 3268) {
handleWoodenGate(player, 1553, 1551, 3251, 3266, 3252, 3266, 3253, 3267, 3253, 3266, 1);
} else if (player.objectY > 3283 && player.objectY < 3286) {
handleWoodenGate(player, 1553, 1551, 3238, 3285, 3237, 3285, 3236, 3284, 3236, 3285, 5);
} else if (player.objectY > 3294 && player.objectY < 3297) {
handleWoodenGate(player, 1553, 1551, 3238, 3296, 3237, 3296, 3236, 3295, 3236, 3296, 5);
} else if (player.objectY > 3300 && player.objectY < 3303) {
handleWoodenGate(player, 1553, 1551, 3239, 3301, 3240, 3301, 3241, 3302, 3241, 3301, 1);
} else if (player.objectX > 3260 & player.objectX < 3263) {
handleWoodenGate(player, 1553, 1551, 3261, 3323, 3261, 3322, 3262, 3321, 3261, 3321, 2);
} else if (player.objectY > 3348 && player.objectY < 3351) {
handleWoodenGate(player, 1553, 1551, 2677, 3350, 2676, 3350, 2675, 3349, 2675, 3350, 5);
} else if (player.objectY > 3313 && player.objectY < 3318) {
handleWoodenGate(player, 1553, 1551, 3174, 3315, 3174, 3314, 3174, 3316, 3175, 3316, 4);
} else {
handleWoodenGate(player, 1553, 1551, 3198, 3280, 3198, 3281, 3197, 3282, 3198, 3282, 0);
}
break;
case 12986:
if (player.objectX > 3187 && player.objectX < 3190) {
handleWoodenGate(player, 12986, 12987, 3188, 3280, 3188, 3281, 3188, 3279, 3189, 3279, 2);
} else if (player.objectY > 3267 && player.objectY < 3270) {
handleWoodenGate(player, 12986, 12987, 3185, 3268, 3184, 3268, 3186, 3268, 3186, 3269, 1);
} else {
handleWoodenGate(player, 12986, 12987, 3212, 3261, 3211, 3261, 3213, 3261, 3213, 3262, 1);
}
break;
case 12987:
if (player.objectX > 3187 && player.objectX < 3190) {
handleWoodenGate(player, 12987, 12986, 3188, 3281, 3188, 3280, 3189, 3279, 3188, 3279, 2);
} else if (player.objectY > 3267 && player.objectY < 3270) {
handleWoodenGate(player, 12987, 12986, 3184, 3268, 3185, 3268, 3186, 3269, 3186, 3268, 1);
} else {
handleWoodenGate(player, 12987, 12986, 3211, 3261, 3212, 3261, 3213, 3262, 3213, 3261, 1);
}
break;
case 1596:
if (player.objectX > 3310 && player.objectX < 3313 && player.absY != 3333) {
handleMetalGate(player, 1596, 1597, 3311, 3331, 3311, 3332, 3312, 3331, 3312, 3332, 3);
} else if (player.objectY > 3318 && player.objectY < 3321 && player.absX != 2935 && player.absX != 2932) {
handleMetalGate(player, 1596, 1597, 2934, 3319, 2933, 3319, 2934, 3320, 2933, 3320, 0);
} else if (player.objectX > 3130 && player.objectX < 3133) {
handleMetalGate(player, 1596, 1597, 3131, 9918, 3132, 9918, 3131, 9917, 3132, 9917, 6);
} else if (player.objectY > 3181 && player.objectY < 3184) {
handleMetalGate(player, 1596, 1597, 2815, 3182, 2815, 3183, 2816, 3182, 2816, 3183, 3);
} else if (player.objectY > 3449 && player.objectY < 3452) {
handleMetalGate(player, 1596, 1597, 2936, 3451, 2936, 3450, 2935, 3451, 2935, 3450, 7);
} else if (player.objectY > 3848 && player.objectY < 3851) {
handleMetalGate(player, 1596, 1597, 3007, 3849, 3007, 3850, 3008, 3849, 3008, 3850, 3);
} else if (player.objectX > 3223 && player.objectX < 3226) {
handleMetalGate(player, 1596, 1597, 3225, 3903, 3224, 3903, 3225, 3904, 3224, 3904, 0);
} else if (player.objectX > 2946 && player.objectX < 2949) {
handleMetalGate(player, 1596, 1597, 2948, 3903, 2947, 3903, 2948, 3904, 2947, 3904, 0);
}
break;
case 1597:
if (player.objectX > 3310 && player.objectX < 3313 && player.absY != 3333) {
handleMetalGate(player, 1597, 1596, 3311, 3332, 3311, 3331, 3312, 3332, 3312, 3331, 1);
} else if (player.objectY > 3318 && player.objectY < 3321 && player.absX != 2935 && player.absX != 2932) {
handleMetalGate(player, 1597, 1596, 2933, 3319, 2934, 3319, 2933, 3320, 2934, 3320, 2);
} else if (player.objectX > 3130 && player.objectX < 3133) {
handleMetalGate(player, 1597, 1596, 3132, 9918, 3131, 9918, 3132, 9917, 3131, 9917, 4);
} else if (player.objectY > 3181 && player.objectY < 3184) {
handleMetalGate(player, 1597, 1596, 2815, 3183, 2815, 3182, 2816, 3183, 2816, 3182, 1);
} else if (player.objectY > 3449 && player.objectY < 3452) {
handleMetalGate(player, 1597, 1596, 2936, 3450, 2936, 3451, 2935, 3450, 2935, 3451, 5);
} else if (player.objectY > 3848 && player.objectY < 3851) {
handleMetalGate(player, 1597, 1596, 3007, 3850, 3007, 3849, 3008, 3850, 3008, 3849, 1);
} else if (player.objectX > 3223 && player.objectX < 3226) {
handleMetalGate(player, 1597, 1596, 3224, 3903, 3225, 3903, 3224, 3904, 3225, 3904, 2);
} else if (player.objectX > 2946 && player.objectX < 2949) {
handleMetalGate(player, 1597, 1596, 2947, 3903, 2948, 3903, 2947, 3904, 2948, 3904, 2);
}
break;
case 1557:
if (player.objectY > 9830 && player.objectY < 9833 && player.absY != 9830) {
handleMetalGate(player, 1557, 1558, 2897, 9831, 2897, 9832, 2898, 9831, 2898, 9832, 3);
} else if (player.objectY > 3866 && player.objectY < 3869) {
handleMetalGate(player, 1557, 1558, 3075, 3868, 3076, 3868, 3075, 3867, 3076, 3867, 4);
/*Heroes Guild*/
} else if (player.objectX > 2908 && player.objectX < 2911) {
//id1, id2, newx, newy, newx2, newy2, oldx, oldy, oldx2, oldy2
handleMetalGate(player, 1557, 1558, 2910, 9909, 2909, 9909, 2910, 9910, 2909, 9910, 0);
} else if (player.objectY > 9908 && player.objectY < 9911) {
handleMetalGate(player, 1557, 1558, 3104, 9910, 3104, 9909, 3103, 9910, 3103, 9909, 7);
} else if (player.objectX > 3110 && player.objectX < 3113 && player.absY != 3513 && player.absY != 3516) {
handleMetalGate(player, 1557, 1558, 3111, 3514, 3111, 3515, 3112, 3514, 3112, 3515, 3);
} else if (player.objectX > 3104 && player.objectX < 3107 && player.absX != 3104 && player.absX != 3107) {
handleMetalGate(player, 1557, 1558, 3105, 9945, 3106, 9945, 3105, 9944, 3106, 9944, 6);
} else if (player.objectX > 3144 && player.objectX < 3147) {//here
handleMetalGate(player, 1557, 1558, 3146, 9871, 3146, 9870, 3145, 9871, 3145, 9870, 7);
} else if (player.objectX > 2756 && player.objectX < 2759) {
handleMetalGate(player, 1557, 1558, 2757, 3483, 2758, 3483, 2757, 3482, 2758, 3482, 6);
}
break;
case 1558:
if (player.objectY > 9830 && player.objectY < 9833 && player.absY != 9830) {
handleMetalGate(player, 1558, 1557, 2897, 9832, 2897, 9831, 2898, 9832, 2898, 9831, 1);
} else if (player.objectY > 3866 && player.objectY < 3869) {
handleMetalGate(player, 1558, 1557, 3076, 3868, 3075, 3868, 3076, 3867, 3075, 3867, 4);
/* Heroes Guild*/
} else if (player.objectX > 2908 && player.objectX < 2911) {
//newx, newy, newx2, newy2, oldx, oldy, oldx2, oldy2
handleMetalGate(player, 1558, 1557, 2909, 9909, 2910, 9909, 2909, 9910, 2910, 9910, 2);
} else if (player.objectY > 9908 && player.objectY < 9911) {
handleMetalGate(player, 1558, 1557, 3104, 9909, 3104, 9910, 3103, 9909, 3103, 9910, 5);
} else if (player.objectX > 3110 && player.objectX < 3113 && player.absY != 3513 && player.absY != 3516) {
handleMetalGate(player, 1558, 1557, 3111, 3515, 3111, 3514, 3112, 3515, 3112, 3514, 3);
} else if (player.objectX > 3104 && player.objectX < 3107 && player.absX != 3104 && player.absX != 3107) {
handleMetalGate(player, 1558, 1557, 3106, 9945, 3105, 9945, 3106, 9944, 3105, 9944, 4);
} else if (player.objectX > 3144 && player.objectX < 3147) {//here
handleMetalGate(player, 1558, 1557, 3146, 9870, 3146, 9871, 3145, 9870, 3145, 9871, 5);
} else if (player.objectX > 2756 && player.objectX < 2759) {
handleMetalGate(player, 1558, 1557, 2758, 3483, 2757, 3483, 2758, 3482, 2757, 3482, 4);
}
break;
case 3506:
if (player.absX != 3445 && player.absX != 3442) {
openMetalGateWalk(player, 3506, 3507, 3444, 3457, 3443, 3457, 3444, 3458, 3443, 3458, 0, player.absY == 3457 ? 1 : -1, 2, 0, 3);
}
break;
case 3507:
if (player.absX != 3445 && player.absX != 3442) {
openMetalGateWalk(player, 3507, 3506, 3443, 3457, 3444, 3457, 3443, 3458, 3444, 3458, 0, player.absY == 3457 ? 1 : -1, 0, 2, 3);
}
break;
}
}
}
@@ -0,0 +1,201 @@
package com.rebotted.game.globalworldobjects;
import com.rebotted.GameEngine;
import com.rebotted.game.content.music.sound.SoundList;
import com.rebotted.game.objects.Objects;
import com.rebotted.game.players.Player;
import com.rebotted.world.ObjectManager;
import com.rebotted.world.clip.ObjectDef;
import com.rebotted.world.clip.Region;
/**
* GateHandler
* (needs to be re written tbh)
* @author Andrew (Mr Extremez)
*/
public class GateHandler {
public int gateStatus = 0, gateTicks = 50,
CLOSED = 0, PARTIAL_OPEN = 1, OPEN = 2;
public boolean isGate(int objectId) {
String objectName = ObjectDef.getObjectDef(objectId).name;
try {
return objectName.equalsIgnoreCase("gate") || objectName.equalsIgnoreCase("Gate");
} catch (Exception e) {
return false;
}
}
public void spawnGate(Player player, int objectId, int newObjectX, int newObjectY, int height, int face) {
GameEngine.objectHandler.placeObject(new Objects(objectId, newObjectX, newObjectY, height, face, 0, 0));
player.getPacketSender().sendSound(SoundList.OPEN_GATE, 100, 0);
}
public void openSingleGate(Player player, int objectId, int newObjectX, int newObjectY, int oldObjectX, int oldObjectY, int walkX, int walkY, int newFace, int oldFace) {
if (isGate(objectId) && player.getGateHandler().gateStatus == CLOSED) {
spawnGate(player, -1, oldObjectX, oldObjectY, player.heightLevel, 0);
spawnGate(player, objectId, newObjectX, newObjectY, player.heightLevel, newFace);
player.getGateHandler().gateStatus = PARTIAL_OPEN;
player.getPlayerAssistant().walkTo(walkX, walkY);
ObjectManager.singleGateTicks(player, objectId, oldObjectX, oldObjectY, newObjectX, newObjectY, player.heightLevel, oldFace, 2);
}
}
private void openDoubleGate(Player player, int objectId, int objectId2, int newObjectX, int newObjectY, int newObjectX2, int newObjectY2, int oldObjectX, int oldObjectY, int oldObjectX2, int oldObjectY2, int newFace, int oldFace) {
if (isGate(objectId) && isGate(objectId2) && player.getGateHandler().gateStatus == CLOSED) {
spawnGate(player, -1, oldObjectX, oldObjectY, player.heightLevel, 0);
spawnGate(player, -1, oldObjectX2, oldObjectY2, player.heightLevel, 0);
spawnGate(player, objectId, newObjectX, newObjectY, player.heightLevel, newFace);
Region.addObject(objectId, newObjectX, newObjectY, player.heightLevel, 0, newFace, false);
player.getGateHandler().gateStatus = PARTIAL_OPEN;
spawnGate(player, objectId2, newObjectX2, newObjectY2, player.heightLevel, newFace);
Region.addObject(objectId2, newObjectX2, newObjectY2, player.heightLevel, 0, newFace, false);
player.getGateHandler().gateStatus = OPEN;
ObjectManager.doubleGateTicks(player, objectId, oldObjectX, oldObjectY, newObjectX, newObjectY, newObjectX2, newObjectY2, player.heightLevel, oldFace, player.getGateHandler().gateTicks);
ObjectManager.doubleGateTicks(player, objectId2, oldObjectX2, oldObjectY2, newObjectX, newObjectY, newObjectX2, newObjectY2, player.heightLevel, oldFace, player.getGateHandler().gateTicks);
} else if (isGate(objectId) && isGate(objectId2) && player.getGateHandler().gateStatus == OPEN) {
ObjectManager.doubleGateTicks(player, objectId, oldObjectX, oldObjectY, newObjectX, newObjectY, newObjectX2, newObjectY2, player.heightLevel, oldFace, 0);
ObjectManager.doubleGateTicks(player, objectId2, oldObjectX2, oldObjectY2, newObjectX, newObjectY, newObjectX2, newObjectY2, player.heightLevel, oldFace, 0);
}
}
private void openSpecialGate(Player player, int objectId, int objectId2, int newObjectX, int newObjectY, int newObjectX2, int newObjectY2, int oldObjectX, int oldObjectY, int oldObjectX2, int oldObjectY2, int newFace, int newFace2, int oldFace) {
if (isGate(objectId) && isGate(objectId2) && player.getGateHandler().gateStatus == CLOSED) {
spawnGate(player, -1, oldObjectX, oldObjectY, player.heightLevel, 0);
spawnGate(player, -1, oldObjectX2, oldObjectY2, player.heightLevel, 0);
spawnGate(player, objectId, newObjectX, newObjectY, player.heightLevel, newFace);
Region.addObject(objectId, newObjectX, newObjectY, player.heightLevel, 0, newFace, false);
player.getGateHandler().gateStatus = PARTIAL_OPEN;
spawnGate(player, objectId2, newObjectX2, newObjectY2, player.heightLevel, newFace2);
Region.addObject(objectId2, newObjectX2, newObjectY2, player.heightLevel, 0, newFace2, false);
player.getGateHandler().gateStatus = OPEN;
ObjectManager.doubleGateTicks(player, objectId, oldObjectX, oldObjectY, newObjectX, newObjectY, newObjectX2, newObjectY2, player.heightLevel, oldFace, player.getGateHandler().gateTicks);
ObjectManager.doubleGateTicks(player, objectId2, oldObjectX2, oldObjectY2, newObjectX, newObjectY, newObjectX2, newObjectY2, player.heightLevel, oldFace, player.getGateHandler().gateTicks);
} else if (isGate(objectId) && isGate(objectId2) && player.getGateHandler().gateStatus == OPEN) {
ObjectManager.doubleGateTicks(player, objectId, oldObjectX, oldObjectY, newObjectX, newObjectY, newObjectX2, newObjectY2, player.heightLevel, oldFace, 0);
ObjectManager.doubleGateTicks(player, objectId2, oldObjectX2, oldObjectY2, newObjectX, newObjectY, newObjectX2, newObjectY2, player.heightLevel, oldFace, 0);
}
}
public void openMetalGateWalk(Player player, int objectId, int objectId2, int newObjectX, int newObjectY, int newObjectX2, int newObjectY2, int oldObjectX, int oldObjectY, int oldObjectX2, int oldObjectY2, int walkX, int walkY, int newFace, int newFace2, int oldFace) {
if (isGate(objectId) && isGate(objectId2) && player.getGateHandler().gateStatus == CLOSED) {
spawnGate(player, -1, oldObjectX, oldObjectY, player.heightLevel, 0);
spawnGate(player, -1, oldObjectX2, oldObjectY2, player.heightLevel, 0);
spawnGate(player, objectId, newObjectX, newObjectY, player.heightLevel, newFace);
player.getGateHandler().gateStatus = PARTIAL_OPEN;
spawnGate(player, objectId2, newObjectX2, newObjectY2, player.heightLevel, newFace2);
player.getGateHandler().gateStatus = OPEN;
player.getPlayerAssistant().walkTo(walkX, walkY);
ObjectManager.doubleGateTicks(player, objectId, oldObjectX, oldObjectY, newObjectX, newObjectY, newObjectX2, newObjectY2, player.heightLevel, oldFace, 2);
ObjectManager.doubleGateTicks(player, objectId2, oldObjectX2, oldObjectY2, newObjectX, newObjectY, newObjectX2, newObjectY2, player.heightLevel, oldFace, 2);
}
}
public void handleWoodenGate(Player player, int objectId, int objectId2, int newObjectX, int newObjectY, int newObjectX2, int newObjectY2, int oldObjectX, int oldObjectY, int oldObjectX2, int oldObjectY2, int type) {
switch (type) {
/**
* X Gate 1
*/
case 0:
openDoubleGate(player, objectId, objectId2, newObjectX, newObjectY, newObjectX2, newObjectY2, oldObjectX, oldObjectY, oldObjectX2, oldObjectY2, 2, 3);
break;
/**
* Y Gate 1
*/
case 1:
openDoubleGate(player, objectId, objectId2, newObjectX, newObjectY, newObjectX2, newObjectY2, oldObjectX, oldObjectY, oldObjectX2, oldObjectY2, 3, 0);
break;
/**
* X Gate 2
*/
case 2:
openDoubleGate(player, objectId, objectId2, newObjectX, newObjectY, newObjectX2, newObjectY2, oldObjectX, oldObjectY, oldObjectX2, oldObjectY2, 0, 1);
break;
/**
* Y Gate 2
*/
case 3:
openDoubleGate(player, objectId, objectId2, newObjectX, newObjectY, newObjectX2, newObjectY2, oldObjectX, oldObjectY, oldObjectX2, oldObjectY2, 1, 0);
break;
/**
* X Gate 3
*/
case 4:
openDoubleGate(player, objectId, objectId2, newObjectX, newObjectY, newObjectX2, newObjectY2, oldObjectX, oldObjectY, oldObjectX2, oldObjectY2, 0, 3);
break;
/**
* Y Gate 3
*/
case 5:
openDoubleGate(player, objectId, objectId2, newObjectX, newObjectY, newObjectX2, newObjectY2, oldObjectX, oldObjectY, oldObjectX2, oldObjectY2, 1, 2);
break;
/**
* X Gate 4
*/
case 6:
openDoubleGate(player, objectId, objectId2, newObjectX, newObjectY, newObjectX2, newObjectY2, oldObjectX, oldObjectY, oldObjectX2, oldObjectY2, 2, 1);
break;
/**
* Y Gate 4
*/
case 7:
openDoubleGate(player, objectId, objectId2, newObjectX, newObjectY, newObjectX2, newObjectY2, oldObjectX, oldObjectY, oldObjectX2, oldObjectY2, 3, 2);
break;
}
}
public void handleMetalGate(Player player, int objectId, int objectId2, int newObjectX, int newObjectY, int newObjectX2, int newObjectY2, int oldObjectX, int oldObjectY, int oldObjectX2, int oldObjectY2, int type) {
switch (type) {
/**
* X Gate 1
*/
case 0:
openSpecialGate(player, objectId, objectId2, newObjectX, newObjectY, newObjectX2, newObjectY2, oldObjectX, oldObjectY, oldObjectX2, oldObjectY2, 2, 0, 3);
break;
/**
* Y Gate 1
*/
case 1:
openSpecialGate(player, objectId, objectId2, newObjectX, newObjectY, newObjectX2, newObjectY2, oldObjectX, oldObjectY, oldObjectX2, oldObjectY2, 1, 3, 0);
break;
/**
* X Gate 2
*/
case 2:
openSpecialGate(player, objectId, objectId2, newObjectX, newObjectY, newObjectX2, newObjectY2, oldObjectX, oldObjectY, oldObjectX2, oldObjectY2, 0, 2, 3);
break;
/**
* Y Gate 2
*/
case 3:
openSpecialGate(player, objectId, objectId2, newObjectX, newObjectY, newObjectX2, newObjectY2, oldObjectX, oldObjectY, oldObjectX2, oldObjectY2, 3, 1, 0);
break;
/**
* X Gate 3
*/
case 4:
openSpecialGate(player, objectId, objectId2, newObjectX, newObjectY, newObjectX2, newObjectY2, oldObjectX, oldObjectY, oldObjectX2, oldObjectY2, 2, 0, 1);
break;
/**
* Y Gate 3
*/
case 5:
openSpecialGate(player, objectId, objectId2, newObjectX, newObjectY, newObjectX2, newObjectY2, oldObjectX, oldObjectY, oldObjectX2, oldObjectY2, 3, 1, 2);
break;
/**
* X Gate 4
*/
case 6:
openSpecialGate(player, objectId, objectId2, newObjectX, newObjectY, newObjectX2, newObjectY2, oldObjectX, oldObjectY, oldObjectX2, oldObjectY2, 0, 2, 1);
break;
/**
* Y Gate 4
*/
case 7:
openSpecialGate(player, objectId, objectId2, newObjectX, newObjectY, newObjectX2, newObjectY2, oldObjectX, oldObjectY, oldObjectX2, oldObjectY2, 1, 3, 2);
break;
}
}
}
@@ -0,0 +1,102 @@
package com.rebotted.game.globalworldobjects;
import com.rebotted.event.CycleEvent;
import com.rebotted.event.CycleEventContainer;
import com.rebotted.event.CycleEventHandler;
import com.rebotted.game.players.Player;
import com.rebotted.game.players.Position;
/**
* Passdoor
* @author Andrew (Mr Extremez)
*/
public class PassDoor {
private static long doorDelay;
public static boolean passThroughDoor(final Player player, final int objectType, int face1, final int face2, final int type, int x, int y, final int height) {
if (System.currentTimeMillis() - doorDelay < 1200) {
player.getPacketSender().sendMessage("You must wait longer to pass this door.");
return false;
}
final int objX = player.objectX;
final int objY = player.objectY;
player.getPacketSender().object(objectType, objX, objY, height, face1, type);
player.getPlayerAssistant().walkTo(x, y);
player.stopPlayer = true;
CycleEventHandler.getSingleton().addEvent(player, new CycleEvent() {
@Override
public void execute(CycleEventContainer container) {
player.getPacketSender().object(objectType, objX, objY, height, face2, type);
container.stop();
}
@Override
public void stop() {
player.stopPlayer = false;
doorDelay = System.currentTimeMillis();
}
}, 2);
return true;
}
public static void processDoor(Player player, int objectType) {
//player, object, face1, face2, type, x, y, height
switch (objectType) {
case 2550:
if (Position.checkPosition(player, 2674, 3306, 0)) {
passThroughDoor(player, objectType, 0, 1, 0, 0, -1, 0);
}
break;
case 2551:
if (Position.checkPosition(player, 2674, 3303, 0)) {
passThroughDoor(player, objectType, 0, 3, 0, 0, 1, 0);
}
break;
case 1530:
if (Position.checkPosition(player, 2715, 3472, 0)) {
passThroughDoor(player, objectType, 1, 0, 0, 1, 0, 0);
} else if (Position.checkPosition(player, 2716, 3472, 0)) {
passThroughDoor(player, objectType, 1, 0, 0, -1, 0, 0);
} else if (Position.checkPosition(player, 3246, 9892, 0)) {
passThroughDoor(player, objectType, 1, 0, 0, 1, 0, 0);
} else if (Position.checkPosition(player, 3247, 9892, 0)) {
passThroughDoor(player, objectType, 1, 0, 0, -1, 0, 0);
} else if (Position.checkPosition(player, 3110, 9559, 0)) {
passThroughDoor(player, objectType, 3, 0, 0, 1, 0, 0);
} else if (Position.checkPosition(player, 3111, 9559, 0)) {
passThroughDoor(player, objectType, 3, 0, 0, -1, 0, 0);
}
break;
case 11993:
if (Position.checkPosition(player, 3107, 3162, 2)) {
passThroughDoor(player, objectType, 1, 2, 0, 1, 0, 2);
} else if (Position.checkPosition(player, 3108, 3162, 2)) {
passThroughDoor(player, objectType, 1, 2, 0, -1, 0, 2);
} else if (Position.checkPosition(player, 3109, 3159, 1)) {
passThroughDoor(player, objectType, 1, 2, 0, 1, 0, 1);
} else if (Position.checkPosition(player, 3110, 3159, 1)) {
passThroughDoor(player, objectType, 1, 2, 0, -1, 0, 1);
} else if (Position.checkPosition(player, 3108, 3159, 1)) {
passThroughDoor(player, objectType, 2, 1, 0, 0, -1, 1);
} else if (Position.checkPosition(player, 3108, 3158, 1)) {
passThroughDoor(player, objectType, 2, 1, 0, 0, 1, 1);
} else if (Position.checkObject(player, 3107, 3162, 0)) {
if (Position.checkPosition(player, 3108, 3162, 0)) {
passThroughDoor(player, objectType, 2, 1, 9, -1, -1, 0);
} else if (Position.checkPosition(player, 3107, 3163, 0)) {
// wizz tower
passThroughDoor(player, objectType, 2, 1, 9, -1, -1, 0);
} else {
if (player.heightLevel == 0) {
passThroughDoor(player, objectType, 2, 1, 9, 1, 1, 0);
}
}
}
break;
}
}
}
@@ -0,0 +1,23 @@
package com.rebotted.game.globalworldobjects;
import com.rebotted.game.players.Player;
/**
* SingleGates
* @author Andrew (Mr Extremez)
*/
public class SingleGates extends GateHandler {
public void useSingleGate(Player player, int objectId) {
switch (objectId) {
case 3444:
openSingleGate(player, 3444, 3405, 9894, 3405, 9895, 0, player.absY == 9894 ? 1 : -1, 0, 3);
break;
case 3445:
openSingleGate(player, 3445, 3432, 9897, 3431, 9897, player.absX == 3432 ? -1 : 1, 0, 3, 2);
break;
}
}
}