SPLURT Station 13 - Modules - TypesVar Details - Proc Details

movable

Vars

blocks_emissiveEither FALSE, EMISSIVE_BLOCK_GENERIC, or EMISSIVE_BLOCK_UNIQUE
can_be_z_movedUsed for space ztransit stuff
em_blockInternal holder for emissive blocker object, do not use directly use blocks_emissive
floating_need_updateIf we were without gravity and another animation happened, the bouncing will stop, and we need to restart it in next life().
generic_canpassIf false makes CanPass call CanPassThrough on this type instead of using default behaviour
last_yelllast time we yelled
movement_typeIn case you have multiple types, you automatically use the most useful one. IE: Skating on ice, flippers on water, flying over chasm/space, etc. I reccomend you use the movetype_handler system and not modify this directly, especially for living mobs.
pass_flagsThings we can pass through while moving. If any of this matches the thing we're trying to pass's [pass_flags_self], then we can pass through.
tooltipsShould we use tooltips, if the thing does not have the code implemented get_tooltip_data(), it will default to examine(src)
yell_powerHow loudly we yell

Procs

CanPassThroughReturns true or false to allow src to move through the blocker, mover has final say
Process_SpacemoveCalled whenever an object moves and by mobs when they attempt to move themselves through space And when an object or action applies a force on src, see newtonian_move
abstract_movemeant for movement with zero side effects. only use for objects that are supposed to move "invisibly" (like camera mobs or ghosts) if you want something to move onto a tile with a beartrap or recycler or tripmine or mouse without that object knowing about it at all, use this most of the time you want forceMove()
add_blocked_languageAdds a language to the blocked language list. Use this over remove_language in cases where you will give languages back later.
admin_teleportProc to hook user-enacted teleporting behavior and keep logging of the event.
can_speak_languageChecks if atom can speak the language.
copy_languagesCopies all languages into the supplied atom/language holder. Source should be overridden when you do not want the language overwritten by later atom updates or want to avoid blocked languages.
could_speak_languageReturns the result of tongue specific limitations on spoken languages.
forceMoveFORCED MOVEMENT
get_language_holderGets or creates the relevant language holder. For mindless atoms, gets the local one. For atom with mind, gets the mind one.
get_random_spoken_languageGets a random spoken language, useful for forced speech and such.
get_random_understood_languageGets a random understood language, useful for hallucinations and such.
get_selected_languageReturns selected language, if it can be spoken, or finds, sets and returns a new selected language if possible.
get_tooltip_dataIf set, will return a list for the tooltip (that will also be put together in a Join()) However, if returning null, the tooltip will not be shown as #14942 changed it.
grant_all_languagesGrants every language.
grant_languageGrants the supplied language and sets omnitongue true.
has_languageChecks if atom has the language. If spoken is true, only checks if atom can speak the language.
mouse_buckle_handlingDoes some typechecks and then calls user_buckle_mob
newtonian_moveOnly moves the object if it's under no gravity
on_enter_storagecalled when this atom is added into a storage item, which is passed on as S. The loc variable is already set to the storage item.
on_exit_storagecalled when this atom is removed from a storage item, which is passed on as S. The loc variable is already set to the new destination before this is called.
point_atPoint at an atom
quoteless_say_quoteQuirky citadel proc for our custom sayverbs to strip the verb out. Snowflakey as hell, say rewrite 3.0 when?
recursive_pulled_glidesize_updateRecursively set glide size for atom's pulled things
remove_all_languagesRemoves every language and sets omnitongue false.
remove_blocked_languageRemoves a language from the blocked language list.
remove_languageRemoves a single language.
say_emphasisScans the input sentence for speech emphasis modifiers, notably |italics|, +bold+, and underline -mothblocks
setGrabStateUpdates the grab state of the movable
setMovetypeProc to modify the movement_type and hook behavior associated with it changing.
set_anchoredSets the anchored var and returns if it was sucessfully changed or not.
set_barkSets the vocal bark for the atom, using the bark's ID
set_pulledbyReports the event of the change in value of the pulledby variable.
throw_atIf this returns FALSE then callback will not be called.
update_atom_languagesEmpties out the atom specific languages and updates them according to the current atoms language holder. As a side effect, it also creates missing language holders in the process.

Var Details

blocks_emissive

Either FALSE, EMISSIVE_BLOCK_GENERIC, or EMISSIVE_BLOCK_UNIQUE

can_be_z_moved

