Skip to content

Commit 5aa94f2

Browse files
committed
Merge branch 'dev'
2 parents ea39c26 + eeff357 commit 5aa94f2

27 files changed

Lines changed: 587 additions & 279 deletions

LevelImposter/Assets/Assets

0 Bytes
Binary file not shown.
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
ManifestFileVersion: 0
2-
CRC: 2067836792
2+
CRC: 97968246
33
AssetBundleManifest:
44
AssetBundleInfos:
55
Info_0:
66
Name: defaultthumbnail
77
Dependencies: {}
88
Info_1:
9-
Name: shop
9+
Name: loadingbar
1010
Dependencies: {}
1111
Info_2:
12-
Name: loadingbar
12+
Name: shop
1313
Dependencies: {}

LevelImposter/Assets/shop

1.91 KB
Binary file not shown.

LevelImposter/Assets/shop.manifest

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
ManifestFileVersion: 0
2-
CRC: 138277138
2+
CRC: 1016640809
33
Hashes:
44
AssetFileHash:
55
serializedVersion: 2
6-
Hash: b26ddd933db5cb93c0a3cc1b11575ad7
6+
Hash: a3fc612b67e4430fd1ac68afdb9a291a
77
TypeTreeHash:
88
serializedVersion: 2
99
Hash: afd525e58be886efe4d69cac465cee90

LevelImposter/Builders/Minimap/AdminMapBuilder.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ public void OnBuild(LIElement elem, GameObject obj)
2222
return;
2323

2424
// ShipStatus
25-
var shipStatus = LIShipStatus.GetInstance().ShipStatus;
25+
var shipStatus = LIShipStatus.GetShip();
2626

2727
var mapBehaviour = MinimapBuilder.GetMinimap();
2828
var mapCountOverlay = mapBehaviour.countOverlay;

LevelImposter/Builders/Minimap/MinimapBuilder.cs

Lines changed: 8 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,13 @@ public class MinimapBuilder : IElemBuilder
99

1010
private bool _isBuilt;
1111

