diff --git a/ngengine_public.jar b/ngengine_public.jar index 0b3fb96f..353c787a 100644 Binary files a/ngengine_public.jar and b/ngengine_public.jar differ diff --git a/scripts/object/building/corellia/cloning_corellia.py b/scripts/object/building/corellia/cloning_corellia.py index 0214be67..487b8163 100644 --- a/scripts/object/building/corellia/cloning_corellia.py +++ b/scripts/object/building/corellia/cloning_corellia.py @@ -1,4 +1,6 @@ import sys +from java.util import Vector +from resources.common import SpawnPoint def setup(core, object): stcSvc = core.staticService @@ -8,5 +10,16 @@ def setup(core, object): stcSvc.spawnObject('object/tangible/terminal/shared_terminal_cloning.iff', object.getPlanet().getName(), cell.getObjectID(), float(1), float(-0.05), float(2.5), float(0), float(1)) stcSvc.spawnObject('object/tangible/terminal/shared_terminal_cloning.iff', object.getPlanet().getName(), cell.getObjectID(), float(1), float(-0.05), float(-1.35), float(1), float(0)) + spawnPoints = Vector() + spawnPoints.add(SpawnPoint(-16.6514, -4.29167, -10.4976, 0.709453, 0.704753, 4)) + spawnPoints.add(SpawnPoint(-16.5965, -4.29167, -14.1652, 0.721346, 0.692575, 4)) + spawnPoints.add(SpawnPoint(16.5771, -4.29167, -14.2091, 0.71195, -0.702231, 4)) + spawnPoints.add(SpawnPoint(16.6876, -4.29167, -10.5391, -0.6972, 0.716877, 4)) + spawnPoints.add(SpawnPoint(6.32992, -4.79167, 0.613332, 0.999992, 0.00405023, 4)) + spawnPoints.add(SpawnPoint(1.58067, -4.79167, 0.582775, 0.989691, 0.0143216, 4)) + spawnPoints.add(SpawnPoint(-2.84125, -4.79167, 0.657588, -0.0356012, 0.999366, 4)) + + object.setAttachment('spawnPoints', spawnPoints) + return \ No newline at end of file diff --git a/scripts/object/building/military/outpost_cloning_facility.py b/scripts/object/building/military/outpost_cloning_facility.py index f32c6716..781c25a2 100644 --- a/scripts/object/building/military/outpost_cloning_facility.py +++ b/scripts/object/building/military/outpost_cloning_facility.py @@ -1,4 +1,6 @@ import sys +from java.util import Vector +from resources.common import SpawnPoint def setup(core, object): stcSvc = core.staticService @@ -6,5 +8,10 @@ def setup(core, object): if cell: stcSvc.spawnObject('object/tangible/terminal/shared_terminal_cloning.iff', object.getPlanet().getName(), cell.getObjectID(), float(0.0387871), float(0.125265), float(-6), float(-0.0595427), float(0.998226)) + + spawnPoints = Vector() + spawnPoints.add(SpawnPoint(3.2408, 0.125266, -3.59732, 0.707641, -0.706572, 5)) + + object.setAttachment('spawnPoints', spawnPoints) return diff --git a/scripts/object/building/military/outpost_cloning_facility_s02.py b/scripts/object/building/military/outpost_cloning_facility_s02.py index 68c60b76..8d5a2475 100644 --- a/scripts/object/building/military/outpost_cloning_facility_s02.py +++ b/scripts/object/building/military/outpost_cloning_facility_s02.py @@ -1,4 +1,6 @@ import sys +from java.util import Vector +from resources.common import SpawnPoint def setup(core, object): stcSvc = core.staticService @@ -7,5 +9,12 @@ def setup(core, object): if cell: stcSvc.spawnObject('object/tangible/terminal/shared_terminal_cloning.iff', object.getPlanet().getName(), cell.getObjectID(), float(-5.5), float(0.125265), float(-3.43841), float(0.699512), float(0.714621)) + spawnPoints = Vector() + spawnPoints.add(SpawnPoint(4.44727, 0.125266, -3.80136, -0.706468, 0.707745, 5)) + spawnPoints.add(SpawnPoint(4.65395, 0.125266, 1.49466, 0.714548, -0.699587, 4)) + spawnPoints.add(SpawnPoint(-3.99569, 0.125266, -3.51553, 0.70407, 0.710131, 6)) + + object.setAttachment('spawnPoints', spawnPoints) + return \ No newline at end of file diff --git a/scripts/object/building/military/outpost_cloning_facility_s03.py b/scripts/object/building/military/outpost_cloning_facility_s03.py index cfecc438..48330e4c 100644 --- a/scripts/object/building/military/outpost_cloning_facility_s03.py +++ b/scripts/object/building/military/outpost_cloning_facility_s03.py @@ -1,11 +1,20 @@ import sys +from java.util import Vector +from resources.common import SpawnPoint def setup(core, object): stcSvc = core.staticService cell = object.getCellByCellNumber(3) - + if cell: stcSvc.spawnObject('object/tangible/terminal/shared_terminal_cloning.iff', object.getPlanet().getName(), cell.getObjectID(), float(-0.134662), float(0.125265), float(-5.80915), float(-0.0238176), float(0.998716)) + spawnPoints = Vector() + spawnPoints.add(SpawnPoint(4.42891, 0.125266, -3.717, 0.712528, -0.701643, 5)) + spawnPoints.add(SpawnPoint(4.45469, 0.125266, 1.18026, 0.72696, -0.68668, 4)) + spawnPoints.add(SpawnPoint(4.73, 0.125266, 3.02662, 0.717716, -0.696336, 4)) + + object.setAttachment('spawnPoints', spawnPoints) + return \ No newline at end of file diff --git a/scripts/object/building/naboo/cloning_facility_naboo.py b/scripts/object/building/naboo/cloning_facility_naboo.py index 0214be67..487b8163 100644 --- a/scripts/object/building/naboo/cloning_facility_naboo.py +++ b/scripts/object/building/naboo/cloning_facility_naboo.py @@ -1,4 +1,6 @@ import sys +from java.util import Vector +from resources.common import SpawnPoint def setup(core, object): stcSvc = core.staticService @@ -8,5 +10,16 @@ def setup(core, object): stcSvc.spawnObject('object/tangible/terminal/shared_terminal_cloning.iff', object.getPlanet().getName(), cell.getObjectID(), float(1), float(-0.05), float(2.5), float(0), float(1)) stcSvc.spawnObject('object/tangible/terminal/shared_terminal_cloning.iff', object.getPlanet().getName(), cell.getObjectID(), float(1), float(-0.05), float(-1.35), float(1), float(0)) + spawnPoints = Vector() + spawnPoints.add(SpawnPoint(-16.6514, -4.29167, -10.4976, 0.709453, 0.704753, 4)) + spawnPoints.add(SpawnPoint(-16.5965, -4.29167, -14.1652, 0.721346, 0.692575, 4)) + spawnPoints.add(SpawnPoint(16.5771, -4.29167, -14.2091, 0.71195, -0.702231, 4)) + spawnPoints.add(SpawnPoint(16.6876, -4.29167, -10.5391, -0.6972, 0.716877, 4)) + spawnPoints.add(SpawnPoint(6.32992, -4.79167, 0.613332, 0.999992, 0.00405023, 4)) + spawnPoints.add(SpawnPoint(1.58067, -4.79167, 0.582775, 0.989691, 0.0143216, 4)) + spawnPoints.add(SpawnPoint(-2.84125, -4.79167, 0.657588, -0.0356012, 0.999366, 4)) + + object.setAttachment('spawnPoints', spawnPoints) + return \ No newline at end of file diff --git a/scripts/object/building/player/city/cloning_corellia.py b/scripts/object/building/player/city/cloning_corellia.py index e81f8587..b5143164 100644 --- a/scripts/object/building/player/city/cloning_corellia.py +++ b/scripts/object/building/player/city/cloning_corellia.py @@ -1,4 +1,6 @@ import sys +from java.util import Vector +from resources.common import SpawnPoint def setup(core, object): stcSvc = core.staticService @@ -7,6 +9,11 @@ def setup(core, object): if cell: stcSvc.spawnObject('object/tangible/terminal/shared_terminal_player_structure.iff', object.getPlanet().getName(), cell.getObjectID(), float(-13.28604), float(-2.110639), float(-6.443224), float(0.707107), float(0.707107)) stcSvc.spawnObject('object/tangible/terminal/shared_terminal_cloning.iff', object.getPlanet().getName(), cell.getObjectID(), float(-13.57625), float(-2.5), float(3.1), float(0.707107), float(0.707107)) + + spawnPoints = Vector() + spawnPoints.add(SpawnPoint(-9.7, -1.2, -6.2, 0, 1, 4)) + + object.setAttachment('spawnPoints', spawnPoints) return \ No newline at end of file diff --git a/scripts/object/building/player/city/cloning_naboo.py b/scripts/object/building/player/city/cloning_naboo.py index e81f8587..bd659fb3 100644 --- a/scripts/object/building/player/city/cloning_naboo.py +++ b/scripts/object/building/player/city/cloning_naboo.py @@ -1,4 +1,6 @@ import sys +from java.util import Vector +from resources.common import SpawnPoint def setup(core, object): stcSvc = core.staticService @@ -7,6 +9,11 @@ def setup(core, object): if cell: stcSvc.spawnObject('object/tangible/terminal/shared_terminal_player_structure.iff', object.getPlanet().getName(), cell.getObjectID(), float(-13.28604), float(-2.110639), float(-6.443224), float(0.707107), float(0.707107)) stcSvc.spawnObject('object/tangible/terminal/shared_terminal_cloning.iff', object.getPlanet().getName(), cell.getObjectID(), float(-13.57625), float(-2.5), float(3.1), float(0.707107), float(0.707107)) + + spawnPoints = Vector() + spawnPoints.add(SpawnPoint(-9.6, -1.2, -6.4, 0, 1, 4)) + + object.setAttachment('spawnPoints', spawnPoints) return \ No newline at end of file diff --git a/scripts/object/building/player/city/cloning_tatooine.py b/scripts/object/building/player/city/cloning_tatooine.py index e81f8587..1958ef0d 100644 --- a/scripts/object/building/player/city/cloning_tatooine.py +++ b/scripts/object/building/player/city/cloning_tatooine.py @@ -1,4 +1,6 @@ import sys +from java.util import Vector +from resources.common import SpawnPoint def setup(core, object): stcSvc = core.staticService @@ -7,6 +9,11 @@ def setup(core, object): if cell: stcSvc.spawnObject('object/tangible/terminal/shared_terminal_player_structure.iff', object.getPlanet().getName(), cell.getObjectID(), float(-13.28604), float(-2.110639), float(-6.443224), float(0.707107), float(0.707107)) stcSvc.spawnObject('object/tangible/terminal/shared_terminal_cloning.iff', object.getPlanet().getName(), cell.getObjectID(), float(-13.57625), float(-2.5), float(3.1), float(0.707107), float(0.707107)) + + spawnPoints = Vector() + spawnPoints.add(SpawnPoint(-9.8, -1.2, -6.6, 0, 1, 4)) + + object.setAttachment('spawnPoints', spawnPoints) return \ No newline at end of file diff --git a/scripts/object/building/tatooine/cloning_facility_tatooine.py b/scripts/object/building/tatooine/cloning_facility_tatooine.py index 330d8dba..7673e657 100644 --- a/scripts/object/building/tatooine/cloning_facility_tatooine.py +++ b/scripts/object/building/tatooine/cloning_facility_tatooine.py @@ -1,4 +1,6 @@ import sys +from java.util import Vector +from resources.common import SpawnPoint def setup(core, object): stcSvc = core.staticService @@ -7,7 +9,19 @@ def setup(core, object): if cell: stcSvc.spawnObject('object/tangible/terminal/shared_terminal_cloning.iff', object.getPlanet().getName(), cell.getObjectID(), float(1), float(-0.05), float(2.5), float(0), float(1)) stcSvc.spawnObject('object/tangible/terminal/shared_terminal_cloning.iff', object.getPlanet().getName(), cell.getObjectID(), float(1), float(-0.05), float(-1.35), float(1), float(0)) + + spawnPoints = Vector() + spawnPoints.add(SpawnPoint(-16.6514, -4.29167, -10.4976, 0.709453, 0.704753, 4)) + spawnPoints.add(SpawnPoint(-16.5965, -4.29167, -14.1652, 0.721346, 0.692575, 4)) + spawnPoints.add(SpawnPoint(16.5771, -4.29167, -14.2091, 0.71195, -0.702231, 4)) + spawnPoints.add(SpawnPoint(16.6876, -4.29167, -10.5391, -0.6972, 0.716877, 4)) + spawnPoints.add(SpawnPoint(6.32992, -4.79167, 0.613332, 0.999992, 0.00405023, 4)) + spawnPoints.add(SpawnPoint(1.58067, -4.79167, 1.00877, 0.989691, -0.143217, 4)) + spawnPoints.add(SpawnPoint(-2.84125, -4.79167, 1.26153, -0.0356012, 0.999366, 4)) + + object.setAttachment('spawnPoints', spawnPoints) core.mapService.addLocation(object.getPlanet(), 'Cloning Facility', object.getPosition().x, object.getPosition().z, 5, 0, 0) + return \ No newline at end of file diff --git a/scripts/object/building/tatooine/cloning_facility_tatooine_small.py b/scripts/object/building/tatooine/cloning_facility_tatooine_small.py index e24f1252..2994a68a 100644 --- a/scripts/object/building/tatooine/cloning_facility_tatooine_small.py +++ b/scripts/object/building/tatooine/cloning_facility_tatooine_small.py @@ -1,4 +1,6 @@ import sys +from java.util import Vector +from resources.common import SpawnPoint def setup(core, object): stcSvc = core.staticService @@ -6,5 +8,11 @@ def setup(core, object): if cell: stcSvc.spawnObject('object/tangible/terminal/shared_terminal_cloning.iff', object.getPlanet().getName(), cell.getObjectID(), float(-0.42), float(-0.38), float(-0.4), float(1), float(0)) + + spawnPoints = Vector() + spawnPoints.add(SpawnPoint(0.445015, 0.271775, 1.39199, 0.707038, 0.707176, 9)) + + object.setAttachment('spawnPoints', spawnPoints) - return \ No newline at end of file + return + \ No newline at end of file diff --git a/src/resources/common/SpawnPoint.java b/src/resources/common/SpawnPoint.java new file mode 100644 index 00000000..0053d5d3 --- /dev/null +++ b/src/resources/common/SpawnPoint.java @@ -0,0 +1,78 @@ +/******************************************************************************* + * Copyright (c) 2013 + * + * This File is part of NGECore2. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine. + * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination. + ******************************************************************************/ +package resources.common; + +import com.sleepycat.persist.model.Persistent; + +import engine.resources.scene.Point3D; +import engine.resources.scene.Quaternion; + +@Persistent +public class SpawnPoint { + + private Point3D position; + private Quaternion orientation; + private int cellNumber; + + public SpawnPoint() { } + + public SpawnPoint(Point3D position, Quaternion orientation) { + this.setPosition(position); + this.setOrientation(orientation); + } + + public SpawnPoint(float x, float y, float z, float oY, float oW) { + this.setPosition(new Point3D(x, y, z)); + this.setOrientation(new Quaternion(oW, 0, oY, 0)); + } + + public SpawnPoint(float x, float y, float z, float oY, float oW, int cellNumber) { + this.setPosition(new Point3D(x, y, z)); + this.setOrientation(new Quaternion(oW, 0, oY, 0)); + this.setCellNumber(cellNumber); + } + + public Point3D getPosition() { + return position; + } + + public void setPosition(Point3D position) { + this.position = position; + } + + public Quaternion getOrientation() { + return orientation; + } + + public void setOrientation(Quaternion orientation) { + this.orientation = orientation; + } + + public int getCellNumber() { + return cellNumber; + } + + public void setCellNumber(int cellNumber) { + this.cellNumber = cellNumber; + } + +}