mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-08-22 19:47:47 +01:00
adds custom light option for robots (#16534)
This commit is contained in:
@@ -375,7 +375,7 @@
|
||||
|
||||
/mob/living/silicon/robot/handle_light()
|
||||
if(lights_on)
|
||||
set_light(integrated_light_power, 1, "#FFFFFF")
|
||||
set_light(integrated_light_power, 1, robot_light_col)
|
||||
return TRUE
|
||||
else
|
||||
. = ..()
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
blocks_emissive = EMISSIVE_BLOCK_UNIQUE
|
||||
|
||||
var/lights_on = 0 // Is our integrated light on?
|
||||
var/robot_light_col = "#FFFFFF"
|
||||
var/used_power_this_tick = 0
|
||||
var/sight_mode = 0
|
||||
var/custom_name = ""
|
||||
|
||||
@@ -62,6 +62,7 @@
|
||||
data["max_charge"] = R.cell?.maxcharge
|
||||
data["health"] = R.health
|
||||
data["max_health"] = R.getMaxHealth()
|
||||
data["light_color"] = R.robot_light_col
|
||||
|
||||
data["weapon_lock"] = R.weapon_lock
|
||||
|
||||
@@ -111,6 +112,11 @@
|
||||
var/mob/living/silicon/robot/R = host
|
||||
|
||||
switch(action)
|
||||
if("set_light_col")
|
||||
var/new_color = params["value"]
|
||||
if(findtext(new_color, GLOB.is_color))
|
||||
R.robot_light_col = new_color
|
||||
. = TRUE
|
||||
if("select_module")
|
||||
R.pick_module()
|
||||
. = TRUE
|
||||
|
||||
@@ -24,7 +24,7 @@ export function ColorBox(props: Props) {
|
||||
className={classes(['ColorBox', className, computeBoxClassName(rest)])}
|
||||
{...computeBoxProps(rest)}
|
||||
>
|
||||
{content || '.'}
|
||||
{content}
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
import { useBackend } from 'tgui/backend';
|
||||
import {
|
||||
Box,
|
||||
ColorBox,
|
||||
ImageButton,
|
||||
Input,
|
||||
LabeledList,
|
||||
NoticeBox,
|
||||
ProgressBar,
|
||||
@@ -164,9 +166,9 @@ const Configuration = (props) => {
|
||||
};
|
||||
|
||||
const Status = (props) => {
|
||||
const { data } = useBackend<Data>();
|
||||
const { act, data } = useBackend<Data>();
|
||||
|
||||
const { charge, max_charge, health, max_health } = data;
|
||||
const { charge, max_charge, health, max_health, light_color } = data;
|
||||
|
||||
return (
|
||||
<Section title="Status" fill>
|
||||
@@ -199,6 +201,17 @@ const Status = (props) => {
|
||||
}}
|
||||
/>
|
||||
</LabeledList.Item>
|
||||
<LabeledList.Item label="Light color">
|
||||
<Box inline>
|
||||
<ColorBox mr={1} color={light_color} />
|
||||
<Input
|
||||
width="5em"
|
||||
monospace
|
||||
value={light_color}
|
||||
onChange={(e, value: string) => act('set_light_col', { value })}
|
||||
/>
|
||||
</Box>
|
||||
</LabeledList.Item>
|
||||
</LabeledList>
|
||||
</Section>
|
||||
);
|
||||
|
||||
@@ -30,6 +30,8 @@ export type Data = {
|
||||
health: number;
|
||||
max_health: number;
|
||||
|
||||
light_color: string;
|
||||
|
||||
// Modules
|
||||
modules_static: Module[];
|
||||
emag_modules_static: Module[];
|
||||
|
||||
Reference in New Issue
Block a user