Files
Kano 58570e035a Adds base planning blueprints (#21626)
## About PR

Adds some building/planning mechanics typically seen in
base-building/survival games such as Grounded. Hopefully this will ease
the away base construction process. Happy base buildings!

Currently, this allows placing blueprint objects that players can click
on with the required materials to build whatever the blueprint
represents. You can place templates, edit them or build your own
glorious base from ground.

Sprites for `blueprints` and `blueprints_unfolded` inside
`base_planning_blueprints.dmi` are ported from SS20 Russian Paradise
Station.

## Images
https://youtu.be/FCrZn8BkISU?si=Fst0ksAgi47D_wN7

### Asset Licenses
The following assets that **have not** been created by myself are
included in this PR:

| Path | Original Author | License |
| --- | --- | --- |
| icons/obj/item/base_planning_blueprints.dmi | vovakons (SS20 Russian
Paradise Station) | AGPLv3 |
2025-12-19 23:26:56 +00:00

40 lines
1.4 KiB
Plaintext

/datum/component/eye/base_planner
eye_type = /mob/abstract/eye/base_planner
action_type = /datum/action/eye/base_planner
/datum/action/eye/base_planner
eye_type = /mob/abstract/eye/base_planner
/datum/action/eye/base_planner/choose_blueprint_object
name = "Choose Blueprint Object"
procname = "choose_blueprint_object"
button_icon_state = "pencil"
target_type = EYE_TARGET
/datum/action/eye/base_planner/place_template
name = "Place Template Schematic"
procname = "place_template"
button_icon_state = "template_insert"
target_type = EYE_TARGET
/datum/action/eye/base_planner/erase_all
name = "Erase All Schematics"
procname = "erase_all"
button_icon_state = "eraser"
target_type = EYE_TARGET
/datum/action/eye/base_planner/help
name = "Help"
procname = "help"
button_icon_state = "help"
target_type = COMPONENT_TARGET
/datum/component/eye/base_planner/proc/help()
if(!current_looker)
return
to_chat(current_looker, SPAN_NOTICE("-***********************************************************-"))
to_chat(current_looker, SPAN_NOTICE("Left Click = Place selected object blueprint."))
to_chat(current_looker, SPAN_NOTICE("Control Click = Clear blueprint objects in selected turf."))
to_chat(current_looker, SPAN_NOTICE("Middle Mouse Click = Copy the selected blueprint object as ."))
to_chat(current_looker, SPAN_NOTICE("*-*********************************************************-*"))