diff --git a/assets/shared/images/NOTE_assets.png b/assets/preload/images/NOTE_assets.png
similarity index 100%
rename from assets/shared/images/NOTE_assets.png
rename to assets/preload/images/NOTE_assets.png
diff --git a/assets/shared/images/NOTE_assets.xml b/assets/preload/images/NOTE_assets.xml
similarity index 100%
rename from assets/shared/images/NOTE_assets.xml
rename to assets/preload/images/NOTE_assets.xml
diff --git a/assets/shared/images/NOTE_assets_desat.png b/assets/shared/images/NOTE_assets_desat.png
deleted file mode 100644
index 5208c08e7..000000000
Binary files a/assets/shared/images/NOTE_assets_desat.png and /dev/null differ
diff --git a/assets/shared/images/NOTE_assets_desat.xml b/assets/shared/images/NOTE_assets_desat.xml
deleted file mode 100644
index 2f7382d56..000000000
--- a/assets/shared/images/NOTE_assets_desat.xml
+++ /dev/null
@@ -1,92 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/source/ColorpickSubstate.hx b/source/ColorpickSubstate.hx
new file mode 100644
index 000000000..b39957de5
--- /dev/null
+++ b/source/ColorpickSubstate.hx
@@ -0,0 +1,56 @@
+package;
+
+import flixel.group.FlxGroup.FlxTypedGroup;
+import shaderslmfao.ColorSwap;
+
+class ColorpickSubstate extends MusicBeatSubstate
+{
+ var curSelected:Int = 0;
+
+ var grpNotes:FlxTypedGroup;
+
+ public function new()
+ {
+ super();
+
+ grpNotes = new FlxTypedGroup();
+ add(grpNotes);
+
+ for (i in 0...4)
+ {
+ var note:Note = new Note(0, i);
+
+ note.x = (100 * i) + i;
+ note.screenCenter(Y);
+
+ grpNotes.add(note);
+ }
+ }
+
+ override function update(elapsed:Float)
+ {
+ if (controls.RIGHT_P)
+ curSelected += 1;
+ if (controls.LEFT_P)
+ curSelected -= 1;
+
+ if (curSelected < 0)
+ curSelected = grpNotes.members.length - 1;
+ if (curSelected >= grpNotes.members.length)
+ curSelected = 0;
+
+ if (controls.UP)
+ {
+ grpNotes.members[curSelected].colorSwap.update(elapsed * 0.3);
+ Note.arrowColors[curSelected] += elapsed * 0.3;
+ }
+
+ if (controls.DOWN)
+ {
+ grpNotes.members[curSelected].colorSwap.update(-elapsed * 0.3);
+ Note.arrowColors[curSelected] += -elapsed * 0.3;
+ }
+
+ super.update(elapsed);
+ }
+}
diff --git a/source/Note.hx b/source/Note.hx
index 9659ad3c0..c39bf8bc1 100644
--- a/source/Note.hx
+++ b/source/Note.hx
@@ -28,6 +28,7 @@ class Note extends FlxSprite
public var sustainLength:Float = 0;
public var isSustainNote:Bool = false;
+ public var colorSwap:ColorSwap;
public var noteScore:Float = 1;
public static var swagWidth:Float = 160 * 0.7;
@@ -36,6 +37,8 @@ class Note extends FlxSprite
public static var BLUE_NOTE:Int = 1;
public static var RED_NOTE:Int = 3;
+ public static var arrowColors:Array = [1, 1, 1, 1];
+
public function new(strumTime:Float, noteData:Int, ?prevNote:Note, ?sustainNote:Bool = false)
{
super();
@@ -105,10 +108,6 @@ class Note extends FlxSprite
updateHitbox();
antialiasing = true;
- var colorSwap = new ColorSwap();
-
- // shader = colorSwap.shader;
-
// colorSwap.colorToReplace = 0xFFF9393F;
// colorSwap.newColor = 0xFF00FF00;
@@ -117,11 +116,15 @@ class Note extends FlxSprite
// replaceColor(0xFFC1C1C1, FlxColor.RED);
}
+ colorSwap = new ColorSwap();
+ shader = colorSwap.shader;
+
switch (noteData)
{
case 0:
x += swagWidth * 0;
animation.play('purpleScroll');
+
case 1:
x += swagWidth * 1;
animation.play('blueScroll');
@@ -155,6 +158,7 @@ class Note extends FlxSprite
}
updateHitbox();
+ updateColors();
x -= width / 2;
@@ -182,6 +186,11 @@ class Note extends FlxSprite
}
}
+ public function updateColors():Void
+ {
+ colorSwap.update(arrowColors[noteData]);
+ }
+
override function update(elapsed:Float)
{
super.update(elapsed);
diff --git a/source/OptionsSubState.hx b/source/OptionsSubState.hx
index 00ca548f1..323094b7e 100644
--- a/source/OptionsSubState.hx
+++ b/source/OptionsSubState.hx
@@ -8,7 +8,7 @@ import flixel.util.FlxColor;
class OptionsSubState extends MusicBeatSubstate
{
- var textMenuItems:Array = ['Master Volume', 'Sound Volume', 'Controls'];
+ var textMenuItems:Array = ['Master Volume', 'Sound Volume', 'Controls', 'Colors'];
var selector:FlxSprite;
var curSelected:Int = 0;
@@ -67,6 +67,9 @@ class OptionsSubState extends MusicBeatSubstate
{
switch (textMenuItems[curSelected])
{
+ case "Colors":
+ FlxG.state.closeSubState();
+ FlxG.state.openSubState(new ColorpickSubstate());
case "Controls":
FlxG.state.closeSubState();
FlxG.state.openSubState(new ControlsSubState());
diff --git a/source/TitleState.hx b/source/TitleState.hx
index b825af96e..ca5340b93 100644
--- a/source/TitleState.hx
+++ b/source/TitleState.hx
@@ -42,7 +42,7 @@ class TitleState extends MusicBeatState
var lastBeat:Int = 0;
- // var swagShader:ColorSwap;
+ var swagShader:ColorSwap;
override public function create():Void
{
@@ -50,7 +50,7 @@ class TitleState extends MusicBeatState
polymod.Polymod.init({modRoot: "mods", dirs: ['introMod'], framework: OPENFL});
#end
- // swagShader = new ColorSwap();
+ swagShader = new ColorSwap();
FlxG.sound.muteKeys = [ZERO];
@@ -154,7 +154,7 @@ class TitleState extends MusicBeatState
logoBl.animation.play('bump');
logoBl.updateHitbox();
- // logoBl.shader = swagShader.shader;
+ logoBl.shader = swagShader.shader;
// trace();
// logoBl.screenCenter();
@@ -167,7 +167,7 @@ class TitleState extends MusicBeatState
gfDance.antialiasing = true;
add(gfDance);
- // gfDance.shader = swagShader.shader;
+ gfDance.shader = swagShader.shader;
add(logoBl);
@@ -333,6 +333,16 @@ class TitleState extends MusicBeatState
skipIntro();
}
+ if (controls.LEFT)
+ {
+ swagShader.update(-elapsed * 0.1);
+ }
+
+ if (controls.RIGHT)
+ {
+ swagShader.update(elapsed * 0.1);
+ }
+
super.update(elapsed);
}
@@ -366,12 +376,12 @@ class TitleState extends MusicBeatState
}
}
+ var isRainbow:Bool = false;
+
override function beatHit()
{
super.beatHit();
- // swagShader.update(FlxG.random.float(0.1, 0.7));
-
logoBl.animation.play('bump', true);
danceLeft = !danceLeft;
diff --git a/source/shaderslmfao/ColorSwap.hx b/source/shaderslmfao/ColorSwap.hx
index ff13871b3..1f57dc7a0 100644
--- a/source/shaderslmfao/ColorSwap.hx
+++ b/source/shaderslmfao/ColorSwap.hx
@@ -9,16 +9,20 @@ class ColorSwap
public var colorToReplace(default, set):FlxColor;
public var newColor(default, set):FlxColor;
public var daTime(default, set):Float;
+ public var hueShit:Float = 0;
public function new():Void
{
shader = new ColorSwapShader();
shader.uTime.value = [0];
+ shader.money.value = [0];
}
public function update(elapsed:Float):Void
{
shader.uTime.value[0] += elapsed;
+ hueShit += elapsed;
+ // trace(shader.money.value[0]);
}
function set_colorToReplace(color:FlxColor):FlxColor
@@ -46,8 +50,8 @@ class ColorSwapShader extends FlxShader
@:glFragmentSource('
#pragma header
-
uniform float uTime;
+ uniform float money;
vec3 normalizeColor(vec3 color)
{
@@ -86,6 +90,8 @@ class ColorSwapShader extends FlxShader
swagColor[0] += uTime;
// swagColor[1] += uTime;
+ // money += swagColor[0];
+
color = vec4(hsv2rgb(vec3(swagColor[0], swagColor[1], swagColor[2])), swagColor[3]);
gl_FragColor = color;