mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-21 04:57:57 +01:00
Merge branch 'master' of https://github.com/tgstation/tgstation into Ghommie-tg27
This commit is contained in:
@@ -140,7 +140,8 @@
|
||||
blacklisted_turfs = typecacheof(list(
|
||||
/turf/open/space,
|
||||
/turf/open/chasm,
|
||||
/turf/open/lava))
|
||||
/turf/open/lava,
|
||||
/turf/open/transparent/openspace))
|
||||
|
||||
set_base_icon()
|
||||
|
||||
|
||||
@@ -71,8 +71,8 @@
|
||||
add_overlay(nest_overlay)
|
||||
|
||||
/obj/structure/bed/nest/post_unbuckle_mob(mob/living/M)
|
||||
M.pixel_x = M.get_standard_pixel_x_offset(M.body_position == LYING_DOWN)
|
||||
M.pixel_y = M.get_standard_pixel_y_offset(M.body_position == LYING_DOWN)
|
||||
M.pixel_x = M.base_pixel_x + M.get_standard_pixel_x_offset(M.body_position == LYING_DOWN)
|
||||
M.pixel_y = M.base_pixel_y + M.get_standard_pixel_y_offset(M.body_position == LYING_DOWN)
|
||||
M.layer = initial(M.layer)
|
||||
cut_overlay(nest_overlay)
|
||||
|
||||
|
||||
@@ -101,8 +101,8 @@
|
||||
/obj/structure/bed/roller/post_unbuckle_mob(mob/living/M)
|
||||
density = FALSE
|
||||
icon_state = "down"
|
||||
M.pixel_x = M.get_standard_pixel_x_offset(M.body_position == LYING_DOWN)
|
||||
M.pixel_y = M.get_standard_pixel_y_offset(M.body_position == LYING_DOWN)
|
||||
M.pixel_x = M.base_pixel_x + M.get_standard_pixel_x_offset(M.body_position == LYING_DOWN)
|
||||
M.pixel_y = M.base_pixel_y + M.get_standard_pixel_y_offset(M.body_position == LYING_DOWN)
|
||||
|
||||
|
||||
/obj/item/roller
|
||||
|
||||
@@ -46,9 +46,10 @@ LINEN BINS
|
||||
|
||||
/obj/item/bedsheet/attackby(obj/item/I, mob/user, params)
|
||||
if(I.tool_behaviour == TOOL_WIRECUTTER || I.get_sharpness())
|
||||
var/obj/item/stack/sheet/cloth/C = new (get_turf(src), 3)
|
||||
transfer_fingerprints_to(C)
|
||||
C.add_fingerprint(user)
|
||||
if (!(flags_1 & HOLOGRAM_1))
|
||||
var/obj/item/stack/sheet/cloth/shreds = new (get_turf(src), 3)
|
||||
transfer_fingerprints_to(shreds)
|
||||
shreds.add_fingerprint(user)
|
||||
qdel(src)
|
||||
to_chat(user, "<span class='notice'>You tear [src] up.</span>")
|
||||
else
|
||||
|
||||
@@ -280,6 +280,7 @@
|
||||
user.visible_message("<span class='notice'>[user] [welded ? "welds shut" : "unwelded"] \the [src].</span>",
|
||||
"<span class='notice'>You [welded ? "weld" : "unwelded"] \the [src] with \the [W].</span>",
|
||||
"<span class='hear'>You hear welding.</span>")
|
||||
log_game("[key_name(user)] [welded ? "welded":"unwelded"] closet [src] with [W] at [AREACOORD(src)]")
|
||||
update_icon()
|
||||
else if(W.tool_behaviour == TOOL_WRENCH && anchorable)
|
||||
if(isinspace() && !anchored)
|
||||
|
||||
@@ -249,3 +249,11 @@
|
||||
..()
|
||||
for(var/i in 1 to 5)
|
||||
new /obj/item/coin/silver(src)
|
||||
|
||||
/obj/structure/closet/crate/decorations
|
||||
icon_state = "engi_crate"
|
||||
|
||||
/obj/structure/closet/crate/decorations/PopulateContents()
|
||||
. = ..()
|
||||
for(var/i in 1 to 4)
|
||||
new /obj/effect/spawner/lootdrop/decorations_spawner(src)
|
||||
|
||||
@@ -82,7 +82,7 @@
|
||||
var/matrix/m180 = matrix(L.transform)
|
||||
m180.Turn(180)
|
||||
animate(L, transform = m180, time = 3)
|
||||
L.pixel_y = L.get_standard_pixel_y_offset(180)
|
||||
L.pixel_y = L.get_standard_pixel_y_offset(TRUE)
|
||||
else if (has_buckled_mobs())
|
||||
for(var/mob/living/L in buckled_mobs)
|
||||
user_unbuckle_mob(L, user)
|
||||
@@ -124,7 +124,7 @@
|
||||
var/matrix/m180 = matrix(M.transform)
|
||||
m180.Turn(180)
|
||||
animate(M, transform = m180, time = 3)
|
||||
M.pixel_y = M.get_standard_pixel_y_offset(180)
|
||||
M.pixel_y = M.base_pixel_y + M.get_standard_pixel_y_offset(TRUE)
|
||||
M.adjustBruteLoss(30)
|
||||
src.visible_message(text("<span class='danger'>[M] falls free of [src]!</span>"))
|
||||
unbuckle_mob(M,force=1)
|
||||
|
||||
@@ -35,8 +35,8 @@
|
||||
if(istype(I, /obj/item/gun_control))
|
||||
qdel(I)
|
||||
if(istype(buckled_mob))
|
||||
buckled_mob.pixel_x = 0
|
||||
buckled_mob.pixel_y = 0
|
||||
buckled_mob.pixel_x = buckled_mob.base_pixel_x
|
||||
buckled_mob.pixel_y = buckled_mob.base_pixel_y
|
||||
if(buckled_mob.client)
|
||||
buckled_mob.client.view_size.resetToDefault()
|
||||
anchored = FALSE
|
||||
|
||||
@@ -277,7 +277,7 @@
|
||||
|
||||
/obj/structure/statue/elder_atmosian
|
||||
name = "Elder Atmosian"
|
||||
desc = "A statue of an Elder Atmosian, capable of bending the laws of thermodynamics to their will"
|
||||
desc = "A statue of an Elder Atmosian, capable of bending the laws of thermodynamics to their will."
|
||||
icon_state = "eng"
|
||||
custom_materials = list(/datum/material/metalhydrogen = MINERAL_MATERIAL_AMOUNT*10)
|
||||
max_integrity = 1000
|
||||
@@ -286,7 +286,7 @@
|
||||
|
||||
/obj/item/chisel
|
||||
name = "chisel"
|
||||
desc = "breaking and making art since 4000 BC. This one uses advanced technology to allow creation of lifelike moving statues."
|
||||
desc = "Breaking and making art since 4000 BC. This one uses advanced technology to allow the creation of lifelike moving statues."
|
||||
icon = 'icons/obj/statue.dmi'
|
||||
icon_state = "chisel"
|
||||
inhand_icon_state = "screwdriver_nuke"
|
||||
|
||||
@@ -21,36 +21,48 @@
|
||||
var/framestack = /obj/item/stack/rods
|
||||
var/framestackamount = 2
|
||||
|
||||
/obj/structure/table_frame/attackby(obj/item/I, mob/user, params)
|
||||
if(I.tool_behaviour == TOOL_WRENCH)
|
||||
to_chat(user, "<span class='notice'>You start disassembling [src]...</span>")
|
||||
I.play_tool_sound(src)
|
||||
if(I.use_tool(src, user, 30))
|
||||
playsound(src.loc, 'sound/items/deconstruct.ogg', 50, TRUE)
|
||||
deconstruct(TRUE)
|
||||
return
|
||||
|
||||
var/obj/item/stack/material = I
|
||||
if (istype(material))
|
||||
if(material?.tableVariant)
|
||||
/obj/structure/table_frame/wrench_act(mob/living/user, obj/item/I)
|
||||
to_chat(user, "<span class='notice'>You start disassembling [src]...</span>")
|
||||
I.play_tool_sound(src)
|
||||
if(!I.use_tool(src, user, 3 SECONDS))
|
||||
return TRUE
|
||||
playsound(loc, 'sound/items/deconstruct.ogg', 50, TRUE)
|
||||
deconstruct(TRUE)
|
||||
return TRUE
|
||||
|
||||
|
||||
/obj/structure/table_frame/attackby(obj/item/I, mob/user, params)
|
||||
if(isstack(I))
|
||||
var/obj/item/stack/material = I
|
||||
if(material.tableVariant)
|
||||
if(material.get_amount() < 1)
|
||||
to_chat(user, "<span class='warning'>You need one [material.name] sheet to do this!</span>")
|
||||
return
|
||||
if(locate(/obj/structure/table) in loc)
|
||||
to_chat(user, "<span class='warning'>There's already a table built here!</span>")
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You start adding [material] to [src]...</span>")
|
||||
if(do_after(user, 20, target = src) && material.use(1))
|
||||
make_new_table(material.tableVariant)
|
||||
if(!do_after(user, 2 SECONDS, target = src) || !material.use(1) || (locate(/obj/structure/table) in loc))
|
||||
return
|
||||
make_new_table(material.tableVariant)
|
||||
else if(istype(material, /obj/item/stack/sheet))
|
||||
if(material.get_amount() < 1)
|
||||
to_chat(user, "<span class='warning'>You need one sheet to do this!</span>")
|
||||
return
|
||||
if(locate(/obj/structure/table) in loc)
|
||||
to_chat(user, "<span class='warning'>There's already a table built here!</span>")
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You start adding [material] to [src]...</span>")
|
||||
if(do_after(user, 20, target = src) && material.use(1))
|
||||
var/list/material_list = list()
|
||||
if(material.material_type)
|
||||
material_list[material.material_type] = MINERAL_MATERIAL_AMOUNT
|
||||
make_new_table(/obj/structure/table/greyscale, material_list)
|
||||
else
|
||||
return ..()
|
||||
if(!do_after(user, 2 SECONDS, target = src) || !material.use(1) || (locate(/obj/structure/table) in loc))
|
||||
return
|
||||
var/list/material_list = list()
|
||||
if(material.material_type)
|
||||
material_list[material.material_type] = MINERAL_MATERIAL_AMOUNT
|
||||
make_new_table(/obj/structure/table/greyscale, material_list)
|
||||
return
|
||||
return ..()
|
||||
|
||||
|
||||
/obj/structure/table_frame/proc/make_new_table(table_type, custom_materials) //makes sure the new table made retains what we had as a frame
|
||||
var/obj/structure/table/T = new table_type(loc)
|
||||
|
||||
Reference in New Issue
Block a user