Merge branch 'Sumo-Fixes-' of https://github.com/RaffyTaffy14/HeavenStudio into Sumo-Fixes-

This commit is contained in:
RaffyTaffy14 2024-04-18 22:04:56 -04:00
commit 0d93e5b472
10 changed files with 185 additions and 24 deletions

View file

@ -8261,7 +8261,7 @@ MonoBehaviour:
m_faceColor:
serializedVersion: 2
rgba: 4294967295
m_fontSize: 0
m_fontSize: 14
m_fontSizeBase: 14.3
m_fontWeight: 400
m_enableAutoSizing: 1
@ -25414,8 +25414,8 @@ MonoBehaviour:
m_TargetGraphic: {fileID: 1589389272}
m_HandleRect: {fileID: 1589389271}
m_Direction: 2
m_Value: 0
m_Size: 0.9999884
m_Value: 1
m_Size: 1
m_NumberOfSteps: 0
m_OnValueChanged:
m_PersistentCalls:
@ -31578,7 +31578,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.5}
m_AnchorMax: {x: 1, y: 0.5}
m_AnchoredPosition: {x: 0, y: 45.795918}
m_AnchoredPosition: {x: 0, y: 199.06123}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 1}
--- !u!222 &1154875945
@ -41324,8 +41324,8 @@ MonoBehaviour:
m_TargetGraphic: {fileID: 1220118245}
m_HandleRect: {fileID: 1220118244}
m_Direction: 2
m_Value: 1.0000001
m_Size: 0
m_Value: 1
m_Size: 1
m_NumberOfSteps: 0
m_OnValueChanged:
m_PersistentCalls:

View file

