Files
VOREStation/code/__defines/turfs.dm
T
Will bf29ca396f Shovel digging refactor (#19345)
* fixes per pile lootable counts

* shovel digging element

* retooled to flag

* take two

* proc that

* sand digging

* collapse that system in too

* allow base loot

* desc

* potat

* fix that

* no making that on rocks

* oops

* var version

* prevent that dupe

* fixes

---------

Co-authored-by: Cameron Lennox <killer65311@gmail.com>
2026-03-26 22:10:06 -04:00

58 lines
2.3 KiB
Plaintext

#define TURF_REMOVE_CROWBAR 1
#define TURF_REMOVE_SCREWDRIVER 2
#define TURF_REMOVE_SHOVEL 4
#define TURF_REMOVE_WRENCH 8
#define TURF_CAN_BREAK 16
#define TURF_CAN_BURN 32
#define TURF_HAS_EDGES 64
#define TURF_HAS_CORNERS 128
#define TURF_IS_FRAGILE 256
#define TURF_ACID_IMMUNE 512
#define TURF_UNSHIELDABLE 1024
#define TURF_CAN_DIG_SHOVEL 2048
// The 0x800000 is blocked by INITIALIZED, do NOT use it!
//Used for floor/wall smoothing
#define SMOOTH_NONE 0 //Smooth only with itself
#define SMOOTH_ALL 1 //Smooth with all of type
#define SMOOTH_WHITELIST 2 //Smooth with a whitelist of subtypes
#define SMOOTH_BLACKLIST 3 //Smooth with all but a blacklist of subtypes
#define SMOOTH_GREYLIST 4 // Use a whitelist and a blacklist at the same time. atom smoothing only
#define isCardinal(x) (x == NORTH || x == SOUTH || x == EAST || x == WEST)
#define isDiagonal(x) (x == NORTHEAST || x == SOUTHEAST || x == NORTHWEST || x == SOUTHWEST)
#define IS_OPAQUE_TURF(turf) (turf.directional_opacity == ALL_CARDINALS)
#define IS_OPAQUE_TURF_DIR(turf, dir) (turf.directional_opacity & dir)
#define FOOTSTEP_SPRITE_AMT 2
// Used to designate if a turf (or its area) should initialize as outdoors or not.
#define OUTDOORS_YES 1 // This being 1 helps with backwards compatibility.
#define OUTDOORS_NO 0 // Ditto.
#define OUTDOORS_AREA -1 // If a turf has this, it will defer to the area's settings on init.
// Note that after init, it will be either YES or NO.
//supposedly the fastest way to do this according to https://gist.github.com/Giacom/be635398926bb463b42a
///Returns a list of turf in a square
#define RANGE_TURFS(RADIUS, CENTER) \
RECT_TURFS(RADIUS, RADIUS, CENTER)
#define RECT_TURFS(H_RADIUS, V_RADIUS, CENTER) \
block( \
(CENTER).x - (H_RADIUS), (CENTER).y - (V_RADIUS), (CENTER).z, \
(CENTER).x + (H_RADIUS), (CENTER).y + (V_RADIUS), (CENTER).z \
)
// Wet turfs have different slipping intensities
#define TURFSLIP_DRY 0
#define TURFSLIP_WET 1
#define TURFSLIP_LUBE 2
#define TURFSLIP_ICE 3
///Returns all turfs in a zlevel
#define Z_TURFS(ZLEVEL) block(1, 1, ZLEVEL, world.maxx, world.maxy, ZLEVEL)
/// Digging loot with a shovel
#define TURF_DIG_LOOT_ENDLESS 0
#define TURF_DIG_LOOT_EXHAUSTED 100