adds custom light option for robots (#16534)

This commit is contained in:
Kashargul
2024-10-28 16:10:33 +01:00
committed by GitHub
parent 99a715243e
commit 9e7b7290cb
6 changed files with 26 additions and 4 deletions
@@ -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
+1 -1
View File
@@ -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[];