コード例 #1
0
    void OnIsoClick(int index)
    {
        if (mWndCtrl.IsoListSelectIndex > -1)
        {
            mWndCtrl.ClearCostList();

            BSIsoHeadData header = m_IsoHeaders[mWndCtrl.IsoListSelectIndex];
            foreach (var kvp in header.costs)
            {
                int item_id = PEBuildingMan.GetBlockItemProtoID(kvp.Key);

                //				if (item_id < PEBuildingMan.c_MinItemProtoID || item_id > PEBuildingMan.c_MaxItemProtoID)
                //					continue;
                if (item_id == -1)
                {
                    return;
                }

                ItemProto proto = ItemProto.Mgr.Instance.Get(item_id);
                Pathea.PlayerPackageCmpt pkg = Pathea.PeCreature.Instance.mainPlayer.GetCmpt <Pathea.PlayerPackageCmpt>();
                int player_cnt = pkg.GetItemCount(item_id);
                int final_cnt  = Mathf.Clamp(player_cnt, 0, 9999);
                mWndCtrl.AddCostListItem(proto.GetName(), Mathf.CeilToInt(kvp.Value / 4.0f).ToString() + '/' + final_cnt.ToString(), proto.icon[0], "Icon");
            }
            IsoRePos = true;
            //mWndCtrl.ResetCostPostion();
        }
    }
コード例 #2
0
    void OnBlockPatternClick(int index)
    {
        if (PEBuildingMan.Self == null)
        {
            return;
        }

        if (!mWndCtrl.mBlockPatternList[index].IsActive)
        {
            //lz-2016.10.31 Insufficient skill to use this item.
            new PeTipMsg(PELocalization.GetString(8000854), PeTipMsg.EMsgLevel.Warning, PeTipMsg.EMsgType.Misc);
            return;
        }


        int i = 0;

        foreach (var kvp in BSPattern.s_tblPatterns)
        {
            if (i == index)
            {
                if (mWndCtrl.BlockMatSelectIndex == -1)
                {
                    // Voxel Mat is selected ?  Swicth it to block mat !
                    if (mWndCtrl.TextureListSelectIndex != -1)
                    {
                        int itemId = mWndCtrl.mVoxelMatList[mWndCtrl.TextureListSelectIndex].ItemId;
                        PEBuildingMan.Self.Manipulator.MaterialType = (byte)PEBuildingMan.GetBlockMaterialType(itemId);
                        int find_index = mWndCtrl.mBlockMatList.FindIndex(item0 => item0.ItemId == itemId);
                        if (find_index != -1)
                        {
                            mWndCtrl.BlockMatSelectIndex = find_index;
                        }
                        else
                        {
                            mWndCtrl.BlockMatSelectIndex = 0;
                        }

                        mWndCtrl.DisselectVoxel();
                    }
                    else
                    {
                        PEBuildingMan.Self.Manipulator.MaterialType = (byte)PEBuildingMan.GetBlockMaterialType(mWndCtrl.mBlockMatList[0].ItemId);
                        mWndCtrl.BlockMatSelectIndex = 0;
                    }
                }
                ItemAsset.ItemProto item = ItemAsset.ItemProto.GetItemData(mWndCtrl.mBlockMatList[mWndCtrl.BlockMatSelectIndex].ItemId);
                if (!GameUI.Instance.mSkillWndCtrl._SkillMgr.CheckBuildBlockLevel(item.level))
                {
                    PEBuildingMan.Self.Manipulator.MaterialType = 2;
                }
                PEBuildingMan.Self.Pattern = kvp.Value;

                ChangeBrushToBox();
                break;
            }
            i++;
        }
    }
コード例 #3
0
    void Awake()
    {
        if (_self != null)
        {
            Debug.LogWarning("There is alread a Building manipulator ");
        }
        else
        {
            _self = this;
        }

        BSVoxelModify.onModifyCheck += OnCheckVoxelModify;

        _manipulator.onCreateBrush += OnCreateBrush;

        m_IsoCaputure = Instantiate(_IsoCapturePrefab) as PEIsoCapture;
        m_IsoCaputure.transform.parent        = transform;
        m_IsoCaputure.transform.localPosition = Vector3.zero;
        m_IsoCaputure.transform.localRotation = Quaternion.identity;
    }
