diff --git a/main.c b/main.c index 69e159e..9f61337 100644 --- a/main.c +++ b/main.c @@ -116,6 +116,12 @@ static void ApplyFogShaderToModel(Model *m, Shader fog); static BoundingBox MakeModelWorldAABB(Model m, Vector3 pos, Vector3 scale, float yawDeg); static BoundingBox PlayerAABB(Vector3 p); static void ResolveAgainstBoxXZ(Master* g, BoundingBox box); + +static float ModelLengthXUnits(Model m); +static float ModelLengthZUnits(Model m); +static void DrawPerimeter(Model wall, float border, float scale); +static void CollidePerimeter(Master* g, Model wall, float border, float scale); // optional + //------------------------------------------------------------------------------------ // Program main entry point //------------------------------------------------------------------------------------ @@ -170,8 +176,9 @@ int main(void) // Load GLTF model (no animations) - Model wall = LoadModel("resources/3d_models/Tiny_Treats_Homely_House_1.0_FREE/Assets/gltf/fence_straight.gltf"); - Vector3 wall_position = { 0.0f, 0.0f, 0.0f }; + //Model wall = LoadModel("resources/3d_models/Tiny_Treats_Homely_House_1.0_FREE/Assets/gltf/fence_straight.gltf"); + Model wall = LoadModel("resources/3d_models/RuinsGLB/Walls/WallNormalXL.glb"); + Vector3 wall_position = { 10.0f, 0.0f, 0.0f }; float wall_yaw = 0.0f; // rotate around Y float wall_pitch = 0.0f; // rotate around X float wall_roll = 0.0f; // rotate around Z @@ -369,6 +376,29 @@ int main(void) // Collide player vs wall (XZ slide) ResolveAgainstBoxXZ(&g, wallBox); + + // put near your update logic + float B = 123; + float T = 1.0f; // wall half-thickness + float H = 4.0f; // wall height + + BoundingBox walls[4] = { + // left (x = -B) + { (Vector3){-B - T, 0.0f, -B - T}, (Vector3){-B + T, H, B + T} }, + // right (x = +B) + { (Vector3){ B - T, 0.0f, -B - T}, (Vector3){ B + T, H, B + T} }, + // bottom (z = -B) + { (Vector3){-B - T, 0.0f, -B - T}, (Vector3){ B + T, H, -B + T} }, + // top (z = +B) + { (Vector3){-B - T, 0.0f, B - T}, (Vector3){ B + T, H, B + T} }, + }; + + for (int i = 0; i < 4; ++i) ResolveAgainstBoxXZ(&g, walls[i]); + + // (Optional) debug draw inside BeginMode3D/EndMode3D: + for (int i = 0; i < 4; ++i) DrawBoundingBox(walls[i], RED); + + float delta = GetFrameTime(); g.player.headLerp = Lerp(g.player.headLerp, (crouching ? CROUCH_HEIGHT : STAND_HEIGHT), 20.0f*delta); g.player.camera.position = (Vector3){ @@ -483,6 +513,8 @@ int main(void) RenderTrees(&g, tree, treepos, treeSize); //DrawBillboard(g.player.camera, sign, bbPos, bbSize, WHITE); //zombie + DrawPerimeter(wall, 123.0f, 1.5f); + EndShaderMode(); // Restore opaque cutoff for anything else you draw with that material later @@ -904,15 +936,27 @@ static BoundingBox TransformAABB(BoundingBox bb, Matrix M) // Build world AABB for a model using the same T*R*S you render with static BoundingBox MakeModelWorldAABB(Model m, Vector3 pos, Vector3 scale, float yawDeg) { - BoundingBox local = ModelLocalAABB(m); - Matrix S = MatrixScale(scale.x, scale.y, scale.z); Matrix R = MatrixRotateY(DEG2RAD * yawDeg); Matrix T = MatrixTranslate(pos.x, pos.y, pos.z); - Matrix M = MatrixMultiply(MatrixMultiply(T, R), S); // T * R * S + Matrix SRT = MatrixMultiply(MatrixMultiply(S, R), T); // S * R * T + Matrix M = MatrixMultiply(m.transform, SRT); // model.transform * SRT - return TransformAABB(local, M); + BoundingBox out = { .min = { FLT_MAX, FLT_MAX, FLT_MAX }, + .max = { -FLT_MAX, -FLT_MAX, -FLT_MAX } }; + + for (int i = 0; i < m.meshCount; ++i) { + BoundingBox local = GetMeshBoundingBox(m.meshes[i]); + BoundingBox world = TransformAABB(local, M); + if (world.min.x < out.min.x) out.min.x = world.min.x; + if (world.min.y < out.min.y) out.min.y = world.min.y; + if (world.min.z < out.min.z) out.min.z = world.min.z; + if (world.max.x > out.max.x) out.max.x = world.max.x; + if (world.max.y > out.max.y) out.max.y = world.max.y; + if (world.max.z > out.max.z) out.max.z = world.max.z; + } + return out; } // Push player out of a box on the smallest X/Z overlap (slide) and zero that velocity axis @@ -945,3 +989,67 @@ static void ResolveAgainstBoxXZ(Master* g, BoundingBox box) g->player.velocity.z = 0.0f; } } + +// Length of the model along local X (used to tile segments cleanly) +static float ModelLengthXUnits(Model m) { + BoundingBox bb = ModelLocalAABB(m); // you already have this helper + return (bb.max.x - bb.min.x); +} + +static float ModelLengthZUnits(Model m) { + BoundingBox bb = ModelLocalAABB(m); + return (bb.max.z - bb.min.z); +} + +// Draw repeated wall segments around the perimeter (z=±border, x=±border) +static void DrawPerimeter(Model wall, float border, float scale) { + const float HALF = FLOOR_EXTENT * TILE_SIZE; // e.g. 25*5 = 125 + Vector3 scl = { scale, scale, scale }; + + //float segLen = ModelLengthXUnits(wall) * scale; + float segLen = ModelLengthZUnits(wall) * scale; + if (segLen <= 0.001f) segLen = TILE_SIZE; // safety fallback + + int count = (int)ceilf((2.0f * HALF) / segLen) + 1; + + scl.x += 0.1; + scl.y += 0.1; + scl.z += 0.1; + + // Top & bottom edges: fence runs along +X (yaw 0/180) + for (int i = 0; i < count; ++i) { + float x = -HALF + i * segLen; + DrawModelEx(wall, (Vector3){ x, 0.0f, border }, (Vector3){0,1,0}, 90.0f, scl, WHITE); + DrawModelEx(wall, (Vector3){ x, 0.0f, -border }, (Vector3){0,1,0}, 270.0f, scl, WHITE); + } + + // Left & right edges: rotate 90° so fence runs along Z + for (int i = 0; i < count; ++i) { + float z = -HALF + i * segLen; + DrawModelEx(wall, (Vector3){ border, 0.0f, z }, (Vector3){0,1,0}, 0.0f, scl, WHITE); + DrawModelEx(wall, (Vector3){ -border, 0.0f, z }, (Vector3){0,1,0}, 180.0f, scl, WHITE); + } +} + + +// Optional: collide player with the same perimeter using your AABB helpers +static void CollidePerimeter(Master* g, Model wall, float border, float scale) { + const float HALF = FLOOR_EXTENT * TILE_SIZE; + const Vector3 scl = { scale, scale, scale }; + + float segLen = ModelLengthXUnits(wall) * scale; + if (segLen <= 0.001f) segLen = TILE_SIZE; + + int count = (int)ceilf((2.0f * HALF) / segLen) + 1; + + for (int i = 0; i < count; ++i) { + float x = -HALF + i * segLen; + ResolveAgainstBoxXZ(g, MakeModelWorldAABB(wall, (Vector3){ x, 0.0f, border }, scl, 0.0f)); + ResolveAgainstBoxXZ(g, MakeModelWorldAABB(wall, (Vector3){ x, 0.0f, -border }, scl, 180.0f)); + } + for (int i = 0; i < count; ++i) { + float z = -HALF + i * segLen; + ResolveAgainstBoxXZ(g, MakeModelWorldAABB(wall, (Vector3){ border, 0.0f, z }, scl, 90.0f)); + ResolveAgainstBoxXZ(g, MakeModelWorldAABB(wall, (Vector3){ -border, 0.0f, z }, scl, 90.0f)); + } +} diff --git a/resources/3d_models/RuinsGLB/Accessories/Altar.glb b/resources/3d_models/RuinsGLB/Accessories/Altar.glb new file mode 100644 index 0000000..821639f Binary files /dev/null and b/resources/3d_models/RuinsGLB/Accessories/Altar.glb differ diff --git a/resources/3d_models/RuinsGLB/Accessories/AncientCoinAmethyst.glb b/resources/3d_models/RuinsGLB/Accessories/AncientCoinAmethyst.glb new file mode 100644 index 0000000..7ed947a Binary files /dev/null and b/resources/3d_models/RuinsGLB/Accessories/AncientCoinAmethyst.glb differ diff --git a/resources/3d_models/RuinsGLB/Accessories/AncientCoinEmerald.glb b/resources/3d_models/RuinsGLB/Accessories/AncientCoinEmerald.glb new file mode 100644 index 0000000..e1a9d78 Binary files /dev/null and b/resources/3d_models/RuinsGLB/Accessories/AncientCoinEmerald.glb differ diff --git a/resources/3d_models/RuinsGLB/Accessories/AncientCoinRuby.glb b/resources/3d_models/RuinsGLB/Accessories/AncientCoinRuby.glb new file mode 100644 index 0000000..f07ca68 Binary files /dev/null and b/resources/3d_models/RuinsGLB/Accessories/AncientCoinRuby.glb differ diff --git a/resources/3d_models/RuinsGLB/Accessories/ChestBase.glb b/resources/3d_models/RuinsGLB/Accessories/ChestBase.glb new file mode 100644 index 0000000..d28f7b2 Binary files /dev/null and b/resources/3d_models/RuinsGLB/Accessories/ChestBase.glb differ diff --git a/resources/3d_models/RuinsGLB/Accessories/ChestBaseGold.glb b/resources/3d_models/RuinsGLB/Accessories/ChestBaseGold.glb new file mode 100644 index 0000000..2f67c6b Binary files /dev/null and b/resources/3d_models/RuinsGLB/Accessories/ChestBaseGold.glb differ diff --git a/resources/3d_models/RuinsGLB/Accessories/ChestCover.glb b/resources/3d_models/RuinsGLB/Accessories/ChestCover.glb new file mode 100644 index 0000000..9367717 Binary files /dev/null and b/resources/3d_models/RuinsGLB/Accessories/ChestCover.glb differ diff --git a/resources/3d_models/RuinsGLB/Accessories/Skull.glb b/resources/3d_models/RuinsGLB/Accessories/Skull.glb new file mode 100644 index 0000000..54721ea Binary files /dev/null and b/resources/3d_models/RuinsGLB/Accessories/Skull.glb differ diff --git a/resources/3d_models/RuinsGLB/Accessories/SkullCracked.glb b/resources/3d_models/RuinsGLB/Accessories/SkullCracked.glb new file mode 100644 index 0000000..55c8616 Binary files /dev/null and b/resources/3d_models/RuinsGLB/Accessories/SkullCracked.glb differ diff --git a/resources/3d_models/RuinsGLB/Accessories/Vase.glb b/resources/3d_models/RuinsGLB/Accessories/Vase.glb new file mode 100644 index 0000000..f88c4fb Binary files /dev/null and b/resources/3d_models/RuinsGLB/Accessories/Vase.glb differ diff --git a/resources/3d_models/RuinsGLB/Accessories/WallLight.glb b/resources/3d_models/RuinsGLB/Accessories/WallLight.glb new file mode 100644 index 0000000..57e3f4a Binary files /dev/null and b/resources/3d_models/RuinsGLB/Accessories/WallLight.glb differ diff --git a/resources/3d_models/RuinsGLB/Blocks/BlockCrackMD.glb b/resources/3d_models/RuinsGLB/Blocks/BlockCrackMD.glb new file mode 100644 index 0000000..8aea695 Binary files /dev/null and b/resources/3d_models/RuinsGLB/Blocks/BlockCrackMD.glb differ diff --git a/resources/3d_models/RuinsGLB/Blocks/BlockCrackXL.glb b/resources/3d_models/RuinsGLB/Blocks/BlockCrackXL.glb new file mode 100644 index 0000000..db93bce Binary files /dev/null and b/resources/3d_models/RuinsGLB/Blocks/BlockCrackXL.glb differ diff --git a/resources/3d_models/RuinsGLB/Blocks/BlockCrackXS.glb b/resources/3d_models/RuinsGLB/Blocks/BlockCrackXS.glb new file mode 100644 index 0000000..613816a Binary files /dev/null and b/resources/3d_models/RuinsGLB/Blocks/BlockCrackXS.glb differ diff --git a/resources/3d_models/RuinsGLB/Blocks/BlockMossMD.glb b/resources/3d_models/RuinsGLB/Blocks/BlockMossMD.glb new file mode 100644 index 0000000..6f720f5 Binary files /dev/null and b/resources/3d_models/RuinsGLB/Blocks/BlockMossMD.glb differ diff --git a/resources/3d_models/RuinsGLB/Blocks/BlockMossXL.glb b/resources/3d_models/RuinsGLB/Blocks/BlockMossXL.glb new file mode 100644 index 0000000..ef0835e Binary files /dev/null and b/resources/3d_models/RuinsGLB/Blocks/BlockMossXL.glb differ diff --git a/resources/3d_models/RuinsGLB/Blocks/BlockMossXS.glb b/resources/3d_models/RuinsGLB/Blocks/BlockMossXS.glb new file mode 100644 index 0000000..e37d238 Binary files /dev/null and b/resources/3d_models/RuinsGLB/Blocks/BlockMossXS.glb differ diff --git a/resources/3d_models/RuinsGLB/Blocks/BlockNormalMD.glb b/resources/3d_models/RuinsGLB/Blocks/BlockNormalMD.glb new file mode 100644 index 0000000..be6f4ab Binary files /dev/null and b/resources/3d_models/RuinsGLB/Blocks/BlockNormalMD.glb differ diff --git a/resources/3d_models/RuinsGLB/Blocks/BlockNormalXL.glb b/resources/3d_models/RuinsGLB/Blocks/BlockNormalXL.glb new file mode 100644 index 0000000..777d829 Binary files /dev/null and b/resources/3d_models/RuinsGLB/Blocks/BlockNormalXL.glb differ diff --git a/resources/3d_models/RuinsGLB/Blocks/BlockNormalXS.glb b/resources/3d_models/RuinsGLB/Blocks/BlockNormalXS.glb new file mode 100644 index 0000000..05c3868 Binary files /dev/null and b/resources/3d_models/RuinsGLB/Blocks/BlockNormalXS.glb differ diff --git a/resources/3d_models/RuinsGLB/Fences/Corner.glb b/resources/3d_models/RuinsGLB/Fences/Corner.glb new file mode 100644 index 0000000..67335e2 Binary files /dev/null and b/resources/3d_models/RuinsGLB/Fences/Corner.glb differ diff --git a/resources/3d_models/RuinsGLB/Fences/CornerTight.glb b/resources/3d_models/RuinsGLB/Fences/CornerTight.glb new file mode 100644 index 0000000..60fc714 Binary files /dev/null and b/resources/3d_models/RuinsGLB/Fences/CornerTight.glb differ diff --git a/resources/3d_models/RuinsGLB/Fences/Fence.glb b/resources/3d_models/RuinsGLB/Fences/Fence.glb new file mode 100644 index 0000000..c2d1487 Binary files /dev/null and b/resources/3d_models/RuinsGLB/Fences/Fence.glb differ diff --git a/resources/3d_models/RuinsGLB/Fences/Line.glb b/resources/3d_models/RuinsGLB/Fences/Line.glb new file mode 100644 index 0000000..907e3d4 Binary files /dev/null and b/resources/3d_models/RuinsGLB/Fences/Line.glb differ diff --git a/resources/3d_models/RuinsGLB/Fences/Slope.glb b/resources/3d_models/RuinsGLB/Fences/Slope.glb new file mode 100644 index 0000000..d9bfc53 Binary files /dev/null and b/resources/3d_models/RuinsGLB/Fences/Slope.glb differ diff --git a/resources/3d_models/RuinsGLB/Moss/GroundMossMD.glb b/resources/3d_models/RuinsGLB/Moss/GroundMossMD.glb new file mode 100644 index 0000000..601e9c7 Binary files /dev/null and b/resources/3d_models/RuinsGLB/Moss/GroundMossMD.glb differ diff --git a/resources/3d_models/RuinsGLB/Moss/GroundMossXL.glb b/resources/3d_models/RuinsGLB/Moss/GroundMossXL.glb new file mode 100644 index 0000000..9163c3f Binary files /dev/null and b/resources/3d_models/RuinsGLB/Moss/GroundMossXL.glb differ diff --git a/resources/3d_models/RuinsGLB/Moss/GroundMossXS.glb b/resources/3d_models/RuinsGLB/Moss/GroundMossXS.glb new file mode 100644 index 0000000..4890d1b Binary files /dev/null and b/resources/3d_models/RuinsGLB/Moss/GroundMossXS.glb differ diff --git a/resources/3d_models/RuinsGLB/Moss/MossMD.glb b/resources/3d_models/RuinsGLB/Moss/MossMD.glb new file mode 100644 index 0000000..e5f64ad Binary files /dev/null and b/resources/3d_models/RuinsGLB/Moss/MossMD.glb differ diff --git a/resources/3d_models/RuinsGLB/Moss/MossXL.glb b/resources/3d_models/RuinsGLB/Moss/MossXL.glb new file mode 100644 index 0000000..54e0595 Binary files /dev/null and b/resources/3d_models/RuinsGLB/Moss/MossXL.glb differ diff --git a/resources/3d_models/RuinsGLB/Moss/MossXS.glb b/resources/3d_models/RuinsGLB/Moss/MossXS.glb new file mode 100644 index 0000000..f4b1a28 Binary files /dev/null and b/resources/3d_models/RuinsGLB/Moss/MossXS.glb differ diff --git a/resources/3d_models/RuinsGLB/Pillars/PillarRound.glb b/resources/3d_models/RuinsGLB/Pillars/PillarRound.glb new file mode 100644 index 0000000..e0f9d79 Binary files /dev/null and b/resources/3d_models/RuinsGLB/Pillars/PillarRound.glb differ diff --git a/resources/3d_models/RuinsGLB/Pillars/PillarRoundCut.glb b/resources/3d_models/RuinsGLB/Pillars/PillarRoundCut.glb new file mode 100644 index 0000000..eb5fd28 Binary files /dev/null and b/resources/3d_models/RuinsGLB/Pillars/PillarRoundCut.glb differ diff --git a/resources/3d_models/RuinsGLB/Pillars/PillarSquare.glb b/resources/3d_models/RuinsGLB/Pillars/PillarSquare.glb new file mode 100644 index 0000000..ecee925 Binary files /dev/null and b/resources/3d_models/RuinsGLB/Pillars/PillarSquare.glb differ diff --git a/resources/3d_models/RuinsGLB/Pillars/PillarSquareCut.glb b/resources/3d_models/RuinsGLB/Pillars/PillarSquareCut.glb new file mode 100644 index 0000000..7bfc27e Binary files /dev/null and b/resources/3d_models/RuinsGLB/Pillars/PillarSquareCut.glb differ diff --git a/resources/3d_models/RuinsGLB/Skely/Skely.blend b/resources/3d_models/RuinsGLB/Skely/Skely.blend new file mode 100644 index 0000000..842d0a3 Binary files /dev/null and b/resources/3d_models/RuinsGLB/Skely/Skely.blend differ diff --git a/resources/3d_models/RuinsGLB/Skely/Skely.fbx b/resources/3d_models/RuinsGLB/Skely/Skely.fbx new file mode 100644 index 0000000..289f51e Binary files /dev/null and b/resources/3d_models/RuinsGLB/Skely/Skely.fbx differ diff --git a/resources/3d_models/RuinsGLB/Skely/Skely.glb b/resources/3d_models/RuinsGLB/Skely/Skely.glb new file mode 100644 index 0000000..f4baa54 Binary files /dev/null and b/resources/3d_models/RuinsGLB/Skely/Skely.glb differ diff --git a/resources/3d_models/RuinsGLB/Skely/SkelyDraugr.blend b/resources/3d_models/RuinsGLB/Skely/SkelyDraugr.blend new file mode 100644 index 0000000..7f51182 Binary files /dev/null and b/resources/3d_models/RuinsGLB/Skely/SkelyDraugr.blend differ diff --git a/resources/3d_models/RuinsGLB/Skely/SkelyDraugr.glb b/resources/3d_models/RuinsGLB/Skely/SkelyDraugr.glb new file mode 100644 index 0000000..900f2fc Binary files /dev/null and b/resources/3d_models/RuinsGLB/Skely/SkelyDraugr.glb differ diff --git a/resources/3d_models/RuinsGLB/Skely/SkelyPoison.blend b/resources/3d_models/RuinsGLB/Skely/SkelyPoison.blend new file mode 100644 index 0000000..afd1c0b Binary files /dev/null and b/resources/3d_models/RuinsGLB/Skely/SkelyPoison.blend differ diff --git a/resources/3d_models/RuinsGLB/Skely/SkelyPoison.glb b/resources/3d_models/RuinsGLB/Skely/SkelyPoison.glb new file mode 100644 index 0000000..7720266 Binary files /dev/null and b/resources/3d_models/RuinsGLB/Skely/SkelyPoison.glb differ diff --git a/resources/3d_models/RuinsGLB/Stairs/StairBridge.glb b/resources/3d_models/RuinsGLB/Stairs/StairBridge.glb new file mode 100644 index 0000000..0111acc Binary files /dev/null and b/resources/3d_models/RuinsGLB/Stairs/StairBridge.glb differ diff --git a/resources/3d_models/RuinsGLB/Stairs/StairsMD.glb b/resources/3d_models/RuinsGLB/Stairs/StairsMD.glb new file mode 100644 index 0000000..27b65fc Binary files /dev/null and b/resources/3d_models/RuinsGLB/Stairs/StairsMD.glb differ diff --git a/resources/3d_models/RuinsGLB/Stairs/StairsXL.glb b/resources/3d_models/RuinsGLB/Stairs/StairsXL.glb new file mode 100644 index 0000000..032936d Binary files /dev/null and b/resources/3d_models/RuinsGLB/Stairs/StairsXL.glb differ diff --git a/resources/3d_models/RuinsGLB/Walls/DesctrutableWalls/WallBrokenMDdes.glb b/resources/3d_models/RuinsGLB/Walls/DesctrutableWalls/WallBrokenMDdes.glb new file mode 100644 index 0000000..72f207c Binary files /dev/null and b/resources/3d_models/RuinsGLB/Walls/DesctrutableWalls/WallBrokenMDdes.glb differ diff --git a/resources/3d_models/RuinsGLB/Walls/DesctrutableWalls/WallBrokenXLdes.glb b/resources/3d_models/RuinsGLB/Walls/DesctrutableWalls/WallBrokenXLdes.glb new file mode 100644 index 0000000..3e3a8d6 Binary files /dev/null and b/resources/3d_models/RuinsGLB/Walls/DesctrutableWalls/WallBrokenXLdes.glb differ diff --git a/resources/3d_models/RuinsGLB/Walls/DesctrutableWalls/WallBrokenXSdes.glb b/resources/3d_models/RuinsGLB/Walls/DesctrutableWalls/WallBrokenXSdes.glb new file mode 100644 index 0000000..6a1fa53 Binary files /dev/null and b/resources/3d_models/RuinsGLB/Walls/DesctrutableWalls/WallBrokenXSdes.glb differ diff --git a/resources/3d_models/RuinsGLB/Walls/DesctrutableWalls/WallNormalMDdes.glb b/resources/3d_models/RuinsGLB/Walls/DesctrutableWalls/WallNormalMDdes.glb new file mode 100644 index 0000000..38ba675 Binary files /dev/null and b/resources/3d_models/RuinsGLB/Walls/DesctrutableWalls/WallNormalMDdes.glb differ diff --git a/resources/3d_models/RuinsGLB/Walls/DesctrutableWalls/WallNormalXLdes.glb b/resources/3d_models/RuinsGLB/Walls/DesctrutableWalls/WallNormalXLdes.glb new file mode 100644 index 0000000..3c2d866 Binary files /dev/null and b/resources/3d_models/RuinsGLB/Walls/DesctrutableWalls/WallNormalXLdes.glb differ diff --git a/resources/3d_models/RuinsGLB/Walls/DesctrutableWalls/WallNormalXSdes.glb b/resources/3d_models/RuinsGLB/Walls/DesctrutableWalls/WallNormalXSdes.glb new file mode 100644 index 0000000..6b6dc93 Binary files /dev/null and b/resources/3d_models/RuinsGLB/Walls/DesctrutableWalls/WallNormalXSdes.glb differ diff --git a/resources/3d_models/RuinsGLB/Walls/Gate.glb b/resources/3d_models/RuinsGLB/Walls/Gate.glb new file mode 100644 index 0000000..39a4fca Binary files /dev/null and b/resources/3d_models/RuinsGLB/Walls/Gate.glb differ diff --git a/resources/3d_models/RuinsGLB/Walls/WallBrokenMD.glb b/resources/3d_models/RuinsGLB/Walls/WallBrokenMD.glb new file mode 100644 index 0000000..b885beb Binary files /dev/null and b/resources/3d_models/RuinsGLB/Walls/WallBrokenMD.glb differ diff --git a/resources/3d_models/RuinsGLB/Walls/WallBrokenXS.glb b/resources/3d_models/RuinsGLB/Walls/WallBrokenXS.glb new file mode 100644 index 0000000..464257e Binary files /dev/null and b/resources/3d_models/RuinsGLB/Walls/WallBrokenXS.glb differ diff --git a/resources/3d_models/RuinsGLB/Walls/WallBrokenXl.glb b/resources/3d_models/RuinsGLB/Walls/WallBrokenXl.glb new file mode 100644 index 0000000..cb00bc4 Binary files /dev/null and b/resources/3d_models/RuinsGLB/Walls/WallBrokenXl.glb differ diff --git a/resources/3d_models/RuinsGLB/Walls/WallEnd.glb b/resources/3d_models/RuinsGLB/Walls/WallEnd.glb new file mode 100644 index 0000000..655c64b Binary files /dev/null and b/resources/3d_models/RuinsGLB/Walls/WallEnd.glb differ diff --git a/resources/3d_models/RuinsGLB/Walls/WallEnd2.glb b/resources/3d_models/RuinsGLB/Walls/WallEnd2.glb new file mode 100644 index 0000000..d94a9bf Binary files /dev/null and b/resources/3d_models/RuinsGLB/Walls/WallEnd2.glb differ diff --git a/resources/3d_models/RuinsGLB/Walls/WallNormalMD.glb b/resources/3d_models/RuinsGLB/Walls/WallNormalMD.glb new file mode 100644 index 0000000..d78215f Binary files /dev/null and b/resources/3d_models/RuinsGLB/Walls/WallNormalMD.glb differ diff --git a/resources/3d_models/RuinsGLB/Walls/WallNormalXL.glb b/resources/3d_models/RuinsGLB/Walls/WallNormalXL.glb new file mode 100644 index 0000000..396c9ca Binary files /dev/null and b/resources/3d_models/RuinsGLB/Walls/WallNormalXL.glb differ diff --git a/resources/3d_models/RuinsGLB/Walls/WallNormalXS.glb b/resources/3d_models/RuinsGLB/Walls/WallNormalXS.glb new file mode 100644 index 0000000..3ec188c Binary files /dev/null and b/resources/3d_models/RuinsGLB/Walls/WallNormalXS.glb differ