Changeset 5bf376f313a666e5a73f3e3f370a25fe178b2676

Show
Ignore:
Timestamp:
12/23/07 11:54:43 (1 year ago)
Author:
Christopher Jung <bktheg@web.de>
git-committer:
Christopher Jung <bktheg@web.de> 1198407283 +0100
git-parent:

[9490b14415e37d5eec3fc020f83abacc3d6152ec]

git-author:
Christopher Jung <bktheg@web.de> 1198407283 +0100
Message:

Werften: Die Anzahl der verfuegbaren Bauplaene wird nun beruecksichtigt

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • src/net/driftingsouls/ds2/server/werften/WerftObject.java

    reaeb89e r5bf376f  
    233233                int freeSlots = this.getWerftSlots(); 
    234234                 
     235                final Cargo cargo = new Cargo(this.getCargo(true)); 
     236                final User user = this.getOwner(); 
     237                 
     238                if( user.getAlly() != null ) { 
     239                        Cargo allyitems = new Cargo( Cargo.Type.ITEMSTRING, user.getAlly().getItems() ); 
     240                        cargo.addCargo( allyitems ); 
     241                } 
     242                 
    235243                final WerftQueueEntry[] entries = getBuildQueue(); 
    236244                for( int i=0; i < entries.length; i++ ) { 
    237245                        final WerftQueueEntry entry = entries[i]; 
    238246                         
    239                         if( entry.getSlots() <= freeSlots ) { 
    240                                 entry.setScheduled(true); 
     247                        // Falls ein Item benoetigt wird pruefen, ob es vorhanden ist 
     248                        if( entry.getRequiredItem() != -1 ) { 
     249                                List<ItemCargoEntry> itemlist = cargo.getItem(entry.getRequiredItem()); 
     250                                if( itemlist.size() == 0 ) { 
     251                                        entry.setScheduled(false); 
     252                                        continue; 
     253                                } 
    241254                                 
    242                                 freeSlots -= entry.getSlots(); 
    243                                  
    244                                // Kein Abbruch der Schleife, da fuer alle Eintraege scheduled gesetzt werden muss   
    245                         } 
    246                         else
     255                                // Item entfernen, damit ein Bauplan nicht mehrfach benutzt wird 
     256                                cargo.substractResource(itemlist.get(0).getResourceID(), 1); 
     257                        } 
     258                         
     259                        if( entry.getSlots() > freeSlots )
    247260                                entry.setScheduled(false); 
    248                         } 
     261                                continue; 
     262                        } 
     263                         
     264                        entry.setScheduled(true); 
     265                         
     266                        freeSlots -= entry.getSlots(); 
    249267                } 
    250268        }