12-
public void OnBuild(LIElement elem, GameObject obj)
12+
public void OnPreBuild(LIElement elem, GameObject obj)
1313
{
1414
if (elem.type != "util-minimap")
1515
return;
1616

1717
// ShipStatus
18-
var shipStatus = LIShipStatus.GetInstance().ShipStatus;
18+
var shipStatus = LIShipStatus.GetShip();
1919

2020
// Check Singleton
2121
if (_isBuilt)
@@ -28,33 +28,23 @@ public void OnBuild(LIElement elem, GameObject obj)
2828
var mapBehaviour = GetMinimap();
2929

3030
// Map Scale
31-
var mapScaleVal = elem.properties.minimapScale == null ? 1 : (float)elem.properties.minimapScale;
32-
var mapScale = mapScaleVal * DEFAULT_SCALE;
33-
shipStatus.MapScale = mapScale;
34-
var mapOffset = -(obj.transform.localPosition / mapScale);
35-
36-
// Sprite Renderer
37-
var spriteRenderer = obj.GetComponent<SpriteRenderer>();
38-
if (spriteRenderer == null)
39-
{
40-
LILogger.Warn("Minimap object has no sprite attached");
41-
return;
42-
}
31+
var mapScaleVal = elem.properties.minimapScale ?? 1;
32+
shipStatus.MapScale = mapScaleVal * DEFAULT_SCALE;
33+
var mapOffset = -(obj.transform.localPosition / shipStatus.MapScale);
4334

4435
// Background
4536
var background = mapBehaviour.ColorControl.gameObject;
4637
var bgRenderer = background.GetComponent<SpriteRenderer>();
4738
background.transform.localPosition = background.transform.localPosition;
48-
background.transform.localScale = obj.transform.localScale / mapScale;
39+
background.transform.localScale = obj.transform.localScale / shipStatus.MapScale;
4940
background.transform.localRotation = obj.transform.localRotation;
5041

5142
// Load Sprite
52-
SpriteBuilder.OnSpriteLoad += (loadedElem, _) =>
43+
SpriteBuilder.OnSpriteLoad += (loadedElem, loadedSprite) =>
5344
{
5445
if (loadedElem.id != elem.id || bgRenderer == null)
5546
return;
56-
bgRenderer.sprite = spriteRenderer.sprite;
57-
bgRenderer.color = spriteRenderer.color;
47+
bgRenderer.sprite = loadedSprite.Sprite;
5848
Object.Destroy(obj);
5949
};
6050

LevelImposter/Builders/Minimap/MinimapSpriteBuilder.cs

Lines changed: 4 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ public void OnBuild(LIElement elem, GameObject obj)
1818
return;
1919

2020
// ShipStatus
21-
var shipStatus = LIShipStatus.GetInstance().ShipStatus;
21+
var shipStatus = LIShipStatus.GetShip();
2222

2323
// Minimap
2424
var mapBehaviour = MinimapBuilder.GetMinimap();
@@ -31,34 +31,12 @@ public void OnBuild(LIElement elem, GameObject obj)
3131

3232
// GameObject
3333
var mapScale = shipStatus.MapScale;
34-
GameObject spriteObj = new(elem.name);
35-
spriteObj.layer = (int)Layer.UI;
36-
spriteObj.transform.SetParent(parentTransform);
37-
spriteObj.transform.localPosition = new Vector3(
34+
obj.layer = (int)Layer.UI;
35+
obj.transform.SetParent(parentTransform, false);
36+
obj.transform.localPosition = new Vector3(
3837
elem.x / mapScale,
3938
elem.y / mapScale,
4039
elem.z
4140
);
42-
spriteObj.transform.localScale = new Vector3(elem.xScale, elem.yScale, 1);
43-
spriteObj.transform.localRotation = Quaternion.Euler(0, 0, elem.rotation);
44-
45-
// Sprite Renderer
46-
var spriteRenderer = obj.GetComponent<SpriteRenderer>();
47-
if (spriteRenderer == null)
48-
{
49-
LILogger.Warn("util-minimapsprite does not have a sprite attatched");
50-
return;
51-
}
52-
53-
// Load Sprite
54-
var bgRenderer = spriteObj.AddComponent<SpriteRenderer>();
55-
SpriteBuilder.OnSpriteLoad += (loadedElem, _) =>
56-
{
57-
if (loadedElem.id != elem.id || bgRenderer == null)
58-
return;
59-
bgRenderer.sprite = spriteRenderer.sprite;
60-
bgRenderer.color = spriteRenderer.color;
61-
Object.Destroy(obj);
62-
};
6341
}
6442
}

LevelImposter/Builders/Minimap/RoomNameBuilder.cs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,9 @@ public void OnBuild(LIElement elem, GameObject obj)
1919
return;
2020

2121
// ShipStatus
22-
var shipStatus = LIShipStatus.GetInstanceOrNull()?.ShipStatus;
23-
if (shipStatus == null)
24-
throw new MissingShipException();
22+
var shipStatus = LIShipStatus.GetShip();
2523

24+
// Minimap
2625
var mapBehaviour = MinimapBuilder.GetMinimap();
2726

2827
// Clone

LevelImposter/Builders/Util/EjectDummyBuilder.cs

Lines changed: 25 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,20 +9,34 @@ namespace LevelImposter.Builders;
99

