Exemple #1
0
        public static GameObject Create(BuildingsEntryInfo buildingsEntryInfo, MapController controller, Vector3 position)
        {
            Transform parent = controller.View.GroundworkLayer;

            if (mBuildItemGameObject == null)
            {
                mBuildItemGameObject = Resources.Load <GameObject>(mBuildingItemPath);
            }
            var go = Object.Instantiate(mBuildItemGameObject);

            switch (buildingsEntryInfo.MenuType)
            {
            case MenuTypeEnum.Groundwork:
                parent = controller.View.GroundworkLayer;
                break;

            case MenuTypeEnum.BuildingMaterials:
                parent = controller.View.BuildingMaterialsLayer;
                break;

            case MenuTypeEnum.Room:
                parent = controller.View.RoomLayer;
                break;
            }
            go.transform.SetParent(parent);
            go.transform.localScale    = Vector3.one;
            go.transform.localPosition = position;

            return(go);
        }
Exemple #2
0
        /// <summary>
        /// 初始数据
        /// </summary>
        /// <param name="content"></param>
        /// <param name="buildingsInfo"></param>
        public void Init(BuildMenuContent content, BuildingsEntryInfo buildingsInfo)
        {
            mContent         = content;
            BuildingItemInfo = buildingsInfo;

            ItemImage.sprite = Resources.Load <SpriteRenderer>(buildingsInfo.ImagePath).sprite;
        }
Exemple #3
0
 /// <summary>
 /// 设置编辑模式
 /// </summary>
 /// <param name="isEditor"></param>
 /// <param name="buildingsEntryInfo"></param>
 public void Editor(bool isEditor, BuildingsEntryInfo buildingsEntryInfo)
 {
     mCurrentBuildingsInfo = buildingsEntryInfo;
     if (isEditor)
     {
         if (MouseEventLayer.gameObject.activeSelf == false)
         {
             MouseEventLayer.gameObject.SetActive(true);
         }
         mIsMoveSelect = true;
         StartCoroutine(checkMouseSelect());
     }
     else
     {
         if (MouseEventLayer.gameObject.activeSelf)
         {
             MouseEventLayer.gameObject.SetActive(false);
         }
         mIsMoveSelect = false;
     }
 }
Exemple #4
0
        private void openMenu()
        {
            //todo:根据菜单类型获取不同菜单的配置表并初始化
            var imagePath1 = "Sprites/Groundwork/brick";
            var imagePath2 = "Sprites/Groundwork/concrete";
            var imagePath3 = "Sprites/Common/remove";

            if (MenuType == MenuTypeEnum.Groundwork)
            {
                if (mBuildingsList == null)
                {
                    mBuildingsList = new List <BuildingsEntryInfo>();
                    var item = new BuildingsEntryInfo
                    {
                        MenuType         = MenuType,
                        CommandType      = BuildCommandType.BuildGroundwork,
                        TakeOverTileNumH = 1,
                        TakeOverTileNumV = 1,
                        ImagePath        = imagePath1
                    };
                    mBuildingsList.Add(item);
                    var item1 = new BuildingsEntryInfo
                    {
                        MenuType         = MenuType,
                        CommandType      = BuildCommandType.BuildGroundwork,
                        TakeOverTileNumH = 1,
                        TakeOverTileNumV = 1,
                        ImagePath        = imagePath2
                    };
                    mBuildingsList.Add(item1);
                    var item2 = new BuildingsEntryInfo
                    {
                        MenuType    = MenuType,
                        CommandType = BuildCommandType.RemoveGroundwork,
                        ImagePath   = imagePath3
                    };
                    mBuildingsList.Add(item2);
                }
            }
            else if (MenuType == MenuTypeEnum.BuildingMaterials)
            {
                imagePath1 = "Sprites/BuildingMaterials/wall-one";
                imagePath2 = "Sprites/BuildingMaterials/door";
                if (mBuildingsList == null)
                {
                    mBuildingsList = new List <BuildingsEntryInfo>();
                    var item = new BuildingsEntryInfo
                    {
                        MenuType         = MenuType,
                        CommandType      = BuildCommandType.BuildWall,
                        TakeOverTileNumH = 1,
                        TakeOverTileNumV = 1,
                        ImagePath        = imagePath1
                    };
                    mBuildingsList.Add(item);
                    var item1 = new BuildingsEntryInfo
                    {
                        MenuType         = MenuType,
                        CommandType      = BuildCommandType.BuildDoor,
                        TakeOverTileNumH = 1,
                        TakeOverTileNumV = 1,
                        ImagePath        = imagePath2
                    };
                    mBuildingsList.Add(item1);
                    var item2 = new BuildingsEntryInfo
                    {
                        MenuType    = MenuType,
                        CommandType = BuildCommandType.RemoveBuildingMaterials,
                        ImagePath   = imagePath3
                    };
                    mBuildingsList.Add(item2);
                }
            }
            else if (MenuType == MenuTypeEnum.Room)
            {
                imagePath1 = "Sprites/Room/jizhenshi";
                imagePath2 = "Sprites/Room/menzhenshi";
                if (mBuildingsList == null)
                {
                    mBuildingsList = new List <BuildingsEntryInfo>();
                    var item = new BuildingsEntryInfo
                    {
                        MenuType         = MenuType,
                        CommandType      = BuildCommandType.BuildRoom,
                        TakeOverTileNumH = 2,
                        TakeOverTileNumV = 3,
                        ImagePath        = imagePath1
                    };
                    mBuildingsList.Add(item);
                    var item1 = new BuildingsEntryInfo
                    {
                        MenuType         = MenuType,
                        CommandType      = BuildCommandType.BuildRoom,
                        TakeOverTileNumH = 3,
                        TakeOverTileNumV = 3,
                        ImagePath        = imagePath2
                    };
                    mBuildingsList.Add(item1);
                }
            }

            GameView.OpenMenu(MenuType, mBuildingsList);    //关闭其他已打开的菜单
        }
        /// <summary>
        /// 创建建造命令
        /// </summary>
        /// <param name="mapController"></param>
        /// <param name="selectedItems"></param>
        /// <param name="buildingsInfo"></param>
        /// <returns></returns>
        public static BuildCommand Create(MapController mapController, List <TileItem> selectedItems, BuildingsEntryInfo buildingsInfo)
        {
            Type commandType;

            if (!mMapping.TryGetValue(buildingsInfo.CommandType, out commandType))
            {
                var name = "Assets.Hospital.Scripts.Modules.Controllers.Map.Commands." + buildingsInfo.CommandType.ToString() + "Command";
                commandType = Type.GetType(name);
                mMapping.Add(buildingsInfo.CommandType, commandType);
            }
            if (commandType == null)
            {
                return(null);
            }
            var ret = (BuildCommand)Activator.CreateInstance(commandType);

            ret.BuildingsInfo = buildingsInfo;
            ret.Map           = mapController;
            ret.SelectedItems = selectedItems;
            return(ret);
        }
Exemple #6
0
 /// <summary>
 /// 设置当前是否编辑状态
 /// </summary>
 /// <param name="isEditor"></param>
 /// <param name="buildingsEntryInfo"></param>
 public void SetEditor(bool isEditor, BuildingsEntryInfo buildingsEntryInfo = null)
 {
     //Debug.Log("map editor:"+isEditor);
     Map.Editor(isEditor, buildingsEntryInfo);
 }