mirror of
https://github.com/ClassiCube/ClassiCube.git
synced 2025-10-02 10:22:52 -04:00
Add multiple hotbars for inventory.
You can use alt to switch between first and second hotbar. You can also use alt+number to switch to the nth hotbar.
This commit is contained in:
parent
dd0b497136
commit
93b99aa3f0
@ -70,8 +70,7 @@ namespace ClassicalSharp.Gui.Screens {
|
|||||||
ArrowKeyMove(-blocksPerRow);
|
ArrowKeyMove(-blocksPerRow);
|
||||||
} else if ((key == Key.Down || key == Key.Keypad2) && selIndex != -1) {
|
} else if ((key == Key.Down || key == Key.Keypad2) && selIndex != -1) {
|
||||||
ArrowKeyMove(blocksPerRow);
|
ArrowKeyMove(blocksPerRow);
|
||||||
} else if (key >= Key.Number1 && key <= Key.Number9) {
|
} else if (game.Gui.hudScreen.hotbar.HandlesKeyDown(key)) {
|
||||||
game.Inventory.SelectedIndex = (int)key - (int)Key.Number1;
|
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -101,7 +101,19 @@ namespace ClassicalSharp.Gui.Widgets {
|
|||||||
|
|
||||||
public override bool HandlesKeyDown(Key key) {
|
public override bool HandlesKeyDown(Key key) {
|
||||||
if (key >= Key.Number1 && key <= Key.Number9) {
|
if (key >= Key.Number1 && key <= Key.Number9) {
|
||||||
game.Inventory.SelectedIndex = (int)key - (int)Key.Number1;
|
int index = (int)key - (int)Key.Number1;
|
||||||
|
|
||||||
|
if (game.Input.AltDown) {
|
||||||
|
// Pick from first to ninth row
|
||||||
|
game.Inventory.Offset = index * Inventory.BlocksPerRow;
|
||||||
|
} else {
|
||||||
|
game.Inventory.SelectedIndex = index;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
} else if (key == Key.AltLeft || key == Key.AltRight) {
|
||||||
|
// Alternate between first and second row
|
||||||
|
int index = game.Inventory.Offset == 0 ? 1 : 0;
|
||||||
|
game.Inventory.Offset = index * Inventory.BlocksPerRow;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
@ -27,7 +27,7 @@ namespace ClassicalSharp {
|
|||||||
Game game;
|
Game game;
|
||||||
public bool CanChangeHeldBlock = true;
|
public bool CanChangeHeldBlock = true;
|
||||||
|
|
||||||
public const int BlocksPerRow = 9, Rows = 2;
|
public const int BlocksPerRow = 9, Rows = 9;
|
||||||
public int Offset = 0;
|
public int Offset = 0;
|
||||||
|
|
||||||
public BlockID[] Hotbar = new BlockID[BlocksPerRow * Rows];
|
public BlockID[] Hotbar = new BlockID[BlocksPerRow * Rows];
|
||||||
|
Loading…
x
Reference in New Issue
Block a user