fix
@@ -1507,13 +1507,13 @@ GLOBAL_DATUM_INIT(dview_mob, /mob/dview, new)
|
||||
. += new /obj/screen/plane_master{plane = PLANE_ADMIN3} //For admin use
|
||||
|
||||
. += new /obj/screen/plane_master{plane = PLANE_MESONS} //Meson-specific things like open ceilings.
|
||||
. += new /obj/screen/plane_master{plane = PLANE_BUILDMODE} //Things that only show up while in build mode
|
||||
// . += new /obj/screen/plane_master{plane = PLANE_BUILDMODE} //Things that only show up while in build mode
|
||||
|
||||
// Real tangible stuff planes
|
||||
. += new /obj/screen/plane_master/main{plane = TURF_PLANE}
|
||||
. += new /obj/screen/plane_master/main{plane = OBJ_PLANE}
|
||||
. += new /obj/screen/plane_master/main{plane = MOB_PLANE}
|
||||
. += new /obj/screen/plane_master/cloaked //Cloaked atoms!
|
||||
// . += new /obj/screen/plane_master/cloaked //Cloaked atoms!
|
||||
|
||||
//VOREStation Add - Random other plane masters
|
||||
. += new /obj/screen/plane_master{plane = PLANE_CH_STATUS_R} //Right-side status icon
|
||||
|
||||
@@ -8,3 +8,12 @@
|
||||
name = T_BOARD("AI core")
|
||||
origin_tech = list(TECH_DATA = 4, TECH_BIO = 2)
|
||||
board_type = "other"
|
||||
|
||||
/obj/item/circuitboard/chem_master
|
||||
name = T_BOARD("ChemMaster 3000")
|
||||
build_path = /obj/machinery/chem_master
|
||||
board_type = new /datum/frame/frame_types/machine
|
||||
origin_tech = list(TECH_DATA = 3, TECH_MAGNET = 2)
|
||||
req_components = list(
|
||||
/obj/item/weapon/stock_parts/matter_bin = 2,
|
||||
/obj/item/weapon/stock_parts/manipulator = 2)
|
||||
|
||||
@@ -535,3 +535,43 @@
|
||||
..()
|
||||
|
||||
*/
|
||||
|
||||
//Pill sprites for UIs
|
||||
/datum/asset/simple/namespaced/chem_master
|
||||
keep_local_name = TRUE
|
||||
|
||||
/datum/asset/simple/namespaced/chem_master/register()
|
||||
for(var/i = 1 to 24)
|
||||
assets["pill[i].png"] = icon('icons/obj/chemical.dmi', "pill[i]")
|
||||
|
||||
for(var/i = 1 to 4)
|
||||
assets["bottle-[i].png"] = icon('icons/obj/chemical.dmi', "bottle-[i]")
|
||||
|
||||
return ..()
|
||||
|
||||
// Nanomaps
|
||||
/datum/asset/simple/nanomaps
|
||||
// It REALLY doesnt matter too much if these arent up to date
|
||||
// They are relatively big
|
||||
assets = list(
|
||||
// VOREStation Edit: We don't need Southern Cross
|
||||
// "southern_cross_nanomap_z1.png" = 'icons/_nanomaps/southern_cross_nanomap_z1.png',
|
||||
// "southern_cross_nanomap_z10.png" = 'icons/_nanomaps/southern_cross_nanomap_z10.png',
|
||||
// "southern_cross_nanomap_z2.png" = 'icons/_nanomaps/southern_cross_nanomap_z2.png',
|
||||
// "southern_cross_nanomap_z3.png" = 'icons/_nanomaps/southern_cross_nanomap_z3.png',
|
||||
// "southern_cross_nanomap_z5.png" = 'icons/_nanomaps/southern_cross_nanomap_z5.png',
|
||||
// "southern_cross_nanomap_z6.png" = 'icons/_nanomaps/southern_cross_nanomap_z6.png',
|
||||
"tether_nanomap_z1.png" = 'icons/_nanomaps/tether_nanomap_z1.png',
|
||||
"tether_nanomap_z2.png" = 'icons/_nanomaps/tether_nanomap_z2.png',
|
||||
"tether_nanomap_z3.png" = 'icons/_nanomaps/tether_nanomap_z3.png',
|
||||
"tether_nanomap_z4.png" = 'icons/_nanomaps/tether_nanomap_z4.png',
|
||||
"tether_nanomap_z5.png" = 'icons/_nanomaps/tether_nanomap_z5.png',
|
||||
"tether_nanomap_z6.png" = 'icons/_nanomaps/tether_nanomap_z6.png',
|
||||
"tether_nanomap_z7.png" = 'icons/_nanomaps/tether_nanomap_z7.png',
|
||||
"tether_nanomap_z8.png" = 'icons/_nanomaps/tether_nanomap_z8.png',
|
||||
"tether_nanomap_z9.png" = 'icons/_nanomaps/tether_nanomap_z9.png',
|
||||
"tether_nanomap_z10.png" = 'icons/_nanomaps/tether_nanomap_z10.png',
|
||||
"tether_nanomap_z13.png" = 'icons/_nanomaps/tether_nanomap_z13.png',
|
||||
"tether_nanomap_z14.png" = 'icons/_nanomaps/tether_nanomap_z14.png',
|
||||
// VOREStation Edit End
|
||||
)
|
||||
|
||||
@@ -82,7 +82,7 @@
|
||||
|
||||
/obj/machinery/chem_master/ui_assets(mob/user)
|
||||
return list(
|
||||
get_asset_datum(/datum/asset/chem_master),
|
||||
get_asset_datum(/datum/asset/simple/namespaced/chem_master),
|
||||
)
|
||||
|
||||
/obj/machinery/chem_master/ui_interact(mob/user, datum/tgui/ui = null)
|
||||
|
||||
@@ -4,3 +4,14 @@
|
||||
diethylamine spawn_reagent = "diethylamine"
|
||||
plantbgone spawn_reagent = "plantbgone"
|
||||
mutagen spawn_reagent = "mutagen"
|
||||
|
||||
//Biochem
|
||||
nutriment spawn_reagent = "nutriment"
|
||||
protein spawn_reagent = "protein"
|
||||
|
||||
//Special Ops
|
||||
biomass spawn_reagent = "biomass"
|
||||
carthatoline spawn_reagent = "carthatoline"
|
||||
corophizine spawn_reagent = "corophizine"
|
||||
myelamine spawn_reagent = "myelamine"
|
||||
osteodaxon spawn_reagent = "osteodaxon"
|
||||
|
||||
@@ -74,15 +74,15 @@
|
||||
|
||||
// Subtype for glasses_state
|
||||
/datum/tgui_module/crew_monitor/glasses
|
||||
/datum/tgui_module/crew_monitor/glasses/tgui_state(mob/user)
|
||||
/datum/tgui_module/crew_monitor/glasses/ui_state(mob/user)
|
||||
return GLOB.tgui_glasses_state
|
||||
|
||||
// Subtype for self_state
|
||||
/datum/tgui_module/crew_monitor/robot
|
||||
/datum/tgui_module/crew_monitor/robot/tgui_state(mob/user)
|
||||
return GLOB.tgui_self_state
|
||||
/datum/tgui_module/crew_monitor/robot/ui_state(mob/user)
|
||||
return GLOB.self_state
|
||||
|
||||
// Subtype for nif_state
|
||||
/datum/tgui_module/crew_monitor/nif
|
||||
/datum/tgui_module/crew_monitor/nif/tgui_state(mob/user)
|
||||
/datum/tgui_module/crew_monitor/nif/ui_state(mob/user)
|
||||
return GLOB.tgui_nif_state
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
GLOBAL_DATUM_INIT(tgui_glasses_state, /datum/tgui_state/glasses_state, new)
|
||||
/datum/tgui_state/glasses_state/can_use_topic(var/src_object, var/mob/user)
|
||||
GLOBAL_DATUM_INIT(tgui_glasses_state, /datum/ui_state/glasses_state, new)
|
||||
/datum/ui_state/glasses_state/can_use_topic(var/src_object, var/mob/user)
|
||||
if(ishuman(user))
|
||||
var/mob/living/carbon/human/H = user
|
||||
if(H.glasses == src_object)
|
||||
@@ -7,8 +7,8 @@ GLOBAL_DATUM_INIT(tgui_glasses_state, /datum/tgui_state/glasses_state, new)
|
||||
|
||||
return UI_CLOSE
|
||||
|
||||
GLOBAL_DATUM_INIT(tgui_nif_state, /datum/tgui_state/nif_state, new)
|
||||
/datum/tgui_state/nif_state/can_use_topic(var/src_object, var/mob/user)
|
||||
GLOBAL_DATUM_INIT(tgui_nif_state, /datum/ui_state/nif_state, new)
|
||||
/datum/ui_state/nif_state/can_use_topic(var/src_object, var/mob/user)
|
||||
if(ishuman(user))
|
||||
var/mob/living/carbon/human/H = user
|
||||
if(H.nif && H.nif.stat == NIF_WORKING && src_object == H.nif)
|
||||
@@ -17,8 +17,8 @@ GLOBAL_DATUM_INIT(tgui_nif_state, /datum/tgui_state/nif_state, new)
|
||||
return UI_CLOSE
|
||||
|
||||
// This is slightly distinct from the module state, as it wants to update if not working
|
||||
GLOBAL_DATUM_INIT(tgui_nif_main_state, /datum/tgui_state/nif_main_state, new)
|
||||
/datum/tgui_state/nif_main_state/can_use_topic(var/src_object, var/mob/user)
|
||||
GLOBAL_DATUM_INIT(tgui_nif_main_state, /datum/ui_state/nif_main_state, new)
|
||||
/datum/ui_state/nif_main_state/can_use_topic(var/src_object, var/mob/user)
|
||||
if(ishuman(user))
|
||||
var/mob/living/carbon/human/H = user
|
||||
if(!H.nif || src_object != H.nif)
|
||||
@@ -31,8 +31,8 @@ GLOBAL_DATUM_INIT(tgui_nif_main_state, /datum/tgui_state/nif_main_state, new)
|
||||
|
||||
return UI_CLOSE
|
||||
|
||||
GLOBAL_DATUM_INIT(tgui_commlink_state, /datum/tgui_state/commlink_state, new)
|
||||
/datum/tgui_state/commlink_state/can_use_topic(var/src_object, var/mob/user)
|
||||
GLOBAL_DATUM_INIT(tgui_commlink_state, /datum/ui_state/commlink_state, new)
|
||||
/datum/ui_state/commlink_state/can_use_topic(var/src_object, var/mob/user)
|
||||
if(ishuman(user))
|
||||
var/mob/living/carbon/human/H = user
|
||||
if(H.nif && H.nif.stat == NIF_WORKING && H.nif.comm == src_object)
|
||||
|
||||
|
Before Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 5.3 KiB |
|
Before Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 23 KiB |
|
Before Width: | Height: | Size: 6.9 KiB |
|
Before Width: | Height: | Size: 10 KiB |
|
Before Width: | Height: | Size: 8.3 KiB |
|
Before Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 3.3 KiB |
|
Before Width: | Height: | Size: 71 KiB |
|
Before Width: | Height: | Size: 153 KiB |
|
Before Width: | Height: | Size: 68 KiB |
|
Before Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 17 KiB |
@@ -369,7 +369,7 @@ rules:
|
||||
# max-depth: error
|
||||
## Enforce a maximum line length
|
||||
max-len: [error, {
|
||||
code: 80,
|
||||
code: 120,
|
||||
## Ignore imports
|
||||
ignorePattern: '^(import\s.+\sfrom\s|.*require\()',
|
||||
ignoreUrls: true,
|
||||
|
||||
@@ -31,6 +31,7 @@
|
||||
"jest-circus": "^26.6.3",
|
||||
"jsdom": "^16.5.3",
|
||||
"mini-css-extract-plugin": "^1.4.1",
|
||||
"prop-types": "^15.7.2",
|
||||
"sass": "^1.32.8",
|
||||
"sass-loader": "^11.0.1",
|
||||
"style-loader": "^2.0.0",
|
||||
|
||||
@@ -125,11 +125,11 @@ const ChemMasterBeaker = (props, context) => {
|
||||
beakerLoaded
|
||||
beakerContents={beakerReagents}
|
||||
buttons={(chemical, i) => (
|
||||
<Box mb={(i < beakerReagents.length - 1) && "2px"}>
|
||||
<Box mb={(i < beakerReagents.length - 1) && "2px"}>
|
||||
<Button
|
||||
content="Analyze"
|
||||
mb="0"
|
||||
onClick={() => modalOpen(context, 'analyze', {
|
||||
content="Analyze"
|
||||
mb="0"
|
||||
onClick={() => modalOpen(context, 'analyze', {
|
||||
idx: i + 1,
|
||||
beaker: 1,
|
||||
})}
|
||||
@@ -146,22 +146,22 @@ const ChemMasterBeaker = (props, context) => {
|
||||
/>)
|
||||
)}
|
||||
<Button
|
||||
content="All"
|
||||
mb="0"
|
||||
onClick={() => act('add', {
|
||||
content="All"
|
||||
mb="0"
|
||||
onClick={() => act('add', {
|
||||
id: chemical.id,
|
||||
amount: chemical.volume,
|
||||
})}
|
||||
/>
|
||||
<Button
|
||||
content="Custom.."
|
||||
mb="0"
|
||||
onClick={() => modalOpen(context, 'addcustom', {
|
||||
content="Custom.."
|
||||
mb="0"
|
||||
onClick={() => modalOpen(context, 'addcustom', {
|
||||
id: chemical.id,
|
||||
})}
|
||||
/>
|
||||
</Box>
|
||||
)}
|
||||
)}
|
||||
/>
|
||||
: (
|
||||
<Box color="label">
|
||||
@@ -197,11 +197,11 @@ const ChemMasterBuffer = (props, context) => {
|
||||
beakerLoaded
|
||||
beakerContents={bufferReagents}
|
||||
buttons={(chemical, i) => (
|
||||
<Box mb={(i < bufferReagents.length - 1) && "2px"}>
|
||||
<Box mb={(i < bufferReagents.length - 1) && "2px"}>
|
||||
<Button
|
||||
content="Analyze"
|
||||
mb="0"
|
||||
onClick={() => modalOpen(context, 'analyze', {
|
||||
content="Analyze"
|
||||
mb="0"
|
||||
onClick={() => modalOpen(context, 'analyze', {
|
||||
idx: i + 1,
|
||||
beaker: 0,
|
||||
})}
|
||||
@@ -218,22 +218,22 @@ const ChemMasterBuffer = (props, context) => {
|
||||
/>)
|
||||
)}
|
||||
<Button
|
||||
content="All"
|
||||
mb="0"
|
||||
onClick={() => act('remove', {
|
||||
content="All"
|
||||
mb="0"
|
||||
onClick={() => act('remove', {
|
||||
id: chemical.id,
|
||||
amount: chemical.volume,
|
||||
})}
|
||||
/>
|
||||
<Button
|
||||
content="Custom.."
|
||||
mb="0"
|
||||
onClick={() => modalOpen(context, 'removecustom', {
|
||||
content="Custom.."
|
||||
mb="0"
|
||||
onClick={() => modalOpen(context, 'removecustom', {
|
||||
id: chemical.id,
|
||||
})}
|
||||
/>
|
||||
</Box>
|
||||
)}
|
||||
)}
|
||||
/>
|
||||
: (
|
||||
<Box color="label">
|
||||
|
||||
@@ -3,10 +3,10 @@ import { round } from 'common/math';
|
||||
import { Fragment } from 'inferno';
|
||||
import { useBackend } from "../backend";
|
||||
import {
|
||||
Box,
|
||||
Button,
|
||||
Flex,
|
||||
Icon,
|
||||
Box,
|
||||
Button,
|
||||
Flex,
|
||||
Icon,
|
||||
LabeledList,
|
||||
ProgressBar,
|
||||
Section } from "../components";
|
||||
@@ -124,7 +124,7 @@ export const EmbeddedController = (props, context) => {
|
||||
|
||||
/**
|
||||
* Used for the upper status display that is used on 90% of these UIs.
|
||||
* @param {StatusDisplayProps} props
|
||||
* @param {StatusDisplayProps} props
|
||||
*/
|
||||
const StatusDisplay = (props, context) => {
|
||||
const {
|
||||
@@ -169,7 +169,7 @@ const StandardControls = (props, context) => {
|
||||
data["external_pressure"]
|
||||
- data["chamber_pressure"]) > 5);
|
||||
}
|
||||
|
||||
|
||||
let internalForceSafe = true;
|
||||
if (data["exterior_status"] && data.exterior_status.state === "open") {
|
||||
internalForceSafe = false;
|
||||
@@ -551,7 +551,7 @@ primaryRoutes["AirlockConsoleDocking"] = AirlockConsoleDocking;
|
||||
*/
|
||||
const DockingConsoleSimple = (props, context) => {
|
||||
const { act, data } = useBackend(context);
|
||||
|
||||
|
||||
let dockHatch = <Box color="bad">ERROR</Box>;
|
||||
|
||||
if (data.exterior_status.state === "open") {
|
||||
@@ -661,8 +661,8 @@ const DoorAccessConsole = (props, context) => {
|
||||
{/* Interior Button */}
|
||||
<Button
|
||||
icon={interiorOpen ? "arrow-left" : "exclamation-triangle"}
|
||||
content={interiorOpen
|
||||
? "Cycle To Exterior"
|
||||
content={interiorOpen
|
||||
? "Cycle To Exterior"
|
||||
: "Lock Exterior Door"}
|
||||
onClick={() => {
|
||||
act(interiorOpen ? "cycle_ext_door" : "force_ext");
|
||||
@@ -737,4 +737,4 @@ const EscapePodBerthConsole = (props, context) => {
|
||||
</Fragment>
|
||||
);
|
||||
};
|
||||
primaryRoutes["EscapePodBerthConsole"] = EscapePodBerthConsole;
|
||||
primaryRoutes["EscapePodBerthConsole"] = EscapePodBerthConsole;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { Box } from '../../components';
|
||||
const PropTypes = require('prop-types');
|
||||
// const PropTypes = require('prop-types');
|
||||
|
||||
const formatUnits = a => a + ' unit' + (a === 1 ? '' : 's');
|
||||
|
||||
@@ -37,17 +37,17 @@ export const BeakerContents = props => {
|
||||
);
|
||||
};
|
||||
|
||||
BeakerContents.propTypes = {
|
||||
/**
|
||||
* Whether there is a loaded beaker or not
|
||||
*/
|
||||
beakerLoaded: PropTypes.bool,
|
||||
/**
|
||||
* The reagents in the beaker
|
||||
*/
|
||||
beakerContents: PropTypes.array,
|
||||
/**
|
||||
* The buttons to display next to each reagent line
|
||||
*/
|
||||
buttons: PropTypes.arrayOf(PropTypes.element),
|
||||
};
|
||||
// BeakerContents.propTypes = {
|
||||
// /**
|
||||
// * Whether there is a loaded beaker or not
|
||||
// */
|
||||
// beakerLoaded: PropTypes.bool,
|
||||
// /**
|
||||
// * The reagents in the beaker
|
||||
// */
|
||||
// beakerContents: PropTypes.array,
|
||||
// /**
|
||||
// * The buttons to display next to each reagent line
|
||||
// */
|
||||
// buttons: PropTypes.arrayOf(PropTypes.element),
|
||||
// };
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
"inferno-vnode-flags": "^7.4.8",
|
||||
"js-yaml": "^4.1.0",
|
||||
"marked": "^2.0.3",
|
||||
"prop-types": "^15.7.2",
|
||||
"tgui-dev-server": "workspace:*",
|
||||
"tgui-polyfill": "workspace:*"
|
||||
}
|
||||
|
||||
@@ -8374,6 +8374,7 @@ resolve@^2.0.0-next.3:
|
||||
jest-circus: ^26.6.3
|
||||
jsdom: ^16.5.3
|
||||
mini-css-extract-plugin: ^1.4.1
|
||||
prop-types: ^15.7.2
|
||||
sass: ^1.32.8
|
||||
sass-loader: ^11.0.1
|
||||
style-loader: ^2.0.0
|
||||
@@ -8397,6 +8398,7 @@ resolve@^2.0.0-next.3:
|
||||
inferno-vnode-flags: ^7.4.8
|
||||
js-yaml: ^4.1.0
|
||||
marked: ^2.0.3
|
||||
prop-types: ^15.7.2
|
||||
tgui-dev-server: "workspace:*"
|
||||
tgui-polyfill: "workspace:*"
|
||||
languageName: unknown
|
||||
|
||||