Scenarios are used in places where async is inconvenient, likely to be an issue for others too as they're used more
Preload all content, and provide sync access?
Preloading content in an async Task, blocking on task on first access. We can ensure no blocking ever occurs if we wait on that task ahead of time (e.g. loading screen)
An extremely large attack (high energy or long duration) can deposit enough energy to melt a plate layer. The rest of the energy does not penetrate, it is simply lost. This would cause lasers to be ineffective at high sim speeds.
Approach:
Calculate max energy pulse will dump into plate, If it's more than 10% of melting energy shorten the duration and do that. Then continue with the rest of the pulses. This allows the plate to melt partially and become perforated, letting energy through to later plates.
Simplified approach:
Calculate how many pulses totally evaporate remaining plate, apply that. Move the rest of the pulses to the next layer. Also, if excess energy is deposited into a plate apply that excess to the next plate as bulk heating to lose less energy.
Left/Right join all rows from named table with rows from other table. Null where there is no match
All rows from both tables, with null where there is no match
Cross is the only one that makes sense, we can't really have a null entity reference. Could handle it by having a specific NoMatch method as well as the normal query method
Feasible to implement, but a lot of work
Investigating bypassing safety system to use existing system
Doesn't seem feasible
Created InPlaceList16, fixed 16 element list stored in place