* Server works if not connected to a tty.
* Rich presence does not run IoC resolution at runtime anymore.
* Work towards integration tests.
Mostly work related to making it so the server and client can run in
parallel, and allowing more control over main loop for testing.
* Lots of code relating to integration tests.
* Split GameState processing logic out of ClientGameStateManager into the new GameStateProcessor class.
* Adds a test fixture for GameStateProcessor with a basic use test.
* More unit tests and added Extrapolated property to GameStateProcessor.
* MapInit v1, so people can criticize my code.
* Map init v1.
* Improve LocalPlayer to fix aghosting.
* Fix map saving.
* Map command improvements:
Implement loadbp
Made certain commands aware of uninitialized maps.
* Adds IMapManager.GetAllGrids()
* Add lsgrid and lsmap commands.
* MetaData component serialization fixes.
Serialize name and description default as null.
Don't serialize prototype.
* Explicit UID indices in map files.
* Update map format doc again.
* Added centered unit box static field to Box2.
* MapGrid is more testable.
* Added some unit tests for MapGrid.
Fixed bug in MapChunk.GridTileToLocal().
MapGrid.UpdateAABB() actually expands properly now.
* Moved IMapChunk to Robust.Shared.Map.
Moved Chunk class out of MapManager class.
* Added unit tests for MapChunk.
* Bounds reduce by 1, so almost working.
* Now bound shrinking works :D
* Moved MapGrid out of MapManager.
Moved IMapGrid into the Shared/Map folder.
Replaced all calls to IMapGrid.ParentMap.Index with IMapGrid.ParentMapId.
* Added more MapGrid unit tests.
Fixed a bug in TryGetTileRef.
* Added a new special MetaDataComponent to store entity data that isn't specific to a component.
* Adds ExposeData to MetaDataComponent.
Name of the entity now defaults to the prototype name.
* EntityStates changed so that the list of networked components is not sent every tick for a modified entity.
* Code cleanup & doc comments.
* MetaDataComponent Name and Description are taken from the prototype before storing them in the component.
* Adds the EntityState serializer benchmark. This isn't a test, but is really useful.
* Redesigned the logic in ServerGameStateManager.
* Adds MetaDataComponent registration to the UnitTesting project.
* You can scroll ItemLists now.
* ScrollBar actually appears!
* Remove System.Drawing
* Move total content height away from the drawing loop, recalculate it...
...when needed.
* Take ActualBackground minimum vertical size into account
* Fix cases where lists didn't scroll to the very bottom.
* Fix CalculateMinimumSize for real I hope
* Removed unused method TileRef.GetStep().
Removed unused property TileRef.TileSize.
Removed unused property TileRef.Tile, made the field public with the same name.
Made the TileRef struct readonly.
Removed property TileRef.TileDef.
Removed property TileRef.LocalPos.
Renamed GridTile to GridIndices.
Implemented IEquatable on TileRef.
Implemented Equality operators on TileRef.
Added PublicAPI attribute to TileRef.
Added doc comments to TileRef.
* Modified Tile:
Added the PublicApi annotation.
Made struct readonly.
Filled out doc comments.
Changed auto properties to readonly fields.
Renamed TileId to TypeId.
Added a static Empty tile to the struct.
Implemented IEquatable.
* Modified MapCoordinates:
Added PublicApi attribute.
Implemented IEquatable.
Filled out doc comments.
Removed Map property.
* Modified ScreenCoordinates:
Filled out doc comments.
Added the PublicApi attribute.
Implemented IEquatable.
* Modified GridCoordinates:
Removed method IsValidLocation.
* Removed property GridCoordinates.Grid.
* Removed GridCoordinates.Map.
* Removed GridCoordinates.MapId.
* Removed property GridCoordinates.IsWorld.
Removed constructors taking a MapId.
* Removed static IoCManager calls from GridCoordinates.
* Modified GridCoordinates:
Added attribute PublicApi.
Filled out doc comments.
* Filled out doc comments for MapGrid.
Filled out doc comments for MapIndices.
Misc refactors for both.
* added command to teleport grids.
* Added method Box2.Intersect.
Added method Box2.Union.
Placement manager now spawns new grids to place tiles not connected to an existing grid.
Code was changed so that time starts at tick zero, and all entities are initialized in the space between tick 0 to 1. This was a solution to the fact fromSequence was including entities with lastStateUpdate tick one less than the actual sequence number. This is purely an issue about when exactly the game does its logic relative to the tick signals, ie positive or negative edge of the tick. Right now the game is set up to run the game logic on the positive edge of a Tick (enforced by GameLoop).
The second big part is that an empty collection takes 5ish bytes more than a null collection in the NetSerializer, even though they are conceptually the same thing in a game state. This PR puts null checks around everything and allows GameStates to have whole sections of itself null. This reduced the payload size of an empty game state from 49B to 15B.
This PR also fixes the bug where the physics system marks every movable entity as dirty every tick.
RobustToolbox projects should be named Robust.*
This PR changes the RobustToolbox projects from SS14.* to Robust.*
Updates SS14.* prefixes/namespaces to Robust.*
Updates SpaceStation14.sln to RobustToolbox.sln
Updates MSBUILD/SS14.* to MSBUILD/Robust.*
Updates CSProject and MSBuild references for the above
Updates git_helper.py
Removes Runserver and Runclient as they are unusable
I guess I accidentally removed some comment strings and didn't realize until I pushed. Related to issue #180 on the content repo. I'll put in a separate PR on that repo to fix the prototype for walls too.
* add a new GameTick struct.
* Everything now uses the new GameTick struct.
* TickRate was changed to a byte, no way it is going over 255.
Fixed bug with changing TickRate after the loop has started.
Client now properly sets the TickRate when connecting to a server.
* Removed the old CurTime fields from game states.
Getting to the Connected runlevel on the client does not require a gamestate.
GameState processing now only starts after the client runlevel >= Connected.
Added some preprocessor conditions to not catch exceptions in Debug builds.
Nightly work on the GameStateManager, it is still pretty broken.
* NetMessages now have a Size property.
Player states were fixed, you can now join the game again!
* Frame interpolation kinda works.
* Frame Interpolation pretty much works!
* simulation can now catch up if a lag spike causes it to fall behind.
* Added concommand to debug draw the interpolation targets.
* Fixed a bug with applying just the NextState to an entity.
* Skip/replay a tick to slow down if the client is running ahead of the server.
* Solved a null ref exception when an extrapolated packet is applied.
* The TickRate is now officially 10.
* ClientGameStateManager stops running when the client leaves the server.
* Replaced poorly implemented FastForward with new TickTimingAdjustment.
* Update System.Runtime.CompilerServices.Unsafe to get rid of version conflict.
* Added 'net.interp' cvar.
* Disabled frame interpolation by default. The entire feature will be disabled until clientside input prediction is working.
* Removed or disabled log spam.
Fixed Transform unit test.
* Fix compile.
* Removed Static IoC calls from MapLoader.
Misc Code cleanup in MapLoader.
* Removed static IoC calls from ViewVariablesPropertyControl.
* StateManager now uses the DynamicTypeFactory to create States.
Removed static IoC calls from States.
* EntitySystemManager now uses the DynamicTypeFactory to create States.
Removed static IoC calls from EntitySystems.
Minor code cleanup.
* Removed static IoC calls from DebugDrawing.
* ComponentFactory now instantiates Components with IDynamicTypeFactory.
Removed static IoC calls from all engine components.
Misc code cleanup.
* Removed static IoC calls from all DebugMonitors.
Misc code cleanup.
* Removed static IoC calls from spawn windows.
* Removed static IoC calls from UserInterface/CustomControls.
* Fixed unit tests.
* Removed static IoC calls from AppearanceComponent.
Added a bool to ICollidable to indicate friction with the floor, for thrown items down the line.
Added a bool to PhysicsComponent to indicate if movement is possible.
Added list of PhysicsComponent that are slowing "this" down.
PhysicsComponent handles BumpEntMsg by adding the bumping entity to that list.
Implemented ICollideSpecial to prevent collision with items in that list.
Reworked movement code:
- Separated calculating movement from doing movement;
- Calculating movement now involves several recalculations to see who is on "that" list;
- Friction of a tile now slows movement down depending on an object's mass;
Optimized collision code by building a Dictionary with a snapped grid location for key, reducing the amount of bodies that need to be checked significantly.
* Changed EntityQueries for 3x perf increase for the EntitySystemManager.Update() method.
Removed the useless giant list EntityQuery.
Allowed the DependencyCollection to be able to inject itself as a dependency. Hopefully it won't be abused too bad.
Added the new IDynamicTypeFactory to IoC for instantiating arbitrary types. This removes the need for Activator.CreateInstance() and IoCManager.InjectDependencies() anywhere in code.
Utilized IDynamicTypeFactory in IComponentManager as an example of its use.
* Added IDynamicTypeFactory to SS14UnitTest.
* Rework entity initialization.
Map loading now correctly processes entity load stages:
1. First all entities are allocated. This allocates the entity and gives
it a UID, nothing more. No user code is executed.
2. Then all entities are loaded. This runs ExposeData on components.
3. Then all entities are initialized. This runs Initialize.
4. Then all entities are started. This runs Startup.
Entity spawning methods on IEntityManager now actually set position
before Initialize.
Also cleaned up a lot of spaghetti.
* Add some comments.
* Refactor tile IDs.
Tile IDs are now automatically assigned at runtime.
A mapping is also stored in map files to avoid compatibility issues.
Also removed tile prototypes. Content is now responsible for it.
This is so content can define its own data for tiles.
* Update map format specification.
* Fix tile placement.
* Reworked the net manager connection sequence.
* Correctly handle IPv4/IPv6 prioritization and fallback.
* Making a proper handshake for an auth system further down the line should be much easier now too.
* Added feedback to connection sequence in the main menu.
This PR establishes the format "Runtime-yyyy-MM-dd-THH-mm-dd.txt" for runtime logs from the server, preventing locale from messing with string escape characters and causing directory runtimes at next line. ~I've replaced the dash with an underscore as they can cause problems in some shells such as windows CLI.~ Dashes are staying because whoever has a shell that complains needs to get a new one.
~~**_I have most importantly made sure that SS14 can live on until the year of our Lord God Emperor and veritable saviour 99,999 Anno Domini of the Gregorian Calendar by extending the runtime-log-naming year range to 5 digits._**~~
~~_Let the meme PRs begin if they haven't already_~~
4 digits so logs will display until 9999, godspeed future maintainers.
I was unable to reach 60 FPS steady on my Intel UHD 630,
so I'd say this is probably warranted.
It doesn't reduce visual quality in any way I can tell.
Load up OpenTK.dll.config again. PackageReference doesn't copy it due to
incorrect packaging.
I had to make packages be downloaded locally to the solution again via
nuget.config to do this, because otherwise I couldn't get a reference to the OpenTK.dll.config in the NuGet package.
Adds a Python script to auto download freetype6.dll and openal32.dll on
Windows.
Clyde does custom shaders. Woo!
Still some things need implementing like custom uniforms and vertex shaders,
but this commit is big enough as is.
Also gets rid of texture array based batching because it was a pain.
It now assumes that a state has the same total animation length for each
direction, this solves problems like rotating resetting animations.
Also paves the way for manual animation control.
I'm channeling the power of spaghetti through individual spaghett-
Wait what do you call an individual thing of spaghetti.
A noodle?
A strand?
Should I use this word every time I write bad code?
// Noodle incoming.
So many questions.
Adds a call to viewport on opengl init in order to properly initialize the viewport size when the OS imposes a window size on window creation. Fixes Windows OS tablet mode-imposed window sizes.
That System diff is a bug.
It's never going to be re-implemented on Clyde,
so I'm making it internal so content doesn't try to touch it.
Also fixed ScrollFollowing not being set.
So uh... Godot. Mind explaining why call()ing a nonexistant function
is completely silent?
Godot's RichTextLabel is extremely complicated to re-implement.
OutputPanel is a stripped down version that's significantly simpler.
It does what it needs to for the purposes we use RichTextLabel.
This is a really crappy OpenGL 4.5 rendering backend. Doesn't draw a lot of things but it's a hell of a lot better than Godot in the stability department. Mostly.
It's far from production ready but I already wrote all this. There's some minor API improvements in here too.
Maps are now synchronized as part of game states.
This instantly fixed all race conditions and the client can now live through a round restart with 0 problems (outside of Godot crashing yay).
I took the functionality of `IoCManager` and moved it into a non-static class. This new class is called `DependencyCollection`. The static `IoCManager` is now just a proxy to a `DependencyCollection` singleton. I also added the ability to directly register instances into the collection. The Smocks library was added to `SS14.UnitTesting`.
This is super useful for unit testing, because now you can register mock instances directly into the collection and then other services can resolve them. You can also apply a shim to static `IoCManager` calls and handle them properly. Because the collection is instanced, we can now run tests in parallel (with a shim) that modify `IoCManager`. The Smocks library gives us the ability to shim static method calls.
The entity manager is supposed to delay entity messages of which the entity doesn't exist (presumably because it *might* due to networking).
Problem is that somebody put a .Clear() at the end right after re-filling the queue.
Wasn't me.
You can now "pause" a map. Ideally this would result in the map not doing significant processing until unpaused.
This can be used later to code proper map editor modes that won't have any side effects while being edited.
1. IPv6 support. Woo!
2. NetManager can now explicitly bind to adresses and work with multiple peers. ~~I thought I needed this for IPv6 because I forgot about IPv4-mapped adresses, but the code's written so let's keep it.~~ OpenBSD doesn't support IPv4-mapped IPv6 addresses so effort not wasted.
* Transforms now unparent themselves before being removed.
Fixed crash with removing deleted entities from containers.
* Removed ClickedOnEntityMessage, use the Input System.
* Removed unused types from Physics system.
* Made CollisionEnabled actually work.
Added Collision group system.
CollidableComponent now registers the collidable in Startup instead of OnAdd.
Fixed BoundingBoxComponent namespace.
* Fixes a bug with adding components remotely.
Adds setters to the new ICollidable properties.
* Fixed unit tests.
* Converted everything (I think) to ICollidable.
* Renamed CollisionManager to PhysicsManager.
Removed the bucket system out of the PhysicsManager.
RayCastResults.Distance was changed from PositiveInfinity to 0f when no entity is hit.
* Soft collidables (bullets) work again.
Previously the GameController was in control of starting the EntityManager, and GameScreen responsible for shutting it and MapManager down.
There was no way to restart the Entity Manager.
This commit makes the start/stopping be handled in the connection procedure of BaseClient.
@Acruid please review.
1. Updates all the NuGet packages (except CommandLineParser because they ruined their API)
2. Makes all projects use C# 7.2 explicitly. (not latest)
3. Use some C# 7.2 features like readonly structs and default literals.
* VV Refactor.
Yes I just wrote it and it's already inadequate and filled with legacy code.
Instances and sessions were a terrible idea, they're getting replaced with "traits".
It's not even more modular.
Practical difference: it now supports private members, fields and displaying things implementing IEnumerable.
* Clean up code, fix some bugs. Document everything.
* Fix broken unit tests.
Adds member field to BaseClient to hold onto override name string. Figured that was the closest place to the usage, so why not stick it there.
On connecting to the server, the client will prefer to use that name, if it's set, over the name from the configuration.
Adds client console command to set that field.
Fixes#660
Added unit tests for all MathHelper methods. Very open to test data values, I tried to specifically seek out edge cases, but I'm sure there're some things I've missed. Added tests for ensuring parameter preconditions throw exceptions.
Made some minor chanes to MathHelper.NextPowerOfTwo:
- Made the long, int and float overloads defer to the double overload since the original implementation was using the same thing as the double implementation anyway.
- Modified the precondition checking for negative numbers to check for non-positive numbers since the implementation for 0 shouldn't work since log(0) is undefined.
- Added precondition checks for float and double implementations to check for NaN and +/-Infinity
- Added special case handling for float and double implementations when the input is greater than zero but less than one where the previous implementation would return negative powers of 2 (ie, non-integer results), which I assumed are not intended. Depending on what people think, that same case could be extended to all inputs less than 1, or contrarily all inputs less than 1 could be considered out of range.
I've noticed that Acruid has PR #666 open to move MathHelper, among others, to a different place, so once that's in, I can merge it into this.
Lemme know if I've missed some procedure in the PR process.
Moved SS14.Shared.Math namespace into its own assembly. This allows projects to reference the math library without needing to include the entire Shared assembly.
* Engine culling.
Sandbox is gone.
Anything resembling "content" such as prototypes and textures is gone.
The engine can no longer load up directly
(short of the client's main menu, of course).
* Make tile prototype definitions workable.
Still not great though.
You can now manually specify their insertion order,
so technically tile ID.
* Move more Player things into content.
Spawning of players is now 100% up to content.
IPlayerData is now purely for content.
* Stupid sandbox.
* Sandbox pls go.
* Aaaaaah.
PlayerIndex is dead, it's been replaced by NetSessionId.
NetSessionId is basically just the client username.
Conflicts between usernames are auto resolved by the server,
due to lack of auth server & need for local testing.
dupeip config option is gone, it doesn't understand NAT.
* Migrated click handling from old `ClickParser` to new `InputSystem`. Resolves#631.
* Input Context system added. Resolves#630.
* `PlacementManager` now uses its own input context.
* Added addon `Entrypoint.PostInit` function.
* Moved EntitySystemManager initialization from after the first state update, to right after the EntitySystem init.
* Made the EntitySystems only run Update/FrameUpdate/events after the map has been initialized.
* MapIndices implements IEquatable.
* Add sane Modulo method to MathHelper.
* SnapGrid improvements.
Has an OnMoved-like event now.
GetInDir helper, basically like BYOND get_step.
* Make MapChunk use new standard mod method.
* entfo command improvements.
Can print diagnostic info from components now.
Doesn't list components multiple times.
* Transform implements IComponentDebug
* Move code to Godot 3.0.6.
It changed collections to use its own collection types.
* Helper to turn Directions.
* I forgot to commit csproj for IComponentDebug.
* Improve SpriteComponent.
Add direction offsets for layers.
Handling of directions is better now.
* Added a shared interface for player sessions.
* Mouse Keys are now additionally handled like Keyboard keys.
Added Keybind for inspect.
* Added KeyFunctionId type.
* Keys now get passed through Gamescreen and into InputSystem.
* Remove useless KeyBindDown and KeyBindUp.
* Tried to get serverside input handling working (Spoiler: It does not).
* Stopped trying to make it over complicated, serverside input handling works!
* More cleanup, made InputSystem more symmetrical between client/server.
* Made it *actually* work with the examine system.
A new component, SnapGrid, now tracks the entity position on the actual tile grid.
This can be used to provide (relatively) quick indexing for say smoothwalling, atmos room calculations, etc...
Added a new DebugTools.Assert function to replace the System Assert. The System assert does not work well on mono, and was not gracefully handled by Visual Studio. This version now throws a unique exception when it fails, instead of the popup window. You can setup Visual Studio to break whenever the exception is thrown. The call sites to the new Assert are still removed in release builds, similar to the System version.
This resolves#569 without needing to add a trace listener.
* Remove `LoadParameters`
* Significantly refactor `EntitySerializer` to be better, no longer specific to entities.
* `IExposeData` so sub objects can be deserialized.
* Map format is now standardized & good.
* Entity and grid references inside map files now cross referenced and resolved correctly. Fixes#524
* Prototype data caching to speed up prototype instantiation.
* Switch from storing the components on each entity to a central database inside of ComponentManager.
* Better deferred component remove.
* Turn the IEntity component functions into proxies of the ComponentManager functions.
* Remove Update() base function from Components. If components need to update, an EntitySystem needs to do it.
Resolves#618.
### Purpose
* Merge ServerConsole and ClientConsoleHost shells into one system named ConsoleShell.
* Migrate all server side commands to the new ConsoleShell system.
* Add a PermissionGroup system, for 'ranks' like user/mod/admin/owner.
* Track per-client permission group, allow clients to elevate permission with global 'sudo' password.
* Changed `IWritableDirProvider.Open()` to return a `Stream` instead of a `FileStream` to help test-ability.
Resolves#612.
### Open Questions and Pre-Merge TODOs
- [x] This fix is tested on the same branch it is PR'ed to.
- [x] I correctly commented my code.
- [x] This PR does not include any unnecessary .meta, .prefab or .unity (scene) changes.
- [x] This PR does not bring up any new compile errors.
- [x] This PR has been tested in editor.
- [x] This PR has been tested in multiplayer.
* Added the new writable VFS API. Resolves#566.
* Moved resource interfaces into the new Interfaces.Resource namespace.
* Adds the property `ResourcePath.Directory`.
Removes the obsolete property `IResourceManager.ConfigDirectory`.
* Marked string version of content functions as obsolete.
* Removed unused `System.IO` using statements.
* Removed the System.IO namespace from a bunch of files.
Made the string version of IResourceCache obsolete, and converted everything to use the ResourcePath versions.
This should Resolve#567.
* Fixing some bugs.
* Un-Obsolete the string functions in IResourceCache and IResourceManager.
* Rename SS14.Server/GameState directory.
* Server now runs at 60 FPS.
* RegisterNetMessage<T> more generic!
Also started refactoring game states.
* HOLY SHIT I CAN MOVE AROUND.
* Dirty(); calls and improvements.
* Implement deletions + mark components as dirty initially.
* Remove bsdiff submodule.
* Remove Bsdiff.
* Fix System.ValueTuple reference.
* Server no longer crashes when the gun is used.
* Optimize player sync.
* Prevent constant dirtiness from player input mover.
Debug monitors like coord debug, FPS and the (now re-added)
have been amde into a more centralized system.
Networking debug is back! No chart though.
Bunch of improvements and fixes to the UI code to facilitate this.
* Deactivate special placement mode after placement
Comments
Fix collision checks for placement manager
Remove unnecessary usings
Fix the alignment issues
Wow this commit has literally almost all the work done in it alone
time to test some sketchy shit, commit first
* Fix align similar
* Adds Godot shader support.
* New sprite component with a layer system.
Supports per-layer shaders. Only texture and shader properties are implemented.
More TODO.
* Basic RSI loading.
* Direct textures for layers.
* Implement a scale layer parameter.
* RSI directions work now.
* Animation support.
* Make sprites appear again.
* Fix error message about shaders on the server.
* Implements directional sprite handling & rotation of transforms.
* Remove debug logs from ShaderSourceResource.Load
* Work on a public API & better handling of errors.
* Layer addition API coded but untested.
* Fix init crash.
* Add a client side API for SpriteComponent.
* Remove dead NetIDs.
* Fix bug where sometimes entities start flat on their face.
* Refactor IconComponent.
* Adds rotation property to layers.
* Expose scale and rotation APIs, sprite-global rotation.
* Adds visibility property.
* Netcode work.
* Server side prototype loading done.
* Netcode works.
Also adds a visibility layer option.
Apparently @pjb3005 did almost all the work for this when he changed the system to godot but didn't say anything, adds a property to parse the clicktype on mousebuttoneventargs and passes it in the network message instead
* Sawmills
* They seem to work on the server now, sorta.
* They work.
* More shit that works.
* Shit works yo.
* File logging for the server.
* Adds some debug commands and finishing touches.
* Oh yeah change this default.
* Fix unit tests.
* RSI WiP
* More work but we're doing bsdiff now
* RSI loading seems to mostly work.
* Vector2u deserialization test.
* Add in packages again.
* This is the part where I realize I need a path manipulation library.
* The start of a path class but it's late so I'm going to bed.
* HIGHLY theoretical ResourcePath code.
Partially tested but not really.
* Allow x86 for unit tests I guess jesus christ.
Thanks Microsoft for still not shipping x64 VS in 2018.
* Resource paths work & are tested.
* I missed a doc spot.
* ResourcePaths implemented on the server.
* Client works with resource paths.
TIME FOR A REFACTOR.
* Some work but this might be a stupid idea so I migh throw it in the trash.
* Resources refactored completely.
They now only get the requested resourcepath.
They're in charge of opening files to load.
* RSI Loader WORKS.
* Update AudioResource for new loading support.
* Fix package references.
* Fix more references.
* Gonna work now?
* Unit test improvements.
Adds an ApproxEqualityConstraint and IApproxEquatable<T> for certain tests.
Gives [Parallelizable] to a bunch of tests.
* ParallelScope.All | ParallelScope.Fixtures
Fixes a humorous bug where you click on things that are contained in another thing because the mousedown doesn't check if something is on the map or not
* bsdiff submodule
* All the other stuff
* Upgrade to 0.2 of SS14.Shared.BSdiff
* Use streams. Even faster!
* All rendering refactors should start with the killing of the SFML submodule. Trust me I've done this before!
* And after that comes the removal of the references in the project files!
Of course, neither of these compile. Meh.
* IoC loads, now to port the entire client over.
* More work
* Trying to debug the null exception.
* More messy WiP code
* More WiP
* Transform components now make Node2Ds inside the scene tree.
* Work on the UI system.
* Redo project configurations to work better.
* More work on the Godot GUI binding.
Added BaseButton and Button bindings, including events for them.
More APIs on Controls like GetChild() and alike.
Ability to instance a Godot PackedScene and have it automatically be wrapped by the SS14 GUI wrapper, thus allowing the usage of Godot's GUI editor while maintaining the good C# API.
* Fix incorrect sRGB profile on bootsplash.png
* LineEdit API.
* Maybe commit the csproj too.
* Exit button works now!
* Change MainMenu root to a normal Control.
* Some stuff messing with window popups.
* Fix popup not scaling down again after housing large text.
* Make popup dialog helper.
* Auto wrap controls that spawn others when not instancing.
* Nice typo me.
* Work getting server connections working.
* Server didn't start anymore due to still trying to load removed zip packs.
* Made MainMenu dump UI elements in shutdown.
* We now successfully connect to the server.
* WE Ingame NOW!
* Basic map rendering works now!
* Camera & Input work.
Though I'm not sure whether the input issues are this piss poor laptop or actual bugs.
* Fix input issues.
KeyHeld() was firing KeyUp() into States, which broke everything.
* WiP Debug console.
UI Works, command processing doesn't.
* Remove some debug logs.
* Fixing focusing issues with the Debug Console.
* In which I copy paste in the DebugConsole code.
* More WiP DebugConsole work.
* Use RichTextLabel for DebugConsole.
* Disable DebugConsole test text.
Also disable context menu on the IP Box because of font size issues.
* ITextureSource for texture wrapping.
* Make resource loading not copy every build.
It now loads from repo root. Release builds are TODO.
* Bsdiff 0.3 for fixed targets.
* Fix iCCP sRGB errors.
* Give full texture paths to prototypes.
* Sprite component old API restored. *shudder*
* Finish sprite rendering.
By hitting delete on basically everything.
* Fixing camera delay with this one weird trick!
The input lag was because the camera lagged, not because the input lagged. I didn't have visualization.
* Use greyshirt as temporary human replacement.
* FPS Counter.
* Fix Windows, re-add space tile def.
Windows broke because Mono on Windows can't use System.IO.Compression.
The GZIP streams use by MsgFullState have been moved to
ICSharpCode.SharpZipLib.GZip. Works fine.
Also re-added the space tile def because everything blows up otherwise I
guess.
* Debug colliders works.
* Highly WiP varied Window code.
* Work on the quit button. Doesn't work yet. Needs state overhaul.
* Do a better job of freeing Godot objects correctly.
* Simplify game states.
States are no longer cached. They're GC'd after shut down. Their creation has been simplified too due to IoCManager.InjectDependencies().
This makes returning to main menu work GUI wise.
* Be less aggressive on resource freeing. Only dispose Mono handles now.
* More work getting quit to work.
* Grids get cleared upon disconnect correctly.
* Disable rendering of the filler space tile.
I'll leave a nice parallax background up to content.
* Oops forgot to stage these.
* Fix issues in the csproj file.
* Make controls have own namespace.
* Chatbox GUI, other stuff.
Compiles but doesn't quite work yet.
* Git fuck you
* Chat works.
* Clicking on a not-control removes focus now.
* Fix an exception.
* Update mono. Use enums instead of constants now!
* Fix window dragging
* Fix chat stealing focus from other LineEdits on MacOS I guess.
* Correctly handle client shutdown & server disconnect.
* Fix error spam on client shutdown probably.
* Tiny amount of lighting code to have access to it from other computers
* Lighting works mostly.
* Godot.Texture.Flags -> FlagsEnum
* More WiP lighting code
* Turns out you can't control custom layers with cameras eh.
* WiP lighting almost works
* Lighting WORKS!
* Lobby thing.
* Some options menu work. I'm gonna try something
* Options menu works.
* More improvements.
* In game options menu works.
* Remove a debug log.
* Fix Window Movement and Drag.
* Huh Godot edited these scenes.
* Forgot to commit projects
* It compiles.
* I never claimed that.
* Update sandbox csprojs a bit.
* Makes sandbox load.
Client goes ingame but dies due to broken map manager networking code.
* Fix grids.
* Fix relogging duplicating entities inside Godot.
* Eyes!
* How about removing the TODO entry.
* Auto fetch bsdiffwrap.
* Update TODO.
* Remove TODO list.
* Tilemaps get cleaned on disconnect now.
* Fix bsdiff submodule HOPEFULLY
* Highly WiP and not compiling or working placement.
Yes this is the best way for me to share code between my computers.
* Fix bsdiff with spaces in path names bloody MSBuild + cmd.
* PLACEMENT KINDA WORKS.
NO RENDERING OR TILES YET.
ALSO I NEED TO REBASE THIS.
* Kill EngineContentPack.zip
* Fix map code and remove sprite components from the server.
* Ok entity placement mostly works.
* Grid lines sorta work but SnapgridCenter is still broke.
* Fix Center Grid Rendering.
* Work getting tile spawns to work. Not quite there yet.
* Fix placement and remove tiledef networking.
It werks!
* Remove SolutionSpecific.targets
Didn't end up being needed.
* Kill off wearableanimatedsprite component states.
* Do not put binaries relative to the solution.
* Remove shaders, reorganize prototypes for content.
* Reimplement SpriteComponent color.
* Correctly set __engine_human DrawDepth.
* Round coordinates passed to Godot to pixels to prevent issues.
* Remove some GUI log spam.
* Resource cache now uses the VFS more-proper but still awfully.
* Fix color reading code on SpriteComponent.
See, e94bf4854b106da51c89eeeab9a609be369f9622 did work.
The problem was all the code it NEEDED to work was broken.
* Step one into trying to fix Travis and AppVeyor.
* Auto download GodotSharp on Travis.
* Let's not make dumb mistakes with the cache directories.
* 2018 and requests still isn't in the stdlib.
* This maybe?
* This maybe?
* AppVeyor time.
* How 'bout we don't download sonarqube at all outside master.
* Try to cache on AppVeyor.
* Fix mac builds maybe.
* Finishing up Godot: cleanup.
* Eh this works too for SS14Loader.
* Remove some dead files
* Make Omnisharp not choke on buildchecker.
* Controls for box containers.
* Remove debug port from project.godot.
* Control and drawing improvements.
Controls are now properly capable of overriding Godot virtuals.
Importantly minsize calculations and stuff like HasPoint.
There is now a system for doing direct drawing on controls.
This is done with a DrawingHandle system.
TextureSource has been renamed to Texture.
Also there's a wrapping for Godot's style boxes now.
* Yeah don't insult omnisharp.
* Stylebox fixes and margin API on controls.
* Hey it compiles!
* Fix things.
* Fix null godot texture conversion.
* Fix client transform parenting.
* Fix movement sticking to north.
* Some updates.
* Work on exports.
* Unstubs client/Godot timing code.
It's mostly implemented now.
* Client unit tests work.
Jesus Christ.
* Let's figure out why AppVeyor hates me.
* Does the remie.
* Update GodotSharp download URL.
* Export templates for the builds server.
* Remove mac export icon.
* TO THE BUILDS SERVER.
* Probably implement the effects system in Godot.
* Fix mouse handling everywhere.
* Fix some CollidableComponent exceptions.
* Effects system works + unshaded option for LAZORS.
* Let's not fuck with Angle yet.
* Make file/line numbers show up on Windows Godot.
A bit of a shitty function that somewhat works, get entities in a range that intersects ours but also has a center point within an angular range that we specify
* Moves client entity system to be closer to IoC registration and before gamescreen initialization
* Gives the raycasting system an argument to ignore a particular entity when finding what entity it will intersect
* Adds an arbitrary effects system
By creating a message defining things such as position, spritename, rotation, size, and delta values, you can create a temporary effect on the client. Just create a new message, define all the values upon it, pass it to the serverside effects system to send to the clients.
* Effects csprojs stuff and adding a datatype for priorityqueue from a nuget package
* Modifies nuget to use $solutiondir
* Effectsystemstuff
* Added Data Get/Set functions for use with Properties.
* Able to serialize generic List and Dictionary.
* Can now actually serialize generic lists and Dictionaries.
* Manually set the newline string for StreamWriter so the tests pass in linux/mac.
* Added Unit Tests for GameTiming.
* Added GameLoop class.
* Removed TimeScale.
* Switched server to the new GameLoop.
* Client now uses GameLoop.
* Allowed friend assemblies in release builds, so TravisCI can run tests.
* Ray -> Box intersection works.
* Turret AI finished.
* Turret Works :D
* Light masks can now be rotated.
* Shoddy angle MoveTowards works.
* Shoddy Vector2 MoveTowards works.
* And pretty broken Quaternion version..
* Slept on it, rotation works good enough now.
* Fixed nuget dependencies.
* Moved AimShootLifeProcessor.cs to content.
* Misc cleanup.
* Removed BoundKeyChangeEventArgs.
* Removed event IClickableComponent.OnClick.
* Nothing uses EntityEventArgs now.
* Input messages are now sent through the network as SystemMessages instead of ComponentMessages.
Fixed EntitySystemMessage namespace name colliding with the base class.
Removed some unused code from server.
* Ignored KeyBindingInputComponent in the client prototype system.
Removed useless update code from client InputManager.
* Removed useless CLSComplientAttribute from math structs.
Removed Obsolete functions from math structs.
Minor code cleanup.
* Merged Color into Color4, then renamed Color4 back to Color.
* Moved GameStateManager functions out of BaseServer.
* Moved PlayerManager NetMsgs out of BaseServer.
* Moved MapManager NetMsg out of BaseServer.
* Moved TryLoadAssembly from BaseServer to AssemblyLoader.
* Removed some service locator calls.
* Sealed Entity class.
Removed Entity.Update().
Code cleanup.
* Component.Update() is now obsolete.
* Added skeleton of new Component Message system.
* Converted everything to use new `SendMessage(owner, message)`.
* Removed more of the old system.
* Changes `IEntity.AddComponent(IComponent)` to `IEntity.AddComponent<T>`.
Removes some initialization functions from IEntity.
* Pulled ComponentManager registration out of Component into Entity.
Removed unused OnShutdown events from Entity and Component.
* Converted Component.ReceiveMessage() to Component.HandleMessage().
* Killed component message params.
* Remove EntityNetworkMessage params.
* YAML deserializer is coming along.
Nightly work.
* Should be pretty much working now.
* Converted most of the server components over.
* Entity loading/saving works.
* Grid saving/loading works.
* Cleans up old code.
* Saving and Loading of blueprints works.
* Improved map commands a bit.
* MapLoader fixes grid and map IDs in blueprint.
Can now load blueprints from the VFS.
* Removed Entity.LoadData(YamlMappingNode).
* Updated the nuget 'YamlDotNet' package to 4.3.0.
* Fixed Sandbox entry point.
Unit tests pass again.
* Fixes spawn entity bug
Now transform is called before initialize is, yay.
Call it shitcode but unless there is a better way that I cant find, this is the fix, and if there is please tell me
* Fixes incorrect AABB
* Prevents sprite exceptions
Even though setsprite has a default value that it gets set to, unless you give basesprite a non-null value and call setsprite it will cause the animatedsprite components to have an exception without fail. This happens if you don't include it in the prototype for whatever reason.
* Unnecessary
* Added math types from OpenTK project.
* Removed OpenTK from SS14.Server.
* Removed most references to OpenTK from SS14.Shared.
* Removed OpenTK from SS14.UnitTesting.
* Fixed errors in SS14.Client.Graphics.
* Removed more references.
* Remove OpenK from SS14.Client.
* Fised the last compile errors.
* Deleted opentk config file.
* Changed projects so that Sandbox content is built in its own folder, and then copied to ./Resources/Assemblies.
* Moved SS14.Sandbox.targets to the ./MSBuild/ folder.
* Location Getters 2
Oh my god I didn't even make them part of the interface last time
Fixed a bug with local coordinates not be converted to world coordinates before comparing to other entities world transform
Added some more getter overloads
* Changes entities getters more
Adds a get entities in range for entity and range overload
Changed getentitiesinrange to take into account the bounding boxes of objects instead of their absolute coordinates
* SQUARE
* Added a NetManager.DisconnectChannel so that server/shared can disconnect clients.
Added listplayers command to list all connected session on the server.
Added kick command to forcefully disconnect a connected session.
* Part 2, everything works now.
Changes way content loads instead of using config, attempts content then loads sandbox instead
Fixes some compiler warnings
Adds a field needed for content player mob
* Lidgren removed from Client.
ScreenBlocker control removed.
* Lidgren removed from server.
Lidgren removed from UnitTesting.
Lidgren only referenced in SS14.Shared.Network.
* Removed useless traffic debug printing.
Fix a bug with Keybinds being sent to server.
* NetMessages enum is finally gone :D
* Add warning for receiving NetMsgs without a registered callback.
* Moved some of the RegisterNetMessage calls out of BaseServer.
Added 'netaudit' concmd to list NetMsg callbacks on the server.
* Fixed exceptions, it works now.
LocalCoordinates.IsValidLocation() added.
* Moved all objects out of the SS14.Shared root namespace.
* Remove IoC self-referencing in MapManager.
* Added Circle to the math library.
Made LocalCoordinates equatable.
MapManager refactoring.
Light refactoring.
* Removed LightArea.
* GetEntities* functions now check mapIds.
PlacementManager does not place things in null space.
Prop Edit window "works" again.
* Lightmasks work.
* Adds skeleton Sandbox Content projects to the solution.
* Change BuildChecker output type to Class Library so that Resharper stops complaining about the project not having a Main() function.
* Added basic player event hooks to BaseServer.
Moved Server run level from PlayerManager to BaseServer.
Added concmds to switch between run levels on server.
* Forgot to commit project file.
* Entry points got changed a bit.
* You can now join a game without a map loaded on the server.
* Moved map loading to Content.
* Adds 'tp' command.
* Added 'addmap' command. Client crashes when used.
* Teleporting between maps works.
* Added GridId and MapId types.
Removed Test concmd, it was useless.
Misc formatting/cleanup.
* Tile placement kinda works.
* Added OnPlayerStatusChanged event.
* Server now auto starts the round.
* HandlePlayerStatusChanged works better now.
* Removed PlayerJoined* events from BaseServer, PlayerStatusChanged event does the same thing.
* Changed default platform of Sandbox from AnyCPU to x86.
Added "content.dllprefix" ConVar so that the config file can specify which content dll to load.
Changed LoadContentAssembly name argument to contain the entire name of the dll being searched for.
* SS14.Shared now copies Lidgren to the output directory.
More project configuration changes to remove the AnyCPU nonsense.
* Extracted the logic from DebugConsole into a new ClientConsole class.
* ClientConsole moved to IoC system.
Verb system replaced with concmds.
* Shared Cleanup
* ClientChatConsole skeleton.
* DebugConsole and LobbyChat are now both subscribed to ClientChatConsole.
* Removed server chat commands.
* cleaned up server command sysyem.
* More chat handling, and aliasing.
* Nightly work on Say command.
* Fixes a bug in Maths.Angle.
* Chat channel colors moved to ClientChatConsole.
* Now Server commands are sent without opening DebugConsole.
* Emotes work.
Clientside chat formatting works.
* Fixed angle unit test.
* Added BaseClient.
Moved connecting system into BaseClient.
* Added ConnectFailed event to ClientNetManager.
BaseClient properly handles failed connection attempts.
* Session Rework
* Client now knows about other clients that are connected to the server.
* Reconnecting with the client works now.
* Allow Dupe IP.
* Shared PlayerManager shell.
* More session work.
* TWO PEOPLE CAN ACTUALLY CONNECT.
* Added some event functions to BaseClient.
* Basic multiplayer works again.
* Fixed MsgPlayerList buffer overrun.
* Lobby Updates.
Simplified MsgPlayerList, and cleaned up some networking.
* Cleaned up misc dead code.
Added DocComments to IBaseClient and BaseClient.
* Fixes spelling issues and adds more Doc Comments.
* removed a bunch of vulnerabilities
* removed a bunch of vulnerabilities
* uncommented the code
* reverted .gitignore to its previous state
* fixed the compilation bug
* and again
* Switched to autoproperties everywhere where I could. There are still 3 unsolved vulnerabilities though.
Fixed some defaults not being set.
* Re-added the default value for BlendMode.
* Screen now controls children.
* Input works.
* Transitions work.
* Removed IState.cs.
* More MainMenu.cs cleanup.
* Cleaned up options menu code.
* Simple Image now aligns properly.
* Alignment on the main menu works.
* YOU'RE NOT PERFECT
* Oh Boy ListBoxes.
* Screens actually get laid out properly.
* Big Options.
* Done fixing for tonight.
* More Cleaning!
* More cleanup, documentation and moving things to the base Control class.
* Migrating everything to use parent class properties.
* Lobby menu is looking good!
* More State cleanup.
* Give namespaces proper names.
* More namespace work.
* The chatbox position struggle is finally finished!
* Windows kinda work now.
* Scrollable Container work.
* OH GOD the listbox finally works.
* Ingame MainWindow works.
* Move spawn panels into CustomControls.
* TileSpawnPanel pretty much lays out.
* EntitySpawnWindow layout works.
* DebugConsole shows up, but contents do not display.
* Minor cleanup.
* Scrollbars work.
* Focus system should be working now.
Removed old code.
* Focus system should work as you expect now.
GameScreen now controls KeyBindingManager, so you can block movement keys with the UI.
* Text alignment fixed.
OptionsMenu background fixed.
* Mouseover UI scrolling works again.
Listbox dropdown now shrinks to fit contents.
Minor text alignment issues in Textbox fixed.
* Chatbox input alignment fixed.
* ListPanel is a thing now.
* ChatBox work.
* RichTextPanel now wraps lines.
* RTP cleanup.
* Fixes DebugConsole, Tabs, and Chatbox.
All prototypes inside the engine are now clearly marked and prefixed with `__engine_`. Also renames all prototypes to be snake_case, and added [engine] to their name.
Also, the content repo can now select which prototype to spawn for humans.
* Fix UpdateIsHardCollidable.
Probably should've tested that beforehand.
Also optimized collidable removal extremely to not be O(n), by reworking the way they were stored inside the collision manager.
Seriously why would you use a dictionary as a dumb list of key/value pairs. WHY
* band-aid buggy client code
* better idea
* Apparently I forgot to remove this.
* Fix crash when disconnecting from server.
For some reason the game screen sets all sprites to have a null texture. This caused Sprite's Texture setter to nullref.
* Implement spritebatch.dispose, remove gaussianblur.dispose
* Improves debug mode perf & look
Debug mode no langer tanks FPS by caching the used rectangle and text shapes. The LINQ removal probably helped too.
Sprite AABB debug has been removed since sprite AABBs aren't used anymore.
Implemented text shadowing, which is now used by the debug text to make it more readable.
Implemented collidable debug color from prototypes.
* Remove stray comma.
* WiP of making SFML encapsulate by Client.Graphics.
* Up to like 40 files changed already!
* My hands are writing words.
* More work.
* Render states
* Client Graphics compiles
* More work
* C# compiler might be bugged
* C# compiler might be bugged
* Rust has ruined me
* It works!
* IServerTransformComponent improvements.
IServerTransformComponent now more closely represents the API in TransformComponent, which was lacking because ITransformComponent is client-side, and the client cannot move entities itself, for example.
* Fix compile error
* Refactor and clean up containers.
Containers are no longer arbitrarily bound to a single component, they use string IDs instead.
The API to interact with containers has been documented with doc comments.
Container creation now uses a static method.
Containers are sealed instead of abstract. Custom logic doesn't go on containers.
Theoretically fixed various bugs:
* Makes container manager creation work, previously it'd nullref.
* Containers being deleted now correctly detaches contained entities.
Still needs unit tests before being merged, because this code is still 100% untested.
* Lots of fixes, unit tests.
* Attempt to fix Python on Travis being too old.
* Fix RUN_THIS.py too.
* Fix CI builds blocking.
* Fix BuildChecker.csproj Python versioning in Travis.
* The million error march
This commit replaces many of the vector2's with their appropriate version of either LocalCoordinates, WorldCoordinates, or ScreenCoordinates
* Change transforms to send back worldcoordinates for position instead
* Adds coordinate class file
* What the fuck is going onnnnnn
* What the fuck is goign onnnnnnnnnnnn
* Changes some shit to use multiple maps instead
Fixes the compile errors in shared first
* Compile errors mostly fixed, about to rebase
* Merge branch 'master-wizfederation' into multiplemaps
# Conflicts:
# SS14.Client.Graphics/CluwneLib.cs
# SS14.Client/GameObjects/ClientEntityManager.cs
# SS14.Client/GameObjects/Components/Renderable/AnimatedSpriteComponent.cs
# SS14.Client/GameObjects/Components/Renderable/ItemSpriteComponent.cs
# SS14.Client/GameObjects/Components/Renderable/ParticleSystemComponent.cs
# SS14.Client/GameObjects/Components/Renderable/SpriteComponent.cs
# SS14.Client/GameObjects/Components/Transform/TransformComponent.cs
# SS14.Client/Interfaces/GameObjects/IClickTargetComponent.cs
# SS14.Client/Placement/Modes/AlignSimilar.cs
# SS14.Client/Placement/Modes/AlignSnapgridBorder.cs
# SS14.Client/Placement/Modes/AlignSnapgridCenter.cs
# SS14.Client/Placement/Modes/AlignTileAny.cs
# SS14.Client/Placement/Modes/AlignTileEmpty.cs
# SS14.Client/Placement/Modes/AlignTileNonSolid.cs
# SS14.Client/Placement/Modes/AlignTileSolid.cs
# SS14.Client/Placement/Modes/AlignWall.cs
# SS14.Client/Placement/PlacementManager.cs
# SS14.Server/GameObjects/ServerEntityManager.cs
# SS14.Server/Interfaces/Player/IPlayerManager.cs
# SS14.Server/Player/PlayerManager.cs
* Whops
* Compiles, loads somewhat, lights nonfunctional, many TODOs left
* serializes states, fixes incorrect spawn
* Fix map sending to the client
* Makes things only render on the correct zlevel
* Makes entity manager wait to intiialize shit after the maps arrive
* Fixes placement net messages
* Improves some of the placement managers, others need a bit of testing and tidying up again
* Transform fix
* Polishing, make coordinates into structs
* Remove resolved comments
* Last commit before master merge
* Fix the rest of the conflicts
* Fixes super spooky bug
* Fixes cross zlevel collisions
* Fix the rendering system to render the tile system regardless of grid location
* Fixed AnimatedSpriteComponent clicking, SpriteComponent is still bugged.
* Added Box2.Scale helper function.
Cleaned up the WasClicked function in AnimatedSpriteComponent.
* Renamed AABB to LocalAABB in ISpriteComponent and IRenderableComponent, so it is clearer what the property contains.
Fixed more bugs in AnimatedSpriteComponent.WasClicked(), and added exceptions.
* Fixed SpriteComponent.WasClicked().
Fixed unrelated bug in EntityManager, so entities can be properly deleted again.
* Fixed issue with sprite sorting using TextRect instead of LocalAABB.
* * CluwneLib.cs: Make _window a local variable
* BaseCollection.cs: Formatting issue
* BaseServer.cs: Removed unused parameter
* ChatManager.cs: Made public encapsulated fields
* BoundKeyEventArgs.cs: Public encapsulated parameters
* CVarFlags.cs: Explicit variable setting
* ComponentFactory.cs: unused variable
* * CluwneLib.cs: Make _window a local variable
* BaseCollection.cs: Formatting issue
* BaseServer.cs: Removed unused parameter
* ChatManager.cs: Made public encapsulated fields
* BoundKeyEventArgs.cs: Public encapsulated parameters
* CVarFlags.cs: Explicit variable setting
* ComponentFactory.cs: unused variable
* CVar fixes
* Edited the OSX error message to be a little more helpful. (You have to edit the .dylibs because they come broken).
* Fixing the sprite movement problem
* Reverted error message
* Revert Again
* Changed Cluwnelib.TileSize name to CluwneLib.PixelsPerMeter. I think its more descriptive of what the name is.
Removed the splash screen debug #ifdef's, and replaced with proper ConditionalAttributes.
* Window encapsulated.
* Add the RELEASE compilation symbol to Release builds of all SS14 projects.
* More CluwneLib cleanup.
* Fixes Bounding/Clicking Bugs
This fixes a number of bugs with the clicking system.
- Wearable animated components were fixed so that they properly report their AABB
- Wearable animated components were fixed so that they properly use their nonwornsprite or wornsprite for checkclicking
- Fixes the clicking system only choosing the player character
- Fixes the eraser only working within a 1.5 tile range
* Uses FloatMath.CloseTo()
* Creates a Snap Checking System
Creates a system that attempts to sanitize placement of objects when attempting to spawn them on snapping grids. This checks whether an object is trying to spawn specifically on a snap grid, and if it is checks against a snapflag of the type to see if other exclusive snappable objects are on that snap grid point.
Separates the spawnentityat into tryspawnentityat which checks for snappables, and forcespawnentityat which completely ignores that.
* Fixes the yaml placement
Fixes exemption from tryspawnentityat which didn't use the bool
Snap placement managers show when canspawnat is preventing them from spawning
* Improve snap placement managers again
Fix using prototype.name instead of prototype.ID
* Nope nope
* I need to unify these two types after the next refactor
* Move to strings for snap flags.
* Check
* 「s h i t c o d e」
* Gracias appveyor now I have seen the light
* Uses FloatMath.CloseTo() to check float equality
* "./Resources/" folder is now mounted instead of "./" in the ResourceManager.
Prototypes now use the ResourceManager.
Added FindFiles(string path) to recursively find files in the ResourceManager.
General FileHelper bug fixing and cleanup.
* Ran SS14.Shared/ContentPack* through the code cleanup again.
* Put PJB's comma back in.
* Makes walls into entities
* Fix the align tile empty placement mode, holy shit collision bounds is fucked
* Make shadowcasting from walls work again
* Fix lights on tiles
* Creates a helper function for making tile indices into tile refs, and a function to get a tileref one step in any particular direction of another tileref.
* Gottem
* k
* Remove some IComponent type bounds, component shutdown event.
Methods like GetComponent<T> don't require T to implement IComponent anymore.
Added an event to IComponent that is invoked whenever the component is shut down.
* Always at least compile your stuff kids.
* Remove SFML binaries in repo.
* Add SFML.NET submodule from our fork.
* Get build checker for submodule handling.
* Fix project references. Remove SFML from non-client.
* Make it work!
* Automatically fetch Windows CSFML natives.
* Fix project file now I'm done debugging.
* Fix project references.
* Fix CI
* Now if only I didn't typo...
* Fix Travis too
* Fix lighting.
* Move shaders over to new API.
* Fix some obsoletions.
* Improve SetUniformArray casts
2017-08-19 10:28:39 +02:00
1469 changed files with 89705 additions and 51621 deletions
<Warning Condition="'$(Platform)' != 'x64'" Text="Did not download ss14_noise because the platform is not set to x64. Only use this build for unit testing!" />
<Warning Condition="'$(Platform)' != 'x64'" Text="Did not download misc dependencies because the platform is not set to x64. Only use this build for unit testing!" />
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.