Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Updating from Neb dev #120

Merged
merged 134 commits into from
Jan 19, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
134 commits
Select commit Hold shift + click to select a range
e4e2ff4
Simplify kharmaan nymph contains_crystals check
out-of-phaze Jan 3, 2025
3202ca2
Rename supermatter material presets to exotic matter
out-of-phaze Jan 3, 2025
070c898
Improve modpack modularity for niche edge cases
out-of-phaze Jan 3, 2025
1bb2ab4
Fix hardcoded stage checks in singularity code
out-of-phaze Jan 3, 2025
b33391c
Adding footguns section to contributing.md.
MistakeNot4892 Jan 3, 2025
72d2e51
Merge pull request #4692 from MistakeNot4892/docs/footguns.md
out-of-phaze Jan 5, 2025
698043e
Fixes inverted is_watertight() logic.
MistakeNot4892 Jan 7, 2025
972e321
Moves nanite fluid into compounds, disambiguates the recipe name.
MistakeNot4892 Jan 7, 2025
7ef6054
Add a modpack compatibility patch system
out-of-phaze Jan 3, 2025
54b94a4
Rewrite soulstone reaction handling
out-of-phaze Jan 3, 2025
d8c53d2
Fixes janiborg not cleaning turfs.
MistakeNot4892 Jan 8, 2025
2267e77
Added fallback hair and facial hair for appearance changer.
MistakeNot4892 Jan 8, 2025
fc12c69
Adding automatic shuttle landmarks to tradeship, ministation and exodus.
MistakeNot4892 Jan 8, 2025
a2fe6ec
Readding worms to turf digging.
MistakeNot4892 Jan 8, 2025
299e0b6
Merge pull request #4690 from out-of-phaze/modular/supermatter-prep
MistakeNot4892 Jan 9, 2025
e360a52
Moving dipping, filling and emptying reagent containers onto alt inte…
MistakeNot4892 Dec 20, 2024
dc8c34c
Allowing interactions to be used during standard attack_hand() clicks.
MistakeNot4892 Dec 20, 2024
8602000
Adding alt interaction info to examine().
MistakeNot4892 Dec 20, 2024
9a3e1ba
Adding some basic reagent interactions to the standard interaction li…
MistakeNot4892 Dec 20, 2024
24aa9d5
Moving structure interactions into alt interactions.
MistakeNot4892 Dec 20, 2024
2a69ca1
Updating hammer code for reworked interactions.
MistakeNot4892 Jan 1, 2025
c45a83d
Fixing regression in drake digging.
MistakeNot4892 Jan 5, 2025
f58faeb
Breaking up mining.dmi.
MistakeNot4892 Dec 22, 2024
59dc0a5
Implementing Doe's chisel icons.
MistakeNot4892 Jan 9, 2025
3fdea92
Adding miscellaneous crafting items for future work.
MistakeNot4892 Jan 9, 2025
8c21402
Updating the save replication script to allow targeting specific ckey…
MistakeNot4892 Jan 10, 2025
a815bec
Fixing hatchlings having the wrong offsets in prefs.
MistakeNot4892 Jan 10, 2025
df19a2b
Removing the steel axe from Shaded Hills.
MistakeNot4892 Jan 10, 2025
530a9dd
Rewrites the ability system.
MistakeNot4892 Dec 5, 2024
e9c6ef9
Merge pull request #4703 from MistakeNot4892/fixes/staging2
out-of-phaze Jan 10, 2025
0833823
Move supermatter content into a modpack
out-of-phaze Jan 3, 2025
caabb37
Flooring will default to plating footsteps instead of silence.
MistakeNot4892 Jan 8, 2025
6a70066
persistant -> persistent
MistakeNot4892 Jan 8, 2025
52443f9
Fixes persistence not spawning instances.
MistakeNot4892 Jan 8, 2025
16204d7
Removes final icon_state set from reworked seed storage.
MistakeNot4892 Jan 10, 2025
604a011
Fixes inverted food check in chicken attackby.
MistakeNot4892 Jan 11, 2025
a588779
Fixes woven roofing tiles not being craftable.
MistakeNot4892 Jan 11, 2025
b38f355
Fixes crafting recipe stack type validation.
MistakeNot4892 Jan 11, 2025
bbd603d
Fixing runtime in loadout is_permitted().
MistakeNot4892 Jan 11, 2025
d40c116
Reordering attackby interaction for hydrotrays to allow sampling with…
MistakeNot4892 Jan 11, 2025
560756b
Fixing issues with being shocked by depowered wires.
MistakeNot4892 Jan 11, 2025
57b0f8d
Merge pull request #4715 from MistakeNot4892/tweak/savecopy
out-of-phaze Jan 12, 2025
854862d
Merge pull request #4708 from MistakeNot4892/feature/wormreturn
out-of-phaze Jan 12, 2025
223d550
Merge pull request #4217 from MistakeNot4892/rework/spells
out-of-phaze Jan 12, 2025
ff04371
Requested changes to barrel PR.
MistakeNot4892 Jan 11, 2025
b9a66d8
Adding shield fasteners and shield crafting.
MistakeNot4892 Jan 10, 2025
a0f0b2c
Adding a UWII HUD and the ability to apply overlays to screen objects.
MistakeNot4892 Oct 18, 2024
091e58a
Repathing standard jobs to shared type to fix issues exposed by CI.
MistakeNot4892 Jan 6, 2025
b348d11
Reworking HUD icons to support modpacked jobs/antags.
MistakeNot4892 Jan 6, 2025
d87f040
Adding standard jobs pack to modpacks testing.
MistakeNot4892 Jan 6, 2025
87880e3
Find and replacing _ from the start of hud_icon (debugging purposes).
MistakeNot4892 Jan 6, 2025
c26f8c6
Converting remaining standard jobs.
MistakeNot4892 Jan 7, 2025
b56f12a
Adding bellows.
MistakeNot4892 Jan 9, 2025
14c0e45
Adding harvesting lumps of mud or snow from turfs.
MistakeNot4892 Jan 12, 2025
20ff3ad
Crossing mud, snow or sand will leave footprints.
MistakeNot4892 Jan 12, 2025
3d39fb9
Corrects a few issues with snow collection.
MistakeNot4892 Jan 12, 2025
a607c72
Adding collection/prints to clay.
MistakeNot4892 Jan 12, 2025
e93ae66
Ported snowmen from Polaris.
MistakeNot4892 Jan 12, 2025
09bf491
Fluids will now show direction of flow.
MistakeNot4892 Jan 12, 2025
edfd905
Making fluid alpha masks a bit more selective.
MistakeNot4892 Jan 12, 2025
0e748a6
Replacing the landmarks on the Shaded Hills map with single-direction…
MistakeNot4892 Jan 12, 2025
dd67528
Merge pull request #4691 from out-of-phaze/modular/supermatter
MistakeNot4892 Jan 13, 2025
ddbe659
Adds a quick interaction proc for ctrl-click while holding an atom.
MistakeNot4892 Jan 13, 2025
62473bd
Mops now use touch_turf() directly instead of splash().
MistakeNot4892 Jan 13, 2025
201aa23
Soap now uses touch_atom() and touch_turf() will touch atoms on the t…
MistakeNot4892 Jan 13, 2025
f40c6ad
Fixing null bodytype runtime somewhere in living mob qdel.
MistakeNot4892 Jan 13, 2025
a3e2114
Clearing pending status timer during Destroy().
MistakeNot4892 Jan 13, 2025
0e6cc97
Fixing double timer delete in living Destroy().
MistakeNot4892 Jan 13, 2025
1604ada
Reagent heaters renamed to hotplates, can cook food in pots/skillets.
MistakeNot4892 Jan 13, 2025
d60c66d
Adds skillet, pot and hotplate to tradeship galley.
MistakeNot4892 Jan 13, 2025
f7ae462
Attempting to fix pots not showing their boiling overlay.
MistakeNot4892 Jan 13, 2025
f5f1008
Adding pot/skillet to Mini.
MistakeNot4892 Jan 13, 2025
ef56da6
Reverting status timer deletion due to runtimes.
MistakeNot4892 Jan 13, 2025
6167b93
Cleaning up affect_overdose() procs.
MistakeNot4892 Jan 13, 2025
b2b3eb2
Fixing cash vanishing when dispensed.
MistakeNot4892 Jan 13, 2025
3110671
Merge pull request #4711 from MistakeNot4892/rework/mining_icons
out-of-phaze Jan 14, 2025
b39ccd2
Merge pull request #4707 from MistakeNot4892/fix/staging
out-of-phaze Jan 14, 2025
ccf760a
Merge pull request #4705 from MistakeNot4892/fixes/staging3
out-of-phaze Jan 14, 2025
8ba8cd6
Merge pull request #4716 from MistakeNot4892/fix/hatchlings
out-of-phaze Jan 14, 2025
bab2ce3
Merge pull request #4660 from MistakeNot4892/rework/barrels
out-of-phaze Jan 14, 2025
3797c21
Merge pull request #4709 from MistakeNot4892/feature/misc_items
out-of-phaze Jan 14, 2025
a56c4d1
Merge pull request #4714 from MistakeNot4892/feature/shield_crafting
out-of-phaze Jan 14, 2025
85f4ab6
Merge pull request #4713 from MistakeNot4892/feature/bellows
out-of-phaze Jan 14, 2025
df59bfb
Automatic changelog generation for PR #4660 [ci skip]
NebulaSS13Bot Jan 14, 2025
ebd9a98
Moving Shaded Hills submaps into fantasy modpack.
MistakeNot4892 Jan 10, 2025
cc60023
Moved additional fishing logic onto areas in general.
MistakeNot4892 Jan 10, 2025
81b95da
Moving subtemplate loading helpers from Shaded Hills to general code.
MistakeNot4892 Jan 10, 2025
ccb4a47
Moving mob spawning for levels out of Shaded Hills onto main code.
MistakeNot4892 Jan 10, 2025
f263cdf
Adding default name to fantasy area.
MistakeNot4892 Jan 15, 2025
d66dbb7
Additional fishing results are now a static list returned by a getter.
MistakeNot4892 Jan 15, 2025
c744835
Automatic changelog generation [ci skip]
NebulaSS13Bot Jan 15, 2025
9d3b082
Added a forging hammer as prep for blacksmithy.
MistakeNot4892 Jan 9, 2025
4a8c5f6
Merge branch 'staging' of github.com:NebulaSS13/Nebula into devupdate
MistakeNot4892 Jan 15, 2025
b76e49e
Merge pull request #4736 from NebulaSS13/stable
MistakeNot4892 Jan 15, 2025
0e66de1
Merge branch 'staging' of github.com:NebulaSS13/Nebula into devupdate
MistakeNot4892 Jan 15, 2025
2636c12
Merge pull request #4735 from MistakeNot4892/devupdate
MistakeNot4892 Jan 15, 2025
3e6d930
Removes transfer volume override from barrels.
MistakeNot4892 Jan 15, 2025
69ba3ed
Adds pockets to cloaks and suit jackets.
MistakeNot4892 Jan 15, 2025
96402ce
Sulfuric acid dispensers are non-dense.
MistakeNot4892 Jan 15, 2025
9c5a0b4
Sulphur -> sulfur consistency pass.
MistakeNot4892 Jan 15, 2025
1b3d142
General crayon glow up.
MistakeNot4892 Jan 15, 2025
55a0a37
Adding floor hazard checks to slipping, lava and bear traps.
MistakeNot4892 Jan 15, 2025
0516a1b
Added immune_to_floor_hazards() check to glass shards.
MistakeNot4892 Jan 15, 2025
7ae6216
Merge pull request #4734 from MistakeNot4892/fix/cash
out-of-phaze Jan 15, 2025
ac8a105
Merge pull request #4730 from MistakeNot4892/fix/mopping
out-of-phaze Jan 15, 2025
b326b79
Merge pull request #4728 from MistakeNot4892/feature/dblclick
out-of-phaze Jan 15, 2025
ae6bceb
Merge pull request #4722 from MistakeNot4892/feature/flows
out-of-phaze Jan 15, 2025
978ba95
Automatic changelog generation for PR #4722 [ci skip]
NebulaSS13Bot Jan 15, 2025
10a6662
Merge pull request #4704 from MistakeNot4892/feature/hudoverlays
out-of-phaze Jan 15, 2025
ebafbc6
Merge pull request #4700 from MistakeNot4892/feature/standardjobs
out-of-phaze Jan 15, 2025
e2390c0
Merge pull request #4721 from MistakeNot4892/feature/snow
out-of-phaze Jan 15, 2025
b77c862
Merge pull request #4732 from MistakeNot4892/tweak/cooktop
out-of-phaze Jan 15, 2025
ad5a03b
Merge pull request #4733 from MistakeNot4892/fix/overdose
out-of-phaze Jan 15, 2025
6f87f93
Automatic changelog generation for PR #4704 [ci skip]
NebulaSS13Bot Jan 15, 2025
aeff7e3
Automatic changelog generation for PR #4721 [ci skip]
NebulaSS13Bot Jan 15, 2025
7855932
Merge branch 'staging' of github.com:NebulaSS13/Nebula into devupdate
MistakeNot4892 Jan 15, 2025
df61201
CI fix for supermatter job.
MistakeNot4892 Jan 15, 2025
dda704c
Fixes inverted powernet check.
MistakeNot4892 Jan 15, 2025
105d157
Merge pull request #4742 from MistakeNot4892/devupdate
MistakeNot4892 Jan 15, 2025
67d1eb8
Ported tabloids from Polaris.
MistakeNot4892 Jan 6, 2025
c3afc55
Automatic changelog generation [ci skip]
NebulaSS13Bot Jan 16, 2025
8c0219b
Updating issue template due to Github changing the system for some re…
MistakeNot4892 Jan 17, 2025
e887699
Reshuffles inventory to allow dynamic intents in the future.
MistakeNot4892 Jan 17, 2025
e9266eb
Merge pull request #4741 from MistakeNot4892/fixes/floorhazards
out-of-phaze Jan 18, 2025
48d4157
Merge pull request #4743 from MistakeNot4892/fix/powernet
out-of-phaze Jan 18, 2025
918496b
Merge pull request #4740 from MistakeNot4892/fixes/staging4
out-of-phaze Jan 18, 2025
df41986
Merge pull request #4717 from MistakeNot4892/rework/fantasy_submaps
out-of-phaze Jan 18, 2025
f6ae31b
Merge pull request #4710 from MistakeNot4892/feature/forging_hammer
out-of-phaze Jan 18, 2025
1f32eb1
Merge pull request #4699 from MistakeNot4892/feature/tabloids
out-of-phaze Jan 18, 2025
2351ce8
Merge pull request #4748 from MistakeNot4892/feature/intents
out-of-phaze Jan 18, 2025
d419f95
Automatic changelog generation for PR #4748 [ci skip]
NebulaSS13Bot Jan 18, 2025
d904c93
Merge branch 'staging' of github.com:NebulaSS13/Nebula into devupdate
MistakeNot4892 Jan 19, 2025
eecbcc1
Merge branch 'devupdate' of github.com:MistakeNot4892/Nebula into for…
MistakeNot4892 Jan 19, 2025
90206e0
Updating Pyrelight to compile on new dev.
MistakeNot4892 Jan 19, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
62 changes: 62 additions & 0 deletions .github/ISSUE_TEMPLATE/issue-report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
---
name: Issue report
about: Create a report about a bug or other issue
title: ''
labels: ''
assignees: ''

