Files
Aurora.3/code/modules/hydroponics/seed_packets.dm
Lohikar f6dc33a465 Newmap - SMC, Openturf, Arrivals Controller, and Mine Turf Improvements (#1958)
* Replace SSingulo with SScalamity; processing cleanup
- SScalamity now handles blobs as well as singularity-types.
- Processing subtypes have been simplified to not require a stop_processing definition.

* this is probably important

* Remove cascade disabling SSgarbage

* Fixed a bug where dust() did not qdel the target mob

* Misc fixes

* Fix decals surviving break-to-plating

* Subsystem flag tweaks

* Apparently subsystems are new'd before config is.

* Fix paper icons

* Speculative fix for insane lag

* Better machinery stat

* Make organs not use SSoverlay

* Misc bugfixes & tweaks

* Nightmode fixes

* Changelog for SMC

* Port /tg/'s improved MC crash handling

* Add some more SS Recover() procs

* supply_controller -> SScargo

* More New() -> Initialize()

* pAI and robot construction overlays

* Fix cargo unit tests

* Merge the DMM Suite's atom/New() into atoms_init

* Lighting pre-baking

* Lighting initialization logging

* Fix some bad SS init orders

* Fix SSlighting logging; rename Processes to MC

* Speculative fix for insane GC lag

* Prebaked openturf/icon_smooth & fix lighting prebake

* SS init status; SSatoms LATEQDEL

* Fix bug with MC init stat panel

* Fix parallax

* Misc

* Ignore SS_NO_DISPLAY during init

* apparently this is important

* REEEEEE

* Image GC fixes; broadcaster radio-new sanity

* RCON Cleanup

* Move pAI recruiter into subsystem

* Move global solars list into sun subsystem

* Make chickens not use a global

* Demote SSdisposals to SS_BACKGROUND; garbage-debug cleanup

* Speed up space init a little

* Fix bad timer flags on floor drying

* Subsystem panic-restart verb for mins

* Explosion speedup

* Minor subsystem & MC logging tweaks

* SSopenturf improvements

* Make pipenet actually initialize (whoops)

* Minor tweaks

* Implement lighting rounding

* comments are hard okay

* Minor lattice tweaks

* Fix some timer issues & better closet init

* Timer sanity

* Request console tweaks + Storage init sanity

* Minor SSmachiner RCON improvements

* Further reduce world-start timer count

* Standardize subsystem logging

* Garbage hard delete profiling from /tg/

* Timer hang detection & recovery

* Log machines that sleep in process() and fuck up SSmachinery

* Fix an issue with external airlocks sleeping in process()

* Failsafe logging

* Minor tweaks

* Revert "Request console tweaks + Storage init sanity"

This reverts commit 98d3579e35.

* Re-implement RC changes

* Fix SQL FT saving

* Fix SSmachinery sleep in disposals

* Minor SS tweaks

* Paper fixes

* Blood drying fixes

* Merge gameticker and SSticker

* Minor global list init cleanup

* Lagcheck biogenerator & bags

* Tweak SScargo init order; RIG Initialize()

* Caching tweaks

* Remove rogue comma

* Initialize fixes

* Lighting destroy cleanup

* Fix emagging airlocks

* Initial SSicon implementation

* Tweaks & Fixes

* Fire + Air alarm queued icon updates

* Overlays + Queued icon cleanup

* Runtime & background fixes

* Kill some meaningless set statements

* Kill some image qdels

* Bump up lighting rounding val

* Fix adv. scanner destroy runtimes

* Remove unneeded icon update limiting

* Move icon smoothing into helpers

* Show a warning if DM 510 compiles without memory leak hack enabled

* Re-organize subsystems & MC defines a little

* Airlock SFX

* Log of Changes

* Make SSicon_update disable itself when not doing anything

* Fix respawn verb runtime when used early in server-init

* Add more information to MC's stat_entry()

* Replace direct refernces to gcDestroyed with QDEL* macros

* plant_controller -> SSplants

* More plant tweaks

* Add more humor to changelog

* Move parallax globals into SSparallax

* Lighting responsiveness tweaks

* Fix parallax init order & better MC init panel stat

* Make mobs GC

* More overlays + Remove intercom spawn()

* SSfast_process; make pinpointers not use spawn-recursion to process
Also made the SM Cascade beach process with SSprocessing instead of a spawn loop.

* Update changelog

* Mob GC tweaks

* Del() cleanup

* Fix insomniac ZAS connection edges

* Minor pAI cleanup

* Convert more things to SSoverlay; fix duplicated overlay in field gens

* SM Bluespace turf tweaks

* Update SSgarbage debug globals list

* Human-type qdel tweaks

* Subsystem suspension; stat_entry improvements

* SQL Statistics cleanup

* Fix runtimes with ambrosia

* More disable() -> suspend(); fix nightmode again

* Human qdel fix; minor tweaks

* Update turbolift to work with StonedMC

* Make lifts use timers instead of a subsystem

* Make SSassets start earlier

* Convert the radio controller into a subsystem

* Fix some missing CHECK_TICKs in asteroid generation

* MC stat tweaks; make shouldnt_see a typecache

* Kill some redundant debug-controller entries

* radio_controller -> SSradio

* Better SSgarbage hard-del logging from /tg/ upstream

* Logging tweaks + GELF

* Misc client caching improvements

* Slime SSoverlay

* Oven icon fixes

* Implant fixes
- Death implants will no longer spam Common on death of user.
- Death implants should handle a deleted user better.

* Holder tweaks + Welding tool Initialize()

* Fix some bad subsystem logging

* Fix suit cooling units spawning without cells

* Starlight tweaks

* Gibber infinite gib fix

* More SSoverlay stuff

* Make crates use CUT_OVERLAY_IN

* Make SSarrivals suspend instead of disable

* Make openturf use split/phased tick checks

* Speculative fix for unwet timer runtimes

* Blood overlay tweaks/fixes

* Update crusher to play nice with SMC + SSoverlay

* Openturf improvements and fixes

* Minor turbolift tweaks

* Lighting performance improvements + ChangeTurf tweaks

* this is probably important

* Fix wall weld noises on changeturf

* More ChangeTurf tweaks

* Explosion tweaks

* Pre-game lobby tweaks

* Openturf tweaks

* Prevent admins from starting the game before init finishes

* Fix Travis

* Kill an unused var

* Fix ChangeTurf runtimes on openturfs

* Fixes

* Browser datum fixes, asset caching

* Update changelog

* Changelog

* Lobby tweaks

* Ticker tweaks; kill ticker var

* Further lobby tweaks

* Cascade tweaks

* air_master -> SSair

* Reduce overhead from radio autosay

* alarm_manager -> SSalarm

* bomb_processor -> SSexplosives

* corp_regs -> SSlaw

* ZAS overlay fixes

* Small wall icon optimization

* Fix effects master

* Assembly tweaks

* Megavend fixes

* Shuttle fixes

* Camera alert performance improvements

* Fix some world.log spam from lighting overlays

* Fix some Initialize() procs

* Openspace responsiveness tweaks

* Make HE pipes animate through openturfs

* Kill a spawn
2017-05-02 14:40:40 -04:00

284 lines
5.8 KiB
Plaintext

var/global/list/plant_seed_sprites = list()
//Seed packet object/procs.
/obj/item/seeds
name = "packet of seeds"
icon = 'icons/obj/seeds.dmi'
icon_state = "blank"
w_class = 2.0
var/seed_type
var/datum/seed/seed
var/modified = 0
/obj/item/seeds/Initialize()
update_seed()
. = ..()
//Grabs the appropriate seed datum from the global list.
/obj/item/seeds/proc/update_seed()
if(!seed && seed_type && !isnull(SSplants.seeds) && SSplants.seeds[seed_type])
seed = SSplants.seeds[seed_type]
update_appearance()
//Updates strings and icon appropriately based on seed datum.
/obj/item/seeds/proc/update_appearance()
if(!seed) return
// Update icon.
cut_overlays()
var/is_seeds = ((seed.seed_noun in list("seeds","pits","nodes")) ? 1 : 0)
var/image/seed_mask
var/seed_base_key = "base-[is_seeds ? seed.get_trait(TRAIT_PLANT_COLOUR) : "spores"]"
if(plant_seed_sprites[seed_base_key])
seed_mask = plant_seed_sprites[seed_base_key]
else
seed_mask = image('icons/obj/seeds.dmi',"[is_seeds ? "seed" : "spore"]-mask")
if(is_seeds) // Spore glass bits aren't coloured.
seed_mask.color = seed.get_trait(TRAIT_PLANT_COLOUR)
plant_seed_sprites[seed_base_key] = seed_mask
var/image/seed_overlay
var/seed_overlay_key = "[seed.get_trait(TRAIT_PRODUCT_ICON)]-[seed.get_trait(TRAIT_PRODUCT_COLOUR)]"
if(plant_seed_sprites[seed_overlay_key])
seed_overlay = plant_seed_sprites[seed_overlay_key]
else
seed_overlay = image('icons/obj/seeds.dmi',"[seed.get_trait(TRAIT_PRODUCT_ICON)]")
seed_overlay.color = seed.get_trait(TRAIT_PRODUCT_COLOUR)
plant_seed_sprites[seed_overlay_key] = seed_overlay
add_overlay(seed_mask)
add_overlay(seed_overlay)
if(is_seeds)
src.name = "packet of [seed.seed_name] [seed.seed_noun]"
src.desc = "It has a picture of [seed.display_name] on the front."
else
src.name = "sample of [seed.seed_name] [seed.seed_noun]"
src.desc = "It's labelled as coming from [seed.display_name]."
/obj/item/seeds/examine(mob/user)
..(user)
if(seed && !seed.roundstart)
user << "It's tagged as variety #[seed.uid]."
/obj/item/seeds/cutting
name = "cuttings"
desc = "Some plant cuttings."
/obj/item/seeds/cutting/update_appearance()
..()
src.name = "packet of [seed.seed_name] cuttings"
/obj/item/seeds/random
seed_type = null
/obj/item/seeds/random/Initialize()
seed = SSplants.create_random_seed()
seed_type = seed.name
. = ..()
/obj/item/seeds/replicapod
seed_type = "diona"
/obj/item/seeds/chiliseed
seed_type = "chili"
/obj/item/seeds/plastiseed
seed_type = "plastic"
/obj/item/seeds/grapeseed
seed_type = "grapes"
/obj/item/seeds/greengrapeseed
seed_type = "greengrapes"
/obj/item/seeds/peanutseed
seed_type = "peanut"
/obj/item/seeds/cabbageseed
seed_type = "cabbage"
/obj/item/seeds/shandseed
seed_type = "shand"
/obj/item/seeds/mtearseed
seed_type = "mtear"
/obj/item/seeds/berryseed
seed_type = "berries"
/obj/item/seeds/glowberryseed
seed_type = "glowberries"
/obj/item/seeds/bananaseed
seed_type = "banana"
/obj/item/seeds/eggplantseed
seed_type = "eggplant"
/obj/item/seeds/bloodtomatoseed
seed_type = "bloodtomato"
/obj/item/seeds/tomatoseed
seed_type = "tomato"
/obj/item/seeds/killertomatoseed
seed_type = "killertomato"
/obj/item/seeds/bluetomatoseed
seed_type = "bluetomato"
/obj/item/seeds/bluespacetomatoseed
seed_type = "bluespacetomato"
/obj/item/seeds/cornseed
seed_type = "corn"
/obj/item/seeds/poppyseed
seed_type = "poppies"
/obj/item/seeds/potatoseed
seed_type = "potato"
/obj/item/seeds/icepepperseed
seed_type = "icechili"
/obj/item/seeds/soyaseed
seed_type = "soybean"
/obj/item/seeds/wheatseed
seed_type = "wheat"
/obj/item/seeds/riceseed
seed_type = "rice"
/obj/item/seeds/carrotseed
seed_type = "carrot"
/obj/item/seeds/reishimycelium
seed_type = "reishi"
/obj/item/seeds/amanitamycelium
seed_type = "amanita"
/obj/item/seeds/angelmycelium
seed_type = "destroyingangel"
/obj/item/seeds/libertymycelium
seed_type = "libertycap"
/obj/item/seeds/chantermycelium
seed_type = "mushrooms"
/obj/item/seeds/towermycelium
seed_type = "towercap"
/obj/item/seeds/glowshroom
seed_type = "glowshroom"
/obj/item/seeds/plumpmycelium
seed_type = "plumphelmet"
/obj/item/seeds/walkingmushroommycelium
seed_type = "walkingmushroom"
/obj/item/seeds/nettleseed
seed_type = "nettle"
/obj/item/seeds/deathnettleseed
seed_type = "deathnettle"
/obj/item/seeds/weeds
seed_type = "weeds"
/obj/item/seeds/harebell
seed_type = "harebells"
/obj/item/seeds/sunflowerseed
seed_type = "sunflowers"
/obj/item/seeds/brownmold
seed_type = "mold"
/obj/item/seeds/appleseed
seed_type = "apple"
/obj/item/seeds/poisonedappleseed
seed_type = "poisonapple"
/obj/item/seeds/goldappleseed
seed_type = "goldapple"
/obj/item/seeds/ambrosiavulgarisseed
seed_type = "ambrosia"
/obj/item/seeds/ambrosiadeusseed
seed_type = "ambrosiadeus"
/obj/item/seeds/whitebeetseed
seed_type = "whitebeet"
/obj/item/seeds/sugarcaneseed
seed_type = "sugarcane"
/obj/item/seeds/watermelonseed
seed_type = "watermelon"
/obj/item/seeds/pumpkinseed
seed_type = "pumpkin"
/obj/item/seeds/limeseed
seed_type = "lime"
/obj/item/seeds/lemonseed
seed_type = "lemon"
/obj/item/seeds/orangeseed
seed_type = "orange"
/obj/item/seeds/poisonberryseed
seed_type = "poisonberries"
/obj/item/seeds/deathberryseed
seed_type = "deathberries"
/obj/item/seeds/grassseed
seed_type = "grass"
/obj/item/seeds/cocoapodseed
seed_type = "cocoa"
/obj/item/seeds/cherryseed
seed_type = "cherry"
/obj/item/seeds/tobaccoseed
seed_type = "tobacco"
/obj/item/seeds/kudzuseed
seed_type = "kudzu"
/obj/item/seeds/jurlmah
seed_type = "jurlmah"
/obj/item/seeds/amauri
seed_type = "amauri"
/obj/item/seeds/gelthi
seed_type = "gelthi"
/obj/item/seeds/vale
seed_type = "vale"
/obj/item/seeds/surik
seed_type = "surik"
/obj/item/seeds/telriis
seed_type = "telriis"
/obj/item/seeds/thaadra
seed_type = "thaadra"
/obj/item/seeds/koisspore
seed_type = "koisspore"