mirror of
https://github.com/RHeavenStudio/HeavenStudio.git
synced 2025-06-12 08:27:40 +02:00
Beatmap Sections & Latency Reduction (#170)
* prep UI for chart section
* all special layers now on one area
todo: have buttons toggle between special layers (selection mode shows all?), use the tabs system for this
* swapping between special timelines - prelim
* special entities can be placed
* spec. timeline base functions complete
music volume changes should work now
* attempt at input lag reduction
needs testing
* fix dsp issues
* smaller DSP buffer?
* Revert "smaller DSP buffer?"
This reverts commit 9d36db5ff9
.
* make conductor clock use real time (double)
change order of execution of input-related scripts to further attempt a reduction in input latency
* start values can be changed
make the old special entity bar visible when the corresponding type is selected
* creation of Chart Sections (TODO: GO REFERENCE)
* added GO references
* section edit dialog
* disable wrapping on chart section obj
* backspace can now delete entities
* entities don't shift when duplicated
* fix PlayerActionEvent order of operations
- fixed remix loading trying to clear special timeline while it's writing to itself
* make oop check match parity
* more operation order fix
* fix Karate Man BG initialization
* show section progress in editor
todo: section progress in-game
* more fix for entity duping
This commit is contained in:
@ -446,8 +446,24 @@ namespace HeavenStudio.Games
|
||||
cameraPosition = CameraPosition[0].position;
|
||||
}
|
||||
|
||||
public override void OnPlay(float beat)
|
||||
{
|
||||
var cond = Conductor.instance;
|
||||
if (!cond.isPlaying)
|
||||
{
|
||||
SetBgEffectsToLast(beat);
|
||||
// remove all children of the ItemHolder
|
||||
foreach (Transform child in ItemHolder)
|
||||
{
|
||||
Destroy(child.gameObject);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void Start()
|
||||
{
|
||||
var cond = Conductor.instance;
|
||||
|
||||
GameCamera.additionalPosition = cameraPosition - GameCamera.defaultPosition;
|
||||
bgEffectAnimator = BGEffect.GetComponent<Animator>();
|
||||
bgEffectSpriteRenderer = BGEffect.GetComponent<SpriteRenderer>();
|
||||
@ -456,7 +472,8 @@ namespace HeavenStudio.Games
|
||||
bgBloodRenderer = BGBlood.GetComponent<SpriteRenderer>();
|
||||
bgRadialRenderer = BGRadial.GetComponent<SpriteRenderer>();
|
||||
|
||||
SetBgAndShadowCol(WantBgChangeStart, WantBgChangeLength, bgType, (int) currentShadowType, BackgroundColors[bgType], customShadowColour, (int)currentBgEffect);
|
||||
SetBgEffectsToLast(cond.songPositionInBeats);
|
||||
SetBgAndShadowCol(WantBgChangeStart, WantBgChangeLength, bgType, (int) currentShadowType, bgColour, customShadowColour, (int)currentBgEffect);
|
||||
SetBgTexture(textureType, textureFilterType, filterColour, filterColour);
|
||||
UpdateMaterialColour(BodyColor, HighlightColor, ItemColor);
|
||||
ToggleBop(WantBop);
|
||||
@ -806,10 +823,10 @@ namespace HeavenStudio.Games
|
||||
var e = bgfx[i];
|
||||
if (e.beat > beat)
|
||||
break;
|
||||
SetBgAndShadowCol(e.beat, e.length, e["type"], e["type2"], e["colorA"], e["colorB"], e["type3"]);
|
||||
SetBgTexture(e["type4"], e["type5"], e["colorC"], e["colorD"]);
|
||||
SetBgEffectsUnloaded(e.beat, e.length, e["type"], e["type2"], e["colorA"], e["colorB"], e["type3"], e["type4"], e["type5"], e["colorC"], e["colorD"]);
|
||||
}
|
||||
var camfx = GameManager.instance.Beatmap.entities.FindAll(en => en.datamodel == "karateman/special camera");
|
||||
DoSpecialCamera(0, 0, true);
|
||||
for (int i = 0; i < camfx.Count; i++)
|
||||
{
|
||||
var e = camfx[i];
|
||||
@ -817,17 +834,16 @@ namespace HeavenStudio.Games
|
||||
break;
|
||||
DoSpecialCamera(e.beat, e.length, e["toggle"]);
|
||||
}
|
||||
// has issues when creating a new hitx entity so this is deactivated for now
|
||||
// var hitx = GameManager.instance.Beatmap.entities.FindAll(en => en.datamodel == "karateman/hitX");
|
||||
// for (int i = 0; i < hitx.Count; i++)
|
||||
// {
|
||||
// var e = hitx[i];
|
||||
// if (e.beat > beat)
|
||||
// break;
|
||||
// Debug.Log("hitx");
|
||||
// DoWord(e.beat, e["type"], false);
|
||||
// }
|
||||
|
||||
var objfx = GameManager.instance.Beatmap.entities.FindAll(en => en.datamodel == "karateman/set object colors");
|
||||
for (int i = 0; i < objfx.Count; i++)
|
||||
{
|
||||
var e = objfx[i];
|
||||
if (e.beat > beat)
|
||||
break;
|
||||
UpdateMaterialColour(e["colorA"], e["colorB"], e["colorC"]);
|
||||
}
|
||||
SetBgAndShadowCol(WantBgChangeStart, WantBgChangeLength, bgType, (int) currentShadowType, bgColour, customShadowColour, (int)currentBgEffect);
|
||||
SetBgTexture(textureType, textureFilterType, filterColour, filterColour);
|
||||
}
|
||||
|
||||
public static void SetBgEffectsUnloaded(float beat, float length, int newBgType, int newShadowType, Color bgCol, Color shadowCol, int bgFx, int texture, int textureFilter, Color filterCol, Color filterColNext)
|
||||
|
Reference in New Issue
Block a user