Final touches I think, ready to pr maybe

This commit is contained in:
Firerise9402 2023-08-19 12:32:21 -04:00
parent 4ff3ba8dfc
commit 9b5cf2cda6
3 changed files with 60 additions and 52 deletions

View file

@ -13806,6 +13806,10 @@ PrefabInstance:
propertyPath: canvasObj
value:
objectReference: {fileID: 1638236449}
- target: {fileID: 4035854539513523048, guid: 720073bc7682b1441bece7116681f72c, type: 3}
propertyPath: parentView
value:
objectReference: {fileID: 1112762038}
- target: {fileID: 4035854539513523048, guid: 720073bc7682b1441bece7116681f72c, type: 3}
propertyPath: letterboxMask
value:
@ -23634,6 +23638,11 @@ RectTransform:
m_AnchoredPosition: {x: -408.97968, y: -17}
m_SizeDelta: {x: -817.96, y: -46.29}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!224 &1112762038 stripped
RectTransform:
m_CorrespondingSourceObject: {fileID: 2077856143944097172, guid: 720073bc7682b1441bece7116681f72c, type: 3}
m_PrefabInstance: {fileID: 631525709}
m_PrefabAsset: {fileID: 0}
--- !u!1 &1121370303
GameObject:
m_ObjectHideFlags: 0

View file