---

<!--
Anything inside tags like these is a comment and will not be displayed in the final issue.
Be careful not to write inside them!

Every field other than 'specific information for locating' is required.
If you do not fill out the 'specific information' field, please delete the header.
/!\ Omitting or not answering a required field will result in your issue being closed. /!\
Repeated violation of this rule, or joke or spam issues, will result in punishment.

PUT YOUR ANSWERS ON THE BLANK LINES BELOW THE HEADERS
(The lines with four #'s)
Don't edit them or delete them - it's part of the formatting
-->

#### Description of issue



#### Difference between expected and actual behavior



#### Steps to reproduce



#### Specific information for locating
<!-- e.g. an object name, paste specific message outputs... -->



#### Length of time in which bug has been known to occur
<!--
Be specific if you approximately know the time it's been occurring
for—this can speed up finding the source. If you're not sure
about it, tell us too!
-->



#### Client version, Server revision & Game ID
<!-- Found with the "Show server revision" verb in the OOC tab in game. -->



#### Issue bingo
<!-- Check these by writing an x inside the [ ] (like this: [x])-->
<!-- Don't forget to remove the space between the brackets, or it won't work! -->
- [ ] Issue could be reproduced at least once
- [ ] Issue could be reproduced by different players
- [ ] Issue could be reproduced in multiple rounds
- [ ] Issue happened in a recent (less than 7 days ago) round
- [ ] [Couldn't find an existing issue about this](https://github.com/NebulaSS13/Nebula/issues)
11 changes: 11 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,3 +30,14 @@ This is a quick and dirty set of agreed-upon standards for contributions to the
- If there's a personal dislike of the PR, post about it for discussion. Maybe have an 'on hold for discussion' label. Try to reach a consensus/compromise. Failing a compromise, a majority maintainer vote will decide.
- First person to review approves the PR, second person to review can merge it. If 24 hours pass with no objections, first person can merge the PR themselves.
- PRs can have a 24 hour grace period applied by maintainers if it seems important for discussion and responses to be involved. Don't merge for the grace period if applied (reviews are fine).

### Footguns
A footgun is a pattern, function, assumption etc. that stands a strong chance to shoot you in the foot. They are documented here for ease of reference by new contributors.

#### List footguns
- Adding lists to lists will actually perform a merge, rather than inserting the list as a new record. If you want to insert a list into a list, you need to either:
- double-wrap it, ex. `my_list += list(list("some_new_data" = 25))`
- set the index directly, ex. `my_list[my_list.len] = list("some_new_data" = 25)`
- Using variables and macros as associative list keys have some notable behavior.
- If declaring an associative list using a macro as a key, in a case where the macro does not exist (due to misspelling, etc.), that macro name will be treated as a string value for the associative list. You can guard against this by wrapping the macro in parens, ex. `list( (MY_MACRO_NAME) = "some_value" )`, which will fail to compile instead in cases where the macro doesn't exist.
- If a variable is used as the associative key, it *must* be wrapped in parens, or it will be used as a string key.
2 changes: 1 addition & 1 deletion code/__defines/_planes+layers.dm
Original file line number Diff line number Diff line change
Expand Up @@ -178,7 +178,7 @@ What is the naming convention for planes or layers?
#define ABOVE_LIGHTING_PLANE 4 // laser beams, etc. that shouldn't be affected by darkness
#define ABOVE_LIGHTING_LAYER 1
#define BEAM_PROJECTILE_LAYER 2
#define SUPERMATTER_WALL_LAYER 3
#define SUBSPACE_WALL_LAYER 3
#define OBFUSCATION_LAYER 4

#define FULLSCREEN_PLANE 5 // for fullscreen overlays that do not cover the hud.
Expand Down
25 changes: 0 additions & 25 deletions code/__defines/gamemode.dm
Original file line number Diff line number Diff line change
Expand Up @@ -33,31 +33,6 @@
#define DEFAULT_TELECRYSTAL_AMOUNT 130
#define IMPLANT_TELECRYSTAL_AMOUNT(x) (round(x * 0.49)) // If this cost is ever greater than half of DEFAULT_TELECRYSTAL_AMOUNT then it is possible to buy more TC than you spend

// SPELL FLAGS
#define Z2NOCAST BITFLAG(0) //if this is added, the spell can't be cast at centcomm
#define INCLUDEUSER BITFLAG(1) //does the spell include the caster in its target selection?
#define IGNOREDENSE BITFLAG(2) //are dense turfs ignored in selection?

//End split flags
#define CONSTRUCT_CHECK BITFLAG(12) //used by construct spells - checks for nullrods
#define NO_BUTTON BITFLAG(13) //spell won't show up in the HUD with this

//invocation
#define SpI_SHOUT "shout"
#define SpI_WHISPER "whisper"
#define SpI_EMOTE "emote"
#define SpI_NONE "none"

//upgrading
#define Sp_SPEED "speed"
#define Sp_POWER "power"
#define Sp_TOTAL "total"

//casting costs
#define Sp_RECHARGE "recharge"
#define Sp_CHARGES "charges"
#define Sp_HOLDVAR "holdervar"

//Voting-related
#define VOTE_PROCESS_ABORT 1
#define VOTE_PROCESS_COMPLETE 2
Expand Down
16 changes: 0 additions & 16 deletions code/__defines/machinery.dm
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,6 @@ var/global/defer_powernet_rebuild = 0 // True if net rebuild will be called
#define STAGE_THREE 5
#define STAGE_FOUR 7
#define STAGE_FIVE 9
#define STAGE_SUPER 11

// NanoUI flags
#define STATUS_INTERACTIVE 2 // GREEN Visability
Expand Down Expand Up @@ -103,21 +102,6 @@ var/global/defer_powernet_rebuild = 0 // True if net rebuild will be called
#define ATMOS_DEFAULT_VOLUME_MIXER 500 // L.
#define ATMOS_DEFAULT_VOLUME_PIPE 70 // L.

// These are used by supermatter and supermatter monitor program, mostly for UI updating purposes. Higher should always be worse!
#define SUPERMATTER_ERROR -1 // Unknown status, shouldn't happen but just in case.
#define SUPERMATTER_INACTIVE 0 // No or minimal energy
#define SUPERMATTER_NORMAL 1 // Normal operation
#define SUPERMATTER_NOTIFY 2 // Ambient temp > 80% of CRITICAL_TEMPERATURE
#define SUPERMATTER_WARNING 3 // Ambient temp > CRITICAL_TEMPERATURE OR integrity damaged
#define SUPERMATTER_DANGER 4 // Integrity < 50%
#define SUPERMATTER_EMERGENCY 5 // Integrity < 25%
#define SUPERMATTER_DELAMINATING 6 // Pretty obvious.

#define SUPERMATTER_DATA_EER "Relative EER"
#define SUPERMATTER_DATA_TEMPERATURE "Temperature"
#define SUPERMATTER_DATA_PRESSURE "Pressure"
#define SUPERMATTER_DATA_EPR "Chamber EPR"

// Scrubber modes
#define SCRUBBER_SIPHON "siphon"
#define SCRUBBER_SCRUB "scrub"
Expand Down
8 changes: 8 additions & 0 deletions code/__defines/misc.dm
Original file line number Diff line number Diff line change
Expand Up @@ -370,3 +370,11 @@
#define RADIAL_LABELS_NONE 0
#define RADIAL_LABELS_OFFSET 1
#define RADIAL_LABELS_CENTERED 2

#define CRAYON_DRAW_RUNE "rune"
#define CRAYON_DRAW_GRAFFITI "graffiti"
#define CRAYON_DRAW_LETTER "letter"
#define CRAYON_DRAW_ARROW "arrow"

// Default UI style applied to client prefs.
#define DEFAULT_UI_STYLE /decl/ui_style/midnight
29 changes: 29 additions & 0 deletions code/_helpers/time.dm
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,35 @@ var/global/next_duration_update = 0
var/global/last_round_duration = 0
var/global/round_start_time = 0

/proc/ticks2shortreadable(tick_time, separator = ":")
var/hours = round(tick_time / (1 HOUR))
var/minutes = round((tick_time % (1 HOUR)) / (1 MINUTE))
var/seconds = round((tick_time % (1 MINUTE)) / (1 SECOND))
var/out = list()

if(hours > 0)
out += "[hours]"

if(minutes > 0)
if(minutes < 10 && hours > 0)
out += "0[minutes]"
else
out += "[minutes]"
else if(hours > 0)
out += "00"

if(seconds > 0)
if(seconds < 10 && (minutes > 0 || hours > 0))
out += "0[seconds]"
else
out += "[seconds]"
else if(minutes > 0 || hours > 0)
out += "00"

if(length(out))
return jointext(out, separator)
return null

/proc/ticks2readable(tick_time)
var/hours = round(tick_time / (1 HOUR))
var/minutes = round((tick_time % (1 HOUR)) / (1 MINUTE))
Expand Down
11 changes: 9 additions & 2 deletions code/_onclick/click.dm
Original file line number Diff line number Diff line change
Expand Up @@ -282,10 +282,17 @@
return A.CtrlClick(src)

/atom/proc/CtrlClick(var/mob/user)
if(loc == user)
var/decl/interaction_handler/handler = get_quick_interaction_handler(user)
if(handler)
var/using_item = user.get_active_held_item() || user.get_usable_hand_slot_organ()
if(handler.is_possible(src, user, using_item))
return handler.invoked(src, user, using_item)
return FALSE

/atom/movable/CtrlClick(var/mob/living/user)
return try_make_grab(user, defer_hand = TRUE) || ..()
if(!(. = ..()) && loc != user)
return try_make_grab(user, defer_hand = TRUE) || ..()

/*
Alt click
Expand All @@ -295,7 +302,7 @@
A.AltClick(src)

/atom/proc/AltClick(var/mob/user)
if(try_handle_interactions(user, get_alt_interactions(user), user?.get_active_held_item()))
if(try_handle_interactions(user, get_alt_interactions(user), user?.get_active_held_item(), check_alt_interactions = TRUE))
return TRUE
if(user?.get_preference_value(/datum/client_preference/show_turf_contents) == PREF_ALT_CLICK)
. = show_atom_list_for_turf(user, get_turf(src))
Expand Down
22 changes: 11 additions & 11 deletions code/_onclick/hud/_defines.dm
Original file line number Diff line number Diff line change
Expand Up @@ -16,21 +16,21 @@
#define ui_entire_screen "WEST,SOUTH to EAST,NORTH"
#define ui_center_fullscreen "CENTER-7,CENTER-7"

//Lower left, persistant menu
//Lower left, persistent menu
#define ui_inventory "LEFT:6,BOTTOM:5"

//Lower center, persistant menu
//Lower center, persistent menu
#define ui_sstore1 "LEFT+2:10,BOTTOM:5"
#define ui_id "LEFT+3:12,BOTTOM:5"
#define ui_belt "LEFT+4:14,BOTTOM:5"
#define ui_back "CENTER-2:14,BOTTOM:5"
#define ui_back "LEFT+3:22,BOTTOM:5"
#define ui_id "LEFT+4:26,BOTTOM:5"
#define ui_belt "RIGHT-5:16,BOTTOM:5"
#define ui_rhand "CENTER-1:16,BOTTOM:5"
#define ui_lhand "CENTER:16,BOTTOM:5"
#define ui_equip "CENTER-1:16,BOTTOM+1:5"
#define ui_swaphand1 "CENTER-1:16,BOTTOM+1:5"
#define ui_swaphand2 "CENTER:16,BOTTOM+1:5"
#define ui_storage1 "CENTER+1:16,BOTTOM:5"
#define ui_storage2 "CENTER+2:16,BOTTOM:5"
#define ui_storage1 "RIGHT-3:16,BOTTOM:5"
#define ui_storage2 "RIGHT-4:16,BOTTOM:5"

#define ui_alien_head "CENTER-3:12,BOTTOM:5" //aliens
#define ui_alien_oclothing "CENTER-2:14,BOTTOM:5"//aliens
Expand All @@ -48,13 +48,13 @@
#define ui_construct_fire "RIGHT-1:16,CENTER+1:13" //above health, slightly to the left
#define ui_construct_pull "RIGHT-1:28,BOTTOM+1:10" //above the zone selector icon

//Lower right, persistant menu
//Lower right, persistent menu
#define ui_dropbutton "RIGHT-4:22,BOTTOM:5"
#define ui_drop_throw "RIGHT-1:28,BOTTOM+1:7"
#define ui_pull_resist "RIGHT-2:26,BOTTOM+1:7"
#define ui_acti "RIGHT-2:26,BOTTOM:5"
#define ui_movi "RIGHT-3:24,BOTTOM:5"
#define ui_attack_selector "RIGHT-3:24,BOTTOM+1:6"
#define ui_acti "CENTER,BOTTOM:5"
#define ui_movi "RIGHT-2:24,BOTTOM:5"
#define ui_attack_selector "RIGHT-2:27,BOTTOM+2:9"
#define ui_zonesel "RIGHT-1:28,BOTTOM:5"
#define ui_acti_alt "RIGHT-1:28,BOTTOM:5" //alternative intent switcher for when the interface is hidden
#define ui_stamina "RIGHT-3:24,BOTTOM+1:5"
Expand Down
39 changes: 20 additions & 19 deletions code/_onclick/hud/hud.dm
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@
hud_used = initial(hud_used)
if(ispath(hud_used))
hud_used = new hud_used(src)
if(istype(hud_used))
hud_used.refresh_hud_icons()
refresh_lighting_master()

/datum/hud
Expand All @@ -22,7 +24,7 @@
var/inventory_shown = TRUE //the inventory
var/hotkey_ui_hidden = FALSE //This is to hide the buttons that can be used via hotkeys. (hotkeybuttons list of buttons)

var/default_ui_style = /decl/ui_style/midnight
var/default_ui_style = DEFAULT_UI_STYLE

var/list/alerts

Expand All @@ -45,6 +47,10 @@
instantiate()
..()

/datum/hud/proc/refresh_hud_icons()
for(var/obj/screen/elem in mymob?.client?.screen)
elem.queue_icon_update()

/datum/hud/Destroy()
. = ..()
stamina_bar = null
Expand All @@ -68,19 +74,19 @@
/datum/hud/proc/hide_inventory()
inventory_shown = FALSE
hidden_inventory_update()
persistant_inventory_update()
persistent_inventory_update()

/datum/hud/proc/show_inventory()
inventory_shown = TRUE
hidden_inventory_update()
persistant_inventory_update()
persistent_inventory_update()

/datum/hud/proc/hidden_inventory_update()
var/decl/species/species = mymob?.get_species()
if(istype(species?.species_hud))
refresh_inventory_slots(species.species_hud.hidden_slots, (inventory_shown && hud_shown))

/datum/hud/proc/persistant_inventory_update()
/datum/hud/proc/persistent_inventory_update()
var/decl/species/species = mymob?.get_species()
if(istype(species?.species_hud))
refresh_inventory_slots(species.species_hud.persistent_slots, hud_shown)
Expand Down Expand Up @@ -138,6 +144,9 @@
. = available_styles[1]

/datum/hud/proc/get_ui_color()
var/decl/ui_style/ui_style = get_ui_style_data()
if(!ui_style?.use_ui_color)
return COLOR_WHITE
return mymob?.client?.prefs?.UI_style_color || COLOR_WHITE

/datum/hud/proc/get_ui_alpha()
Expand Down Expand Up @@ -172,25 +181,17 @@
break

if(!inv_box)
inv_box = new /obj/screen/inventory(null, mymob, ui_style, ui_color, ui_alpha, UI_ICON_HANDS)
inv_box = new /obj/screen/inventory/hand(null, mymob, ui_style, ui_color, ui_alpha, UI_ICON_HANDS)
else
inv_box.set_ui_style(ui_style, UI_ICON_HANDS)
inv_box.color = ui_color
inv_box.alpha = ui_alpha

inv_box.SetName(hand_tag)
inv_box.icon_state = "hand_base"

inv_box.cut_overlays()
inv_box.add_overlay("hand_[inv_slot.hand_overlay || hand_tag]", TRUE)
if(inv_slot.ui_label)
inv_box.add_overlay("hand_[inv_slot.ui_label]", TRUE)
inv_box.update_icon()
LAZYDISTINCTADD(hand_hud_objects, inv_box)

inv_box.SetName(hand_tag)
inv_box.slot_id = hand_tag
inv_box.appearance_flags |= KEEP_TOGETHER

LAZYDISTINCTADD(hand_hud_objects, inv_box)
inv_box.update_icon()

// Clear held item boxes with no held slot.
for(var/obj/screen/inventory/inv_box in hand_hud_objects)
Expand All @@ -201,7 +202,7 @@
qdel(inv_box)

// Rebuild offsets for the hand elements.
var/hand_y_offset = 5
var/hand_y_offset = 21
var/list/elements = hand_hud_objects?.Copy()
while(length(elements))
var/copy_index = min(length(elements), 2)+1
Expand Down Expand Up @@ -363,7 +364,7 @@
client.screen += zone_sel //This one is a special snowflake

hud_used.hidden_inventory_update()
hud_used.persistant_inventory_update()
hud_used.persistent_inventory_update()
update_action_buttons()

//Similar to minimize_hud() but keeps zone_sel, gun_setting_icon, and healths.
Expand Down Expand Up @@ -400,7 +401,7 @@
hud_used.action_intent.screen_loc = ui_acti //Restore intent selection to the original position

hud_used.hidden_inventory_update()
hud_used.persistant_inventory_update()
hud_used.persistent_inventory_update()
update_action_buttons()

/client/proc/reset_click_catchers()
Expand Down
Loading