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

feat: enhance chunkstore collision system #44

Description

@Blovien

Problem

Right now the collision with the world (chunkstore) is mostly given by static block collision. This could be improved to include dynamic block collision. Example: doors opening, trapdor opening, etc. This could be both a switch on/off of the block collision or, rather, a dynamic/kinematic collision movement.

This would increase both the granularity of the physics integration and also our understanding of the plugin api and the physics integration in the hytale server.

Proposed solution

chunkstore blockentities with optional components aside the standard world collision behavaiour.
As an analogy with the EntityStore side we could implement the PhysicsAuthority concept for the chunkstore:

enum PhysicsBodyAuthority {
    ENTITY_STORE,
    CHUNK_STORE,
    PHYSICS_WORLD
}

an optional body role in the chunkstore space

enum ChunkPhysicsBodyRole {
    SECTION_TERRAIN,
    BLOCK_ACTOR,
    BLOCK_ASSEMBLY
}

identiy related handles:

record ChunkPhysicsBodyKey(/* world/chunk/block/local part identity */) {}

and a spawn plan that can be translated into the physics commandbuffer:

record ChunkPhysicsBodyPlan(
    ChunkPhysicsBodyKey key,
    SpaceId spaceId,
    PhysicsBodyType bodyType,
    PhysicsShapeSpec shape,
    RigidBodySpawnSettings settings
) {}

This issue is also related with possible data driven material integration (#1) and multi body bodies/moving chunks (#14)

Area

plugin API

Suggested validation

No response

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions