Commit Graph

860 Commits

Author SHA1 Message Date
PJB3005
bb5a278fdb Fix compiler warning. 2018-08-30 12:53:23 +02:00
Centronias
ef506006b3 Toggleable flashlight (#106)
Fixes second half of #92 

Regarding the first half, Digitalis explained in discord that when an entity is picked up, visible components are made invisible by making the entire Godot scene node for the entity (based on the GodotTransformComponent) not visible. It's probably possible to exempt the pointlight from that invisibility, but that seems hacky and it seems like something that should be covered by a generic "items equipped in hands are visible" design.

Adds:
- Handheld light component for toggling light activation
- Lantern sprite with on and off layers
- Lantern prototype updates

Known issues:
- When light is on and on the ground, hovering over it with the cursor does not produce the outline effect. I'm not sure, but I think this is caused by the way I implemented the illuminated layer as an entire sprite rather than just the illuminated part. The outline only works on the first layer maybe? I checked it against the welder in its on state and it doesn't seem to outline the flame.
- Illuminated sprite (layer 1) is an entire flashlight, so to make it look okay, the whole first layer is turned off. Would be better / more correct to follow the example of the welder and just create an illuminated "cap" to overlay on the dark extinguished layer. I'd whip up some coder art myself, but I don't have the right tools to handle transparency.
- Illuminated sprite is slightly different from the extinguished sprite, so turning on the light makes it a little bit shorter.
2018-08-28 17:39:20 +02:00
Acruid
ed39649721 Interaction Features (#101)
Various minor interaction features.

There is no concept of gravity in the game yet, so items drift through space or the hallways of a station until they are stopped. Thrown items do not collide with walls because making them collidable makes them collide with EVERYTHING, including the player. We need collision groups in the physics system.

Because of the previous problems the velocity things are throw at is set quite low, it can be tweaked after the other mentioned issues are resolved.
2018-08-22 10:19:47 +02:00
Pieter-Jan Briers
cd4442b81e Antag Datums. Oh also minds. (#100)
AKA: Minds and there's a stupid basic roles framework.
2018-08-20 15:59:04 -07:00
Acruid
edb3eb5b2e HandsSystem now uses InputSystem. (#95)
Fixed TemperatureSystem namespace.
2018-08-18 15:28:02 -07:00
Pieter-Jan Briers
189a52c6d7 Use Sprite proxies for GUIs. (#93)
AKA "welders actually light up in the hands GUI".
2018-08-16 22:43:04 +02:00
Acruid
830159390b Input Handling (#90)
* Migrates the Examine system to the new Input system.

* Update Engine.
2018-08-08 11:43:49 -07:00
Pieter-Jan Briers
40ed16e118 Fix build harder. 2018-08-02 08:55:49 +02:00
Pieter-Jan Briers
d7074bf74f Construction System. (#87)
* Construction WiP

* Construction kinda works!

* Lots more construction work.

* It mostly works!
2018-08-02 08:29:55 +02:00
Víctor Aguilera Puerto
f051078c79 Remove all references to OpenTK (#85)
Resolves #80
2018-07-29 23:58:19 +02:00
Pieter-Jan Briers
74b38c49fb Materials system. (#84) 2018-07-27 17:11:58 +02:00
Pieter-Jan Briers
cb439ba39a Remove compiler warnings. 2018-07-26 23:55:34 +02:00
Pieter-Jan Briers
b34591ab59 Data Rework Content Edition (#82)
* WiP Data Rework.

* Convert stationstation to new map format.

* stationstation.yml v2

* Update submodule
2018-07-26 23:38:16 +02:00
Acruid
8c874c76dc Base Update() method was removed from components in engine, added some basic ECS systems to update the components. (#79) 2018-07-26 23:26:19 +02:00
Pieter-Jan Briers
ad5c82fec9 APC & SMES appearances. (#78)
* CEV-Eris SMES sprite as RSI.

Has been modified so that the light overlay states use alpha blending.

* Add tiny glow to SMES display sprite.

* Appearances work v2

* More WiP

* RoundToLevels works correctly on even level counts now.

* SMES -> Smes because MS guidelines.

* CEV-Eris APC sprite.

* APC visuals.

* Reduce SMES scale again to normal levels.

* Update submodule
2018-07-17 11:39:55 +02:00
indeano
2d23c6a45e Some work on directing storage component's client updates (#75)
* adds storage system, primitive client-unsubscribing of storage updates

* strips out currently unneeded system

* channel to actor

* closestorageui todo added

* thorough logging, actor to session, validates session before sending packets

* offloads session status check to an event handler
2018-06-20 15:49:13 -05:00
Pieter-Jan Briers
10999dc905 Grid map detaching: content edition. 2018-06-10 01:03:49 +02:00
Pieter-Jan Briers
d8540cdbd9 Comments are important. 2018-05-30 17:05:06 +02:00
Pieter-Jan Briers
0dad2c863b Fix powernet spreading edge cases. 2018-05-30 16:44:35 +02:00
Pieter-Jan Briers
179b2534d2 Fix load & supply desync upon merging powernets. 2018-05-30 16:22:51 +02:00
Pieter-Jan Briers
ff0b1bfd05 Fix power warnings & sort errors. 2018-05-30 16:10:36 +02:00
Pieter-Jan Briers
097c876578 More data in power debug tool. 2018-05-30 14:23:08 +02:00
Pieter-Jan Briers
7e5c764b50 Make power node not die on map load. 2018-05-27 23:39:14 +02:00
Pieter-Jan Briers
77222824c3 New map! 2018-05-27 23:27:32 +02:00
Pieter-Jan Briers
e36033a3ac Power improvements:
* crashes fixed
* made lights an RSI.
2018-05-27 21:45:31 +02:00
Pieter-Jan Briers
ab91d358ef Power is now frame time aware and actually works correctly. 2018-05-27 19:33:27 +02:00
Pieter-Jan Briers
147aad5064 Some work on the mess that is this power code.
Jesus.

Tons of fixes, refactors and other things.
The powernet's code is still awful though.
2018-05-27 16:44:50 +02:00
Pieter-Jan Briers
f1ec10e3e1 Input Refactor (#72) 2018-05-27 10:13:33 +02:00
Pieter-Jan Briers
85b4be3ff4 Updates for the netcode refactor. (#69)
* Updates for the netcode refactor.

* Change HandsGui to control.

Why? No idea but drawing of it works again.

* Fix hand change sync.

* Update submodule
2018-05-13 11:54:21 +02:00
Pieter-Jan Briers
20cf3a6a9b Rename IEntity.GetComponents to GetAllComponents. (#68)
* Rename IEntity.GetComponents to GetAllComponents.

This is to avoid confusion.
A single s to distinguish it from GetComponent() is quite hard to miss.

* Update submodule.
2018-05-10 19:21:15 +02:00
Pieter-Jan Briers
205a4fc530 Fixes server shutdown crash & client error log spam. (#67) 2018-05-10 18:52:44 +02:00
clusterfack
3915b735ae Examine System (#65)
* Examine System

* Adds some relevant comments
2018-05-09 16:34:26 +02:00
Pieter-Jan Briers
61a1e769d7 Sprite refactor (#63)
* Sprite refactor compatibility.

* Sprite-level rotation.

* Dude it works.

Welder now has an unshaded flame toggle!

Door component no longer on client!

* Remove debug text.

* Update.
2018-05-08 01:20:15 -05:00
clusterfack
c33c227d95 Inventories (#61)
* Bully the fuck out of inventory shit
Inventory Stuff
Inventories technically work
It works technicaly speaking
Yeah this part too
Lets do it!
Inventories completed
Motherfucker

* Remove unnecessary usings and fix one thing

* Submodule update

* Adds a bunch of various clothing prototypes for each current inventory slot
2018-04-25 13:42:35 +02:00
clusterfack
ea05c593aa Storage Component (toolboxes, backpacks, etc) (#57)
* Fix
Finish and update submodule
Comments code, changes network messages
FIXES THE USE INTERACTION SO YOU CAN ACTUALLY ACTIVATE THINGS NOW
Need engine commits
We'll figure out what to do about this shit later eh mates? Maybe have a script in the build process that automatically moves them over to godot/scenes
Changes some prototypes and fixes stuff
Fixes some more bugs, makes storage values show up properly
Part 3
Part 2
Storage Take 1

* Doneso
2018-04-22 13:11:38 +02:00
Pieter-Jan Briers
74193d1182 Compatability with sawmills. (#60) 2018-04-19 20:23:49 +02:00
Pieter-Jan Briers
9989d6db75 Updates submodule (#56)
* Adds audio to the content repo.

* Content repo updates

* I forgot this AGAIN.
2018-04-12 23:56:43 +02:00
Pieter-Jan Briers
6704245a41 The Wait Is Over. (#49)
* Move submodule to Godot

* Update submodule AGAIN.

* Update project files.

* Remove WearableAnimatedSprite from prototypes.

* Remove content repo resource copier.

* Update submodule.

* Fix resource handling.

* Content.Client compiles by commenting out hands GUI.

* Update submodule.

* Fix prototype textures and update submodule.

* Update Submodule.

* Update submodule SOME MORE!

* Random WiP shit I guess

* Make omnisharp not choke on buildchecker.

* Update submodule.

* Highly WiP broken HandsGui code.

* Ok maybe let's not insult omnisharp.

* Fix annoying Omnisharp warning.

* Update submodule.

* Update submodule.

* Hey I forgot to push this but it didn't conflict!

* Fix hands GUI on godot.

* Update submodule.

* Obligatory submodule update.

* Work on exports.

* Work on exports.

* Update submodule.

* Update submodule.

* Fix dumb case mismatch between content and engine

* work pls.

* This maybe.

* Now!

* Update submodule.

* update submodule.

* Some WiP work on exporting aaah.

* OK READY FOR THE BUILDS SERVER.

* Probably should've made those commits in a different order.

* DO THE THING

* update submodule.

* Updates for effects system.

* Update submodule.

* Make file/line numbers show up on Windows Godot.

* Set submodule to master.
2018-04-07 15:31:38 +02:00
clusterfack
128728bfcb Adds weapons (#48)
* Adds weapons

- Adds melee weapons
- Adds projectile weapons
- Adds hitscan weapons (like lasers)

* Adds a separate sprite for projectile weapons
2018-04-06 00:32:51 +02:00
clusterfack
98bd1552b9 Fixes power components (#39)
Fixes the power components not having node set if they get a node added as a component in OnAdd()
2018-03-09 17:59:19 +01:00
Acruid
3f89f3f0f7 InputSystem Messages (#37)
* Misc Cleanup.

* Removed BoundKeyChangeEventArgs.

* Nothing uses EntityEventArgs now.

* Rebase fixes.

* Updated Engine.
Fixed .gitmodules file.
2018-03-04 03:07:09 +01:00
Acruid
b005d661f8 Component Messaging Rework (#36)
* Remove DiscoBall.

* Changes `IEntity.AddComponent(IComponent)` to `IEntity.AddComponent<T>`.

* Pulled ComponentManager registration out of Component into Entity.

* Killed component message params.

* Updated engine submodule.
2018-02-24 11:48:23 -08:00
clusterfack
05d4b2793b Adds wirecutter, powernet wire interaction (#34)
So it begins, the first of many interactions. Wirecutters cut powernet wires.
2018-02-13 00:07:50 -06:00
clusterfack
059832d324 Adds Basic Tools (#27)
* Basic Tools

* Adds tool prototypes
2018-02-06 19:03:36 -06:00
clusterfack
1452502fbf Interaction Entity System (#26)
* Interaction Entity System

* ye

* Update submodule

* Requires engine update to function, but doesn't use shitcode

* Fix conflicts

* Fix conflicts but for real

* Update submodule
2018-02-05 12:57:26 -07:00
clusterfack
1f22f8ab6a Power System (Complete) (#25)
* Power Commit 1

* Commit 2

* Powernet Part2, All components essentially complete

* Commit 4

* Commit 5

* Commit 6

Creates prototypes

* Finishes powernet code alpha

Adds prototypes and logic for powernet updating and regeneration

* Adds onremove functionality to all components

Without these bits of logic nothing makes any sense!

* And this

* Fixes a lot of bugs

* Fix powernet thinking devices are duplicates

* Fix bug and add comments

* woop woop thats the sound of the police
2018-02-03 21:35:42 -07:00
Acruid
988b2b2bc5 EntityUid Type (#23)
* Wraps Entity Uids in their own type.

* Update submodule I think.
2018-01-20 23:46:31 +01:00
clusterfack
5ee56a4cd3 Updates submodule (#22)
* Updates submodule

Fix connect not entering server (with correct toml config) and compile error, updates submodule
Server still has an issue with toml file pointing towards sandbox instead of content and roundstart object initializations

* Updates more stuff

Needs my most recent PR on ss14 to function

* Submodule updated for real this time
2018-01-18 20:00:35 +01:00
Pieter-Jan Briers
7f196fc415 Doors! (#12)
* Doors WiP

* Kinda seem to work now?

* Finished

* Oh yeah maybe enable that.

* It works except it doesn't

* Undo formatting changes

* BuildChecker too
2017-10-22 23:48:01 +02:00
Pieter-Jan Briers
6f89d0672d Urist's damage and health thing. (#10)
* Add prototype for temperature testing entity.

* Add Damageable, Destructible, Temperature. Add a prototype based on those.

* Works and cleaned up.

* Nerf
2017-10-07 15:15:29 +02:00