mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-08-26 21:49:11 +01:00
testing, not yet working
This commit is contained in:
@@ -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(
|
||||
|
||||
@@ -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 = ..()
|
||||
|
||||
|
||||
@@ -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 (
|
||||
<Section
|
||||
title="Sprite"
|
||||
fill
|
||||
scrollable
|
||||
width="40%"
|
||||
buttons={
|
||||
<Button disabled={!sprite} onClick={() => act('confirm')}>
|
||||
Confirm
|
||||
</Button>
|
||||
}
|
||||
>
|
||||
{!!sprite && !!module && (
|
||||
<>
|
||||
<Stack.Item>
|
||||
<Image
|
||||
src={resolveAsset(module + sprite + '_N')}
|
||||
style={{
|
||||
width: '100%',
|
||||
}}
|
||||
/>
|
||||
</Stack.Item>
|
||||
<Stack.Item>
|
||||
<Image
|
||||
src={resolveAsset(module + sprite + '_S')}
|
||||
style={{
|
||||
width: '100%',
|
||||
}}
|
||||
/>
|
||||
</Stack.Item>
|
||||
<Stack.Item>
|
||||
<Image
|
||||
src={resolveAsset(module + sprite + '_W')}
|
||||
style={{
|
||||
width: '100%',
|
||||
}}
|
||||
/>
|
||||
</Stack.Item>
|
||||
<Stack.Item>
|
||||
<Image
|
||||
src={resolveAsset(module + sprite + '_E')}
|
||||
style={{
|
||||
width: '100%',
|
||||
}}
|
||||
/>
|
||||
</Stack.Item>
|
||||
</>
|
||||
)}
|
||||
</Section>
|
||||
);
|
||||
};
|
||||
@@ -31,7 +31,7 @@ export const ModuleSection = (props: {
|
||||
</Stack.Item>
|
||||
<Stack.Item>
|
||||
<Stack vertical fill>
|
||||
{filtered &&
|
||||
{!!filtered &&
|
||||
filtered.map((filter) => (
|
||||
<SelectorElement
|
||||
key={filter}
|
||||
|
||||
@@ -23,7 +23,6 @@ export const SelectorElement = (props: {
|
||||
<>
|
||||
<Flex.Item grow />
|
||||
<Flex.Item>
|
||||
{' '}
|
||||
<Icon name="utensils" />
|
||||
</Flex.Item>
|
||||
</>
|
||||
|
||||
@@ -63,7 +63,7 @@ export const SpriteSection = (props: {
|
||||
</Stack.Item>
|
||||
<Stack.Item>
|
||||
<Stack vertical>
|
||||
{filtered &&
|
||||
{!!filtered &&
|
||||
filtered.map((filter) => (
|
||||
<SelectorElement
|
||||
key={filter.sprite}
|
||||
|
||||
@@ -1,13 +1,14 @@
|
||||
import { useBackend } from 'tgui/backend';
|
||||
import { Window } from 'tgui/layouts';
|
||||
import { Button, Stack } from 'tgui-core/components';
|
||||
import { Stack } from 'tgui-core/components';
|
||||
|
||||
import { IconSection } from './IconSection';
|
||||
import { ModuleSection } from './ModuleSection';
|
||||
import { SpriteSection } from './SpriteSection';
|
||||
import { Data } from './types';
|
||||
|
||||
export const RobotChoose = (props) => {
|
||||
const { act, data } = useBackend<Data>();
|
||||
const { data } = useBackend<Data>();
|
||||
|
||||
const {
|
||||
possible_modules,
|
||||
@@ -31,14 +32,7 @@ export const RobotChoose = (props) => {
|
||||
sortable={possible_sprites}
|
||||
selected={sprite_datum}
|
||||
/>
|
||||
<Stack.Item>
|
||||
<Button
|
||||
disabled={!selected_module || !sprite_datum}
|
||||
onClick={() => act('confirm')}
|
||||
>
|
||||
Confirm
|
||||
</Button>
|
||||
</Stack.Item>
|
||||
<IconSection module={selected_module} sprite={sprite_datum} />
|
||||
</Stack>
|
||||
</Window.Content>
|
||||
</Window>
|
||||
|
||||
Reference in New Issue
Block a user