コード例 #4
0
    void OnBlockMatClick(int index)
    {
        if (PEBuildingMan.Self == null)
        {
            return;
        }

        if (!mWndCtrl.mBlockMatList[index].IsActive)
        {
            //lz-2016.10.31 Insufficient skill to use this item.
            new PeTipMsg(PELocalization.GetString(8000854), PeTipMsg.EMsgLevel.Warning, PeTipMsg.EMsgType.Misc);
            return;
        }

        mWndCtrl.DisselectVoxel();

        PEBuildingMan.Self.Manipulator.MaterialType = (byte)PEBuildingMan.GetBlockMaterialType(mWndCtrl.mBlockMatList[index].ItemId);

        //lw:2017.4.6 Crash修复
        if (GameUI.Instance.mSkillWndCtrl != null && GameUI.Instance.mSkillWndCtrl._SkillMgr != null &&
            !GameUI.Instance.mSkillWndCtrl._SkillMgr.CheckBuildShape(mWndCtrl.BlockPatternSelectIndex))
        {
            PEBuildingMan.Self.Pattern = BSPattern.DefaultB1;
        }
        else
        {
            if (mWndCtrl.BlockPatternSelectIndex == -1)
            {
                PEBuildingMan.Self.Pattern = BSPattern.DefaultB1;
            }
            else
            {
                PEBuildingMan.Self.Pattern = BSPattern.s_tblPatterns[mWndCtrl.mBlockPatternList[mWndCtrl.BlockPatternSelectIndex].ItemId];
            }
        }

        ChangeBrushToBox();
    }
