364 Commits over 304 Days - 0.05cph!
Add some placeholder resource icons
Remove unused baseball cap icon
Increase draggable icon size
Fix radial menu and custom tooltip to use new FinalLayoutChildren overload
Add some fundamental material item types
Add methods for getting total item count in inventory (sum of stack sizes) and HasItems and TakeItems these will be used for crafting
Added guard for ResourceLibrary being null (seems to happen sometimes in menu, even with a Host.IsMenu check?)
Added StackSize and some documentation to RecipeResource
Immediately set the viewer's container when Storage.Open is called server-side
Added InventoryViewer component. Add this component to Client when they join. Add InventoryContainer.GetRecipients to concatenate the connections list with any explicit viewers. Update viewer based on currently open storage input from client.
Don't do anything in ItemResource.PostLoad or PostReload if we're in the menu
Added Equipment to the Storage UI so players can drag items in and out of their equipment from/to the storage container
Fixed usage of TypeLibrary.Create being wrong
Removed ResourceItem.FromResource because now it can just be done by unique id with item definitions
Crate ->StorageCrate
Remove redundant BaseballCapItem definition
Added InventorySystem.ReloadDefinitions, Initialize, AddDefinition and GetDefinition
Remove ClassName in favor of UniqueId
Move resource items to inventory folder and add ItemClassAttribute. Have ResourceItem implement IResourceItem
Initialize InventorySystem in game class
Send unique id instead of class name
Added RecipeResource (game resource)
Set ItemClass attributes on each of the current 3 item game resources (ammo, armor, weapon)
Properly load game resources when creating items from a unique id. Whether item is a game resource or a class
Update all existing items and add first recipe: bolt
Added InventoryItem.IsCraftable / RequiredItems
Added support to ItemResource for a dictionary of required items (id=> quantity)
Have the bolt require 10 wood and 5 stone to craft this will be the first craftable item to test
Added icons for open + pickup and show a plus icon when there are available secondary actions
Added InventoryContainer.IsEmpty and only allowing pickup on storage crates if they're empty
StructureSelector -> ToolboxMenu
Grey out any unavailable context actions from the menu
Order structures in radial menu by title
Some refactoring to have GetSecondaryActions return IEnumerable<ContextAction>
Add Dialog separate to IDialog
Update to use Dialog + add Storage.Network for simple opening API
Some tidy up and add client input for currently open storage. Use this add/remove connections during simulate
Some cleanup. Implement test pickup/open actions. For now check if dialog is open before simulating context actions.
Added support for secondary actions (hold down to open)
Moved title to Cursor instead of action panel
If no world model specified for an item, default to a burger box
Only display context action UI when in range and increase range for Storage Crate and Item Entity
Remove SelectContextActionsCmd and add ContextActionId client input. Set it when selecting a context action in build input
Add IContextActionProvider.MaxInteractRange and GetAllActions
Properly set selected context action in cursor
Add SelectContextActionCmd
Abstract ContextAction and add OpenAction and PickupAction
Update to use new actions
Add context name to CursorPrimaryAction
Added CursorPrimaryAction and update it accordingly as player hovers over entity wity context actions.
Add styling
Started working on IContextActionProvider and setting up UI for it
Removed RenderHud style in-game cursor and fixed controller not being reset when a player dies
Move in-game cursor to panels so can make use of SCSS properly
Have IDialog and RadialMenu prevent input where appropriate
Only move the in-game cursor if the native mouse cursor is not visible
Start fleshing out contextual actions
Completely stripped out CursorController. Don't use native mouse for aiming etc but add an in-game cursor
Added recoil curves to weapons for controllable recoil
Move sound -> sounds and added other weapon sounds
Added MP5, M1911 and R870 models from Hidden for testing
Added WeaponResource and updated WeaponItem to use it
Fixed typo AmmoResouce -> AmmoResource
Strip WeaponConfig in favor of using WeaponResource and add MP5A4 and Crossbow support
Add MP5A4 and Crossbow game resources
Give crossbow + MP5A4 using new method
Test controllable recoil
Various inventory UI fixes (some still remain around pointer events oddities)
Simulate construction in FrameSimulate too so the ghost structures are positioned smoothly.
Don't constantly re-create the ghost structure unless the type has changed (was broken)
Added ArmorResource, ItemResource and ResourceItem for implementing item types as game resources (optionally)
Have ArmorItem extend ResourceItem<ArmorResource, ArmorItem>
Add baseball_cap.armor game resource and give it to players on joining for testing
Add checks to ensure Resource is not null, throw an exception if unable to find a game resource with an id when deserializing items
Added AmmoResource and updated AmmoItem to use it, clean up ItemResource
Give ammo by finding an appropriate AmmoResource
Add 5.56 Ammo, 9mm Ammo and Bolt game resources
Added name to the Storage Crate item
Added IContextActions interface. Added entity hovering for players. An entity that is hovered that implements IContextActions can glow. Add actual contextual actions later.
Add "world" tag to the world entity in PostLevelLoaded. Add DeployableItem.ValidTags.
Added Deployable system. Added Toolbox and Crate items. Added StorageCrate entity. Refactored Structure system to require a held Toolbox. Change open structure wheel to Secondary Attack.
Make TimeSystem an Entity and have stuff be networked properly. Avoid using constructor for Forsaken class.
Added sensible default values for the TimeController entity
Rename Tooltip to CustomTooltip (for now, look into using new tooltip stuff later)
Remove old Tooltip class
Add TimeController, TimeSection and TimeSystem
Add Time Controller editor icon + added fsk_time_test map for testing
Fix invalid SCSS property
Remove auto reload / auto reload delay and give a test armor item to players on spawn
Some temporary styling and override GetHashCode on InventoryContainer to hash its items
Update all inventory related stuff to Razor
Fix crossbow muzzle position
Added base weapon system, base inventory + item system, basic hotbar + storage + backpack, test items and 1 weapon
Move the doorway model import translation right by an inch
Move structure related stuff to entities/structures and add normal parameter to IsValidPlacement
Refactor structure ghost stuff (Structure.GetOrCreateGhost) and add material override for ghosts
Added Structure.OnConnected and prevent placement of Foundations outside of socket connections within 512 units