From 76ebb69fc2ed66d84288f7a638d5575a90f41e80 Mon Sep 17 00:00:00 2001
From: Heroman3003 <31296024+Heroman3003@users.noreply.github.com>
Date: Thu, 8 Jun 2023 19:46:05 +1000
Subject: [PATCH] tgui no yell
rebase to master
---
.../eventkit/gm_interfaces/mob_spawner.dm | 25 ++++---
tgui/packages/tgui/interfaces/MobSpawner.tsx | 68 ++++++++++++++-----
2 files changed, 66 insertions(+), 27 deletions(-)
diff --git a/code/modules/eventkit/gm_interfaces/mob_spawner.dm b/code/modules/eventkit/gm_interfaces/mob_spawner.dm
index 8b0eac1054..a182dad666 100644
--- a/code/modules/eventkit/gm_interfaces/mob_spawner.dm
+++ b/code/modules/eventkit/gm_interfaces/mob_spawner.dm
@@ -24,8 +24,6 @@
/datum/eventkit/mob_spawner/tgui_static_data(mob/user)
var/list/data = list()
- data["mob_paths"] = typesof(/mob);
-
data["initial_x"] = usr.x;
data["initial_y"] = usr.y;
data["initial_z"] = usr.z;
@@ -43,12 +41,13 @@
data["path"] = path;
- var/mob/M = new path();
- if(M)
- data["default_path_name"] = M.name;
- data["default_desc"] = M.desc;
- data["default_flavor_text"] = M.flavor_text;
- qdel(M);
+ if(path)
+ var/mob/M = new path();
+ if(M)
+ data["default_path_name"] = M.name;
+ data["default_desc"] = M.desc;
+ data["default_flavor_text"] = M.flavor_text;
+ qdel(M);
return data
@@ -60,7 +59,11 @@
return
switch(action)
if("select_path")
- path = params["path"]
+ var/list/choices = typesof(/mob)
+ var/newPath = tgui_input_list(usr, "Please select the new path of the mob you want to spawn.", items = choices)
+
+ path = newPath
+
return TRUE
if("loc_lock")
loc_lock = !loc_lock
@@ -77,6 +80,10 @@
var/y = params["y"]
var/z = params["z"]
+ if(!name)
+ to_chat(usr, "Name cannot be empty.")
+ return FALSE
+
var/turf/T = locate(x, y, z)
if(!T)
to_chat(usr, "Those coordinates are outside the boundaries of the map.")
diff --git a/tgui/packages/tgui/interfaces/MobSpawner.tsx b/tgui/packages/tgui/interfaces/MobSpawner.tsx
index d54e9d9d5f..87abe39565 100644
--- a/tgui/packages/tgui/interfaces/MobSpawner.tsx
+++ b/tgui/packages/tgui/interfaces/MobSpawner.tsx
@@ -1,6 +1,6 @@
import { BooleanLike } from '../../common/react';
import { useBackend, useLocalState } from '../backend';
-import { Button, Dropdown, Flex, Input, Knob, LabeledList, NumberInput, Section, Tabs, TextArea } from '../components';
+import { Button, Flex, Input, Knob, LabeledList, NumberInput, Section, Tabs, TextArea } from '../components';
import { Window } from '../layouts';
type Data = {
@@ -12,8 +12,6 @@ type Data = {
default_speak_emotes: string[];
- mob_paths: string[];
-
loc_lock: BooleanLike;
loc_x: number;
loc_y: number;
@@ -55,11 +53,23 @@ const GeneralMobSettings = (props, context) => {
const { act, data } = useBackend(context);
const [amount, setAmount] = useLocalState(context, 'amount', 1);
- const [name, setName] = useLocalState(context, 'name', data.default_path_name);
+ const [name, setName] = useLocalState(
+ context,
+ 'name',
+ data.default_path_name
+ );
const [desc, setDesc] = useLocalState(context, 'desc', data.default_desc);
- const [flavorText, setFlavorText] = useLocalState(context, 'flavorText', data.default_flavor_text);
+ const [flavorText, setFlavorText] = useLocalState(
+ context,
+ 'flavorText',
+ data.default_flavor_text
+ );
- const [sizeMultiplier, setSizeMultiplier] = useLocalState(context, 'sizeMultiplier', 100);
+ const [sizeMultiplier, setSizeMultiplier] = useLocalState(
+ context,
+ 'sizeMultiplier',
+ 100
+ );
const [x, setX] = useLocalState(context, 'x', data.initial_x);
const [y, setY] = useLocalState(context, 'y', data.initial_y);
@@ -72,18 +82,26 @@ const GeneralMobSettings = (props, context) => {
@@ -129,7 +157,11 @@ const GeneralMobSettings = (props, context) => {
Description:
-
Flavor Text:
@@ -147,9 +179,9 @@ const GeneralMobSettings = (props, context) => {
onCLick={() =>
act('start_spawn', {
amount: amount,
- name: name,
- desc: desc,
- flavor_text: flavorText,
+ name: name || data.default_path_name,
+ desc: desc || data.default_desc,
+ flavor_text: flavorText || data.default_flavor_text,
size_multiplier: sizeMultiplier * 0.01,
x: data.loc_lock ? data.loc_x : x,
y: data.loc_lock ? data.loc_y : y,