(aee208587) Option to configure multiple sprite variants for a LevelObject, implemented new ice/rock sprites

This commit is contained in:
Joonas Rikkonen
2019-05-16 05:57:58 +03:00
parent 412d46169e
commit 18b6775457
18 changed files with 358 additions and 171 deletions
@@ -25,17 +25,21 @@ namespace Barotrauma
var allLevelObjects = levelObjectManager.GetAllObjects();
foreach (var levelObj in allLevelObjects)
{
if (levelObj.Prefab.Sprite != null &&
!uniqueTextures.Contains(levelObj.Prefab.Sprite.Texture))
foreach (Sprite sprite in levelObj.Prefab.Sprites)
{
uniqueTextures.Add(levelObj.Prefab.Sprite.Texture);
uniqueSprites.Add(levelObj.Prefab.Sprite);
if (!uniqueTextures.Contains(sprite.Texture))
{
uniqueTextures.Add(sprite.Texture);
uniqueSprites.Add(sprite);
}
}
if (levelObj.Prefab.SpecularSprite != null &&
!uniqueTextures.Contains(levelObj.Prefab.SpecularSprite.Texture))
foreach (Sprite specularSprite in levelObj.Prefab.SpecularSprites)
{
uniqueTextures.Add(levelObj.Prefab.SpecularSprite.Texture);
uniqueSprites.Add(levelObj.Prefab.SpecularSprite);
if (!uniqueTextures.Contains(specularSprite.Texture))
{
uniqueTextures.Add(specularSprite.Texture);
uniqueSprites.Add(specularSprite);
}
}
}
@@ -76,8 +76,8 @@ namespace Barotrauma
partial void InitProjSpecific()
{
Prefab.Sprite?.EnsureLazyLoaded();
Prefab.SpecularSprite?.EnsureLazyLoaded();
Sprite?.EnsureLazyLoaded();
SpecularSprite?.EnsureLazyLoaded();
Prefab.DeformableSprite?.EnsureLazyLoaded();
CurrentSwingAmount = Prefab.SwingAmountRad;
@@ -109,7 +109,7 @@ namespace Barotrauma
Vector2 camDiff = new Vector2(obj.Position.X, obj.Position.Y) - cam.WorldViewCenter;
camDiff.Y = -camDiff.Y;
Sprite activeSprite = specular ? obj.ActivePrefab.SpecularSprite : obj.ActivePrefab.Sprite;
Sprite activeSprite = specular ? obj.SpecularSprite : obj.Sprite;
activeSprite?.Draw(
spriteBatch,
new Vector2(obj.Position.X, -obj.Position.Y) - camDiff * obj.Position.Z / 10000.0f,