Used for space ztransit stuff

em_block

Internal holder for emissive blocker object, do not use directly use blocks_emissive

floating_need_update

If we were without gravity and another animation happened, the bouncing will stop, and we need to restart it in next life().

generic_canpass

If false makes CanPass call CanPassThrough on this type instead of using default behaviour

last_yell

last time we yelled

movement_type

In case you have multiple types, you automatically use the most useful one. IE: Skating on ice, flippers on water, flying over chasm/space, etc. I reccomend you use the movetype_handler system and not modify this directly, especially for living mobs.

pass_flags

Things we can pass through while moving. If any of this matches the thing we're trying to pass's [pass_flags_self], then we can pass through.

tooltips

Should we use tooltips, if the thing does not have the code implemented get_tooltip_data(), it will default to examine(src)

yell_power

How loudly we yell

Proc Details

CanPassThrough

Returns true or false to allow src to move through the blocker, mover has final say

Process_Spacemove

Called whenever an object moves and by mobs when they attempt to move themselves through space And when an object or action applies a force on src, see newtonian_move

return FALSE to have src start/keep drifting in a no-grav area and 1 to stop/not start drifting

Mobs should return TRUE if they should be able to move of their own volition, see [/client/proc/Move]

Arguments:

abstract_move

meant for movement with zero side effects. only use for objects that are supposed to move "invisibly" (like camera mobs or ghosts) if you want something to move onto a tile with a beartrap or recycler or tripmine or mouse without that object knowing about it at all, use this most of the time you want forceMove()

add_blocked_language

Adds a language to the blocked language list. Use this over remove_language in cases where you will give languages back later.

admin_teleport

Proc to hook user-enacted teleporting behavior and keep logging of the event.

can_speak_language

Checks if atom can speak the language.

copy_languages

Copies all languages into the supplied atom/language holder. Source should be overridden when you do not want the language overwritten by later atom updates or want to avoid blocked languages.

could_speak_language

Returns the result of tongue specific limitations on spoken languages.

forceMove

FORCED MOVEMENT

get_language_holder

Gets or creates the relevant language holder. For mindless atoms, gets the local one. For atom with mind, gets the mind one.

get_random_spoken_language

Gets a random spoken language, useful for forced speech and such.

get_random_understood_language

Gets a random understood language, useful for hallucinations and such.

get_selected_language

Returns selected language, if it can be spoken, or finds, sets and returns a new selected language if possible.

get_tooltip_data

If set, will return a list for the tooltip (that will also be put together in a Join()) However, if returning null, the tooltip will not be shown as #14942 changed it.

Though no tooltips will be created for atoms that have tooltips = FALSE

grant_all_languages

Grants every language.

grant_language

Grants the supplied language and sets omnitongue true.

has_language

Checks if atom has the language. If spoken is true, only checks if atom can speak the language.

mouse_buckle_handling

Does some typechecks and then calls user_buckle_mob

Arguments: M - The mob being buckled to src user - The mob buckling M to src

newtonian_move

Only moves the object if it's under no gravity

on_enter_storage

called when this atom is added into a storage item, which is passed on as S. The loc variable is already set to the storage item.

on_exit_storage

called when this atom is removed from a storage item, which is passed on as S. The loc variable is already set to the new destination before this is called.

point_at

Point at an atom

Intended to enable and standardise the pointing animation for all atoms

Not intended as a replacement for the mob verb

quoteless_say_quote

Quirky citadel proc for our custom sayverbs to strip the verb out. Snowflakey as hell, say rewrite 3.0 when?

recursive_pulled_glidesize_update

Recursively set glide size for atom's pulled things

remove_all_languages

Removes every language and sets omnitongue false.

remove_blocked_language

Removes a language from the blocked language list.

remove_language

Removes a single language.

say_emphasis

Scans the input sentence for speech emphasis modifiers, notably |italics|, +bold+, and underline -mothblocks

setGrabState

Updates the grab state of the movable

This exists to act as a hook for behaviour

setMovetype

Proc to modify the movement_type and hook behavior associated with it changing.

set_anchored

Sets the anchored var and returns if it was sucessfully changed or not.

set_bark

Sets the vocal bark for the atom, using the bark's ID

set_pulledby

Reports the event of the change in value of the pulledby variable.

throw_at

If this returns FALSE then callback will not be called.

update_atom_languages

Empties out the atom specific languages and updates them according to the current atoms language holder. As a side effect, it also creates missing language holders in the process.