コード例 #5
0
    void Update()
    {
        if (DragObejct != null)
        {
            if (Input.GetMouseButtonUp(0))
            {
                Destroy(DragObejct);
                DragObejct = null;

                if (DragItem != null)
                {
                    if (DragItem.mItemType == UIBuildWndItem.ItemType.mMenu)
                    {
                        UIBlockSaver.Instance.RemoveData((mBoxBars.PageIndex - 1) * c_MaxMenuItems + DragItem.mIndex);
                        UpdateMenuItems(mBoxBars.PageIndex);
                        DragItem = null;
                    }
                }
            }
        }

        // ShortCut
        if (PeInput.Get(PeInput.LogicFunction.QuickBar1))
        {
            if (onQuickBarFunc != null)
            {
                onQuickBarFunc(mMenuList[0]);
            }
            mMenuList[0].PlayGridEffect();
        }
        else if (PeInput.Get(PeInput.LogicFunction.QuickBar2))
        {
            if (onQuickBarFunc != null)
            {
                onQuickBarFunc(mMenuList[1]);
            }
            mMenuList[1].PlayGridEffect();
        }
        else if (PeInput.Get(PeInput.LogicFunction.QuickBar3))
        {
            if (onQuickBarFunc != null)
            {
                onQuickBarFunc(mMenuList[2]);
            }
            mMenuList[2].PlayGridEffect();
        }
        else if (PeInput.Get(PeInput.LogicFunction.QuickBar4))
        {
            if (onQuickBarFunc != null)
            {
                onQuickBarFunc(mMenuList[3]);
            }
            mMenuList[3].PlayGridEffect();
        }
        else if (PeInput.Get(PeInput.LogicFunction.QuickBar5))
        {
            if (onQuickBarFunc != null)
            {
                onQuickBarFunc(mMenuList[4]);
            }
            mMenuList[4].PlayGridEffect();
        }
        else if (PeInput.Get(PeInput.LogicFunction.QuickBar6))
        {
            if (onQuickBarFunc != null)
            {
                onQuickBarFunc(mMenuList[5]);
            }
            mMenuList[5].PlayGridEffect();
        }
        else if (PeInput.Get(PeInput.LogicFunction.QuickBar7))
        {
            if (onQuickBarFunc != null)
            {
                onQuickBarFunc(mMenuList[6]);
            }
            mMenuList[6].PlayGridEffect();
        }
        else if (PeInput.Get(PeInput.LogicFunction.QuickBar8))
        {
            if (onQuickBarFunc != null)
            {
                onQuickBarFunc(mMenuList[7]);
            }
            mMenuList[7].PlayGridEffect();
        }
        else if (PeInput.Get(PeInput.LogicFunction.QuickBar9))
        {
            if (onQuickBarFunc != null)
            {
                onQuickBarFunc(mMenuList[8]);
            }
            mMenuList[8].PlayGridEffect();
        }
        else if (PeInput.Get(PeInput.LogicFunction.QuickBar10))
        {
            if (onQuickBarFunc != null)
            {
                onQuickBarFunc(mMenuList[9]);
            }
            mMenuList[9].PlayGridEffect();
        }

        // Short Cut For Brush
        if (PeInput.Get(PeInput.LogicFunction.Build_Shortcut1))
        {
            if (!mPointBtn.checkBox.isChecked)
            {
                mPointBtn.checkBox.isChecked = true;
                BtnBrush1_OnClick();
            }
        }
        else if (PeInput.Get(PeInput.LogicFunction.Build_Shortcut2))
        {
            if (!mBoxBtn.checkBox.isChecked)
            {
                mBoxBtn.checkBox.isChecked = true;
                BtnBrush2_OnClick();
            }
        }
        else if (PeInput.Get(PeInput.LogicFunction.Build_Shortcut3))
        {
            if (!mDiagonalBtn.checkBox.isChecked)
            {
                UISkillWndCtrl uiSkill = GameUI.Instance.mSkillWndCtrl;
                if (uiSkill._SkillMgr != null)
                {
                    if (!uiSkill._SkillMgr.CheckUnlockBuildBlockBevel())
                    {
                        return;
                    }
                }

                mDiagonalBtn.checkBox.isChecked = true;
                BtnBrush3_OnClick();
            }
        }
        else if (PeInput.Get(PeInput.LogicFunction.Build_Shortcut4))
        {
            if (!mSelectBtn.checkBox.isChecked)
            {
                mSelectBtn.checkBox.isChecked = true;
                BtnBrush4_OnClick();
            }
        }
        else if (PeInput.Get(PeInput.LogicFunction.Build_Shortcut5))
        {
            if (!mSelectBlockBtn.checkBox.isChecked)
            {
                mSelectBlockBtn.checkBox.isChecked = true;
                BtnBrush5_OnClick();
            }
        }
        else if (PeInput.Get(PeInput.LogicFunction.Build_Shortcut6))
        {
            BtnSaveOnClick();
        }
        else if (PeInput.Get(PeInput.LogicFunction.Build_Shortcut7))
        {
            BtnMenuOnClick();
        }

        if (PeInput.Get(PeInput.LogicFunction.PrevQuickBar))
        {
            mBoxBars.BtnPageUpOnClick();
        }

        if (PeInput.Get(PeInput.LogicFunction.NextQuickBar))
        {
            mBoxBars.BtnPageDnOnClick();
        }

        //if (Input.GetKeyDown(KeyCode.Tab))
        //{
        //	if (mPointBtn.checkBox.isChecked)
        //	{
        //		if (onQuickSwitchPointBrush != null)
        //			onQuickSwitchPointBrush();
        //	}
        //	//else if (mDiagonalBtn.checkBox.isChecked)
        //	//{
        //	//	if (onQuickSwitchDiagonalBrush != null)
        //	//		onQuickSwitchDiagonalBrush();
        //	//}
        //	else if (mBoxBtn.checkBox.isChecked)
        //	{
        //		if (onQuickSwitchBoxBrush != null)
        //			onQuickSwitchBoxBrush();
        //	}
        //}

        //
        if (Pathea.PeCreature.Instance.mainPlayer != null)
        {
            Pathea.PackageCmpt pkg = Pathea.PeCreature.Instance.mainPlayer.GetCmpt <Pathea.PackageCmpt>();
            foreach (UIBuildWndItem item in mMenuList)
            {
                if (item.mTargetItemType == UIBuildWndItem.ItemType.mBlockMat)
                {
                    item.SetNumber(pkg.GetItemCount(item.ItemId).ToString());
                }
                else if (item.mTargetItemType == UIBuildWndItem.ItemType.mVoxelType)
                {
                    int proto_id = PEBuildingMan.GetVoxelItemProtoID((byte)item.ItemId);
                    item.SetNumber(pkg.GetItemCount(proto_id).ToString());
                }
                else if (item.mTargetItemType == UIBuildWndItem.ItemType.mBlockPattern)
                {
                    item.SetNumber(mBulidWnd.mBlockPatternList[item.mTargetIndex].mNumber.text);
                }
                else
                {
                    item.SetNumber("");
                }
            }
        }
    }
