Toolbar defaults and fix toolbar when panel close

main
Cameron Murphy Reikes 2 years ago
parent 98d7dc146a
commit e8ed1b25b4

@ -110,7 +110,15 @@ static sg_image image_solarpanel_charging;
static sg_image image_scanner_head; static sg_image image_scanner_head;
static sg_image image_itemswitch; static sg_image image_itemswitch;
static enum BoxType toolbar[TOOLBAR_SLOTS] = {BoxInvalid}; static enum BoxType toolbar[TOOLBAR_SLOTS] = {
BoxHullpiece,
BoxThruster,
BoxBattery,
BoxCockpit,
BoxMedbay,
BoxSolarPanel,
BoxScanner,
};
static int cur_toolbar_slot = 0; static int cur_toolbar_slot = 0;
static int cur_editing_rotation = Right; static int cur_editing_rotation = Right;
@ -727,7 +735,7 @@ static void ui(bool draw, float dt, float width, float height)
item_scaling[i] = lerp(item_scaling[i], item_being_hovered ? 1.3f : 1.0f, dt*4.0f); item_scaling[i] = lerp(item_scaling[i], item_being_hovered ? 1.3f : 1.0f, dt*4.0f);
struct BoxInfo info = boxes[i]; struct BoxInfo info = boxes[i];
if(item_being_hovered && build_pressed) if(item_being_hovered && build_pressed && picking_new_boxtype)
{ {
toolbar[cur_toolbar_slot] = info.type; toolbar[cur_toolbar_slot] = info.type;
build_pressed = false; build_pressed = false;
@ -1159,7 +1167,10 @@ static void ui(bool draw, float dt, float width, float height)
if (toolbar[i] != BoxInvalid) if (toolbar[i] != BoxInvalid)
{ {
struct BoxInfo info = boxinfo(toolbar[i]); struct BoxInfo info = boxinfo(toolbar[i]);
if(can_build(info.type))
sgp_set_image(0, info.image); sgp_set_image(0, info.image);
else
sgp_set_image(0, image_mystery);
sgp_draw_textured_rect(item_x, item_y, item_width, item_height); sgp_draw_textured_rect(item_x, item_y, item_width, item_height);
sgp_reset_image(0); sgp_reset_image(0);
@ -1670,7 +1681,7 @@ static void frame(void)
} }
// building preview // building preview
if (currently_building() != BoxInvalid) if (currently_building() != BoxInvalid && can_build(currently_building()))
{ {
sgp_set_color(0.5f, 0.5f, 0.5f, sgp_set_color(0.5f, 0.5f, 0.5f,
(sinf((float)time * 9.0f) + 1.0f) / 3.0f + 0.2f); (sinf((float)time * 9.0f) + 1.0f) / 3.0f + 0.2f);

Loading…
Cancel
Save