public void Mouse_ButtonDown(object sender, MouseButtonEventArgs e) { Point scaledMouse = mouse_current.MouseCurrent; //main inventory Point?cell = SelectedCell(scaledMouse); //grab from inventory if (cell != null) { controller.InventoryClick(new InventoryPosition() { type = InventoryPositionType.MainArea, AreaX = cell.Value.X, AreaY = cell.Value.Y, }); } //drop items on ground if (scaledMouse.X < CellsStart.X && scaledMouse.Y < MaterialSelectorStart.Y) { Vector3i pos = viewport3d.SelectedBlock(); controller.InventoryClick(new InventoryPosition() { type = InventoryPositionType.Ground, GroundPositionX = pos.x, GroundPositionY = pos.y, GroundPositionZ = pos.z, }); } //material selector if (SelectedMaterialSelectorSlot(scaledMouse) != null) { int oldActiveMaterial = ActiveMaterial.ActiveMaterial; ActiveMaterial.ActiveMaterial = SelectedMaterialSelectorSlot(scaledMouse).Value; if (oldActiveMaterial == ActiveMaterial.ActiveMaterial) { controller.InventoryClick(new InventoryPosition() { type = InventoryPositionType.MaterialSelector, MaterialId = ActiveMaterial.ActiveMaterial, }); } } if (SelectedWearPlace(scaledMouse) != null) { controller.InventoryClick(new InventoryPosition() { type = InventoryPositionType.WearPlace, WearPlace = (int)(SelectedWearPlace(scaledMouse).Value), ActiveMaterial = ActiveMaterial.ActiveMaterial, }); } }
public override void OnMouseDown(Game game_, MouseEventArgs args) { if (game.guistate != GuiState.Inventory) { return; } PointRef scaledMouse = PointRef.Create(args.GetX(), args.GetY()); //material selector if (SelectedMaterialSelectorSlot(scaledMouse) != null) { //int oldActiveMaterial = ActiveMaterial.ActiveMaterial; game.ActiveMaterial = SelectedMaterialSelectorSlot(scaledMouse).value; //if (oldActiveMaterial == ActiveMaterial.ActiveMaterial) { Packet_InventoryPosition p = new Packet_InventoryPosition(); p.Type = Packet_InventoryPositionTypeEnum.MaterialSelector; p.MaterialId = game.ActiveMaterial; controller.InventoryClick(p); } args.SetHandled(true); return; } if (game.guistate != GuiState.Inventory) { return; } //main inventory PointRef cellInPage = SelectedCell(scaledMouse); //grab from inventory if (cellInPage != null) { if (args.GetButton() == MouseButtonEnum.Left) { Packet_InventoryPosition p = new Packet_InventoryPosition(); p.Type = Packet_InventoryPositionTypeEnum.MainArea; p.AreaX = cellInPage.X; p.AreaY = cellInPage.Y + ScrollLine; controller.InventoryClick(p); args.SetHandled(true); return; } else { { Packet_InventoryPosition p = new Packet_InventoryPosition(); p.Type = Packet_InventoryPositionTypeEnum.MainArea; p.AreaX = cellInPage.X; p.AreaY = cellInPage.Y + ScrollLine; controller.InventoryClick(p); } { Packet_InventoryPosition p = new Packet_InventoryPosition(); p.Type = Packet_InventoryPositionTypeEnum.WearPlace; p.WearPlace = WearPlace_.RightHand; p.ActiveMaterial = game.ActiveMaterial; controller.InventoryClick(p); } { Packet_InventoryPosition p = new Packet_InventoryPosition(); p.Type = Packet_InventoryPositionTypeEnum.MainArea; p.AreaX = cellInPage.X; p.AreaY = cellInPage.Y + ScrollLine; controller.InventoryClick(p); } } if (game.guistate == GuiState.Inventory) { args.SetHandled(true); return; } } // //drop items on ground //if (scaledMouse.X < CellsStartX() && scaledMouse.Y < MaterialSelectorStartY()) //{ // int posx = game.SelectedBlockPositionX; // int posy = game.SelectedBlockPositionY; // int posz = game.SelectedBlockPositionZ; // Packet_InventoryPosition p = new Packet_InventoryPosition(); // { // p.Type = Packet_InventoryPositionTypeEnum.Ground; // p.GroundPositionX = posx; // p.GroundPositionY = posy; // p.GroundPositionZ = posz; // } // controller.InventoryClick(p); //} if (SelectedWearPlace(scaledMouse) != null) { Packet_InventoryPosition p = new Packet_InventoryPosition(); p.Type = Packet_InventoryPositionTypeEnum.WearPlace; p.WearPlace = (SelectedWearPlace(scaledMouse).value); p.ActiveMaterial = game.ActiveMaterial; controller.InventoryClick(p); args.SetHandled(true); return; } if (scaledMouse.X >= ScrollUpButtonX() && scaledMouse.X < ScrollUpButtonX() + ScrollButtonSize() && scaledMouse.Y >= ScrollUpButtonY() && scaledMouse.Y < ScrollUpButtonY() + ScrollButtonSize()) { ScrollUp(); ScrollingUpTimeMilliseconds = game.platform.TimeMillisecondsFromStart(); args.SetHandled(true); return; } if (scaledMouse.X >= ScrollDownButtonX() && scaledMouse.X < ScrollDownButtonX() + ScrollButtonSize() && scaledMouse.Y >= ScrollDownButtonY() && scaledMouse.Y < ScrollDownButtonY() + ScrollButtonSize()) { ScrollDown(); ScrollingDownTimeMilliseconds = game.platform.TimeMillisecondsFromStart(); args.SetHandled(true); return; } game.GuiStateBackToGame(); return; }