-
Notifications
You must be signed in to change notification settings - Fork 23
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
The final* update #889
Merged
Merged
The final* update #889
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This makes them a bit easier to read on brighter backgrounds, and also helps if the background gradient is disabled.
Use smaller, horizontal tabs in vertical layout with more spacing and a more distinct selection colour. This allows for more tabs in the same vertical space.
Ensure it doesn't exceed 25% of the total panel size when auto-sizing is enabled.
Provides a more standardised way of managing dialog windows with an open and close animation.
This allows adding a box shadow to elements such as windows, which gives them greater depth and emphasis. The rendering pipeline system is generic and can be used for more than just shadows, any multi-pass shader rendering can be performed with it.
Also add a box shadow to the webpage window.
This makes it much easier to focus on the modal's contents, and ties it more clearly to its intended host window.
This control is similar to a checkbox, but it implies some immediate action will take place.
Use a list of cards for each plugin rather than a table, and allow plugins to provide a short description and friendly name.
Automatically re-render any borrowed textures using their original pipeline parameters and copy the result back into the existing texture name.
Only consider Lua files when finding plugins.
Similar to the client config menu, use a list of cards for each plugin with buttons to reload, toggle enabled, and save the enabled state. This view also now makes it clear when a plugin's current state differs from its configured state.
Allows for automatic easing between positions and sizes as part of the layout process without having to do any manual calculations.
Preserve the layout but remove everything else.
If opened while already open, bring their window into focus.
Only refresh the state for elements using the default skin when the default is changed.
Add a summary box on the right that shows a preview of the map just like the full-screen map vote menu, and that indicates whether the map is a mod. The summary also provides links to the mods that have been configured against the map if there are any.
Defaults to the old layout and styling to preserve backwards compatibility.
Keep applying the tooltip unless a tooltip is set externally.
* Add auto-ellipsis to the duration hint to stop it expanding beyond the size of the modal. * Disable the "Add Ban" button until an NS2ID and duration have been provided.
* Call deselection event when removing a row that was selected, either individually or by clearing the list. * Fix error when setting columns on a list that already has columns.
Automatically re-populate the list if the map vote plugin is loaded to allow viewing previews.
When alpha inheritance propagation is enabled and alpha is set to be inherited, automatically compensate for parent alpha values to ensure that the alpha requested in a given colour is the alpha that an item renders with. This removes the tedium of having to manually compensate for alpha inheritance, making it all seamlessly automatic.
* Avoid showing scrollbars for tiny differences in size values between panel size and max element offset. * Avoid applying auto-ellipsis for tiny differences in max width and text width. * Avoid applying word/text wrapping for tiny differences in max width and text width. * Fix chatbox settings element sizes not matching the parent panel size when rounding is applied.
Avoid re-using outdated overflow size calculations when a panel's size is changed.
Compute content size upfront before positioning elements to allow layouts that are directly attached to a scrollable control to resize themselves. This avoids needing a two-pass layout invalidation to apply content size to scrolling. Additionally, these changes fix some bugs with layouts not being invalidated when needed during auto-wrapping.
* Avoid storing direct references to passed in vectors to ensure mutations do not affect the internal state. * Handle GUIItem:GetSize() returning 1 for the z-component.
Pass the opposite axis parent size where it's needed.
Remove unused variables, replace branches with callbacks, and ensure the same layout size is used when positioning elements as was calculated originally.
Empty tables are serialised as an array by default, but these fields are intended to be objects.
Specifying "ParseEmoji": true on an advert/welcome message will enable emoji in its text content.
Avoid repeating config validation checks in Each/EachKeyValue and remove their redundant message (each individual value has its own message).
* Allow specifying a set of excluded IDs for a given pattern to exclude more than one player. * Improve config validation.
This was broken with the main menu replacement. Fixing it here is mostly for the benefit of local development, most players aren't going to have the mod enabled in the main menu as it doesn't do anything.
Use math.log10 as it doesn't have precision issues.
Add indeterminate state to create a perpetually spinning wheel.
Bias towards suggesting more frequently used emoji first.
Some maps use location triggers as a hack to display text on the minimap. Hide these from the possible teleport destinations.
Merged
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This branch is a culmination of lots of little side projects and ideas I've had over the years. Given the end of development of NS2 at the start of the year, there's no longer a big risk of any of this breaking with game updates, so rather than have it be lost to time, I've put together one final* update.
*final here meaning this is likely the last big update, and any further updates will just be maintenance if needed.
This branch adds the following:
General
DefaultState
key. This accomplishes the same goal as the beta system, but without needing extra config and complexity in the code.Admin Menu
Fun Commands
sh_goto_location
- teleports to the given location name.sh_sendto
- sends the given player to another player's position.sh_sendto_location
- sends the given player to the given location name.Improved Chat
"ParseEmoji": true
in the advert/welcome message definition.Map Vote
GroupCycleMode
config option (resolves FEATURE REQUEST Votemaps by group tweek #669):SEQUENTIAL
retains the current group cycle behaviour, advancing through groups at every map change, with the current group limiting the vote options.WEIGHTED_CHOICE
allows using groups as buckets to select maps from. Specify aselect
value on each group to control how many maps are selected from the group (if omitted, all maps from the group are included). For example:Name Filter
Excluded
field.Pregame
AllowAttackPreGame
option is set tofalse
(fixes [PreGame ] [Bug] [Low Priority] - Reloading guns in pregame #704).Tweaks Plugin
API
BitSet
object, which can be used to efficiently store and network numeric values in the 32-bit signed integer range.Map:Filter( Predicate, Context )
method, which can be used to inline-filter map key-values in an efficient manner.Multimap:AddPair( Key, Value1, Value2 )
.Multimap:GetPairs( Key )
, which returns aMap
of pairs, orMultimap:GetPairValue( Key, Value )
to get the second value for a given key-value.Multimap:Add( Key, Value )
store the given value as the secondary value.predict.lua
file will be loaded in the prediction VM.Think
hook exists in the prediction VM (as it has no update event), useOnProcessMove
instead.Colour
client setting type, which expects configured values to be an array of 3 integers between 0 and 255, and presents a colour picker in the client config menu.colour
console command argument type, which parses a comma or space separated list of 3 integers between 0 and 255, and outputs them as an array.Shine.StackDump
handles stack overflows more gracefully, avoiding repeating duplicate lines and handling errors extracting local variables at a given stack level.SGUI
SetStyleName()
, which will be applied in the order they are added.Layout Engine
SGUI.WordWrap
) by ~50%.OppositeAxisPercentage
- computes a percentage of the parent size on the opposite axis (e.g. a percentage of the parent's height if given as the value for width).PercentageOfElement
- computes a percentage of the size of another element in the tree, usually an ancestor, optionally specifying the axis to use.Controls
Slider:SetVertical( true )
on the existingSlider
control to make it vertically oriented, with the max value and label at the top of the slider.Webpage
control (see the MOTD screenshot above).