public void SaveWorldState() { WorldGenerator.WorldDefinition world = WorldGenerator.GetWorld(loadedWorld); world.ResetSaveMarkers(); for (int i = 0; i < Objects.Count; i++) { if (Objects[i].LoadedObjectDefinition == null || Objects[i] == RocketToSpace.Current) { continue; } if (world.Objects.ContainsKey(Objects[i].LoadedObjectDefinition)) { Objects[i].OverwriteObjectDefinition(world.Objects[Objects[i].LoadedObjectDefinition], mapper); world.Objects[Objects[i].LoadedObjectDefinition].MarkedAsSaved = true; } else { WorldGenerator.WorldObjectDefinition newObj = new WorldGenerator.WorldObjectDefinition(); Objects[i].OverwriteObjectDefinition(newObj, mapper); world.ObjectList.Add(newObj); world.Objects[newObj.ID] = newObj; newObj.MarkedAsSaved = true; } } world.DeleteUnsaved(); }
public void OnTriggerEnter2D(Collider2D collision) { if (collision.name == PLAYER_SHIP) { if (world == null) { world = WorldGenerator.Current.BuildWorld(); GameState.SwitchToWorld(world); } else { GameState.SwitchToWorld(world); } } }
public static void SwitchToWorld(WorldGenerator.WorldDefinition world) { PlayerCharacter.Current.gameObject.SetActive(true); for (int i = 0; i < WorldCameras.Count; i++) { WorldCameras[i].SetActive(true); } for (int i = 0; i < SpaceCameras.Count; i++) { SpaceCameras[i].SetActive(false); } CurrentState = GameMode.PlanetPlaying; WrappingWorld.ResetWorld(); PlayerCharacter.Current.ResetWorld(); WrappingWorld.Current.LoadWorld(world); }
public void LoadWorld(WorldGenerator.WorldDefinition world) { isLoading = true; ResetWorld(); RocketToSpace.Current.gameObject.SetActive(true); PlayerCharacter.Current.gameObject.SetActive(true); PlayerCharacter.Current.ResetWorld(); RocketToSpace.Current.ResetWorld(); loadedWorld = world.ID; int width = world.Tiles.GetLength(0); int height = world.Tiles.GetLength(1); for (int x = 0; x < width; x++) { for (int y = 0; y < height; y++) { SpawnTile(x, y, world.Tiles[x, y], world.Tiles); } } for (int i = 0; i < world.ObjectList.Count; i++) { switch (world.ObjectList[i].Type) { case ObjectType.FuelPickup: FuelPickup.Spawn(world.ObjectList[i].ID, world.ObjectList[i].Position); break; case ObjectType.FuelTree: FuelTree.Spawn(world.ObjectList[i].ID, world.ObjectList[i].Position, world.ObjectList[i].RemainingIntValue); break; } } Register(RocketToSpace.Current); isLoading = false; }