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(); } }
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++; } }
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; }
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(); }
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(""); } } } }
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; } }