Files
Paradise/code/__DEFINES/icon_smoothing.dm
T
802408a923 Cere-station [100% free lag edition] (#19951)
* change da world

* compile, thanks

* Update cere.dmm

* Update cere.dmm

* ready for test

* use the proper name please

its CERE not ceres.

* stops shuttle from forcibly docking with podbay

* things are now different

Landmark update for job spawns.
More hardsuits in EVA, engi, and atmos.
Disaster counters properly added.
Vault is now more spooky.
Gamma armoury moved to below gulag shuttle.
Sleeping rooms replaced with arcade and swimming pool.
Captains ERP nest deleted.
Tcomms now looks like it was designed by a functional human being.
Mining doesn't need a weird glass box.
Shuffled docking ports at arrivals.
Windows are now reinforced windows.
Mr changs has arrived.

* disposals functions now

* now with 50% more air

* gamma armoury doesn't attempt to become one with gulag shuttle

* disposals net is airless, vault is enclosed in some rock

* standard number of escape pods

* slight fixes

* more bugfixes

* lighting fixes

* divided hallways, added psych office, more cams

* fire alarms, shutters, and fixes

* temporary DME edit to set cere as default map

* fixed shuttle runtime

* this compiles and runs locally, please CI

* fixes hidden double pipe

* more double pipes

* more vents and scrubbers, morgue body delivery

* tweaks to secbot pathing

* various QoL changes

* Medbay expansion, med+arrival maints expansion.

* the definitive air alarm update, and more!

* Departmental emergency EVA suits, signage, tweaks.

* 2 Cryodorms added (oops). Asteroid sound updates.

* Borg cryo, shutters correctly rotated.

* Supply shuttle edit. I like joining the map queue.

* minor fixes, grav gen isolation.

* minor fixes

* Disposal fixes, lighting adjustment

* SabreML feedback changes

* More minor fixes

* More fixes

* NSS Farragus

* (most) floors turn into asteroid sand, not spess

* reverted random file edit, fixed mr teeny

* minor fixes

* big bombs can breach asteroid areas

* Asteroid plating exists, did you know? I do now!

* camera network pass

* walls become sand too on destruction

* lighting pass

* implements feedback, dramatically reduces ores

* yeets ores entirely, sci break room added

* roundstart pads, more solars, bigger departures

* runtimes

* mining resistant rock

* variable names are important

* AoE KA doesnt affect rocks

* actually fix AoE stuff

* now with 1000% more bats

* no sandy cables, a brig exit chute, more head ssu

* mech drills are not pickaxes

* proc rename, perma window, faster sapce bridges

* Brig rework

* robotics changes

* More sci edits

* Rotayshun changes

* dme edit

* Delete cerestation.dm

begone, thot

* temp edit so it loads cere as default

* merge conflicts begone

* decal purge

* map repipe

* removes under-wall pipe adapters

* shuffled maint areas

* dirt purge

* longest bridge rework

* fixes

* PPI feedback

* kitchen does, in fact, need air

* permabrig tweaks

* restores cc changes

* merge part 2

* tag purge

* secret clown HQ got me shook

* SQUASHENING

* solar shuffle

* directional consoles

* remove TM edits due to rotation

* merge conflict part 2

* pod pilot deletion

* cold rock, window tint fixes, etc.

* further red rocks

* further tweaks

* more standardising

* robotics redo

* carpet time

* CI update for cere

* Apply suggestions from code review

Co-authored-by: AffectedArc07 <25063394+AffectedArc07@users.noreply.github.com>

* more squash, corridor cam removal, etc.

* light switches

* minor fixes

* temp cere default

* FOODCART!

* fixes

* no airless no more

* space_hall

* compat pass 1

* make it work

* more changes

* slimmening

* air alarm tweak

* TM commit

* ci tests

* final CI changes?

* squash. squeeze, optimise

* wall vent

* disposals fix, more squeezing

* bugfixes

* false walls

* bedroom culling

* edits and fixes

* tweaks

* changes

* det window

* further tweaks

* Revert "TM commit"

This reverts commit 9e8814937f.

* More TM only changes reverted

* fixes smoothing with falsewalls

* denth changes

* the airlockenning

* cicicici

* CICICICI

* further tweaks

* further tweaks

* reverts weird sand behaviour code from ages ago

* oops

* universal adapter my beloathed

* nanomap moment

* webmap

* cere nanomap

* feedback updates

* updates

* airlock tweaks

* vents and tweaks

* solars moment

* triple APC fix

* south of where?

* airlock helpers

* disposal flap purge

* outpost monitor with actual real networks?

* tweakeroni

* fixes

* fixes

* tweaks

* fixes

* medbay improvements

* power and flaps

* changes

* aa changes

* fixes

* more fixeronies

* fixes!

* reversed

* chemicals

* chem tweaks

* fixes

* shuttle fixes

* holopad pass

* editseditsedits

* lightslightslights

* door

* /obj/machinery/computer/security/telescreen/entertainment

* sonic underground

* actual sonic reference

* Apply suggestions from code review

Co-authored-by: Charlie <69320440+hal9000PR@users.noreply.github.com>

* Tsrc

Co-authored-by: AffectedArc07 <25063394+AffectedArc07@users.noreply.github.com>
Co-authored-by: Charlie <69320440+hal9000PR@users.noreply.github.com>
2023-01-17 22:23:09 +00:00

134 lines
8.5 KiB
Plaintext

/* smoothing_flags */
/// Smoothing system in where adjacencies are calculated and used to build an image by mounting each corner at runtime.
#define SMOOTH_CORNERS (1<<0)
/// Smoothing system in where adjacencies are calculated and used to select a pre-baked icon_state, encoded by bitmasking.
#define SMOOTH_BITMASK (1<<1)
/// Atom has diagonal corners, with underlays under them.
#define SMOOTH_DIAGONAL_CORNERS (1<<2)
/// Atom will smooth with the borders of the map.
#define SMOOTH_BORDER (1<<3)
/// Atom is currently queued to smooth.
#define SMOOTH_QUEUED (1<<4)
/// Smooths with objects, and will thus need to scan turfs for contents.
#define SMOOTH_OBJ (1<<5)
DEFINE_BITFIELD(smoothing_flags, list(
"SMOOTH_CORNERS" = SMOOTH_CORNERS,
"SMOOTH_BITMASK" = SMOOTH_BITMASK,
"SMOOTH_DIAGONAL_CORNERS" = SMOOTH_DIAGONAL_CORNERS,
"SMOOTH_BORDER" = SMOOTH_BORDER,
"SMOOTH_QUEUED" = SMOOTH_QUEUED,
"SMOOTH_OBJ" = SMOOTH_OBJ,
))
/*smoothing macros*/
#define QUEUE_SMOOTH(thing_to_queue) if((thing_to_queue.smoothing_flags & (SMOOTH_CORNERS|SMOOTH_BITMASK)) && thing_to_queue.z) {SSicon_smooth.add_to_queue(thing_to_queue)}
#define QUEUE_SMOOTH_NEIGHBORS(thing_to_queue) for(var/neighbor in orange(1, thing_to_queue)) {var/atom/atom_neighbor = neighbor; QUEUE_SMOOTH(atom_neighbor)}
#define REMOVE_FROM_SMOOTH_QUEUE(thing_to_remove) if(thing_to_remove.smoothing_flags & SMOOTH_QUEUED) {SSicon_smooth.remove_from_queues(thing_to_remove)}
/**SMOOTHING GROUPS
* Groups of things to smooth with.
* * Contained in the `list/smoothing_groups` variable.
* * Matched with the `list/canSmoothWith` variable to check whether smoothing is possible or not.
*/
#define S_TURF(num) ((24 * 0) + num) //Not any different from the number itself, but kept this way in case someone wants to expand it by adding stuff before it.
/* /turf only */
#define SMOOTH_GROUP_TURF S_TURF(0) ///turf/simulated
#define SMOOTH_GROUP_TURF_CHASM S_TURF(1) ///turf/simulated/chasm, /turf/simulated/floor/fakepit
#define SMOOTH_GROUP_FLOOR_LAVA S_TURF(2) ///turf/simulated/lava/smooth
#define SMOOTH_GROUP_FLOOR_TRANSPARENT_GLASS S_TURF(3) ///turf/simulated/transparent/glass
#define SMOOTH_GROUP_FLOOR S_TURF(4) ///turf/simulated/floor
#define SMOOTH_GROUP_FLOOR_GRASS S_TURF(5) ///turf/simulated/floor/plating/grass
#define SMOOTH_GROUP_FLOOR_ICE S_TURF(6) ///turf/simulated/floor/plating/ice
#define SMOOTH_GROUP_BEACH_WATER S_TURF(7) ///turf/simulated/floor/beach/away/water/
#define SMOOTH_GROUP_GLASS_FLOOR S_TURF(8) ///turf/simulated/floor/transparent/glass and subtypes
#define SMOOTH_GROUP_GLASS_FLOOR_TITANIUM S_TURF(9) ///turf/simulated/floor/transparent/glass/titanium and subtypes
#define SMOOTH_GROUP_CARPET S_TURF(10) ///turf/simulated/floor/carpet
#define SMOOTH_GROUP_CARPET_BLACK S_TURF(11)
#define SMOOTH_GROUP_CARPET_BLUE S_TURF(12)
#define SMOOTH_GROUP_CARPET_CYAN S_TURF(13)
#define SMOOTH_GROUP_CARPET_GREEN S_TURF(14)
#define SMOOTH_GROUP_CARPET_ROYALBLACK S_TURF(15)
#define SMOOTH_GROUP_CARPET_ROYALBLUE S_TURF(17)
#define SMOOTH_GROUP_CARPET_RED S_TURF(17)
#define SMOOTH_GROUP_CARPET_ORANGE S_TURF(18)
#define SMOOTH_GROUP_CARPET_PURPLE S_TURF(19)
#define SMOOTH_GROUP_SIMULATED_TURFS S_TURF(24) ///turf/simulated
#define SMOOTH_GROUP_MATERIAL_WALLS S_TURF(25) ///turf/simulated/wall/material
#define SMOOTH_GROUP_SYNDICATE_WALLS S_TURF(26) ///turf/simulated/wall/r_wall/syndicate, /turf/simulated/indestructible/syndicate
#define SMOOTH_GROUP_HOTEL_WALLS S_TURF(27) ///turf/simulated/indestructible/hotelwall
#define SMOOTH_GROUP_MINERAL_WALLS S_TURF(28) ///turf/simulated/mineral, /obj/structure/falsewall/rock_ancient
#define SMOOTH_GROUP_BOSS_WALLS S_TURF(29) ///turf/simulated/indestructible/riveted/boss
#define SMOOTH_GROUP_SURVIVAL_TITANIUM_WALLS S_TURF(30) ///turf/simulated/wall/mineral/titanium/survival
#define SMOOTH_GROUP_GRASS S_TURF(31) ///turf/simulated/floor/grass
#define SMOOTH_GROUP_JUNGLE_GRASS S_TURF(32) ///turf/simulated/floor/grass/jungle
#define MAX_S_TURF SMOOTH_GROUP_JUNGLE_GRASS //Always match this value with the one above it.
#define S_OBJ(num) (MAX_S_TURF + 1 + num)
/* /obj included */
#define SMOOTH_GROUP_WALLS S_OBJ(0) ///turf/simulated/wall, /obj/structure/falsewall
#define SMOOTH_GROUP_URANIUM_WALLS S_OBJ(1) ///turf/simulated/wall/mineral/uranium, /obj/structure/falsewall/uranium
#define SMOOTH_GROUP_GOLD_WALLS S_OBJ(2) ///turf/simulated/wall/mineral/gold, /obj/structure/falsewall/gold
#define SMOOTH_GROUP_SILVER_WALLS S_OBJ(3) ///turf/simulated/wall/mineral/silver, /obj/structure/falsewall/silver
#define SMOOTH_GROUP_DIAMOND_WALLS S_OBJ(4) ///turf/simulated/wall/mineral/diamond, /obj/structure/falsewall/diamond
#define SMOOTH_GROUP_PLASMA_WALLS S_OBJ(5) ///turf/simulated/wall/mineral/plasma, /obj/structure/falsewall/plasma
#define SMOOTH_GROUP_BANANIUM_WALLS S_OBJ(6) ///turf/simulated/wall/mineral/bananium, /obj/structure/falsewall/bananium
#define SMOOTH_GROUP_SANDSTONE_WALLS S_OBJ(7) ///turf/simulated/wall/mineral/sandstone, /obj/structure/falsewall/sandstone
#define SMOOTH_GROUP_WOOD_WALLS S_OBJ(8) ///turf/simulated/wall/mineral/wood, /obj/structure/falsewall/wood
#define SMOOTH_GROUP_IRON_WALLS S_OBJ(9) ///turf/simulated/wall/mineral/iron, /obj/structure/falsewall/iron
#define SMOOTH_GROUP_ABDUCTOR_WALLS S_OBJ(10) ///turf/simulated/wall/mineral/abductor, /obj/structure/falsewall/abductor
#define SMOOTH_GROUP_TITANIUM_WALLS S_OBJ(11) ///turf/simulated/wall/mineral/titanium, /obj/structure/falsewall/titanium
#define SMOOTH_GROUP_PLASTITANIUM_WALLS S_OBJ(13) ///turf/simulated/wall/mineral/plastitanium, /obj/structure/falsewall/plastitanium
#define SMOOTH_GROUP_SURVIVAL_TIANIUM_POD S_OBJ(14) ///turf/simulated/wall/mineral/titanium/survival/pod, /obj/machinery/door/airlock/survival_pod, /obj/structure/window/shuttle/survival_pod
#define SMOOTH_GROUP_HIERO_WALL S_OBJ(15) ///obj/effect/temp_visual/elite_tumor_wall, /obj/effect/temp_visual/hierophant/wall
#define SMOOTH_GROUP_BRASS_WALL S_OBJ(16) ///turf/simulated/wall/mineral/brass, /obj/structure/falsewall/brass
#define SMOOTH_GROUP_REGULAR_WALLS S_OBJ(17) ///turf/simulated/wall, /obj/structure/falsewall
#define SMOOTH_GROUP_REINFORCED_WALLS S_OBJ(18) ///turf/simulated/wall/r_wall, /obj/structure/falsewall/reinforced
#define SMOOTH_GROUP_CULT_WALLS S_OBJ(19) ///turf/simulated/wall/cult
#define SMOOTH_GROUP_ASTEROID_WALLS S_OBJ(12) ///turf/simulated/mineral, /obj/structure/falsewall/rock_ancient
#define SMOOTH_GROUP_WINDOW_FULLTILE S_OBJ(21) ///turf/simulated/indestructible/fakeglass, /obj/structure/window/full/basic, /obj/structure/window/full/plasmabasic, /obj/structure/window/full/plasmareinforced, /obj/structure/window/full/reinforced
#define SMOOTH_GROUP_WINDOW_FULLTILE_BRASS S_OBJ(22) ///obj/structure/window/brass/fulltile
#define SMOOTH_GROUP_WINDOW_FULLTILE_PLASTITANIUM S_OBJ(23) ///turf/simulated/indestructible/opsglass, /obj/structure/window/plasma/reinforced/plastitanium
#define SMOOTH_GROUP_WINDOW_FULLTILE_SHUTTLE S_OBJ(24) ///obj/structure/window/shuttle
#define SMOOTH_GROUP_LATTICE S_OBJ(30) ///obj/structure/lattice
#define SMOOTH_GROUP_AIRLOCK S_OBJ(40) ///obj/machinery/door/airlock
#define SMOOTH_GROUP_TABLES S_OBJ(50) ///obj/structure/table
#define SMOOTH_GROUP_WOOD_TABLES S_OBJ(51) ///obj/structure/table/wood
#define SMOOTH_GROUP_FANCY_WOOD_TABLES S_OBJ(52) ///obj/structure/table/wood/fancy
#define SMOOTH_GROUP_BRASS_TABLES S_OBJ(53) ///obj/structure/table/brass
#define SMOOTH_GROUP_ABDUCTOR_TABLES S_OBJ(54) ///obj/structure/table/abductor
#define SMOOTH_GROUP_GLASS_TABLES S_OBJ(55) ///obj/structure/table/glass
#define SMOOTH_GROUP_REINFORCED_TABLES S_OBJ(56) ///obj/structure/table/reinforced, /obj/structure/table/glass/reinforced
#define SMOOTH_GROUP_ALIEN_RESIN S_OBJ(60) ///obj/structure/alien/resin
#define SMOOTH_GROUP_ALIEN_WALLS S_OBJ(61) ///obj/structure/alien/resin/wall,
#define SMOOTH_GROUP_ALIEN_WEEDS S_OBJ(62) ///obj/structure/alien/weeds
#define SMOOTH_GROUP_SECURITY_BARRICADE S_OBJ(63) ///obj/structure/barricade/security
#define SMOOTH_GROUP_SANDBAGS S_OBJ(64) ///obj/structure/barricade/sandbags
#define SMOOTH_GROUP_SHUTTLE_PARTS S_OBJ(66) ///obj/structure/window/shuttle, /obj/structure/window/plasma/reinforced/plastitanium, /turf/simulated/indestructible/opsglass, /obj/structure/shuttle
#define SMOOTH_GROUP_CLEANABLE_DIRT S_OBJ(67) ///obj/effect/decal/cleanable/dirt
#define SMOOTH_GROUP_RIPPLE S_OBJ(68) ///obj/effect/temp_visual/ripple
#define SMOOTH_GROUP_CATWALK S_OBJ(69) ///obj/structure/lattice/catwalk