Skip to content
This repository was archived by the owner on Aug 1, 2026. It is now read-only.

PhysicsStore migration - #46

Draft
Blovien wants to merge 539 commits into
mainfrom
feat/physics-store-api
Draft

PhysicsStore migration#46
Blovien wants to merge 539 commits into
mainfrom
feat/physics-store-api

Conversation

@Blovien

@Blovien Blovien commented Jun 23, 2026

Copy link
Copy Markdown
Collaborator

The following pr rethinks conceptually how the hytale ecs integration is done to treat in a coherent, indipedent and ecs way how the physics ecs world is integrated in the World.

The aim for the standalone PhysicsStore is to, in the future, handle most hytale physics indipendently from any kind of representation or projection.

A new PhysicsStore introduces the need to assign relationship components between the entities of different stores but avoids the needs for ad hoc logic based on the store used

Blovien added 30 commits June 21, 2026 16:03
Signed-off-by: Blovien <blovien@hytalemodding.dev>
Signed-off-by: Blovien <blovien@hytalemodding.dev>
Signed-off-by: Blovien <blovien@hytalemodding.dev>
Signed-off-by: Blovien <blovien@hytalemodding.dev>
Signed-off-by: Blovien <blovien@hytalemodding.dev>
Signed-off-by: Blovien <blovien@hytalemodding.dev>
Signed-off-by: Blovien <blovien@hytalemodding.dev>
Signed-off-by: Blovien <blovien@hytalemodding.dev>
Signed-off-by: Blovien <blovien@hytalemodding.dev>
Signed-off-by: Blovien <blovien@hytalemodding.dev>
Signed-off-by: Blovien <blovien@hytalemodding.dev>
Signed-off-by: Blovien <blovien@hytalemodding.dev>
Signed-off-by: Blovien <blovien@hytalemodding.dev>
Signed-off-by: Blovien <blovien@hytalemodding.dev>
Signed-off-by: Blovien <blovien@hytalemodding.dev>
Signed-off-by: Blovien <blovien@hytalemodding.dev>
Signed-off-by: Blovien <blovien@hytalemodding.dev>
Signed-off-by: Blovien <blovien@hytalemodding.dev>
Signed-off-by: Blovien <blovien@hytalemodding.dev>
Signed-off-by: Blovien <blovien@hytalemodding.dev>
Signed-off-by: Blovien <blovien@hytalemodding.dev>
Signed-off-by: Blovien <blovien@hytalemodding.dev>
Signed-off-by: Blovien <blovien@hytalemodding.dev>
Signed-off-by: Blovien <blovien@hytalemodding.dev>
Signed-off-by: Blovien <blovien@hytalemodding.dev>
Signed-off-by: Blovien <blovien@hytalemodding.dev>
Signed-off-by: Blovien <blovien@hytalemodding.dev>
Signed-off-by: Blovien <blovien@hytalemodding.dev>
Signed-off-by: Blovien <blovien@hytalemodding.dev>
Signed-off-by: Blovien <blovien@hytalemodding.dev>
Blovien added 22 commits June 21, 2026 16:03
Signed-off-by: Blovien <blovien@hytalemodding.dev>
Signed-off-by: Blovien <blovien@hytalemodding.dev>
Signed-off-by: Blovien <blovien@hytalemodding.dev>
Signed-off-by: Blovien <blovien@hytalemodding.dev>
Signed-off-by: Blovien <blovien@hytalemodding.dev>
Signed-off-by: Blovien <blovien@hytalemodding.dev>
Signed-off-by: Blovien <blovien@hytalemodding.dev>
Signed-off-by: Blovien <blovien@hytalemodding.dev>
Signed-off-by: Blovien <blovien@hytalemodding.dev>
Signed-off-by: Blovien <blovien@hytalemodding.dev>
Signed-off-by: Blovien <blovien@hytalemodding.dev>
Signed-off-by: Blovien <blovien@hytalemodding.dev>
Signed-off-by: Blovien <blovien@hytalemodding.dev>
Signed-off-by: Blovien <blovien@hytalemodding.dev>
Signed-off-by: Blovien <blovien@hytalemodding.dev>
Signed-off-by: Blovien <blovien@hytalemodding.dev>
Signed-off-by: Blovien <blovien@hytalemodding.dev>
Signed-off-by: Blovien <blovien@hytalemodding.dev>
Signed-off-by: Blovien <blovien@hytalemodding.dev>
Signed-off-by: Blovien <blovien@hytalemodding.dev>
Signed-off-by: Blovien <blovien@hytalemodding.dev>
Signed-off-by: Blovien <blovien@hytalemodding.dev>
bodyRows.add(new BodyRow(uuid, body.getSpaceUuid()));
} else {
jointRows.add(new JointRow(uuid,
joint.getSpaceUuid(),
if (backendRuntime == null) {
backendRuntime = fallbackRuntime;
}
if (spaceHandle != null && backendRuntime != null) {
Vector3f angularVelocity = snapshot.angularVelocity();
PhysicsBodyType bodyType = snapshot.bodyType();
ShapeType shapeType = shape != null ? shape.getShapeType() : ShapeType.UNKNOWN;
boolean hasBoxHalfExtents = shapeType == ShapeType.BOX && shape != null;
return snapshot.getLateMutationBacklogAtStep();
}

public int getMaxLateMutationBacklogAtStep() {
return snapshot.getPreStepDrainRunNanos();
}

public int getLateMutationBacklogAtStep() {
return snapshot.getMaxPreStepDrainedMutations();
}

public long getPreStepDrainRunNanos() {
return snapshot.getPreStepDrainedMutations();
}

public int getMaxPreStepDrainedMutations() {
return snapshot.getStoreTickRunNanos();
}

public int getPreStepDrainedMutations() {
this.snapshot = Objects.requireNonNull(snapshot, "snapshot");
}

public int getTickSamples() {
Blovien added 6 commits June 25, 2026 12:45
Signed-off-by: Blovien <blovien@hytalemodding.dev>
Signed-off-by: Blovien <blovien@hytalemodding.dev>
Signed-off-by: Blovien <blovien@hytalemodding.dev>
Signed-off-by: Blovien <blovien@hytalemodding.dev>
Signed-off-by: Blovien <blovien@hytalemodding.dev>
Signed-off-by: Blovien <blovien@hytalemodding.dev>
@Nonnull
private static PhysicsControlRuntimeState stateFor(@Nonnull Store<PhysicsStore> store) {
synchronized (STATES_BY_STORE) {
return STATES_BY_STORE.computeIfAbsent(store, _ -> new PhysicsControlRuntimeState());
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant