cleaning up MacroData class
This commit is contained in:
		
							parent
							
								
									8e2c86397b
								
							
						
					
					
						commit
						68fd87acae
					
				| @ -4,6 +4,7 @@ import java.util.LinkedList; | |||||||
| import java.util.List; | import java.util.List; | ||||||
| 
 | 
 | ||||||
| import electrosphere.engine.Globals; | import electrosphere.engine.Globals; | ||||||
|  | import electrosphere.logger.LoggerInterface; | ||||||
| import electrosphere.server.macro.character.Character; | import electrosphere.server.macro.character.Character; | ||||||
| import electrosphere.server.macro.character.CharacterDataStrings; | import electrosphere.server.macro.character.CharacterDataStrings; | ||||||
| import electrosphere.server.macro.character.CharacterUtils; | import electrosphere.server.macro.character.CharacterUtils; | ||||||
| @ -16,36 +17,57 @@ import electrosphere.server.macro.symbolism.model.Symbol; | |||||||
| import electrosphere.server.macro.town.Town; | import electrosphere.server.macro.town.Town; | ||||||
| 
 | 
 | ||||||
| import java.util.Random; | import java.util.Random; | ||||||
| import org.joml.Vector2i; |  | ||||||
| 
 | 
 | ||||||
| /** | /** | ||||||
|  * Server macro level data |  * Server macro level data | ||||||
|  */ |  */ | ||||||
| public class MacroData { | public class MacroData { | ||||||
| 
 | 
 | ||||||
|     List<Character> initialDieties = new LinkedList<Character>(); |     /** | ||||||
|     List<Race> races = new LinkedList<Race>(); |      * The maximum number of attempts to try placing something | ||||||
|     List<Character> characters = new LinkedList<Character>(); |      */ | ||||||
|     List<Character> aliveCharacters = new LinkedList<Character>(); |  | ||||||
|     List<Civilization> civilizations = new LinkedList<Civilization>(); |  | ||||||
|     List<Town> towns = new LinkedList<Town>(); |  | ||||||
|     List<Structure> structures = new LinkedList<Structure>(); |  | ||||||
|      |  | ||||||
|      |  | ||||||
|     static Character generateInitialDiety(long seed){ |  | ||||||
|         Character rVal = new Character(); |  | ||||||
|          |  | ||||||
|          |  | ||||||
|         Diety diety = Diety.generateDiety(seed); |  | ||||||
|         CharacterUtils.addDiety(rVal, diety); |  | ||||||
|          |  | ||||||
|          |  | ||||||
|         return rVal; |  | ||||||
|     } |  | ||||||
|      |  | ||||||
| 
 |  | ||||||
|     static final int MAX_PLACEMENT_ATTEMPTS = 50; |     static final int MAX_PLACEMENT_ATTEMPTS = 50; | ||||||
|      |      | ||||||
|  |     /** | ||||||
|  |      * List of initial dieties | ||||||
|  |      */ | ||||||
|  |     List<Character> initialDieties = new LinkedList<Character>(); | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      * List of races | ||||||
|  |      */ | ||||||
|  |     List<Race> races = new LinkedList<Race>(); | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      * List of characters | ||||||
|  |      */ | ||||||
|  |     List<Character> characters = new LinkedList<Character>(); | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      * List of alive characters | ||||||
|  |      */ | ||||||
|  |     List<Character> aliveCharacters = new LinkedList<Character>(); | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      * List of civilizations | ||||||
|  |      */ | ||||||
|  |     List<Civilization> civilizations = new LinkedList<Civilization>(); | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      * List of towns | ||||||
|  |      */ | ||||||
|  |     List<Town> towns = new LinkedList<Town>(); | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      * List of structures | ||||||
|  |      */ | ||||||
|  |     List<Structure> structures = new LinkedList<Structure>(); | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      * Generates a world | ||||||
|  |      * @param seed The seed for the world | ||||||
|  |      * @return The world | ||||||
|  |      */ | ||||||
|     public static MacroData generateWorld(long seed){ |     public static MacroData generateWorld(long seed){ | ||||||
|         Random random = new Random(seed); |         Random random = new Random(seed); | ||||||
|         MacroData rVal = new MacroData(); |         MacroData rVal = new MacroData(); | ||||||
| @ -79,92 +101,139 @@ public class MacroData { | |||||||
|         //find initial positions to place characters at per race |         //find initial positions to place characters at per race | ||||||
|         //generate initial characters |         //generate initial characters | ||||||
|         //place them |         //place them | ||||||
|         List<Vector2i> occupiedStartingPositions = new LinkedList<Vector2i>(); |         // List<Vector2i> occupiedStartingPositions = new LinkedList<Vector2i>(); | ||||||
|         for(Race race : rVal.races){ |         // for(Race race : rVal.races){ | ||||||
|             boolean foundPlacementLocation = false; |         //     boolean foundPlacementLocation = false; | ||||||
|             int attempts = 0; |         //     int attempts = 0; | ||||||
|             while(!foundPlacementLocation){ |         //     while(!foundPlacementLocation){ | ||||||
|                 // Vector2i start = new Vector2i(random.nextInt(Globals.serverTerrainManager.getWorldDiscreteSize()),random.nextInt(Globals.serverTerrainManager.getWorldDiscreteSize())); |         //         // Vector2i start = new Vector2i(random.nextInt(Globals.serverTerrainManager.getWorldDiscreteSize()),random.nextInt(Globals.serverTerrainManager.getWorldDiscreteSize())); | ||||||
|                 // //are we above sea level? |         //         // //are we above sea level? | ||||||
|                 // if(Globals.serverTerrainManager.getDiscreteValue(start.x, start.y) > 25){ //TODO: Set to actual sea level value |         //         // if(Globals.serverTerrainManager.getDiscreteValue(start.x, start.y) > 25){ //TODO: Set to actual sea level value | ||||||
|                 //     //is this position already occupied? |         //         //     //is this position already occupied? | ||||||
|                 //     boolean match = false; |         //         //     boolean match = false; | ||||||
|                 //     for(Vector2i known : occupiedStartingPositions){ |         //         //     for(Vector2i known : occupiedStartingPositions){ | ||||||
|                 //         if(known.x == start.x && known.y == start.y){ |         //         //         if(known.x == start.x && known.y == start.y){ | ||||||
|                 //             match = true; |         //         //             match = true; | ||||||
|                 //             break; |         //         //             break; | ||||||
|  |         //         //         } | ||||||
|  |         //         //     } | ||||||
|  |         //         //     if(!match){ | ||||||
|  |         //         //         //occupy position | ||||||
|  |         //         //         occupiedStartingPositions.add(start); | ||||||
|  |         //         //         foundPlacementLocation = true; | ||||||
|  |         //         //         //make characters | ||||||
|  |         //         //         int numCharactersToMake = 5 + random.nextInt(20); | ||||||
|  |         //         //         for(int i = 0; i < numCharactersToMake; i++){ | ||||||
|  |         //         //             Character character = new Character(); | ||||||
|  |         //         //             CharacterUtils.addDiscretePosition(character, start.x, start.y); | ||||||
|  |         //         //             CharacterUtils.addRace(character, race); | ||||||
|  |         //         //             rVal.characters.add(character); | ||||||
|  |         //         //             rVal.aliveCharacters.add(character); | ||||||
|  |         //         //         } | ||||||
|  |         //         //     } | ||||||
|  |         //         // } | ||||||
|  |         //         // attempts++; | ||||||
|  |         //         // if(attempts > MAX_PLACEMENT_ATTEMPTS){ | ||||||
|  |         //         //     break; | ||||||
|  |         //         // } | ||||||
|         //     } |         //     } | ||||||
|         // } |         // } | ||||||
|                 //     if(!match){ |  | ||||||
|                 //         //occupy position |  | ||||||
|                 //         occupiedStartingPositions.add(start); |  | ||||||
|                 //         foundPlacementLocation = true; |  | ||||||
|                 //         //make characters |  | ||||||
|                 //         int numCharactersToMake = 5 + random.nextInt(20); |  | ||||||
|                 //         for(int i = 0; i < numCharactersToMake; i++){ |  | ||||||
|                 //             Character character = new Character(); |  | ||||||
|                 //             CharacterUtils.addDiscretePosition(character, start.x, start.y); |  | ||||||
|                 //             CharacterUtils.addRace(character, race); |  | ||||||
|                 //             rVal.characters.add(character); |  | ||||||
|                 //             rVal.aliveCharacters.add(character); |  | ||||||
|                 //         } |  | ||||||
|                 //     } |  | ||||||
|                 // } |  | ||||||
|                 // attempts++; |  | ||||||
|                 // if(attempts > MAX_PLACEMENT_ATTEMPTS){ |  | ||||||
|                 //     break; |  | ||||||
|                 // } |  | ||||||
|             } |  | ||||||
|         } |  | ||||||
|          |          | ||||||
|         return rVal; |         return rVal; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |     /** | ||||||
|  |      * Generates an initial diety | ||||||
|  |      * @param seed The seed | ||||||
|  |      * @return The character for the diety | ||||||
|  |      */ | ||||||
|  |     static Character generateInitialDiety(long seed){ | ||||||
|  |         Character rVal = new Character(); | ||||||
|  |          | ||||||
|  |          | ||||||
|  |         Diety diety = Diety.generateDiety(seed); | ||||||
|  |         CharacterUtils.addDiety(rVal, diety); | ||||||
|  |          | ||||||
|  |          | ||||||
|  |         return rVal; | ||||||
|  |     } | ||||||
|  |      | ||||||
|  |     /** | ||||||
|  |      * Gets all alive characters | ||||||
|  |      * @return The list of all characters | ||||||
|  |      */ | ||||||
|     public List<Character> getAliveCharacters(){ |     public List<Character> getAliveCharacters(){ | ||||||
|         return aliveCharacters; |         return aliveCharacters; | ||||||
|     } |     } | ||||||
|      |      | ||||||
|  |     /** | ||||||
|  |      * Gets the list of civilizations | ||||||
|  |      * @return The list of civilizations | ||||||
|  |      */ | ||||||
|     public List<Civilization> getCivilizations(){ |     public List<Civilization> getCivilizations(){ | ||||||
|         return civilizations; |         return civilizations; | ||||||
|     } |     } | ||||||
|      |      | ||||||
|  |     /** | ||||||
|  |      * Adds a civilization | ||||||
|  |      * @param civilization The civilization | ||||||
|  |      */ | ||||||
|     public void addCivilization(Civilization civilization){ |     public void addCivilization(Civilization civilization){ | ||||||
|         civilizations.add(civilization); |         civilizations.add(civilization); | ||||||
|     } |     } | ||||||
|      |      | ||||||
|  |     /** | ||||||
|  |      * Gets the list of towns | ||||||
|  |      * @return The list of towns | ||||||
|  |      */ | ||||||
|     public List<Town> getTowns(){ |     public List<Town> getTowns(){ | ||||||
|         return towns; |         return towns; | ||||||
|     } |     } | ||||||
|      |      | ||||||
|  |     /** | ||||||
|  |      * Adds a town | ||||||
|  |      * @param town The town | ||||||
|  |      */ | ||||||
|     public void addTown(Town town){ |     public void addTown(Town town){ | ||||||
|         towns.add(town); |         towns.add(town); | ||||||
|     } |     } | ||||||
|      |      | ||||||
|  |     /** | ||||||
|  |      * Gets the list of structures | ||||||
|  |      * @return The list of structures | ||||||
|  |      */ | ||||||
|     public List<Structure> getStructures(){ |     public List<Structure> getStructures(){ | ||||||
|         return structures; |         return structures; | ||||||
|     } |     } | ||||||
|      |      | ||||||
|  |     /** | ||||||
|  |      * Adds a structure | ||||||
|  |      * @param structure The structure | ||||||
|  |      */ | ||||||
|     public void addStructure(Structure structure){ |     public void addStructure(Structure structure){ | ||||||
|         structures.add(structure); |         structures.add(structure); | ||||||
|     } |     } | ||||||
|      |      | ||||||
|  |     /** | ||||||
|  |      * Describes the world | ||||||
|  |      */ | ||||||
|     public void describeWorld(){ |     public void describeWorld(){ | ||||||
|         System.out.println("Initial dieties"); |         LoggerInterface.loggerEngine.WARNING("Initial dieties"); | ||||||
|         System.out.println("=========================="); |         LoggerInterface.loggerEngine.WARNING("=========================="); | ||||||
|         for(Character chara : initialDieties){ |         for(Character chara : initialDieties){ | ||||||
|             System.out.println("Diety"); |             LoggerInterface.loggerEngine.WARNING("Diety"); | ||||||
|             Diety diety = CharacterUtils.getDiety(chara); |             Diety diety = CharacterUtils.getDiety(chara); | ||||||
|             for(Symbol symbol : diety.getSymbols()){ |             for(Symbol symbol : diety.getSymbols()){ | ||||||
|                 System.out.print(symbol.getName() + " "); |                 System.out.print(symbol.getName() + " "); | ||||||
|             } |             } | ||||||
|             System.out.println("\n"); |             LoggerInterface.loggerEngine.WARNING("\n"); | ||||||
|         } |         } | ||||||
|         System.out.println("=========================="); |         LoggerInterface.loggerEngine.WARNING("=========================="); | ||||||
|         System.out.println("\n\n"); |         LoggerInterface.loggerEngine.WARNING("\n\n"); | ||||||
|         System.out.println("Initial races"); |         LoggerInterface.loggerEngine.WARNING("Initial races"); | ||||||
|         System.out.println("=========================="); |         LoggerInterface.loggerEngine.WARNING("=========================="); | ||||||
|         for(Race race : races){ |         for(Race race : races){ | ||||||
|             System.out.println(race.getName()); |             LoggerInterface.loggerEngine.WARNING(race.getName()); | ||||||
|             int numCharsOfRace = 0; |             int numCharsOfRace = 0; | ||||||
|             //n*m complexity - yikes! - as long as we're not making a million chars at start this should be _ok_ |             //n*m complexity - yikes! - as long as we're not making a million chars at start this should be _ok_ | ||||||
|             for(Character chara : characters){ |             for(Character chara : characters){ | ||||||
| @ -174,10 +243,10 @@ public class MacroData { | |||||||
|                     } |                     } | ||||||
|                 } |                 } | ||||||
|             } |             } | ||||||
|             System.out.println(numCharsOfRace + " initial characters"); |             LoggerInterface.loggerEngine.WARNING(numCharsOfRace + " initial characters"); | ||||||
|             System.out.println("\n"); |             LoggerInterface.loggerEngine.WARNING("\n"); | ||||||
|         } |         } | ||||||
|         System.out.println("=========================="); |         LoggerInterface.loggerEngine.WARNING("=========================="); | ||||||
|     } |     } | ||||||
|      |      | ||||||
| } | } | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user