Solving several issues.

This commit is contained in:
Ghommie
2020-06-26 18:40:20 +02:00
parent 07c7432f43
commit 8f6b31c26e
13 changed files with 72 additions and 54 deletions
+1 -1
View File
@@ -18,7 +18,7 @@
var/secondsElectrified = 0
var/shockedby
var/visible = TRUE
var/visible = TRUE // To explain: Wheter the door can block line of sight when closed or not.
var/operating = FALSE
var/glass = FALSE
var/welded = FALSE
+20 -6
View File
@@ -54,6 +54,15 @@
else
icon_state = "[src.base_state]open"
/obj/machinery/door/window/update_atom_colour()
if((color && (color_hex2num(color) < 255)))
visible = TRUE
if(density)
set_opacity(TRUE)
else
visible = FALSE
set_opacity(density && visible)
/obj/machinery/door/window/proc/open_and_close()
open()
if(src.check_access(null))
@@ -143,16 +152,18 @@
do_animate("opening")
playsound(src.loc, 'sound/machines/windowdoor.ogg', 100, 1)
src.icon_state ="[src.base_state]open"
sleep(10)
addtimer(CALLBACK(src, .proc/finish_opening), 10)
return TRUE
/obj/machinery/door/window/proc/finish_opening()
operating = FALSE
density = FALSE
// src.sd_set_opacity(0) //TODO: why is this here? Opaque windoors? ~Carn
if(visible)
set_opacity(FALSE)
air_update_turf(1)
update_freelook_sight()
if(operating == 1) //emag again
operating = FALSE
return 1
/obj/machinery/door/window/close(forced=0)
if (src.operating)
@@ -171,10 +182,13 @@
density = TRUE
air_update_turf(1)
update_freelook_sight()
sleep(10)
addtimer(CALLBACK(.proc/finish_closing), 10)
return TRUE
/obj/machinery/door/window/proc/finish_closing()
if(visible)
set_opacity(TRUE)
operating = FALSE
return 1
/obj/machinery/door/window/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0)
switch(damage_type)
+1 -6
View File
@@ -737,12 +737,7 @@
to_chat(usr, "<span class='warning'>A color that dark on an object like this? Surely not...</span>")
return FALSE
if(istype(target, /obj/structure/window))
var/obj/structure/window/W = target
W.spraycan_paint(paint_color)
else
target.add_atom_colour(paint_color, WASHABLE_COLOUR_PRIORITY)
target.add_atom_colour(paint_color, WASHABLE_COLOUR_PRIORITY)
. = use_charges(user, 2)
var/fraction = min(1, . / reagents.maximum_volume)
@@ -258,6 +258,9 @@ GLOBAL_LIST_INIT(channel_tokens, list(
name = "\proper mini Integrated Subspace Transceiver "
subspace_transmission = FALSE
/obj/item/radio/headset/silicon/pai/ComponentInitialize()
. = ..()
AddElement(/datum/element/empprotection, EMP_PROTECT_WIRES)
/obj/item/radio/headset/silicon/ai
name = "\proper Integrated Subspace Transceiver "
+12 -16
View File
@@ -271,29 +271,27 @@ GLOBAL_LIST_EMPTY(electrochromatic_window_lookup)
air_update_turf(TRUE)
update_nearby_icons()
/obj/structure/window/proc/spraycan_paint(paint_color)
if(color_hex2num(paint_color) < 255)
set_opacity(255)
else
set_opacity(initial(opacity))
add_atom_colour(paint_color, WASHABLE_COLOUR_PRIORITY)
/obj/structure/window/proc/electrochromatic_dim()
if(electrochromatic_status == ELECTROCHROMATIC_DIMMED)
return
electrochromatic_status = ELECTROCHROMATIC_DIMMED
animate(src, color = "#222222", time = 2)
set_opacity(TRUE)
var/current = color
add_atom_colour("#222222", FIXED_COLOUR_PRIORITY)
var/newcolor = color
if(color != current)
color = current
animate(src, color = newcolor, time = 2)
/obj/structure/window/proc/electrochromatic_off()
if(electrochromatic_status == ELECTROCHROMATIC_OFF)
return
electrochromatic_status = ELECTROCHROMATIC_OFF
var/current = color
update_atom_colour()
remove_atom_colour(FIXED_COLOUR_PRIORITY, "#222222")
var/newcolor = color
color = current
animate(src, color = newcolor, time = 2)
if(color != current)
color = current
animate(src, color = newcolor, time = 2)
/obj/structure/window/proc/remove_electrochromatic()
electrochromatic_off()
@@ -348,11 +346,9 @@ GLOBAL_LIST_EMPTY(electrochromatic_window_lookup)
GLOB.electrochromatic_window_lookup[electrochromatic_id] |= src
/obj/structure/window/update_atom_colour()
if((electrochromatic_status != ELECTROCHROMATIC_OFF) && (electrochromatic_status != ELECTROCHROMATIC_DIMMED))
return FALSE
. = ..()
if(color && (color_hex2num(color) < 255))
set_opacity(255)
if(electrochromatic_status == ELECTROCHROMATIC_DIMMED || (color && (color_hex2num(color) < 255)))
set_opacity(TRUE)
else
set_opacity(FALSE)