Porting the BEPIS research machinery. (#12277)

* Initial B.E.P.I.S port.

* All nodes but sticky tape are in. Sweet.

* Mapping the BEPIS :DDD

* ah

* deers.
This commit is contained in:
Ghom
2020-05-24 13:05:15 -07:00
committed by GitHub
parent e9068f05eb
commit ab5d65a454
82 changed files with 1620 additions and 163 deletions
+39 -1
View File
@@ -163,6 +163,9 @@
if(istype(I, /obj/item/storage/bag/tray))
var/obj/item/storage/bag/tray/T = I
if(T.contents.len > 0) // If the tray isn't empty
for(var/x in T.contents)
var/obj/item/item = x
AfterPutItemOnTable(item, user)
SEND_SIGNAL(I, COMSIG_TRY_STORAGE_QUICK_EMPTY, drop_location())
user.visible_message("[user] empties [I] on [src].")
return
@@ -177,10 +180,14 @@
//Clamp it so that the icon never moves more than 16 pixels in either direction (thus leaving the table turf)
I.pixel_x = clamp(text2num(click_params["icon-x"]) - 16, -(world.icon_size/2), world.icon_size/2)
I.pixel_y = clamp(text2num(click_params["icon-y"]) - 16, -(world.icon_size/2), world.icon_size/2)
return 1
AfterPutItemOnTable(I, user)
return TRUE
else
return ..()
/obj/structure/table/proc/AfterPutItemOnTable(obj/item/I, mob/living/user)
return
/obj/structure/table/alt_attack_hand(mob/user)
if(user && Adjacent(user) && !user.incapacitated())
user.changeNext_move(CLICK_CD_MELEE*0.5)
@@ -214,6 +221,37 @@
material_flags = MATERIAL_ADD_PREFIX | MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS | MATERIAL_EFFECTS
buildstack = null //No buildstack, so generate from mat datums
///Table on wheels
/obj/structure/table/rolling
name = "Rolling table"
desc = "A NT brand \"Rolly poly\" rolling table. It can and will move."
anchored = FALSE
smooth = SMOOTH_FALSE
canSmoothWith = list()
icon = 'icons/obj/smooth_structures/rollingtable.dmi'
icon_state = "rollingtable"
var/list/attached_items = list()
/obj/structure/table/rolling/AfterPutItemOnTable(obj/item/I, mob/living/user)
. = ..()
attached_items += I
RegisterSignal(I, COMSIG_MOVABLE_MOVED, .proc/RemoveItemFromTable) //Listen for the pickup event, unregister on pick-up so we aren't moved
/obj/structure/table/rolling/proc/RemoveItemFromTable(datum/source, newloc, dir)
if(newloc != loc) //Did we not move with the table? because that shit's ok
return FALSE
attached_items -= source
UnregisterSignal(source, COMSIG_MOVABLE_MOVED)
/obj/structure/table/rolling/Moved(atom/OldLoc, Dir)
for(var/mob/M in OldLoc.contents)//Kidnap everyone on top
M.forceMove(loc)
for(var/x in attached_items)
var/atom/movable/AM = x
if(!AM.Move(loc))
RemoveItemFromTable(AM, AM.loc)
return TRUE
/*
* Glass tables
*/