6449b65d30
Makes needed improvements to proposed fireplaces - Fireplaces now use world.timer - Fireplaces no longer prompt input() for inserting logs, it just takes as many logs as possible - Paper and paper bins can be thrown on the fire, thirty paper is worth one log of burn time. - One log gives 15 seconds of burn time, the fireplace can hold up to 5 minutes of fuel. - Ignitable items now use a /obj level proc to generate their messages, currently using this are cigarettes, candles, fireplaces - The fireplace can be put out with an extinguisher - Cardboard cutouts are now flammable - The fireplace is only "warm and cozy" when lit - Paperbins qdel their stored papers when destroyed (probably did that already, but no harm in making sure) - Also removed some returns hanging around * Added new proc for lighting stuff - Adds ignition_effect(atom/A, mob/user) to obj/item, which is called when you're attempting to light things with that object. By default it does nothing and prevents ignition, but if the object is hot, it returns a message. May do other things for different stuff. - Eswords now ignite flammable gasses in their area. * Fireplace is no longer on fire when not on fire
135 lines
3.1 KiB
Plaintext
135 lines
3.1 KiB
Plaintext
/*Cabin areas*/
|
|
/area/awaymission/snowforest
|
|
name = "Snow Forest"
|
|
icon_state = "away"
|
|
requires_power = 0
|
|
luminosity = 1
|
|
lighting_use_dynamic = DYNAMIC_LIGHTING_ENABLED
|
|
|
|
/area/awaymission/cabin
|
|
name = "Cabin"
|
|
icon_state = "away2"
|
|
requires_power = 1
|
|
luminosity = 0
|
|
lighting_use_dynamic = DYNAMIC_LIGHTING_ENABLED
|
|
|
|
/area/awaymission/snowforest/lumbermill
|
|
name = "Lumbermill"
|
|
icon_state = "away3"
|
|
|
|
/obj/structure/firepit
|
|
name = "firepit"
|
|
desc = "warm and toasty"
|
|
icon = 'icons/obj/fireplace.dmi'
|
|
icon_state = "firepit-active"
|
|
density = 0
|
|
var/active = 1
|
|
|
|
/obj/structure/firepit/initialize()
|
|
..()
|
|
toggleFirepit()
|
|
|
|
/obj/structure/firepit/attack_hand(mob/living/user)
|
|
if(active)
|
|
active = 0
|
|
toggleFirepit()
|
|
else
|
|
..()
|
|
|
|
|
|
/obj/structure/firepit/attackby(obj/item/W,mob/living/user,params)
|
|
if(!active)
|
|
var/msg = W.ignition_effect(src, user)
|
|
if(msg)
|
|
active = TRUE
|
|
visible_message(msg)
|
|
toggleFirepit()
|
|
else
|
|
return ..()
|
|
else
|
|
W.fire_act()
|
|
|
|
/obj/structure/firepit/proc/toggleFirepit()
|
|
if(active)
|
|
SetLuminosity(8)
|
|
icon_state = "firepit-active"
|
|
else
|
|
SetLuminosity(0)
|
|
icon_state = "firepit"
|
|
|
|
/obj/structure/firepit/extinguish()
|
|
if(active)
|
|
active = FALSE
|
|
toggleFirepit()
|
|
|
|
/obj/structure/firepit/fire_act()
|
|
if(!active)
|
|
active = TRUE
|
|
toggleFirepit()
|
|
|
|
|
|
|
|
//other Cabin Stuff//
|
|
|
|
/obj/machinery/recycler/lumbermill
|
|
name = "lumbermill saw"
|
|
desc = "Faster then the cartoons!"
|
|
emagged = 2 //Always gibs people
|
|
item_recycle_sound = 'sound/weapons/chainsawhit.ogg'
|
|
|
|
/obj/machinery/recycler/lumbermill/recycle_item(obj/item/weapon/grown/log/L)
|
|
if(!istype(L))
|
|
return
|
|
else
|
|
var/potency = L.seed.potency
|
|
..()
|
|
new L.plank_type(src.loc, 1 + round(potency / 25))
|
|
|
|
/mob/living/simple_animal/chicken/rabbit/normal
|
|
icon_state = "b_rabbit"
|
|
icon_living = "b_rabbit"
|
|
icon_dead = "b_rabbit_dead"
|
|
icon_prefix = "b_rabbit"
|
|
minbodytemp = 0
|
|
eggsleft = 0
|
|
egg_type = null
|
|
speak = list()
|
|
|
|
/*Cabin's forest*/
|
|
/datum/mapGenerator/snowy
|
|
modules = list(/datum/mapGeneratorModule/snow/pineTrees, \
|
|
/datum/mapGeneratorModule/snow/deadTrees, \
|
|
/datum/mapGeneratorModule/snow/randBushes, \
|
|
/datum/mapGeneratorModule/snow/randIceRocks, \
|
|
/datum/mapGeneratorModule/snow/bunnies)
|
|
|
|
/datum/mapGeneratorModule/snow/checkPlaceAtom(turf/T)
|
|
if(istype(T,/turf/open/floor/plating/asteroid/snow))
|
|
return ..(T)
|
|
return 0
|
|
|
|
/datum/mapGeneratorModule/snow/pineTrees
|
|
spawnableAtoms = list(/obj/structure/flora/tree/pine = 30)
|
|
|
|
/datum/mapGeneratorModule/snow/deadTrees
|
|
spawnableAtoms = list(/obj/structure/flora/tree/dead = 10)
|
|
|
|
/datum/mapGeneratorModule/snow/randBushes
|
|
spawnableAtoms = list()
|
|
|
|
/datum/mapGeneratorModule/snow/randBushes/New()
|
|
..()
|
|
spawnableAtoms = typesof(/obj/structure/flora/ausbushes)
|
|
for(var/i in spawnableAtoms)
|
|
spawnableAtoms[i] = 1
|
|
|
|
/datum/mapGeneratorModule/snow/bunnies
|
|
//spawnableAtoms = list(/mob/living/simple_animal/chicken/rabbit/normal = 0.1)
|
|
spawnableAtoms = list(/mob/living/simple_animal/chicken/rabbit = 0.5)
|
|
|
|
/datum/mapGeneratorModule/snow/randIceRocks
|
|
spawnableAtoms = list(/obj/structure/flora/rock/icy = 5, /obj/structure/flora/rock/pile/icy = 5)
|
|
|
|
/obj/effect/landmark/mapGenerator/snowy
|
|
mapGeneratorType = /datum/mapGenerator/snowy
|