From 2973647e7cc6bf0d01081ff64d655b74bb999efb Mon Sep 17 00:00:00 2001 From: Kashargul <144968721+Kashargul@users.noreply.github.com> Date: Mon, 11 Nov 2024 00:20:26 +0100 Subject: [PATCH] testing, not yet working --- code/modules/asset_cache/asset_list_items.dm | 31 ++++++++++ .../living/silicon/robot/robot_ui_module.dm | 4 ++ .../interfaces/RobotChoose/IconSection.tsx | 59 +++++++++++++++++++ .../interfaces/RobotChoose/ModuleSection.tsx | 2 +- .../RobotChoose/SelectorElement.tsx | 1 - .../interfaces/RobotChoose/SpriteSection.tsx | 2 +- .../tgui/interfaces/RobotChoose/index.tsx | 14 ++--- 7 files changed, 100 insertions(+), 13 deletions(-) create mode 100644 tgui/packages/tgui/interfaces/RobotChoose/IconSection.tsx diff --git a/code/modules/asset_cache/asset_list_items.dm b/code/modules/asset_cache/asset_list_items.dm index 572c1a5d26..c229630221 100644 --- a/code/modules/asset_cache/asset_list_items.dm +++ b/code/modules/asset_cache/asset_list_items.dm @@ -437,6 +437,37 @@ Insert("bottle-[i]", 'icons/obj/chemical.dmi', "bottle-[i]") +// Robot UI sprites +/datum/asset/spritesheet/robot_icons + name = "robot_icons" + +/datum/asset/spritesheet/robot_icons/create_spritesheets() + for(var/datum/robot_sprite/S as anything in typesof(/datum/robot_sprite)) + if(!S.name) + continue + to_world("[S.name]]") + var/icon/I_S = icon(S.sprite_icon, S.sprite_icon_state, SOUTH) + var/icon/I_N = icon(S.sprite_icon, S.sprite_icon_state, NORTH) + var/icon/I_W = icon(S.sprite_icon, S.sprite_icon_state, WEST) + var/icon/I_E = icon(S.sprite_icon, S.sprite_icon_state, EAST) + var/icon/I_SE = icon(S.sprite_icon, "[S.sprite_icon_state]-eyes", SOUTH) + if(I_SE) + I_S.Blend(I_SE, ICON_OVERLAY) + var/icon/I_NE = icon(S.sprite_icon, "[S.sprite_icon_state]-eyes", NORTH) + if(I_NE) + I_N.Blend(I_NE, ICON_OVERLAY) + var/icon/I_WE = icon(S.sprite_icon, "[S.sprite_icon_state]-eyes", WEST) + if(I_WE) + I_W.Blend(I_WE, ICON_OVERLAY) + var/icon/I_EE = icon(S.sprite_icon, "[S.sprite_icon_state]-eyes", EAST) + if(I_EE) + I_E.Blend(I_EE, ICON_OVERLAY) + Insert(S.module_type + S.name + "_S", I_S) + Insert(S.module_type + S.name + "_N", I_N) + Insert(S.module_type + S.name + "_W", I_W) + Insert(S.module_type + S.name + "_E", I_E) + + //Cloning pod sprites for UIs /datum/asset/simple/cloning assets = list( diff --git a/code/modules/mob/living/silicon/robot/robot_ui_module.dm b/code/modules/mob/living/silicon/robot/robot_ui_module.dm index 7ea6049d0e..5dc30cfdbc 100644 --- a/code/modules/mob/living/silicon/robot/robot_ui_module.dm +++ b/code/modules/mob/living/silicon/robot/robot_ui_module.dm @@ -8,6 +8,10 @@ /datum/tgui_module/robot_ui_module/tgui_state(mob/user) return GLOB.tgui_self_state + +/datum/tgui_module/robot_ui_module/ui_assets(mob/user) + . += get_asset_datum(/datum/asset/spritesheet/robot_icons) + /datum/tgui_module/robot_ui_module/tgui_static_data() var/list/data = ..() diff --git a/tgui/packages/tgui/interfaces/RobotChoose/IconSection.tsx b/tgui/packages/tgui/interfaces/RobotChoose/IconSection.tsx new file mode 100644 index 0000000000..f066f1b507 --- /dev/null +++ b/tgui/packages/tgui/interfaces/RobotChoose/IconSection.tsx @@ -0,0 +1,59 @@ +import { resolveAsset } from 'tgui/assets'; +import { useBackend } from 'tgui/backend'; +import { Button, Image, Section, Stack } from 'tgui-core/components'; + +export const IconSection = (props: { module?: string; sprite?: string }) => { + const { act } = useBackend(); + const { module, sprite } = props; + + return ( +
act('confirm')}> + Confirm + + } + > + {!!sprite && !!module && ( + <> + + + + + + + + + + + + + + )} +
+ ); +}; diff --git a/tgui/packages/tgui/interfaces/RobotChoose/ModuleSection.tsx b/tgui/packages/tgui/interfaces/RobotChoose/ModuleSection.tsx index 2a7fafc371..c90dbbe7be 100644 --- a/tgui/packages/tgui/interfaces/RobotChoose/ModuleSection.tsx +++ b/tgui/packages/tgui/interfaces/RobotChoose/ModuleSection.tsx @@ -31,7 +31,7 @@ export const ModuleSection = (props: { - {filtered && + {!!filtered && filtered.map((filter) => ( - {' '} diff --git a/tgui/packages/tgui/interfaces/RobotChoose/SpriteSection.tsx b/tgui/packages/tgui/interfaces/RobotChoose/SpriteSection.tsx index 31fb410700..13cba8fc05 100644 --- a/tgui/packages/tgui/interfaces/RobotChoose/SpriteSection.tsx +++ b/tgui/packages/tgui/interfaces/RobotChoose/SpriteSection.tsx @@ -63,7 +63,7 @@ export const SpriteSection = (props: { - {filtered && + {!!filtered && filtered.map((filter) => ( { - const { act, data } = useBackend(); + const { data } = useBackend(); const { possible_modules, @@ -31,14 +32,7 @@ export const RobotChoose = (props) => { sortable={possible_sprites} selected={sprite_datum} /> - - - +