desktop updates

This commit is contained in:
Yoshman29
2022-12-21 17:24:18 +01:00
parent 2d1980ac84
commit 0c538e3367
16 changed files with 70 additions and 51 deletions
+40 -29
View File
@@ -1,5 +1,6 @@
package funkin.multitasking;
import flixel.system.frontEnds.BitmapFrontEnd;
import openfl.Lib;
import openfl.display.Sprite;
import flash.events.Event;
@@ -14,8 +15,10 @@ import flixel.FlxG;
class StateWindow extends Sprite {
public var window:Window;
public var state:MusicBeatState;
public var cameras:Array<FlxCamera> = [new FlxCamera()];
public var camerasDefault:Array<FlxCamera> = [];
public var camera:FlxCamera;
public var cameras:Array<FlxCamera>;
public var camerasDefault:Array<FlxCamera>;
public var bmapFrontEnd:BitmapFrontEnd = new BitmapFrontEnd();
public function new(windowName:String, state:MusicBeatState) {
super();
@@ -36,6 +39,10 @@ class StateWindow extends Sprite {
window.stage.addChild(this);
camera = new FlxCamera();
cameras = [camera];
camerasDefault = [camera];
state.parentWindow = this;
this.state = state;
@@ -52,6 +59,7 @@ class StateWindow extends Sprite {
var oldCamDefaults:Array<FlxCamera>;
var oldCam:FlxCamera;
var oldState:FlxState;
var oldFrontEnd:BitmapFrontEnd;
public function beforeStateShit() {
oldSize.set(FlxG.width, FlxG.height);
@@ -66,10 +74,25 @@ class StateWindow extends Sprite {
FlxCamera._defaultCameras = FlxG.cameras.defaults = camerasDefault;
FlxG.cameras.list = cameras;
FlxG.camera = cameras[0];
FlxG.camera = camera;
oldState = FlxG.game._state;
FlxG.game._state = state;
if (this.numChildren != cameras.length) {
trace("readding cameras...");
while(this.numChildren > 0)
removeChild(getChildAt(0));
for(c in cameras) {
addChild(c.flashSprite);
c.flashSprite.x = c.flashSprite.y = 0;
}
}
oldFrontEnd = FlxG.bitmap;
FlxG.bitmap = bmapFrontEnd;
}
}
@@ -78,6 +101,7 @@ class StateWindow extends Sprite {
FlxG.width = Std.int(oldSize.x);
FlxG.height = Std.int(oldSize.y);
camera = FlxG.camera;
cameras = FlxG.cameras.list;
camerasDefault = FlxG.cameras.defaults;
@@ -89,49 +113,36 @@ class StateWindow extends Sprite {
oldCam = null;
FlxG.game._state = oldState;
FlxG.bitmap = oldFrontEnd;
oldFrontEnd = null;
}
}
public function update(elapsed:Float) {
beforeStateShit();
@:privateAccess
FlxG.cameras.update(FlxG.elapsed);
state.tryUpdate(elapsed);
afterStateShit();
}
public function draw() {
@:privateAccess {
beforeStateShit();
// for(c in cameras) {
// addChild(c.flashSprite);
// c.color = 0xFF0000;
// }
FlxG.cameras.lock();
state.draw();
FlxG.cameras.unlock();
afterStateShit();
}
}
/*
public override function __enterFrame(t:Float) {
super.__enterFrame(Std.int(t));
@:privateAccess {
beforeStateShit();
for(c in cameras) {
trace(c.x);
trace(c.y);
// c.bgColor = 0xFFFFFFFF;
}
stage.color = 0xFF0000;
FlxG.cameras.update(FlxG.elapsed);
state.tryUpdate(FlxG.elapsed);
FlxG.cameras.lock();
state.draw();
FlxG.cameras.render();
FlxG.cameras.unlock();
afterStateShit();
}
}
*/
}