* Some stuff

* Fix NaN angular velocity

* Optimise a bit

* Give throwing a bit of a spin

* Reality can be whatever I want

* Biffing it

* Cleanup

* Update submodule

Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
This commit is contained in:
metalgearsloth
2021-03-30 21:43:03 +11:00
committed by GitHub
parent 72292a98eb
commit d1e4bb0304
56 changed files with 286 additions and 246 deletions

View File

@@ -32,9 +32,8 @@ using Robust.Shared.IoC;
using Robust.Shared.Map; using Robust.Shared.Map;
using Robust.Shared.Maths; using Robust.Shared.Maths;
using Robust.Shared.Physics; using Robust.Shared.Physics;
using Robust.Shared.Physics.Collision.Shapes;
using Robust.Shared.Physics.Dynamics; using Robust.Shared.Physics.Dynamics;
using Robust.Shared.Physics.Dynamics.Shapes;
using Robust.UnitTesting;
namespace Content.IntegrationTests.Tests.Physics namespace Content.IntegrationTests.Tests.Physics
{ {

View File

@@ -31,8 +31,8 @@ using Robust.Shared.IoC;
using Robust.Shared.Map; using Robust.Shared.Map;
using Robust.Shared.Maths; using Robust.Shared.Maths;
using Robust.Shared.Physics; using Robust.Shared.Physics;
using Robust.Shared.Physics.Collision.Shapes;
using Robust.Shared.Physics.Dynamics; using Robust.Shared.Physics.Dynamics;
using Robust.Shared.Physics.Dynamics.Shapes;
using Robust.Shared.Timing; using Robust.Shared.Timing;
#nullable enable #nullable enable
@@ -275,8 +275,9 @@ namespace Content.Server.Commands.Physics
new Fixture(box, shape) { new Fixture(box, shape) {
CollisionLayer = (int) CollisionGroup.Impassable, CollisionLayer = (int) CollisionGroup.Impassable,
CollisionMask = (int) CollisionGroup.Impassable, CollisionMask = (int) CollisionGroup.Impassable,
Hard = true}); Hard = true,
box.Mass = 5.0f; Mass = 5.0f,
});
y += deltaY; y += deltaY;
} }

View File

