Scripting API
The namespaces, classes and structs this repository declares.
Namespaces
SushiEngineSushiEngine::AddonSushiEngine::AssertionSushiEngine::CoreSushiEngine::DatabaseSushiEngine::EventBusSushiEngine::FieldCountDetailHelpers of aggregate_field_count; not part of its surface.
SushiEngine::LoggingSushiEngine::LoopSushiEngine::placeholderHolds the stand-in value types until SushiBLAS owns them.
SushiEngine::RenderSushiEngine::Simulation
Classes
SushiEngine::Assertion::IAssertionHandlerDecides the action for a failure that has already been logged.
SushiEngine::Core::FunctionRefA non-owning reference to a callable matching
Signature; primary template unused.SushiEngine::Core::FunctionRef< Result(Arguments...)>Binds, without owning, to any callable invocable as
Result(Arguments...).SushiEngine::Core::InlineFunctionOwns a callable matching
SignatureinsideCapacitybytes; primary template unused.SushiEngine::Core::InlineFunction< Result(Arguments...), Capacity >Owns one callable invocable as
Result(Arguments...)inside fixed inline storage.SushiEngine::Database::AssetRegistryScans a project tree and keeps every tracked asset's id-to-path mapping.
SushiEngine::EventBus::BusOwns every channel of one host and delivers pending events phase by phase.
SushiEngine::EventBus::IBusRegisters channels, publishes events and manages subscriptions.
SushiEngine::EventBus::SubscriptionOwns one subscription and removes it when destroyed.
SushiEngine::EventBus::TypedChannelHolds one registered channel of
Eventand publishes to it with its type.SushiEngine::Logging::CategoryLevelTableMaps a category key to its run-time threshold with open addressing over fixed slots.
SushiEngine::Logging::ConsoleSinkWrites Warning and above to one stream and everything below to another.
SushiEngine::Logging::FormatBufferAppends text to caller-owned storage and records whether any was cut.
SushiEngine::Logging::ILoggerAccepts formatted messages from any thread without blocking on I/O.
SushiEngine::Logging::ILogSinkReceives batches of finished records from one thread at a time.
SushiEngine::Logging::RingLoggerImplements ILogger for a host process; one instance serves every thread and add-on.
SushiEngine::Logging::RotatingFileSinkAppends formatted lines to <stem>.log and shifts it to <stem>.1.log when full.
SushiEngine::Logging::ScopedActiveLoggerInstalls a logger as the active one for its own scope, flushing and uninstalling it on every path out, exceptions included.
SushiEngine::Logging::SpscByteRingQueues variable-length records between exactly one writer and one reader thread.
SushiEngine::Logging::ThreadRingRegistryCreates one ring per producer thread on first use and hands the consumer all of them.
SushiEngine::Logging::TraceLogSinkMarks each Warning-or-above submit on the calling thread, then forwards it.
SushiEngine::Simulation::BehaviorRegistryMaps a
ScriptComponent::type_nameto the factory that constructs its nativeIEntityBehavior.SushiEngine::Simulation::IEntityBehaviorNative counterpart of a
ScriptComponent— one live instance per(EntityId, type_name)pair while the simulation is playing.SushiEngine::Simulation::IMaterialSourceWhere a slot's resolved material comes from, when it is bound.
SushiEngine::Simulation::ISoundSourceResolves an asset id to the sound it names without naming the library.
SushiEngine::Simulation::IWorldEditorThe editor's read/write surface onto the live world.
SushiEngine::Simulation::MaterialOverridesHolds the per-entity override set.
SushiEngine::Simulation::MaterialSlotHolds a material that is either edited in place or bound to a shared asset.
Structs
SeAddonABIFingerprintRecords the ABI-relevant facts of the binary that captured it.
SeAddonHostHands an add-on the engine services it may call, in a layout both sides agree on.
SushiEngine::Assertion::AssertionFailureDescribes one failed check; every view stays valid only during the handler call.
SushiEngine::Assertion::StackTraceHolds up to 62 return addresses, innermost first.
SushiEngine::CameraBasisAn orthonormal, right-handed camera frame, with the vertical it was built on.
SushiEngine::CameraSpeedControlHolds the editor camera's flight speed: a stated number, a ramp and two bounds.
SushiEngine::Database::AssetIdA 128-bit asset identity, encoded the way a UUIDv4 is.
SushiEngine::Database::AssetIdHashHashes an id so it can key a
std::unordered_map.SushiEngine::EulerEditCacheOne entity's last-authored Euler triple, and the quaternion it produced.
SushiEngine::EventBus::BatchMemberTraitsSplits a batch-handler member pointer into its class and event type.
SushiEngine::EventBus::BatchMemberTraits< void(Class::*)(const Event *, std::uint32_t) const >Matches
void (Class::*)(const Event*, std::uint32_t) const.SushiEngine::EventBus::BatchMemberTraits< void(Class::*)(const Event *, std::uint32_t) const noexcept >Matches
void (Class::*)(const Event*, std::uint32_t) const noexcept.SushiEngine::EventBus::BatchMemberTraits< void(Class::*)(const Event *, std::uint32_t) noexcept >Matches
void (Class::*)(const Event*, std::uint32_t) noexcept.SushiEngine::EventBus::BatchMemberTraits< void(Class::*)(const Event *, std::uint32_t)>Matches
void (Class::*)(const Event*, std::uint32_t).SushiEngine::EventBus::BusStatisticsCounts what a bus did, for tests and the benchmark.
SushiEngine::EventBus::ChannelHandleNames one registered channel of one bus.
SushiEngine::EventBus::ChannelRegistrationCarries a registration's channel and status.
SushiEngine::EventBus::EventOrderKeyOrders events of one channel inside one merged batch.
SushiEngine::EventBus::EventTypeDescriptionDescribes one event type across a binary boundary, with no standard types.
SushiEngine::EventBus::MemberTrampolineCalls a member batch handler on a context that is an instance of its class.
SushiEngine::EventBus::SubscriberDescriptionDescribes one subscriber at subscription.
SushiEngine::EventBus::SubscriptionHandleNames one subscription; a stale handle names nothing.
SushiEngine::FieldCountDetail::AcceptsFieldsHolds false unless
T{...}accepts the sequence's length of initialisers.SushiEngine::FieldCountDetail::AcceptsFields< T, std::index_sequence< Index... >, std::void_t< decltype(T{(static_cast< void >(Index), AnyField{})...})> >Holds true when
T{...}accepts one AnyField per sequence index.SushiEngine::FieldCountDetail::AnyFieldConverts to any type, so one of it fills any one aggregate initialiser.
SushiEngine::FramingSubjectA candidate answer to "what is this camera framing": a centre, a size, a range.
SushiEngine::LocalFrameThe double anchor a narrower solve measures its coordinates from.
SushiEngine::Logging::LogCategoryNames one module's log records and carries its default run-time threshold.
SushiEngine::Logging::LogRecordDescribes one finished record; a view stays valid only during ILogSink::write.
SushiEngine::Logging::RingLoggerConfigurationHolds the settings a RingLogger is built with.
SushiEngine::Logging::RotatingFileSinkConfigurationHolds where a RotatingFileSink writes and how much it keeps.
SushiEngine::Logging::SourceLocationLocates one log or assertion call site in the source.
SushiEngine::Logging::ThreadRingPairs one producer thread's ring with its index and its drop and exit counters.
SushiEngine::LookSubjectHolds the one subject the look law is measured against this frame.
SushiEngine::Loop::RNGStateDeterministic xorshift128+ generator state, storable as a component.
SushiEngine::MaximumFolds two values to the larger; see Minimum on the comparison.
SushiEngine::MinimumFolds two values to the smaller.
SushiEngine::OverlayScreenSegmentA segment in image pixels, or nothing.
SushiEngine::OverlayWorldSegmentA world-space segment, or nothing.
SushiEngine::placeholder::FloatingOriginVector3Holds a world position split into a sector index and a local offset.
SushiEngine::placeholder::Matrix4Holds a 4x4 matrix in column-major storage, element (r, c) at m[c * 4 + r].
SushiEngine::placeholder::MaximumFolds two values to the larger; see Minimum on the comparison.
SushiEngine::placeholder::MinimumFolds two values to the smaller.
SushiEngine::placeholder::ProductFolds two values to their product.
SushiEngine::placeholder::QuaternionTA unit quaternion rotation, parametric on element type.
SushiEngine::placeholder::SectorCoordInteger index of a floating-origin sector on the planet grid.
SushiEngine::placeholder::SumFolds two values to their sum.
SushiEngine::placeholder::Vector3TA trivially copyable 3-component vector, parametric on element type.
SushiEngine::placeholder::WorldVector3Always-double 3-component vector for absolute world coordinates.
SushiEngine::PrecisionHeadroomHow finely a position can be addressed, and how a frame's step compares.
SushiEngine::ProductFolds two values to their product.
SushiEngine::Render::MaterialA physically-based surface: its maps, its scalars, and its state.
SushiEngine::Render::MaterialFieldOne field of a material: how it persists, and how it is edited.
SushiEngine::Render::TextureTransformA map's tiling and offset — Unity's ST vector.
SushiEngine::Simulation::AnimatorParametersHolds a skinned character's skeleton, controller and playback state.
SushiEngine::Simulation::AudioEmitterParametersThe authorable parameters of an "Audio Emitter" entity.
SushiEngine::Simulation::AudioListenerParametersThe authorable parameters of an "Audio Listener" entity (the ears).
SushiEngine::Simulation::CameraParametersThe authorable parameters of a camera entity.
SushiEngine::Simulation::CharacterParametersHolds the authorable parameters of a character controller.
SushiEngine::Simulation::ColliderParametersHolds the authorable parameters of a "Collider" entity: its collision volume.
SushiEngine::Simulation::ContactEventReports one thing touching another to gameplay.
SushiEngine::Simulation::DecalParametersHolds the authorable parameters of a projected box decal on an entity.
SushiEngine::Simulation::EntityFrameNames the frame an entity's transform is authored relative to.
SushiEngine::Simulation::EntityTransformAn entity's authorable transform, as the inspector edits it.
SushiEngine::Simulation::ImpactResponseDescribes what an entity does when something hits it hard enough.
SushiEngine::Simulation::JointLimitDescriptionA bound on one of a joint's degrees of freedom.
SushiEngine::Simulation::JointMotorDescriptionA drive on a joint's primary axis, with a saturation limit.
SushiEngine::Simulation::JointParametersDescribes what is held between a joint's two endpoints.
SushiEngine::Simulation::JointStateReports what a joint is carrying, read back after a step.
SushiEngine::Simulation::LightParametersHolds the authorable parameters of a punctual light on an entity.
SushiEngine::Simulation::MaterialOverrideHolds one field's overridden value, tagged by the kind the field table gives it.
SushiEngine::Simulation::MaterialTextureAssetsHolds the permanent asset each of a material's texture slots is loaded from.
SushiEngine::Simulation::MaterialTextureSlotPairs one texture slot of MaterialTextureAssets with its key and the member it names.
SushiEngine::Simulation::OrbitStatePrecomputed per-step orbit motion; present only on animated entities.
SushiEngine::Simulation::OrientationWorld orientation, split from Transform.
SushiEngine::Simulation::ParticleBillboardDescribes one already-simulated particle handed to the renderer as a billboard.
SushiEngine::Simulation::ParticleEffectTextureAssetsHolds the permanent asset each of an effect's emitters draws its sprite from.
SushiEngine::Simulation::ParticleEmitterParametersHolds the authorable parameters of a "Particle Emitter" entity (deterministic path).
SushiEngine::Simulation::PhysicsBodyParametersThe authorable parameters of a "Rigid Body" entity.
SushiEngine::Simulation::PhysicsJointParametersDeclares §5.5's
PhysicsJoint: what this entity is attached to, and how.SushiEngine::Simulation::PortalThe "Portal" component: a doorway joining two Room volumes.
SushiEngine::Simulation::PrefabInstanceParametersLinks a prefab instance's root entity to the prefab it was built from.
SushiEngine::Simulation::RenderInstanceOne drawable object extracted from the world: identity, transform, colour.
SushiEngine::Simulation::ReverbZoneParametersHolds the authorable parameters of a "Reverb Zone" entity.
SushiEngine::Simulation::RigidDebugStateReports what a body is doing, for a debug view rather than for gameplay.
SushiEngine::Simulation::RoomDeclares the "Room" component: an acoustic room volume for portal propagation.
SushiEngine::Simulation::ScriptComponentOne user-defined "script" component attached to an entity.
SushiEngine::Simulation::ScriptFieldOne named, typed field of a script component instance.
SushiEngine::Simulation::SpinStepA precomputed per-step spin delta; present only on animated entities.
SushiEngine::Simulation::SurfaceHeadingHolds a parallel-transported reference direction for actors that cross latitudes.
SushiEngine::Simulation::TickContextWhat a per-tick behavior hook is told about the step it is running on.
SushiEngine::Simulation::TintHolds a per-entity colour, distinct from the surface its material describes.
SushiEngine::Simulation::TransformWorld position and scale.
SushiEngine::Simulation::UIElementParametersHolds the authorable parameters of a UI entity: a UGUI RectTransform plus paint.
SushiEngine::SkyMarkerBoxAn axis-aligned pixel rectangle.
SushiEngine::SkyMarkerCandidateOne body competing for a place on screen.
SushiEngine::SkyMarkerLayoutOne marker's geometry, in pixels from the rendered image's top-left.
SushiEngine::SkyMarkerMetricsWhat a marker has to be laid out around: its anchor, its text, its viewport.
SushiEngine::SkyMarkerPointA point in viewport pixels, measured from the rendered image's top-left.
SushiEngine::SumFolds two values to their sum.
SushiEngine::TravelArrivalWhere a travel lands and how it looks once it gets there.
SushiEngine::ViewportOverlayPointA point in viewport pixels, measured from the rendered image's top-left corner.
Macros
SE_ADDON_ABI_COMPILER_IDENTITY_CAPACITYSizes the compiler identity text, terminator included.
SE_ADDON_ABI_FINGERPRINT_LAYOUT_VERSIONCounts changes to the layout of
SeAddonABIFingerprintitself.SE_ADDON_ABI_REVISIONCounts changes to the host table and the fingerprint that break an add-on.
SE_ADDON_EXPORTMarks a symbol for export from an add-on shared library, one spelling per platform.
SE_ASSERTSE_ASSERTION_CHECKS_ENABLEDSE_EVENTDeclares
Typean event namedStableName, at the namespace scope ofType.SE_FATALSE_LOG_COMPILED_LEVELSE_LOG_DEBUGSE_LOG_ERRORSE_LOG_INFOSE_LOG_TRACESE_LOG_ERROR has no compiled-out form; every other level below SE_LOG_COMPILED_LEVEL expands to SE_DETAIL_LOG_DISABLED instead.
SE_LOG_WARNINGSE_REGISTER_BEHAVIORPlaced at file scope in a behavior's .cpp: registers
ClassNameunder its own name the first time this translation unit's static initializers run, beforemain().SE_VERIFY
Functions
se_addon_entryReceives the host table once the fingerprint gate accepts this add-on.
se_addon_fingerprintReturns the fingerprint of the binary that exports this symbol.
sushiengine_addon_registerRegisters this add-on's behaviours and subscriptions; the add-on defines this function.