コード例 #6
0
    void OnMenuQuickBarClick(UIBuildWndItem item)
    {
        if (item.mTargetItemType != UIBuildWndItem.ItemType.mNull &&
            item.mTargetItemType != UIBuildWndItem.ItemType.mMenu &&
            !item.IsActive)
        {
            //lz-2016.10.31 Insufficient skill to use this item.
            new PeTipMsg(PELocalization.GetString(8000854), PeTipMsg.EMsgLevel.Warning, PeTipMsg.EMsgType.Misc);
            return;
        }


        switch (item.mTargetItemType)
        {
        case UIBuildWndItem.ItemType.mVoxelType:
        {
            if (PEBuildingMan.Self != null)
            {
                if (!GameUI.Instance.mSkillWndCtrl._SkillMgr.CheckUnlockBuildBlockVoxel())
                {
                    return;
                }
                PEBuildingMan.Self.Manipulator.MaterialType = (byte)item.ItemId;
                PEBuildingMan.Self.Pattern = BSPattern.DefaultV1;

                mWndCtrl.DisselectBlock();
                // Refresh the selected voxel mat for control window
                int itemID = BSVoxelMatMap.GetItemID(item.ItemId);
                for (int i = 0; i < mWndCtrl.mVoxelMatList.Count; i++)
                {
                    if (mWndCtrl.mVoxelMatList[i].ItemId == itemID)
                    {
                        mWndCtrl.TextureListSelectIndex = i;

                        OnVoxelMatItemClick(i);

                        mWndCtrl.TypeSelectIndex = item.mTargetIndex;
                        break;
                    }
                }

                ChangeBrushToBox();
            }
        } break;

        case UIBuildWndItem.ItemType.mBlockMat:
        {
            if (PEBuildingMan.Self != null)
            {
                PEBuildingMan.Self.Manipulator.MaterialType = (byte)PEBuildingMan.GetBlockMaterialType(item.ItemId);

                if (PEBuildingMan.Self.Pattern == null || PEBuildingMan.Self.Pattern.type == EBSVoxelType.Voxel)
                {
                    if (mWndCtrl.BlockPatternSelectIndex == -1)
                    {
                        PEBuildingMan.Self.Pattern = BSPattern.DefaultB1;
                    }
                    else
                    {
                        if (mWndCtrl.mBlockPatternList.Count > mWndCtrl.BlockPatternSelectIndex && mWndCtrl.TextureListSelectIndex > -1)
                        {
                            PEBuildingMan.Self.Pattern = BSPattern.s_tblPatterns[mWndCtrl.mBlockPatternList[mWndCtrl.BlockPatternSelectIndex].ItemId];
                        }
                    }
                }

                mWndCtrl.DisselectVoxel();

                // Refresh the selected block mat for control window
                for (int i = 0; i < mWndCtrl.mBlockMatList.Count; i++)
                {
                    if (mWndCtrl.mBlockMatList[i].ItemId == item.ItemId)
                    {
                        mWndCtrl.BlockMatSelectIndex = i;
                        OnBlockMatClick(i);
                        break;
                    }
                }

                ChangeBrushToBox();
            }
        } break;

        case UIBuildWndItem.ItemType.mBlockPattern:
        {
            if (PEBuildingMan.Self != null)
            {
                if (PEBuildingMan.Self.Pattern == null)
                {
                    OnBlockMatClick(0);
                }
                else if (PEBuildingMan.Self.Pattern.type == EBSVoxelType.Voxel)
                {
                    if (mWndCtrl.mVoxelMatList.Count > mWndCtrl.TextureListSelectIndex && mWndCtrl.TextureListSelectIndex > -1)
                    {
                        PEBuildingMan.Self.Manipulator.MaterialType = (byte)PEBuildingMan.GetBlockMaterialType(mWndCtrl.mVoxelMatList[mWndCtrl.TextureListSelectIndex].ItemId);
                    }
                }

                mWndCtrl.DisselectVoxel();

                int i = 0;
                foreach (var kvp in BSPattern.s_tblPatterns)
                {
                    if (i == item.mTargetIndex)
                    {
                        if (mWndCtrl.TextureListSelectIndex != -1)
                        {
                            int itemId = mWndCtrl.mVoxelMatList[mWndCtrl.TextureListSelectIndex].ItemId;
                            PEBuildingMan.Self.Manipulator.MaterialType = (byte)PEBuildingMan.GetBlockMaterialType(itemId);
                            int find_index = mWndCtrl.mBlockMatList.FindIndex(item0 => item0.ItemId == itemId);
                            if (find_index != -1)
                            {
                                mWndCtrl.BlockMatSelectIndex = find_index;
                            }
                            else
                            {
                                mWndCtrl.BlockMatSelectIndex = 0;
                            }
                        }
                        else if (mWndCtrl.BlockMatSelectIndex == -1)
                        {
                            PEBuildingMan.Self.Manipulator.MaterialType = (byte)PEBuildingMan.GetBlockMaterialType(mWndCtrl.mBlockMatList[0].ItemId);
                            mWndCtrl.BlockMatSelectIndex = 0;
                        }

                        PEBuildingMan.Self.Pattern = kvp.Value;

                        break;
                    }
                    i++;
                }

                if (item.mTargetIndex != -1)
                {
                    mWndCtrl.BlockPatternSelectIndex = item.mTargetIndex;
                }

                ChangeBrushToBox();
            }
        } break;

        default:
            break;
        }
    }