@ -497,7 +497,6 @@ namespace HeavenStudio.Games
else if (passBallDict[beat + length].datamodel == "tossBoys/pop")
{
currentBall.willBePopped = true;
if (PlayerInput.CurrentControlStyle != InputController.ControlStyles.Touch)
BeatAction.New(instance, new List<BeatAction.Action>()
{
new BeatAction.Action(beat + length - 1, delegate { GetCurrentReceiver().PopBallPrepare(); })
@ -517,7 +516,6 @@ namespace HeavenStudio.Games
else if (eventDatamodel == "tossBoys/pop")
{
currentBall.willBePopped = true;
if (PlayerInput.CurrentControlStyle != InputController.ControlStyles.Touch)
BeatAction.New(instance, new List<BeatAction.Action>()
{
new BeatAction.Action(beat + length - 1, delegate { GetCurrentReceiver().PopBallPrepare(); })
@ -584,7 +582,6 @@ namespace HeavenStudio.Games
if (passBallDict.ContainsKey(beat + currentEventLength) && passBallDict[beat + currentEventLength].datamodel == "tossBoys/pop")
{
currentBall.willBePopped = true;
if (PlayerInput.CurrentControlStyle != InputController.ControlStyles.Touch)
BeatAction.New(instance, new List<BeatAction.Action>()
{
new BeatAction.Action(beat + currentEventLength - 1, delegate { GetCurrentReceiver().PopBallPrepare(); })

View file

@ -0,0 +1,57 @@
using System;
using System.Collections.Generic;
using System.Linq;
using UnityEngine;
using Jukebox;
using HeavenStudio.Editor.Track;
using Newtonsoft.Json;
using UnityEditor;
using UnityEngine.Timeline;
namespace HeavenStudio.Editor.Commands
{
// Insert / Delete Space
public class MoveEntity : ICommand
{
private readonly List<Guid> entityIDs = new();
private List<double> newMoveBeat;
private List<double> lastMoveBeat;
public MoveEntity(List<RiqEntity> originalEntities, List<double> newBeat)
{
entityIDs = originalEntities.Select(c => c.guid).ToList();
newMoveBeat = newBeat;
}
public void Execute()
{
lastMoveBeat = new();
var beatmap = GameManager.instance.Beatmap;
var entities = new[] { beatmap.Entities, beatmap.TempoChanges, beatmap.VolumeChanges, beatmap.SectionMarkers }
.SelectMany(list => list);
for (var i = 0; i < entityIDs.Count; i++)
{
var movedEntity = entities.FirstOrDefault(c => c.guid == entityIDs[i]);
lastMoveBeat.Add(movedEntity.beat);
movedEntity.beat = newMoveBeat[i];
}
}
public void Undo()
{
var beatmap = GameManager.instance.Beatmap;
var entities = new[] { beatmap.Entities, beatmap.TempoChanges, beatmap.VolumeChanges, beatmap.SectionMarkers }
.SelectMany(list => list);
for (var i = 0; i < entityIDs.Count; i++)
{
var movedEntity = entities.FirstOrDefault(c => c.guid == entityIDs[i]);
movedEntity.beat = lastMoveBeat[i];
}
}
}
}

View file

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 6bb50347e9fcfa143aa79f3ef0f0b436
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -199,6 +199,18 @@ namespace HeavenStudio.Editor
{
Timeline.instance.Paste();
}
if (Input.GetKey(KeyCode.LeftShift))
{
if (Input.GetKeyDown(KeyCode.I))
{
Timeline.instance.InsertSpace();
}
else if (Input.GetKeyDown(KeyCode.U))
{
Timeline.instance.DeleteSpace();
}
}
}
if (Input.GetKey(KeyCode.LeftControl))

View file

@ -935,6 +935,68 @@ namespace HeavenStudio.Editor.Track
return dup;
}
public void InsertSpace()
{
List<RiqEntity> originalEntities = new();
List<double> newBeats = new();
var beatmap = GameManager.instance.Beatmap;
var specialEntities = new[] { beatmap.TempoChanges, beatmap.VolumeChanges, beatmap.SectionMarkers }
.SelectMany(list => list);
foreach (var entity in beatmap.Entities)
{
var entityBeat = entity.beat;
if (entityBeat >= PlaybackBeat)
{
originalEntities.Add(entity);
newBeats.Add(entityBeat + snapInterval);
}
}
foreach (var entity in specialEntities)
{
var entityBeat = entity.beat;
if (entityBeat >= PlaybackBeat && entityBeat > 0)
{
originalEntities.Add(entity);
newBeats.Add(entityBeat + snapInterval);
}
}
if (originalEntities.Count > 0) CommandManager.Instance.AddCommand(new Commands.MoveEntity(originalEntities, newBeats));
}
public void DeleteSpace()
{
List<RiqEntity> originalEntities = new();
List<double> newBeats = new();
var beatmap = GameManager.instance.Beatmap;
var specialEntities = new[] { beatmap.TempoChanges, beatmap.VolumeChanges, beatmap.SectionMarkers }
.SelectMany(list => list);
foreach (var entity in beatmap.Entities)
{
var entityBeat = entity.beat;
if (entityBeat - snapInterval >= PlaybackBeat)
{
originalEntities.Add(entity);
newBeats.Add(entityBeat - snapInterval);
}
}
foreach (var entity in specialEntities)
{
var entityBeat = entity.beat;
if (entityBeat - snapInterval >= PlaybackBeat && entityBeat > 0)
{
originalEntities.Add(entity);
newBeats.Add(entityBeat - snapInterval);
}
}
if (originalEntities.Count > 0) CommandManager.Instance.AddCommand(new Commands.MoveEntity(originalEntities, newBeats));
}
public float SnapToLayer(float y)
{
float size = LayerHeight();

View file

@ -62,6 +62,8 @@ namespace HeavenStudio.Editor.Track
private double initMoveX = 0;
private float initMoveY = 0;
private double selectedMinInitMoveX, selectedMaxInitMoveX;
private float selectedMinInitMoveY, selectedMaxInitMoveY;
private bool movedEntity = false;
private double lastBeat = 0;
@ -238,8 +240,10 @@ namespace HeavenStudio.Editor.Track
{
foreach (var marker in Selections.instance.eventsSelected)
{
marker.entity.beat = System.Math.Max(Timeline.instance.MousePos2BeatSnap - marker.initMoveX, 0);
marker.entity["track"] = Mathf.Clamp(Timeline.instance.MousePos2Layer - marker.initMoveY, 0, Timeline.instance.LayerCount - 1);
var nextBeat = System.Math.Max(Timeline.instance.MousePos2BeatSnap, selectedMaxInitMoveX) - marker.initMoveX;
var nextTrack = Mathf.Clamp(Timeline.instance.MousePos2Layer, selectedMaxInitMoveY, Timeline.instance.LayerCount - 1 + selectedMinInitMoveY) - marker.initMoveY;
marker.entity.beat = System.Math.Max(nextBeat, 0);
marker.entity["track"] = Mathf.Clamp(nextTrack, 0, Timeline.instance.LayerCount - 1);
marker.SetColor((int)entity["track"]);
marker.SetWidthHeight();
}
@ -293,6 +297,10 @@ namespace HeavenStudio.Editor.Track
marker.initMoveX = Timeline.instance.MousePos2BeatSnap - marker.entity.beat;
marker.initMoveY = Timeline.instance.MousePos2Layer - (int)marker.entity["track"];
}
selectedMinInitMoveX = Selections.instance.eventsSelected.Min(marker => marker.initMoveX);
selectedMaxInitMoveX = Selections.instance.eventsSelected.Max(marker => marker.initMoveX);
selectedMinInitMoveY = Selections.instance.eventsSelected.Min(marker => marker.initMoveY);
selectedMaxInitMoveY = Selections.instance.eventsSelected.Max(marker => marker.initMoveY);
}
#region ClickEvents

View file

@ -1037,12 +1037,18 @@ namespace HeavenStudio
resizable = true,
parameters = new()
{
new("intenStart", new EntityTypes.Float(0f, 1f), "Start Intensity", "Set the intensity at the start of the event."),
new("intenEnd", new EntityTypes.Float(0f, 1f, 1f), "End Intensity", "Set the intensity at the end of the event."),
new("intenStart", new EntityTypes.Float(0f, 20f), "Start Intensity", "Set the intensity at the start of the event."),
new("intenEnd", new EntityTypes.Float(0f, 20f, 1f), "End Intensity", "Set the intensity at the end of the event."),
new("colorStart", Color.black, "Start Color", "Set the color at the start of the event."),
new("colorEnd", Color.black, "End Color", "Set the color at the end of the event."),
new("xLocStart", new EntityTypes.Float(0.0f, 1f, 0.5f), "Start X Location", "Set the X location at the start of the event."),
new("xLocEnd", new EntityTypes.Float(0.0f, 1f, 0.5f), "End X Location", "Set the X location at the end of the event."),
new("yLocStart", new EntityTypes.Float(0.0f, 1f, 0.5f), "Start Y Location", "Set the Y location at the start of the event."),
new("yLocEnd", new EntityTypes.Float(0.0f, 1f, 0.5f), "End Y Location", "Set the Y location at the end of the event."),
new("smoothStart", new EntityTypes.Float(0.01f, 1f, 0.2f), "Start Smoothness", "Set the smoothness at the start of the event."),
new("smoothEnd", new EntityTypes.Float(0.01f, 1f, 0.2f), "End Smoothness", "Set the smoothness at the end of the event."),
@ -1052,7 +1058,7 @@ namespace HeavenStudio
new("ease", Util.EasingFunction.Ease.Linear, "Ease", "Set the easing of the action.", new()
{
new((x, y) => (Util.EasingFunction.Ease)x != Util.EasingFunction.Ease.Instant, new string[] { "intenStart", "colorStart", "smoothStart", "roundStart" })
new((x, y) => (Util.EasingFunction.Ease)x != Util.EasingFunction.Ease.Instant, new string[] { "intenStart", "colorStart", "smoothStart", "roundStart", "xLocStart", "yLocStart" })
}),
}
},
@ -1193,10 +1199,10 @@ namespace HeavenStudio
new("rgbStart", new EntityTypes.Float(0f, 1f, 1f), "Start RGB Blend", "Set the RGB blend at the start of the event."),
new("rgbEnd", new EntityTypes.Float(0f, 1f, 1f), "End RGB Blend", "Set the RGB blend at the end of the event."),
new("bottomStart", new EntityTypes.Float(0f, 1f, 0f), "Start Bottom Collapse", "Set the bottom collapse at the start of the event."),
new("bottomStart", new EntityTypes.Float(0f, 1f, 0.02f), "Start Bottom Collapse", "Set the bottom collapse at the start of the event."),
new("bottomEnd", new EntityTypes.Float(0f, 1f, 0.02f), "End Bottom Collapse", "Set the bottom collapse at the end of the event."),
new("noiseStart", new EntityTypes.Float(0f, 1f, 0f), "Start Noise", "Set the noise at the start of the event."),
new("noiseStart", new EntityTypes.Float(0f, 1f, 0.3f), "Start Noise", "Set the noise at the start of the event."),
new("noiseEnd", new EntityTypes.Float(0f, 1f, 0.3f), "End Noise", "Set the noise knee at the end of the event."),
new("ease", Util.EasingFunction.Ease.Linear, "Ease", "Set the easing of the action.", new()
@ -1262,20 +1268,21 @@ namespace HeavenStudio
resizable = true,
parameters = new()
{
new("intenStart", new EntityTypes.Float(0.1f, 1f, 0.1f), "Start Intensity", "Set the edge fade at the start of the event."),
new("intenEnd", new EntityTypes.Float(0.1f, 1f, 1f), "End Intensity", "Set the edge fade at the end of the event."),
new("intenStart", new EntityTypes.Float(0.0f, 1f, 0.0f), "Start Intensity", "Set the edge fade at the start of the event."),
new("intenEnd", new EntityTypes.Float(0.0f, 1f, 1f), "End Intensity", "Set the edge fade at the end of the event."),
new("edgeWidthStart", new EntityTypes.Float(0.05f, 5f, 0.05f), "Start Edge Width", "Set the edge width at the start of the event."),
new("edgeWidthEnd", new EntityTypes.Float(0.05f, 5f, 2f), "End Edge Width", "Set the edge width at the end of the event."),
new("edgeWidthStart", new EntityTypes.Float(0.00f, 5f, 0.0f), "Start Edge Width", "Set the edge width at the start of the event."),
new("edgeWidthEnd", new EntityTypes.Float(0.00f, 5f, 2f), "End Edge Width", "Set the edge width at the end of the event."),
new("bgFadeStart", new EntityTypes.Float(0f, 1f, 0f), "Start Background Presence", "Set the background presence at the start of the event."),
new("bgFadeStart", new EntityTypes.Float(0f, 1f, 1f), "Start Background Presence", "Set the background presence at the start of the event."),
new("bgFadeEnd", new EntityTypes.Float(0f, 1f, 0f), "End Background Presence", "Set the background presence at the end of the event."),
new("brightnessStart", new EntityTypes.Float(0f, 2f, 0f), "Start Brightness", "Set the brightness at the start of the event."),
new("brightnessStart", new EntityTypes.Float(0f, 2f, 1f), "Start Brightness", "Set the brightness at the start of the event."),
new("brightnessEnd", new EntityTypes.Float(0f, 2f, 1f), "End Brightness", "Set the brightness at the end of the event."),
new("ease", Util.EasingFunction.Ease.Linear, "Ease", "Set the easing of the action.", new()
{
new((x, y) => (Util.EasingFunction.Ease)x != Util.EasingFunction.Ease.Instant, new string[] { "intenStart", "edgeWidthStart", "bgFadeStart", "brightnessStart" })

View file

@ -115,6 +115,10 @@ namespace HeavenStudio
float newRoundness = func(e["roundStart"], e["roundEnd"], clampNormal);
v.roundness.Override(newRoundness);
float newXPos = func(e["xLocStart"], e["xLocEnd"], clampNormal);
float newYPos = func(e["yLocStart"], e["yLocEnd"], clampNormal);
v.center.Override( new Vector2Parameter { value = new Vector2(newXPos, newYPos) });
}
}
@ -388,6 +392,9 @@ namespace HeavenStudio
float newBrightness = func(e["brightnessStart"], e["brightnessEnd"], clampNormal);
sn.Brigtness.Override(newBrightness);
}
}

View file

@ -21,10 +21,10 @@ namespace XPostProcessing
[PostProcess(typeof(EdgeDetectionSobelNeonV2Renderer), PostProcessEvent.AfterStack, "X-PostProcessing/EdgeDetection/EdgeDetectionSobelNeonV2")]
public class EdgeDetectionSobelNeonV2 : PostProcessEffectSettings
{
[Range(0.05f, 5.0f)]
[Range(0.0f, 5.0f)]
public FloatParameter EdgeWidth = new FloatParameter { value = 1f };
[Range(0.1f, 1.0f)]
[Range(0.0f, 1.0f)]
public FloatParameter EdgeNeonFade = new FloatParameter { value = 1f };
[Range(0.0f, 1.0f)]