1
0
Fork 0
mirror of https://github.com/Ellpeck/MLEM.git synced 2024-12-26 02:09:24 +01:00
Commit graph

557 commits

Author SHA1 Message Date
Ell
d5ec0b8001 Allow setting a default color for clickable links in UiStyle 2022-03-07 12:00:33 +01:00
Ell
af7c341d83 Added float version of GetRandomWeightedEntry 2022-02-23 14:35:35 +01:00
Ell
c360c90f28 Fixed Code.Draw receiving the index in the current line rather than the current token
Closes #3
2022-02-14 00:24:31 +01:00
Ell
856d69b7db Fixed a formatting Code only knowing about the last Token that it is applied in
Closes #3
2022-02-13 22:43:51 +01:00
Ell
0918e1700b made the new changes work correctly with touch input 2022-02-06 22:23:41 +01:00
Ell
48b96a10a4 Added InputHandler mouse and touch position querying that preserves the game's viewport and fixed the graphics device's viewport being ignored for mouse and touch queries
Closes #1
2022-02-06 22:07:33 +01:00
Ell
ab76ea5ba8 organized InputHandler properties and fields 2022-02-06 21:12:57 +01:00
Ell
f7cf9460d6 Renamed GenericFont.OneEmSpace to Emsp (and marked OneEmSpace as obsolete) 2022-01-24 11:16:23 +01:00
Ell
3edd593886 Added TextureRegion.OffsetCopy 2022-01-22 16:51:42 +01:00
Ell
2699d0e1c2 Fixed StaticSpriteBatch handling rotated sprites incorrectly 2022-01-02 22:58:01 +01:00
Ell
29bbd61f8b reformat and cleanup 2021-12-28 14:56:11 +01:00
Ell
b4f79f0753 Added SoundEffectInstanceHandler.Stop 2021-12-28 14:45:20 +01:00
Ell
7e49eaef10 Allow for checkboxes and radio buttons to be disabled 2021-12-24 12:10:04 +01:00
Ell
5d9cccc9fd Added ColorExtensions.Multiply 2021-12-22 14:24:37 +01:00
Ell
c060d78010 put StringBuilder overloads to use 2021-12-22 13:03:40 +01:00
Ell
f5adf50823 Added StringBuilder overloads to GenericFont 2021-12-22 13:00:41 +01:00
Ell
17ed82fc3c Generify GenericFont's string drawing 2021-12-22 12:46:17 +01:00
Ell
b5bee0facb improved SpriteAnimationGroup performance 2021-12-21 21:17:45 +01:00
Ell
c31e196071 Made AnimationFrame a generic data holder 2021-12-21 20:52:05 +01:00
Ell
14526d24d3 cleaned up the sprite animation changes 2021-12-21 20:17:02 +01:00
Ell
c76357a9e3 Allow storing multiple texture regions per SpriteAnimation frame 2021-12-21 20:12:15 +01:00
Ell
c0ce5a07ad Implemented IEquatable on a lot of classes that were missing it 2021-12-21 11:39:29 +01:00
Ell
103d7c7503 Added a SquishingGroup element to MLEM.Ui 2021-12-11 17:26:55 +01:00
Ell
18517c75bd removed unnecessary Math.Abs from Color.Invert 2021-12-11 01:02:20 +01:00
Ell
f24ad5025c use TextureRegion for AutoTiling 2021-12-03 21:10:19 +01:00
Ell
1ed6b019bb separate background and overlay regions in DrawExtendedAutoTile 2021-12-03 20:59:56 +01:00
Ell
f34d4e3b68 return added items for all methods that use StaticSpriteBatch 2021-12-03 19:57:26 +01:00
Ell
6541c6d797 fixed extended auto tiling only drawing parts of the texture 2021-12-03 19:10:10 +01:00
Ell
052c9e738c Removed unused rotation parameter in AddAutoTile 2021-12-03 18:42:18 +01:00
Ell
36abc3d1fe allow specifying a depth offset for extended auto tiles 2021-12-03 18:34:33 +01:00
Ell
831da36bcc allow drawing the background of extended auto tiles in a separate color 2021-12-03 18:04:03 +01:00
Ell
636522bc3e resolved some documentation warnings 2021-11-30 11:46:06 +01:00
Ell
376a068864 Moved AutoTiling to Graphics namespace and removed deprecated Misc versions of SoundEffectInfo and SoundEffectInstanceHandler 2021-11-29 21:24:08 +01:00
Ell
252d06888f consistently use the default font's line height 2021-11-28 11:30:57 +01:00
Ell
a11a63c067 some GenericFont code style improvements 2021-11-28 00:28:17 +01:00
Ell
f445aba45c improved Token memory allocations 2021-11-27 23:35:37 +01:00
Ell
293602269b prevent unnecessary allocations in GenericFont 2021-11-27 23:04:06 +01:00
Ell
53b93a34f8 Made TextFormatter string size based on the currently active font and added a formatting code to allow for inline font changes 2021-11-27 22:45:37 +01:00
Ell
ad1d6a864e Added DrawExtendedAutoTile to the AutoTiling class 2021-11-27 15:03:30 +01:00
Ell
5cb77be410 Allow using StaticSpriteBatch for AutoTiling 2021-11-27 14:27:56 +01:00
Ell
f37179486c added some pathfinding tests, as well as some minor code improvements 2021-11-23 21:42:18 +01:00
Ell
444b5c6afb copy base documentation for a lot of docfx unresolvable sources 2021-11-22 19:25:18 +01:00
Ell
84a6e5a29a Fixed some end-of-line inconsistencies when using the Right text alignment 2021-11-22 18:52:52 +01:00
Ell
c9c9e566b1 Throw an exception when text formatter macros resolve recursively too many times 2021-11-22 17:50:17 +01:00
Ell
5c8ef3d254 Added RotationVector extension methods for Matrix and Quaternion 2021-11-22 14:48:38 +01:00
Ell
b30ec9408b Added Padding.Empty 2021-11-18 10:58:50 +01:00
Ell
a59f1eb8af Added missing easing functions Quart and Quint to Easings 2021-11-16 15:08:35 +01:00
Ell
6702efd7fa added depth sorting to StaticSpriteBatch 2021-11-13 16:42:50 +01:00
Ell
dd295aca1b clarify StaticSpriteBatch depth documentation 2021-11-12 20:31:47 +01:00
Ell
d8517a7492 StaticSpriteBatch refactor that speeds up removal.
Items will now be drawn in an arbitrary order.
2021-11-12 20:21:08 +01:00
Ell
eb323bea01 only allow clearing a static sprite batch when batching 2021-11-12 18:35:10 +01:00
Ell
4a8a55fde3 allow removing items from a static sprite batch 2021-11-12 18:12:57 +01:00
Ell
b22d2d4d22 slight GenericDataHolder (and extensions) improvements and reversions 2021-11-07 00:46:35 +01:00
Ell
39138446ea added some more utility to JsonTypeSafeWrapper and revert SetData changes 2021-11-07 00:23:48 +01:00
Ell
ae559adf26 remove "see href" from xml docs since some IDEs can't display that 2021-11-06 23:42:23 +01:00
Ell
8e83cc06a6 Added JsonTypeSafeWrapper and JsonTypeSafeGenericDataHolder 2021-11-06 23:38:21 +01:00
Ell
ca89d03ca4 Some more ui style improvements 2021-10-30 15:33:38 +02:00
Ell
1c48a69371 dispose static sprite batch buffers properly 2021-10-30 13:48:52 +02:00
Ell
2be39a740e improve handling of arbitrary Epsilon values 2021-10-28 23:26:42 +02:00
Ell
9a480d391b some MlemPlatform doc clarifications and improvements 2021-10-23 22:05:32 +02:00
Ell
e5593f2132 copy vertex data more efficiently 2021-10-20 15:34:21 +02:00
Ell
04dc2bf2d0 don't recreate the VertexPositionColorTexture array every time 2021-10-19 23:12:56 +02:00
Ell
b271518956 Exposed Camera's RoundPosition 2021-10-19 22:06:49 +02:00
Ell
08bd443c36 don't draw empty vertex buffers 2021-10-19 17:20:00 +02:00
Ell
6f04b30591 use vertex and index buffers for StaticSpriteBatch 2021-10-18 01:22:22 +02:00
Ell
758281c845 sloppy rename 2021-10-17 23:21:11 +02:00
Ell
d89d8571c7 added StaticSpriteBatch 2021-10-17 23:20:05 +02:00
Ell
9aef994c51 Added GenericFont SplitStringSeparate which differentiates between existing newline characters and splits due to maximum width 2021-10-12 03:23:35 +02:00
Ell
11dd939009 Added a multiline editing mode to TextField 2021-10-12 02:16:09 +02:00
Ell
fd5b83eaa0 added a strikethrough formatting code 2021-10-10 20:30:40 +02:00
Ell
9743c05e1a Cache TokenizedString inner offsets for non-Left text alignments 2021-10-04 23:57:58 +02:00
Ell
a140e85300 fixed Docs casing in readme path 2021-09-24 04:50:42 +02:00
Ell
a53939837f added package readmes 2021-09-24 04:47:39 +02:00
Ell
6537ff00c1 Improved KeysExtensions memory usage 2021-08-27 20:36:04 +02:00
Ell
ff510c54c5 Fixed tiled NinePatches missing pixels with some scales 2021-08-06 22:40:32 +02:00
Ell
db7ee04d30 allow enumerating SoundEffectInstanceHandler entries 2021-08-02 20:34:13 +02:00
Ell
516265bf5b Fixed GenericFont's SplitString using incorrect width for special characters and improved documentation 2021-07-28 17:22:47 +02:00
Ell
1067055bb5 code cleanup 2021-07-19 23:49:16 +02:00
Ell
abac738123 Removed LINQ Any and All usage in various methods to improve memory usage 2021-07-18 22:18:46 +02:00
Ell
374d936be2 specify the MLEM version that Invert will be moved 2021-07-13 22:35:48 +02:00
Ell
a52b46dce9 Added ColorExtensions.Invert and made ColorHelper.Invert obsolete 2021-07-13 22:34:32 +02:00
Ell
6aa9ec03d4 Added customizable overloads for Keybind, Combination and GenericInput ToString methods 2021-07-13 15:41:42 +02:00
Ell
ee2b0b82fe allow for RotateBy, RotateCw and RotateCcw to accept invalid directions again 2021-07-10 06:16:33 +02:00
Ell
8d92131630 improved Direction2 code style 2021-07-05 19:49:18 +02:00
Ell
f352e6b437 added Direction2Helper.RotateBy 2021-07-05 19:46:39 +02:00
Ell
d1b229b589 moved sound classes into /Sound 2021-07-05 16:36:48 +02:00
Ell
f71eb6eddb improved NinePatch memory performance 2021-07-03 01:44:39 +02:00
Ell
00d9ee99d8 Merge branch 'release' into main
# Conflicts:
#	CHANGELOG.md
2021-07-01 05:06:39 +02:00
Ell
19893855dc added the changelog to the website 2021-07-01 05:00:59 +02:00
Ell
58bd076e2a Set default values for InputHandler held and pressed keys to avoid an exception if buttons are held in the very first frame 2021-06-30 19:40:43 +02:00
Ell
fe9b3830f8 (finally) added a changelog 2021-06-28 15:38:30 +02:00
Ell
705758090b fixed image tokens drawing themselves too many times for split strings 2021-06-25 16:40:09 +02:00
Ell
14940d39c5 added text alignment options to tokenized strings and paragraphs 2021-06-25 15:23:30 +02:00
Ell
dca013e551 fixed GetModifier being.. recursive 2021-06-21 01:03:24 +02:00
Ell
91730b1f27 improved GenericInput ToString 2021-06-21 00:57:56 +02:00
Ell
2f16bbdc44 the None input type should always be considered up 2021-06-21 00:51:21 +02:00
Ell
ce920b5219 added an element helper method to create a keybind button 2021-06-21 00:49:09 +02:00
Ell
a5a73af01c improved Keybind constructors 2021-06-20 23:48:02 +02:00
Ell
2118837062 added generic input equality checking 2021-06-20 23:17:39 +02:00
Ell
60c9236cbd added InputsDown and InputsPressed to InputHandler 2021-06-20 23:05:02 +02:00
Ell
664a2a9f11 added a way to access a keybind's combinations 2021-06-20 22:33:24 +02:00
Ell
d1fbcb9559 added a sprite batch extension to generate a gradient 2021-06-03 21:33:09 +02:00
Ell
d146e80cf6 updated some outdated dependencies 2021-05-29 18:06:20 +02:00
Ell
3da97fcc83 fixed UnderlineCode being a font code, making it end in the wrong places 2021-05-24 17:12:02 +02:00
Ell
ef45c324f9 fixed a crash with truncated string tokenization 2021-05-20 19:59:37 +02:00
Ell
d385581c25 added formatted string truncation to tokenized strings and ui paragraphs 2021-05-18 16:47:38 +02:00
Ell
e916ddb7a8 allow for underline and shadow codes to be mixed with font codes 2021-05-18 16:19:40 +02:00
Ell
f71f998508 clarify OpenLinkOrFile usage documentation 2021-04-23 14:34:59 +02:00
Ell
b48ed479a0 streamlined TextInputWrapper into MlemPlatform and included link opening 2021-04-23 00:17:46 +02:00
Ell
1123b815b3 updated some package declarations to clean up warnings 2021-04-22 19:59:35 +02:00
Ell
338cf383f4 removed RequiresOnScreenKeyboard 2021-04-22 19:40:14 +02:00
Ell
cf9bcc7ae4 updated to MonoGame 8 and added support for opening the on-screen keyboard to TextInputWrapper 2021-04-22 19:26:07 +02:00
Ell
f3b3feec9b updated non-netstandard projects to net5.0 2021-04-22 02:21:36 +02:00
Ell
1759f0ef5b improve performance of TextFormatter tokenization 2021-04-22 01:21:44 +02:00
Ell
455ab59f09 improved performance of TokenizedString splitting massively 2021-04-22 01:14:48 +02:00
Ell
8078d41724 simplified GenericFont implementation 2021-04-19 14:02:28 +02:00
Ell
e7ab8fefe8 improved performance of SplitString and re-added Zwsp compatibility 2021-04-14 23:13:19 +02:00
Ell
538fd08d8a improved TokenizedString splitting efficiency 2021-04-14 02:47:41 +02:00
Ell
55477c6341 removed Zwsp functionality, which was incomplete and did not work 2021-04-14 00:49:33 +02:00
Ell
2055c3a6ef convert tests to use graphics 2021-04-02 17:12:27 +02:00
Ell
e7fd026a33 added some UI tests 2021-04-01 19:36:56 +02:00
Ell
35af9eee25 fixed some number parsing not using invariant culture 2021-03-28 06:20:27 +02:00
Ell
602f19a2a8 some minor code style and format improvements 2021-03-24 22:44:39 +01:00
Ell
702bf94f49 added some tests 2021-03-18 17:28:08 +01:00
Ell
e24c871ecd added SoundExtensions 2021-03-17 22:47:23 +01:00
Ell
014b8f90df added repeat-ignoring versions of IsKeyPressed and IsGamepadButtonPressed to InputHandler 2021-03-14 17:09:45 +01:00
Ell
1e485a103c drop .NET Framework support for TextInputWrapper.DesktopGl 2021-03-13 17:09:16 +01:00
Ell
e0263dc943 Removed obsolete ColorExtensions methods 2021-03-13 16:25:08 +01:00
Ell
37609ade76 fixed DrawString in generic font ignoring text scale for alignment 2021-03-12 20:47:57 +01:00
Ell
0411add4d1 added a newline macro to the default text formatter 2021-03-09 17:45:49 +01:00
Ell
b594c271ac expose the viewport of a camera 2021-03-09 02:29:06 +01:00
Ell
0b39928334 minor general cleanup 2021-03-08 15:12:13 +01:00
Ell
053aaaf17c removed the array-based GetRandomEntry method as it made lists have to be typecast 2021-03-04 22:53:39 +01:00
Ell
1c8b738555 added some collection extensions, namely Combinations 2021-03-04 22:52:28 +01:00
Ell
80f2b55687 combine attributes 2021-02-28 16:44:29 +01:00
Ell
5b4757d3bf made Padding and Direction2 DataContracts 2021-02-28 16:42:51 +01:00
Ell
468bee9ca8 Turned Direction2 into a flags enum 2021-02-28 14:37:02 +01:00
Ell
6900da9858 allow nine patches to be drawn tiled rather than stretched 2021-02-19 21:24:08 +01:00
Ell
eb3194a0c1 preserve position and scroll wheel value when the mouse is out of bounds 2021-02-19 02:47:32 +01:00
Ell
73eab1d41e only handle mouse input if the mouse is in the window 2021-02-19 02:31:38 +01:00
Ell
01b6168259 fixed the input handler querying input when the window is inactive 2021-02-18 18:36:29 +01:00
Ell
7619ac0dcf added an extension method for adding tooltip for elements 2021-02-18 04:16:17 +01:00
Ell
a75d04cffc added a utility method for getting the points contained in a rectangle 2021-02-04 12:24:23 +01:00
Ell
f3cf8dcc70 cast regardless of type in GenericDataHolder 2021-02-02 11:01:30 +01:00
Ell
3a0e2354b3 apply 3d after adding the sound 2021-01-30 22:26:44 +01:00
Ell
5d9a5ecf13 ensure the sound effect instance emitter is nonnull 2021-01-27 05:16:41 +01:00
Ell
182f8eff7a made listeners auto-update in SoundEffectInstanceHandler 2021-01-27 00:51:15 +01:00
Ell
c85666502c allow pausing, resuming and applying 3d to the sound effect instance handler and move it to its own file 2021-01-24 19:43:47 +01:00
Ell
05543dfea8 added SoundEffectInstanceHandler 2021-01-24 19:35:09 +01:00
Ell
d4bbe84ba1 allow looping a played 3d sound 2021-01-24 17:25:36 +01:00
Ell
05d80524e6 added a Play3D shorthand to SoundEffectInfo 2021-01-24 15:52:01 +01:00
Ell
3cd8c54e5c only store texture data if it changed 2021-01-20 05:22:30 +01:00
Ell
b6ef243cf4 GenericFont support for zero-width spaces 2020-12-31 17:22:51 +01:00
Ell
267cbc8d9c allow image codes to copy the text's color 2020-12-29 12:41:29 +01:00
Ell
9895be2250 made texture atlases have an underlying texture region as well 2020-12-19 14:34:30 +01:00
Ell
1f40129ad3 extract GenericDataHolder behavior into an interface 2020-12-18 16:39:52 +01:00
Ell
106102adf6 clean up unused using statements 2020-12-14 21:51:27 +01:00
Ell
f63a410cd2 use the actual unicode 1em space in GenericFont 2020-12-08 01:43:52 +01:00
Ell
490a8aab78 decorate GenericDataHolder with data contract serialization information 2020-11-28 22:48:30 +01:00
Ell
fd9ad777c2 some fixes related to the branch name change 2020-11-07 00:58:43 +01:00
Ell
bb596c91ff cleaned up color extensions and move some methods to colorhelper instead 2020-11-04 23:44:41 +01:00
Ell
f68e55ebfd moved DataTextureAtlas to MLEM.Data 2020-10-25 01:45:01 +02:00
Ell
e4081be2ce added some padding utility constructors 2020-10-25 01:33:05 +02:00
Ell
3005b3edcb added an extension method to auto-reverse an easing function 2020-10-24 22:10:34 +02:00
Ell
cdc08c5cf2 improved NumberExtensions penetration method 2020-10-12 21:08:15 +02:00
Ell
aaeda825e0 fixed some documentation issues 2020-10-06 20:14:57 +02:00
Ell
58eae7d240 added an extension method for rectangle penetration 2020-10-05 23:23:30 +02:00
Ell
6a383e200b a small rebranding 2020-09-28 20:53:39 +02:00
Ell
8b29903444 Replace ImageCode and TextField character ToString usage with ToCachedString for memory performace 2020-09-28 20:43:37 +02:00
Ell
b814839458 made GenericFont a GenericDataHolder 2020-09-28 20:38:56 +02:00
Ell
bd43c14a33 copy SpriteFont in GenericSpriteFont so that we don't modify the passed fonts' default character 2020-09-28 02:52:51 +02:00
Ell
3b382a46cf moved raw content handling to MLEM.Data 2020-09-16 23:39:01 +02:00
Ell
51fbba8731 made AStar.InfiniteCost a const because I don't know why it wasn't one before 2020-09-16 01:21:37 +02:00
Ell
4f63770de0 use dictionaries in favor of lists for AStar to speed up pathfinding 2020-09-10 02:12:53 +02:00
Ellpeck
a5c1b6c2b4 allow sprite animations to be updated by a time span 2020-08-13 19:46:49 +02:00
Ellpeck
368630f109 Added Direction2Helper.To90Direction 2020-08-10 02:37:39 +02:00
Ellpeck
52443bfa68 added some more utility functions for directions and vectors 2020-08-10 02:16:35 +02:00
Ellpeck
fe67b70332 (finally) added some tests 2020-07-31 17:14:25 +02:00
Ellpeck
e80eb17b22 fixed incorrect icon link 2020-07-29 14:41:46 +02:00
Ellpeck
433299ed10 Rename vector floor extensions to FloorCopy since MonoGame added their own Floors 2020-07-27 00:24:49 +02:00
Ellpeck
dddcb664d7 added aseprite script for populating the data texture atlas 2020-07-24 17:50:25 +02:00
Ellpeck
61e8b18403 make DataTextureAtlas not crash when a non-existent texture is queried 2020-07-24 00:39:04 +02:00
Ellpeck
fe89fc24ea added data-based texture atlases 2020-07-24 00:33:11 +02:00
Ellpeck
9477b5f1d1 added a pivot point to TextureRegion 2020-07-23 23:30:44 +02:00
Ellpeck
ec370479ef some matrix-related number extensions 2020-07-19 23:12:12 +02:00
Ellpeck
f94802271b added easing functions 2020-07-16 00:45:25 +02:00
Ellpeck
98937ee83f added a method for generating square and circle textures 2020-07-12 19:41:25 +02:00
Ellpeck
a17301504d added macros to text formatting 2020-07-01 14:30:47 +02:00
Ellpeck
ca4c8731bc only throw an exception in TextInputWrapper if it is required 2020-06-24 16:54:23 +02:00
Ellpeck
096131ce15 Drop SoundEffectInstance (mis)usage in favor of new SoundEffectInfo 2020-06-22 13:59:33 +02:00
Ellpeck
d891e19d2a reduce string allocations when rendering text 2020-06-21 23:23:52 +02:00
Ellpeck
7eaa1da860 fixed the new MeasureString in GenericFont not returning an empty size for empty strings 2020-06-20 15:42:36 +02:00
Ellpeck
64b9246aa5 clean up GenericFont changes 2020-06-20 12:12:34 +02:00
Ellpeck
73f2e1c565 use measurechar where applicable 2020-06-20 01:20:39 +02:00
Ellpeck
90e0ff55d1 use a custom character for image codes rather than trying to calculate spaces 2020-06-20 01:18:27 +02:00
Ellpeck
deec553b22 code cleanup 2020-06-18 17:24:35 +02:00
Ellpeck
0a8a3c3660 removed some obsolete features 2020-06-12 17:19:19 +02:00
Ellpeck
251261f3d7 added a more generic keybind and input handling system 2020-06-12 17:09:35 +02:00
Ellpeck
1347d0bb1e use HasFlag in InputHandler for better readability 2020-06-05 23:56:53 +02:00
Ellpeck
1d38262388 only use nbsp in image codes if the font supports it 2020-06-04 22:18:53 +02:00