forked from LeenkxTeam/LNXSDK
Update Files
This commit is contained in:
218
Kha/Backends/Node/kha/SystemImpl.hx
Normal file
218
Kha/Backends/Node/kha/SystemImpl.hx
Normal file
@ -0,0 +1,218 @@
|
||||
package kha;
|
||||
|
||||
import js.Browser;
|
||||
import js.html.CanvasElement;
|
||||
import js.Node;
|
||||
import kha.System.SystemOptions;
|
||||
import kha.input.Gamepad;
|
||||
import kha.input.Keyboard;
|
||||
import kha.input.Mouse;
|
||||
import kha.js.EmptyGraphics1;
|
||||
import kha.js.EmptyGraphics2;
|
||||
import kha.js.EmptyGraphics4;
|
||||
import kha.netsync.Session;
|
||||
|
||||
class SystemImpl {
|
||||
static var screenRotation: ScreenRotation = ScreenRotation.RotationNone;
|
||||
|
||||
static inline var networkSendRate = 0.05;
|
||||
|
||||
public static function init(options: SystemOptions, callback: Window->Void): Void {
|
||||
Window.get(0).width = options.width;
|
||||
Window.get(0).height = options.height;
|
||||
init2();
|
||||
callback(null);
|
||||
}
|
||||
|
||||
public static function initEx(title: String, options: Array<WindowOptions>, windowCallback: Int->Void, callback: Window->Void) {
|
||||
trace('initEx is not supported on the node target, running init() with first window options');
|
||||
|
||||
init({title: title, width: options[0].width, height: options[0].height}, callback);
|
||||
|
||||
if (windowCallback != null) {
|
||||
windowCallback(0);
|
||||
}
|
||||
}
|
||||
|
||||
public static function changeResolution(width: Int, height: Int): Void {}
|
||||
|
||||
public static function _updateSize(width: Int, height: Int): Void {
|
||||
Window.get(0).width = width;
|
||||
Window.get(0).height = height;
|
||||
}
|
||||
|
||||
public static function _updateScreenRotation(value: Int): Void {
|
||||
screenRotation = cast value;
|
||||
}
|
||||
|
||||
public static function getTime(): Float {
|
||||
var time = Node.process.hrtime();
|
||||
return cast(time[0], Float) + cast(time[1], Float) / 1000000000;
|
||||
}
|
||||
|
||||
public static function screenDpi(): Int {
|
||||
return 96;
|
||||
}
|
||||
|
||||
public static function getScreenRotation(): ScreenRotation {
|
||||
return screenRotation;
|
||||
}
|
||||
|
||||
public static function getVsync(): Bool {
|
||||
return false;
|
||||
}
|
||||
|
||||
public static function getRefreshRate(): Int {
|
||||
return 60;
|
||||
}
|
||||
|
||||
public static function getSystemId(): String {
|
||||
return "nodejs";
|
||||
}
|
||||
|
||||
public static function vibrate(ms: Int): Void {}
|
||||
|
||||
public static function getLanguage(): String {
|
||||
return "en";
|
||||
}
|
||||
|
||||
public static function requestShutdown(): Bool {
|
||||
Node.process.exit(0);
|
||||
return true;
|
||||
}
|
||||
|
||||
static var frame: Framebuffer = null;
|
||||
static var keyboard: Keyboard;
|
||||
static var mouse: kha.input.Mouse;
|
||||
static var gamepad: Gamepad;
|
||||
|
||||
public static var mouseX: Int;
|
||||
public static var mouseY: Int;
|
||||
|
||||
static var lastTime: Float = 0;
|
||||
|
||||
static function init2() {
|
||||
keyboard = new Keyboard();
|
||||
mouse = new kha.input.Mouse();
|
||||
gamepad = new Gamepad();
|
||||
|
||||
Scheduler.init();
|
||||
|
||||
Shaders.init();
|
||||
final width = Window.get(0).width;
|
||||
final height = Window.get(0).height;
|
||||
frame = new Framebuffer(0, new EmptyGraphics1(width, height), new EmptyGraphics2(width, height), new EmptyGraphics4(width, height));
|
||||
Scheduler.start();
|
||||
|
||||
lastTime = Scheduler.time();
|
||||
run();
|
||||
synch();
|
||||
}
|
||||
|
||||
static function run() {
|
||||
Scheduler.executeFrame();
|
||||
var time = Scheduler.time();
|
||||
|
||||
// Was scheduler reset?
|
||||
if (time < lastTime - 10) {
|
||||
lastTime = time;
|
||||
}
|
||||
|
||||
if (time >= lastTime + 10) {
|
||||
lastTime = time;
|
||||
Node.console.log(lastTime + " seconds.");
|
||||
}
|
||||
Node.setTimeout(run, 1);
|
||||
}
|
||||
|
||||
static function synch() {
|
||||
if (Session.the() != null) {
|
||||
Session.the().update();
|
||||
}
|
||||
Node.setTimeout(synch, Std.int(networkSendRate * 1000));
|
||||
}
|
||||
|
||||
public static function getKeyboard(num: Int): Keyboard {
|
||||
if (num != 0)
|
||||
return null;
|
||||
return keyboard;
|
||||
}
|
||||
|
||||
public static function getMouse(num: Int): Mouse {
|
||||
if (num != 0)
|
||||
return null;
|
||||
return mouse;
|
||||
}
|
||||
|
||||
public static function lockMouse(): Void {}
|
||||
|
||||
public static function unlockMouse(): Void {}
|
||||
|
||||
public static function canLockMouse(): Bool {
|
||||
return false;
|
||||
}
|
||||
|
||||
public static function isMouseLocked(): Bool {
|
||||
return false;
|
||||
}
|
||||
|
||||
public static function notifyOfMouseLockChange(func: Void->Void, error: Void->Void): Void {}
|
||||
|
||||
public static function removeFromMouseLockChange(func: Void->Void, error: Void->Void): Void {}
|
||||
|
||||
public static function canSwitchFullscreen(): Bool {
|
||||
return false;
|
||||
}
|
||||
|
||||
public static function isFullscreen(): Bool {
|
||||
return false;
|
||||
}
|
||||
|
||||
public static function requestFullscreen(): Void {}
|
||||
|
||||
public static function exitFullscreen(): Void {}
|
||||
|
||||
public static function notifyOfFullscreenChange(func: Void->Void, error: Void->Void): Void {}
|
||||
|
||||
public static function removeFromFullscreenChange(func: Void->Void, error: Void->Void): Void {}
|
||||
|
||||
public static function setKeepScreenOn(on: Bool): Void {}
|
||||
|
||||
public static function loadUrl(url: String): Void {}
|
||||
|
||||
public static function getGamepadId(index: Int): String {
|
||||
return "unknown";
|
||||
}
|
||||
|
||||
public static function getGamepadVendor(index: Int): String {
|
||||
return "unknown";
|
||||
}
|
||||
|
||||
public static function setGamepadRumble(index: Int, leftAmount: Float, rightAmount: Float): Void {}
|
||||
|
||||
public static function getPen(num: Int): kha.input.Pen {
|
||||
return null;
|
||||
}
|
||||
|
||||
public static function safeZone(): Float {
|
||||
return 1.0;
|
||||
}
|
||||
|
||||
public static function login(): Void {}
|
||||
|
||||
public static function automaticSafeZone(): Bool {
|
||||
return true;
|
||||
}
|
||||
|
||||
public static function setSafeZone(value: Float): Void {}
|
||||
|
||||
public static function unlockAchievement(id: Int): Void {}
|
||||
|
||||
public static function waitingForLogin(): Bool {
|
||||
return false;
|
||||
}
|
||||
|
||||
public static function disallowUserChange(): Void {}
|
||||
|
||||
public static function allowUserChange(): Void {}
|
||||
}
|
Reference in New Issue
Block a user