diff --git a/ClassicalSharp/2D/Widgets/HotbarWidget.cs b/ClassicalSharp/2D/Widgets/HotbarWidget.cs index 3dbda0496..89060764e 100644 --- a/ClassicalSharp/2D/Widgets/HotbarWidget.cs +++ b/ClassicalSharp/2D/Widgets/HotbarWidget.cs @@ -142,7 +142,7 @@ namespace ClassicalSharp.Gui.Widgets { float deltaAcc; public override bool HandlesMouseScroll(float delta) { - if (game.Input.AltDown) { + if (game.Input.IsKeyDown(KeyBind.HotbarSwitching)) { int index = game.Inventory.Offset / Inventory.BlocksPerRow; game.Inventory.Offset = ScrolledIndex(delta, index, 1) * Inventory.BlocksPerRow; altHandled = true; diff --git a/ClassicalSharp/Map/World.cs b/ClassicalSharp/Map/World.cs index b93c6ef12..6146ba66f 100644 --- a/ClassicalSharp/Map/World.cs +++ b/ClassicalSharp/Map/World.cs @@ -60,7 +60,7 @@ namespace ClassicalSharp.Map { /// Sets the block at the given world coordinates without bounds checking. public void SetBlock(int x, int y, int z, BlockID blockId) { int i = (y * Length + z) * Width + x; - blocks1[i] = (BlockRaw)blockId; + blocks1[i] = (BlockRaw)blockId; if (blocks1 == blocks2) return; blocks2[i] = (BlockRaw)(blockId >> 8); } diff --git a/src/Client/Widgets.c b/src/Client/Widgets.c index 4b5c6a00c..5998a0e9d 100644 --- a/src/Client/Widgets.c +++ b/src/Client/Widgets.c @@ -172,6 +172,10 @@ void ButtonWidget_Render(GuiElement* elem, Real64 delta) { Texture_RenderShaded(&widget->Texture, col); } +bool ButtonWidget_HandlesMouseDown(GuiElement* elem, Int32 x, Int32 y, MouseButton btn) { + return ((ButtonWidget*)elem)->OnClick(x, y, btn); +} + GuiElementVTABLE ButtonWidget_VTABLE; void ButtonWidget_Create(ButtonWidget* widget, STRING_PURE String* text, Int32 minWidth, FontDesc* font, Gui_MouseHandler onClick) { widget->VTABLE = &ButtonWidget_VTABLE; @@ -185,7 +189,8 @@ void ButtonWidget_Create(ButtonWidget* widget, STRING_PURE String* text, Int32 m Elem_Init(widget); widget->MinWidth = minWidth; widget->MinHeight = 40; ButtonWidget_SetText(widget, text); - widget->VTABLE->HandlesMouseDown = onClick; + widget->OnClick = onClick; + widget->VTABLE->HandlesMouseDown = ButtonWidget_HandlesMouseDown; } void ButtonWidget_SetText(ButtonWidget* widget, STRING_PURE String* text) { diff --git a/src/Client/Widgets.h b/src/Client/Widgets.h index 5a64f9bd9..c4e9ad163 100644 --- a/src/Client/Widgets.h +++ b/src/Client/Widgets.h @@ -38,9 +38,10 @@ typedef struct ButtonWidget_ { FontDesc Font; String OptName; + Gui_MouseHandler OnClick; ButtonWidget_GetValue GetValue; ButtonWidget_SetValue SetValue; - Int32 MinWidth, MinHeight, Metadata; + Int32 MinWidth, MinHeight; } ButtonWidget; void ButtonWidget_Create(ButtonWidget* widget, STRING_PURE String* text, Int32 minWidth, FontDesc* font, Gui_MouseHandler onClick);