Space Station 13 - Modules - TypesVar Details - Proc Details

crafting_stage

Singleton definitions for fabrication subsystem crafting stages. These define the individual steps for multi-stage crafting of items.

To create a new set of crafting steps, define new crafting stage singleton subtypes. The sequence must include at least one crafting stage with a begins_with_object_type set, and at least one craftin stage with a product set.

Additionally, each crafting stage should be reachable through a previous step's next_stages list.

Each stage will replace the input object with an instance of /obj/item/crafting_holder or update the existing crafting holder instance. In the event where product is defined, the input object is instead replaced with a new instance of product.

Premade subtypes are made for ease of use of specific interactions, such as material stacks or welding tools.

Vars

begins_with_object_typeTypepath (types of /obj/item). If set, objects of this type can be interacted with to start a crafting process and complete this stage, in place of a crafting holder. Only set this for the first step.
completion_trigger_typeTypepath (types of /obj/item). Desired type of item to be used to reach this stage.
consume_completion_triggerBoolean. If set, the item used to reach this stage is consumed.
item_descString. Visible description for the crafting holder while at this stage.
item_iconFile (.dmi). Icon file to use for the crafting holder while at this stage.
item_icon_stateString (icon state). Icon state to use for the crafting holder while at this stage.
next_stagesList (Paths, types of /singleton/crafting_stage). Crafting stages this stage can lead into.
productTypepath (types of /obj/item). Crafting result. If set, creates an instance of product instead of a crafting holder. Only set this for the final step.
progress_messageString. Message displayed to user when this stage is reached.
stack_consume_amountInteger. If completion_trigger_type is a stack, this is how much to consume if consume_completion_trigger is TRUE.

Procs

can_begin_withWhether or not this crafting stage can begin with the provided item.
consumeHandles consuming an item or part of a stack to reach this stage.
get_next_stageRetrieves the next crafting stage using the provided item.
get_productInstantiates and returns the crafting stage's product, if set.
is_appropriate_toolChecks if the item is the appropriate tool to reach this stage.
on_insufficient_materialHandles failure feedback for insufficient materials in a stack. Called by consume().
on_progressHandles additional logic to be performed when the crafting stage progresses to this point.
progress_toHandles checking if progressing to this crafting stage is possible, then performing the progression.

Var Details

begins_with_object_type

Typepath (types of /obj/item). If set, objects of this type can be interacted with to start a crafting process and complete this stage, in place of a crafting holder. Only set this for the first step.

completion_trigger_type

Typepath (types of /obj/item). Desired type of item to be used to reach this stage.

consume_completion_trigger

Boolean. If set, the item used to reach this stage is consumed.

item_desc

String. Visible description for the crafting holder while at this stage.

item_icon

File (.dmi). Icon file to use for the crafting holder while at this stage.

item_icon_state

String (icon state). Icon state to use for the crafting holder while at this stage.

next_stages

List (Paths, types of /singleton/crafting_stage). Crafting stages this stage can lead into.

product

Typepath (types of /obj/item). Crafting result. If set, creates an instance of product instead of a crafting holder. Only set this for the final step.

progress_message

String. Message displayed to user when this stage is reached.

stack_consume_amount

Integer. If completion_trigger_type is a stack, this is how much to consume if consume_completion_trigger is TRUE.

Proc Details

can_begin_with

Whether or not this crafting stage can begin with the provided item.

By default, passes through to a type check against begins_with_object_type.

Parameters:

Returns boolean.

consume

Handles consuming an item or part of a stack to reach this stage.

Parameters:

Returns boolean. If FALSE, the item could not be consumed or there was not enough in the stack.

get_next_stage

Retrieves the next crafting stage using the provided item.

By default, checks all stages in next_stages and compares the item through the next stage's is_appropriate_tool() check.

Parameters:

Returns path (Types of /singleton/crafting_stage).

get_product

Instantiates and returns the crafting stage's product, if set.

Parameters:

Returns instance of product.

is_appropriate_tool

Checks if the item is the appropriate tool to reach this stage.

By default, passes through to a type check against completion_trigger_type.

Parameters:

Returns boolean.

on_insufficient_material

Handles failure feedback for insufficient materials in a stack. Called by consume().

Parameters:

Has no return value.

on_progress

Handles additional logic to be performed when the crafting stage progresses to this point.

By default, displays progress_message to the user.

Parameters:

Has no return value.

progress_to

Handles checking if progressing to this crafting stage is possible, then performing the progression.

By default, checks is_appropriate_tool() and consume() then, if TRUE, calls on_progress().

Parameters:

Returns boolean. If TRUE, the stage was able to progress.