private object GetFieldValue(string stringValue, MapDataType dataType) { try { switch (dataType) { case MapDataType.Boolean: return(Convert.ToBoolean(stringValue, CultureInfo.InvariantCulture)); case MapDataType.DateTime: return(Convert.ToDateTime(stringValue, CultureInfo.InvariantCulture)); case MapDataType.Float: return(Convert.ToDouble(stringValue, CultureInfo.InvariantCulture)); case MapDataType.Integer: return(Convert.ToInt32(stringValue, CultureInfo.InvariantCulture)); case MapDataType.Decimal: return(Convert.ToDecimal(stringValue, CultureInfo.InvariantCulture)); default: return(stringValue); } } catch (Exception ex) { if (AsynchronousExceptionDetection.IsStoppingException(ex)) { throw; } Global.Tracer.Trace(TraceLevel.Verbose, ex.Message); return(null); } }
public void GenerateBattleground(MapDataType mapDataType) { Debug.Log("Battleground found!"); if (SkipBattlegrounds) { return; } BattlegroundData newBattleGround = new BattlegroundData(); newBattleGround.Player = WorldMapData.Player; newBattleGround.Enemies = new List <Enemy>(); newBattleGround.Enemies.Add(Resources.Load <GameObject>("Testing/EnemyKnight").GetComponent <Enemy>()); newBattleGround.Enemies.Add(Resources.Load <GameObject>("Testing/EnemyRogue").GetComponent <Enemy>()); newBattleGround.Enemies.Add(Resources.Load <GameObject>("Testing/EnemyWizard").GetComponent <Enemy>()); newBattleGround.CurrentUnitId = 0; newBattleGround.MapInfos = new MapInfos(); newBattleGround.MapInfos.Size = new Vector2(32, 32); newBattleGround.MapInfos.MapData = Resources.Load <ScriptableObject>("MapData/" + mapDataType.ToString()) as MapData; SaveManager.SaveWorldMap(WorldMapData); SaveManager.SaveBattleground(newBattleGround); SaveManager.LoadScene(Scene.Battleground); }
public void Deserialize(IntermediateFormatReader reader) { reader.RegisterDeclaration(MapFieldDefinition.m_Declaration); while (reader.NextMember()) { switch (reader.CurrentMember.MemberName) { case MemberName.Map: this.m_map = reader.ReadReference <Map>(this); break; case MemberName.Name: this.m_name = reader.ReadString(); break; case MemberName.DataType: this.m_dataType = (MapDataType)reader.ReadEnum(); break; default: Global.Tracer.Assert(false); break; } } }
private void ShowMapSelectMenu() { EditorGUILayout.Space(); if (selectedCreateType == MapDataType.Map) { EditorGUILayout.LabelField("Create New Map"); newMapName = EditorGUILayout.TextField(newMapName); GUILayout.BeginHorizontal(); if (GUILayout.Button("Create")) { var newMap = CreateInstance(typeof(MapDatabaseObject)) as MapDatabaseObject; newMap.name = newMapName; mapDatabase.mapDatabaseDictionary.Add(newMap.name, newMap); mapDatabase.Save(); AssetDatabase.AddObjectToAsset(newMap, mapDatabase); EditorUtility.SetDirty(mapDatabase); currentMap = newMap; selectedCreateType = MapDataType.None; } if (GUILayout.Button("Cancel")) { selectedCreateType = MapDataType.None; } GUILayout.EndHorizontal(); return; } if (GUILayout.Button("Create New Map")) { selectedCreateType = MapDataType.Map; } EditorGUILayout.Space(); EditorGUILayout.LabelField("Map List"); EditorGUILayout.LabelField("", GUI.skin.horizontalSlider); foreach (var map in mapDatabase.mapDatabaseObjects.OrderBy(m => m.name)) { if (GUILayout.Button(map.name)) { map.InitDictionary(); currentMap = map; RefreshMap(); } } }
private void Initialize() { initSuccessful = true; database = (GameDatabase)AssetDatabase.LoadAssetAtPath("Assets/Prefabs/GameDataObjects/GameDatabase.asset", typeof(GameDatabase)); mapDatabase = (MapDatabase)AssetDatabase.LoadAssetAtPath("Assets/Prefabs/MapDataObjects/MapDatabase.asset", typeof(MapDatabase)); if (database == null) { initSuccessful = false; Debug.Log("Cannot find GameDatabase"); } if (mapDatabase == null) { initSuccessful = false; Debug.Log("Cannot find MapDatabase"); } else { mapDatabase.InitDictionary(); } InitTextures(); SceneView.onSceneGUIDelegate += OnSceneGUI; var terrain = GameObject.Find("TerrainMap"); if (terrain) { tilemapParent = terrain.transform; } var map = GameObject.Find("SpawnMap"); if (map != null) { spawnMap = map.transform.Find("Spawn").GetComponent <Tilemap>(); } else { initSuccessful = false; Debug.Log("Cannot find SpawnMap"); } selectedCountry = null; selectedCreateType = MapDataType.None; Tools.current = Tool.None; Tools.hidden = true; }
public static MapData ReadMapData(string path, MapMetadata metadata, MapDataType type = MapDataType.ASCIIGrid) { switch (type) { case MapDataType.ASCIIGrid: return(ASCIIGridImporter.ReadMapData(path, (ASCIIGridMetadata)metadata)); case MapDataType.Binary: return(BinaryFileImporter.ReadMapData(path, (BinaryFileMetadata)metadata)); default: throw new System.NotImplementedException("Type " + type + " not implemented!"); } }
public void Start() { regions = new MapRegionSmoother().SmoothRegions(regions, regionsSmoothCount); TextureGenerator.SetRegions(regions); string mapFileName = GetMapFileNameFromEnum(mapName); MapDataType mapDataType = GetMapFileTypeFromEnum(mapName); // A quick fix to enable binary map reading. Needs to be done better. if (mapDataType == MapDataType.Binary) { mapData = DataImporter.GetBinaryMapData(mapFileName); } else if (mapDataType == MapDataType.ASCIIGrid) { mapData = DataImporter.GetASCIIMapData(mapFileName); } else { Debug.LogError("Error! Importin map data from file " + mapFileName + " failed."); } if (useSatelliteImage) { SatelliteImageService.satelliteImage = DataImporter.GetSatelliteImage(mapFileName, mapData.GetWidth(), mapData.GetHeight()); } else { SatelliteImageService.satelliteImage = new SatelliteImage(); } displays = new List <MapDisplay>(); GenerateMap(); OSMGenerator osmGenerator = GameObject.FindObjectOfType <OSMGenerator>(); if (osmGenerator != null) { try { osmGenerator.GenerateOSMObjects(this, mapFileName); } catch (System.Exception e) { Debug.Log("Did not generate trails: " + e); } } }
private Type GetFieldType(MapDataType dataType) { switch (dataType) { case MapDataType.Boolean: return(typeof(bool)); case MapDataType.DateTime: return(typeof(DateTime)); case MapDataType.Float: return(typeof(double)); case MapDataType.Integer: return(typeof(int)); case MapDataType.Decimal: return(typeof(decimal)); default: return(typeof(string)); } }
void OnGUI() { if (!initSuccessful) { EditorGUILayout.LabelField("Initialization failed.", EditorStyles.boldLabel); return; } if (!Application.isEditor || Application.isPlaying) { EditorGUILayout.LabelField("GameMapEditor only works during edit mode.", EditorStyles.boldLabel); return; } if (currentScene.name != "MapScene") { EditorGUILayout.LabelField("GameMapEditor only works in MapScene.", EditorStyles.boldLabel); return; } if (currentMap == null) { ShowMapSelectMenu(); return; } GUILayout.BeginHorizontal(); EditorGUILayout.LabelField(currentMap.name); if (GUILayout.Button("Map Menu")) { currentMap = null; RefreshMap(); } GUILayout.EndHorizontal(); EditorGUILayout.Vector3IntField("Position: ", lastClickedTilePosition); EditorGUILayout.LabelField("", GUI.skin.horizontalSlider); if (selectedCountry != null) { } if (selectedTile != null) { if (selectedTile is CastleSpawnTile) { ShowCountry(); } else if (selectedTile is InteractableSpawnTile) { ShowInteractable(); } else if (selectedTile is AnimalSpawnTile) { ShowAnimal(); } return; } if (selectedCreateType != MapDataType.None) { if (GUILayout.Button("Back")) { selectedCreateType = MapDataType.None; } if (selectedCreateType == MapDataType.Country) { ShowCreateCastleMenu(); } else if (selectedCreateType == MapDataType.Interactable) { ShowCreateInteractableMenu(); } else if (selectedCreateType == MapDataType.Animal) { ShowCreateAnimalMenu(); } return; } if (GUILayout.Button("Create Castle")) { selectionGridIndex = 0; selectedCreateType = MapDataType.Country; } if (GUILayout.Button("Create Animal")) { selectionGridIndex = 0; selectedCreateType = MapDataType.Animal; } if (GUILayout.Button("Create Interactable")) { selectionGridIndex = 0; selectedCreateType = MapDataType.Interactable; } GUILayout.Space(25); if (GUILayout.Button("Refresh Database")) { RefreshDatabase(); } if (GUILayout.Button("Refresh Map")) { RefreshMap(); } if (!removeMapConfirmation && GUILayout.Button("Remove Map")) { removeMapConfirmation = true; } if (removeMapConfirmation) { GUILayout.BeginHorizontal(); if (GUILayout.Button("Confirm")) { removeMapConfirmation = false; mapDatabase.mapDatabaseDictionary.Remove(currentMap.name); mapDatabase.Save(); DestroyImmediate(currentMap, true); EditorUtility.SetDirty(mapDatabase); RefreshMap(); } if (GUILayout.Button("Cancel")) { removeMapConfirmation = false; } GUILayout.EndHorizontal(); } }
private bool CheckCanMove(int targetRow, int targetCol, MapDataType targetData) { SceneModule _sceneModule = (SceneModule)GameManager.GameManagerObj.GetComponent <GameManager>().GetModuleByName("SceneModule"); int _dataRow = _sceneModule.getMapDataRow(); int _dataCol = _sceneModule.getMapDataCol(); bool _ret = false; if (m_skillId == SkillId.NONE) { return(_ret); } if (targetData == MapDataType.NONE || targetData == MapDataType.JUMATUI) { return(_ret); } if (targetRow < 0 || targetRow >= _dataRow || targetCol < 0 || targetCol >= _dataCol) { return(_ret); } switch (m_skillId) { case SkillId.JU: if (targetRow == m_playerPos.m_row) { if (_sceneModule.Data[targetRow][targetCol] == MapDataType.NEWMODE) { return(_ret); } if (targetCol > m_playerPos.m_col) { for (int _i = m_playerPos.m_col + 1; _i <= targetCol; _i++) { if (_sceneModule.Data[m_playerPos.m_row][_i] == MapDataType.GAOTAI || _sceneModule.Data[m_playerPos.m_row][_i] == MapDataType.NONE || _sceneModule.Data[m_playerPos.m_row][_i] == MapDataType.JUMATUI || _sceneModule.m_npcList[m_playerPos.m_row][_i] != null) { return(_ret); } else { if (_sceneModule.m_enemyList[m_playerPos.m_row][_i] != null && _i != targetCol) { return(_ret); } } } _ret = true; return(_ret); } else if (targetCol < m_playerPos.m_col) { for (int _i = m_playerPos.m_col - 1; _i >= targetCol; _i--) { if (_sceneModule.Data[m_playerPos.m_row][_i] == MapDataType.GAOTAI || _sceneModule.Data[m_playerPos.m_row][_i] == MapDataType.NONE || _sceneModule.Data[m_playerPos.m_row][_i] == MapDataType.JUMATUI || _sceneModule.m_npcList[m_playerPos.m_row][_i] != null) { return(_ret);; } else { if (_sceneModule.m_npcList[m_playerPos.m_row][_i] != null && _i != targetCol) { return(_ret); } } } _ret = true; return(_ret); } } else if (targetCol == m_playerPos.m_col) { if (_sceneModule.Data[targetRow][targetCol] == MapDataType.NEWMODE) { return(_ret); } if (targetRow > m_playerPos.m_row) { for (int _i = m_playerPos.m_row + 1; _i <= targetRow; _i++) { if (_sceneModule.Data[_i][targetCol] == MapDataType.GAOTAI || _sceneModule.Data[_i][targetCol] == MapDataType.NONE || _sceneModule.Data[_i][targetCol] == MapDataType.JUMATUI || _sceneModule.m_npcList[_i][targetCol] != null) { return(_ret); } else { if (_sceneModule.m_enemyList[_i][targetCol] != null && _i != targetRow) { return(_ret); } } } _ret = true; return(_ret); } else if (targetRow < m_playerPos.m_row) { for (int _i = m_playerPos.m_row - 1; _i >= targetRow; _i--) { if (_sceneModule.Data[_i][targetCol] == MapDataType.GAOTAI || _sceneModule.Data[_i][targetCol] == MapDataType.NONE || _sceneModule.Data[_i][targetCol] == MapDataType.JUMATUI || _sceneModule.m_npcList[_i][targetCol] != null) { return(_ret);; } else { if (_sceneModule.m_enemyList[_i][targetCol] != null && _i != targetRow) { return(_ret); } } } _ret = true; return(_ret); } } break; case SkillId.MA: if (targetRow == m_playerPos.m_row + 2) { if (targetCol == m_playerPos.m_col + 1 || targetCol == m_playerPos.m_col - 1) { if (_sceneModule.Data[targetRow][targetCol] != MapDataType.NEWMODE && (_sceneModule.Data[m_playerPos.m_row][m_playerPos.m_col] == MapDataType.GAOTAI || (_sceneModule.Data[m_playerPos.m_row + 1][m_playerPos.m_col] != MapDataType.GAOTAI && _sceneModule.Data[m_playerPos.m_row + 1][m_playerPos.m_col] != MapDataType.JUMATUI))) { if (_sceneModule.m_npcList[targetRow][targetCol] == null && !PosExitChess(m_playerPos.m_row + 1, m_playerPos.m_col)) { _ret = true; } } } } else if (targetRow == m_playerPos.m_row - 2) { if (targetCol == m_playerPos.m_col + 1 || targetCol == m_playerPos.m_col - 1) { if (_sceneModule.Data[targetRow][targetCol] != MapDataType.NEWMODE && (_sceneModule.Data[m_playerPos.m_row][m_playerPos.m_col] == MapDataType.GAOTAI || (_sceneModule.Data[m_playerPos.m_row - 1][m_playerPos.m_col] != MapDataType.GAOTAI && _sceneModule.Data[m_playerPos.m_row - 1][m_playerPos.m_col] != MapDataType.JUMATUI))) { if (_sceneModule.m_npcList[targetRow][targetCol] == null && !PosExitChess(m_playerPos.m_row - 1, m_playerPos.m_col)) { _ret = true; } } } } else if (targetCol == m_playerPos.m_col + 2) { if (targetRow == m_playerPos.m_row + 1 || targetRow == m_playerPos.m_row - 1) { if (_sceneModule.Data[targetRow][targetCol] != MapDataType.NEWMODE && (_sceneModule.Data[m_playerPos.m_row][m_playerPos.m_col] == MapDataType.GAOTAI || (_sceneModule.Data[m_playerPos.m_row][m_playerPos.m_col + 1] != MapDataType.GAOTAI && _sceneModule.Data[m_playerPos.m_row][m_playerPos.m_col + 1] != MapDataType.JUMATUI))) { if (_sceneModule.m_npcList[targetRow][targetCol] == null && !PosExitChess(m_playerPos.m_row, m_playerPos.m_col + 1)) { _ret = true; } } } } else if (targetCol == m_playerPos.m_col - 2) { if (targetRow == m_playerPos.m_row + 1 || targetRow == m_playerPos.m_row - 1) { if (_sceneModule.Data[targetRow][targetCol] != MapDataType.NEWMODE && (_sceneModule.Data[m_playerPos.m_row][m_playerPos.m_col] == MapDataType.GAOTAI || (_sceneModule.Data[m_playerPos.m_row][m_playerPos.m_col - 1] != MapDataType.GAOTAI && _sceneModule.Data[m_playerPos.m_row][m_playerPos.m_col - 1] != MapDataType.JUMATUI))) { if (_sceneModule.m_npcList[targetRow][targetCol] == null && !PosExitChess(m_playerPos.m_row, m_playerPos.m_col - 1)) { _ret = true; } } } } break; case SkillId.PAO: break; case SkillId.XIANG: if (targetRow == m_playerPos.m_row + 2 && targetCol == m_playerPos.m_col + 2) { if (_sceneModule.Data[targetRow][targetCol] != MapDataType.NEWMODE && (_sceneModule.Data[m_playerPos.m_row][m_playerPos.m_col] == MapDataType.GAOTAI || (_sceneModule.Data[m_playerPos.m_row + 1][m_playerPos.m_col + 1] != MapDataType.GAOTAI && _sceneModule.Data[m_playerPos.m_row + 1][m_playerPos.m_col + 1] != MapDataType.JUMATUI))) { if (_sceneModule.m_npcList[targetRow][targetCol] == null && !PosExitChess(m_playerPos.m_row + 1, m_playerPos.m_col + 1)) { _ret = true; } } } else if (targetRow == m_playerPos.m_row + 2 && targetCol == m_playerPos.m_col - 2) { if (_sceneModule.Data[targetRow][targetCol] != MapDataType.NEWMODE && (_sceneModule.Data[m_playerPos.m_row][m_playerPos.m_col] == MapDataType.GAOTAI || (_sceneModule.Data[m_playerPos.m_row + 1][m_playerPos.m_col - 1] != MapDataType.GAOTAI && _sceneModule.Data[m_playerPos.m_row + 1][m_playerPos.m_col - 1] != MapDataType.JUMATUI))) { if (_sceneModule.m_npcList[targetRow][targetCol] == null && !PosExitChess(m_playerPos.m_row + 1, m_playerPos.m_col - 1)) { _ret = true; } } } else if (targetRow == m_playerPos.m_row - 2 && targetCol == m_playerPos.m_col + 2) { if (_sceneModule.Data[targetRow][targetCol] != MapDataType.NEWMODE && (_sceneModule.Data[m_playerPos.m_row][m_playerPos.m_col] == MapDataType.GAOTAI || (_sceneModule.Data[m_playerPos.m_row - 1][m_playerPos.m_col + 1] != MapDataType.GAOTAI && _sceneModule.Data[m_playerPos.m_row - 1][m_playerPos.m_col + 1] != MapDataType.JUMATUI))) { if (_sceneModule.m_npcList[targetRow][targetCol] == null && !PosExitChess(m_playerPos.m_row - 1, m_playerPos.m_col + 1)) { _ret = true; } } } else if (targetRow == m_playerPos.m_row - 2 && targetCol == m_playerPos.m_col - 2) { if (_sceneModule.Data[targetRow][targetCol] != MapDataType.NEWMODE && (_sceneModule.Data[m_playerPos.m_row][m_playerPos.m_col] == MapDataType.GAOTAI || (_sceneModule.Data[m_playerPos.m_row - 1][m_playerPos.m_col - 1] != MapDataType.GAOTAI && _sceneModule.Data[m_playerPos.m_row - 1][m_playerPos.m_col - 1] != MapDataType.JUMATUI))) { if (_sceneModule.m_npcList[targetRow][targetCol] == null && !PosExitChess(m_playerPos.m_row - 1, m_playerPos.m_col - 1)) { _ret = true; } } } break; case SkillId.SHI: break; case SkillId.BING: break; } return(_ret); }