示例#1
0
    public void ConstructRemovableObject(RemovableObjectType type, TilePosition position)
    {
        RemovableObjectConfigData configData = ConfigInterface.Instance.RemovableConfigHelper.GetRemovableObjectData(type);

        string prefabName = string.Format("{0}{1}{2}", ClientStringConstants.BATTLE_SCENE_RESOURCE_PREFAB_PREFIX_NAME,
                                          ClientStringConstants.REMOVABLE_OBJECT_PREFAB_PREFIX_NAME, configData.PrefabName);
        GameObject objectPrefab = Resources.Load(prefabName) as GameObject;
        GameObject newObject    = GameObject.Instantiate(objectPrefab) as GameObject;

        EditorRemovableObjectBehavior objectBehavior = newObject.AddComponent <EditorRemovableObjectBehavior>();

        objectBehavior.Position            = position;
        objectBehavior.RemovableObjectType = type;

        newObject.transform.position = PositionConvertor.GetWorldPositionByBuildingTileIndex(position);
        newObject.transform.parent   = this.m_SceneParent;
        this.PopulateMapData(position, configData.BuildingObstacleList, newObject);
    }
示例#2
0
    public void SaveMap()
    {
        var buildings            = GameObject.FindObjectsOfType(typeof(EditorBuildingBehavior));
        var objects              = GameObject.FindObjectsOfType(typeof(EditorRemovableObjectBehavior));
        var achievementBuildings = GameObject.FindObjectsOfType(typeof(EditorAchievementBuildingBehavior));
        var defenseObjects       = GameObject.FindObjectsOfType(typeof(EditorDefenseObjectBehavior));
        BuildingNoGenerator buildingGenerator = new BuildingNoGenerator();
        Hashtable           map          = new Hashtable();
        ArrayList           buildingList = new ArrayList();

        foreach (var b in buildings)
        {
            EditorBuildingBehavior building = (EditorBuildingBehavior)b;
            Hashtable property = new Hashtable();
            property.Add(EditorConfigInterface.Instance.MapBuildingTypeKey, (int)building.BuildingType);
            property.Add(EditorConfigInterface.Instance.MapBuildingNoKey, buildingGenerator.GetBuildingNO(building.BuildingType));
            property.Add(EditorConfigInterface.Instance.MapBuildingLevelKey, building.Level);
            property.Add(EditorConfigInterface.Instance.MapBuildingRowKey, building.Position.Row);
            property.Add(EditorConfigInterface.Instance.MapBuildingColumnKey, building.Position.Column);

            buildingList.Add(property);
        }
        map.Add(EditorConfigInterface.Instance.MapBuildingKey, buildingList);
        ArrayList objectList = new ArrayList();

        foreach (var o in objects)
        {
            EditorRemovableObjectBehavior removableObject = (EditorRemovableObjectBehavior)o;
            Hashtable property = new Hashtable();
            property.Add(EditorConfigInterface.Instance.MapRemovableObjectTypeKey, (int)removableObject.RemovableObjectType);
            property.Add(EditorConfigInterface.Instance.MapRemovableObjectRowKey, removableObject.Position.Row);
            property.Add(EditorConfigInterface.Instance.MapRemovableObjectColumnKey, removableObject.Position.Column);

            objectList.Add(property);
        }
        map.Add(EditorConfigInterface.Instance.MapRemovableObjectKey, objectList);
        ArrayList achievementBuildingList = new ArrayList();

        foreach (var a in achievementBuildings)
        {
            EditorAchievementBuildingBehavior achievementBuilding = (EditorAchievementBuildingBehavior)a;
            Hashtable property = new Hashtable();
            property.Add(EditorConfigInterface.Instance.MapAchievementBuildingTypeKey, (int)achievementBuilding.AchievementBuildingType);
            property.Add(EditorConfigInterface.Instance.MapAchievementBuildingRowKey, achievementBuilding.Position.Row);
            property.Add(EditorConfigInterface.Instance.MapAchievementBuildingColumnKey, achievementBuilding.Position.Column);

            achievementBuildingList.Add(property);
        }
        map.Add(EditorConfigInterface.Instance.MapAchievementBuildingKey, achievementBuildingList);
        ArrayList defenseObjectList = new ArrayList();

        foreach (var d in defenseObjects)
        {
            EditorDefenseObjectBehavior defenseObject = (EditorDefenseObjectBehavior)d;
            Hashtable property = new Hashtable();
            property.Add(EditorConfigInterface.Instance.MapDefenseObjectTypeKey, (int)defenseObject.PropsType);
            property.Add(EditorConfigInterface.Instance.MapDefenseObjectRowKey, defenseObject.Position.Row);
            property.Add(EditorConfigInterface.Instance.MapDefenseObjectColumnKey, defenseObject.Position.Column);

            defenseObjectList.Add(property);
        }
        map.Add(EditorConfigInterface.Instance.MapDefenseObjectKey, defenseObjectList);

        FileStream fs = Application.platform == RuntimePlatform.OSXEditor ?
                        new FileStream(this.m_MapName + "." + EditorConfigInterface.Instance.MapSuffix, FileMode.Create) :
                        new FileStream(EditorConfigInterface.Instance.MapStorePath + "/" +
                                       this.m_MapName + "." + EditorConfigInterface.Instance.MapSuffix, FileMode.Create);
        StreamWriter sw = new StreamWriter(fs);

        sw.Write(JSONHelper.jsonEncode(map));
        sw.Close();

        Debug.Log("write finish!");
    }