Commit Graph

280 Commits

Author SHA1 Message Date
TemporalOroboros
976c1fcb8c [READY] Bespoke Datum Mats (#55296)
* Bespoke Material Backend

- Adds support for bespoke materials:
  - Reimplements [/datum/material/var/id]
  - Ports GetIdFromArguments from SSdcs
  - Adds a wrapper define for GetMaterialRef
  - Adds [MATERIAL_INIT_BESPOKE]
  - Adds [/datum/material/proc/Initialize]
- Does not actually add any bespoke materials

- [ ] TODO: Code docs
- [ ] TODO: Actually adding bespoke materials

* Some has_material procs and cleaning up some spaghetti

- Adds a pair of has_material procs for use in checking whether a given atom has a given material

* Adds meat

- Adds bespoke meat variants
  - Does not make them accessible
- Shuts up the linter

* Implements bespoke meat

- Makes the material container preserve bespoke materials
- Makes the sheetifier accept bespoke materials
- Makes the autolathe accept bespoke materials
- Makes the gibber produce bespoke meats

* Makes butchering produce bespoke meats

This is jank and really needs to be folded into a unified butchering and gibbing system

* Material documentation

- Adds, fixes, and touches up some documentation

* Material container insertion callback

- Changes the proc used to expand the material container's material list ot a proc used to check whether a material fits into a material container
- Instantiating new materials is no longer O(n) relative to the number of autolathes in existence.

* Makes processing meat conserve materials

- Makes bespoke meat carry over into meatballs

* Makes preserving custom materials an option

- Implements the ability to turn preserving custom materials _off_ for processor recipes

* Fixes all bespoke materials of the same type using the same singleton

- We use ids now, not just types.

* Makes the fat sucker produce bespoke meats

- Because consistency is good.

* Fixes autolathes merging bespoke stacks into normal stacks.

* Makes the callback to test materials for holdibility optional

- @Floyd

* GetMaterialRef -> GET_MATERIAL_REF

- We capitalize macros.

* Removes an extraneous callback

- Makes the sheetifier use functionality I didn't notice I implemented a few commits ago.

* Makes mob and species meat null compatible

* Fixes the ore silo

- The ore silo had really snowflake material handling that has been brought in line with the rest.
- The materials should show up in the correct order.

* Fixes minor lathe bugs

- Fixes stack_traces caused when lathes tried to fetch materials using reagent typepaths
- Fixed the selective reagent disposal topic. I have no idea how long this has been broken.

* Various documentation fixes

- Clarified a couple comments
- Removes an extraneous ?. operator
- Fixed mat floor tiles having bugged reagent temperatures

* More fixes

-/datum/material/meat/mob -> /datum/material/meat/mob_meat
- Adds atom typecheck to material containers.

* Fixes old typepaths
2021-01-15 23:39:58 -08:00
TemporalOroboros
31b940968e Fixes borg tiles (#55858)
- Fixes greyscale material floor tiles created from cyborg stacks
- Makes cyborg stacks contain materials
- Prevents a potential bug involving metalgen and stacks
2021-01-01 14:09:43 -05:00
Jared-Fogle
7d3fd4355f Everything that uses maptext now uses the class that makes it actually readable (#55420)
Adds a MAPTEXT macro that wraps the given text in the maptext class, the thing we use for Runechat to make it so you can actually read it. Everything that sets maptext now uses this.
2020-12-10 23:25:46 +00:00
TemporalOroboros
9f694d82ea Fixes cyborgs in general replenishing stack modules from external sources (#54935)
* Cyborg stack fix

- Makes cyborgs capable of recycling floor tiles again

* Touches up module code

- Makes module code slightly more OOP-compliant
- Speeds up module creation by an imperceptable amount
- Reworks how borg modules handle stacks
2020-11-26 00:45:52 -08:00
ArcaneMusic
5338ad1696 Re-assesses 99% of vending prices through Arconomics to match player resources and round-length. (#54715)
* The Re-pricening

* Rewritten and adjusted for paycheck defines.

* I made the map changes finally.

* And the refills too.

* "OH YEAH REPLACING IT ALL WITH DEFINES AND SCALING IT THE EXCEL DOCUMENT WILL BE EASY, ARCANE!!!"

* And the premium ones too.

* Accidently spoiled a future pr due to dme bleedover
2020-11-13 16:17:22 -05:00
Ghom
91bfedcd16 Refactored 'IsAdvancedToolUser' into a macro plus relative trait. Tweaked 'can_hold_items'. (#54665)
The PR aims to allow advanced tool users to be defined by traits rather than a hardcoded proc.
Also necessary for the CanUseTopic refactor I'm working on, which will be PRed separately for atomization purposes.
This PR also fixes an inconsistency with can_hold_items (since monkeys can actually hold items).
2020-11-10 15:15:31 -03:00
TemporalOroboros
4b4363be15 Fixes a few bugs with greyscale stacks. (#54858)
Fixes greyscale floor tiles merging regardless of their materials.
    Fixes greyscale floor tiles voiding materials when splitting the stack.
    Fixes greyscale floor tile stacks being created with no mats_per_unit and only enough custom materials for a single unit.
    Fixes greyscale tile flooring being created with the wrong amount of materials.
    Fixes greyscale tile flooring not producing floor tiles/producing floor tiles with 0 units.
2020-11-10 14:13:01 -03:00
Rohesie
c55bb1b6c8 Basepixels (#54652) 2020-10-28 20:31:13 -07:00
nicbn
a1c59cc9bc Moves screen objects from mob to hud (#54400)
This moves screen images from icons/mob to icons/hud
Makes more sense and it is easier to find
2020-10-15 19:46:36 -03:00
ArcaneMusic
d836946e8e Arcane finishes the fight and adds all the missing belt sprites and a worn sprite Admin Tool. (#53305) 2020-09-16 16:11:23 -03:00
LemonInTheDark
7614f56d08 Fixes powernets imporoperly rebuilding when a ship moves (#53132) 2020-08-24 23:40:39 +08:00
kingofkosmos
3263decaad Personalized combat messages part 2 (#52890)
Adds more "personalized" combat messages for all participants in a fight: the attacker, the victim and the spectators
2020-08-13 11:34:57 -03:00
Jared-Fogle
00c593026b You can now craft cable restraints directly from the radial menu (#52614) 2020-08-11 21:54:22 -03:00
Dennok
a190d33cdb Move cable radial menu to attack_self. Move recipe crafting to radial menu chose (#52540)
* Move cable radial menu to attack_self

Move recipe crafting to radial menu chose

* Remove loc check in attack_self
2020-07-30 01:21:11 -03:00
Dennok
c327c76c13 Remove cable hubs from handcrafting (#52539) 2020-07-29 10:06:02 -03:00
jdawg1290
62676e72a8 Force LF line endings with gitattributes and convert repo (#52266)
Co-authored-by: Aleksej Komarov <stylemistake@gmail.com>
2020-07-16 03:02:40 +03:00
WarlockD
12540c7b30 Fixed cyborgs using multi layer cables. (#51714)
* Fixed cyborgs using multi layer cables.

* I guess human's should work on wires too

* Ugh I need to look more at the mob code some day
2020-06-19 11:55:50 -04:00
ShizCalev
cbaf10eea1 Fixes singular cable stacks never showing up properly 2020-06-15 02:07:14 -04:00
nemvar
6ef421be42 Renames a few variables. Also reorders icon fallback order again. (#51060)
* Renames a few variables. Also reorders fallback order again.
Renames item_state to inhand_icon_state
Renames mob_overlay_icon to worn_icon
Renames mob_overlay_state to worn_icon_state
worn_icon_state/mob_overlay_state now never gets used for inhands.

* Fixes some comments

* Fixes map issue

* Restart lints

* Properly resolves conflicts
2020-05-25 06:47:19 +02:00
Dennok
13456c32a7 remove hub coloring (#50345)
Remove hub color layer indication
Why It's Good For The Game

i see it redundant after i add cable visualization
2020-04-18 10:59:25 +12:00
Tad Hardesty
e699211c8a Fix editor icon state of layer 3 cables (#50400) 2020-04-06 16:50:20 +08:00
Dennok
08984765c8 [READY] Multi z and layer power rework (#49773)
* Multi z and layer power rework

* remove some

unfinished code

* some whitespaces

Co-Authored-By: Rohesie <rohesie@gmail.com>

* better bit

Co-Authored-By: Rohesie <rohesie@gmail.com>

* better bit

Co-Authored-By: Rohesie <rohesie@gmail.com>

* up EoL

* glob rad list

* up

* more glob radial lists

* up

* up

Co-authored-by: Rohesie <rohesie@gmail.com>
2020-04-01 17:10:25 -03:00
Tad Hardesty
0c67ccf379 Fix runtime on cable bridge mapload initialization (#50280) 2020-03-30 22:27:46 +08:00
Time-Green
c04abab2bf [READY] Makes plumbing mappable and reworks hiding (#49644)
🆑
tweak: Ducts can now be hidden under tiles
code: tile hiding is now an element and way cooler and sexier
/🆑

Ducts can now be hidden under tiles
Plumbing machinery connects can now be hidden aswell
Plumbing can now also be properly mapped in without breaking anything
Plumbing component now uses the normal overlay systeem instead of being a weird exception

You can now add the /datum/element/undertile element to instantly make something hidable under tiles when appropriate.
2020-03-16 20:37:59 +13:00
skoglol
1cc3bd1b96 Merge pull request #49740 from Dennok/patch-13
get_cable_node() twix
2020-03-14 02:22:11 +01:00
Dennok
b53537533b Change cable layer only in hand. (#49852)
Now you can change cable layer only in hand
2020-03-10 01:32:39 -07:00
Dennok
fcf375d7d9 layer icon 2020-03-06 21:48:52 +02:00
Dennok
3eb15cdfbf up 2020-03-06 21:39:37 +02:00
ShizCalev
7209ac3c93 Removes unnessacary math defines 2020-02-17 23:09:09 -05:00
MrPerson
26093e5ac2 Further update_icon splitup (#48784)
* Further update_icon splitup

After this there'll be just under 100 old update_icon() calls that need fixing.

* Thanks Travis
2020-01-22 10:18:05 -05:00
AnturK
bca492823a Runtime fixes: Episode 113 (#48814)
* Fixes mood nanite settings

* Fixes yet another quirk runtime.

* Ugly paperplane fix

* Abductor armor runtime.

* cablecutting runtime

* Nukeop death runtime (were those spec deaths meant to fire on gibbing too ? )

* headpike runtime fix

* ERT outfit runtime

* bonfire oxygen runtime

* Rest of nanite updates
2020-01-16 11:16:37 -05:00
Mickyan
55f19df748 Normalizes payouts and vendor prices to an approximate of cargo's credit value (#48174)
* prices & income

* more prices

* lower megaseed premium prices

* custom prices for premium tools

* slightly lowers prices for some snacks/drinks/cigs

* hey get back here
2019-12-16 17:43:27 +01:00
ShizCalev
fc405b418a Fixes powernet avail checks (#47771) 2019-11-15 00:25:54 -08:00
Tad Hardesty
6bedaca6ce Add period to cable bridge description (#47689) 2019-11-11 11:51:49 -05:00
skoglol
938e66f62c Adds sorting to most input() lists (#47117)
* Adds sorting to most input() lists.

* Sorted some global lists, added more input sorting

* Should now use correct sort everywhere.

* compiles

* Last fixes.
2019-10-22 04:28:42 -07:00
Qustinnus
a394ccdc2b Material datum chairs & tables and applies materials to all items (Now with less pain for mining & RnD) (#46525)
removes materials list from items, uses custom_materials instead. This might introduce some bugs so we should testmerge this for a while (and Ill test stuff locally as much as I can)

this also adds material crafting to sheets. Test case being chairs. In the future we can add stuff like tables, walls, doors etc.

also applies materials to everything, with fixes, which can close #46299
2019-10-08 11:06:02 -04:00
Rob Bailey
12d2e89d50 Cable Layers (#46761)
* Cable Layers

rudimentary function

layer placement

icons

rebase fixes

sprites

refactor

dme fix

dme fix again

potentially functional version

power bridge sprites work correctly

slightly better sprite

examine message + minor organization

* revert runtime changes
2019-10-03 13:25:33 +02:00
kingofkosmos
df1fecc58c Adds notice-span to visible_messages with no spans (#46044)
About The Pull Request

Adds 'notice' span class to all visible_messages which had no span class, making all those black messages blue.
Why It's Good For The Game

This should help differentiate action-messages from talking-messages in the chat. More actions will be blue, thus black talking-messages should pop out more.
2019-08-26 20:50:00 +12:00
Rob Bailey
26b04ede42 Obliterates item_color: new washing machine functionality edition (#45961)
About The Pull Request

Completely removes item_color and the clusterfuck of bad programming it caused.

In places where item_color was used for entirely unique purposes it was split off and renamed to a new var on that typepath only, or refactored so it wasn't needed

In places where item_color was used as a dye color, it was converted to the new dye_color var

In places where item_color was used as the worn overlay it was removed and instead now icon_state is always used as the clothing overlay.

A new mob_overlay_icon var was added for manually setting where the mob overlay icon path is for specific items.

Moved some mob overlay files relating to clothing to their own directory as well for organization purposes.

Totally refactors washing machines, instead of the horrible abortion that was iterating through the typepath it now uses a registry of dye results.

Some bonus functionality to come out of this:
the washing machine now supports arbitrary dye colors.
Why It's Good For The Game

It's been 4 years since the "this should be deprecated soonish" comment was added, and this var is a shitpile of confusion if you just trace the usage of it.
Changelog

cl
add: Washing machines now support arbitrary dye color
add: Washing machines now dye nearly every item.
refactor: lots of backend changes to clothing overlays, report any issues
/cl
2019-08-26 20:38:11 +12:00
Qustinnus
b33d1c49a3 [READY] Floydmats (Datum materials) & custom toolboxes (#45118)
* Initial work

* more

* ass

* wsedfwedff

* asss

* test

* stuff

* fuck

* sss

a

* kms

* asdadwedwdfwefwef

* start

* test

* dwwdew

* ewefwfef

* Redemption machine (#8)

* Redemption machine

* Removes debug messages

* changes

* fuckmyshitup

* coin mint works with new material shenanigans (#10)

* Auto stash before merge of "materials" and "origin/materials"

* woops

* furnace (#11)

* autolathe manufacturing of toolboxes

* eggs in a basket

* some small changes

* matcolors

* documentation

* more documentation and effects

* done

* Color man bad (#12)

* fixes designs

* ass

* more fixes

* fuck me

* firestacks adder

* epic fixes

* fixes designs

* DONE DIDDILY DOO

* removes category macro

* ch-ch-ch-changes

* fixes some stuff

* Fixes display of ore values (#9)

* Redemption machine

* Removes debug messages

* Re-adds value display

* Replaces the fire stacking component with an element instead (#13)

* fixes examine

* fixes ligma bugs

* double ligma boofus

* fix

* misses some defines

* fixes ORM

* Update code/datums/components/material_container.dm

Co-Authored-By: Emmett Gaines <ninjanomnom@gmail.com>

* fixes

* Makes glass objects weaker (#14)

* Makes glass objects weaker

* uses correct proc

* fixes shit

* honk honk

* better

* oh shit oh fuck

* fixes

* fuck ORMs

* fixes the biogen

* documentation

* ass (#15)

* component

* changes

* ass

* ass

* doc

* Auto stash before merge of "materials-plasmacomponent" and "origin/materials-plasmacomponent"

* fixes rounding

* fixed
2019-07-24 11:27:01 -04:00
oranges
48624da23c Merge pull request #45351 from actioninja/doublepropogatefix
Fixes cable propagate logic after a cut being completely incorrect
2019-07-24 15:24:19 +12:00
oranges
cd45c46375 Merge pull request #45352 from actioninja/propagatecleanup
Cleans up powernet propagate code
2019-07-24 15:23:52 +12:00
actioninja
0837f201b3 cleans up propagate code 2019-07-21 18:45:57 -07:00
actioninja
7aa181cccc fixes powernet splitting working completely incorrectly 2019-07-21 18:32:06 -07:00
actioninja
ad63fa879d fixes a runtime in cable Destroy that resulted in singularities not succing 2019-07-21 15:30:09 -07:00
Rob Bailey
65e3913df3 Fixes smeses linking to themselves (#44971)
* fixes smeses linking to themselves

* Update code/modules/power/cable.dm

Co-Authored-By: Tad Hardesty <tad@platymuus.com>
2019-07-05 09:31:55 +12:00
Rob Bailey
f8ee5be8ee Properly fixes smart cable lag issues and also fixes the awful connection issues. (#44945)
About The Pull Request

I ended up just rewriting propagation logic entirely. This needs a bit of cleanup but this is a really high priority fix.
Actually tested this time. I can confirm for sure this is working in all situations that were previously broken.
Closes #44940
Closes #44936
Closes #44935
Closes #44929
Why It's Good For The Game

I fucked up bad
Changelog

cl
fix: cables now actually function again (I'm so sorry)
/cl
2019-07-03 23:34:13 +12:00
Rob Bailey
532cc7ea63 Smart cable fixes (#44784)
I wanted to get this up next day but I kept falling asleep before finishing what I wanted to
About The Pull Request

Fixes some issues that have been brought to my attention with smart cables

Closes #44768
Closes #44775
Why It's Good For The Game

this shit pretty broke as is in game.
Changelog

cl
fix: removed mech rcl from the research node so it stops spamming a warning in log
fix: cables now disconnect machines when cut
fix: terminal linking/not linking behavior with smeses has been improved
fix: couple of small mapping fixes
tweak: changed cable coils back to 30
tweak: changed the box smes room a little to prevent stacking terminals
tweak: removed the rpcl from engineering on every map because it's not used for wiring anymore
/cl
2019-06-27 12:20:49 +12:00
Rob Bailey
65e9888fa6 [READY] Smart Cables (#44265)
Cables now autoconnect on cardinal directions. All cable placement has been completely stripped out and replaced with simple single cable per tile logic.
Low effort demo: https://www.youtube.com/watch?v=fXp8s6ORWbA
Yes I am aware that cutting it is not dropping wire, that version was bugged.
Cables no longer need a knot specifically placed to link to power objects. The sprite is automatically changed to represent this.
The only exception to this logic is that on smes units, due to the terminal being next to the output, they will not link there.
On a technical powernet side, this is the same as old cables once actually placed. They still use the existing powernet system, just the placement and connection works differently.

Old cables have been turned into "pipe cleaners" for wire art purposes. they work just like the old ones, just missing all the powernet functionality, and also you can put them on top of the floor.
Why It's Good For The Game

How obnoxious cables were to both map and work with in game has been something that has annoyed me for a really long time now.
This is both easier for new players to learn, and easier for experienced players to work with.
Along with making in game much more intuitive and easier, it makes mapping much easier as well. Mad lad wjohn was able to rip out all the mapping conversion in one day because of how much faster it is to work with.

cl actioninja and wjohn
add: Cables have been completely reworked. Simple per tile connection logic, automatically connects to things above it. Think minecraft redstone.
add: Old cables have been kept as pipe cleaner. They are non-functional in terms of power, but otherwise have the same connection logic. Also can go on top of tiles.
remove: mech cable layer has been removed because it was terrible shitcode nobody used
tweak: (sort of balance) cable stack sized has been reduced to 15.
/cl
2019-06-22 10:24:37 +12:00
vuonojenmustaturska
6a106bc877 Remove reagent ids and use typepaths where applicable (#44166)
cl Naksu
code: reagent IDs have been removed in favor using reagent typepaths where applicable
fix: mechas, borg hyposprays etc no longer display internal reagent ids to the player
/cl
2019-05-31 21:57:26 +12:00