Files
Aurora.3/code/modules/cargo/items/hydroponics.dm
T
55f4e12614 Codeside Cargo Refactor (#20030)
**NOTE TO SYSADMINS: See "SQL Details" section below for information on
SQL modifications.**

Moves the data containing cargo items (i.e. the ones you order from ops
and get in the cargo shuttle) from the online database to the codebase.
Everything from suppliers to categories to individual items is now
code-side and editable by developers/contributors.

Refactors cargo items to use `singletons` instead of `datums` for
`cargo_supplier`, `cargo_category`, and `cargo_item`. Multiple-instnace
things like cargo_orders, etc. still use `datums`.

Fixed a bunch of strange discrepancies in categories, suppliers, and
pricing for various cargo items. I did a little bit, but it's exhausting
to go through all of it right now.

Clicking the 'Details' button on the Cargo Order app now actually gives
you details instead of bluescreening. Also added some UI elements to the
Cargo Order app - Cargo Control and Delivery remain untouched.

Overhauled the Cargo Order console TGUI window. It now has tabs on the
left, displays restricted access, supplier information, and boasts
search functionality.

### SQL Details
<details>
<summary>SQL Details [Click to Expand]</summary>

The following SQL tables should be deleted or deprecated from the server
database, as they are no longer in use:

- `ss13_cargo_items`
- `ss13_cargo_categories`
- `ss13_cargo_suppliers`

The included migration file, `V011__codeside_cargo`, creates a new table
`ss13_cargo_item_orderlog` to the DB. This **replaces**
`ss13_cargo_orderlog_items`. Because of this,
`ss13_cargo_orderlog_items` is deprecated and should either be deleted
or locked & preserved for logging purposes.

</details>

## Screenshots


![image](https://github.com/user-attachments/assets/79129923-1fb6-4cee-ac8d-5505a52270a4)

![image](https://github.com/user-attachments/assets/a323be35-8ce6-4ec4-98f7-ee701d0931a3)

![image](https://github.com/user-attachments/assets/5ddb02c5-152f-4715-b2da-20903fa11c93)

![image](https://github.com/user-attachments/assets/420e45b0-6a9f-4420-beb8-a2c8423a5be4)

![image](https://github.com/user-attachments/assets/114f4755-ee51-41e6-8670-07aacc5326ae)

---------

Signed-off-by: naut <55491249+nauticall@users.noreply.github.com>
Co-authored-by: Fluffy <65877598+FluffyGhoster@users.noreply.github.com>
2025-03-04 18:18:00 +00:00

435 lines
9.8 KiB
Plaintext

/singleton/cargo_item/ammoniabottle
category = "hydroponics"
name = "ammonia bottle"
supplier = "getmore"
description = "A small bottle."
price = 90
items = list(
/obj/item/reagent_containers/glass/bottle/ammonia
)
access = 0
container_type = "crate"
groupable = TRUE
spawn_amount = 1
/singleton/cargo_item/apron
category = "hydroponics"
name = "apron"
supplier = "getmore"
description = "A basic blue apron."
price = 25
items = list(
/obj/item/clothing/accessory/apron/blue
)
access = 0
container_type = "crate"
groupable = TRUE
spawn_amount = 1
/singleton/cargo_item/beenet
category = "hydroponics"
name = "bee net"
supplier = "vysoka"
description = "A needed tool to maintain bee imprisonment."
price = 55
items = list(
/obj/item/bee_net
)
access = 0
container_type = "crate"
groupable = TRUE
spawn_amount = 1
/singleton/cargo_item/beesmoker
category = "hydroponics"
name = "bee smoker"
supplier = "vysoka"
description = "For when you need to show those bees whos boss."
price = 120
items = list(
/obj/item/bee_smoker
)
access = 0
container_type = "crate"
groupable = TRUE
spawn_amount = 1
/singleton/cargo_item/beehiveassembly
category = "hydroponics"
name = "beehive assembly"
supplier = "vysoka"
description = "Beehive frame, some assembly required."
price = 75
items = list(
/obj/item/beehive_assembly
)
access = 0
container_type = "crate"
groupable = TRUE
spawn_amount = 2
/singleton/cargo_item/cat
category = "hydroponics"
name = "cat"
supplier = "molinaris"
description = "A domesticated, feline pet. Has a tendency to adopt crewmembers."
price = 300
items = list(
/mob/living/simple_animal/cat
)
access = 0
container_type = "box"
groupable = FALSE
spawn_amount = 1
/singleton/cargo_item/chicken
category = "hydroponics"
name = "chicken"
supplier = "molinaris"
description = "Adorable! They make such a racket though."
price = 150
items = list(
/mob/living/simple_animal/chick
)
access = 0
container_type = "box"
groupable = FALSE
spawn_amount = 1
/singleton/cargo_item/corgi
category = "hydroponics"
name = "corgi"
supplier = "molinaris"
description = "Studies have shown corgis are the most well adapted canines in space, for some reason."
price = 400
items = list(
/obj/structure/largecrate/animal/corgi
)
access = 0
container_type = "crate"
groupable = TRUE
spawn_amount = 1
/singleton/cargo_item/cow
category = "hydroponics"
name = "cow"
supplier = "molinaris"
description = "Known for their milk, just don't tip them over."
price = 500
items = list(
/mob/living/simple_animal/cow
)
access = 0
container_type = "box"
groupable = FALSE
spawn_amount = 1
/singleton/cargo_item/schlorrgoegg
category = "hydroponics"
name = "schlorrgo egg"
supplier = "zharkov"
description = "A large egg that will eventually grow into a Schlorrgo."
price = 700
items = list(
/obj/item/reagent_containers/food/snacks/egg/schlorrgo
)
access = 0
container_type = "freezer"
groupable = TRUE
spawn_amount = 1
/singleton/cargo_item/fatshouter
category = "hydroponics"
name = "fatshouter"
supplier = "zharkov"
description = "A crate containing a fatshouter, an Adhomian animal."
price = 500
items = list(
/obj/structure/largecrate/animal/adhomai/fatshouter
)
access = 0
container_type = "crate"
groupable = TRUE
spawn_amount = 1
/singleton/cargo_item/floradiskbox
category = "hydroponics"
name = "flora disk box"
supplier = "nanotrasen"
description = "A box of flora data disks, apparently."
price = 660
items = list(
/obj/item/storage/box/botanydisk
)
access = 0
container_type = "crate"
groupable = TRUE
spawn_amount = 1
/singleton/cargo_item/goat
category = "hydroponics"
name = "goat"
supplier = "molinaris"
description = "Not known for their pleasant disposition."
price = 400
items = list(
/mob/living/simple_animal/hostile/retaliate/goat
)
access = 0
container_type = "box"
groupable = FALSE
spawn_amount = 1
/singleton/cargo_item/hakhma
category = "hydroponics"
name = "hakhma"
supplier = "molinaris"
description = "An oversized insect breed by Scarab colony ships, known for their milk."
price = 600
items = list(
/mob/living/simple_animal/hakhma
)
access = 0
container_type = "box"
groupable = TRUE
spawn_amount = 1
/singleton/cargo_item/honeyextractor
category = "hydroponics"
name = "honey extractor"
supplier = "vysoka"
description = "Needed equipment to extract sweet liquid gold."
price = 300
items = list(
/obj/machinery/honey_extractor
)
access = 0
container_type = "box"
groupable = FALSE
spawn_amount = 1
/singleton/cargo_item/hydroponicstray
category = "hydroponics"
name = "hydroponics tray"
supplier = "nanotrasen"
description = "A safe space to raise your plants."
price = 45
items = list(
/obj/machinery/portable_atmospherics/hydroponics
)
access = 0
container_type = "crate"
groupable = TRUE
spawn_amount = 1
/singleton/cargo_item/icetunneler
category = "hydroponics"
name = "ice tunneler"
supplier = "zharkov"
description = "A crate containing a ice tunneler."
price = 300
items = list(
/obj/structure/largecrate/animal/adhomai
)
access = 0
container_type = "crate"
groupable = TRUE
spawn_amount = 1
/singleton/cargo_item/leathergloves
category = "hydroponics"
name = "leather gloves"
supplier = "getmore"
description = "These leather work gloves protect against thorns, barbs, prickles, spikes and other harmful objects of floral origin."
price = 9
items = list(
/obj/item/clothing/gloves/botanic_leather
)
access = 0
container_type = "crate"
groupable = TRUE
spawn_amount = 1
/singleton/cargo_item/packetofdionanodes
category = "hydroponics"
name = "packet of diona nodes"
supplier = "nanotrasen"
description = "It has a picture of diona pods on the front."
price = 15
items = list(
/obj/item/seeds/replicapod
)
access = 0
container_type = "crate"
groupable = TRUE
spawn_amount = 1
/singleton/cargo_item/packetofkudzuseeds
category = "hydroponics"
name = "packet of kudzu seeds"
supplier = "vysoka"
description = "It has a picture of kudzu vines on the front."
price = 15
items = list(
/obj/item/seeds/kudzuseed
)
access = 0
container_type = "crate"
groupable = TRUE
spawn_amount = 1
/singleton/cargo_item/packetofstrangeplantnodes
category = "hydroponics"
name = "packet of strange plant nodes"
supplier = "zeng_hu"
description = "It has a picture of strange plants on the front."
price = 15
items = list(
/obj/item/seeds/random
)
access = 0
container_type = "crate"
groupable = TRUE
spawn_amount = 1
/singleton/cargo_item/plantanalyzer
category = "hydroponics"
name = "plant analyzer"
supplier = "getmore"
description = "A hand-held environmental scanner which reports current gas levels."
price = 135
items = list(
/obj/item/device/analyzer/plant_analyzer
)
access = 0
container_type = "crate"
groupable = TRUE
spawn_amount = 1
/singleton/cargo_item/plant_b_gone
category = "hydroponics"
name = "Plant-B-Gone"
supplier = "blam"
description = "Kills those pesky weeds!"
price = 200
items = list(
/obj/item/reagent_containers/spray/plantbgone
)
access = 0
container_type = "crate"
groupable = TRUE
spawn_amount = 1
/singleton/cargo_item/queenbeepack
category = "hydroponics"
name = "queen bee pack"
supplier = "vysoka"
description = "Contains one queen bee, bee kingdom not included."
price = 150
items = list(
/obj/item/bee_pack
)
access = 0
container_type = "crate"
groupable = TRUE
spawn_amount = 1
/singleton/cargo_item/sampleoflibertycapspores
category = "hydroponics"
name = "sample of liberty cap spores"
supplier = "vysoka"
description = "It's labelled as coming from liberty cap mushrooms."
price = 15
items = list(
/obj/item/seeds/libertymycelium
)
access = ACCESS_HYDROPONICS
container_type = "crate"
groupable = TRUE
spawn_amount = 1
/singleton/cargo_item/sampleofreishispores
category = "hydroponics"
name = "sample of reishi spores"
supplier = "vysoka"
description = "It's labelled as coming from reishi."
price = 15
items = list(
/obj/item/seeds/reishimycelium
)
access = ACCESS_HYDROPONICS
container_type = "crate"
groupable = TRUE
spawn_amount = 1
/singleton/cargo_item/wulumunushaseed
category = "hydroponics"
name = "wulumunusha seed"
supplier = "zeng_hu"
description = "A Skrellian plant used in religious ceremonies and drinks."
price = 100
items = list(
/obj/item/seeds/wulumunushaseed
)
access = ACCESS_HYDROPONICS
container_type = "crate"
groupable = TRUE
spawn_amount = 1
/singleton/cargo_item/chainsaw
category = "hydroponics"
name = "chainsaw"
supplier = "nanotrasen"
description = "A portable mechanical saw commonly used to fell trees."
price = 600
items = list(
/obj/item/material/twohanded/chainsaw
)
access = 0
container_type = "crate"
groupable = TRUE
spawn_amount = 1
/singleton/cargo_item/steelhatchet
category = "hydroponics"
name = "steel hatchet"
supplier = "nanotrasen"
description = "A very sharp axe blade upon a short fibremetal handle. It has a long history of chopping things, but now it is used for chopping wood."
price = 36
items = list(
/obj/item/material/hatchet
)
access = 0
container_type = "crate"
groupable = TRUE
spawn_amount = 1
/singleton/cargo_item/steelminihoe
category = "hydroponics"
name = "steel mini hoe"
supplier = "nanotrasen"
description = "It's used for removing weeds or scratching your back."
price = 15
items = list(
/obj/item/material/minihoe
)
access = 0
container_type = "crate"
groupable = TRUE
spawn_amount = 1
/singleton/cargo_item/weedkillergrenade
category = "hydroponics"
name = "weedkiller grenade"
supplier = "blam"
description = "Used for purging large areas of invasive plant species. Contents under pressure. Do not directly inhale contents."
price = 225
items = list(
/obj/item/grenade/chem_grenade/antiweed
)
access = 0
container_type = "crate"
groupable = TRUE
spawn_amount = 1