@ -715,29 +715,28 @@ namespace HeavenStudio
),
new GameAction("scale letterbox", "Scale Letterbox", 1f, true, new List<Param>()
{
new Param("valA", new EntityTypes.Float(0, 200, 100), "Scale Letterbox X"),
new Param("valB", new EntityTypes.Float(0, 200, 100), "Scale Letterbox Y"),
new Param("valA", new EntityTypes.Integer(0, 200, 100), "Scale Letterbox X"),
new Param("valB", new EntityTypes.Integer(0, 200, 100), "Scale Letterbox Y"),
new Param("ease", Util.EasingFunction.Ease.Linear, "Ease Type"),
new Param("axis", StaticCamera.ViewAxis.All, "Axis", "The axis to scale the letterbox in")
}
),
new GameAction("complex pan", "Pan Viewport(Complex)", 1f, true, new List<Param>()
new GameAction("tile screen", "Tile Screen", 1f, true, new List<Param>()
{
new Param("valA", new EntityTypes.Float(-50, 50, 1), "Pan Viewport X"),
new Param("valB", new EntityTypes.Float(-50, 50, 1), "Pan Viewport Y"),
new Param("valA", new EntityTypes.Float(1, 50, 1), "Tile Screen X"),
new Param("valB", new EntityTypes.Float(1, 50, 1), "Tile Screen Y"),
new Param("ease", Util.EasingFunction.Ease.Linear, "Ease Type"),
new Param("axis", StaticCamera.ViewAxis.All, "Axis", "The axis to pan the viewport in")
new Param("axis", StaticCamera.ViewAxis.All, "Axis", "The axis to tile the screen in")
}
),
new GameAction("complex scale", "Scale Viewport(Complex)", 1f, true, new List<Param>()
new GameAction("pan tiles", "Pan Tiles", 1f, true, new List<Param>()
{
new Param("valA", new EntityTypes.Float(0, 200, 100), "Scale Viewport X"),
new Param("valB", new EntityTypes.Float(0, 200, 100), "Scale Viewport Y"),
new Param("valA", new EntityTypes.Float(-50, 50, 1), "Pan Tiles X"),
new Param("valB", new EntityTypes.Float(-50, 50, 1), "Pan Tiles Y"),
new Param("ease", Util.EasingFunction.Ease.Linear, "Ease Type"),
new Param("axis", StaticCamera.ViewAxis.All, "Axis", "The axis to scale the viewport in")
new Param("axis", StaticCamera.ViewAxis.All, "Axis", "The axis to pan the tiles in")
}
),
new GameAction("display textbox", "Display Textbox", 1f, true, new List<Param>()
{
new Param("text1", "", "Text", "The text to display in the textbox (Rich Text is supported!)"),

View file

@ -41,15 +41,15 @@ namespace HeavenStudio
private List<RiqEntity> scaleEvents = new();
private List<RiqEntity> rotationEvents = new();
private List<RiqEntity> letterboxEvents = new();
private List<RiqEntity> complexPanEvents = new();
private List<RiqEntity> complexScaleEvents = new();
private List<RiqEntity> panTileEvents = new();
private List<RiqEntity> tileScreenEvents = new();
static Vector3 defaultPan = new Vector3(0, 0, 0);
static Vector3 defaultScale = new Vector3(1, 1, 1);
static float defaultRotation = 0;
static Vector3 defaultLetterbox = new Vector3(1, 1, 1);
static Vector3 defaultComplexPan = new Vector3(0, 0, 0);
static Vector3 defaultComplexScale = new Vector3(1, 1, 1);
static Vector3 defaultTilePan = new Vector3(0, 0, 0);
static Vector3 defaultScreenTile = new Vector3(1, 1, 1);
private static Vector3 pan;
private static Vector3 scale;
@ -57,15 +57,15 @@ namespace HeavenStudio
private static Vector3 letterbox;
private static Vector3 panInv;
private static Vector3 scaleInv;
private static Vector3 complexPan;
private static Vector3 complexScale;
private static Vector3 tilePan;
private static Vector3 screenTile;
private static Vector3 panLast;
private static Vector3 scaleLast;
private static float rotationLast;
private static Vector3 letterboxLast;
private static Vector3 complexPanLast;
private static Vector3 complexScaleLast;
private static Vector3 tilePanLast;
private static Vector3 screenTileLast;
private void Awake()
{
@ -84,8 +84,8 @@ namespace HeavenStudio
letterboxLast = defaultLetterbox;
scaleLast = defaultScale;
rotationLast = defaultRotation;
complexPanLast = defaultComplexPan;
complexScaleLast = defaultComplexScale;
tilePanLast = defaultTilePan;
screenTileLast = defaultScreenTile;
ToggleLetterboxBg(PersistentDataManager.gameSettings.letterboxBgEnable);
ToggleLetterboxGlow(PersistentDataManager.gameSettings.letterboxFxEnable);
@ -99,22 +99,22 @@ namespace HeavenStudio
scaleEvents = EventCaller.GetAllInGameManagerList("vfx", new string[] { "scale view" });
rotationEvents = EventCaller.GetAllInGameManagerList("vfx", new string[] { "rotate view" });
letterboxEvents = EventCaller.GetAllInGameManagerList("vfx", new string[] { "scale letterbox" });
complexPanEvents = EventCaller.GetAllInGameManagerList("vfx", new string[] { "complex pan"});
complexScaleEvents = EventCaller.GetAllInGameManagerList("vfx", new string[] { "complex scale" });
panTileEvents = EventCaller.GetAllInGameManagerList("vfx", new string[] { "pan tiles"});
tileScreenEvents = EventCaller.GetAllInGameManagerList("vfx", new string[] { "tile screen" });
panLast = defaultPan;
letterboxLast = defaultLetterbox;
scaleLast = defaultScale;
rotationLast = defaultRotation;
complexPanLast = defaultComplexPan;
complexScaleLast = defaultComplexScale;
tilePanLast = defaultTilePan;
screenTileLast = defaultScreenTile;
UpdatePan();
UpdateRotation();
UpdateScale();
UpdateLetterbox();
UpdateComplexPan();
UpdatecomplexScale();
UpdateTilePan();
UpdateScreenTile();
}
// Update is called once per frame
@ -124,8 +124,8 @@ namespace HeavenStudio
UpdatePan();
UpdateRotation();
UpdateScale();
UpdateComplexPan();
UpdatecomplexScale();
UpdateTilePan();
UpdateScreenTile();
canvas.localPosition = pan;
canvas.eulerAngles = new Vector3(0, 0, rotation);
@ -135,7 +135,7 @@ namespace HeavenStudio
scaleInv.y /= letterbox.y;
scaleInv.z /= letterbox.z;
canvas.localScale = scaleInv;
viewportTexture.uvRect = new Rect(complexPan.x, complexPan.y, complexScale.x, complexScale.y);
viewportTexture.uvRect = new Rect(tilePan.x, tilePan.y, screenTile.x, screenTile.y);
}
private void UpdatePan()
@ -278,9 +278,9 @@ namespace HeavenStudio
}
}
private void UpdateComplexPan()
private void UpdateTilePan()
{
foreach (var e in complexPanEvents)
foreach (var e in panTileEvents)
{
float prog = Conductor.instance.GetPositionFromBeat(e.beat, e.length);
if (prog >= 0f)
@ -289,15 +289,15 @@ namespace HeavenStudio
switch (e["axis"])
{
case (int) ViewAxis.X:
complexPan.x = func(complexPanLast.x, e["valA"], Mathf.Min(prog, 1f));
tilePan.x = func(tilePanLast.x, e["valA"], Mathf.Min(prog, 1f));
break;
case (int) ViewAxis.Y:
complexPan.y = func(complexPan.y, e["valB"], Mathf.Min(prog, 1f));
tilePan.y = func(tilePan.y, e["valB"], Mathf.Min(prog, 1f));
break;
default:
float dx = func(complexPanLast.x, e["valA"], Mathf.Min(prog, 1f));
float dy = func(complexPanLast.y, e["valB"], Mathf.Min(prog, 1f));
complexPan = new Vector3(dx, dy, 0);
float dx = func(tilePanLast.x, e["valA"], Mathf.Min(prog, 1f));
float dy = func(tilePanLast.y, e["valB"], Mathf.Min(prog, 1f));
tilePan = new Vector3(dx, dy, 0);
break;
}
}
@ -306,22 +306,22 @@ namespace HeavenStudio
switch (e["axis"])
{
case (int) ViewAxis.X:
complexPanLast.x = e["valA"];
tilePanLast.x = e["valA"];
break;
case (int) ViewAxis.Y:
complexPanLast.y = e["valB"];
tilePanLast.y = e["valB"];
break;
default:
complexPanLast = new Vector3(e["valA"], e["valB"], 0);
tilePanLast = new Vector3(e["valA"], e["valB"], 0);
break;
}
}
}
}
private void UpdatecomplexScale()
private void UpdateScreenTile()
{
foreach (var e in complexScaleEvents)
foreach (var e in tileScreenEvents)
{
float prog = Conductor.instance.GetPositionFromBeat(e.beat, e.length);
if (prog >= 0f)
@ -330,15 +330,15 @@ namespace HeavenStudio
switch (e["axis"])
{
case (int) ViewAxis.X:
complexScale.x = func(complexScaleLast.x, e["valA"] * .01f, Mathf.Min(prog, 1f)) * AspectRatioWidth;
screenTile.x = func(screenTileLast.x, e["valA"] * canvas.localScale.x, Mathf.Min(prog, 1f)) * AspectRatioWidth;
break;
case (int) ViewAxis.Y:
complexScale.y = func(complexScaleLast.y, e["valB"] * .01f, Mathf.Min(prog, 1f)) * AspectRatioHeight;
screenTile.y = func(screenTileLast.y, e["valB"] * canvas.localScale.y, Mathf.Min(prog, 1f)) * AspectRatioHeight;
break;
default:
float dx = func(complexScaleLast.x, e["valA"] * .01f, Mathf.Min(prog, 1f)) * AspectRatioWidth;
float dy = func(complexScaleLast.y, e["valB"] * .01f, Mathf.Min(prog, 1f)) * AspectRatioHeight;
complexScale = new Vector3(dx, dy, 1);
float dx = func(screenTileLast.x, e["valA"] * canvas.localScale.x, Mathf.Min(prog, 1f)) * AspectRatioWidth;
float dy = func(screenTileLast.y, e["valB"] * canvas.localScale.y, Mathf.Min(prog, 1f)) * AspectRatioHeight;
screenTile = new Vector3(dx, dy, 1);
break;
}
}
@ -347,13 +347,13 @@ namespace HeavenStudio
switch (e["axis"])
{
case (int) ViewAxis.X:
complexScaleLast.x = e["valA"] * .01f * AspectRatioWidth;
screenTileLast.x = e["valA"] * canvas.localScale.x * AspectRatioWidth;
break;
case (int) ViewAxis.Y:
complexScaleLast.y = e["valB"] * .01f * AspectRatioHeight;
screenTileLast.y = e["valB"] * canvas.localScale.y * AspectRatioHeight;
break;
default:
complexScaleLast = new Vector3(e["valA"] * .01f * AspectRatioWidth, e["valB"] * .01f * AspectRatioHeight, 1);
screenTileLast = new Vector3(e["valA"] * canvas.localScale.x * AspectRatioWidth, e["valB"] * canvas.localScale.y * AspectRatioHeight, 1);
break;
}
}
@ -366,8 +366,8 @@ namespace HeavenStudio
scale = defaultScale;
rotation = defaultRotation;
letterbox = defaultLetterbox;
complexPan = defaultComplexPan;
complexScale = defaultComplexScale;
tilePan = defaultTilePan;
screenTile = defaultScreenTile;
}
public void ToggleOverlayView(bool toggle)