48 Commits over 397 Days - 0.01cph!
Max stack size of 64 like that one popular video game
Dragged inventory item UI shows thumb
Inventory UI tweaks, resize inventory to 40 + 10 slots
Add `GameUtil` class
Implement `Container.Add()`, `Container.FindFirstSlot()`, `Container.Move()`, write docs & import them using <include ...>
Slot can access private members on Container, all mutative operations are documented as such and call Game.AssertServer()
Start refactoring into Container, handles networking for all contained Slots
Containers have IDs, have "ownership" over slots
Containers can have names, implement FindFirstEmptySlot, Add, store all containers inside static list on server
Convert everything to use nullables
Enable nullables, treat all nullability warnings as errors
Fix NRE inside inventory
Rebuild node.vmat (didn't have texture??)
ResourceNode grants 1 iron ingot per hit for now
Cleanup
Use iconify for icons, inventoryitem displays item count instead of name
Smooth camera Z axis for small changes (better crouching, stairs, etc)
Fix nullref inside RecipeLibrary if no recipes exist on an item
Interaction refactor
"Foundry simple" shader w/ point filtering
Placeholder resource node model
Basic resource node ent
Use separate map for menu scene, designed for that specific purpose
Triangulate quads inside obj loader
Conveyor is ModelEntity, uses model exported from Hammer w/ hotspot textures
Fix chat
Set tickrate in project settings
Dev map update + full compile
Use vmap inside menu scene
Tweak menu card styling, don't filter
Squash merge of mainmenu branch
Card gradient styling tweaks, cleanup
https://files.facepunch.com/alexguthrie/1b1011b1/sbox-dev_L54Q6vUdyX.mp4
Start splitting menu into multiple sections (e.g. Home)
Add MenuSectionAttribute, automatically populate navbar based on these
Cards accept custom images
When in-game, make background very slightly transparent
Clean up card styling
Cards use smaller gap between lines, lighten button color
More consistent card hover effect, just use white for subtext color
Remove $small-text
Only allow co-op list refresh if there are no servers
Tidy up MenuCharacter a bit + give citizen "interest"
If you stop moving your mouse the citizen will eventually lose interest in it, and the lookat weight will return back to 0
Use adjust-hue, lighten for some scss variables, based on accent color
Card gradient underlay
Move menu navbar away from window control buttons
Quick loading screen implementation
Reduce menu character lookat weight when cursor is close
Menu citizen looks at mouse
Just display server name and player counts in co-op for now
Display player counts in co-op card
Secondary hover gradient for cards
Move MainMenu into Menus/
Search for active lobbies in co-op panel
Styling tweaks
Force IsNewPlayer to false for now
Basic main menu layout, temporary logo
Menu card tweaks
Move all our menu stuff into MainMenu/
Prototype co-op card
https://files.facepunch.com/alexguthrie/1b0611b1/sbox-dev_OcswJRxiL2.png
Simpler menu layout for new users thru cookies
Hexagon shape in logo
Squashed commit for all the conveyor stuff
First pass on runtime-generated conveyor meshes
Improved conveyor mesh gen, fits corners better
Clean up conveyor meshing code, better UV mapping
Set lenient render bounds for conveyor entity mesh
Clean up conveyor meshing code
Conveyor debug
Conveyors take Start, End, and 2 control points
tiny inventory style adjustments / fixes
Use material icons
Make citizen look much less intimidating in inventory menu
Inventory UI rework
https://files.facepunch.com/alexguthrie/1b3111b1/sbox-dev_ySaBroedEg.png
Basic cubic bezier implementation
Remove crafting bench from dev map
Iron plate prefab, update miner & smelter recipes
Inventory bugfixes
Crafter prefab
Miner / smelter prefabs
Fix crafting recipes not taking more than 1 of each input from inventory
Tidy up building ghosts
Hide crafting menu after crafting something
Simplify Inventory giving code
PlayerControllerMechanic filename reflects class anme
Add built-in building placement tool
Remove build hammer
Fetch inventory items by slot in UI
Crafting successful event
UI notification system, OnEvent attributes
Add prefab reference to crafting recipe
Sync BuildToolComponent target, use for building placement
Miner prefab tweaks
Use warning instead of error for prefabs without tags
Hide placement debug stuff behind debug_buildsystem convar
Cleanup
MenuPanel - set visible class inside OnVisibilityChanged, check for E key as well to close
Abstract show/hide into MenuPanel for Inventory/Crafting, add escape to hide
Move components into sub-folders, move enums out into their own files
Helper method for prefab enumeration
Cleanup
Auto propagate RunGameEvents
Use events to show crafting bench UI
Fix NRE when trying to drop blank inventory slot
Split dropping and removing logic
Basic crafting logic, rename Items to Storage
Just use a transform silly!!
add Item.IsActive prop
Trim unused inputs
Interacting uses RMB, ignores buildzone tag
Crafting Recipe Library
UI cleanup
Building placement bounds check
Separate build component out logically into multiple files
Organise prefabs into folders
Fix oversight where entire inv would become highlighted when dropping active item
Basic building logic
Show character in inventory
Inventory debug UI
Delete unused pistol/smg prefabs
Build hammer prefab 🔨
Highlight active item in hotbar
Set max stack size to 100 instead of 64
Half-decent inventory styling
Add Item.OnDrop
Inventory bugfixes
Inventory - trim the fat, move back to prefabs for consistency between all items
Split Item into Material and Tool, should help keep things a lot more
organised since we can separate their behaviours
dev_islands map w/ build
dev_islands map as default
Build zones
Inventory refactor, supports slots, backed by GameResources
Initial commit
Update .addon, basic inventory
Hook inventory UI up
Placeholder iron ingot model
Iron ingot prefab
Debug - give players all item prefabs on spawn
Show item names in inventory UI
E to open inventory
Hotbar UI & inventory logic
Shite item dropping