forked from MagicBane/Server
Compare commits
18 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 250e3407fa | |||
| fcd37cbae2 | |||
| 70e76d9a1a | |||
| 6a3bd89095 | |||
| 4ccf03dfd3 | |||
| f845c0ad80 | |||
| 165752f6d6 | |||
| c0ee8b82f8 | |||
| cc1e0d8986 | |||
| 7f6fbd2bff | |||
| 92d8ed9e3f | |||
| 45b2443982 | |||
| 3775fb336b | |||
| f7a8ca33fc | |||
| c45265b085 | |||
| 79400b6b0e | |||
| 2bff826a10 | |||
| d5fc87c233 |
@@ -1,27 +0,0 @@
|
||||
package engine.CollisionEngine;
|
||||
|
||||
import engine.math.Vector3f;
|
||||
import engine.objects.Building;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.geom.Line2D;
|
||||
import java.awt.geom.Rectangle2D;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
|
||||
public class CollisionManager {
|
||||
public static HashMap<Integer, ArrayList<MeshData>> structure_meshes;
|
||||
public static HashMap<Integer,ArrayList<Triangle>> mesh_triangles;
|
||||
public static boolean CollisionDetected(Building building, Line2D travelLine, float charHeight, float charY){
|
||||
|
||||
if(building.buildingRect != null)
|
||||
if(!travelLine.intersects(building.buildingRect) && !building.buildingRect.contains(travelLine.getP1()) && !building.buildingRect.contains(travelLine.getP2()))
|
||||
return false;
|
||||
|
||||
for(Mesh mesh : building.buildingMeshes)
|
||||
if(mesh.collides(travelLine))
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -1,87 +0,0 @@
|
||||
package engine.CollisionEngine;
|
||||
|
||||
import engine.gameManager.BuildingManager;
|
||||
import engine.math.Vector2f;
|
||||
import engine.math.Vector3f;
|
||||
import engine.math.Vector3fImmutable;
|
||||
import engine.objects.Building;
|
||||
import org.pmw.tinylog.Logger;
|
||||
|
||||
import java.awt.geom.Line2D;
|
||||
|
||||
import java.awt.geom.Path2D;
|
||||
import java.awt.geom.Point2D;
|
||||
import java.awt.geom.Rectangle2D;
|
||||
import java.util.ArrayList;
|
||||
|
||||
public class Mesh {
|
||||
public ArrayList<Triangle> triangles;
|
||||
public Vector3f mesh_end_point;
|
||||
public Vector3f mesh_ref_point;
|
||||
public Vector3f mesh_location;
|
||||
public float mesh_max_y;
|
||||
public float mesh_min_y;
|
||||
public Vector3f mesh_scale;
|
||||
public int mesh_id;
|
||||
public int parent_prop_id;
|
||||
public int parent_structure_id;
|
||||
public int parentUUID;
|
||||
public Rectangle2D.Float mesh_bounds;
|
||||
public MeshData meshData;
|
||||
|
||||
public void update(){
|
||||
this.BakeTriangles();
|
||||
}
|
||||
public Vector3f getLocation(){
|
||||
Building parentBuilding = BuildingManager.getBuilding(this.parentUUID);
|
||||
int degrees = (int)Math.toDegrees(parentBuilding.getBounds().getQuaternion().angleY);
|
||||
Vector3f parentLoc = new Vector3f(parentBuilding.loc.x,parentBuilding.loc.y,parentBuilding.loc.z);
|
||||
Vector3f offsetLoc = parentLoc.add(this.meshData.loc);
|
||||
Vector3f rotatedPoint = Vector3f.rotateAroundPoint(offsetLoc,parentLoc,degrees);
|
||||
return rotatedPoint;
|
||||
}
|
||||
|
||||
public void BakeTriangles(){
|
||||
|
||||
if(CollisionManager.mesh_triangles.containsKey(this.meshData.meshID) == false){
|
||||
Logger.error("Failed To Bake Triangles For Mesh: " + this.meshData.meshID);
|
||||
return;
|
||||
}
|
||||
Building parentBuilding = BuildingManager.getBuilding(this.parentUUID);
|
||||
int degrees = (int)Math.toDegrees(parentBuilding.getBounds().getQuaternion().angleY);
|
||||
Vector3f parentLoc = new Vector3f(parentBuilding.loc.x,parentBuilding.loc.y,parentBuilding.loc.z);
|
||||
Vector3f offsetLoc = parentLoc.add(this.meshData.loc);
|
||||
|
||||
for(Triangle tri : CollisionManager.mesh_triangles.get(this.meshData.meshID)) {
|
||||
|
||||
Triangle newTri = new Triangle();
|
||||
|
||||
Vector3f Point1 = offsetLoc.add(new Vector3f(tri.point1.x,offsetLoc.y,tri.point1.y));
|
||||
Vector3f Point2 = offsetLoc.add(new Vector3f(tri.point2.x,offsetLoc.y,tri.point2.y));
|
||||
Vector3f Point3 = offsetLoc.add(new Vector3f(tri.point3.x,offsetLoc.y,tri.point3.y));
|
||||
|
||||
Vector3f rotatedPoint1 = Vector3f.rotateAroundPoint(Point1,offsetLoc,degrees);
|
||||
Vector3f rotatedPoint2 = Vector3f.rotateAroundPoint(Point2,offsetLoc,degrees);
|
||||
Vector3f rotatedPoint3 = Vector3f.rotateAroundPoint(Point3,offsetLoc,degrees);
|
||||
|
||||
newTri.point1 = new Point2D.Float(rotatedPoint1.x,rotatedPoint1.z);
|
||||
newTri.point2 = new Point2D.Float(rotatedPoint2.x,rotatedPoint2.z);
|
||||
newTri.point3 = new Point2D.Float(rotatedPoint3.x,rotatedPoint3.z);
|
||||
|
||||
newTri.sides = new ArrayList<>();
|
||||
newTri.sides.add(new Line2D.Float(newTri.point1,newTri.point2));
|
||||
newTri.sides.add(new Line2D.Float(newTri.point2,newTri.point3));
|
||||
newTri.sides.add(new Line2D.Float(newTri.point3,newTri.point1));
|
||||
|
||||
this.triangles.add(newTri);
|
||||
}
|
||||
}
|
||||
|
||||
public Boolean collides(Line2D line){
|
||||
for(Triangle tri : this.triangles)
|
||||
if(tri.collides(line))
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -1,14 +0,0 @@
|
||||
package engine.CollisionEngine;
|
||||
|
||||
import engine.math.Vector3f;
|
||||
|
||||
public class MeshData {
|
||||
public int propID;
|
||||
public int meshID;
|
||||
public Vector3f loc;
|
||||
public Vector3f scale;
|
||||
public Vector3f refPoint;
|
||||
public Vector3f endPoint;
|
||||
public float maxY;
|
||||
public float minY;
|
||||
}
|
||||
@@ -1,21 +0,0 @@
|
||||
package engine.CollisionEngine;
|
||||
|
||||
import java.awt.geom.Line2D;
|
||||
|
||||
import java.awt.geom.Point2D;
|
||||
import java.util.ArrayList;
|
||||
|
||||
public class Triangle {
|
||||
public Point2D.Float point1;
|
||||
public Point2D.Float point2;
|
||||
public Point2D.Float point3;
|
||||
public ArrayList<Line2D> sides;
|
||||
public boolean collides(Line2D line)
|
||||
{
|
||||
for(Line2D side : sides)
|
||||
if(side.intersectsLine(line))
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -9,25 +9,17 @@
|
||||
|
||||
package engine.db.handlers;
|
||||
|
||||
import engine.CollisionEngine.CollisionManager;
|
||||
import engine.CollisionEngine.MeshData;
|
||||
import engine.CollisionEngine.Triangle;
|
||||
import engine.Enum;
|
||||
import engine.Enum.DbObjectType;
|
||||
import engine.Enum.ProtectionState;
|
||||
import engine.Enum.TaxType;
|
||||
import engine.gameManager.BuildingManager;
|
||||
import engine.gameManager.DbManager;
|
||||
import engine.math.Vector2f;
|
||||
import engine.math.Vector3f;
|
||||
import engine.math.Vector3fImmutable;
|
||||
import engine.objects.*;
|
||||
import org.joda.time.DateTime;
|
||||
import org.pmw.tinylog.Logger;
|
||||
|
||||
import java.awt.geom.Line2D;
|
||||
import java.awt.geom.Point2D;
|
||||
import java.awt.geom.Rectangle2D;
|
||||
import java.sql.Connection;
|
||||
import java.sql.PreparedStatement;
|
||||
import java.sql.ResultSet;
|
||||
@@ -35,7 +27,6 @@ import java.sql.SQLException;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.ZoneId;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
@@ -858,167 +849,4 @@ public class dbBuildingHandler extends dbHandlerBase {
|
||||
return false;
|
||||
}
|
||||
|
||||
public void LOAD_MESH_DATA(){
|
||||
CollisionManager.structure_meshes = new HashMap<>();
|
||||
try (Connection connection = DbManager.getConnection();
|
||||
PreparedStatement preparedStatement = connection.prepareStatement("SELECT * FROM `final_structure_meshes`")) {
|
||||
|
||||
ResultSet rs = preparedStatement.executeQuery();
|
||||
|
||||
while (rs.next()) {
|
||||
MeshData md = new MeshData();
|
||||
md.propID = rs.getInt("propID");
|
||||
md.meshID = rs.getInt("meshID");
|
||||
md.loc = new Vector3f(rs.getFloat("locX"), rs.getFloat("locY"),rs.getFloat("locz"));
|
||||
md.scale = new Vector3f(rs.getFloat("scaleX"), rs.getFloat("scaleY"),rs.getFloat("scaleZ"));
|
||||
md.refPoint = new Vector3f(rs.getFloat("refX"), rs.getFloat("refY"),rs.getFloat("refZ"));
|
||||
md.endPoint = new Vector3f(rs.getFloat("endX"), rs.getFloat("endY"),rs.getFloat("endZ"));
|
||||
md.minY = rs.getFloat("minY");
|
||||
md.maxY = rs.getFloat("maxY");
|
||||
if(CollisionManager.structure_meshes.containsKey(rs.getInt("propID"))){
|
||||
CollisionManager.structure_meshes.get(rs.getInt("propID")).add(md);
|
||||
} else{
|
||||
ArrayList<MeshData> meshData = new ArrayList<>();
|
||||
meshData.add(md);
|
||||
CollisionManager.structure_meshes.put(rs.getInt("propID"),meshData);
|
||||
}
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
Logger.error(e);
|
||||
}
|
||||
}
|
||||
public void LOAD_MESH_TRIANGLE_DATA(){
|
||||
CollisionManager.mesh_triangles = new HashMap<>();
|
||||
try (Connection connection = DbManager.getConnection();
|
||||
PreparedStatement preparedStatement = connection.prepareStatement("SELECT * FROM `final_mesh_triangles`")) {
|
||||
|
||||
ResultSet rs = preparedStatement.executeQuery();
|
||||
|
||||
while (rs.next()) {
|
||||
Triangle tri = new Triangle();
|
||||
tri.point1 = new Point2D.Float(rs.getFloat("P1X"),rs.getFloat("P1Z"));
|
||||
tri.point2 = new Point2D.Float(rs.getFloat("P2X"),rs.getFloat("P2Z"));
|
||||
tri.point3 = new Point2D.Float(rs.getFloat("P3X"),rs.getFloat("P3Z"));
|
||||
if(CollisionManager.mesh_triangles.containsKey(rs.getInt("meshID"))){
|
||||
CollisionManager.mesh_triangles.get(rs.getInt("meshID")).add(tri);
|
||||
} else{
|
||||
ArrayList<Triangle> triData = new ArrayList<>();
|
||||
triData.add(tri);
|
||||
CollisionManager.mesh_triangles.put(rs.getInt("meshID"),triData);
|
||||
}
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
Logger.error(e);
|
||||
}
|
||||
}
|
||||
public void LOAD_PROP_MESHES() {
|
||||
|
||||
try (Connection connection = DbManager.getConnection();
|
||||
PreparedStatement preparedStatement = connection.prepareStatement("SELECT * FROM `static_structure_meshes`")) {
|
||||
|
||||
ResultSet rs = preparedStatement.executeQuery();
|
||||
BuildingManager.prop_meshes = new HashMap<>();
|
||||
while (rs.next()) {
|
||||
if(BuildingManager.prop_meshes.containsKey(rs.getInt("propID")) == false){
|
||||
ArrayList<Integer> meshList = new ArrayList<>();
|
||||
meshList.add(rs.getInt("meshID"));
|
||||
BuildingManager.prop_meshes.put(rs.getInt("propID"),meshList);
|
||||
}
|
||||
else
|
||||
{
|
||||
ArrayList<Integer> meshes = BuildingManager.prop_meshes.get(rs.getInt("propID"));
|
||||
meshes.add(rs.getInt("meshID"));
|
||||
//BuildingManager.prop_meshes.get(rs.getInt("propID")).add(rs.getInt("meshID"));
|
||||
}
|
||||
}
|
||||
|
||||
} catch (SQLException e) {
|
||||
Logger.error(e);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void LOAD_MESH_DATA_OLD() {
|
||||
|
||||
try (Connection connection = DbManager.getConnection();
|
||||
PreparedStatement preparedStatement = connection.prepareStatement("SELECT * FROM `static_mesh_triangles`")) {
|
||||
|
||||
ResultSet rs = preparedStatement.executeQuery();
|
||||
BuildingManager.mesh_triangle_points = new HashMap<>();
|
||||
while (rs.next()) {
|
||||
|
||||
ArrayList<Float> floatPoints = new ArrayList<>();
|
||||
for(String f : rs.getString("vertices").split(";"))
|
||||
{
|
||||
floatPoints.add(Float.parseFloat(f));
|
||||
}
|
||||
ArrayList<Vector3f> triPoints = new ArrayList<>();
|
||||
for(int i = 0; i < floatPoints.size(); i += 3){
|
||||
triPoints.add(new Vector3f(floatPoints.get(i),floatPoints.get(i+1),floatPoints.get(i+2)));
|
||||
}
|
||||
|
||||
if(BuildingManager.mesh_triangle_points.containsKey(rs.getInt("meshID")) == false){
|
||||
ArrayList<ArrayList<Vector3f>> newPoints = new ArrayList<>();
|
||||
newPoints.add(triPoints);
|
||||
BuildingManager.mesh_triangle_points.put(rs.getInt("meshID"),newPoints);
|
||||
}
|
||||
else
|
||||
{
|
||||
BuildingManager.mesh_triangle_points.get(rs.getInt("meshID")).add(triPoints);
|
||||
}
|
||||
}
|
||||
|
||||
} catch (SQLException e) {
|
||||
Logger.error(e);
|
||||
}
|
||||
|
||||
try (Connection connection = DbManager.getConnection();
|
||||
PreparedStatement preparedStatement = connection.prepareStatement("SELECT * FROM `static_mesh_heights`")) {
|
||||
|
||||
ResultSet rs = preparedStatement.executeQuery();
|
||||
BuildingManager.mesh_heights = new HashMap<>();
|
||||
while (rs.next()) {
|
||||
|
||||
if(BuildingManager.mesh_heights.containsKey(rs.getInt("meshID")) == false){
|
||||
Vector2f heights = new Vector2f(rs.getFloat("maxY"),rs.getFloat("minY"));
|
||||
BuildingManager.mesh_heights.put(rs.getInt("meshID"),heights);
|
||||
}
|
||||
}
|
||||
|
||||
} catch (SQLException e) {
|
||||
Logger.error(e);
|
||||
}
|
||||
}
|
||||
|
||||
public void LOAD_MESH_BOUNDING_BOXES() {
|
||||
|
||||
try (Connection connection = DbManager.getConnection();
|
||||
PreparedStatement preparedStatement = connection.prepareStatement("SELECT * FROM `static_mesh_bounding_boxes`")) {
|
||||
|
||||
ResultSet rs = preparedStatement.executeQuery();
|
||||
BuildingManager.mesh_bounding_boxes = new HashMap<>();
|
||||
while (rs.next()) {
|
||||
int meshID = rs.getInt("meshId");
|
||||
if(BuildingManager.mesh_bounding_boxes.containsKey(meshID) == false){
|
||||
float endX = Float.parseFloat(rs.getString("mesh_end_point").split(";")[0]);
|
||||
float endZ = Float.parseFloat(rs.getString("mesh_end_point").split(";")[1]);
|
||||
float refX = Float.parseFloat(rs.getString("mesh_ref_point").split(";")[0]);
|
||||
float refZ = Float.parseFloat(rs.getString("mesh_ref_point").split(";")[1]);
|
||||
|
||||
|
||||
Vector2f topLeft = new Vector2f(refX,refZ);
|
||||
float width = Math.abs(Math.abs(endX)-Math.abs(refX));
|
||||
float height = Math.abs(Math.abs(endZ)-Math.abs(refZ));
|
||||
Rectangle2D boundRect = new Rectangle2D.Float();
|
||||
boundRect.setRect(topLeft.x,topLeft.y,width,height);
|
||||
BuildingManager.mesh_bounding_boxes.put(meshID,boundRect);
|
||||
}
|
||||
}
|
||||
|
||||
} catch (SQLException e) {
|
||||
Logger.error(e);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -109,7 +109,7 @@ public class dbWarehouseHandler extends dbHandlerBase {
|
||||
PreparedStatement preparedStatement = connection.prepareStatement("UPDATE `obj_warehouse` SET `warehouse_locks`=? WHERE `UID` = ?")) {
|
||||
|
||||
preparedStatement.setLong(1, locks);
|
||||
preparedStatement.setInt(2, wh.getUID());
|
||||
preparedStatement.setInt(2, wh.UID);
|
||||
|
||||
return (preparedStatement.executeUpdate() > 0);
|
||||
|
||||
@@ -125,7 +125,7 @@ public class dbWarehouseHandler extends dbHandlerBase {
|
||||
PreparedStatement preparedStatement = connection.prepareStatement("UPDATE `obj_warehouse` SET `warehouse_gold`=? WHERE `UID` = ?")) {
|
||||
|
||||
preparedStatement.setInt(1, amount);
|
||||
preparedStatement.setInt(2, wh.getUID());
|
||||
preparedStatement.setInt(2, wh.UID);
|
||||
|
||||
return (preparedStatement.executeUpdate() > 0);
|
||||
|
||||
@@ -141,7 +141,7 @@ public class dbWarehouseHandler extends dbHandlerBase {
|
||||
PreparedStatement preparedStatement = connection.prepareStatement("UPDATE `obj_warehouse` SET `warehouse_stone`=? WHERE `UID` = ?")) {
|
||||
|
||||
preparedStatement.setInt(1, amount);
|
||||
preparedStatement.setInt(2, wh.getUID());
|
||||
preparedStatement.setInt(2, wh.UID);
|
||||
|
||||
return (preparedStatement.executeUpdate() > 0);
|
||||
|
||||
@@ -157,7 +157,7 @@ public class dbWarehouseHandler extends dbHandlerBase {
|
||||
PreparedStatement preparedStatement = connection.prepareStatement("UPDATE `obj_warehouse` SET `warehouse_truesteel`=? WHERE `UID` = ?")) {
|
||||
|
||||
preparedStatement.setInt(1, amount);
|
||||
preparedStatement.setInt(2, wh.getUID());
|
||||
preparedStatement.setInt(2, wh.UID);
|
||||
|
||||
return (preparedStatement.executeUpdate() > 0);
|
||||
|
||||
@@ -173,7 +173,7 @@ public class dbWarehouseHandler extends dbHandlerBase {
|
||||
PreparedStatement preparedStatement = connection.prepareStatement("UPDATE `obj_warehouse` SET `warehouse_iron`=? WHERE `UID` = ?")) {
|
||||
|
||||
preparedStatement.setInt(1, amount);
|
||||
preparedStatement.setInt(2, wh.getUID());
|
||||
preparedStatement.setInt(2, wh.UID);
|
||||
|
||||
return (preparedStatement.executeUpdate() > 0);
|
||||
|
||||
@@ -189,7 +189,7 @@ public class dbWarehouseHandler extends dbHandlerBase {
|
||||
PreparedStatement preparedStatement = connection.prepareStatement("UPDATE `obj_warehouse` SET `warehouse_adamant`=? WHERE `UID` = ?")) {
|
||||
|
||||
preparedStatement.setInt(1, amount);
|
||||
preparedStatement.setInt(2, wh.getUID());
|
||||
preparedStatement.setInt(2, wh.UID);
|
||||
|
||||
return (preparedStatement.executeUpdate() > 0);
|
||||
|
||||
@@ -205,7 +205,7 @@ public class dbWarehouseHandler extends dbHandlerBase {
|
||||
PreparedStatement preparedStatement = connection.prepareStatement("UPDATE `obj_warehouse` SET `warehouse_lumber`=? WHERE `UID` = ?")) {
|
||||
|
||||
preparedStatement.setInt(1, amount);
|
||||
preparedStatement.setInt(2, wh.getUID());
|
||||
preparedStatement.setInt(2, wh.UID);
|
||||
|
||||
return (preparedStatement.executeUpdate() > 0);
|
||||
|
||||
@@ -221,7 +221,7 @@ public class dbWarehouseHandler extends dbHandlerBase {
|
||||
PreparedStatement preparedStatement = connection.prepareStatement("UPDATE `obj_warehouse` SET `warehouse_oak`=? WHERE `UID` = ?")) {
|
||||
|
||||
preparedStatement.setInt(1, amount);
|
||||
preparedStatement.setInt(2, wh.getUID());
|
||||
preparedStatement.setInt(2, wh.UID);
|
||||
|
||||
return (preparedStatement.executeUpdate() > 0);
|
||||
|
||||
@@ -237,7 +237,7 @@ public class dbWarehouseHandler extends dbHandlerBase {
|
||||
PreparedStatement preparedStatement = connection.prepareStatement("UPDATE `obj_warehouse` SET `warehouse_bronzewood`=? WHERE `UID` = ?")) {
|
||||
|
||||
preparedStatement.setInt(1, amount);
|
||||
preparedStatement.setInt(2, wh.getUID());
|
||||
preparedStatement.setInt(2, wh.UID);
|
||||
|
||||
return (preparedStatement.executeUpdate() > 0);
|
||||
|
||||
@@ -253,7 +253,7 @@ public class dbWarehouseHandler extends dbHandlerBase {
|
||||
PreparedStatement preparedStatement = connection.prepareStatement("UPDATE `obj_warehouse` SET `warehouse_mandrake`=? WHERE `UID` = ?")) {
|
||||
|
||||
preparedStatement.setInt(1, amount);
|
||||
preparedStatement.setInt(2, wh.getUID());
|
||||
preparedStatement.setInt(2, wh.UID);
|
||||
|
||||
return (preparedStatement.executeUpdate() > 0);
|
||||
|
||||
@@ -269,7 +269,7 @@ public class dbWarehouseHandler extends dbHandlerBase {
|
||||
PreparedStatement preparedStatement = connection.prepareStatement("UPDATE `obj_warehouse` SET `warehouse_coal`=? WHERE `UID` = ?")) {
|
||||
|
||||
preparedStatement.setInt(1, amount);
|
||||
preparedStatement.setInt(2, wh.getUID());
|
||||
preparedStatement.setInt(2, wh.UID);
|
||||
|
||||
return (preparedStatement.executeUpdate() > 0);
|
||||
|
||||
@@ -285,7 +285,7 @@ public class dbWarehouseHandler extends dbHandlerBase {
|
||||
PreparedStatement preparedStatement = connection.prepareStatement("UPDATE `obj_warehouse` SET `warehouse_agate`=? WHERE `UID` = ?")) {
|
||||
|
||||
preparedStatement.setInt(1, amount);
|
||||
preparedStatement.setInt(2, wh.getUID());
|
||||
preparedStatement.setInt(2, wh.UID);
|
||||
|
||||
return (preparedStatement.executeUpdate() > 0);
|
||||
|
||||
@@ -301,7 +301,7 @@ public class dbWarehouseHandler extends dbHandlerBase {
|
||||
PreparedStatement preparedStatement = connection.prepareStatement("UPDATE `obj_warehouse` SET `warehouse_diamond`=? WHERE `UID` = ?")) {
|
||||
|
||||
preparedStatement.setInt(1, amount);
|
||||
preparedStatement.setInt(2, wh.getUID());
|
||||
preparedStatement.setInt(2, wh.UID);
|
||||
|
||||
return (preparedStatement.executeUpdate() > 0);
|
||||
|
||||
@@ -317,7 +317,7 @@ public class dbWarehouseHandler extends dbHandlerBase {
|
||||
PreparedStatement preparedStatement = connection.prepareStatement("UPDATE `obj_warehouse` SET `warehouse_onyx`=? WHERE `UID` = ?")) {
|
||||
|
||||
preparedStatement.setInt(1, amount);
|
||||
preparedStatement.setInt(2, wh.getUID());
|
||||
preparedStatement.setInt(2, wh.UID);
|
||||
|
||||
return (preparedStatement.executeUpdate() > 0);
|
||||
|
||||
@@ -333,7 +333,7 @@ public class dbWarehouseHandler extends dbHandlerBase {
|
||||
PreparedStatement preparedStatement = connection.prepareStatement("UPDATE `obj_warehouse` SET `warehouse_azoth`=? WHERE `UID` = ?")) {
|
||||
|
||||
preparedStatement.setInt(1, amount);
|
||||
preparedStatement.setInt(2, wh.getUID());
|
||||
preparedStatement.setInt(2, wh.UID);
|
||||
|
||||
return (preparedStatement.executeUpdate() > 0);
|
||||
|
||||
@@ -349,7 +349,7 @@ public class dbWarehouseHandler extends dbHandlerBase {
|
||||
PreparedStatement preparedStatement = connection.prepareStatement("UPDATE `obj_warehouse` SET `warehouse_orichalk`=? WHERE `UID` = ?")) {
|
||||
|
||||
preparedStatement.setInt(1, amount);
|
||||
preparedStatement.setInt(2, wh.getUID());
|
||||
preparedStatement.setInt(2, wh.UID);
|
||||
|
||||
return (preparedStatement.executeUpdate() > 0);
|
||||
|
||||
@@ -365,7 +365,7 @@ public class dbWarehouseHandler extends dbHandlerBase {
|
||||
PreparedStatement preparedStatement = connection.prepareStatement("UPDATE `obj_warehouse` SET `warehouse_antimony`=? WHERE `UID` = ?")) {
|
||||
|
||||
preparedStatement.setInt(1, amount);
|
||||
preparedStatement.setInt(2, wh.getUID());
|
||||
preparedStatement.setInt(2, wh.UID);
|
||||
|
||||
return (preparedStatement.executeUpdate() > 0);
|
||||
|
||||
@@ -381,7 +381,7 @@ public class dbWarehouseHandler extends dbHandlerBase {
|
||||
PreparedStatement preparedStatement = connection.prepareStatement("UPDATE `obj_warehouse` SET `warehouse_sulfur`=? WHERE `UID` = ?")) {
|
||||
|
||||
preparedStatement.setInt(1, amount);
|
||||
preparedStatement.setInt(2, wh.getUID());
|
||||
preparedStatement.setInt(2, wh.UID);
|
||||
|
||||
return (preparedStatement.executeUpdate() > 0);
|
||||
|
||||
@@ -397,7 +397,7 @@ public class dbWarehouseHandler extends dbHandlerBase {
|
||||
PreparedStatement preparedStatement = connection.prepareStatement("UPDATE `obj_warehouse` SET `warehouse_quicksilver`=? WHERE `UID` = ?")) {
|
||||
|
||||
preparedStatement.setInt(1, amount);
|
||||
preparedStatement.setInt(2, wh.getUID());
|
||||
preparedStatement.setInt(2, wh.UID);
|
||||
|
||||
return (preparedStatement.executeUpdate() > 0);
|
||||
|
||||
@@ -413,7 +413,7 @@ public class dbWarehouseHandler extends dbHandlerBase {
|
||||
PreparedStatement preparedStatement = connection.prepareStatement("UPDATE `obj_warehouse` SET `warehouse_galvor`=? WHERE `UID` = ?")) {
|
||||
|
||||
preparedStatement.setInt(1, amount);
|
||||
preparedStatement.setInt(2, wh.getUID());
|
||||
preparedStatement.setInt(2, wh.UID);
|
||||
|
||||
return (preparedStatement.executeUpdate() > 0);
|
||||
|
||||
@@ -429,7 +429,7 @@ public class dbWarehouseHandler extends dbHandlerBase {
|
||||
PreparedStatement preparedStatement = connection.prepareStatement("UPDATE `obj_warehouse` SET `warehouse_wormwood`=? WHERE `UID` = ?")) {
|
||||
|
||||
preparedStatement.setInt(1, amount);
|
||||
preparedStatement.setInt(2, wh.getUID());
|
||||
preparedStatement.setInt(2, wh.UID);
|
||||
|
||||
return (preparedStatement.executeUpdate() > 0);
|
||||
|
||||
@@ -445,7 +445,7 @@ public class dbWarehouseHandler extends dbHandlerBase {
|
||||
PreparedStatement preparedStatement = connection.prepareStatement("UPDATE `obj_warehouse` SET `warehouse_obsidian`=? WHERE `UID` = ?")) {
|
||||
|
||||
preparedStatement.setInt(1, amount);
|
||||
preparedStatement.setInt(2, wh.getUID());
|
||||
preparedStatement.setInt(2, wh.UID);
|
||||
|
||||
return (preparedStatement.executeUpdate() > 0);
|
||||
|
||||
@@ -461,7 +461,7 @@ public class dbWarehouseHandler extends dbHandlerBase {
|
||||
PreparedStatement preparedStatement = connection.prepareStatement("UPDATE `obj_warehouse` SET `warehouse_bloodstone`=? WHERE `UID` = ?")) {
|
||||
|
||||
preparedStatement.setInt(1, amount);
|
||||
preparedStatement.setInt(2, wh.getUID());
|
||||
preparedStatement.setInt(2, wh.UID);
|
||||
|
||||
return (preparedStatement.executeUpdate() > 0);
|
||||
|
||||
@@ -477,7 +477,7 @@ public class dbWarehouseHandler extends dbHandlerBase {
|
||||
PreparedStatement preparedStatement = connection.prepareStatement("UPDATE `obj_warehouse` SET `warehouse_mithril`=? WHERE `UID` = ?")) {
|
||||
|
||||
preparedStatement.setInt(1, amount);
|
||||
preparedStatement.setInt(2, wh.getUID());
|
||||
preparedStatement.setInt(2, wh.UID);
|
||||
|
||||
return (preparedStatement.executeUpdate() > 0);
|
||||
|
||||
@@ -545,7 +545,7 @@ public class dbWarehouseHandler extends dbHandlerBase {
|
||||
while (rs.next()) {
|
||||
warehouse = new Warehouse(rs);
|
||||
warehouse.runAfterLoad();
|
||||
warehouse.loadAllTransactions();
|
||||
Warehouse.loadAllTransactions(warehouse);
|
||||
}
|
||||
|
||||
} catch (SQLException e) {
|
||||
|
||||
@@ -10,18 +10,15 @@
|
||||
package engine.devcmd.cmds;
|
||||
|
||||
import engine.Enum;
|
||||
import engine.Enum.GameObjectType;
|
||||
import engine.devcmd.AbstractDevCmd;
|
||||
import engine.gameManager.ChatManager;
|
||||
import engine.gameManager.DbManager;
|
||||
import engine.gameManager.ZoneManager;
|
||||
import engine.math.Vector3fImmutable;
|
||||
import engine.objects.*;
|
||||
import engine.objects.AbstractGameObject;
|
||||
import engine.objects.Mob;
|
||||
import engine.objects.PlayerCharacter;
|
||||
import engine.objects.Zone;
|
||||
import org.pmw.tinylog.Logger;
|
||||
|
||||
/**
|
||||
* @author Eighty
|
||||
*/
|
||||
public class AddMobCmd extends AbstractDevCmd {
|
||||
|
||||
public AddMobCmd() {
|
||||
@@ -38,27 +35,8 @@ public class AddMobCmd extends AbstractDevCmd {
|
||||
|
||||
Zone zone = ZoneManager.findSmallestZone(pc.getLoc());
|
||||
|
||||
if (words[0].equals("all")) {
|
||||
|
||||
for (AbstractGameObject mobbaseAGO : DbManager.getList(GameObjectType.MobBase)) {
|
||||
MobBase mb = (MobBase) mobbaseAGO;
|
||||
int loadID = mb.getObjectUUID();
|
||||
Mob mob = Mob.createMob(loadID, Vector3fImmutable.getRandomPointInCircle(pc.getLoc(), 100),
|
||||
null, zone, null, null, "", 1, Enum.AIAgentType.MOBILE);
|
||||
if (mob != null) {
|
||||
mob.updateDatabase();
|
||||
this.setResult(String.valueOf(mob.getDBID()));
|
||||
} else {
|
||||
throwbackError(pc, "Failed to create mob of type " + loadID);
|
||||
Logger.error("Failed to create mob of type "
|
||||
+ loadID);
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
int loadID;
|
||||
|
||||
try {
|
||||
loadID = Integer.parseInt(words[0]);
|
||||
} catch (NumberFormatException e) {
|
||||
@@ -72,7 +50,6 @@ public class AddMobCmd extends AbstractDevCmd {
|
||||
return; // NaN
|
||||
}
|
||||
|
||||
|
||||
if (zone == null) {
|
||||
throwbackError(pc, "Failed to find zone to place mob in.");
|
||||
return;
|
||||
@@ -83,9 +60,9 @@ public class AddMobCmd extends AbstractDevCmd {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
Mob mob = Mob.createMob(loadID, pc.getLoc(),
|
||||
null, zone, null, null, "", 1, Enum.AIAgentType.MOBILE);
|
||||
|
||||
if (mob != null) {
|
||||
mob.updateDatabase();
|
||||
ChatManager.chatSayInfo(pc,
|
||||
|
||||
@@ -1,60 +0,0 @@
|
||||
// • ▌ ▄ ·. ▄▄▄· ▄▄ • ▪ ▄▄· ▄▄▄▄· ▄▄▄· ▐▄▄▄ ▄▄▄ .
|
||||
// ·██ ▐███▪▐█ ▀█ ▐█ ▀ ▪██ ▐█ ▌▪▐█ ▀█▪▐█ ▀█ •█▌ ▐█▐▌·
|
||||
// ▐█ ▌▐▌▐█·▄█▀▀█ ▄█ ▀█▄▐█·██ ▄▄▐█▀▀█▄▄█▀▀█ ▐█▐ ▐▌▐▀▀▀
|
||||
// ██ ██▌▐█▌▐█ ▪▐▌▐█▄▪▐█▐█▌▐███▌██▄▪▐█▐█ ▪▐▌██▐ █▌▐█▄▄▌
|
||||
// ▀▀ █▪▀▀▀ ▀ ▀ ·▀▀▀▀ ▀▀▀·▀▀▀ ·▀▀▀▀ ▀ ▀ ▀▀ █▪ ▀▀▀
|
||||
// Magicbane Emulator Project © 2013 - 2022
|
||||
// www.magicbane.com
|
||||
|
||||
|
||||
package engine.devcmd.cmds;
|
||||
|
||||
import engine.CollisionEngine.Mesh;
|
||||
import engine.Enum;
|
||||
import engine.devcmd.AbstractDevCmd;
|
||||
import engine.objects.*;
|
||||
|
||||
public class ColliderCmd extends AbstractDevCmd {
|
||||
|
||||
public ColliderCmd() {
|
||||
super("collider");
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void _doCmd(PlayerCharacter pc, String[] words,
|
||||
AbstractGameObject target) {
|
||||
|
||||
String newline = "\r\n ";
|
||||
String output;
|
||||
if(target.getObjectType().equals(Enum.GameObjectType.Building) == false){
|
||||
throwbackInfo(pc,"Please Select A Building To Show Collider Data");
|
||||
}
|
||||
Building building = (Building)target;
|
||||
output = "Collision Info:" + newline;
|
||||
output += "Total Meshes: " + building.buildingMeshes.size() + newline;
|
||||
for(Mesh mesh : building.buildingMeshes){
|
||||
output += "-----------------------------" + newline;
|
||||
output += "Mesh ID: " + mesh.mesh_id + newline;
|
||||
output += "Mesh Location: " + mesh.mesh_location + newline;
|
||||
output += "Mesh Scale: " + mesh.mesh_scale + newline;
|
||||
output += "Mesh Min/Max: " + mesh.mesh_min_y + "/" + mesh.mesh_max_y + newline;
|
||||
output += "Mesh Triangle Count: " + mesh.triangles.size() + newline;
|
||||
output += "Mesh Rect: " + mesh.mesh_bounds + newline;
|
||||
output += "-----------------------------" + newline;
|
||||
}
|
||||
|
||||
throwbackInfo(pc,output);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String _getHelpString() {
|
||||
return "Displays Information About Colliders";
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String _getUsageString() {
|
||||
return "' /collider displays collision info when selected on a building";
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -9,7 +9,6 @@
|
||||
|
||||
package engine.devcmd.cmds;
|
||||
|
||||
import engine.CollisionEngine.Mesh;
|
||||
import engine.Enum;
|
||||
import engine.Enum.BuildingGroup;
|
||||
import engine.Enum.GameObjectType;
|
||||
@@ -245,6 +244,7 @@ public class InfoCmd extends AbstractDevCmd {
|
||||
for (Regions regions : targetBuilding.getBounds().getRegions()) {
|
||||
//TODO ADD REGION INFO
|
||||
}
|
||||
|
||||
break;
|
||||
case PlayerCharacter:
|
||||
output += newline;
|
||||
|
||||
@@ -9,12 +9,12 @@
|
||||
|
||||
package engine.devcmd.cmds;
|
||||
|
||||
import engine.CollisionEngine.Mesh;
|
||||
import engine.Enum;
|
||||
import engine.devcmd.AbstractDevCmd;
|
||||
import engine.gameManager.BuildingManager;
|
||||
import engine.objects.*;
|
||||
|
||||
import java.awt.geom.Point2D;
|
||||
import java.lang.reflect.Field;
|
||||
|
||||
public class RegionCmd extends AbstractDevCmd {
|
||||
|
||||
@@ -37,6 +37,7 @@ public class RegionCmd extends AbstractDevCmd {
|
||||
Regions region = ((AbstractCharacter)target).region;
|
||||
if (region == null) {
|
||||
this.throwbackInfo(pc, "No Region Found.");
|
||||
return;
|
||||
}
|
||||
|
||||
if(region != null) {
|
||||
@@ -47,6 +48,7 @@ public class RegionCmd extends AbstractDevCmd {
|
||||
output += "is Outside: " + region.isOutside();
|
||||
this.throwbackInfo(pc, output);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -13,10 +13,7 @@ import engine.Enum.BuildingGroup;
|
||||
import engine.Enum.DbObjectType;
|
||||
import engine.InterestManagement.WorldGrid;
|
||||
import engine.devcmd.AbstractDevCmd;
|
||||
import engine.gameManager.BuildingManager;
|
||||
import engine.gameManager.ChatManager;
|
||||
import engine.gameManager.DbManager;
|
||||
import engine.gameManager.ZoneManager;
|
||||
import engine.gameManager.*;
|
||||
import engine.math.Vector3fImmutable;
|
||||
import engine.objects.*;
|
||||
|
||||
|
||||
@@ -9,21 +9,15 @@
|
||||
|
||||
package engine.gameManager;
|
||||
|
||||
import engine.CollisionEngine.CollisionManager;
|
||||
import engine.CollisionEngine.MeshData;
|
||||
import engine.Enum;
|
||||
import engine.Enum.BuildingGroup;
|
||||
import engine.Enum.GameObjectType;
|
||||
import engine.InterestManagement.InterestManager;
|
||||
import engine.InterestManagement.WorldGrid;
|
||||
import engine.CollisionEngine.Mesh;
|
||||
import engine.CollisionEngine.Triangle;
|
||||
import engine.job.JobContainer;
|
||||
import engine.job.JobScheduler;
|
||||
import engine.jobs.UpgradeBuildingJob;
|
||||
import engine.math.Bounds;
|
||||
import engine.math.Vector2f;
|
||||
import engine.math.Vector3f;
|
||||
import engine.math.Vector3fImmutable;
|
||||
import engine.net.client.ClientConnection;
|
||||
import engine.net.client.msg.ErrorPopupMsg;
|
||||
@@ -33,9 +27,6 @@ import engine.objects.*;
|
||||
import engine.server.MBServerStatics;
|
||||
import org.pmw.tinylog.Logger;
|
||||
|
||||
import java.awt.geom.Line2D;
|
||||
import java.awt.geom.Point2D;
|
||||
import java.awt.geom.Rectangle2D;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.ZoneId;
|
||||
import java.util.ArrayList;
|
||||
@@ -47,12 +38,6 @@ public enum BuildingManager {
|
||||
|
||||
BUILDINGMANAGER;
|
||||
|
||||
public static HashMap<Integer,ArrayList<Integer>> prop_meshes = new HashMap<>();
|
||||
public static HashMap<Integer, Vector2f> mesh_heights = new HashMap<>();
|
||||
public static HashMap<Integer,ArrayList<ArrayList<Vector3f>>> mesh_triangle_points = new HashMap<>();
|
||||
|
||||
public static HashMap<Integer, Rectangle2D> mesh_bounding_boxes = new HashMap<>();
|
||||
|
||||
public static HashMap<Integer, ArrayList<BuildingLocation>> _stuckLocations = new HashMap<>();
|
||||
public static HashMap<Integer, ArrayList<BuildingLocation>> _slotLocations = new HashMap<>();
|
||||
|
||||
@@ -249,15 +234,15 @@ public enum BuildingManager {
|
||||
ChatManager.chatSystemInfo(player, "You can not carry any more of that item.");
|
||||
return false;
|
||||
}
|
||||
if (warehouse.getResources().get(resourceBase) == null)
|
||||
if (warehouse.resources.get(resourceBase) == null)
|
||||
continue;
|
||||
|
||||
int resourceAmount = warehouse.getResources().get(resourceBase);
|
||||
int resourceAmount = warehouse.resources.get(resourceBase);
|
||||
|
||||
if (resourceAmount <= 0)
|
||||
continue;
|
||||
|
||||
if (warehouse.loot(player, resourceBase, resourceAmount, true))
|
||||
if (Warehouse.loot(warehouse, player, resourceBase, resourceAmount, true))
|
||||
ChatManager.chatInfoInfo(player, "You have looted " + resourceAmount + ' ' + resourceBase.getName());
|
||||
}
|
||||
break;
|
||||
@@ -560,7 +545,7 @@ public enum BuildingManager {
|
||||
|
||||
NPC npc = null;
|
||||
|
||||
npc = NPC.createNPC(pirateName, NpcID.getObjectUUID(), NpcLoc, null, zone, (short) rank, building);
|
||||
npc = NPC.createNPC(pirateName, NpcID.getObjectUUID(), NpcLoc, building.getGuild(), zone, (short) rank, building);
|
||||
|
||||
if (npc == null)
|
||||
return false;
|
||||
@@ -957,9 +942,6 @@ public enum BuildingManager {
|
||||
|
||||
cleanupHirelings(building);
|
||||
|
||||
//rebake colliders for change in rank
|
||||
//BuildingManager.BakeBuildingMeshes(building);
|
||||
BuildingManager.BakeBuildingColliders(building);
|
||||
building.isDeranking.compareAndSet(true, false);
|
||||
}
|
||||
|
||||
@@ -978,46 +960,4 @@ public enum BuildingManager {
|
||||
return null;
|
||||
}
|
||||
|
||||
public static void BakeBuildingColliders(Building building){
|
||||
|
||||
if(CollisionManager.structure_meshes.containsKey(building.meshUUID) == false) {
|
||||
Logger.error("No Meshes Found For Structure: " + building.meshUUID);
|
||||
return;
|
||||
}
|
||||
|
||||
//create the empty array of meshes
|
||||
building.buildingMeshes = new ArrayList<>();
|
||||
|
||||
//create the actual meshes from the stored mesh data
|
||||
for(MeshData meshData : CollisionManager.structure_meshes.get(building.meshUUID)){
|
||||
if(meshData.meshID == 0)
|
||||
continue;
|
||||
|
||||
int degrees = (int)Math.toDegrees(building.getBounds().getQuaternion().angleY);
|
||||
|
||||
Mesh generatedMesh = new Mesh();
|
||||
|
||||
generatedMesh.meshData = meshData;
|
||||
|
||||
Vector3f buildingLoc = new Vector3f(building.loc.x,building.loc.y,building.loc.z);
|
||||
|
||||
Vector3f offset_mesh_loc = buildingLoc.add(meshData.loc);
|
||||
Vector3f offset_mesh_end = buildingLoc.add(meshData.endPoint);
|
||||
Vector3f offset_mesh_ref = buildingLoc.add(meshData.refPoint);
|
||||
|
||||
generatedMesh.mesh_location = Vector3f.rotateAroundPoint(offset_mesh_loc,buildingLoc,degrees);
|
||||
generatedMesh.mesh_end_point = Vector3f.rotateAroundPoint(offset_mesh_end,buildingLoc,degrees);
|
||||
generatedMesh.mesh_ref_point = Vector3f.rotateAroundPoint(offset_mesh_ref,buildingLoc,degrees);
|
||||
|
||||
generatedMesh.mesh_max_y = building.loc.y + meshData.maxY;
|
||||
generatedMesh.mesh_min_y = building.loc.y + meshData.minY;
|
||||
generatedMesh.mesh_scale = meshData.scale;
|
||||
generatedMesh.mesh_id = meshData.meshID;
|
||||
generatedMesh.parent_prop_id = meshData.propID;
|
||||
generatedMesh.parent_structure_id = building.meshUUID;
|
||||
generatedMesh.parentUUID = building.getObjectUUID();
|
||||
generatedMesh.update();
|
||||
building.buildingMeshes.add(generatedMesh);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -140,7 +140,6 @@ public enum DevCmdManager {
|
||||
DevCmdManager.registerDevCmd(new BoundsCmd());
|
||||
DevCmdManager.registerDevCmd(new GotoBoundsCmd());
|
||||
DevCmdManager.registerDevCmd(new RegionCmd());
|
||||
DevCmdManager.registerDevCmd(new ColliderCmd());
|
||||
DevCmdManager.registerDevCmd(new SetMaintCmd());
|
||||
DevCmdManager.registerDevCmd(new ApplyBonusCmd());
|
||||
DevCmdManager.registerDevCmd(new AuditFailedItemsCmd());
|
||||
|
||||
@@ -45,22 +45,27 @@ public enum MaintenanceManager {
|
||||
// Deduct upkeep and build list of buildings
|
||||
// which did not have funds available
|
||||
|
||||
for (Building building : maintList) {
|
||||
|
||||
if (chargeUpkeep(building) == false)
|
||||
derankList.add(building);
|
||||
try {
|
||||
for (Building building : maintList)
|
||||
if (chargeUpkeep(building) == false)
|
||||
derankList.add(building);
|
||||
} catch (Exception e) {
|
||||
Logger.error(e);
|
||||
}
|
||||
// Reset maintenance dates for these buildings
|
||||
|
||||
for (Building building : maintList) {
|
||||
for (Building building : maintList)
|
||||
setMaintDateTime(building, LocalDateTime.now().plusDays(7));
|
||||
|
||||
}
|
||||
// Derak or destroy buildings that did not
|
||||
// have funds available.
|
||||
|
||||
for (Building building : derankList)
|
||||
building.destroyOrDerank(null);
|
||||
try {
|
||||
for (Building building : derankList)
|
||||
building.destroyOrDerank(null);
|
||||
} catch (Exception e) {
|
||||
Logger.error(e);
|
||||
}
|
||||
|
||||
Logger.info("Structures: " + buildingList.size() + " Maint: " + maintList.size() + " Derank: " + derankList.size());
|
||||
}
|
||||
@@ -179,7 +184,7 @@ public enum MaintenanceManager {
|
||||
if ((overDraft > 0))
|
||||
if ((building.getBlueprint().getBuildingGroup().equals(Enum.BuildingGroup.SHRINE) == false) &&
|
||||
(warehouse != null) && building.assetIsProtected() == true &&
|
||||
(warehouse.getResources().get(ItemBase.GOLD_ITEM_BASE)) >= overDraft) {
|
||||
(warehouse.resources.get(ItemBase.GOLD_ITEM_BASE)) >= overDraft) {
|
||||
hasFunds = true;
|
||||
}
|
||||
|
||||
@@ -194,22 +199,22 @@ public enum MaintenanceManager {
|
||||
hasResources = false;
|
||||
else {
|
||||
|
||||
resourceValue = warehouse.getResources().get(Warehouse.stoneIB);
|
||||
resourceValue = warehouse.resources.get(ItemBase.getItemBase(1580000));
|
||||
|
||||
if (resourceValue < 1500)
|
||||
hasResources = false;
|
||||
|
||||
resourceValue = warehouse.getResources().get(Warehouse.lumberIB);
|
||||
resourceValue = warehouse.resources.get(ItemBase.getItemBase(1580004));
|
||||
|
||||
if (resourceValue < 1500)
|
||||
hasResources = false;
|
||||
|
||||
resourceValue = warehouse.getResources().get(Warehouse.galvorIB);
|
||||
resourceValue = warehouse.resources.get(ItemBase.getItemBase(1580017));
|
||||
|
||||
if (resourceValue < 5)
|
||||
hasResources = false;
|
||||
|
||||
resourceValue = warehouse.getResources().get(Warehouse.wormwoodIB);
|
||||
resourceValue = warehouse.resources.get(ItemBase.getItemBase(1580018));
|
||||
|
||||
if (resourceValue < 5)
|
||||
hasResources = false;
|
||||
@@ -242,11 +247,11 @@ public enum MaintenanceManager {
|
||||
|
||||
if (overDraft > 0) {
|
||||
|
||||
resourceValue = warehouse.getResources().get(Warehouse.goldIB);
|
||||
resourceValue = warehouse.resources.get(ItemBase.getItemBase(7));
|
||||
|
||||
if (DbManager.WarehouseQueries.updateGold(warehouse, resourceValue - overDraft) == true) {
|
||||
warehouse.getResources().put(Warehouse.goldIB, resourceValue - overDraft);
|
||||
warehouse.AddTransactionToWarehouse(Enum.GameObjectType.Building, building.getObjectUUID(), Enum.TransactionType.WITHDRAWL, Resource.GOLD, overDraft);
|
||||
warehouse.resources.put(ItemBase.getItemBase(7), resourceValue - overDraft);
|
||||
Warehouse.AddTransactionToWarehouse(warehouse, Enum.GameObjectType.Building, building.getObjectUUID(), Enum.TransactionType.WITHDRAWL, Resource.GOLD, overDraft);
|
||||
} else {
|
||||
Logger.error("gold update failed for warehouse of UUID:" + warehouse.getObjectUUID());
|
||||
return true;
|
||||
@@ -262,11 +267,11 @@ public enum MaintenanceManager {
|
||||
|
||||
// Withdraw Stone
|
||||
|
||||
resourceValue = warehouse.getResources().get(Warehouse.stoneIB);
|
||||
resourceValue = warehouse.resources.get(ItemBase.getItemBase(1580000));
|
||||
|
||||
if (DbManager.WarehouseQueries.updateStone(warehouse, resourceValue - 1500) == true) {
|
||||
warehouse.getResources().put(Warehouse.stoneIB, resourceValue - 1500);
|
||||
warehouse.AddTransactionToWarehouse(Enum.GameObjectType.Building, building.getObjectUUID(), Enum.TransactionType.WITHDRAWL, Resource.STONE, 1500);
|
||||
warehouse.resources.put(ItemBase.getItemBase(1580000), resourceValue - 1500);
|
||||
Warehouse.AddTransactionToWarehouse(warehouse, Enum.GameObjectType.Building, building.getObjectUUID(), Enum.TransactionType.WITHDRAWL, Resource.STONE, 1500);
|
||||
} else {
|
||||
Logger.error("stone update failed for warehouse of UUID:" + warehouse.getObjectUUID());
|
||||
return true;
|
||||
@@ -274,11 +279,11 @@ public enum MaintenanceManager {
|
||||
|
||||
// Withdraw Lumber
|
||||
|
||||
resourceValue = warehouse.getResources().get(Warehouse.lumberIB);
|
||||
resourceValue = warehouse.resources.get(ItemBase.getItemBase(1580004));
|
||||
|
||||
if (DbManager.WarehouseQueries.updateLumber(warehouse, resourceValue - 1500) == true) {
|
||||
warehouse.getResources().put(Warehouse.lumberIB, resourceValue - 1500);
|
||||
warehouse.AddTransactionToWarehouse(Enum.GameObjectType.Building, building.getObjectUUID(), Enum.TransactionType.WITHDRAWL, Resource.LUMBER, 1500);
|
||||
warehouse.resources.put(ItemBase.getItemBase(1580004), resourceValue - 1500);
|
||||
Warehouse.AddTransactionToWarehouse(warehouse, Enum.GameObjectType.Building, building.getObjectUUID(), Enum.TransactionType.WITHDRAWL, Resource.LUMBER, 1500);
|
||||
} else {
|
||||
Logger.error("lumber update failed for warehouse of UUID:" + warehouse.getObjectUUID());
|
||||
return true;
|
||||
@@ -286,21 +291,21 @@ public enum MaintenanceManager {
|
||||
|
||||
// Withdraw Galvor
|
||||
|
||||
resourceValue = warehouse.getResources().get(Warehouse.galvorIB);
|
||||
resourceValue = warehouse.resources.get(ItemBase.getItemBase(1580017));
|
||||
|
||||
if (DbManager.WarehouseQueries.updateGalvor(warehouse, resourceValue - 5) == true) {
|
||||
warehouse.getResources().put(Warehouse.galvorIB, resourceValue - 5);
|
||||
warehouse.AddTransactionToWarehouse(Enum.GameObjectType.Building, building.getObjectUUID(), Enum.TransactionType.WITHDRAWL, Resource.GALVOR, 5);
|
||||
warehouse.resources.put(ItemBase.getItemBase(1580017), resourceValue - 5);
|
||||
Warehouse.AddTransactionToWarehouse(warehouse, Enum.GameObjectType.Building, building.getObjectUUID(), Enum.TransactionType.WITHDRAWL, Resource.GALVOR, 5);
|
||||
} else {
|
||||
Logger.error("galvor update failed for warehouse of UUID:" + warehouse.getObjectUUID());
|
||||
return true;
|
||||
}
|
||||
|
||||
resourceValue = warehouse.getResources().get(Warehouse.wormwoodIB);
|
||||
resourceValue = warehouse.resources.get(ItemBase.getItemBase(1580018));
|
||||
|
||||
if (DbManager.WarehouseQueries.updateWormwood(warehouse, resourceValue - 5) == true) {
|
||||
warehouse.getResources().put(Warehouse.wormwoodIB, resourceValue - 5);
|
||||
warehouse.AddTransactionToWarehouse(Enum.GameObjectType.Building, building.getObjectUUID(), Enum.TransactionType.WITHDRAWL, Resource.WORMWOOD, 5);
|
||||
warehouse.resources.put(ItemBase.getItemBase(1580018), resourceValue - 5);
|
||||
Warehouse.AddTransactionToWarehouse(warehouse, Enum.GameObjectType.Building, building.getObjectUUID(), Enum.TransactionType.WITHDRAWL, Resource.WORMWOOD, 5);
|
||||
} else {
|
||||
Logger.error("wyrmwood update failed for warehouse of UUID:" + warehouse.getObjectUUID());
|
||||
}
|
||||
|
||||
@@ -939,16 +939,16 @@ public class MobAI {
|
||||
|
||||
//dont scan self.
|
||||
|
||||
if (mob.equals(awoMob) || (mob.agentType.equals(Enum.AIAgentType.GUARDCAPTAIN)) == true)
|
||||
if (mob.equals(awoMob))
|
||||
continue;
|
||||
|
||||
Mob aggroMob = (Mob) awoMob;
|
||||
|
||||
//don't attack other guards
|
||||
|
||||
if ((aggroMob.agentType.equals(Enum.AIAgentType.GUARDCAPTAIN)))
|
||||
if (aggroMob.isGuard() == true)
|
||||
continue;
|
||||
|
||||
//don't attack pets
|
||||
if (aggroMob.agentType.equals(Enum.AIAgentType.PET))
|
||||
continue;
|
||||
|
||||
|
||||
@@ -171,7 +171,7 @@ public class ManageCityAssetMsgHandler extends AbstractClientMsgHandler {
|
||||
if (warehouse == null)
|
||||
return true;
|
||||
|
||||
if (warehouse.isEmpty()) {
|
||||
if (Warehouse.isEmpty(warehouse)) {
|
||||
ErrorPopupMsg.sendErrorPopup(player, 167); // no more resources.
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -437,13 +437,13 @@ public class MerchantMsgHandler extends AbstractClientMsgHandler {
|
||||
DispatchMessage.dispatchMsgDispatch(dispatch, Enum.DispatchChannel.SECONDARY);
|
||||
break;
|
||||
case 17:
|
||||
Warehouse.warehouseWithdraw(msg, player, npc, origin);
|
||||
Warehouse.warehouseWithdraw(msg, player, npc);
|
||||
break;
|
||||
case 18:
|
||||
Warehouse.warehouseDeposit(msg, player, npc, origin);
|
||||
Warehouse.warehouseDeposit(msg, player, npc);
|
||||
break;
|
||||
case 19:
|
||||
Warehouse.warehouseLock(msg, player, npc, origin);
|
||||
Warehouse.warehouseLock(msg, player, npc);
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
@@ -9,22 +9,14 @@
|
||||
|
||||
package engine.net.client.handlers;
|
||||
|
||||
import engine.InterestManagement.WorldGrid;
|
||||
import engine.Enum;
|
||||
import engine.exception.MsgSendException;
|
||||
import engine.gameManager.BuildingManager;
|
||||
import engine.gameManager.ChatManager;
|
||||
import engine.CollisionEngine.CollisionManager;
|
||||
import engine.gameManager.MovementManager;
|
||||
import engine.math.Vector3fImmutable;
|
||||
import engine.net.client.ClientConnection;
|
||||
import engine.net.client.msg.ClientNetMsg;
|
||||
import engine.net.client.msg.MoveToPointMsg;
|
||||
import engine.objects.*;
|
||||
import engine.server.MBServerStatics;
|
||||
|
||||
import java.awt.geom.Line2D;
|
||||
|
||||
import java.util.HashSet;
|
||||
|
||||
public class MoveToPointHandler extends AbstractClientMsgHandler {
|
||||
|
||||
@@ -40,32 +32,6 @@ public class MoveToPointHandler extends AbstractClientMsgHandler {
|
||||
if(pc == null)
|
||||
return true;
|
||||
|
||||
//check for collisions
|
||||
Line2D travelLine = new Line2D.Float();
|
||||
Vector3fImmutable endLoc = new Vector3fImmutable(msg.getEndLat(),msg.getEndAlt(),msg.getEndLon());
|
||||
travelLine.setLine(pc.loc.x,pc.loc.z,endLoc.x,endLoc.z);
|
||||
if(BuildingManager.getBuildingAtLocation(pc.loc) != null){
|
||||
Building current = BuildingManager.getBuildingAtLocation(pc.loc);
|
||||
if (CollisionManager.CollisionDetected(current, travelLine, pc.getCharacterHeight(), pc.loc.y)) {
|
||||
ChatManager.chatSystemInfo(pc, "Collision Detected With : " + current.getName() + " Rect: " + current.buildingRect);
|
||||
//msg.setEndCoord();
|
||||
MovementManager.movement(msg, pc);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
HashSet<AbstractWorldObject> awoList = WorldGrid.getObjectsInRangePartial(pc.loc, 1000, MBServerStatics.MASK_BUILDING);
|
||||
for(AbstractWorldObject awo : awoList){
|
||||
Building building = (Building)awo;
|
||||
if(travelLine.intersects(building.buildingRect) || building.buildingRect.contains(travelLine.getP1()) || building.buildingRect.contains(travelLine.getP2())) {
|
||||
if (CollisionManager.CollisionDetected(building, travelLine, pc.getCharacterHeight(), pc.loc.y)) {
|
||||
ChatManager.chatSystemInfo(pc, "Collision Detected With : " + building.getName() + " Rect: " + building.buildingRect);
|
||||
//msg.setEndCoord();
|
||||
MovementManager.movement(msg, pc);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
//ChatManager.chatSystemInfo(pc, "No Collision Detected");
|
||||
MovementManager.movement(msg, pc);
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -98,27 +98,27 @@ public class ObjectActionMsgHandler extends AbstractClientMsgHandler {
|
||||
return false;
|
||||
}
|
||||
|
||||
resourceValue = warehouse.getResources().get(Warehouse.goldIB);
|
||||
resourceValue = warehouse.resources.get(ItemBase.getItemBase(7));
|
||||
|
||||
if (resourceValue < 5000000)
|
||||
hasResources = false;
|
||||
|
||||
resourceValue = warehouse.getResources().get(Warehouse.stoneIB);
|
||||
resourceValue = warehouse.resources.get(ItemBase.getItemBase(1580000));
|
||||
|
||||
if (resourceValue < 8000)
|
||||
hasResources = false;
|
||||
|
||||
resourceValue = warehouse.getResources().get(Warehouse.lumberIB);
|
||||
resourceValue = warehouse.resources.get(ItemBase.getItemBase(1580004));
|
||||
|
||||
if (resourceValue < 8000)
|
||||
hasResources = false;
|
||||
|
||||
resourceValue = warehouse.getResources().get(Warehouse.galvorIB);
|
||||
resourceValue = warehouse.resources.get(ItemBase.getItemBase(1580017));
|
||||
|
||||
if (resourceValue < 15)
|
||||
hasResources = false;
|
||||
|
||||
resourceValue = warehouse.getResources().get(Warehouse.wormwoodIB);
|
||||
resourceValue = warehouse.resources.get(ItemBase.getItemBase(1580018));
|
||||
|
||||
if (resourceValue < 15)
|
||||
hasResources = false;
|
||||
@@ -130,51 +130,51 @@ public class ObjectActionMsgHandler extends AbstractClientMsgHandler {
|
||||
|
||||
// Remove resources from warehouse before claiming realm
|
||||
|
||||
resourceValue = warehouse.getResources().get(Warehouse.goldIB);
|
||||
resourceValue = warehouse.resources.get(ItemBase.getItemBase(7));
|
||||
|
||||
if (DbManager.WarehouseQueries.updateGold(warehouse, resourceValue - 5000000) == true) {
|
||||
warehouse.getResources().put(Warehouse.goldIB, resourceValue - 5000000);
|
||||
warehouse.AddTransactionToWarehouse(engine.Enum.GameObjectType.Building, tol.getObjectUUID(), Enum.TransactionType.WITHDRAWL, Resource.GOLD, 5000000);
|
||||
warehouse.resources.put(ItemBase.getItemBase(7), resourceValue - 5000000);
|
||||
Warehouse.AddTransactionToWarehouse(warehouse, engine.Enum.GameObjectType.Building, tol.getObjectUUID(), Enum.TransactionType.WITHDRAWL, Resource.GOLD, 5000000);
|
||||
} else {
|
||||
Logger.error("gold update failed for warehouse of UUID:" + warehouse.getObjectUUID());
|
||||
return false;
|
||||
}
|
||||
|
||||
resourceValue = warehouse.getResources().get(Warehouse.stoneIB);
|
||||
resourceValue = warehouse.resources.get(ItemBase.getItemBase(1580000));
|
||||
|
||||
if (DbManager.WarehouseQueries.updateStone(warehouse, resourceValue - 8000) == true) {
|
||||
warehouse.getResources().put(Warehouse.stoneIB, resourceValue - 8000);
|
||||
warehouse.AddTransactionToWarehouse(engine.Enum.GameObjectType.Building, tol.getObjectUUID(), Enum.TransactionType.WITHDRAWL, Resource.STONE, 8000);
|
||||
warehouse.resources.put(ItemBase.getItemBase(1580000), resourceValue - 8000);
|
||||
Warehouse.AddTransactionToWarehouse(warehouse, engine.Enum.GameObjectType.Building, tol.getObjectUUID(), Enum.TransactionType.WITHDRAWL, Resource.STONE, 8000);
|
||||
} else {
|
||||
Logger.error("stone update failed for warehouse of UUID:" + warehouse.getObjectUUID());
|
||||
return false;
|
||||
}
|
||||
|
||||
resourceValue = warehouse.getResources().get(Warehouse.lumberIB);
|
||||
resourceValue = warehouse.resources.get(ItemBase.getItemBase(1580004));
|
||||
|
||||
if (DbManager.WarehouseQueries.updateLumber(warehouse, resourceValue - 8000) == true) {
|
||||
warehouse.getResources().put(Warehouse.lumberIB, resourceValue - 8000);
|
||||
warehouse.AddTransactionToWarehouse(engine.Enum.GameObjectType.Building, tol.getObjectUUID(), Enum.TransactionType.WITHDRAWL, Resource.LUMBER, 8000);
|
||||
warehouse.resources.put(ItemBase.getItemBase(1580004), resourceValue - 8000);
|
||||
Warehouse.AddTransactionToWarehouse(warehouse, engine.Enum.GameObjectType.Building, tol.getObjectUUID(), Enum.TransactionType.WITHDRAWL, Resource.LUMBER, 8000);
|
||||
} else {
|
||||
Logger.error("lumber update failed for warehouse of UUID:" + warehouse.getObjectUUID());
|
||||
return false;
|
||||
}
|
||||
|
||||
resourceValue = warehouse.getResources().get(Warehouse.galvorIB);
|
||||
resourceValue = warehouse.resources.get(ItemBase.getItemBase(1580017));
|
||||
|
||||
if (DbManager.WarehouseQueries.updateGalvor(warehouse, resourceValue - 15) == true) {
|
||||
warehouse.getResources().put(Warehouse.galvorIB, resourceValue - 15);
|
||||
warehouse.AddTransactionToWarehouse(engine.Enum.GameObjectType.Building, tol.getObjectUUID(), Enum.TransactionType.WITHDRAWL, Resource.GALVOR, 15);
|
||||
warehouse.resources.put(ItemBase.getItemBase(1580017), resourceValue - 15);
|
||||
Warehouse.AddTransactionToWarehouse(warehouse, engine.Enum.GameObjectType.Building, tol.getObjectUUID(), Enum.TransactionType.WITHDRAWL, Resource.GALVOR, 15);
|
||||
} else {
|
||||
Logger.error("galvor update failed for warehouse of UUID:" + warehouse.getObjectUUID());
|
||||
return false;
|
||||
}
|
||||
|
||||
resourceValue = warehouse.getResources().get(Warehouse.wormwoodIB);
|
||||
resourceValue = warehouse.resources.get(ItemBase.getItemBase(1580018));
|
||||
|
||||
if (DbManager.WarehouseQueries.updateWormwood(warehouse, resourceValue - 15) == true) {
|
||||
warehouse.getResources().put(Warehouse.wormwoodIB, resourceValue - 15);
|
||||
warehouse.AddTransactionToWarehouse(engine.Enum.GameObjectType.Building, tol.getObjectUUID(), Enum.TransactionType.WITHDRAWL, Resource.WORMWOOD, 15);
|
||||
warehouse.resources.put(ItemBase.getItemBase(1580018), resourceValue - 15);
|
||||
Warehouse.AddTransactionToWarehouse(warehouse, engine.Enum.GameObjectType.Building, tol.getObjectUUID(), Enum.TransactionType.WITHDRAWL, Resource.WORMWOOD, 15);
|
||||
} else {
|
||||
Logger.error("wormwood update failed for warehouse of UUID:" + warehouse.getObjectUUID());
|
||||
return false;
|
||||
|
||||
@@ -111,7 +111,7 @@ public class TaxCityMsgHandler extends AbstractClientMsgHandler {
|
||||
|
||||
ViewResourcesMessage vrm = new ViewResourcesMessage(player);
|
||||
vrm.setGuild(building.getGuild());
|
||||
vrm.setWarehouseBuilding(BuildingManager.getBuildingFromCache(building.getCity().getWarehouse().getBuildingUID()));
|
||||
vrm.setWarehouseBuilding(BuildingManager.getBuildingFromCache(building.getCity().getWarehouse().buildingUID));
|
||||
vrm.configure();
|
||||
Dispatch dispatch = Dispatch.borrow(player, msg);
|
||||
DispatchMessage.dispatchMsgDispatch(dispatch, Enum.DispatchChannel.SECONDARY);
|
||||
|
||||
@@ -61,13 +61,13 @@ public class ArcViewAssetTransactionsMsg extends ClientNetMsg {
|
||||
|
||||
public void configure() {
|
||||
|
||||
warehouseBuilding = BuildingManager.getBuilding(this.warehouse.getBuildingUID());
|
||||
warehouseBuilding = BuildingManager.getBuilding(this.warehouse.buildingUID);
|
||||
transactions = new ArrayList<>(50);
|
||||
|
||||
if (this.warehouse.getTransactions().size() > 150) {
|
||||
transactions.addAll(this.warehouse.getTransactions().subList(this.warehouse.getTransactions().size() - 150, this.warehouse.getTransactions().size()));
|
||||
if (this.warehouse.transactions.size() > 150) {
|
||||
transactions.addAll(this.warehouse.transactions.subList(this.warehouse.transactions.size() - 150, this.warehouse.transactions.size()));
|
||||
} else
|
||||
transactions = this.warehouse.getTransactions();
|
||||
transactions = this.warehouse.transactions;
|
||||
|
||||
}
|
||||
|
||||
@@ -78,7 +78,7 @@ public class ArcViewAssetTransactionsMsg extends ClientNetMsg {
|
||||
protected void _serialize(ByteBufferWriter writer) throws SerializationException {
|
||||
|
||||
writer.putInt(this.transactionID);
|
||||
writer.putInt(this.warehouse.getBuildingUID());
|
||||
writer.putInt(this.warehouse.buildingUID);
|
||||
writer.putInt(transactions.size()); //list Size
|
||||
|
||||
for (Transaction transaction : transactions) {
|
||||
@@ -124,7 +124,7 @@ public class ArcViewAssetTransactionsMsg extends ClientNetMsg {
|
||||
writer.putInt(transaction.getTargetUUID()); //ID
|
||||
writer.putString(name); //Name of depositer/withdrawler or mine name
|
||||
writer.putInt(GameObjectType.Building.ordinal()); //Type
|
||||
writer.putInt(warehouse.getBuildingUID()); //ID
|
||||
writer.putInt(warehouse.buildingUID); //ID
|
||||
writer.putString(warehouseBuilding.getName()); //warehouse
|
||||
writer.putInt(transaction.getTransactionType().getID()); //79,80 withdrew, 81 mine produced, 82 deposit
|
||||
writer.putInt(transaction.getAmount()); //amount
|
||||
|
||||
@@ -89,23 +89,23 @@ public class ViewResourcesMessage extends ClientNetMsg {
|
||||
@Override
|
||||
protected void _serialize(ByteBufferWriter writer) {
|
||||
|
||||
writer.putInt(warehouseObject.getResources().size());
|
||||
writer.putInt(warehouseObject.resources.size());
|
||||
|
||||
for (ItemBase ib : (warehouseObject.getResources().keySet())) {
|
||||
for (ItemBase ib : (warehouseObject.resources.keySet())) {
|
||||
|
||||
writer.putInt(ib.getHashID());
|
||||
writer.putInt((warehouseObject.getResources().get(ib)));
|
||||
writer.putInt((warehouseObject.resources.get(ib)));
|
||||
|
||||
|
||||
if (warehouseObject.isResourceLocked(ib) == true)
|
||||
if (Warehouse.isResourceLocked(warehouseObject, ib) == true)
|
||||
writer.put((byte) 1);
|
||||
else
|
||||
writer.put((byte) 0);
|
||||
}
|
||||
|
||||
writer.putInt(warehouseObject.getResources().size());
|
||||
writer.putInt(warehouseObject.resources.size());
|
||||
|
||||
for (ItemBase ib : warehouseObject.getResources().keySet()) {
|
||||
for (ItemBase ib : warehouseObject.resources.keySet()) {
|
||||
writer.putInt(ib.getHashID());
|
||||
writer.putInt(0); //available?
|
||||
writer.putInt(Warehouse.getMaxResources().get(ib.getUUID())); //max?
|
||||
|
||||
@@ -9,13 +9,11 @@
|
||||
|
||||
package engine.objects;
|
||||
|
||||
import engine.CollisionEngine.Triangle;
|
||||
import engine.Enum;
|
||||
import engine.Enum.*;
|
||||
import engine.InterestManagement.RealmMap;
|
||||
import engine.InterestManagement.Terrain;
|
||||
import engine.InterestManagement.WorldGrid;
|
||||
import engine.CollisionEngine.Mesh;
|
||||
import engine.db.archive.CityRecord;
|
||||
import engine.db.archive.DataWarehouse;
|
||||
import engine.db.archive.MineRecord;
|
||||
@@ -36,7 +34,6 @@ import engine.net.client.msg.UpdateObjectMsg;
|
||||
import engine.server.MBServerStatics;
|
||||
import org.pmw.tinylog.Logger;
|
||||
|
||||
import java.awt.geom.Rectangle2D;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.time.LocalDateTime;
|
||||
@@ -102,9 +99,6 @@ public class Building extends AbstractWorldObject {
|
||||
private ConcurrentHashMap<Integer, Condemned> condemned;
|
||||
private ArrayList<Building> children = null;
|
||||
|
||||
public ArrayList<Mesh> buildingMeshes;
|
||||
public Rectangle2D.Float buildingRect;
|
||||
|
||||
/**
|
||||
* ResultSet Constructor
|
||||
*/
|
||||
@@ -1009,9 +1003,6 @@ public class Building extends AbstractWorldObject {
|
||||
|
||||
if (this.upgradeDateTime != null)
|
||||
BuildingManager.submitUpgradeJob(this);
|
||||
|
||||
//BuildingManager.BakeBuildingMeshes(this);
|
||||
BuildingManager.BakeBuildingColliders(this);
|
||||
}
|
||||
|
||||
public synchronized boolean setOwner(AbstractCharacter newOwner) {
|
||||
@@ -1438,18 +1429,18 @@ public class Building extends AbstractWorldObject {
|
||||
if (this.getCity().getWarehouse() == null)
|
||||
return amount;
|
||||
|
||||
if (this.getCity().getWarehouse().getResources().get(ItemBase.getGoldItemBase()) >= Warehouse.getMaxResources().get(ItemBase.getGoldItemBase().getUUID()))
|
||||
if (this.getCity().getWarehouse().resources.get(ItemBase.getGoldItemBase()) >= Warehouse.getMaxResources().get(ItemBase.getGoldItemBase().getUUID()))
|
||||
return amount;
|
||||
|
||||
int profitAmount = (int) (amount * (taxAmount * .01f));
|
||||
|
||||
if (this.getCity().getWarehouse().getResources().get(ItemBase.getGoldItemBase()) + profitAmount <= Warehouse.getMaxResources().get(ItemBase.getGoldItemBase().getUUID())) {
|
||||
this.getCity().getWarehouse().depositProfitTax(ItemBase.getGoldItemBase(), profitAmount, this);
|
||||
if (this.getCity().getWarehouse().resources.get(ItemBase.getGoldItemBase()) + profitAmount <= Warehouse.getMaxResources().get(ItemBase.getGoldItemBase().getUUID())) {
|
||||
Warehouse.depositProfitTax(ItemBase.getGoldItemBase(), profitAmount, this,this.getCity().getWarehouse());
|
||||
return amount - profitAmount;
|
||||
}
|
||||
//overDrafting
|
||||
int warehouseDeposit = Warehouse.getMaxResources().get(ItemBase.getGoldItemBase().getUUID()) - this.getCity().getWarehouse().getResources().get(ItemBase.getGoldItemBase());
|
||||
this.getCity().getWarehouse().depositProfitTax(ItemBase.getGoldItemBase(), warehouseDeposit, this);
|
||||
int warehouseDeposit = Warehouse.getMaxResources().get(ItemBase.getGoldItemBase().getUUID()) - this.getCity().getWarehouse().resources.get(ItemBase.getGoldItemBase());
|
||||
Warehouse.depositProfitTax(ItemBase.getGoldItemBase(), warehouseDeposit, this,this.getCity().getWarehouse());
|
||||
return amount - warehouseDeposit;
|
||||
}
|
||||
|
||||
|
||||
@@ -12,10 +12,7 @@ package engine.objects;
|
||||
import engine.Enum;
|
||||
import engine.Enum.GameObjectType;
|
||||
import engine.Enum.ItemType;
|
||||
import engine.gameManager.BuildingManager;
|
||||
import engine.gameManager.ChatManager;
|
||||
import engine.gameManager.ConfigManager;
|
||||
import engine.gameManager.DbManager;
|
||||
import engine.gameManager.*;
|
||||
import engine.math.Vector3fImmutable;
|
||||
import engine.net.Dispatch;
|
||||
import engine.net.DispatchMessage;
|
||||
@@ -345,13 +342,13 @@ public class CharacterItemManager {
|
||||
Warehouse warehouse = (Warehouse) object;
|
||||
|
||||
if (amount < 0) {
|
||||
if (!warehouse.deposit((PlayerCharacter) this.absCharacter, this.getGoldInventory(), amount * -1, true, true)) {
|
||||
if (!Warehouse.deposit((PlayerCharacter) this.absCharacter, this.getGoldInventory(), amount * -1, true, true,warehouse)) {
|
||||
|
||||
ErrorPopupMsg.sendErrorPopup((PlayerCharacter) this.absCharacter, 203);
|
||||
return false;
|
||||
}
|
||||
} else {
|
||||
if (!warehouse.withdraw((PlayerCharacter) this.absCharacter, this.getGoldInventory().getItemBase(), amount * -1, true, true)) {
|
||||
if (!Warehouse.withdraw(warehouse, (PlayerCharacter) this.absCharacter, this.getGoldInventory().getItemBase(), amount * -1, true, true)) {
|
||||
|
||||
ErrorPopupMsg.sendErrorPopup((PlayerCharacter) this.absCharacter, 203);
|
||||
return false;
|
||||
|
||||
@@ -1358,7 +1358,7 @@ public class City extends AbstractWorldObject {
|
||||
ItemBase ib = ItemBase.getItemBase(itemBaseID);
|
||||
if (ib == null)
|
||||
continue;
|
||||
if (ruledWarehouse.isAboveCap(ib, (int) (city.getWarehouse().getResources().get(ib) * taxPercent))) {
|
||||
if (Warehouse.isAboveCap(ruledWarehouse, ib, (int) (city.getWarehouse().resources.get(ib) * taxPercent))) {
|
||||
ErrorPopupMsg.sendErrorMsg(player, "You're warehouse has enough " + ib.getName() + " already!");
|
||||
return true;
|
||||
}
|
||||
@@ -1371,7 +1371,7 @@ public class City extends AbstractWorldObject {
|
||||
}
|
||||
|
||||
try {
|
||||
city.getWarehouse().transferResources(player, msg, resources, taxPercent, ruledWarehouse);
|
||||
Warehouse.transferResources(city.getWarehouse(), player, msg, resources, taxPercent);
|
||||
} catch (Exception e) {
|
||||
Logger.info(e.getMessage());
|
||||
}
|
||||
@@ -1380,7 +1380,7 @@ public class City extends AbstractWorldObject {
|
||||
|
||||
ViewResourcesMessage vrm = new ViewResourcesMessage(player);
|
||||
vrm.setGuild(building.getGuild());
|
||||
vrm.setWarehouseBuilding(BuildingManager.getBuildingFromCache(building.getCity().getWarehouse().getBuildingUID()));
|
||||
vrm.setWarehouseBuilding(BuildingManager.getBuildingFromCache(building.getCity().getWarehouse().buildingUID));
|
||||
vrm.configure();
|
||||
Dispatch dispatch = Dispatch.borrow(player, vrm);
|
||||
DispatchMessage.dispatchMsgDispatch(dispatch, Enum.DispatchChannel.SECONDARY);
|
||||
|
||||
@@ -119,7 +119,7 @@ public class ItemFactory {
|
||||
// ROLL BANE SCROLL.
|
||||
|
||||
if (ib.getUUID() > 910010 && ib.getUUID() < 910019) {
|
||||
ConcurrentHashMap<ItemBase, Integer> resources = cityWarehouse.getResources();
|
||||
ConcurrentHashMap<ItemBase, Integer> resources = cityWarehouse.resources;
|
||||
|
||||
|
||||
int buildingWithdraw = BuildingManager.GetWithdrawAmountForRolling(forge, ib.getBaseValue());
|
||||
@@ -131,7 +131,7 @@ public class ItemFactory {
|
||||
return null;
|
||||
}
|
||||
|
||||
if (overdraft > 0 && cityWarehouse.isResourceLocked(ItemBase.GOLD_ITEM_BASE)) {
|
||||
if (overdraft > 0 && Warehouse.isResourceLocked(cityWarehouse, ItemBase.GOLD_ITEM_BASE)) {
|
||||
if (pc != null)
|
||||
ErrorPopupMsg.sendErrorMsg(pc, "Warehouse gold is barred! Overdraft cannot be withdrawn from warehouse." + " " + ib.getName());
|
||||
return null;
|
||||
@@ -167,9 +167,9 @@ public class ItemFactory {
|
||||
}
|
||||
|
||||
if (overdraft > 0)
|
||||
if (!cityWarehouse.withdraw(npc, ItemBase.GOLD_ITEM_BASE, overdraft, false, true)) {
|
||||
if (!Warehouse.withdraw(cityWarehouse, npc, ItemBase.GOLD_ITEM_BASE, overdraft, true)) {
|
||||
//ChatManager.chatGuildError(pc, "Failed to create Item");
|
||||
Logger.error("Warehouse With UID of " + cityWarehouse.getUID() + " Failed to Create Item." + ib.getName());
|
||||
Logger.error("Warehouse With UID of " + cityWarehouse.UID + " Failed to Create Item." + ib.getName());
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -263,13 +263,13 @@ public class ItemFactory {
|
||||
}
|
||||
|
||||
if (galvorAmount > 0) {
|
||||
if (cityWarehouse.isResourceLocked(galvor)) {
|
||||
if (Warehouse.isResourceLocked(cityWarehouse, galvor)) {
|
||||
if (pc != null)
|
||||
ErrorPopupMsg.sendErrorMsg(pc, "Galvor is locked." + ib.getName());
|
||||
return null;
|
||||
}
|
||||
|
||||
if (cityWarehouse.getResources().get(galvor) < galvorAmount) {
|
||||
if (cityWarehouse.resources.get(galvor) < galvorAmount) {
|
||||
if (pc != null)
|
||||
ErrorPopupMsg.sendErrorMsg(pc, "Not enough Galvor in warehouse to roll this item." + ib.getName());
|
||||
return null;
|
||||
@@ -277,13 +277,13 @@ public class ItemFactory {
|
||||
}
|
||||
|
||||
if (wormwoodAmount > 0) {
|
||||
if (cityWarehouse.isResourceLocked(wormwood)) {
|
||||
if (Warehouse.isResourceLocked(cityWarehouse, wormwood)) {
|
||||
if (pc != null)
|
||||
ErrorPopupMsg.sendErrorMsg(pc, "Wormwood is locked." + ib.getName());
|
||||
return null;
|
||||
}
|
||||
|
||||
if (cityWarehouse.getResources().get(wormwood) < wormwoodAmount) {
|
||||
if (cityWarehouse.resources.get(wormwood) < wormwoodAmount) {
|
||||
if (pc != null)
|
||||
ErrorPopupMsg.sendErrorMsg(pc, "Not enough Wormwood in warehouse to roll this item." + ib.getName());
|
||||
return null;
|
||||
@@ -320,20 +320,20 @@ public class ItemFactory {
|
||||
return null;
|
||||
}
|
||||
|
||||
if (overdraft > 0 && cityWarehouse.isResourceLocked(ItemBase.GOLD_ITEM_BASE)) {
|
||||
if (overdraft > 0 && Warehouse.isResourceLocked(cityWarehouse, ItemBase.GOLD_ITEM_BASE)) {
|
||||
if (pc != null)
|
||||
ErrorPopupMsg.sendErrorMsg(pc, "Warehouse gold is barred! Overdraft cannot be withdrawn from warehouse." + ib.getName());
|
||||
return null;
|
||||
}
|
||||
|
||||
if (overdraft > cityWarehouse.getResources().get(ItemBase.GOLD_ITEM_BASE)) {
|
||||
if (overdraft > cityWarehouse.resources.get(ItemBase.GOLD_ITEM_BASE)) {
|
||||
if (pc != null)
|
||||
ErrorPopupMsg.sendErrorMsg(pc, "Not enough Gold in Warehouse for overdraft." + ib.getName());
|
||||
return null;
|
||||
}
|
||||
prefixResourceCosts = prefix.getResourcesForEffect();
|
||||
for (ItemBase ibResources : prefixResourceCosts.keySet()) {
|
||||
int warehouseAmount = cityWarehouse.getResources().get(ibResources);
|
||||
int warehouseAmount = cityWarehouse.resources.get(ibResources);
|
||||
int creationAmount = prefixResourceCosts.get(ibResources);
|
||||
//ChatManager.chatInfoError(pc, "Prefix : " + ibResources.getName() + " / " + creationAmount);
|
||||
if (warehouseAmount < creationAmount) {
|
||||
@@ -374,13 +374,13 @@ public class ItemFactory {
|
||||
return null;
|
||||
}
|
||||
|
||||
if (overdraft > 0 && cityWarehouse.isResourceLocked(ItemBase.GOLD_ITEM_BASE)) {
|
||||
if (overdraft > 0 && Warehouse.isResourceLocked(cityWarehouse, ItemBase.GOLD_ITEM_BASE)) {
|
||||
if (pc != null)
|
||||
ErrorPopupMsg.sendErrorMsg(pc, "Warehouse gold is barred! Overdraft cannot be withdrawn from warehouse." + ib.getName());
|
||||
return null;
|
||||
}
|
||||
|
||||
if (overdraft > cityWarehouse.getResources().get(ItemBase.GOLD_ITEM_BASE)) {
|
||||
if (overdraft > cityWarehouse.resources.get(ItemBase.GOLD_ITEM_BASE)) {
|
||||
if (pc != null)
|
||||
ErrorPopupMsg.sendErrorMsg(pc, "Not enough Gold in Warehouse for overdraft." + ib.getName());
|
||||
return null;
|
||||
@@ -388,7 +388,7 @@ public class ItemFactory {
|
||||
|
||||
|
||||
for (ItemBase ibResources : suffixResourceCosts.keySet()) {
|
||||
int warehouseAmount = cityWarehouse.getResources().get(ibResources);
|
||||
int warehouseAmount = cityWarehouse.resources.get(ibResources);
|
||||
int creationAmount = suffixResourceCosts.get(ibResources);
|
||||
if (warehouseAmount < creationAmount) {
|
||||
// if (pc != null)
|
||||
@@ -414,13 +414,13 @@ public class ItemFactory {
|
||||
return null;
|
||||
}
|
||||
|
||||
if (overdraft > 0 && useWarehouse && cityWarehouse.isResourceLocked(ItemBase.GOLD_ITEM_BASE)) {
|
||||
if (overdraft > 0 && useWarehouse && Warehouse.isResourceLocked(cityWarehouse, ItemBase.GOLD_ITEM_BASE)) {
|
||||
if (pc != null)
|
||||
ErrorPopupMsg.sendErrorMsg(pc, "Warehouse gold is barred! Overdraft cannot be withdrawn from warehouse." + ib.getName());
|
||||
return null;
|
||||
}
|
||||
|
||||
if (useWarehouse && overdraft > cityWarehouse.getResources().get(ItemBase.GOLD_ITEM_BASE)) {
|
||||
if (useWarehouse && overdraft > cityWarehouse.resources.get(ItemBase.GOLD_ITEM_BASE)) {
|
||||
if (pc != null)
|
||||
ErrorPopupMsg.sendErrorMsg(pc, "Not enough Gold in Warehouse for overdraft." + ib.getName());
|
||||
return null;
|
||||
@@ -440,7 +440,7 @@ public class ItemFactory {
|
||||
ErrorPopupMsg.sendErrorMsg(pc, "Building does not have enough gold to produce this item." + ib.getName());
|
||||
return null;
|
||||
} else {
|
||||
if (overdraft > cityWarehouse.getResources().get(ItemBase.GOLD_ITEM_BASE)) {
|
||||
if (overdraft > cityWarehouse.resources.get(ItemBase.GOLD_ITEM_BASE)) {
|
||||
ErrorPopupMsg.sendErrorMsg(pc, "Not enough Gold in Warehouse to produce this item." + ib.getName());
|
||||
return null;
|
||||
}
|
||||
@@ -448,9 +448,9 @@ public class ItemFactory {
|
||||
}
|
||||
|
||||
if (overdraft > 0 && useWarehouse)
|
||||
if (!cityWarehouse.withdraw(npc, ItemBase.GOLD_ITEM_BASE, overdraft, false, true)) {
|
||||
if (!Warehouse.withdraw(cityWarehouse, npc, ItemBase.GOLD_ITEM_BASE, overdraft, true)) {
|
||||
//ChatManager.chatGuildError(pc, "Failed to create Item");
|
||||
Logger.error("Warehouse With UID of " + cityWarehouse.getUID() + " Failed to Create Item." + ib.getName());
|
||||
Logger.error("Warehouse With UID of " + cityWarehouse.UID + " Failed to Create Item." + ib.getName());
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -467,18 +467,18 @@ public class ItemFactory {
|
||||
|
||||
int creationAmount = prefixResourceCosts.get(ibResources);
|
||||
|
||||
if (cityWarehouse.isResourceLocked(ibResources) == true)
|
||||
if (Warehouse.isResourceLocked(cityWarehouse, ibResources) == true)
|
||||
return null;
|
||||
|
||||
int oldAmount = cityWarehouse.getResources().get(ibResources);
|
||||
int oldAmount = cityWarehouse.resources.get(ibResources);
|
||||
int amount = creationAmount;
|
||||
|
||||
if (oldAmount < amount)
|
||||
amount = oldAmount;
|
||||
|
||||
if (!cityWarehouse.withdraw(npc, ibResources, amount, false, true)) {
|
||||
if (!Warehouse.withdraw(cityWarehouse, npc, ibResources, amount, true)) {
|
||||
//ChatManager.chatGuildError(pc, "Failed to create Item");
|
||||
Logger.error("Warehouse With UID of " + cityWarehouse.getUID() + " Failed to Create Item." + ib.getName());
|
||||
Logger.error("Warehouse With UID of " + cityWarehouse.UID + " Failed to Create Item." + ib.getName());
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -489,18 +489,18 @@ public class ItemFactory {
|
||||
for (ItemBase ibResources : suffixResourceCosts.keySet()) {
|
||||
int creationAmount = suffixResourceCosts.get(ibResources);
|
||||
|
||||
if (cityWarehouse.isResourceLocked(ibResources) == true) {
|
||||
if (Warehouse.isResourceLocked(cityWarehouse, ibResources) == true) {
|
||||
ChatManager.chatSystemError(pc, ibResources.getName() + " is locked!" + ib.getName());
|
||||
return null;
|
||||
}
|
||||
|
||||
int oldAmount = cityWarehouse.getResources().get(ibResources);
|
||||
int oldAmount = cityWarehouse.resources.get(ibResources);
|
||||
int amount = creationAmount;
|
||||
if (oldAmount < amount)
|
||||
amount = oldAmount;
|
||||
if (!cityWarehouse.withdraw(npc, ibResources, amount, false, true)) {
|
||||
if (!Warehouse.withdraw(cityWarehouse, npc, ibResources, amount, true)) {
|
||||
//ChatManager.chatGuildError(pc, "Failed to create Item");
|
||||
Logger.error("Warehouse With UID of " + cityWarehouse.getUID() + " Failed to Create Item." + ib.getName());
|
||||
Logger.error("Warehouse With UID of " + cityWarehouse.UID + " Failed to Create Item." + ib.getName());
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -522,14 +522,14 @@ public class ItemFactory {
|
||||
return null;
|
||||
}
|
||||
|
||||
if (overdraft > 0 && cityWarehouse.isResourceLocked(ItemBase.GOLD_ITEM_BASE)) {
|
||||
if (overdraft > 0 && Warehouse.isResourceLocked(cityWarehouse, ItemBase.GOLD_ITEM_BASE)) {
|
||||
|
||||
if (pc != null)
|
||||
ErrorPopupMsg.sendErrorMsg(pc, "Warehouse gold is barred! Overdraft cannot be withdrawn from warehouse." + ib.getName());
|
||||
return null;
|
||||
}
|
||||
|
||||
if (useWarehouse && overdraft > cityWarehouse.getResources().get(ItemBase.GOLD_ITEM_BASE)) {
|
||||
if (useWarehouse && overdraft > cityWarehouse.resources.get(ItemBase.GOLD_ITEM_BASE)) {
|
||||
|
||||
if (pc != null)
|
||||
ErrorPopupMsg.sendErrorMsg(pc, "Not enough Gold in Warehouse for overdraft." + ib.getName());
|
||||
@@ -544,7 +544,7 @@ public class ItemFactory {
|
||||
ErrorPopupMsg.sendErrorMsg(pc, "Building does not have enough gold to produce this item." + ib.getName());
|
||||
return null;
|
||||
} else {
|
||||
if (overdraft > cityWarehouse.getResources().get(ItemBase.GOLD_ITEM_BASE)) {
|
||||
if (overdraft > cityWarehouse.resources.get(ItemBase.GOLD_ITEM_BASE)) {
|
||||
ErrorPopupMsg.sendErrorMsg(pc, "Not enough Gold in Warehouse to produce this item." + ib.getName());
|
||||
return null;
|
||||
}
|
||||
@@ -552,16 +552,16 @@ public class ItemFactory {
|
||||
}
|
||||
|
||||
if (overdraft > 0)
|
||||
if (!cityWarehouse.withdraw(npc, ItemBase.GOLD_ITEM_BASE, overdraft, false, true)) {
|
||||
if (!Warehouse.withdraw(cityWarehouse, npc, ItemBase.GOLD_ITEM_BASE, overdraft, true)) {
|
||||
//ChatManager.chatGuildError(pc, "Failed to create Item");
|
||||
Logger.error("Warehouse With UID of " + cityWarehouse.getUID() + " Failed to Create Item." + ib.getName());
|
||||
Logger.error("Warehouse With UID of " + cityWarehouse.UID + " Failed to Create Item." + ib.getName());
|
||||
return null;
|
||||
}
|
||||
|
||||
// ChatManager.chatGuildInfo(pc, "Gold Cost = " + total);
|
||||
|
||||
if (galvorAmount > 0) {
|
||||
if (!cityWarehouse.withdraw(npc, galvor, galvorAmount, false, true)) {
|
||||
if (!Warehouse.withdraw(cityWarehouse, npc, galvor, galvorAmount, true)) {
|
||||
ErrorPopupMsg.sendErrorMsg(pc, "Failed to withdraw Galvor from warehouse!" + ib.getName());
|
||||
Logger.error("Warehouse with UID of" + cityWarehouse.getObjectUUID() + "Failed to Withdrawl ");
|
||||
return null;
|
||||
@@ -569,7 +569,7 @@ public class ItemFactory {
|
||||
}
|
||||
|
||||
if (wormwoodAmount > 0) {
|
||||
if (!cityWarehouse.withdraw(npc, wormwood, wormwoodAmount, false, true)) {
|
||||
if (!Warehouse.withdraw(cityWarehouse, npc, wormwood, wormwoodAmount, true)) {
|
||||
ErrorPopupMsg.sendErrorMsg(pc, "Failed to withdraw Wormwood from warehouse!" + ib.getName());
|
||||
Logger.error("Warehouse with UID of" + cityWarehouse.getObjectUUID() + "Failed to Withdrawl ");
|
||||
return null;
|
||||
@@ -815,7 +815,7 @@ public class ItemFactory {
|
||||
ConcurrentHashMap<ItemBase, Integer> resources = null;
|
||||
|
||||
if (useWarehouse)
|
||||
resources = cityWarehouse.getResources();
|
||||
resources = cityWarehouse.resources;
|
||||
|
||||
int galvorAmount = 0;
|
||||
int wormwoodAmount = 0;
|
||||
@@ -852,24 +852,24 @@ public class ItemFactory {
|
||||
return null;
|
||||
|
||||
if (galvorAmount > 0) {
|
||||
if (cityWarehouse.isResourceLocked(galvor)) {
|
||||
if (Warehouse.isResourceLocked(cityWarehouse, galvor)) {
|
||||
ErrorPopupMsg.sendErrorMsg(pc, "Galvor is locked." + ib.getName());
|
||||
return null;
|
||||
}
|
||||
|
||||
if (cityWarehouse.getResources().get(galvor) < galvorAmount) {
|
||||
if (cityWarehouse.resources.get(galvor) < galvorAmount) {
|
||||
ErrorPopupMsg.sendErrorMsg(pc, "Not enough Galvor in warehouse to roll this item." + ib.getName());
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
if (wormwoodAmount > 0) {
|
||||
if (cityWarehouse.isResourceLocked(wormwood)) {
|
||||
if (Warehouse.isResourceLocked(cityWarehouse, wormwood)) {
|
||||
ErrorPopupMsg.sendErrorMsg(pc, "Galvor is locked." + ib.getName());
|
||||
return null;
|
||||
}
|
||||
|
||||
if (cityWarehouse.getResources().get(wormwood) < wormwoodAmount) {
|
||||
if (cityWarehouse.resources.get(wormwood) < wormwoodAmount) {
|
||||
ErrorPopupMsg.sendErrorMsg(pc, "Not enough Galvor in warehouse to roll this item." + ib.getName());
|
||||
return null;
|
||||
}
|
||||
@@ -908,7 +908,7 @@ public class ItemFactory {
|
||||
return null;
|
||||
}
|
||||
|
||||
if (useWarehouse && overdraft > 0 && cityWarehouse.isResourceLocked(ItemBase.GOLD_ITEM_BASE)) {
|
||||
if (useWarehouse && overdraft > 0 && Warehouse.isResourceLocked(cityWarehouse, ItemBase.GOLD_ITEM_BASE)) {
|
||||
if (pc != null)
|
||||
ErrorPopupMsg.sendErrorMsg(pc, "Warehouse gold is barred! Overdraft cannot be withdrawn from warehouse." + ib.getName());
|
||||
return null;
|
||||
@@ -936,12 +936,12 @@ public class ItemFactory {
|
||||
// there was an overdraft, withdraw the rest from warehouse.
|
||||
if (overdraft > 0) {
|
||||
if (pc != null) {
|
||||
if (!cityWarehouse.withdraw(pc, ItemBase.GOLD_ITEM_BASE, overdraft, false, true)) {
|
||||
if (!Warehouse.withdraw(cityWarehouse, pc, ItemBase.GOLD_ITEM_BASE, overdraft, false, true)) {
|
||||
Logger.error("Warehouse with UID of" + cityWarehouse.getObjectUUID() + "Failed to Withdrawl ");
|
||||
return null;
|
||||
}
|
||||
} else {
|
||||
if (!cityWarehouse.withdraw(npc, ItemBase.GOLD_ITEM_BASE, overdraft, false, true)) {
|
||||
if (!Warehouse.withdraw(cityWarehouse, npc, ItemBase.GOLD_ITEM_BASE, overdraft, true)) {
|
||||
Logger.error("Warehouse with UID of" + cityWarehouse.getObjectUUID() + "Failed to Withdrawl ");
|
||||
return null;
|
||||
}
|
||||
@@ -959,7 +959,7 @@ public class ItemFactory {
|
||||
return null;
|
||||
}
|
||||
|
||||
if (useWarehouse && overdraft > 0 && cityWarehouse.isResourceLocked(ItemBase.GOLD_ITEM_BASE)) {
|
||||
if (useWarehouse && overdraft > 0 && Warehouse.isResourceLocked(cityWarehouse, ItemBase.GOLD_ITEM_BASE)) {
|
||||
if (pc != null)
|
||||
ErrorPopupMsg.sendErrorMsg(pc, "Warehouse gold is barred! Overdraft cannot be withdrawn from warehouse." + ib.getName());
|
||||
return null;
|
||||
@@ -987,12 +987,12 @@ public class ItemFactory {
|
||||
if (overdraft > 0 && useWarehouse) {
|
||||
|
||||
if (pc != null) {
|
||||
if (!cityWarehouse.withdraw(pc, ItemBase.GOLD_ITEM_BASE, overdraft, false, true)) {
|
||||
if (!Warehouse.withdraw(cityWarehouse, pc, ItemBase.GOLD_ITEM_BASE, overdraft, false, true)) {
|
||||
Logger.error("Warehouse with UID of" + cityWarehouse.getObjectUUID() + "Failed to Withdrawl ");
|
||||
return null;
|
||||
}
|
||||
} else {
|
||||
if (!cityWarehouse.withdraw(npc, ItemBase.GOLD_ITEM_BASE, overdraft, false, true)) {
|
||||
if (!Warehouse.withdraw(cityWarehouse, npc, ItemBase.GOLD_ITEM_BASE, overdraft, true)) {
|
||||
Logger.error("Warehouse with UID of" + cityWarehouse.getObjectUUID() + "Failed to Withdrawl ");
|
||||
return null;
|
||||
}
|
||||
@@ -1002,7 +1002,7 @@ public class ItemFactory {
|
||||
|
||||
if (galvorAmount > 0 && useWarehouse) {
|
||||
//ChatManager.chatGuildInfo(pc, "Withdrawing " + galvorAmount + " galvor from warehouse");
|
||||
if (!cityWarehouse.withdraw(npc, galvor, galvorAmount, false, true)) {
|
||||
if (!Warehouse.withdraw(cityWarehouse, npc, galvor, galvorAmount, true)) {
|
||||
ErrorPopupMsg.sendErrorMsg(pc, "Failed to withdraw Galvor from warehouse!" + ib.getName());
|
||||
Logger.error("Warehouse with UID of" + cityWarehouse.getObjectUUID() + "Failed to Withdrawl ");
|
||||
return null;
|
||||
@@ -1011,7 +1011,7 @@ public class ItemFactory {
|
||||
|
||||
if (wormwoodAmount > 0 && useWarehouse) {
|
||||
//ChatManager.chatGuildInfo(pc, "Withdrawing " + wormwoodAmount + " wormwood from warehouse");
|
||||
if (!cityWarehouse.withdraw(npc, wormwood, wormwoodAmount, false, true)) {
|
||||
if (!Warehouse.withdraw(cityWarehouse, npc, wormwood, wormwoodAmount, true)) {
|
||||
ErrorPopupMsg.sendErrorMsg(pc, "Failed to withdraw Wormwood from warehouse for " + ib.getName());
|
||||
Logger.error("Warehouse with UID of" + cityWarehouse.getObjectUUID() + "Failed to Withdrawl ");
|
||||
|
||||
|
||||
@@ -11,10 +11,7 @@ package engine.objects;
|
||||
|
||||
import engine.Enum;
|
||||
import engine.InterestManagement.WorldGrid;
|
||||
import engine.gameManager.BuildingManager;
|
||||
import engine.gameManager.ChatManager;
|
||||
import engine.gameManager.DbManager;
|
||||
import engine.gameManager.ZoneManager;
|
||||
import engine.gameManager.*;
|
||||
import engine.net.ByteBufferWriter;
|
||||
import engine.net.client.msg.ErrorPopupMsg;
|
||||
import engine.server.MBServerStatics;
|
||||
@@ -483,7 +480,7 @@ public class Mine extends AbstractGameObject {
|
||||
return false;
|
||||
|
||||
ItemBase resourceIB = ItemBase.getItemBase(this.production.UUID);
|
||||
return this.owningGuild.getOwnedCity().getWarehouse().depositFromMine(this, resourceIB, this.getModifiedProductionAmount());
|
||||
return Warehouse.depositFromMine(this, resourceIB, this.getModifiedProductionAmount(),this.owningGuild.getOwnedCity().getWarehouse());
|
||||
}
|
||||
|
||||
public boolean updateGuildOwner(PlayerCharacter playerCharacter) {
|
||||
|
||||
@@ -406,7 +406,6 @@ public class Mob extends AbstractIntelligenceAgent implements Delayed {
|
||||
|
||||
Mob mobile = new Mob();
|
||||
mobile.dbID = MBServerStatics.NO_DB_ROW_ASSIGNED_YET;
|
||||
//mobile.agentType = AIAgentType.MOBILE; this method is only called to make guard captains and wall archers
|
||||
mobile.agentType = mobType;
|
||||
mobile.behaviourType = MobBehaviourType.None;
|
||||
mobile.loadID = loadID;
|
||||
@@ -418,12 +417,17 @@ public class Mob extends AbstractIntelligenceAgent implements Delayed {
|
||||
mobile.guildUUID = guild.getObjectUUID();
|
||||
|
||||
mobile.parentZoneUUID = parent.getObjectUUID();
|
||||
mobile.buildingUUID = building.getObjectUUID();
|
||||
|
||||
if (building == null)
|
||||
mobile.buildingUUID = 0;
|
||||
else
|
||||
mobile.buildingUUID = building.getObjectUUID();
|
||||
|
||||
if (mobile.buildingUUID != 0)
|
||||
mobile.bindLoc = Vector3fImmutable.ZERO;
|
||||
else
|
||||
mobile.bindLoc = spawn;
|
||||
mobile.bindLoc = ZoneManager.worldToLocal(spawn, parent);
|
||||
;
|
||||
|
||||
mobile.firstName = pirateName;
|
||||
|
||||
@@ -1889,6 +1893,19 @@ public class Mob extends AbstractIntelligenceAgent implements Delayed {
|
||||
}
|
||||
}
|
||||
|
||||
public Boolean isGuard(){
|
||||
|
||||
switch(this.behaviourType){
|
||||
case GuardMinion:
|
||||
case GuardCaptain:
|
||||
case GuardWallArcher:
|
||||
case HamletGuard:
|
||||
case SimpleStandingGuard:
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public long getDelay(@NotNull TimeUnit unit) {
|
||||
long timeRemaining = this.respawnTime - System.currentTimeMillis();
|
||||
|
||||
+25
-26
@@ -461,16 +461,20 @@ public class NPC extends AbstractCharacter {
|
||||
|
||||
NPC newNPC = new NPC();
|
||||
|
||||
newNPC.parentZoneUUID = parent.getObjectUUID();
|
||||
|
||||
newNPC.name = name;
|
||||
newNPC.contractUUID = contractID;
|
||||
|
||||
if (building == null)
|
||||
newNPC.bindLoc = spawn;
|
||||
newNPC.bindLoc = ZoneManager.worldToLocal(spawn, parent);
|
||||
else
|
||||
newNPC.bindLoc = Vector3fImmutable.ZERO;
|
||||
|
||||
newNPC.parentZoneUUID = parent.getObjectUUID();
|
||||
newNPC.guildUUID = guild.getObjectUUID();
|
||||
if (guild == null)
|
||||
newNPC.guildUUID = 0;
|
||||
else
|
||||
newNPC.guildUUID = guild.getObjectUUID();
|
||||
|
||||
if (building == null)
|
||||
newNPC.buildingUUID = 0;
|
||||
@@ -842,7 +846,6 @@ public class NPC extends AbstractCharacter {
|
||||
else
|
||||
this.guild = Guild.getGuild(this.guildUUID);
|
||||
|
||||
|
||||
if (this.guild == null)
|
||||
this.guild = Guild.getErrantGuild();
|
||||
|
||||
@@ -872,27 +875,23 @@ public class NPC extends AbstractCharacter {
|
||||
if (this.building != null)
|
||||
NPCManager.slotCharacterInBuilding(this);
|
||||
|
||||
if (this.contract != null) {
|
||||
this.symbol = this.contract.getIconID();
|
||||
this.modTypeTable = this.contract.getNPCModTypeTable();
|
||||
this.modSuffixTable = this.contract.getNpcModSuffixTable();
|
||||
this.itemModTable = this.contract.getItemModTable();
|
||||
int VID = this.contract.getVendorID();
|
||||
this.symbol = this.contract.getIconID();
|
||||
this.modTypeTable = this.contract.getNPCModTypeTable();
|
||||
this.modSuffixTable = this.contract.getNpcModSuffixTable();
|
||||
this.itemModTable = this.contract.getItemModTable();
|
||||
int VID = this.contract.getVendorID();
|
||||
|
||||
if (VID != 0)
|
||||
this.vendorID = VID;
|
||||
else
|
||||
this.vendorID = 1; //no vendor items
|
||||
}
|
||||
if (VID != 0)
|
||||
this.vendorID = VID;
|
||||
else
|
||||
this.vendorID = 1; //no vendor items
|
||||
|
||||
if (this.mobBase != null) {
|
||||
this.healthMax = this.mobBase.getHealthMax();
|
||||
this.manaMax = 0;
|
||||
this.staminaMax = 0;
|
||||
this.setHealth(this.healthMax);
|
||||
this.mana.set(this.manaMax);
|
||||
this.stamina.set(this.staminaMax);
|
||||
}
|
||||
this.healthMax = this.mobBase.getHealthMax();
|
||||
this.manaMax = 0;
|
||||
this.staminaMax = 0;
|
||||
this.setHealth(this.healthMax);
|
||||
this.mana.set(this.manaMax);
|
||||
this.stamina.set(this.staminaMax);
|
||||
|
||||
if (this.parentZone.guild_zone)
|
||||
if (NPC.GetNPCProfits(this) == null)
|
||||
@@ -911,10 +910,10 @@ public class NPC extends AbstractCharacter {
|
||||
|
||||
this.charItemManager.load();
|
||||
|
||||
this.equip = loadEquipmentSet(this.equipmentSetID);
|
||||
if (equipmentSetID != 0 && LootManager._bootySetMap.get(equipmentSetID) == null)
|
||||
Logger.error("Invalid equipSet: " + equipmentSetID + " contract: " + this.contractUUID + " npc: " + this.getObjectUUID());
|
||||
|
||||
if (this.equip == null)
|
||||
this.equip = new HashMap<>();
|
||||
this.equip = loadEquipmentSet(this.equipmentSetID);
|
||||
|
||||
try {
|
||||
|
||||
|
||||
+327
-743
File diff suppressed because it is too large
Load Diff
@@ -37,8 +37,8 @@ public class Zone extends AbstractWorldObject {
|
||||
|
||||
public final int playerCityUUID;
|
||||
public final String zoneName;
|
||||
public final float major_radius;
|
||||
public final float minor_radius;
|
||||
public float major_radius;
|
||||
public float minor_radius;
|
||||
public final float xOffset;
|
||||
public final float zOffset;
|
||||
public final float yOffset;
|
||||
@@ -76,9 +76,6 @@ public class Zone extends AbstractWorldObject {
|
||||
this.templateID = rs.getInt("template");
|
||||
this.zoneName = rs.getString("zone_name");
|
||||
this.peace_zone = rs.getByte("peace_zone");
|
||||
|
||||
this.major_radius = rs.getFloat("major_radius");
|
||||
this.minor_radius = rs.getFloat("minor_radius");
|
||||
this.xOffset = rs.getFloat("xOffset");
|
||||
this.zOffset = rs.getFloat("zOffset");
|
||||
this.yOffset = rs.getFloat("yOffset");
|
||||
@@ -163,6 +160,18 @@ public class Zone extends AbstractWorldObject {
|
||||
if (ZoneManager.seaFloor == null)
|
||||
ZoneManager.seaFloor = this;
|
||||
|
||||
// Guild zones use the enum CityBoundsType to adjust
|
||||
// city size. All other zones derive from the JSON
|
||||
// stored within its template.
|
||||
|
||||
if (this.template == null) {
|
||||
this.minor_radius = Enum.CityBoundsType.ZONE.halfExtents;
|
||||
this.major_radius = Enum.CityBoundsType.ZONE.halfExtents;
|
||||
} else {
|
||||
this.minor_radius = this.template.minor_radius;
|
||||
this.major_radius = this.template.major_radius;
|
||||
}
|
||||
|
||||
this.setParent();
|
||||
this.setBounds();
|
||||
|
||||
@@ -192,7 +201,7 @@ public class Zone extends AbstractWorldObject {
|
||||
// Set initial bounds object
|
||||
|
||||
this.bounds = Bounds.borrow();
|
||||
this.bounds.setBounds(new Vector2f(this.absX, this.absZ), new Vector2f(this.template.major_radius, this.template.minor_radius), 0.0f);
|
||||
this.bounds.setBounds(new Vector2f(this.absX, this.absZ), new Vector2f(this.major_radius, this.minor_radius), 0.0f);
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -309,12 +309,6 @@ public class WorldServer {
|
||||
Logger.info("Initializing Errant Guild");
|
||||
Guild.getErrantGuild();
|
||||
|
||||
Logger.info("Loading Server Collision Meshes.");
|
||||
//DbManager.BuildingQueries.LOAD_PROP_MESHES();
|
||||
DbManager.BuildingQueries.LOAD_MESH_DATA();
|
||||
DbManager.BuildingQueries.LOAD_MESH_TRIANGLE_DATA();
|
||||
//DbManager.BuildingQueries.LOAD_MESH_BOUNDING_BOXES();
|
||||
|
||||
Logger.info("Loading zone template data");
|
||||
DbManager.ZoneQueries.LOAD_ALL_ZONE_TEMPLATES();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user