1010
public class EjectDummyBuilder : IElemBuilder
1111
{
12+
public enum PlayerDummyType
13+
{
14+
Floating,
15+
Standing
16+
}
17+
1218
public EjectDummyBuilder()
1319
{
14-
PoolablePlayers.Clear();
20+
PlayerDummies.Clear();
1521
}
1622

17-
public static List<PoolablePlayer> PoolablePlayers { get; } = new();
23+
public static List<PlayerDummy> PlayerDummies { get; } = new();
1824

1925
public void OnBuild(LIElement elem, GameObject obj)
2026
{
21-
if (elem.type != "util-ejectdummy")
27+
if (!elem.type.StartsWith("util-ejectdummy"))
2228
return;
2329

30+
// Get Type
31+
var type = elem.type switch
32+
{
33+
"util-ejectdummy" => PlayerDummyType.Floating,
34+
"util-ejectdummy2" => PlayerDummyType.Standing,
35+
_ => throw new ArgumentOutOfRangeException()
36+
};
37+
2438
// Get Eject Controller Prefab
25-
var skeldPrefab = AssetDB.GetObject("ss-skeld");
39+
var skeldPrefab = AssetDB.GetObject(type == PlayerDummyType.Floating ? "ss-skeld" : "ss-fungle");
2640
var skeldShipStatus = skeldPrefab?.GetComponent<ShipStatus>();
2741
var skeldEjectController = skeldShipStatus?.ExileCutscenePrefab;
2842
if (!skeldEjectController)
@@ -47,7 +61,7 @@ public void OnBuild(LIElement elem, GameObject obj)
4761
player.gameObject.SetLayerOfChildren((int)Layer.Ship);
4862

4963
// Add to PoolablePlayers
50-
PoolablePlayers.Add(player);
64+
PlayerDummies.Add(new PlayerDummy(player, type));
5165

5266
// Update Cosmetics on Sprite Load
5367
var spriteRenderer = obj.GetComponent<SpriteRenderer>();
@@ -62,4 +76,10 @@ public void OnBuild(LIElement elem, GameObject obj)
6276
// Hide Object By Default
6377
player.gameObject.SetActive(false);
6478
}
79+
80+
public readonly struct PlayerDummy(PoolablePlayer _poolablePlayer, PlayerDummyType _type)
81+
{
82+
public PoolablePlayer PoolablePlayer => _poolablePlayer;
83+
public PlayerDummyType Type => _type;
84+
}
6585
}

LevelImposter/Builders/Util/PhysicsObjectBuilder.cs

Lines changed: 45 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,20 +5,57 @@ namespace LevelImposter.Builders;
55

66
internal class PhysicsObjectBuilder : IElemBuilder
77
{
8+
private bool _isCameraFixed;
9+
810
public void OnBuild(LIElement elem, GameObject obj)
911
{
10-
/*
1112
if (elem.type != "util-physics")
1213
return;
1314

14-
Rigidbody2D rb = obj.AddComponent<Rigidbody2D>();
15-
rb.mass = elem.properties.mass ?? 10.0f;
16-
rb.drag = elem.properties.drag ?? 100.0f;
17-
rb.freezeRotation = elem.properties.freezeRotation ?? true;
15+
// Add Rigidbody2D
16+
var rb = obj.AddComponent<Rigidbody2D>();
17+
rb.mass = elem.properties.physicsMass ?? 10.0f;
18+
rb.drag = elem.properties.physicsDrag ?? 100.0f;
19+
rb.angularDrag = elem.properties.physicsAngularDrag ?? 100.0f;
20+
rb.freezeRotation = elem.properties.physicsFreezeRotation ?? false;
1821
rb.gravityScale = 0;
1922

20-
obj.layer = (int)Layer.Default;
21-
*/
22-
// TODO: Sync physics objects over network
23+
// Add Constraints
24+
var constraints = RigidbodyConstraints2D.None;
25+
if (elem.properties.physicsFreezeX ?? false)
26+
constraints |= RigidbodyConstraints2D.FreezePositionX;
27+
if (elem.properties.physicsFreezeY ?? false)
28+
constraints |= RigidbodyConstraints2D.FreezePositionY;
29+
rb.constraints = constraints;
30+
31+
// Create Physics Material
32+
var physicsMaterial = new PhysicsMaterial2D
33+
{
34+
bounciness = elem.properties.physicsBounciness ?? 0.6f,
35+
friction = elem.properties.physicsFriction ?? 0.6f
36+
};
37+
rb.sharedMaterial = physicsMaterial;
38+
39+
// Set Layer
40+
obj.layer = (int)Layer.Physics;
41+
42+
// Add Physics Object Component
43+
obj.AddComponent<LIPhysicsObject>();
44+
45+
// Fix Camera
46+
if (_isCameraFixed)
47+
return;
48+
49+
// Fix Camera to render physics objects
50+
var camera = Camera.main;
51+
if (camera != null)
52+
camera.cullingMask |= 1 << (int)Layer.Physics;
53+
54+
// Fix Shadow camera to render physics objects
55+
var shadowCamera = camera?.transform.Find("ShadowCamera")?.GetComponent<Camera>();
56+
if (shadowCamera != null)
57+
shadowCamera.cullingMask |= 1 << (int)Layer.Physics;
58+
59+
_isCameraFixed = true;
2360
}
2461
}

0 commit comments

Comments
 (0)