cosmonaut
3584e670ee
add array overloads to avoid explicit generic parameter
2023-04-05 12:40:34 -07:00
cosmonaut
5a2f7eadb8
change array param to span in Buffer.GetData
2023-04-05 11:32:12 -07:00
cosmonaut
1e3f04235e
remove array parameters from API functions
2023-04-05 11:07:16 -07:00
cosmonaut
dd06205399
stop static sound instance on Free
2023-04-05 01:18:13 -07:00
cosmonaut
1cf04a7279
assets stream data directly into unmanaged memory
2023-04-05 00:47:02 -07:00
cosmonaut
3bd435746b
StaticSound external byte buffer constructor
2023-04-04 17:12:03 -07:00
cosmonaut
8134761e44
load images from memory + QOI support
2023-04-03 17:28:00 -07:00
cosmonaut
8209051a3c
remove non-static Normalize + return identity on zero vector
2023-03-29 10:06:37 -07:00
cosmonaut
80f3711f4c
add Quit method to Game
2023-03-16 16:48:52 -07:00
cosmonaut
3a6b73e637
add int clamp to MathHelper
2023-03-14 14:42:13 -07:00
cosmonaut
12e7e6b9c1
add Color.FromHSV
2023-03-09 15:14:16 -08:00
cosmonaut
455f4048df
MathHelper.Quantize uses round instead of floor
2023-03-09 13:52:45 -08:00
cosmonaut
1f0e3b5040
Audio Improvements ( #47 )
...
- Audio is now processed on a background thread instead of the main thread
- Audio tick rate is now ~200Hz
- MoonWorks.Math.Easings class completely rewritten to be easier to understand and use
- SoundInstance properties no longer call into FAudio unless the value actually changed
- SoundInstance property values can now be interpolated over time (tweens)
- SoundInstance tweens can be delayed
- SoundInstance sets a sane filter frequency default when switching filter type
- StreamingSound classes can be designated to update automatically on the audio thread or manually
- StreamingSound buffer consumption should now set Stopped state in a more sane way
- Added ReverbEffect, which creates a submix voice for a reverb effect
- SoundInstance can apply a ReverbEffect, which enables the Reverb property
- Audio resource tracking improvements
- Some tweaks to VideoPlayer to make its behavior more consistent
Reviewed-on: #47
2023-03-07 23:28:57 +00:00
cosmonaut
f8b14ea94f
add ReverbEffect
2023-03-01 17:47:09 -08:00
cosmonaut
472da0edd2
add Hidden property to Mouse
2023-03-01 13:47:25 -08:00
cosmonaut
bd825b6c91
allow pushing raw uniform data
2023-02-23 16:59:34 -08:00
cosmonaut
515c2ebbca
fix controller double open
2023-02-23 16:59:19 -08:00
cosmonaut
86322e9373
log controller open errors
2023-02-21 16:00:16 -08:00
cosmonaut
e9aacb44da
Add synchronized audio playback mechanism
2023-02-16 15:12:35 -08:00
cosmonaut
5baa1d7b40
Fix video shader base path lookup
2023-02-08 12:44:36 -08:00
cosmonaut
36ce74b58a
tweak video shader filenames
2023-02-03 15:07:32 -08:00
cosmonaut
40d12357c0
Remove MoonWorks.Collision ( #46 )
...
After months of tweaking and refactoring I have realized that collision is like rendering - it's so fundamental to the structure of your game that making broad decisions about how it should work from a library level is too restrictive and difficult to optimize. Anyone skilled enough to use MoonWorks should be easily able to roll their own collision detection.
Reviewed-on: #46
2023-02-03 19:51:36 +00:00
TheSpydog
b39526ca90
Textures now have a sample count, not render passes ( #45 )
...
Co-authored-by: Caleb Cornett <caleb.cornett@outlook.com>
Reviewed-on: #45
Co-authored-by: TheSpydog <thespydog@noreply.example.org>
Co-committed-by: TheSpydog <thespydog@noreply.example.org>
2023-01-31 20:27:26 +00:00
TheSpydog
88d9119830
Remove warning from DrawInstancedPrimitives doc comment ( #44 )
...
Co-authored-by: Caleb Cornett <caleb.cornett@outlook.com>
Reviewed-on: #44
Co-authored-by: TheSpydog <thespydog@noreply.example.org>
Co-committed-by: TheSpydog <thespydog@noreply.example.org>
2023-01-24 00:14:46 +00:00
TheSpydog
05de9a4066
Make video shaders optional and search for them in the root output directory ( #42 )
...
Whenever the video shaders change, they can be rebuilt with refreshc and distributed alongside the moonlibs.
Co-authored-by: Caleb Cornett <caleb.cornett@outlook.com>
Reviewed-on: #42
Co-authored-by: TheSpydog <thespydog@noreply.example.org>
Co-committed-by: TheSpydog <thespydog@noreply.example.org>
2023-01-21 23:37:01 +00:00
TheSpydog
b1d30a9e6c
Remove isFixed param from AcquireCommandBuffer call ( #41 )
...
Co-authored-by: Caleb Cornett <caleb.cornett@outlook.com>
Reviewed-on: #41
Co-authored-by: TheSpydog <thespydog@noreply.example.org>
Co-committed-by: TheSpydog <thespydog@noreply.example.org>
2023-01-14 18:04:53 +00:00
TheSpydog
030745361b
Fix BC7 loading for textures without DDSD_CAPS/FMT ( #40 )
...
Co-authored-by: Caleb Cornett <caleb.cornett@outlook.com>
Reviewed-on: #40
Co-authored-by: TheSpydog <thespydog@noreply.example.org>
Co-committed-by: TheSpydog <thespydog@noreply.example.org>
2023-01-07 01:46:59 +00:00
cosmonaut
c43df10c2a
vertex binding API improvements
2023-01-05 13:41:48 -08:00
cosmonaut
95981f0f03
rework vertex input state creation to avoid reflection
2023-01-04 17:34:01 -08:00
TheSpydog
230c1b41b4
Add IndirectDrawCommand struct ( #39 )
...
Co-authored-by: Caleb Cornett <caleb.cornett@outlook.com>
Reviewed-on: #39
Co-authored-by: TheSpydog <thespydog@noreply.example.org>
Co-committed-by: TheSpydog <thespydog@noreply.example.org>
2023-01-04 18:44:56 +00:00
TheSpydog
6f8858c8b7
RasterizerState / BlendFactor ABI break ( #38 )
...
Updates the APIs to match [this Refresh PR](MoonsideGames/Refresh#27 ).
Co-authored-by: Caleb Cornett <caleb.cornett@outlook.com>
Reviewed-on: #38
Co-authored-by: TheSpydog <thespydog@noreply.example.org>
Co-committed-by: TheSpydog <thespydog@noreply.example.org>
2022-12-29 03:22:47 +00:00
TheSpydog
f96298f991
Add validation checks for AcquireSwapchainTexture and BindVertexBuffers ( #37 )
...
This replaces the Refresh-side check for window claim status in AcquireSwapchainTexture, and adds validation to ensure that BindVertexBuffers is not called before BindGraphicsPipeline.
Co-authored-by: Caleb Cornett <caleb.cornett@outlook.com>
Reviewed-on: #37
Co-authored-by: TheSpydog <thespydog@noreply.example.org>
Co-committed-by: TheSpydog <thespydog@noreply.example.org>
2022-12-29 03:18:36 +00:00
cosmonaut
d76633bdfc
change sizeof calls to Marshal.SizeOf in interop situations
2022-12-13 19:01:40 -08:00
cosmonaut
debb76f62a
validate scissor dimensions
2022-12-13 16:09:32 -08:00
cosmonaut
ca61e94b13
optimize mouse update
2022-12-13 15:13:43 -08:00
cosmonaut
36e6c6f332
optimize AcquireSwapchainTexture
2022-12-13 00:52:35 -08:00
cosmonaut
916962da6c
garbage collection optimizations
2022-12-13 00:34:16 -08:00
cosmonaut
cfd52b00bd
add FIXME note for spatial hash boxing
2022-12-08 13:29:04 -08:00
cosmonaut
b0e1ad3cf8
add note about disposing swapchain texture
2022-12-01 13:20:11 -08:00
cosmonaut
751b8310ce
Fix crash when no audio device found
2022-11-30 09:43:49 -08:00
cosmonaut
474b8fe37d
only check depth format if there is a depth attachment
2022-11-29 13:06:03 -08:00
cosmonaut
bc41d2c079
add IsIdle and IsUp to Keyboard
2022-11-28 10:19:03 -08:00
cosmonaut
d5ddd44bd3
add IsIdle and IsUp to VirtualButton
2022-11-28 00:48:48 -08:00
cosmonaut
de9d13757a
distinguish between idle and released on buttons
2022-11-27 12:41:09 -08:00
cosmonaut
ca9fb45536
fix spacing
2022-11-18 10:34:32 -08:00
cosmonaut
faf81bceed
add support for mouse X1 and X2 buttons ( #36 )
...
Reviewed-on: #36
2022-11-18 18:33:15 +00:00
cosmonaut
fa992652b1
fix mouse button updating twice
2022-11-17 18:16:26 -08:00
marpe
c4bae77408
Fix infinite recursion on certain Easing functions
2022-11-17 14:40:24 -08:00
cosmonaut
ecf1a8ed55
Optimize CommandBuffer ( #35 )
...
- remove params methods in favor of overloads and last-resort `in Span<T>` overloads
- add `in` to params that take structs to reduce unnecessary copying
- Buffer can now implicitly cast to BufferBinding
- add render pass / graphics pipeline format match validation
Reviewed-on: #35
2022-11-17 20:35:21 +00:00
cosmonaut
970517c3c2
add window size change callback support
2022-11-15 22:53:37 -08:00
cosmonaut
f3c5bbf902
rename BorderlessWindow to BorderlessFullscreen
2022-11-15 22:49:07 -08:00
cosmonaut
02b20f79f5
allow sampler binding calls to take array segment
2022-11-15 17:53:30 -08:00
TheSpydog
c2ef78d136
Add validation check that all work group dimension counts are >= 1 ( #34 )
...
Co-authored-by: Caleb Cornett <caleb.cornett@outlook.com>
Reviewed-on: #34
Co-authored-by: TheSpydog <thespydog@noreply.example.org>
Co-committed-by: TheSpydog <thespydog@noreply.example.org>
2022-11-14 18:21:03 +00:00
TheSpydog
5533eeb2fd
Fix bad pointer arithmetic in SetBufferData ( #33 )
...
Fixes a bug where SetBufferData was writing garbage to the buffer if `startElement` was non-zero.
Rather than fixing the pointer addition (it should have been `ptr + startElement`) I opted to remove it and instead pass the index explicitly when grabbing the address of the array element. I think that's a little easier to understand, and it's slightly safer too -- if you pass a startElement beyond the array bounds it will now throw an IndexOutOfRangeException instead of silently reading from outside the array bounds.
Co-authored-by: Caleb Cornett <caleb.cornett@outlook.com>
Reviewed-on: #33
Co-authored-by: TheSpydog <thespydog@noreply.example.org>
Co-committed-by: TheSpydog <thespydog@noreply.example.org>
2022-11-12 03:42:35 +00:00
TheSpydog
02b0c12ad8
Bunch of Refresh API changes, plus more validation ( #31 )
...
Co-authored-by: TheSpydog <thespydog@noreply.example.org>
Co-committed-by: TheSpydog <thespydog@noreply.example.org>
2022-11-09 18:49:53 +00:00
TheSpydog
1b38f8606b
Added more graphics validation, misc api tweaks ( #30 )
...
* Refactored render pass attachment validation to avoid copy-pasting the asserts
* Added validation for texture usage flags and null textures/samplers
* Added an exception for when GraphicsPipeline/ComputePipeline creation fails
* Changed TextureSamplerBinding so that it holds references to the Texture and Sampler classes, rather than just their handles
* Removed the CommandBuffer.BindVertex/FragmentSamplers overloads that took a length parameter
Co-authored-by: Caleb Cornett <caleb.cornett@outlook.com>
Reviewed-on: #30
Co-authored-by: TheSpydog <thespydog@noreply.example.org>
Co-committed-by: TheSpydog <thespydog@noreply.example.org>
2022-11-08 19:29:05 +00:00
cosmonaut
bd98ae8441
fix validation error when TextBatch is empty
2022-10-24 17:22:24 -07:00
cosmonaut
59190e619d
fix Mouse.Wheel calculation
2022-10-21 11:39:06 -07:00
cosmonaut
ea86212199
add AudioDevice.MasteringVolume property
2022-10-20 15:00:25 -07:00
cosmonaut
66c6ceec04
hide main window until Game.Run is called
2022-09-30 13:03:05 -07:00
cosmonaut
dfddc24d0e
add PresentMode to WindowCreateInfo
2022-09-30 13:02:51 -07:00
cosmonaut
b66e077376
GraphicsDevice throw if backend invalid
2022-09-29 19:21:47 -07:00
cosmonaut
07c0b1b9a2
Window API revision + Framerate limiter ( #27 )
...
- add `Backend` enum
- `GraphicsDevice` can now take a preferred backend at creation
- add `GraphicsDevice.ClaimWindow`
- add `GraphicsDevice.UnclaimWindow`
- add `GraphicsDevice.SetPresentMode`
- add `Window.Claimed`
- add `Window.SwapchainFormat`
- fix certain odd behaviors in multi-window scenarios
- rename `FramerateSettings` to `FrameLimiterSettings`
- add `Game.SetFrameLimiter`
Reviewed-on: #27
2022-09-29 22:22:50 +00:00
TheSpydog
3ffdf8a929
Specify readonly access when creating ShaderModule stream ( #26 )
...
Co-authored-by: Caleb Cornett <caleb.cornett@outlook.com>
Reviewed-on: #26
Co-authored-by: TheSpydog <thespydog@noreply.example.org>
Co-committed-by: TheSpydog <thespydog@noreply.example.org>
2022-09-28 23:52:29 +00:00
cosmonaut
bace9f570d
add Fix64.Step
2022-09-22 20:17:13 -07:00
cosmonaut
32f80282a0
clean up Video.cs
2022-09-21 15:16:34 -07:00
cosmonaut
23252a149f
ignore currently loaded video on VideoPlayer.Load
2022-09-20 11:31:27 -07:00
cosmonaut
80f19e4521
Refresh 1.7.0
2022-09-13 13:58:09 -07:00
cosmonaut
d5a7daa524
add graphics state validation in debug mode
2022-09-07 13:07:17 -07:00
cosmonaut
5c080a4c42
add another DepthStencilAttachment constructor
2022-09-07 12:38:05 -07:00
TheSpydog
eb8c350a47
Fix debug assertion in AudioDevice constructor ( #25 )
...
Let's try this again...
Co-authored-by: Caleb Cornett <caleb.cornett@outlook.com>
Reviewed-on: #25
Co-authored-by: TheSpydog <thespydog@noreply.example.org>
Co-committed-by: TheSpydog <thespydog@noreply.example.org>
2022-08-30 17:09:32 +00:00
cosmonaut
0933b8e70f
reset static audio on free + rework filter API
2022-08-29 22:45:28 -07:00
cosmonaut
1af16231ce
Refresh 1.6.0
2022-08-25 12:32:49 -07:00
cosmonaut
0c6bb538fb
fix depth-only render pass invocation + throw instead of return
2022-08-22 19:30:44 -07:00
TheSpydog
ebfd4fd457
Ignore dllmap logic when running under NativeAOT ( #23 )
...
Co-authored-by: Caleb Cornett <caleb.cornett@outlook.com>
Reviewed-on: #23
Co-authored-by: TheSpydog <thespydog@noreply.example.org>
Co-committed-by: TheSpydog <thespydog@noreply.example.org>
2022-08-22 16:43:19 +00:00
cosmonaut
b380707462
Video Optimization ( #22 )
...
- Videos are now shoved into memory when created to avoid disk latency issues
- Added VideoPlayer class to avoid redundant texture creation on videos
- Most Video functions are now on VideoPlayer
Reviewed-on: #22
2022-08-18 20:45:34 +00:00
cosmonaut
491eafac76
fix default Video playback speed being 0
2022-08-18 00:57:22 -07:00
cosmonaut
0dddf2a0af
fix default pitch
2022-08-17 18:45:35 -07:00
cosmonaut
15aefc2212
add MoonWorks.Math.Easing
2022-08-16 18:24:46 -07:00
cosmonaut
a427b79510
add Fix64-int arithmetic
2022-08-16 18:24:34 -07:00
TheSpydog
49f852a822
Combine all dependencies into the main csproj ( #21 )
...
This removes the need for per-library dllmap logic and simplifies the build process.
Co-authored-by: Caleb Cornett <caleb.cornett@outlook.com>
Reviewed-on: #21
Co-authored-by: TheSpydog <thespydog@noreply.example.org>
Co-committed-by: TheSpydog <thespydog@noreply.example.org>
2022-08-14 20:44:55 +00:00
cosmonaut
c649b24dad
Game.Timestep is now public
2022-08-11 21:55:12 -07:00
cosmonaut
f06ad263b7
add Fixed.Vector2.Lerp
2022-08-09 17:14:38 -07:00
cosmonaut
28e3479444
remove decimal cast from Fix64.Atan2
2022-08-05 16:56:26 -07:00
cosmonaut
72ad850ab4
fix unnecessary double cast
2022-08-03 16:34:15 -07:00
cosmonaut
9cd6e6cc7b
add Vector2.Rotate methods
2022-08-03 16:15:47 -07:00
cosmonaut
9c8ec7ad5a
ButtonState now has a public constructor
2022-08-03 10:13:20 -07:00
cosmonaut
1e6455d070
fix StreamingSoundOgg seek
2022-08-02 14:15:16 -07:00
cosmonaut
efb9893aef
Theora video support + audio improvements ( #20 )
...
- `SoundInstance.Play` no longer takes a loop parameter
- `SoundInstance.Stop` is split into `Stop` and `StopImmediate` instead of taking an immediate parameter
- Added `StreamingSoundSeekable` to better support streaming audio that does not support seek
- `StreamingSound` no longer has a Loop property, but `StreamingSoundSeekable` does
- abstract `StreamingSound.AddBuffer` renamed to `FillBuffer`
- `FillBuffer` is now provided with a native buffer to avoid an extra data copy
- `StreamingSound` buffer implementation optimized to avoid repeated alloc/frees
- added `Video` class which can load and play Theora (.ogv) streaming video/audio
Reviewed-on: #20
2022-08-02 21:04:12 +00:00
cosmonaut
5a5fbc0c77
handle OS window size changes
2022-07-28 16:06:50 -07:00
cosmonaut
40a2b31e90
add StartMaximized flag to WindowCreateInfo
2022-07-28 16:06:37 -07:00
cosmonaut
424f410688
add SystemResizable flag to WindowCreateInfo
2022-07-26 19:08:21 -07:00
cosmonaut
f6fc80804e
improve gamepad init and support hotplugging
2022-07-13 11:53:09 -07:00
cosmonaut
646e5e9283
empty virtual button
2022-07-12 17:57:37 -07:00
cosmonaut
ab619192a6
combine button states
2022-07-12 17:57:27 -07:00
cosmonaut
d07a722fb1
VirtualButton system
2022-07-12 16:09:23 -07:00
cosmonaut
3543f074f4
fix erroneous Normalize
2022-07-12 16:06:13 -07:00
cosmonaut
d3e124cea1
reset AnyPressedButton at start of Update
2022-07-08 16:52:37 -07:00
cosmonaut
1cf3a13541
Inputs.AnyPressed implementation
2022-07-08 16:47:12 -07:00
cosmonaut
db5ca97726
Packer.TextBounds
2022-06-30 16:24:28 -07:00
cosmonaut
d190df55b2
update wellspring
2022-06-30 13:25:52 -07:00
cosmonaut
1aa522ffa1
avoid TextBatch.Draw smashing the stack with big strings
2022-06-30 13:24:51 -07:00
cosmonaut
a9b3b53ce9
add optional Destroy method to Game
2022-06-23 23:59:23 -07:00
cosmonaut
d32bbcd537
radian and degree conversions on Fix64
2022-06-21 11:20:32 -07:00
cosmonaut
b23792acd0
remove empty struct constructors for language compatibility
2022-06-20 13:04:44 -07:00
cosmonaut
2f5d25b458
Fix64 random fix
2022-06-16 00:51:02 -07:00
cosmonaut
ba662d7c3e
add Fix64 random range
2022-06-14 18:25:37 -07:00
cosmonaut
c1085db9c5
add store ops to depth stencil attach info struct
2022-06-08 17:15:14 -07:00
cosmonaut
bb0b6daa91
Fix64.Fractional
2022-06-07 17:01:44 -07:00
cosmonaut
13519c3150
fix stencil clear
2022-06-06 18:44:03 -07:00
cosmonaut
6ab7a2f722
read ShaderModules from stream
2022-06-06 10:42:05 -07:00
cosmonaut
436affe5de
remove some unnecessary qualifiers
2022-06-05 12:29:35 -07:00
darkerbit
ff544140e0
add file drop API
2022-06-05 12:27:46 -07:00
cosmonaut
26e7e5c809
move mouse wheel reset to sensible location
2022-06-04 15:51:19 -07:00
cosmonaut
d2a51ce524
decouple fixed timestep from draw, add frame cap
2022-06-04 15:48:55 -07:00
cosmonaut
5a9709c843
revert Game and GameState change
2022-06-01 18:31:22 -07:00
cosmonaut
0e8188682e
game state now changes on next update
2022-05-23 19:12:27 -07:00
cosmonaut
9862bfd0a0
TextureSamplerBinding now stores IntPtrs
2022-05-23 19:12:17 -07:00
cosmonaut
4756fe2b14
add SetMasteringVolume method to AudioDevice
2022-05-23 19:11:48 -07:00
cosmonaut
e5c72c6f46
add lerp to Fix64
2022-05-18 18:28:53 -07:00
cosmonaut
318ca22021
add default case for clarity
2022-05-15 12:16:41 -07:00
cosmonaut
547f7a388e
add Fix64 random methods
2022-05-15 12:16:41 -07:00
cosmonaut
dd3fb75905
fix DDS mip level loader
2022-05-14 10:31:56 -07:00
cosmonaut
2bd88e1dc1
add a few useful functions
2022-05-13 16:26:26 -07:00
cosmonaut
66d363459b
improve DDS format support
2022-05-12 11:21:07 -07:00
cosmonaut
b22d3bed30
add DDS and BC7 support
2022-05-11 21:22:20 -07:00
cosmonaut
0d93207ae9
Fixed Point Math ( #19 )
...
Reviewed-on: #19
2022-05-11 17:34:09 +00:00
cosmonaut
a0082bcec6
change Marshal.SizeOf to sizeof
2022-04-27 14:14:15 -07:00
cosmonaut
810f270a41
blittable button identifiers
2022-04-27 11:37:35 -07:00
cosmonaut
27e0404ec0
expose Line properties + no-ID retrieve
2022-04-21 16:04:40 -07:00
cosmonaut
be4b5cf2c7
fix audio not being disposed in correct order
2022-04-20 14:57:24 -07:00
cosmonaut
83eb268a4a
add audio Seek functionality
2022-04-20 14:29:46 -07:00
cosmonaut
985e096a7b
add Update and Remove to SpatialHash2D
2022-04-20 10:57:16 -07:00
cosmonaut
dccd81e029
change collision API to support multi shapes
2022-04-18 11:33:40 -07:00
cosmonaut
65568ea234
Font rendering update
2022-04-13 15:10:23 -07:00
cosmonaut
61a6d0bdc0
Font Rendering ( #18 )
...
Adds a font rendering system based on Wellspring.
Reviewed-on: #18
2022-04-13 03:06:14 +00:00
cosmonaut
72c9dd4bda
close vorbis stream before freeing data
2022-04-08 00:17:58 -07:00
cosmonaut
412f0ca179
game state system
2022-04-08 00:03:42 -07:00
cosmonaut
b252d0eb92
forgot that C# arrays are not just memory
2022-04-07 15:11:14 -07:00
cosmonaut
ba66ed4225
stream ogg from memory instead of disk
2022-04-07 14:19:43 -07:00
cosmonaut
5e2b8de2d3
Spatial Hash Retrieve returns collision groups
2022-04-06 20:25:46 -07:00
cosmonaut
35ded250ed
some more collision fast paths
2022-04-05 17:31:27 -07:00
cosmonaut
f8146b799a
store rectangle properties as ints
2022-04-05 16:35:55 -07:00
cosmonaut
4b4abaab01
fix AABB2D transform method
2022-04-05 16:06:34 -07:00
cosmonaut
6a1fa004d6
set loop on play instead of construct
2022-04-05 16:05:42 -07:00
cosmonaut
b1b6b84809
WAV static sounds + static sound instance pool
2022-04-04 23:33:36 -07:00
cosmonaut
08a3c01f66
add Vector2.Angle
2022-03-31 15:31:53 -07:00
cosmonaut
ec5160c060
add int variant to MathHelper.Approach
2022-03-31 14:51:18 -07:00
cosmonaut
c96c7a0d90
MathHelper.Approach should not return delta
2022-03-29 00:11:50 -07:00
cosmonaut
f0d3dfccf9
add collision mask system to spatial hash
2022-03-25 15:11:38 -07:00