@@ -12,6 +12,8 @@ namespace Content.Server.GameObjects.Components.Items
{ {
internal static class ThrowHelper internal static class ThrowHelper
{ {
private const float ThrowAngularImpulse = 3.0f;
/// <summary> /// <summary>
/// Tries to throw the entity if it has a physics component, otherwise does nothing. /// Tries to throw the entity if it has a physics component, otherwise does nothing.
/// </summary> /// </summary>
@@ -41,6 +43,8 @@ namespace Content.Server.GameObjects.Components.Items
if (entity.HasComponent<ItemComponent>()) if (entity.HasComponent<ItemComponent>())
{ {
entity.EnsureComponent<ThrownItemComponent>().Thrower = user; entity.EnsureComponent<ThrownItemComponent>().Thrower = user;
// Give it a l'il spin.
physicsComponent.ApplyAngularImpulse(ThrowAngularImpulse);
if (user != null) if (user != null)
EntitySystem.Get<InteractionSystem>().ThrownInteraction(user, entity); EntitySystem.Get<InteractionSystem>().ThrownInteraction(user, entity);

View File

@@ -1,22 +1,16 @@
#nullable enable #nullable enable
using Content.Server.GameObjects.Components.Observer;
using System.Collections.Generic;
using System.Linq; using System.Linq;
using Content.Server.GameObjects.Components.StationEvents; using Content.Server.GameObjects.Components.StationEvents;
using Content.Shared.Physics;
using Robust.Shared.Audio; using Robust.Shared.Audio;
using Robust.Shared.Containers; using Robust.Shared.Containers;
using Robust.Shared.GameObjects; using Robust.Shared.GameObjects;
using Robust.Shared.IoC;
using Robust.Shared.Log; using Robust.Shared.Log;
using Robust.Shared.Map; using Robust.Shared.Map;
using Robust.Shared.Maths;
using Robust.Shared.Physics; using Robust.Shared.Physics;
using Robust.Shared.Physics.Collision; using Robust.Shared.Physics.Collision;
using Robust.Shared.Physics.Dynamics.Shapes;
using Robust.Shared.Random;
using Robust.Server.GameObjects; using Robust.Server.GameObjects;
using Content.Shared.GameObjects.Components.Singularity; using Content.Shared.GameObjects.Components.Singularity;
using Robust.Shared.Physics.Collision.Shapes;
using Robust.Shared.Player; using Robust.Shared.Player;
using Robust.Shared.Players; using Robust.Shared.Players;
using Robust.Shared.Timing; using Robust.Shared.Timing;
@@ -27,9 +21,6 @@ namespace Content.Server.GameObjects.Components.Singularity
[RegisterComponent] [RegisterComponent]
public class ServerSingularityComponent : SharedSingularityComponent, IStartCollide public class ServerSingularityComponent : SharedSingularityComponent, IStartCollide
{ {
[Dependency] private readonly IRobustRandom _random = default!;
public int Energy public int Energy
{ {
get => _energy; get => _energy;

View File

@@ -2,7 +2,6 @@
using System.Collections.Generic; using System.Collections.Generic;
using Content.Server.GameObjects.Components.GUI; using Content.Server.GameObjects.Components.GUI;
using Content.Server.GameObjects.Components.Items.Storage; using Content.Server.GameObjects.Components.Items.Storage;
using Content.Server.GameObjects.Components.Mobs;
using Content.Server.GameObjects.Components.Movement; using Content.Server.GameObjects.Components.Movement;
using Content.Server.GameObjects.Components.Sound; using Content.Server.GameObjects.Components.Sound;
using Content.Shared.Audio; using Content.Shared.Audio;
@@ -10,9 +9,7 @@ using Content.Shared.GameObjects.Components.Inventory;
using Content.Shared.GameObjects.Components.Movement; using Content.Shared.GameObjects.Components.Movement;
using Content.Shared.GameObjects.Components.Tag; using Content.Shared.GameObjects.Components.Tag;
using Content.Shared.Maps; using Content.Shared.Maps;
using Content.Shared.Physics;
using Content.Shared.Physics.Controllers; using Content.Shared.Physics.Controllers;
using JetBrains.Annotations;
using Robust.Server.GameObjects; using Robust.Server.GameObjects;
using Robust.Shared.Audio; using Robust.Shared.Audio;
using Robust.Shared.GameObjects; using Robust.Shared.GameObjects;
@@ -20,7 +17,7 @@ using Robust.Shared.IoC;
using Robust.Shared.Log; using Robust.Shared.Log;
using Robust.Shared.Map; using Robust.Shared.Map;
using Robust.Shared.Maths; using Robust.Shared.Maths;
using Robust.Shared.Physics; using Robust.Shared.Physics.Collision.Shapes;
using Robust.Shared.Physics.Dynamics; using Robust.Shared.Physics.Dynamics;
using Robust.Shared.Player; using Robust.Shared.Player;
using Robust.Shared.Prototypes; using Robust.Shared.Prototypes;
@@ -90,7 +87,6 @@ namespace Content.Server.Physics.Controllers
{ {
physics = gridEntity.AddComponent<PhysicsComponent>(); physics = gridEntity.AddComponent<PhysicsComponent>();
physics.BodyStatus = BodyStatus.InAir; physics.BodyStatus = BodyStatus.InAir;
physics.Mass = 1;
physics.CanCollide = true; physics.CanCollide = true;
physics.AddFixture(new Fixture(physics, new PhysShapeGrid(grid))); physics.AddFixture(new Fixture(physics, new PhysShapeGrid(grid)));
} }

View File

@@ -48,23 +48,30 @@ namespace Content.Shared.Physics.Controllers
foreach (var body in map.AwakeBodies) foreach (var body in map.AwakeBodies)
{ {
if (prediction && !body.Predict) continue; // Only apply friction when it's not a mob (or the mob doesn't have control)
if (prediction && !body.Predict ||
var speed = body.LinearVelocity.Length; body.BodyStatus == BodyStatus.InAir ||
SharedMoverController.UseMobMovement(_broadPhaseSystem, body, _physicsManager)) continue;
if (speed <= 0.0f || body.BodyStatus == BodyStatus.InAir) continue;
// This is the *actual* amount that speed will drop by, we just do some multiplication around it to be easier.
var drop = 0.0f;
float control;
// Only apply friction when it's not a mob (or the mob doesn't have control).
if (SharedMoverController.UseMobMovement(_broadPhaseSystem, body, _physicsManager)) continue;
var surfaceFriction = GetTileFriction(body); var surfaceFriction = GetTileFriction(body);
var bodyModifier = body.Owner.GetComponentOrNull<SharedTileFrictionModifier>()?.Modifier ?? 1.0f; var bodyModifier = body.Owner.GetComponentOrNull<SharedTileFrictionModifier>()?.Modifier ?? 1.0f;
var friction = _frictionModifier * surfaceFriction * bodyModifier; var friction = _frictionModifier * surfaceFriction * bodyModifier;
ReduceLinearVelocity(prediction, body, friction, frameTime);
ReduceAngularVelocity(prediction, body, friction, frameTime);
}
}
private void ReduceLinearVelocity(bool prediction, PhysicsComponent body, float friction, float frameTime)
{
var speed = body.LinearVelocity.Length;
if (speed <= 0.0f) return;
// This is the *actual* amount that speed will drop by, we just do some multiplication around it to be easier.
var drop = 0.0f;
float control;
if (friction > 0.0f) if (friction > 0.0f)
{ {
// TBH I can't really tell if this makes a difference. // TBH I can't really tell if this makes a difference.
@@ -85,6 +92,36 @@ namespace Content.Shared.Physics.Controllers
newSpeed /= speed; newSpeed /= speed;
body.LinearVelocity *= newSpeed; body.LinearVelocity *= newSpeed;
} }
private void ReduceAngularVelocity(bool prediction, PhysicsComponent body, float friction, float frameTime)
{
var speed = MathF.Abs(body.AngularVelocity);
if (speed <= 0.0f) return;
// This is the *actual* amount that speed will drop by, we just do some multiplication around it to be easier.
var drop = 0.0f;
float control;
if (friction > 0.0f)
{
// TBH I can't really tell if this makes a difference.
if (!prediction)
{
control = speed < _stopSpeed ? _stopSpeed : speed;
}
else
{
control = speed;
}
drop += control * friction * frameTime;
}
var newSpeed = MathF.Max(0.0f, speed - drop);
newSpeed /= speed;
body.AngularVelocity *= newSpeed;
} }
[Pure] [Pure]

View File

@@ -24,11 +24,11 @@
- state: panel_open - state: panel_open
map: ["enum.WiresVisualLayers.MaintenancePanel"] map: ["enum.WiresVisualLayers.MaintenancePanel"]
- type: Physics - type: Physics
mass: 100
fixtures: fixtures:
- shape: - shape:
!type:PhysShapeAabb !type:PhysShapeAabb
bounds: "-0.49,-0.49,0.49,0.49" # don't want this colliding with walls or they won't close bounds: "-0.49,-0.49,0.49,0.49" # don't want this colliding with walls or they won't close
mass: 100
mask: mask:
- MobImpassable - MobImpassable
layer: layer:
@@ -91,11 +91,11 @@
sprite: Constructible/Structures/Doors/Standard/basic.rsi sprite: Constructible/Structures/Doors/Standard/basic.rsi
state: "assembly" state: "assembly"
- type: Physics - type: Physics
mass: 100
fixtures: fixtures:
- shape: - shape:
!type:PhysShapeAabb !type:PhysShapeAabb
bounds: "-0.49,-0.49,0.49,0.49" bounds: "-0.49,-0.49,0.49,0.49"
mass: 100
mask: mask:
- MobImpassable - MobImpassable
layer: layer:

View File

@@ -23,11 +23,11 @@
acts: ["Destruction"] acts: ["Destruction"]
- type: Physics - type: Physics
bodyType: Dynamic bodyType: Dynamic
mass: 50
fixtures: fixtures:
- shape: - shape:
!type:PhysShapeAabb !type:PhysShapeAabb
bounds: "-0.49,-0.49,0.49,0.49" bounds: "-0.49,-0.49,0.49,0.49"
mass: 50
layer: layer:
- SmallImpassable - SmallImpassable
mask: mask:

View File

@@ -9,12 +9,12 @@
- type: PlaceableSurface - type: PlaceableSurface
placeCentered: true placeCentered: true
- type: Physics - type: Physics
mass: 25
bodyType: Static bodyType: Static
fixtures: fixtures:
- shape: - shape:
!type:PhysShapeAabb !type:PhysShapeAabb
bounds: "-0.45, -0.45, 0.05, 0.45" bounds: "-0.45, -0.45, 0.05, 0.45"
mass: 25
mask: mask:
- SmallImpassable - SmallImpassable
- type: Sprite - type: Sprite

View File

@@ -5,12 +5,12 @@
components: components:
- type: InteractionOutline - type: InteractionOutline
- type: Physics - type: Physics
mass: 25
bodyType: Dynamic bodyType: Dynamic
fixtures: fixtures:
- shape: - shape:
!type:PhysShapeAabb !type:PhysShapeAabb
bounds: "-0.5, -0.2, 0.5, 0.2" bounds: "-0.5, -0.2, 0.5, 0.2"
mass: 25
mask: mask:
- MobImpassable - MobImpassable
layer: layer:
@@ -55,12 +55,12 @@
- type: Sprite - type: Sprite
state: plant-25 state: plant-25
- type: Physics - type: Physics
mass: 25
bodyType: Dynamic bodyType: Dynamic
fixtures: fixtures:
- shape: - shape:
!type:PhysShapeAabb !type:PhysShapeAabb
bounds: "-0.47,-0.25,0.05,0.25" bounds: "-0.47,-0.25,0.05,0.25"
mass: 25
layer: layer:
- SmallImpassable - SmallImpassable
mask: mask:

View File

@@ -12,12 +12,12 @@
sprite: Constructible/Misc/furniture.rsi sprite: Constructible/Misc/furniture.rsi
state: rack state: rack
- type: Physics - type: Physics
mass: 50
bodyType: Static bodyType: Static
fixtures: fixtures:
- shape: - shape:
!type:PhysShapeAabb !type:PhysShapeAabb
bounds: "-0.3,-0.3,0.3,0.3" bounds: "-0.3,-0.3,0.3,0.3"
mass: 50
layer: layer:
- MobImpassable - MobImpassable
mask: mask:

View File

@@ -9,12 +9,12 @@
- type: Sprite - type: Sprite
- type: Damageable - type: Damageable
- type: Physics - type: Physics
mass: 25
bodyType: Dynamic bodyType: Dynamic
fixtures: fixtures:
- shape: - shape:
!type:PhysShapeAabb !type:PhysShapeAabb
bounds: "-0.5,-0.25,0.5,0.25" bounds: "-0.5,-0.25,0.5,0.25"
mass: 25
mask: mask:
- MobImpassable - MobImpassable
layer: layer:

View File

@@ -5,12 +5,12 @@
description: "A computer under construction. It needs a circuit board." description: "A computer under construction. It needs a circuit board."
components: components:
- type: Physics - type: Physics
mass: 25
bodyType: Static bodyType: Static
fixtures: fixtures:
- shape: - shape:
!type:PhysShapeAabb !type:PhysShapeAabb
bounds: "-0.5,-0.25,0.5,0.25" bounds: "-0.5,-0.25,0.5,0.25"
mass: 25
mask: mask:
- MobImpassable - MobImpassable
layer: layer:

View File

@@ -8,12 +8,12 @@
- type: Clickable - type: Clickable
- type: InteractionOutline - type: InteractionOutline
- type: Physics - type: Physics
mass: 25
bodyType: Static bodyType: Static
fixtures: fixtures:
- shape: - shape:
!type:PhysShapeAabb !type:PhysShapeAabb
bounds: "-0.4,-0.4,0.4,0.4" bounds: "-0.4,-0.4,0.4,0.4"
mass: 25
mask: mask:
- Impassable - Impassable
- VaultImpassable - VaultImpassable

View File

@@ -7,12 +7,12 @@
mode: SnapgridCenter mode: SnapgridCenter
components: components:
- type: Physics - type: Physics
mass: 25
bodyType: Static bodyType: Static
fixtures: fixtures:
- shape: - shape:
!type:PhysShapeAabb !type:PhysShapeAabb
bounds: "-0.5,-0.25,0.5,0.25" bounds: "-0.5,-0.25,0.5,0.25"
mass: 25
layer: layer:
- Impassable - Impassable
- MobImpassable - MobImpassable
@@ -54,12 +54,12 @@
mode: SnapgridCenter mode: SnapgridCenter
components: components:
- type: Physics - type: Physics
mass: 25
bodyType: Static bodyType: Static
fixtures: fixtures:
- shape: - shape:
!type:PhysShapeAabb !type:PhysShapeAabb
bounds: "-0.5,-0.25,0.5,0.25" bounds: "-0.5,-0.25,0.5,0.25"
mass: 25
layer: layer:
- Impassable - Impassable
- MobImpassable - MobImpassable

View File

@@ -9,12 +9,12 @@
- type: Clickable - type: Clickable
- type: InteractionOutline - type: InteractionOutline
- type: Physics - type: Physics
mass: 25
bodyType: Static bodyType: Static
fixtures: fixtures:
- shape: - shape:
!type:PhysShapeAabb !type:PhysShapeAabb
bounds: "-0.5, -0.4, 0.3, 0.4" bounds: "-0.5, -0.4, 0.3, 0.4"
mass: 25
mask: mask:
- Impassable - Impassable
- MobImpassable - MobImpassable
@@ -54,11 +54,11 @@
- type: Clickable - type: Clickable
- type: InteractionOutline - type: InteractionOutline
- type: Physics - type: Physics
mass: 25
bodyType: Static bodyType: Static
fixtures: fixtures:
- shape: - shape:
!type:PhysShapeAabb {} !type:PhysShapeAabb {}
mass: 25
mask: mask:
- Impassable - Impassable
- MobImpassable - MobImpassable
@@ -113,11 +113,11 @@
- type: Clickable - type: Clickable
- type: InteractionOutline - type: InteractionOutline
- type: Physics - type: Physics
mass: 25
bodyType: Static bodyType: Static
fixtures: fixtures:
- shape: - shape:
!type:PhysShapeAabb {} !type:PhysShapeAabb {}
mass: 25
mask: mask:
- Impassable - Impassable
- MobImpassable - MobImpassable
@@ -228,11 +228,11 @@
- type: Clickable - type: Clickable
- type: InteractionOutline - type: InteractionOutline
- type: Physics - type: Physics
mass: 100
bodyType: Static bodyType: Static
fixtures: fixtures:
- shape: - shape:
!type:PhysShapeAabb {} !type:PhysShapeAabb {}
mass: 100
mask: mask:
- Impassable - Impassable
- MobImpassable - MobImpassable
@@ -285,11 +285,11 @@
- type: Clickable - type: Clickable
- type: InteractionOutline - type: InteractionOutline
- type: Physics - type: Physics
mass: 75
bodyType: Static bodyType: Static
fixtures: fixtures:
- shape: - shape:
!type:PhysShapeAabb {} !type:PhysShapeAabb {}
mass: 75
mask: mask:
- VaultImpassable - VaultImpassable
layer: layer:
@@ -323,11 +323,11 @@
- type: Clickable - type: Clickable
- type: InteractionOutline - type: InteractionOutline
- type: Physics - type: Physics
mass: 100
bodyType: Static bodyType: Static
fixtures: fixtures:
- shape: - shape:
!type:PhysShapeAabb {} !type:PhysShapeAabb {}
mass: 100
mask: mask:
- Impassable - Impassable
- MobImpassable - MobImpassable

View File

@@ -11,12 +11,12 @@
sprite: Constructible/Hydroponics/machines.rsi sprite: Constructible/Hydroponics/machines.rsi
state: seedextractor state: seedextractor
- type: Physics - type: Physics
mass: 25
bodyType: Static bodyType: Static
fixtures: fixtures:
- shape: - shape:
!type:PhysShapeAabb !type:PhysShapeAabb
bounds: "-0.4,-0.25,0.4,0.25" bounds: "-0.4,-0.25,0.4,0.25"
mass: 25
layer: layer:
- Opaque - Opaque
- Impassable - Impassable

View File

@@ -7,12 +7,12 @@
- type: Clickable - type: Clickable
- type: InteractionOutline - type: InteractionOutline
- type: Physics - type: Physics
mass: 25
bodyType: Static bodyType: Static
fixtures: fixtures:
- shape: - shape:
!type:PhysShapeAabb !type:PhysShapeAabb
bounds: "-0.3,-0.4,0.3,0.4" bounds: "-0.3,-0.4,0.3,0.4"
mass: 25
mask: mask:
- Impassable - Impassable
- MobImpassable - MobImpassable

View File

@@ -11,11 +11,11 @@
sprite: Constructible/Power/ame_controller.rsi sprite: Constructible/Power/ame_controller.rsi
state: control state: control
- type: Physics - type: Physics
mass: 25
fixtures: fixtures:
- shape: - shape:
!type:PhysShapeAabb !type:PhysShapeAabb
bounds: "-0.45, -0.45, 0.45, 0.45" bounds: "-0.45, -0.45, 0.45, 0.45"
mass: 25
layer: layer:
- Opaque - Opaque
- Impassable - Impassable

View File

@@ -8,12 +8,12 @@
- type: Anchorable - type: Anchorable
snap: true snap: true
- type: Physics - type: Physics
mass: 25
bodyType: Static bodyType: Static
fixtures: fixtures:
- shape: - shape:
!type:PhysShapeAabb !type:PhysShapeAabb
bounds: "-0.49,-0.49,0.49,0.49" bounds: "-0.49,-0.49,0.49,0.49"
mass: 25
mask: mask:
- Opaque - Opaque
- Impassable - Impassable

View File

@@ -9,11 +9,11 @@
- type: InteractionOutline - type: InteractionOutline
- type: Physics - type: Physics
bodyType: Static bodyType: Static
mass: 25
fixtures: fixtures:
- shape: - shape:
!type:PhysShapeAabb !type:PhysShapeAabb
bounds: "-0.5, -0.5, 0.5, 0.5" bounds: "-0.5, -0.5, 0.5, 0.5"
mass: 25
layer: layer:
- Impassable - Impassable
- MobImpassable - MobImpassable

View File

@@ -9,11 +9,11 @@
- type: Clickable - type: Clickable
- type: Physics - type: Physics
bodyType: Static bodyType: Static
mass: 25
fixtures: fixtures:
- shape: - shape:
!type:PhysShapeAabb !type:PhysShapeAabb
bounds: "-0.5, -0.5, 0.5, 0.5" bounds: "-0.5, -0.5, 0.5, 0.5"
mass: 25
layer: layer:
- Impassable - Impassable
- MobImpassable - MobImpassable

View File

@@ -6,12 +6,12 @@
- type: Clickable - type: Clickable
- type: InteractionOutline - type: InteractionOutline
- type: Physics - type: Physics
mass: 100
bodyType: Static bodyType: Static
fixtures: fixtures:
- shape: - shape:
!type:PhysShapeAabb !type:PhysShapeAabb
bounds: "-0.25, -0.25, 0.25, 0.25" bounds: "-0.25, -0.25, 0.25, 0.25"
mass: 100
layer: layer:
- Impassable - Impassable
- MobImpassable - MobImpassable

View File

@@ -13,11 +13,11 @@
- type: Clickable - type: Clickable
- type: Physics - type: Physics
bodyType: Static bodyType: Static
mass: 25
fixtures: fixtures:
- shape: - shape:
!type:PhysShapeAabb !type:PhysShapeAabb
bounds: "-0.5, -0.5, 0.5, 0.5" bounds: "-0.5, -0.5, 0.5, 0.5"
mass: 25
layer: layer:
- Opaque - Opaque
mask: mask:

View File

@@ -10,10 +10,11 @@
- shape: - shape:
!type:PhysShapeCircle !type:PhysShapeCircle
radius: 0.5 radius: 0.5
layer: [Impassable] mass: 5
layer:
- Impassable
mask: mask:
- AllMask - AllMask
mass: 5
- type: Singularity - type: Singularity
- type: RadiationPulse - type: RadiationPulse
range: 15 range: 15

View File

@@ -16,12 +16,12 @@
- type: Clickable - type: Clickable
- type: InteractionOutline - type: InteractionOutline
- type: Physics - type: Physics
mass: 25
bodyType: Static bodyType: Static
fixtures: fixtures:
- shape: - shape:
!type:PhysShapeAabb !type:PhysShapeAabb
bounds: "-0.5,-0.25,0.5,0.25" bounds: "-0.5,-0.25,0.5,0.25"
mass: 25
layer: layer:
- Opaque - Opaque
- Impassable - Impassable

View File

@@ -18,11 +18,11 @@
- type: Clickable - type: Clickable
- type: InteractionOutline - type: InteractionOutline
- type: Physics - type: Physics
mass: 25
bodyType: Static bodyType: Static
fixtures: fixtures:
- shape: - shape:
!type:PhysShapeAabb {} !type:PhysShapeAabb {}
mass: 25
layer: layer:
- Impassable - Impassable
- VaultImpassable - VaultImpassable

View File

@@ -9,11 +9,11 @@
state: server state: server
- type: InteractionOutline - type: InteractionOutline
- type: Physics - type: Physics
mass: 25
bodyType: Static bodyType: Static
fixtures: fixtures:
- shape: - shape:
!type:PhysShapeAabb {} !type:PhysShapeAabb {}
mass: 25
mask: mask:
- SmallImpassable - SmallImpassable
layer: layer:
@@ -40,11 +40,11 @@
map: ["enum.PowerDeviceVisualLayers.Powered"] map: ["enum.PowerDeviceVisualLayers.Powered"]
- type: InteractionOutline - type: InteractionOutline
- type: Physics - type: Physics
mass: 25
bodyType: Static bodyType: Static
fixtures: fixtures:
- shape: - shape:
!type:PhysShapeAabb {} !type:PhysShapeAabb {}
mass: 25
mask: mask:
- SmallImpassable - SmallImpassable
layer: layer:

View File

@@ -6,12 +6,12 @@
components: components:
- type: InteractionOutline - type: InteractionOutline
- type: Physics - type: Physics
mass: 25
bodyType: Static bodyType: Static
fixtures: fixtures:
- shape: - shape:
!type:PhysShapeAabb !type:PhysShapeAabb
bounds: "-0.45, -0.45, 0.00, 0.45" bounds: "-0.45, -0.45, 0.00, 0.45"
mass: 25
layer: layer:
- Passable - Passable
- type: Sprite - type: Sprite

View File

@@ -22,11 +22,11 @@
snap: true snap: true
- type: Physics - type: Physics
bodyType: Static bodyType: Static
mass: 25
fixtures: fixtures:
- shape: - shape:
!type:PhysShapeAabb !type:PhysShapeAabb
bounds: "-0.4,-0.25,0.4,0.25" bounds: "-0.4,-0.25,0.4,0.25"
mass: 25
mask: mask:
- SmallImpassable - SmallImpassable
layer: layer:
@@ -69,12 +69,12 @@
state: mixer_broken state: mixer_broken
- type: InteractionOutline - type: InteractionOutline
- type: Physics - type: Physics
mass: 25
bodyType: Dynamic bodyType: Dynamic
fixtures: fixtures:
- shape: - shape:
!type:PhysShapeAabb !type:PhysShapeAabb
bounds: "-0.4,-0.25,0.4,0.25" bounds: "-0.4,-0.25,0.4,0.25"
mass: 25
mask: mask:
- SmallImpassable - SmallImpassable
layer: layer:

View File

@@ -7,12 +7,12 @@
- type: Clickable - type: Clickable
- type: InteractionOutline - type: InteractionOutline
- type: Physics - type: Physics
mass: 25
bodyType: Static bodyType: Static
fixtures: fixtures:
- shape: - shape:
!type:PhysShapeAabb !type:PhysShapeAabb
bounds: "-0.5, -0.5, 0.1, 0.5" bounds: "-0.5, -0.5, 0.1, 0.5"
mass: 25
hard: false hard: false
mask: mask:
- Impassable - Impassable
@@ -58,10 +58,10 @@
description: An interstellar-grade space farmplot allowing for rapid growth and selective breeding of crops. Just... keep in mind the space weeds. description: An interstellar-grade space farmplot allowing for rapid growth and selective breeding of crops. Just... keep in mind the space weeds.
components: components:
- type: Physics - type: Physics
mass: 25
fixtures: fixtures:
- shape: - shape:
!type:PhysShapeAabb {} !type:PhysShapeAabb {}
mass: 25
hard: true hard: true
mask: mask:
- Impassable - Impassable

View File

@@ -14,11 +14,11 @@
- type: InteractionOutline - type: InteractionOutline
- type: Physics - type: Physics
bodyType: Static bodyType: Static
mass: 1
fixtures: fixtures:
- shape: - shape:
!type:PhysShapeAabb !type:PhysShapeAabb
bounds: "-0.25,-0.25,0.25,0.25" bounds: "-0.25,-0.25,0.25,0.25"
mass: 1
layer: layer:
- Clickable - Clickable
- type: TraitorDeathMatchRedemption - type: TraitorDeathMatchRedemption

View File

@@ -19,11 +19,11 @@
soundHit: /Audio/Effects/bang.ogg soundHit: /Audio/Effects/bang.ogg
- type: InteractionOutline - type: InteractionOutline
- type: Physics - type: Physics
mass: 25
fixtures: fixtures:
- shape: - shape:
!type:PhysShapeAabb !type:PhysShapeAabb
bounds: "-0.48,-0.25,0.48,0.25" bounds: "-0.48,-0.25,0.48,0.25"
mass: 70
mask: mask:
- Impassable - Impassable
- VaultImpassable - VaultImpassable

View File

@@ -17,11 +17,11 @@
map: ["enum.StorageVisualLayers.Welded"] map: ["enum.StorageVisualLayers.Welded"]
- type: InteractionOutline - type: InteractionOutline
- type: Physics - type: Physics
mass: 25
fixtures: fixtures:
- shape: - shape:
!type:PhysShapeAabb !type:PhysShapeAabb
bounds: "-0.4, -0.4, 0.29, 0.4" bounds: "-0.4, -0.4, 0.29, 0.4"
mass: 25
mask: mask:
- Impassable - Impassable
- VaultImpassable - VaultImpassable

View File

@@ -7,11 +7,11 @@
components: components:
- type: InteractionOutline - type: InteractionOutline
- type: Physics - type: Physics
mass: 100
fixtures: fixtures:
- shape: - shape:
!type:PhysShapeAabb !type:PhysShapeAabb
bounds: "-0.4,-0.4,0.4,0.4" bounds: "-0.4,-0.4,0.4,0.4"
mass: 100
mask: mask:
- Impassable - Impassable
- MobImpassable - MobImpassable

View File

@@ -6,10 +6,10 @@
components: components:
- type: Physics - type: Physics
bodyType: Static bodyType: Static
mass: 50
fixtures: fixtures:
- shape: - shape:
!type:PhysShapeAabb {} !type:PhysShapeAabb {}
mass: 50
layer: layer:
- SmallImpassable - SmallImpassable
mask: mask:

View File

@@ -9,10 +9,10 @@
- type: Clickable - type: Clickable
- type: Physics - type: Physics
bodyType: Static bodyType: Static
mass: 50
fixtures: fixtures:
- shape: - shape:
!type:PhysShapeAabb {} !type:PhysShapeAabb {}
mass: 50
layer: layer:
- SmallImpassable - SmallImpassable
mask: mask:
@@ -33,10 +33,10 @@
- type: Clickable - type: Clickable
- type: Physics - type: Physics
bodyType: Dynamic bodyType: Dynamic
mass: 50
fixtures: fixtures:
- shape: - shape:
!type:PhysShapeAabb {} !type:PhysShapeAabb {}
mass: 50
layer: layer:
- SmallImpassable - SmallImpassable
mask: mask:

View File

@@ -15,11 +15,11 @@
sprite: Mobs/Animals/monkey.rsi sprite: Mobs/Animals/monkey.rsi
- type: Physics - type: Physics
bodyType: Dynamic bodyType: Dynamic
mass: 50
fixtures: fixtures:
- shape: - shape:
!type:PhysShapeAabb !type:PhysShapeAabb
bounds: "-0.30,-0.25,0.40,0.25" bounds: "-0.30,-0.25,0.40,0.25"
mass: 50
mask: mask:
- Impassable - Impassable
- VaultImpassable - VaultImpassable
@@ -49,11 +49,11 @@
sprite: Mobs/Animals/gorilla.rsi sprite: Mobs/Animals/gorilla.rsi
- type: Physics - type: Physics
bodyType: Dynamic bodyType: Dynamic
mass: 90
fixtures: fixtures:
- shape: - shape:
!type:PhysShapeAabb !type:PhysShapeAabb
bounds: "-0.90,-0.50,0.05,0.50" bounds: "-0.90,-0.50,0.05,0.50"
mass: 90
mask: mask:
- Impassable - Impassable
- VaultImpassable - VaultImpassable
@@ -80,11 +80,11 @@
sprite: Mobs/Animals/chicken.rsi sprite: Mobs/Animals/chicken.rsi
- type: Physics - type: Physics
bodyType: Dynamic bodyType: Dynamic
mass: 20
fixtures: fixtures:
- shape: - shape:
!type:PhysShapeAabb !type:PhysShapeAabb
bounds: "-0.45,-0.20,0.10,0.20" bounds: "-0.45,-0.20,0.10,0.20"
mass: 20
mask: mask:
- Impassable - Impassable
- VaultImpassable - VaultImpassable
@@ -114,11 +114,11 @@
sprite: Mobs/Animals/butterfly.rsi sprite: Mobs/Animals/butterfly.rsi
- type: Physics - type: Physics
bodyType: Dynamic bodyType: Dynamic
mass: 5
fixtures: fixtures:
- shape: - shape:
!type:PhysShapeAabb !type:PhysShapeAabb
bounds: "-0.20,-0.20,0.20,0.20" bounds: "-0.20,-0.20,0.20,0.20"
mass: 5
mask: mask:
- Impassable - Impassable
- VaultImpassable - VaultImpassable
@@ -158,11 +158,11 @@
sprite: Mobs/Animals/bat.rsi sprite: Mobs/Animals/bat.rsi
- type: Physics - type: Physics
bodyType: Dynamic bodyType: Dynamic
mass: 5
fixtures: fixtures:
- shape: - shape:
!type:PhysShapeAabb !type:PhysShapeAabb
bounds: "-0.20,-0.20,0.20,0.20" bounds: "-0.20,-0.20,0.20,0.20"
mass: 5
mask: mask:
- Impassable - Impassable
- VaultImpassable - VaultImpassable
@@ -193,11 +193,11 @@
sprite: Mobs/Animals/bee.rsi sprite: Mobs/Animals/bee.rsi
- type: Physics - type: Physics
bodyType: Dynamic bodyType: Dynamic
mass: 5
fixtures: fixtures:
- shape: - shape:
!type:PhysShapeAabb !type:PhysShapeAabb
bounds: "-0.10,-0.10,0.10,0.10" bounds: "-0.10,-0.10,0.10,0.10"
mass: 5
mask: mask:
- Impassable - Impassable
- VaultImpassable - VaultImpassable
@@ -224,11 +224,11 @@
sprite: Mobs/Animals/goat.rsi sprite: Mobs/Animals/goat.rsi
- type: Physics - type: Physics
bodyType: Dynamic bodyType: Dynamic
mass: 20
fixtures: fixtures:
- shape: - shape:
!type:PhysShapeAabb !type:PhysShapeAabb
bounds: "-0.60,-0.50,0.05,0.50" bounds: "-0.60,-0.50,0.05,0.50"
mass: 20
mask: mask:
- Impassable - Impassable
- VaultImpassable - VaultImpassable
@@ -256,11 +256,11 @@
sprite: Mobs/Animals/goose.rsi sprite: Mobs/Animals/goose.rsi
- type: Physics - type: Physics
bodyType: Dynamic bodyType: Dynamic
mass: 20
fixtures: fixtures:
- shape: - shape:
!type:PhysShapeAabb !type:PhysShapeAabb
bounds: "-0.45,-0.35,0.45,0.35" bounds: "-0.45,-0.35,0.45,0.35"
mass: 20
mask: mask:
- Impassable - Impassable
- VaultImpassable - VaultImpassable
@@ -291,11 +291,11 @@
sprite: Mobs/Animals/parrot.rsi sprite: Mobs/Animals/parrot.rsi
- type: Physics - type: Physics
bodyType: Dynamic bodyType: Dynamic
mass: 20
fixtures: fixtures:
- shape: - shape:
!type:PhysShapeAabb !type:PhysShapeAabb
bounds: "-0.30,-0.35,0.35,0.35" bounds: "-0.30,-0.35,0.35,0.35"
mass: 20
mask: mask:
- Impassable - Impassable
- VaultImpassable - VaultImpassable
@@ -322,11 +322,11 @@
sprite: Mobs/Animals/snake.rsi sprite: Mobs/Animals/snake.rsi
- type: Physics - type: Physics
bodyType: Dynamic bodyType: Dynamic
mass: 10
fixtures: fixtures:
- shape: - shape:
!type:PhysShapeAabb !type:PhysShapeAabb
bounds: "-0.30,-0.30,0.25,0.30" bounds: "-0.30,-0.30,0.25,0.30"
mass: 10
mask: mask:
- Impassable - Impassable
- VaultImpassable - VaultImpassable
@@ -356,11 +356,11 @@
sprite: Mobs/Animals/spider.rsi sprite: Mobs/Animals/spider.rsi
- type: Physics - type: Physics
bodyType: Dynamic bodyType: Dynamic
mass: 10
fixtures: fixtures:
- shape: - shape:
!type:PhysShapeAabb !type:PhysShapeAabb
bounds: "-0.30,-0.40,0.45,0.40" bounds: "-0.30,-0.40,0.45,0.40"
mass: 10
mask: mask:
- Impassable - Impassable
- VaultImpassable - VaultImpassable
@@ -387,11 +387,11 @@
sprite: Mobs/Animals/crab.rsi sprite: Mobs/Animals/crab.rsi
- type: Physics - type: Physics
bodyType: Dynamic bodyType: Dynamic
mass: 10
fixtures: fixtures:
- shape: - shape:
!type:PhysShapeAabb !type:PhysShapeAabb
bounds: "-0.40,-0.35,0.20,0.35" bounds: "-0.40,-0.35,0.20,0.35"
mass: 10
mask: mask:
- Impassable - Impassable
- VaultImpassable - VaultImpassable
@@ -418,11 +418,11 @@
sprite: Mobs/Animals/penguin.rsi sprite: Mobs/Animals/penguin.rsi
- type: Physics - type: Physics
bodyType: Dynamic bodyType: Dynamic
mass: 10
fixtures: fixtures:
- shape: - shape:
!type:PhysShapeAabb !type:PhysShapeAabb
bounds: "-0.50,-0.30,0.35,0.30" bounds: "-0.50,-0.30,0.35,0.30"
mass: 10
mask: mask:
- Impassable - Impassable
- VaultImpassable - VaultImpassable
@@ -463,11 +463,11 @@
- Helmet - Helmet
- type: Physics - type: Physics
bodyType: KinematicController bodyType: KinematicController
mass: 10
fixtures: fixtures:
- shape: - shape:
!type:PhysShapeAabb !type:PhysShapeAabb
bounds: "-0.50,-0.30,0.35,0.30" bounds: "-0.50,-0.30,0.35,0.30"
mass: 10
mask: mask:
- Impassable - Impassable
- VaultImpassable - VaultImpassable

View File

@@ -19,15 +19,14 @@
sprite: Mobs/Aliens/Carps/space.rsi sprite: Mobs/Aliens/Carps/space.rsi
- type: Physics - type: Physics
bodyType: Dynamic bodyType: Dynamic
mass: 50
fixtures: fixtures:
- shape: - shape:
!type:PhysShapeAabb !type:PhysShapeAabb
bounds: "-0.35,-0.35,0.35,0.35" bounds: "-0.35,-0.35,0.35,0.35"
mass: 50
mask: mask:
- Impassable - Impassable
- MobImpassable - MobImpassable
- VaultImpassable
- SmallImpassable - SmallImpassable
layer: layer:
- Opaque - Opaque
@@ -55,8 +54,6 @@
- map: ["enum.DamageStateVisualLayers.Base"] - map: ["enum.DamageStateVisualLayers.Base"]
state: alive state: alive
sprite: Mobs/Aliens/Carps/magic.rsi sprite: Mobs/Aliens/Carps/magic.rsi
- type: Physics
mass: 60
- type: entity - type: entity
name: holocarp name: holocarp
@@ -71,4 +68,15 @@
state: alive state: alive
sprite: Mobs/Aliens/Carps/holo.rsi sprite: Mobs/Aliens/Carps/holo.rsi
- type: Physics - type: Physics
bodyType: Dynamic
fixtures:
- shape:
!type:PhysShapeAabb
bounds: "-0.35,-0.35,0.35,0.35"
mass: 5 mass: 5
mask:
- Impassable
- MobImpassable
- SmallImpassable
layer:
- Opaque

View File

@@ -23,11 +23,11 @@
state: normal state: normal
- type: Physics - type: Physics
bodyType: Dynamic bodyType: Dynamic
mass: 85
fixtures: fixtures:
- shape: - shape:
!type:PhysShapeAabb !type:PhysShapeAabb
bounds: "-0.35,-0.35,0.35,0.35" bounds: "-0.35,-0.35,0.35,0.35"
mass: 100
mask: mask:
- Impassable - Impassable
- MobImpassable - MobImpassable

View File

@@ -14,11 +14,11 @@
- map: ["enum.DamageStateVisualLayers.Base"] - map: ["enum.DamageStateVisualLayers.Base"]
state: corgi state: corgi
- type: Physics - type: Physics
mass: 10
fixtures: fixtures:
- shape: - shape:
!type:PhysShapeAabb !type:PhysShapeAabb
bounds: "-0.50,-0.25,0.30,0.25" bounds: "-0.50,-0.25,0.30,0.25"
mass: 10
mask: mask:
- Impassable - Impassable
- VaultImpassable - VaultImpassable
@@ -62,11 +62,11 @@
- map: ["enum.DamageStateVisualLayers.Base"] - map: ["enum.DamageStateVisualLayers.Base"]
state: cat state: cat
- type: Physics - type: Physics
mass: 10
fixtures: fixtures:
- shape: - shape:
!type:PhysShapeAabb !type:PhysShapeAabb
bounds: "-0.45,-0.20,0.30,0.20" bounds: "-0.45,-0.20,0.30,0.20"
mass: 10
mask: mask:
- Impassable - Impassable
- VaultImpassable - VaultImpassable
@@ -131,11 +131,11 @@
- map: ["enum.DamageStateVisualLayers.Base"] - map: ["enum.DamageStateVisualLayers.Base"]
state: sloth state: sloth
- type: Physics - type: Physics
mass: 10
fixtures: fixtures:
- shape: - shape:
!type:PhysShapeAabb !type:PhysShapeAabb
bounds: "-0.45,-0.35,0.15,0.35" bounds: "-0.45,-0.35,0.15,0.35"
mass: 10
mask: mask:
- Impassable - Impassable
- VaultImpassable - VaultImpassable

View File

@@ -45,10 +45,10 @@
- type: InteractionOutline - type: InteractionOutline
- type: Physics - type: Physics
bodyType: Dynamic bodyType: Dynamic
mass: 50
fixtures: fixtures:
- shape: - shape:
!type:PhysShapeAabb {} !type:PhysShapeAabb {}
mass: 50
mask: mask:
- Impassable - Impassable
# - MobImpassable Turns these off for now since humans don't have collisions either. # - MobImpassable Turns these off for now since humans don't have collisions either.

View File

@@ -21,11 +21,11 @@
sprite: Mobs/Aliens/Xenos/xeno.rsi sprite: Mobs/Aliens/Xenos/xeno.rsi
- type: Physics - type: Physics
bodyType: Dynamic bodyType: Dynamic
mass: 85
fixtures: fixtures:
- shape: - shape:
!type:PhysShapeAabb !type:PhysShapeAabb
bounds: "-1,-0.4,-0.2,0.4" bounds: "-1,-0.4,-0.2,0.4"
mass: 85
mask: mask:
- Impassable - Impassable
- MobImpassable - MobImpassable

View File

@@ -8,12 +8,12 @@
- type: PlayerInputMover - type: PlayerInputMover
- type: Physics - type: Physics
bodyType: Kinematic bodyType: Kinematic
mass: 5
# TODO: Even need these? Don't think so but CBF checking right now. # TODO: Even need these? Don't think so but CBF checking right now.
fixtures: fixtures:
- shape: - shape:
!type:PhysShapeAabb !type:PhysShapeAabb
bounds: "-0.35,-0.35,0.35,0.35" bounds: "-0.35,-0.35,0.35,0.35"
mass: 5
mask: mask:
- GhostImpassable - GhostImpassable
status: InAir status: InAir

View File

@@ -10,11 +10,11 @@
- type: InteractionOutline - type: InteractionOutline
- type: Physics - type: Physics
bodyType: KinematicController bodyType: KinematicController
mass: 5
fixtures: fixtures:
- shape: - shape:
!type:PhysShapeAabb !type:PhysShapeAabb
bounds: "-0.35,-0.35,0.35,0.35" bounds: "-0.35,-0.35,0.35,0.35"
mass: 5
mask: mask:
- GhostImpassable - GhostImpassable
status: InAir status: InAir

View File

@@ -135,11 +135,11 @@
- map: [ "enum.Slots.HEAD" ] - map: [ "enum.Slots.HEAD" ]
- type: Physics - type: Physics
bodyType: KinematicController bodyType: KinematicController
mass: 70
fixtures: # TODO: This needs a second fixture just for mob collisions. fixtures: # TODO: This needs a second fixture just for mob collisions.
- shape: - shape:
!type:PhysShapeCircle !type:PhysShapeCircle
radius: 0.35 radius: 0.35
mass: 70
restitution: 0.0 restitution: 0.0
mask: mask:
- Impassable - Impassable
@@ -319,11 +319,12 @@
- map: ["hand-right"] - map: ["hand-right"]
- type: Physics - type: Physics
bodyType: Dynamic bodyType: Dynamic
mass: 85
fixtures: fixtures:
- shape: - shape:
!type:PhysShapeAabb !type:PhysShapeAabb
bounds: "-0.35,-0.35,0.35,0.35" bounds: "-0.35,-0.35,0.35,0.35"
mass: 70
restitution: 0.0
mask: mask:
- Impassable - Impassable
- MobImpassable - MobImpassable

View File

@@ -115,11 +115,11 @@
- map: [ "enum.Slots.HEAD" ] - map: [ "enum.Slots.HEAD" ]
- type: Physics - type: Physics
bodyType: Dynamic bodyType: Dynamic
mass: 85
fixtures: fixtures:
- shape: - shape:
!type:PhysShapeAabb !type:PhysShapeAabb
bounds: "-0.35,-0.35,0.35,0.35" bounds: "-0.35,-0.35,0.35,0.35"
mass: 85
mask: mask:
- Impassable - Impassable
- MobImpassable - MobImpassable

View File

@@ -186,11 +186,11 @@
enabled: false enabled: false
- type: Physics - type: Physics
bodyType: KinematicController bodyType: KinematicController
mass: 5
fixtures: # TODO: Make a second fixture. One should be for slipping, and the other for collisions. fixtures: # TODO: Make a second fixture. One should be for slipping, and the other for collisions.
- shape: - shape:
!type:PhysShapeAabb !type:PhysShapeAabb
bounds: "-0.2,-0.2,0.2,0.2" bounds: "-0.2,-0.2,0.2,0.2"
mass: 5
layer: layer:
- SmallImpassable - SmallImpassable
mask: mask:

View File

@@ -89,11 +89,11 @@
enabled: false enabled: false
- type: Physics - type: Physics
bodyType: KinematicController bodyType: KinematicController
mass: 2.5
fixtures: # TODO: Make a second fixture. fixtures: # TODO: Make a second fixture.
- shape: - shape:
!type:PhysShapeAabb !type:PhysShapeAabb
bounds: "-0.3,-0.4,0.3,0.4" bounds: "-0.3,-0.4,0.3,0.4"
mass: 2.5
hard: false hard: false
layer: layer:
- SmallImpassable - SmallImpassable

View File

@@ -322,11 +322,11 @@
- type: Clickable - type: Clickable
- type: InteractionOutline - type: InteractionOutline
- type: Physics - type: Physics
mass: 5
fixtures: fixtures:
- shape: - shape:
!type:PhysShapeAabb !type:PhysShapeAabb
bounds: "-0.25,-0.25,0.25,0.25" bounds: "-0.25,-0.25,0.25,0.25"
mass: 5
mask: [Impassable] mask: [Impassable]
layer: [Clickable] layer: [Clickable]
@@ -351,11 +351,11 @@
- type: Clickable - type: Clickable
- type: InteractionOutline - type: InteractionOutline
- type: Physics - type: Physics
mass: 5
fixtures: fixtures:
- shape: - shape:
!type:PhysShapeAabb !type:PhysShapeAabb
bounds: "-0.25,-0.25,0.25,0.25" bounds: "-0.25,-0.25,0.25,0.25"
mass: 5
mask: [Impassable] mask: [Impassable]
layer: [Clickable] layer: [Clickable]
@@ -379,10 +379,10 @@
- type: Clickable - type: Clickable
- type: InteractionOutline - type: InteractionOutline
- type: Physics - type: Physics
mass: 5
fixtures: fixtures:
- shape: - shape:
!type:PhysShapeAabb !type:PhysShapeAabb
bounds: "-0.25,-0.25,0.25,0.25" bounds: "-0.25,-0.25,0.25,0.25"
mass: 5
mask: [Impassable] mask: [Impassable]
layer: [Clickable] layer: [Clickable]

View File

@@ -19,12 +19,12 @@
- type: InteractionOutline - type: InteractionOutline
- type: MovedByPressure - type: MovedByPressure
- type: Physics - type: Physics
mass: 5
bodyType: Dynamic bodyType: Dynamic
fixtures: fixtures:
- shape: - shape:
!type:PhysShapeAabb !type:PhysShapeAabb
bounds: "-0.45,-0.5,0.1,0.5" bounds: "-0.45,-0.5,0.1,0.5"
mass: 5
layer: layer:
- Clickable - Clickable
- type: BodyBagEntityStorage - type: BodyBagEntityStorage
@@ -73,12 +73,12 @@
- type: Clickable - type: Clickable
- type: InteractionOutline - type: InteractionOutline
- type: Physics - type: Physics
mass: 25
bodyType: Static bodyType: Static
fixtures: fixtures:
- shape: - shape:
!type:PhysShapeAabb !type:PhysShapeAabb
bounds: "-0.5, -0.5, 0.5, 0.5" bounds: "-0.5, -0.5, 0.5, 0.5"
mass: 25
mask: mask:
- Impassable - Impassable
- MobImpassable - MobImpassable
@@ -119,12 +119,12 @@
- type: Clickable - type: Clickable
- type: InteractionOutline - type: InteractionOutline
- type: Physics - type: Physics
mass: 15
bodyType: Static bodyType: Static
fixtures: fixtures:
- shape: - shape:
!type:PhysShapeAabb !type:PhysShapeAabb
bounds: "-0.5, -0.5, 0.5, 0.5" bounds: "-0.5, -0.5, 0.5, 0.5"
mass: 15
layer: layer:
- Clickable - Clickable
- type: MorgueTray - type: MorgueTray
@@ -148,12 +148,12 @@
- type: Clickable - type: Clickable
- type: InteractionOutline - type: InteractionOutline
- type: Physics - type: Physics
mass: 25
bodyType: Static bodyType: Static
fixtures: fixtures:
- shape: - shape:
!type:PhysShapeAabb !type:PhysShapeAabb
bounds: "-0.5, -0.5, 0.5, 0.5" bounds: "-0.5, -0.5, 0.5, 0.5"
mass: 25
mask: mask:
- Impassable - Impassable
- MobImpassable - MobImpassable

View File

@@ -39,12 +39,12 @@
Quantity: 500 Quantity: 500
- type: Physics - type: Physics
mass: 5
bodyType: Dynamic bodyType: Dynamic
fixtures: fixtures:
- shape: - shape:
!type:PhysShapeAabb !type:PhysShapeAabb
bounds: "-0.40,-0.25,0.25,0.25" bounds: "-0.40,-0.25,0.25,0.25"
mass: 5
mask: mask:
- Impassable - Impassable
- Opaque - Opaque
@@ -70,12 +70,12 @@
- type: SolutionContainer - type: SolutionContainer
maxVol: 500 maxVol: 500
- type: Physics - type: Physics
mass: 5
bodyType: Dynamic bodyType: Dynamic
fixtures: fixtures:
- shape: - shape:
!type:PhysShapeAabb !type:PhysShapeAabb
bounds: "-0.25,-0.25,0.25,0.25" bounds: "-0.25,-0.25,0.25,0.25"
mass: 5
mask: mask:
- Impassable - Impassable
- type: Spillable - type: Spillable
@@ -110,11 +110,11 @@
enabled: false enabled: false
- type: Physics - type: Physics
bodyType: KinematicController bodyType: KinematicController
mass: 2.5
fixtures: # TODO: Make a second fixture. One should be for slipping, and the other for collisions. fixtures: # TODO: Make a second fixture. One should be for slipping, and the other for collisions.
- shape: - shape:
!type:PhysShapeAabb !type:PhysShapeAabb
bounds: "-0.3,-0.4,0.3,0.4" bounds: "-0.3,-0.4,0.3,0.4"
mass: 2.5
layer: layer:
- SmallImpassable - SmallImpassable
mask: mask:

View File

@@ -27,11 +27,11 @@
enabled: false enabled: false
- type: Physics - type: Physics
bodyType: KinematicController bodyType: KinematicController
mass: 2.5
fixtures: # TODO: Make a second fixture. fixtures: # TODO: Make a second fixture.
- shape: - shape:
!type:PhysShapeAabb !type:PhysShapeAabb
bounds: "-0.3,-0.4,0.3,0.4" bounds: "-0.3,-0.4,0.3,0.4"
mass: 2.5
hard: false hard: false
layer: layer:
- SmallImpassable - SmallImpassable
@@ -66,11 +66,11 @@
enabled: false enabled: false
- type: Physics - type: Physics
bodyType: KinematicController bodyType: KinematicController
mass: 2.5
fixtures: # TODO: Make a second fixture. fixtures: # TODO: Make a second fixture.
- shape: - shape:
!type:PhysShapeAabb !type:PhysShapeAabb
bounds: "-0.4,-0.4,0.4,0.4" bounds: "-0.4,-0.4,0.4,0.4"
mass: 2.5
hard: false hard: false
layer: layer:
- SmallImpassable - SmallImpassable

View File

@@ -14,11 +14,12 @@
modifier: 0.5 modifier: 0.5
- type: Physics - type: Physics
bodyType: Dynamic bodyType: Dynamic
mass: 5 fixedRotation: false
fixtures: fixtures:
- shape: - shape:
!type:PhysShapeAabb !type:PhysShapeAabb
bounds: "-0.25,-0.25,0.25,0.25" bounds: "-0.25,-0.25,0.25,0.25"
mass: 5
layer: layer:
- Clickable - Clickable
mask: mask:
@@ -28,4 +29,5 @@
friction: 0.2 friction: 0.2
- type: Sprite - type: Sprite
drawdepth: Items drawdepth: Items
noRot: false
- type: Pullable - type: Pullable