public TestProgram() { string s = CWConsole.Singleton.TextLog; AvailableConfigurations availableConfigurations = LoadConfiguration(); Config lastConfig; lastConfig = new CubeWorld.Configuration.Config(); lastConfig.tileDefinitions = availableConfigurations.tileDefinitions; lastConfig.itemDefinitions = availableConfigurations.itemDefinitions; lastConfig.avatarDefinitions = availableConfigurations.avatarDefinitions; lastConfig.dayInfo = availableConfigurations.dayInfos[0]; lastConfig.worldGenerator = availableConfigurations.worldGenerators[0]; lastConfig.worldSize = availableConfigurations.worldSizes[0]; lastConfig.extraMaterials = availableConfigurations.extraMaterials; lastConfig.gameplay = GameplayFactory.AvailableGameplays[0]; CubeWorld.World.CubeWorld world = new CubeWorld.World.CubeWorld(this, this); GeneratorProcess worldGeneratorProcess = world.Generate(lastConfig); while (worldGeneratorProcess.Generate() == false) { } Console.WriteLine("World generated"); }
public void LoadWorld(int n) { if (System.IO.File.Exists(GetWorldFilePath(n))) { gameManagerUnity.DestroyWorld(); AvailableConfigurations configurations = GameManagerUnity.LoadConfiguration(); gameManagerUnity.LoadCustomTextures(); byte[] data = System.IO.File.ReadAllBytes(GetWorldFilePath(n)); CubeWorld.Configuration.Config config = new CubeWorld.Configuration.Config(); config.tileDefinitions = configurations.tileDefinitions; config.itemDefinitions = configurations.itemDefinitions; config.avatarDefinitions = configurations.avatarDefinitions; config.extraMaterials = configurations.extraMaterials; gameManagerUnity.extraMaterials = config.extraMaterials; gameManagerUnity.world = new CubeWorld.World.CubeWorld(gameManagerUnity.objectsManagerUnity, gameManagerUnity.fxManagerUnity); gameManagerUnity.world.Load(config, data); worldGeneratorProcess = null; gameManagerUnity.surroundingsUnity.CreateSurroundings(gameManagerUnity.world.configSurroundings); gameManagerUnity.State = GameManagerUnity.GameManagerUnityState.GENERATING; } }
public TestProgram() { string s = CWConsole.Singleton.TextLog; AvailableConfigurations availableConfigurations = LoadConfiguration(); Config lastConfig; lastConfig = new CubeWorld.Configuration.Config(); lastConfig.tileDefinitions = availableConfigurations.tileDefinitions; lastConfig.itemDefinitions = availableConfigurations.itemDefinitions; lastConfig.avatarDefinitions = availableConfigurations.avatarDefinitions; lastConfig.dayInfo = availableConfigurations.dayInfos[0]; lastConfig.worldGenerator = availableConfigurations.worldGenerators[0]; lastConfig.worldSize = availableConfigurations.worldSizes[0]; lastConfig.extraMaterials = availableConfigurations.extraMaterials; lastConfig.gameplay = GameplayFactory.AvailableGameplays[0]; CubeWorld.World.CubeWorld world = new CubeWorld.World.CubeWorld(this, this); GeneratorProcess worldGeneratorProcess = world.Generate(lastConfig); while (worldGeneratorProcess.Generate() == false) { } Console.WriteLine("World generated"); }
public void LoadWorld(int n) { if (System.IO.File.Exists(GetWorldFilePath(n))) { gameManagerUnity.DestroyWorld(); AvailableConfigurations configurations = GameManagerUnity.LoadConfiguration(); gameManagerUnity.LoadCustomTextures(); byte[] data = System.IO.File.ReadAllBytes(GetWorldFilePath(n)); CubeWorld.Configuration.Config config = new CubeWorld.Configuration.Config(); config.tileDefinitions = configurations.tileDefinitions; config.itemDefinitions = configurations.itemDefinitions; config.avatarDefinitions = configurations.avatarDefinitions; config.extraMaterials = configurations.extraMaterials; gameManagerUnity.extraMaterials = config.extraMaterials; gameManagerUnity.world = new CubeWorld.World.CubeWorld(gameManagerUnity.objectsManagerUnity, gameManagerUnity.fxManagerUnity); gameManagerUnity.world.Load(config, data); worldGeneratorProcess = null; gameManagerUnity.surroundingsUnity.CreateSurroundings(gameManagerUnity.world.configSurroundings); gameManagerUnity.State = GameManagerUnity.GameManagerUnityState.GENERATING; } }
public GeneratorProcess Generate(Config config) { this.sizeXbits = config.worldSize.worldSizeBitsX; this.sizeYbits = config.worldSize.worldSizeBitsY; this.sizeZbits = config.worldSize.worldSizeBitsZ; sizeX = 1 << sizeXbits; sizeY = 1 << sizeYbits; sizeZ = 1 << sizeZbits; gameplay = config.gameplay.gameplay; gameplay.Init(this); tileManager.Create(config.tileDefinitions, sizeXbits, sizeYbits, sizeZbits); itemManager.Create(config.itemDefinitions); avatarManager.Create(config.avatarDefinitions); sectorManager.Create(); dayCycleManager.Create(config.dayInfo); configSurroundings = config.worldGenerator.surroundings; configExtraMaterials = config.extraMaterials; MemoryStream ms = new MemoryStream(); BinaryWriter bw = new BinaryWriter(ms); return gameplay.Generate(config); }
public void CreateRandomWorld(CubeWorld.Configuration.Config config) { gameManagerUnity.DestroyWorld(); gameManagerUnity.LoadCustomTextures(); gameManagerUnity.extraMaterials = config.extraMaterials; gameManagerUnity.world = new CubeWorld.World.CubeWorld(gameManagerUnity.objectsManagerUnity, gameManagerUnity.fxManagerUnity); worldGeneratorProcess = gameManagerUnity.world.Generate(config); gameManagerUnity.surroundingsUnity.CreateSurroundings(gameManagerUnity.world.configSurroundings); gameManagerUnity.State = GameManagerUnity.GameManagerUnityState.GENERATING; }
public virtual GeneratorProcess Generate(Config config) { return world.tileManager.Generate(config.worldGenerator.generator); }
void DrawGenerator() { if (availableConfigurations == null) { availableConfigurations = GameManagerUnity.LoadConfiguration(); currentDayInfoOffset = 0; currentGeneratorOffset = 0; currentSizeOffset = 0; currentGameplayOffset = 0; } MenuSystem.BeginMenu("Random World Generator"); MenuSystem.Button("Gameplay: " + GameplayFactory.AvailableGameplays[currentGameplayOffset].name, delegate() { currentGameplayOffset = (currentGameplayOffset + 1) % GameplayFactory.AvailableGameplays.Length; } ); MenuSystem.Button("World Size: " + availableConfigurations.worldSizes[currentSizeOffset].name, delegate() { currentSizeOffset = (currentSizeOffset + 1) % availableConfigurations.worldSizes.Length; } ); MenuSystem.Button("Day Length: " + availableConfigurations.dayInfos[currentDayInfoOffset].name, delegate() { currentDayInfoOffset = (currentDayInfoOffset + 1) % availableConfigurations.dayInfos.Length; } ); if (GameplayFactory.AvailableGameplays[currentGameplayOffset].hasCustomGenerator == false) { MenuSystem.Button("Generator: " + availableConfigurations.worldGenerators[currentGeneratorOffset].name, delegate() { currentGeneratorOffset = (currentGeneratorOffset + 1) % availableConfigurations.worldGenerators.Length; } ); } #if !UNITY_WEBPLAYER MenuSystem.Button("Host Multiplayer: " + (multiplayer ? "Yes" : "No"), delegate() { multiplayer = !multiplayer; } ); #endif MenuSystem.LastButton("Generate!", delegate() { lastConfig = new CubeWorld.Configuration.Config(); lastConfig.tileDefinitions = availableConfigurations.tileDefinitions; lastConfig.itemDefinitions = availableConfigurations.itemDefinitions; lastConfig.avatarDefinitions = availableConfigurations.avatarDefinitions; lastConfig.dayInfo = availableConfigurations.dayInfos[currentDayInfoOffset]; lastConfig.worldGenerator = availableConfigurations.worldGenerators[currentGeneratorOffset]; lastConfig.worldSize = availableConfigurations.worldSizes[currentSizeOffset]; lastConfig.extraMaterials = availableConfigurations.extraMaterials; lastConfig.gameplay = GameplayFactory.AvailableGameplays[currentGameplayOffset]; #if !UNITY_WEBPLAYER if (multiplayer) { MultiplayerServerGameplay multiplayerServerGameplay = new MultiplayerServerGameplay(lastConfig.gameplay.gameplay, true); GameplayDefinition g = new GameplayDefinition("", "", multiplayerServerGameplay, false); lastConfig.gameplay = g; gameManagerUnity.RegisterInWebServer(); } #endif gameManagerUnity.worldManagerUnity.CreateRandomWorld(lastConfig); availableConfigurations = null; state = MainMenuState.NORMAL; } ); MenuSystem.EndMenu(); }
public void Load(Config config, byte[] data) { MemoryStream memoryStream = new MemoryStream(data); BinaryReader br = new BinaryReader(memoryStream); //Read version info string version = br.ReadString(); if (version != VERSION_INFO) return; //Read compressed bytes int uncompressedSize = br.ReadInt32(); //Uncompress bytes byte[] uncompressedBytes = new byte[uncompressedSize]; GZipStream gzipStream = new GZipStream(memoryStream, CompressionMode.Decompress); int bytesRead = 0; while(true) { int read = gzipStream.Read(uncompressedBytes, bytesRead, uncompressedSize - bytesRead); if (read == 0) break; bytesRead += read; } br = new BinaryReader(new MemoryStream(uncompressedBytes)); //Load world from uncompressed bytes Load(br, false); tileManager.Create(config.tileDefinitions, sizeXbits, sizeYbits, sizeZbits); itemManager.Create(config.itemDefinitions); avatarManager.Create(config.avatarDefinitions); sectorManager.Create(); dayCycleManager.Create(config.dayInfo); tileManager.Load(br); itemManager.Load(br); avatarManager.Load(br); sectorManager.Load(br); dayCycleManager.Load(br); gameplay.WorldLoaded(); }
void DrawGenerator() { if (availableConfigurations == null) { availableConfigurations = GameManagerUnity.LoadConfiguration(); currentDayInfoOffset = 0; currentGeneratorOffset = 0; currentSizeOffset = 0; currentGameplayOffset = 0; } MenuSystem.BeginMenu("Random World Generator"); MenuSystem.Button("Gameplay: " + GameplayFactory.AvailableGameplays[currentGameplayOffset].name, delegate() { currentGameplayOffset = (currentGameplayOffset + 1) % GameplayFactory.AvailableGameplays.Length; } ); MenuSystem.Button("World Size: " + availableConfigurations.worldSizes[currentSizeOffset].name, delegate() { currentSizeOffset = (currentSizeOffset + 1) % availableConfigurations.worldSizes.Length; } ); MenuSystem.Button("Day Length: " + availableConfigurations.dayInfos[currentDayInfoOffset].name, delegate() { currentDayInfoOffset = (currentDayInfoOffset + 1) % availableConfigurations.dayInfos.Length; } ); if (GameplayFactory.AvailableGameplays[currentGameplayOffset].hasCustomGenerator == false) { MenuSystem.Button("Generator: " + availableConfigurations.worldGenerators[currentGeneratorOffset].name, delegate() { currentGeneratorOffset = (currentGeneratorOffset + 1) % availableConfigurations.worldGenerators.Length; } ); } #if !UNITY_WEBPLAYER MenuSystem.Button("Host Multiplayer: " + (multiplayer ? "Yes" : "No") , delegate() { multiplayer = !multiplayer; } ); #endif MenuSystem.LastButton("Generate!", delegate() { lastConfig = new CubeWorld.Configuration.Config(); lastConfig.tileDefinitions = availableConfigurations.tileDefinitions; lastConfig.itemDefinitions = availableConfigurations.itemDefinitions; lastConfig.avatarDefinitions = availableConfigurations.avatarDefinitions; lastConfig.dayInfo = availableConfigurations.dayInfos[currentDayInfoOffset]; lastConfig.worldGenerator = availableConfigurations.worldGenerators[currentGeneratorOffset]; lastConfig.worldSize = availableConfigurations.worldSizes[currentSizeOffset]; lastConfig.extraMaterials = availableConfigurations.extraMaterials; lastConfig.gameplay = GameplayFactory.AvailableGameplays[currentGameplayOffset]; #if !UNITY_WEBPLAYER if (multiplayer) { MultiplayerServerGameplay multiplayerServerGameplay = new MultiplayerServerGameplay(lastConfig.gameplay.gameplay, true); GameplayDefinition g = new GameplayDefinition("", "", multiplayerServerGameplay, false); lastConfig.gameplay = g; gameManagerUnity.RegisterInWebServer(); } #endif gameManagerUnity.worldManagerUnity.CreateRandomWorld(lastConfig); availableConfigurations = null; state = MainMenuState.NORMAL; } ); MenuSystem.EndMenu(); }