#pragma once #include "CoreMinimal.h" /** Constants of unloading, the packer, ore boxes, the refinery, storage and selling (DESIGN_UE.md sections 5.5, 6.1 - 6.5, 6.8). Carrier-local metres. */ namespace Descent::Tune::Cargo { // ---- unloading through the pipes (6.3) ---- constexpr double CoupleSec = 1.0, DecoupleSec = 0.6; constexpr double FeedEverySec = 0.45; constexpr double PieceSpeedMps = 4.0; constexpr double PieceSizeM = 0.17; constexpr double PipeSizeM = 0.36; // outer size of the glass pipe (inner radius 0.16) constexpr double PackerFullToastEverySec = 4.0; // ---- the packer (6.4) ---- constexpr int32 BufferMax = 24; constexpr int32 BoxSize = 6; constexpr int32 OutfeedSlots = 4; constexpr double PackerMoveSec = 0.3, PackSec = 1.5; constexpr double OutfeedX = 17.0, OutfeedY0 = -6.2, OutfeedDY = 0.8, OutfeedAboveFloorM = 0.9; constexpr double CargoFloorZ = -3.0; constexpr double BoxX = 0.6, BoxY = 0.4, BoxZ = 0.4; // ---- carrying (5.5) ---- constexpr double CarryRangeM = 2.4; constexpr double CarryAheadM = 0.75, CarryBelowM = 0.35; constexpr double PutDownAheadM = 0.9; // ---- the refinery (6.5) ---- constexpr int32 RefineryQueueMax = 12; constexpr double RefineSec[3] = { 14.0, 22.0, 34.0 }; // ferrite > ingot, cobalt > wafer, pearl > lattice constexpr double RefineryX = -2.0, RefineryY = -6.5, RefinerySizeM = 3.2; // on D2 (floor -3.0), facing +y constexpr double HopperAboveFloorM = 1.3; // ---- storage, values, debt (6.1, 6.2, 6.8) ---- constexpr int32 StorageCap = 60; constexpr int32 OreValue[3] = { 60, 120, 260 }; constexpr int32 RefinedValue[3] = { 115, 230, 500 }; constexpr double StartDebtCr = 184220.0; }