22#include "common/lab_box.hlsli"
43 [[nodiscard]] uint32_t
Index()
const {
return multires::MrCellIndex(
x,
y,
z); }
49 [[nodiscard]] Command
MakeLabFillCommand(uint64_t targetTick, uint32_t sequence, LabCellPosition cell,
50 std::span<const SpeciesAmount> contents, uint32_t temperatureMilliKelvin);
54 uint32_t temperatureMilliKelvin);
57 [[nodiscard]] lab::LabCommand
ToLabCommand(
const Command& command);
85 std::span<const Command> commands);
93 reaction::RxCell
cpu{};
94 reaction::RxCell
gpu{};
111 [[nodiscard]] std::expected<LabRecording, std::string>
ParseLabRecording(std::span<const std::byte> bytes);
std::expected< LabRecording, std::string > ParseLabRecording(std::span< const std::byte > bytes)
constexpr MultiresStepOptions LAB_STEP_OPTIONS
RxCell LabBoxCell(const MultiresNest &nest, uint32_t index)
constexpr uint32_t LAB_BOX_SLOT
constexpr uint32_t LAB_MAX_COMMANDS_PER_TICK
Command MakeLabFillCommand(uint64_t targetTick, uint32_t sequence, LabCellPosition cell, std::span< const SpeciesAmount > contents, uint32_t temperatureMilliKelvin)
std::vector< LabMaterial > MakeLabMaterials(const BakedReactionTable &table)
void StepLabBox(MultiresNest &nest, const BakedReactionTable &table, uint64_t tick, std::span< const Command > commands)
constexpr uint32_t LAB_BOX_EDGE
Command MakeLabTemperatureCommand(uint64_t targetTick, uint32_t sequence, LabCellPosition cell, uint32_t temperatureMilliKelvin)
uint32_t ApplyLabCommands(MultiresNest &nest, const BakedReactionTable &table, std::span< const Command > commands)
MultiresNest MakeLabBoxNest(const BakedReactionTable &table)
constexpr uint64_t LAB_WORLD_SEED
std::vector< std::byte > SerializeLabRecording(const LabRecording &recording)
std::optional< LabMismatch > FindLabMismatch(const MultiresNest &cpu, const MultiresNest &gpu, uint64_t tick)
constexpr int32_t LAB_INITIAL_TEMPERATURE_MILLIKELVIN
lab::LabCommand ToLabCommand(const Command &command)
MultiresCapacity LabBoxCapacity(const BakedReactionTable &table)
std::vector< SpeciesAmount > contents
std::vector< uint64_t > hashes
std::vector< Command > commands