4,155 Commits over 1,157 Days - 0.15cph!
Always ensure that there is some form of block at the bottom most level
Fixed grass and (temporarily) generate a list of suitable spawn positions
Update light maps immediately on chunk initial load + when refreshing. Grass blocks will not show their grass if there is no sunlight.
Increase world size Z by double. Mess around with generation a little for testing. Refactor UpdateNeighbours. Add Chunk.GetNeighbour.
Merge branch 'main' of sbox-corewars
Added FastNoiseLite and some additional generation
Fixed data being removed immediately after being set by the server 🙄
Run full torch update and sunlight propagation in a thread for connecting players initialization
When placing a block pass the direction the player placed in. Have all torch blocks extend BaseTorchBlock. Have TorchEntity use the direction data to determine which side to place against.
Only show debug info when map is valid
Removed ChunkDataMap and added superior block data system
Experiments
Update Block Slices in a worker thread (thanks @Metapyziks for pointing out I needed ThreadStatic)
Send a connecting player 8 chunks a time but still very quickly
Merge branch 'main' into tasks
Start fleshing out an Inventory API
Stashing work on Inventory API
Fixed RPC related issues
Added test_item and MainInventory population
Added ChunkDataMap (currently only storing block health). Moved some stuff out of Game and into Map. Modifying ChunkDataMap values will network them accordingly. Block health is reset to 100 whenever a new block is created.
Cleanup old logs
InventoryContainer.Serialize / Deserialize
Added NetInventory a convenience BaseNetworkable with custom INetworkSerializer that will perform an initial synchronization of an InventoryContainer
Make sure InventorySystem.ClientDisconnected is called to properly clean up InventoryContainer connections
Fixed item stacking when using custom data. Refer to item types by library name or generics. Add test stack code.
Use library identifier instead of name. Fixed default stack size. Fixed stack size overflow.
Merge pull request #1 from Facepunch/tasks
Tasks + Inventory + Health
GameTask.RunInThreadAsync (#162)
* GameTask.RunInThreadAsync
* Whitelist System.ThreadStaticAttribute
Use library identifier instead of name. Fixed default stack size. Fixed stack size overflow.
Fixed item stacking when using custom data. Refer to item types by library name or generics. Add test stack code.
Make sure InventorySystem.ClientDisconnected is called to properly clean up InventoryContainer connections
Added NetInventory a convenience BaseNetworkable with custom INetworkSerializer that will perform an initial synchronization of an InventoryContainer
InventoryContainer.Serialize / Deserialize
Added ChunkDataMap (currently only storing block health). Moved some stuff out of Game and into Map. Modifying ChunkDataMap values will network them accordingly. Block health is reset to 100 whenever a new block is created.
Added test_item and MainInventory population
Stashing work on Inventory API
Start fleshing out an Inventory API
Improved shadows and lighting on testmap
Updated temp textures
Support for higher quality materials
Add emission map, fix roughness
Merge branch 'main' into tasks
Send a connecting player 8 chunks a time but still very quickly
Update Block Slices in a worker thread (thanks @Metapyziks for pointing out I needed ThreadStatic)
Whitelist System.ThreadStaticAttribute
GameTask.RunInThreadAsync
BlockEntity.CenterOnBlock
Fixed north neighbour chunks not having light map updated + don't call UpdateAdjacents per opaque/translucent SO but instead do both at once (optimization)
Fixed grass side texture id being wrong is next to translucent blocks
Merge branch 'main' of sbox-corewars
Fixed torch light propagation order
Torch light level will be 6 instead of 14 for testing
Added BlockType.IsPassable and BlockType.HasTexture. Added block entity system. Automatically add/remove entities that blocks require. Use will place a random Red, Green or Blue torch for testing.
Add ServerEntity and ClientEntity support to BlockType to create entities for blocks if required
Merge branch 'main' of sbox-corewars
Added a real simple way of selecting blocks until something better is hooked up
Fixed Window block translucency and consolidate light dirtying
Don't cull faces if block is translucent
Fix remove queue not adding to right channel
Add light propagation code / seperate BFS passes for each color channel to support colored torches in theory
Avoid looping more than we need
Tidied up / refactored slightly. Translucent blocks are now their own scene object to allow for translucency pass. Now hand over to ogniK for shader magic.
Removed log
Fixed dirt not using correct texture ids in chunks other than chunk 0, 0, 0
An attempt to get sunlight working / propagating properly
Various fixes / optimizations for torchlight