Files
MrMelbertandRoxy b5a53845d9 Decal Painter refactor + merge with tile sprayer + more decals to paint (#91915)
1. Decal painter has been refactored. Decals to paint are now datums.

2. Tile sprayer has been deleted, and merged with the decal painter.

3. A bunch of map decals previously un-paintable are now paintable.

4. Some preset map colors are now available for selection

Including:

- All sidings (Colored, Plating, Wood)
- Missing tile decals (Full tile, checkered tile)
   - And the missing tile decal colors (Dark colors)
- Missing warning decals (Loading area)

![image](https://github.com/user-attachments/assets/dc67f913-1e3e-42a4-8bec-1cf65381b5fb)

1. Makes it drastically easier to add more decals in the future.

2. The split always felt needless to me. I always printed one, ran to my
construction site, opened up the UI - only to realize I printed the
wrong one.

3. Allows for much greater potential while building

4. Makes it easier to match mapped in decals

(This code is commissioned, but I also wanted it, soooo)

🆑 Melbert
refactor: Refactored the decal painter, report any missing decals or
ones that come out weird.
del: Tile sprayer is dead. Its functionality has been merged with the
decal painter.
qol: A bunch of decals have been added to the decal painter. Style to
your heart's content.
/🆑
2025-07-19 20:29:22 -04:00

241 lines
8.9 KiB
Plaintext

/datum/design/solar
name = "Solar Panel Frame"
id = "solar_panel"
build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE
materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT*1.75, /datum/material/glass =HALF_SHEET_MATERIAL_AMOUNT)
build_path = /obj/item/solar_assembly
category = list(
RND_CATEGORY_INITIAL,
RND_CATEGORY_CONSTRUCTION + RND_SUBCATEGORY_CONSTRUCTION_MOUNTS,
)
departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING
/datum/design/tracker_electronics
name = "Solar Tracking Electronics"
id = "solar_tracker"
build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE
materials = list(/datum/material/iron =SMALL_MATERIAL_AMOUNT, /datum/material/glass =SMALL_MATERIAL_AMOUNT*5)
build_path = /obj/item/electronics/tracker
category = list(
RND_CATEGORY_INITIAL,
RND_CATEGORY_CONSTRUCTION + RND_SUBCATEGORY_CONSTRUCTION_ELECTRONICS,
)
departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING
/datum/design/control
name = "Blast Door Controller"
id = "blast"
build_type = PROTOLATHE | AWAY_LATHE | AUTOLATHE
materials = list(/datum/material/iron =SMALL_MATERIAL_AMOUNT, /datum/material/glass =SMALL_MATERIAL_AMOUNT*0.5)
build_path = /obj/item/assembly/control
category = list(
RND_CATEGORY_INITIAL,
RND_CATEGORY_CONSTRUCTION + RND_SUBCATEGORY_CONSTRUCTION_ELECTRONICS,
)
departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING
/datum/design/ignition_control
name = "Ignition Switch Controller"
id = "ignition"
build_type = PROTOLATHE | AWAY_LATHE | AUTOLATHE
materials = list(/datum/material/iron = SMALL_MATERIAL_AMOUNT, /datum/material/glass = SMALL_MATERIAL_AMOUNT * 0.5)
build_path = /obj/item/assembly/control/igniter
category = list(
RND_CATEGORY_INITIAL,
RND_CATEGORY_CONSTRUCTION + RND_SUBCATEGORY_CONSTRUCTION_ELECTRONICS,
)
departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING
/datum/design/custom_vendor_refill
name = "Custom Vendor Refill"
id = "custom_vendor_refill"
build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE
materials = list(/datum/material/iron =SHEET_MATERIAL_AMOUNT * 2.5, /datum/material/glass =SHEET_MATERIAL_AMOUNT)
build_path = /obj/item/vending_refill/custom
category = list(
RND_CATEGORY_INITIAL,
RND_CATEGORY_STOCK_PARTS + RND_SUBCATEGORY_STOCK_PARTS_MISC,
)
departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING
/datum/design/miniature_power_cell
name = "Light Fixture Battery"
id = "miniature_power_cell"
build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE
materials = list(/datum/material/glass =SMALL_MATERIAL_AMOUNT*0.2)
build_path = /obj/item/stock_parts/power_store/cell/emergency_light
category = list(
RND_CATEGORY_INITIAL,
RND_CATEGORY_CONSTRUCTION + RND_SUBCATEGORY_CONSTRUCTION_LIGHTING,
)
departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING
/datum/design/geiger
name = "Geiger Counter"
id = "geigercounter"
build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE
materials = list(/datum/material/iron = SMALL_MATERIAL_AMOUNT*1.5, /datum/material/glass = SMALL_MATERIAL_AMOUNT*1.5)
build_path = /obj/item/geiger_counter
category = list(
RND_CATEGORY_INITIAL,
RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_ENGINEERING,
)
departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING
/datum/design/large_welding_tool
name = "Industrial Welding Tool"
id = "large_welding_tool"
build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE
materials = list(/datum/material/iron = SMALL_MATERIAL_AMOUNT*0.7, /datum/material/glass = SMALL_MATERIAL_AMOUNT*0.6)
build_path = /obj/item/weldingtool/largetank/empty
category = list(
RND_CATEGORY_HACKED,
RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_ENGINEERING,
)
departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING
/datum/design/earmuffs
name = "Earmuffs"
id = "earmuffs"
build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE
materials = list(/datum/material/iron =SMALL_MATERIAL_AMOUNT*5, /datum/material/glass =SMALL_MATERIAL_AMOUNT*5)
build_path = /obj/item/clothing/ears/earmuffs
category = list(
RND_CATEGORY_INITIAL,
RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_ENGINEERING,
)
departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING
/datum/design/pipe_painter
name = "Pipe Painter"
id = "pipe_painter"
build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE
materials = list(/datum/material/iron =SHEET_MATERIAL_AMOUNT * 2.5, /datum/material/glass =SHEET_MATERIAL_AMOUNT)
build_path = /obj/item/pipe_painter
category = list(
RND_CATEGORY_INITIAL,
RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_ENGINEERING,
)
departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING
/datum/design/airlock_painter
name = "Airlock Painter"
id = "airlock_painter"
build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE
materials = list(/datum/material/iron =SMALL_MATERIAL_AMOUNT*0.5, /datum/material/glass =SMALL_MATERIAL_AMOUNT*0.5)
build_path = /obj/item/airlock_painter
category = list(
RND_CATEGORY_INITIAL,
RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_ENGINEERING,
)
departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING
/datum/design/airlock_painter/decal
name = "Decal Painter"
id = "decal_painter"
build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE
materials = list(/datum/material/iron =SMALL_MATERIAL_AMOUNT*0.5, /datum/material/glass =SMALL_MATERIAL_AMOUNT*0.5)
build_path = /obj/item/airlock_painter/decal
category = list(
RND_CATEGORY_INITIAL,
RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_ENGINEERING,
)
departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING
/datum/design/apc_board
name = "APC Module"
id = "power_control"
build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE
materials = list(/datum/material/iron =SMALL_MATERIAL_AMOUNT, /datum/material/glass =SMALL_MATERIAL_AMOUNT)
build_path = /obj/item/electronics/apc
category = list(
RND_CATEGORY_INITIAL,
RND_CATEGORY_CONSTRUCTION + RND_SUBCATEGORY_CONSTRUCTION_ELECTRONICS,
)
departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING
/datum/design/airlock_board
name = "Airlock Electronics"
id = "airlock_board"
build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE
materials = list(/datum/material/iron =SMALL_MATERIAL_AMOUNT*0.5, /datum/material/glass =SMALL_MATERIAL_AMOUNT*0.5)
build_path = /obj/item/electronics/airlock
category = list(
RND_CATEGORY_INITIAL,
RND_CATEGORY_CONSTRUCTION + RND_SUBCATEGORY_CONSTRUCTION_ELECTRONICS,
)
departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING
/datum/design/firelock_board
name = "Firelock Circuitry"
id = "firelock_board"
build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE
materials = list(/datum/material/iron =SMALL_MATERIAL_AMOUNT*0.5, /datum/material/glass =SMALL_MATERIAL_AMOUNT*0.5)
build_path = /obj/item/electronics/firelock
category = list(
RND_CATEGORY_INITIAL,
RND_CATEGORY_CONSTRUCTION + RND_SUBCATEGORY_CONSTRUCTION_ELECTRONICS,
)
departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING
/datum/design/airalarm_electronics
name = "Air Alarm Electronics"
id = "airalarm_electronics"
build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE
materials = list(/datum/material/iron =SMALL_MATERIAL_AMOUNT*0.5, /datum/material/glass =SMALL_MATERIAL_AMOUNT*0.5)
build_path = /obj/item/electronics/airalarm
category = list(
RND_CATEGORY_INITIAL,
RND_CATEGORY_CONSTRUCTION + RND_SUBCATEGORY_CONSTRUCTION_ELECTRONICS,
)
departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING
/datum/design/firealarm_electronics
name = "Fire Alarm Electronics"
id = "firealarm_electronics"
build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE
materials = list(/datum/material/iron =SMALL_MATERIAL_AMOUNT*0.5, /datum/material/glass =SMALL_MATERIAL_AMOUNT*0.5)
build_path = /obj/item/electronics/firealarm
category = list(
RND_CATEGORY_INITIAL,
RND_CATEGORY_CONSTRUCTION + RND_SUBCATEGORY_CONSTRUCTION_ELECTRONICS,
)
departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING
/datum/design/trapdoor_electronics
name = "Trapdoor Controller Electronics"
id = "trapdoor_electronics"
build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE
materials = list(/datum/material/iron =SMALL_MATERIAL_AMOUNT*0.5, /datum/material/glass =SMALL_MATERIAL_AMOUNT*0.5)
build_path = /obj/item/assembly/trapdoor
category = list(
RND_CATEGORY_INITIAL,
RND_CATEGORY_CONSTRUCTION + RND_SUBCATEGORY_CONSTRUCTION_ELECTRONICS,
)
departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING
/datum/design/extinguisher
name = "Fire Extinguisher"
id = "extinguisher"
build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE
materials = list(/datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT)
build_path = /obj/item/extinguisher/empty
category = list(
RND_CATEGORY_INITIAL,
RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_ATMOSPHERICS,
)
departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING
/datum/design/pocketfireextinguisher
name = "Pocket Fire Extinguisher"
id = "pocketfireextinguisher"
build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE
materials = list(/datum/material/iron =SMALL_MATERIAL_AMOUNT*0.5, /datum/material/glass = SMALL_MATERIAL_AMOUNT*0.4)
build_path = /obj/item/extinguisher/mini/empty
category = list(
RND_CATEGORY_INITIAL,
RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_ATMOSPHERICS,
)
departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING