Changeset 9689aa540670735b543f787fb9212540cbddf8cc

Show
Ignore:
Timestamp:
08/11/07 15:54:30 (1 year ago)
Author:
Christopher Jung <bktheg@web.de>
git-committer:
Christopher Jung <bktheg@web.de> 1186840470 +0200
git-parent:

[205b19be0ccc9c67b8505fb8b95cd4e0bcae761d]

git-author:
Christopher Jung <bktheg@web.de> 1186840470 +0200
Message:

Werftkomplexe eingebaut

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • db/tables/werften.sql

    r338b490 r9689aa5  
    66  `shipid` int(11) default null, 
    77  `linked` int(11) default null, 
     8  `linkedWerft` int(11) default null, 
     9  `komplex` tinyint(1) NOT NULL default '0',  
    810  PRIMARY KEY  (`id`), 
    911  KEY `col` (`col`), 
     
    1416ALTER TABLE werften ADD CONSTRAINT werften_fk_bases2 FOREIGN KEY (col) REFERENCES bases(id); 
    1517ALTER TABLE werften ADD CONSTRAINT werften_fk_ships FOREIGN KEY (shipid) REFERENCES ships(id); 
     18ALTER TABLE werften ADD CONSTRAINT werften_fk_werften FOREIGN KEY (linkedWerft) REFERENCES werften(id) ON DELETE SET NULL; 
  • db/updates.xml

    r253f8ca r9689aa5  
    372372                ALTER TABLE `fz` DROP INDEX `col`; 
    373373        ]]></update> 
     374        <update type="structure" datum="2007-08-05"><![CDATA[ 
     375                ALTER TABLE `werften` ADD `linkedWerft` INT NULL; 
     376                ALTER TABLE werften ADD CONSTRAINT werften_fk_werften FOREIGN KEY (linkedWerft) REFERENCES werften(id) ON DELETE SET NULL; 
     377                ALTER TABLE `werften` ADD `komplex` TINYINT( 1 ) NOT NULL DEFAULT '0'; 
     378        ]]></update> 
    374379</updates> 
  • src/net/driftingsouls/ds2/server/modules/KapernController.java

    r34776f5 r9689aa5  
    4242import net.driftingsouls.ds2.server.ships.ShipTypeData; 
    4343import net.driftingsouls.ds2.server.ships.ShipTypes; 
     44import net.driftingsouls.ds2.server.werften.ShipWerft; 
    4445 
    4546import org.apache.commons.lang.math.RandomUtils; 
     
    418419                         
    419420                        if( this.targetShipType.getWerft() != 0 ) { 
    420                                 database.update("UPDATE werften SET linked=0 WHERE shipid="+this.targetShip.getId()); 
     421                                ShipWerft werft = (ShipWerft)db.createQuery("from ShipWerft where ship=?") 
     422                                        .setEntity(0, this.targetShip) 
     423                                        .uniqueResult(); 
     424                                         
     425                                if( werft.getKomplex() != null ) { 
     426                                        werft.removeFromKomplex(); 
     427                                } 
     428                                werft.setLink(null); 
    421429                        } 
    422430                         
     
    439447                                        .executeUpdate(); 
    440448                                 
    441                                 database.update("UPDATE werften SET linked=0 WHERE shipid="+aship.getId()); 
     449                                if( aship.getTypeData().getWerft() != 0 ) { 
     450                                        ShipWerft werft = (ShipWerft)db.createQuery("from ShipWerft where ship=?") 
     451                                                .setEntity(0, aship) 
     452                                                .uniqueResult(); 
     453                                                 
     454                                        if( werft.getKomplex() != null ) { 
     455                                                werft.removeFromKomplex(); 
     456                                        } 
     457                                        werft.setLink(null); 
     458                                } 
    442459                        } 
    443460                         
  • src/net/driftingsouls/ds2/server/modules/ks/KSKapernAction.java

    r34776f5 r9689aa5  
    4040import net.driftingsouls.ds2.server.ships.ShipTypeData; 
    4141import net.driftingsouls.ds2.server.ships.ShipTypes; 
     42import net.driftingsouls.ds2.server.werften.ShipWerft; 
    4243 
    4344/** 
     
    286287                                        .executeUpdate(); 
    287288                                if( dockShip.getTypeData().getWerft() != 0 ) { 
    288                                         db.createQuery("update ShipWerft set linked=null where shipid=?") 
     289                                        ShipWerft werft = (ShipWerft)db.createQuery("from ShipWerft where ship=?") 
    289290                                                .setEntity(0, dockShip) 
    290                                                 .executeUpdate(); 
     291                                                .uniqueResult(); 
     292                                                         
     293                                        if( werft.getKomplex() != null ) { 
     294                                                werft.removeFromKomplex(); 
     295                                        } 
     296                                        werft.setLink(null); 
    291297                                } 
    292298                                 
     
    299305                                .executeUpdate(); 
    300306                        if( enemyShipType.getWerft() != 0 ) { 
    301                                 db.createQuery("update ShipWerft set linked=null where shipid=?") 
     307                                ShipWerft werft = (ShipWerft)db.createQuery("from ShipWerft where ship=?") 
    302308                                        .setEntity(0, enemyShip) 
    303                                         .executeUpdate(); 
     309                                        .uniqueResult(); 
     310                                         
     311                                if( werft.getKomplex() != null ) { 
     312                                        werft.removeFromKomplex(); 
     313                                } 
     314                                werft.setLink(null); 
    304315                        } 
    305316                                 
  • src/net/driftingsouls/ds2/server/ships/Ship.java

    rab7055e r9689aa5  
    889889 
    890890                this.status = Common.implode(" ", status); 
     891                 
     892                // Ueberpruefen, ob ein evt vorhandener Werftkomplex nicht exisitert 
     893                if( type.getWerft() != 0 ) { 
     894                        ShipWerft werft = (ShipWerft)db.createQuery("from ShipWerft where ship=?") 
     895                                .setEntity(0, this) 
     896                                .uniqueResult(); 
     897                         
     898                        if( werft.getKomplex() != null ) { 
     899                                werft.getKomplex().checkWerftLocations(); 
     900                        } 
     901                } 
    891902 
    892903                return this.status; 
     
    17921803                        for( Ship fleetship : fleetdata.ships.values() ) { 
    17931804                                if( fleetdata.dockedCount.get(fleetship.getId()) > 0 ) { 
    1794                                         db.createQuery("update Ship set x=?,y=?,system=? where id>0 and docked in (?,?)") 
    1795                                         .setInteger(0, fleetship.getX()) 
    1796                                         .setInteger(1, fleetship.getY()) 
    1797                                         .setInteger(2, fleetship.getSystem()) 
    1798                                         .setString(3, "l "+fleetship.getId()) 
    1799                                         .setString(4, Integer.toString(fleetship.getId())) 
    1800                                         .executeUpdate(); 
     1805                                        List dockedList = db.createQuery("from Ship where id>0 and docked in (?,?)") 
     1806                                                .setString(0, "l "+fleetship.getId()) 
     1807                                                .setString(1, Integer.toString(fleetship.getId())) 
     1808                                                .list(); 
     1809                                        for( Iterator iter=dockedList.iterator(); iter.hasNext(); ) { 
     1810                                                Ship dockedShip = (Ship)iter.next(); 
     1811                                                dockedShip.setSystem(fleetship.getSystem()); 
     1812                                                dockedShip.setX(fleetship.x); 
     1813                                                dockedShip.setY(fleetship.y); 
     1814                                                dockedShip.recalculateShipStatus(); 
     1815                                        } 
    18011816                                } 
    18021817 
     
    21502165                        this.docked = ""; 
    21512166                        if( docked != 0 ) { 
    2152                                 db.createQuery("update Ship set x=? ,y=?, system=? where id>0 and docked in (?,?)") 
    2153                                 .setInteger(0, this.x) 
    2154                                 .setInteger(1, this.y) 
    2155                                 .setInteger(2, this.system) 
    2156                                 .setString(3, "l "+this.id) 
    2157                                 .setString(4, Integer.toString(this.id)) 
    2158                                 .executeUpdate(); 
     2167                                List dockedList = db.createQuery("from Ship where id>0 and docked in (?,?)") 
     2168                                        .setString(0, "l "+this.id) 
     2169                                        .setString(1, Integer.toString(this.id)) 
     2170                                        .list(); 
     2171                                for( Iterator iter=dockedList.iterator(); iter.hasNext(); ) { 
     2172                                        Ship dockedShip = (Ship)iter.next(); 
     2173                                        dockedShip.setSystem(this.system); 
     2174                                        dockedShip.setX(this.x); 
     2175                                        dockedShip.setY(this.y); 
     2176                                        dockedShip.recalculateShipStatus(); 
     2177                                } 
    21592178                        } 
    21602179                } 
     
    24262445                                aship.setY(outLoc.getY()); 
    24272446                                aship.setSystem(outLoc.getSystem()); 
     2447                                aship.recalculateShipStatus(); 
    24282448                        } 
    24292449 
     
    28672887                // Und nun loeschen wir es... 
    28682888                db.createQuery("delete from Offizier where dest=?") 
    2869                 .setString(0, "s "+this.id) 
    2870                 .executeUpdate(); 
     2889                       .setString(0, "s "+this.id) 
     2890                       .executeUpdate(); 
    28712891 
    28722892                db.createQuery("delete from Jump where shipid=?") 
    2873                 .setInteger(0, this.id) 
    2874                 .executeUpdate(); 
     2893                       .setInteger(0, this.id) 
     2894                       .executeUpdate(); 
    28752895 
    28762896                ShipWerft werft = (ShipWerft)db.createQuery("from ShipWerft where shipid=?") 
    2877                 .setInteger(0, this.id) 
    2878                 .uniqueResult(); 
     2897                       .setInteger(0, this.id) 
     2898                       .uniqueResult(); 
    28792899 
    28802900                if( werft != null ) { 
     2901                        if( werft.getKomplex() != null ) { 
     2902                                werft.removeFromKomplex(); 
     2903                        } 
    28812904                        werft.clearQueue(); 
    28822905                        db.delete(werft); 
     
    28842907 
    28852908                db.createQuery("delete from ShipModules where id=?") 
    2886                 .setInteger(0, this.id) 
    2887                 .executeUpdate(); 
     2909                       .setInteger(0, this.id) 
     2910                       .executeUpdate(); 
    28882911 
    28892912                db.delete(this); 
     
    29472970                        this.owner = newowner; 
    29482971                        db.createQuery("update Offizier set userid=? where dest=?") 
    2949                         .setEntity(0, newowner) 
    2950                         .setString(1, "s "+this.id) 
    2951                         .executeUpdate(); 
     2972                               .setEntity(0, newowner) 
     2973                               .setString(1, "s "+this.id) 
     2974                               .executeUpdate(); 
    29522975 
    29532976                        Common.dblog( "consign", Integer.toString(this.id), Integer.toString(newowner.getID()),  
     
    29602983                                newowner.setFlagschiff(this.id); 
    29612984                        } 
     2985                         
     2986                        if( getTypeData().getWerft() != 0 ) { 
     2987                                ShipWerft werft = (ShipWerft)db.createQuery("from ShipWerft where ship=?") 
     2988                                        .setEntity(0, this) 
     2989                                        .uniqueResult(); 
     2990                                 
     2991                                if( werft.getKomplex() != null ) { 
     2992                                        werft.removeFromKomplex(); 
     2993                                } 
     2994                        } 
    29622995                } 
    29632996 
    29642997                StringBuilder message = MESSAGE.get(); 
    29652998                List s = db.createQuery("from Ship where id>0 and docked in (?,?)") 
    2966                 .setString(0, Integer.toString(this.id)) 
    2967                 .setString(1, "l "+this.id) 
    2968                 .list(); 
     2999                       .setString(0, Integer.toString(this.id)) 
     3000                       .setString(1, "l "+this.id) 
     3001                       .list(); 
    29693002                for( Iterator iter=s.iterator(); iter.hasNext(); ) { 
    29703003                        Ship aship = (Ship)iter.next(); 
  • src/net/driftingsouls/ds2/server/werften/BaseWerft.java

    r5b00c95 r9689aa5  
    3232import net.driftingsouls.ds2.server.cargo.Cargo; 
    3333import net.driftingsouls.ds2.server.entities.User; 
     34import net.driftingsouls.ds2.server.framework.Common; 
    3435import net.driftingsouls.ds2.server.framework.ContextMap; 
    3536 
     
    219220                return base.getName(); 
    220221        } 
     222 
     223        @Override 
     224        public boolean isLinkableWerft() { 
     225                return false; 
     226        } 
     227 
     228        @Override 
     229        public String getObjectUrl() { 
     230                return Common.buildUrl(ContextMap.getContext(), "default", "module", "base", "col", base.getID()); 
     231        } 
    221232} 
  • src/net/driftingsouls/ds2/server/werften/ShipWerft.java

    r5b00c95 r9689aa5  
    3232import net.driftingsouls.ds2.server.cargo.ResourceList; 
    3333import net.driftingsouls.ds2.server.entities.User; 
     34import net.driftingsouls.ds2.server.framework.Common; 
    3435import net.driftingsouls.ds2.server.framework.ContextMap; 
    3536import net.driftingsouls.ds2.server.ships.Ship; 
     
    104105         */ 
    105106        public void setLink( Base base ) { 
     107                // In einem Komplex darf eine Basis nur einmal vorkommen 
     108                if( (base != null) && (getKomplex() != null) ) { 
     109                        WerftObject[] members = getKomplex().getMembers(); 
     110                        for( int i=0; i < members.length; i++ ) { 
     111                                if( !(members[i] instanceof ShipWerft) ) { 
     112                                        continue; 
     113                                } 
     114                                if( members[i].getWerftID() == this.getWerftID() ) { 
     115                                        continue; 
     116                                } 
     117                                 
     118                                ShipWerft member = (ShipWerft)members[i]; 
     119                                if( member.getLinkedBase() == base ) { 
     120                                        return; 
     121                                } 
     122                        } 
     123                } 
     124                 
    106125                linked = base; 
    107126        } 
     
    409428                return this.ship.getName(); 
    410429        } 
     430 
     431        @Override 
     432        public boolean isLinkableWerft() { 
     433                return this.ship.getTypeData().hasFlag(ShipTypes.SF_WERFTKOMPLEX); 
     434        } 
     435 
     436        @Override 
     437        public String getObjectUrl() { 
     438                return Common.buildUrl(ContextMap.getContext(), "default", "module", "schiff", "ship", ship.getId()); 
     439        } 
     440 
     441        @Override 
     442        public void addToKomplex(WerftKomplex linkedWerft) { 
     443                super.addToKomplex(linkedWerft); 
     444                 
     445                // Falls notwendig den Link auf die Basis entfernen - in einem Komplex darf eine Basis 
     446                // nur einmal vorkommen 
     447                if( this.linked != null ) { 
     448                        WerftObject[] members = linkedWerft.getMembers(); 
     449                        for( int i=0; i < members.length; i++ ) { 
     450                                if( !(members[i] instanceof ShipWerft) ) { 
     451                                        continue; 
     452                                } 
     453                                if( members[i].getWerftID() == this.getWerftID() ) { 
     454                                        continue; 
     455                                } 
     456                                 
     457                                ShipWerft member = (ShipWerft)members[i]; 
     458                                if( member.getLinkedBase() == this.getLinkedBase() ) { 
     459                                        this.setLink(null); 
     460                                        return; 
     461                                } 
     462                        } 
     463                } 
     464        } 
     465 
     466        @Override 
     467        public void createKomplexWithWerft(WerftObject werft) { 
     468                super.createKomplexWithWerft(werft); 
     469                 
     470                // Falls notwendig den Link auf die Basis entfernen - in einem Komplex darf eine Basis 
     471                // nur einmal vorkommen 
     472                if( this.linked != null ) { 
     473                        WerftObject[] members = this.getKomplex().getMembers(); 
     474                        for( int i=0; i < members.length; i++ ) { 
     475                                if( !(members[i] instanceof ShipWerft) ) { 
     476                                        continue; 
     477                                } 
     478                                if( members[i].getWerftID() == this.getWerftID() ) { 
     479                                        continue; 
     480                                } 
     481                                 
     482                                ShipWerft member = (ShipWerft)members[i]; 
     483                                if( member.getLinkedBase() == this.getLinkedBase() ) { 
     484                                        this.setLink(null); 
     485                                        return; 
     486                                } 
     487                        } 
     488                } 
     489        } 
    411490} 
  • src/net/driftingsouls/ds2/server/werften/WerftGUI.java

    r00c1526 r9689aa5  
    7676         */ 
    7777        public String execute( WerftObject werft ) { 
    78                 org.hibernate.Session db = context.getDB(); 
    79          
    8078                int build = context.getRequest().getParameterInt("build"); 
    8179                int ws = context.getRequest().getParameterInt("ws"); 
     80                int linkedwerft = context.getRequest().getParameterInt("linkedwerft"); 
    8281                 
    8382                if( !t.set_file( "_WERFT.WERFTGUI", "werft.werftgui.html" ) ) { 
     
    8584                        return ""; 
    8685                } 
     86                 
     87                // Werften aneinanderkoppelt 
     88                if( linkedwerft != 0 && werft.isLinkableWerft() ) { 
     89                        org.hibernate.Session db = context.getDB(); 
     90                         
     91                        if( werft.getKomplex() != null ) { 
     92                                werft.removeFromKomplex(); 
     93                        } 
     94                         
     95                        if( linkedwerft > 0 ) { 
     96                                WerftObject targetwerft = (WerftObject)db.get(WerftObject.class, linkedwerft); 
     97                                 
     98                                if( targetwerft == null || !targetwerft.isLinkableWerft() ) { 
     99                                        t.set_var("werftgui.msg", "Die Zielwerft ist ungueltigt"); 
     100                                } 
     101                                else { 
     102                                        if( targetwerft.getKomplex() != null ) { 
     103                                                werft.addToKomplex(targetwerft.getKomplex()); 
     104                                        } 
     105                                        else { 
     106                                                werft.createKomplexWithWerft(targetwerft); 
     107                                        } 
     108                                } 
     109                        } 
     110                } 
     111                 
     112                final String action = context.getRequest().getParameterString("werftact"); 
     113                if( action.equals("removefromkomplex") ) { 
     114                        org.hibernate.Session db = context.getDB(); 
     115                         
     116                        WerftObject obj = (WerftObject)db.get(WerftObject.class, context.getRequest().getParameterInt("entry")); 
     117                         
     118                        if( (obj != null) && obj.getKomplex() != null ) { 
     119                                obj.removeFromKomplex(); 
     120                        } 
     121                } 
     122                 
     123                if( werft.getKomplex() != null ) { 
     124                        werft = werft.getKomplex(); 
     125                } 
     126                 
    87127                t.set_var(      "werftgui.formhidden",  werft.getFormHidden(), 
    88                                        "werftgui.urlbase",            werft.getUrlBase() ); 
     128                                "werftgui.urlbase",           werft.getUrlBase() ); 
    89129                 
    90130                // Baudialog 
     
    143183                                 
    144184                                final int position = context.getRequest().getParameterInt("entry"); 
    145                                 final String action = context.getRequest().getParameterString("werftact"); 
    146185                                 
    147186                                if( action.equals("canclebuild") ) { 
     
    177216                                t.set_var("werftgui.main.options", 1); 
    178217                                 
    179                                 // Verbindung Base <-> Werft 
    180                                 if( werft instanceof ShipWerft ) { 
    181                                         int shipid = ((ShipWerft)werft).getShipID(); 
    182                                         Base linkedbase = ((ShipWerft)werft).getLinkedBase(); 
     218                                outWerftOptions(werft); 
     219                        } 
     220                } 
     221                t.parse( "OUT", "_WERFT.WERFTGUI" );     
     222                return t.getVar("OUT"); 
     223        } 
     224 
     225        private void outWerftOptions(WerftObject werft) { 
     226                org.hibernate.Session db = context.getDB(); 
     227                 
     228                if( werft instanceof WerftKomplex ) { 
     229                        t.set_block("_WERFT.WERFTGUI", "werftgui.komplexparts.listitem", "werftgui.komplexparts.list"); 
     230                         
     231                        final WerftObject[] members = ((WerftKomplex)werft).getMembers(); 
     232                        for( int i=0; i < members.length; i++ ) { 
     233                                final WerftObject member = members[i]; 
     234                                 
     235                                t.set_var( 
     236                                                "komplexpart.type.image",       member.getWerftPicture(), 
     237                                                "komplexpart.name",     member.getWerftName(), 
     238                                                "komplexpart.url",      member.getObjectUrl(), 
     239                                                "komplexpart.id",       member.getWerftID(), 
     240                                                "komplexpart.werftgui.formhidden",      member.getFormHidden(), 
     241                                                "komplexpart.linkedbase.list",  ""); 
     242                                 
     243                                if( member instanceof ShipWerft ) { 
     244                                        int shipid = ((ShipWerft)member).getShipID(); 
     245                                        Base linkedbase = ((ShipWerft)member).getLinkedBase(); 
    183246                                         
    184247                                        ShipTypeData shiptype = Ship.getShipType( shipid, true ); 
    185248                                        if( shiptype.getCost() == 0 ) { 
    186                                                 t.set_block("_WERFT.WERFTGUI", "werftgui.linkedbase.listitem", "werftgui.linkedbase.list"); 
     249                                                t.set_block("werftgui.komplexparts.listitem", "komplexpart.linkedbase.listitem", "komplexpart.linkedbase.list"); 
    187250                                                 
    188                                                 if( linkedbase != null ) { 
    189                                                         t.set_var(      "linkedbase.selected",  false, 
    190                                                                                 "linkedbase.value",             "-1", 
    191                                                                                 "linkedbase.name",              "kein Ziel" ); 
     251                                                t.set_var(      "komplexpart.linkedbase.selected",      linkedbase == null, 
     252                                                                        "komplexpart.linkedbase.value",         "-1", 
     253                                                                        "komplexpart.linkedbase.name",          "kein Ziel" ); 
    192254                                                         
    193                                                         t.parse("werftgui.linkedbase.list", "werftgui.linkedbase.listitem", true); 
    194                                                 } 
    195                          
     255                                                t.parse("komplexpart.linkedbase.list", "komplexpart.linkedbase.listitem", true); 
     256 
    196257                                                List bases = db.createQuery("from Base " + 
    197258                                                                        "where x=? and y=? and system=? and owner=? order by id") 
    198                                                                         .setInteger(0, werft.getX()) 
    199                                                                         .setInteger(1, werft.getY()) 
    200                                                                         .setInteger(2, werft.getSystem()) 
    201                                                                         .setEntity(3, werft.getOwner()) 
     259                                                                        .setInteger(0, member.getX()) 
     260                                                                        .setInteger(1, member.getY()) 
     261                                                                        .setInteger(2, member.getSystem()) 
     262                                                                        .setEntity(3, member.getOwner()) 
    202263                                                                        .list(); 
    203264                                                for( Iterator iter=bases.iterator(); iter.hasNext(); ) { 
    204265                                                        Base base = (Base)iter.next(); 
    205266                                                         
    206                                                         t.set_var(      "linkedbase.selected", (linkedbase == base)
    207                                                                                 "linkedbase.value",           base.getID(), 
    208                                                                                 "linkedbase.name",            base.getName()+" ("+base.getID()+")" ); 
    209                                                         t.parse("werftgui.linkedbase.list", "werftgui.linkedbase.listitem", true); 
     267                                                        t.set_var(      "komplexpart.linkedbase.selected",     linkedbase == base
     268                                                                                "komplexpart.linkedbase.value",               base.getID(), 
     269                                                                                "komplexpart.linkedbase.name",                base.getName()+" ("+base.getID()+")" ); 
     270                                                        t.parse("komplexpart.linkedbase.list", "komplexpart.linkedbase.listitem", true); 
    210271                                                } 
    211272                                        } 
    212273                                } 
    213                         } 
    214                 } 
    215                 t.parse( "OUT", "_WERFT.WERFTGUI" );     
    216                 return t.getVar("OUT"); 
     274                                 
     275                                t.parse("werftgui.komplexparts.list", "werftgui.komplexparts.listitem", true); 
     276                        } 
     277 
     278                        return; 
     279                } 
     280                 
     281                if( werft.isLinkableWerft() ) { 
     282                        t.set_block("_WERFT.WERFTGUI", "werftgui.linkedwerft.listitem", "werftgui.linkedwerft.list"); 
     283                                         
     284                        // Hier wird davon ausgegangen, dass nur Schiffswerften Werftkomplexe bilden 
     285                        List werften = db.createQuery("from ShipWerft " + 
     286                                "where ship.x=? and ship.y=? and ship.system=? and ship.owner=? order by ship.id") 
     287                                .setInteger(0, werft.getX()) 
     288                                .setInteger(1, werft.getY()) 
     289                                .setInteger(2, werft.getSystem()) 
     290                                .setEntity(3, werft.getOwner()) 
     291                                .list(); 
     292                        for( Iterator iter=werften.iterator(); iter.hasNext(); ) { 
     293                                ShipWerft shipwerft = (ShipWerft)iter.next(); 
     294                                 
     295                                if( shipwerft == werft ) { 
     296                                        continue; 
     297                                } 
     298                                if( !shipwerft.isLinkableWerft() ) { 
     299                                        continue; 
     300                                } 
     301                                 
     302                                t.set_var( 
     303                                                "linkedwerft.value",    shipwerft.getWerftID(), 
     304                                                "linkedwerft.name",             shipwerft.getName()+" ("+shipwerft.getShip().getId()+")" ); 
     305                                t.parse("werftgui.linkedwerft.list", "werftgui.linkedwerft.listitem", true); 
     306                        } 
     307                } 
     308                 
     309                // Verbindung Base <-> Werft 
     310                if( werft instanceof ShipWerft ) { 
     311                        int shipid = ((ShipWerft)werft).getShipID(); 
     312                        Base linkedbase = ((ShipWerft)werft).getLinkedBase(); 
     313                         
     314                        ShipTypeData shiptype = Ship.getShipType( shipid, true ); 
     315                        if( shiptype.getCost() == 0 ) { 
     316                                t.set_block("_WERFT.WERFTGUI", "werftgui.linkedbase.listitem", "werftgui.linkedbase.list"); 
     317                                 
     318                                if( linkedbase != null ) { 
     319                                        t.set_var(      "linkedbase.selected",  false, 
     320                                                                "linkedbase.value",             "-1", 
     321                                                                "linkedbase.name",              "kein Ziel" ); 
     322                                         
     323                                        t.parse("werftgui.linkedbase.list", "werftgui.linkedbase.listitem", true); 
     324                                } 
     325 
     326                                List bases = db.createQuery("from Base " + 
     327                                                        "where x=? and y=? and system=? and owner=? order by id") 
     328                                                        .setInteger(0, werft.getX()) 
     329                                                        .setInteger(1, werft.getY()) 
     330                                                        .setInteger(2, werft.getSystem()) 
     331                                                        .setEntity(3, werft.getOwner()) 
     332                                                        .list(); 
     333                                for( Iterator iter=bases.iterator(); iter.hasNext(); ) { 
     334                                        Base base = (Base)iter.next(); 
     335                                         
     336                                        t.set_var(      "linkedbase.selected",  (linkedbase == base), 
     337                                                                "linkedbase.value",             base.getID(), 
     338                                                                "linkedbase.name",              base.getName()+" ("+base.getID()+")" ); 
     339                                        t.parse("werftgui.linkedbase.list", "werftgui.linkedbase.listitem", true); 
     340                                } 
     341                        } 
     342                } 
    217343        } 
    218344 
  • src/net/driftingsouls/ds2/server/werften/WerftObject.java

    r00c1526 r9689aa5  
    3030import javax.persistence.Column; 
    3131import javax.persistence.Ent