// • ▌ ▄ ·. ▄▄▄· ▄▄ • ▪ ▄▄· ▄▄▄▄· ▄▄▄· ▐▄▄▄ ▄▄▄ . // ·██ ▐███▪▐█ ▀█ ▐█ ▀ ▪██ ▐█ ▌▪▐█ ▀█▪▐█ ▀█ •█▌ ▐█▐▌· // ▐█ ▌▐▌▐█·▄█▀▀█ ▄█ ▀█▄▐█·██ ▄▄▐█▀▀█▄▄█▀▀█ ▐█▐ ▐▌▐▀▀▀ // ██ ██▌▐█▌▐█ ▪▐▌▐█▄▪▐█▐█▌▐███▌██▄▪▐█▐█ ▪▐▌██▐ █▌▐█▄▄▌ // ▀▀ █▪▀▀▀ ▀ ▀ ·▀▀▀▀ ▀▀▀·▀▀▀ ·▀▀▀▀ ▀ ▀ ▀▀ █▪ ▀▀▀ // Magicbane Emulator Project © 2013 - 2022 // www.magicbane.com package engine.db.handlers; import engine.Enum; import engine.gameManager.DbManager; import engine.objects.Zone; import java.sql.ResultSet; import java.util.ArrayList; public class dbZoneHandler extends dbHandlerBase { public dbZoneHandler() { this.localClass = Zone.class; this.localObjectType = Enum.GameObjectType.valueOf(this.localClass.getSimpleName()); } public ArrayList GET_ALL_NODES(Zone zone) { ArrayList wsmList = new ArrayList<>(); wsmList.addAll(zone.getNodes()); if (zone.absX == 0.0f) { zone.absX = zone.getXCoord(); } if (zone.absY == 0.0f) { zone.absY = zone.getYCoord(); } if (zone.absZ == 0.0f) { zone.absZ = zone.getZCoord(); } for (Zone child : zone.getNodes()) { child.absX = child.getXCoord() + zone.absX; child.absY = child.getYCoord() + zone.absY; child.absZ = child.getZCoord() + zone.absZ; wsmList.addAll(this.GET_ALL_NODES(child)); } return wsmList; } public Zone GET_BY_UID(long ID) { Zone zone = (Zone) DbManager.getFromCache(Enum.GameObjectType.Zone, (int)ID); if (zone != null) return zone; prepareCallable("SELECT `obj_zone`.*, `object`.`parent` FROM `object` INNER JOIN `obj_zone` ON `obj_zone`.`UID` = `object`.`UID` WHERE `object`.`UID` = ?;"); setLong(1, ID); return (Zone) getObjectSingle((int) ID); } public ArrayList GET_MAP_NODES(final int objectUUID) { prepareCallable("SELECT `obj_zone`.*, `object`.`parent` FROM `object` INNER JOIN `obj_zone` ON `obj_zone`.`UID` = `object`.`UID` WHERE `object`.`parent` = ?;"); setLong(1, (long) objectUUID); return getObjectList(); } public ResultSet GET_ZONE_EXTENTS(final int loadNum) { prepareCallable("SELECT * FROM `static_zone_size` WHERE `loadNum`=?;"); setInt(1, loadNum); return executeQuery(); } public String SET_PROPERTY(final Zone z, String name, Object new_value) { prepareCallable("CALL zone_SETPROP(?,?,?)"); setLong(1, (long) z.getObjectUUID()); setString(2, name); setString(3, String.valueOf(new_value)); return getResult(); } public String SET_PROPERTY(final Zone z, String name, Object new_value, Object old_value) { prepareCallable("CALL zone_GETSETPROP(?,?,?,?)"); setLong(1, (long) z.getObjectUUID()); setString(2, name); setString(3, String.valueOf(new_value)); setString(4, String.valueOf(old_value)); return getResult(); } public boolean DELETE_ZONE(final Zone zone) { prepareCallable("DELETE FROM `object` WHERE `UID` = ? AND `type` = 'zone'"); setInt(1, zone.getObjectUUID()); return (executeUpdate() != 0); } }