@skewedaspect/sage 0.3.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/sage.d.ts CHANGED
@@ -9,12 +9,14 @@ import { GameEventBus } from './classes/eventBus.ts';
9
9
  */
10
10
  export declare function createGameEngine(canvas: GameCanvas, options?: SageOptions): Promise<SkewedAspectGameEngine>;
11
11
  export type { GameCanvas, RenderEngineOptions, SageOptions };
12
- export type { GameEvent, GameEventCallback } from './classes/eventBus.ts';
13
- export type { Action, AnalogAction, DigitalAction } from './interfaces/action.ts';
14
- export type { GameEntityDefinition, GameEntityBehaviorConstructor } from './interfaces/entity.ts';
15
- export type { LogLevel, LoggerInterface } from './interfaces/logger.ts';
12
+ export * from './interfaces/action.ts';
13
+ export * from './interfaces/binding.ts';
14
+ export * from './interfaces/entity.ts';
15
+ export * from './interfaces/game.ts';
16
+ export * from './interfaces/input.ts';
17
+ export * from './interfaces/logger.ts';
16
18
  export { GameEventBus, SkewedAspectGameEngine };
17
- export { GameEntity } from './classes/entity.ts';
18
- export { LoggingUtility, ConsoleBackend, NullBackend } from './utils/logger.ts';
19
- export { GameEntityBehavior } from './classes/entity.ts';
20
- export { VERSION } from './utils/version.ts';
19
+ export * from './classes/eventBus.ts';
20
+ export * from './classes/entity.ts';
21
+ export * from './utils/logger.ts';
22
+ export * from './utils/version.ts';
package/dist/sage.es.js CHANGED
@@ -2,9 +2,9 @@ var I = Object.defineProperty;
2
2
  var k = (a, e, t) => e in a ? I(a, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : a[e] = t;
3
3
  var n = (a, e, t) => k(a, typeof e != "symbol" ? e + "" : e, t);
4
4
  import { FreeCamera as V, Vector3 as b, HemisphericLight as G, MeshBuilder as D, PhysicsAggregate as E, PhysicsShapeType as C, Scene as L, NullEngine as B, WebGPUEngine as K, Engine as U, HavokPlugin as R } from "@babylonjs/core";
5
- import z from "@babylonjs/havok";
6
- const m = "0.3.0";
7
- class T {
5
+ import T from "@babylonjs/havok";
6
+ const m = "0.4.0";
7
+ class z {
8
8
  /**
9
9
  * Creates an instance of SkewedAspectGameEngine.
10
10
  * @param canvas - The game canvas.
@@ -2157,10 +2157,18 @@ async function oe(a, e) {
2157
2157
  return console.debug("Using WebGL"), v(a, e);
2158
2158
  }
2159
2159
  async function ae() {
2160
- const a = await z();
2160
+ const a = await T();
2161
2161
  return new R(!0, a);
2162
2162
  }
2163
- async function de(a, e = {}) {
2163
+ const de = ["keyboard", "mouse", "gamepad"], le = [
2164
+ "trace",
2165
+ "debug",
2166
+ "info",
2167
+ "warn",
2168
+ "error",
2169
+ "none"
2170
+ ];
2171
+ async function ge(a, e = {}) {
2164
2172
  const t = new F(e.logLevel || "debug"), s = t.getLogger("SAGE");
2165
2173
  s.info(`Initializing SAGE Game Engine v${m}...`), s.debug("Creating rendering engine...");
2166
2174
  const i = await oe(a, e.renderOptions || {});
@@ -2175,7 +2183,7 @@ async function de(a, e = {}) {
2175
2183
  if (s.info(`SAGE Game Engine v${m} initialized successfully.`), s.debug("Registering default input bindings..."), e.bindings)
2176
2184
  for (const _ of e.bindings)
2177
2185
  u.registerBinding(_);
2178
- return new T(
2186
+ return new z(
2179
2187
  a,
2180
2188
  i,
2181
2189
  o,
@@ -2199,10 +2207,14 @@ export {
2199
2207
  q as GameEntity,
2200
2208
  ue as GameEntityBehavior,
2201
2209
  O as GameEventBus,
2210
+ le as LogLevels,
2202
2211
  F as LoggingUtility,
2203
2212
  P as NullBackend,
2204
- T as SkewedAspectGameEngine,
2213
+ l as SAGELogger,
2214
+ z as SkewedAspectGameEngine,
2205
2215
  m as VERSION,
2206
- de as createGameEngine
2216
+ J as bindingTypes,
2217
+ ge as createGameEngine,
2218
+ de as validDeviceTypes
2207
2219
  };
2208
2220
  //# sourceMappingURL=sage.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sage.es.js","sources":["../src/utils/version.ts","../src/classes/gameEngine.ts","../src/classes/loggers/consoleBackend.ts","../src/classes/loggers/nullBackend.ts","../src/utils/logger.ts","../src/classes/eventBus.ts","../src/engines/scene.ts","../src/interfaces/binding.ts","../src/classes/bindings/trigger.ts","../src/classes/bindings/toggle.ts","../src/classes/bindings/value.ts","../src/classes/input/readers/keyboard.ts","../src/classes/input/readers/mouse.ts","../src/classes/input/readers/gamepad.ts","../src/managers/binding.ts","../src/utils/capabilities.ts","../src/managers/game.ts","../src/classes/entity.ts","../src/managers/entity.ts","../src/classes/input/keyboard.ts","../src/classes/input/mouse.ts","../src/classes/input/gamepad.ts","../src/managers/input.ts","../src/utils/graphics.ts","../src/utils/physics.ts","../src/sage.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["VERSION","SkewedAspectGameEngine","canvas","renderEngine","physics","eventBus","logger","engines","managers","__publicField","ConsoleBackend","level","styles","category","now","hours","minutes","seconds","ampm","timestamp","upperLevel","message","args","format","defaultStyle","levelStyle","resetStyle","label","timerKey","startTime","duration","NullBackend","_category","_message","_args","_label","SAGELogger","minLevel","backend","LoggingUtility","GameEventBus","eventTypeOrPattern","callback","eventType","subs","subscription","event","patternOrRegExp","regex","escaped","callbackCount","directSubs","sub","SceneEngine","engine","scene","camera","FreeCamera","Vector3","light","HemisphericLight","sphere","MeshBuilder","ground","PhysicsAggregate","PhysicsShapeType","Scene","bindingTypes","TriggerBinding","action","deviceID","reader","options","state","rawValue","digitalState","shouldTrigger","outputValue","finalValue","min","max","actionEvent","ToggleBinding","value","shouldToggle","ValueBinding","defaultMin","defaultMax","numericValue","KeyboardValueReader","keyCode","keyboardState","sourceKey","MouseValueReader","sourceType","buttonState","posType","axis","isValidWheelKey","sourceTypeString","keyParts","GamepadValueReader","BindingManager","binding","contextName","exclusive","context","exceptContextName","deactivatedContexts","definition","readerDef","device","bindings","errorMsg","actionName","isExclusive","isAlreadyActive","deactivated","_a","bindingsRemoved","deviceId","deviceBindings","newBindings","bindingContext","shouldKeep","result","actions","contexts","config","contextData","bindingDef","err","isBrowser","hasWebGPU","GameManager","sceneEngine","entityManager","inputManager","deltaTime","GameEntityBehavior","entity","GameEntity","type","initialState","behaviors","behaviorCtor","behavior","dt","existingSubscription","unsubscribe","behaviorName","GameEntityManager","bindingManager","existingAction","newAction","entityDef","mergedState","entityID","KeyboardInputPlugin","delta","MouseInputPlugin","targetElement","buttonKey","GamepadInputPlugin","states","indexStr","index","buttons","axes","gamepads","gamepad","currentButtons","currentAxes","newButtons","buttonsChanged","btn","i","prevButton","newAxes","axesChanged","axisValue","axisKey","gamepadDevice","buttonStateObj","axesStateObj","UserInputManager","gameEvent","devices","_buildWebGPUEngine","WebGPUEngine","_buildWebGLEngine","Engine","_buildNullEngine","NullEngine","createEngine","forceEngine","error","createPhysics","hk","HavokPhysics","HavokPlugin","createGameEngine","engineLogger","gameManager"],"mappings":"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"}
1
+ {"version":3,"file":"sage.es.js","sources":["../src/utils/version.ts","../src/classes/gameEngine.ts","../src/classes/loggers/consoleBackend.ts","../src/classes/loggers/nullBackend.ts","../src/utils/logger.ts","../src/classes/eventBus.ts","../src/engines/scene.ts","../src/interfaces/binding.ts","../src/classes/bindings/trigger.ts","../src/classes/bindings/toggle.ts","../src/classes/bindings/value.ts","../src/classes/input/readers/keyboard.ts","../src/classes/input/readers/mouse.ts","../src/classes/input/readers/gamepad.ts","../src/managers/binding.ts","../src/utils/capabilities.ts","../src/managers/game.ts","../src/classes/entity.ts","../src/managers/entity.ts","../src/classes/input/keyboard.ts","../src/classes/input/mouse.ts","../src/classes/input/gamepad.ts","../src/managers/input.ts","../src/utils/graphics.ts","../src/utils/physics.ts","../src/interfaces/input.ts","../src/interfaces/logger.ts","../src/sage.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["VERSION","SkewedAspectGameEngine","canvas","renderEngine","physics","eventBus","logger","engines","managers","__publicField","ConsoleBackend","level","styles","category","now","hours","minutes","seconds","ampm","timestamp","upperLevel","message","args","format","defaultStyle","levelStyle","resetStyle","label","timerKey","startTime","duration","NullBackend","_category","_message","_args","_label","SAGELogger","minLevel","backend","LoggingUtility","GameEventBus","eventTypeOrPattern","callback","eventType","subs","subscription","event","patternOrRegExp","regex","escaped","callbackCount","directSubs","sub","SceneEngine","engine","scene","camera","FreeCamera","Vector3","light","HemisphericLight","sphere","MeshBuilder","ground","PhysicsAggregate","PhysicsShapeType","Scene","bindingTypes","TriggerBinding","action","deviceID","reader","options","state","rawValue","digitalState","shouldTrigger","outputValue","finalValue","min","max","actionEvent","ToggleBinding","value","shouldToggle","ValueBinding","defaultMin","defaultMax","numericValue","KeyboardValueReader","keyCode","keyboardState","sourceKey","MouseValueReader","sourceType","buttonState","posType","axis","isValidWheelKey","sourceTypeString","keyParts","GamepadValueReader","BindingManager","binding","contextName","exclusive","context","exceptContextName","deactivatedContexts","definition","readerDef","device","bindings","errorMsg","actionName","isExclusive","isAlreadyActive","deactivated","_a","bindingsRemoved","deviceId","deviceBindings","newBindings","bindingContext","shouldKeep","result","actions","contexts","config","contextData","bindingDef","err","isBrowser","hasWebGPU","GameManager","sceneEngine","entityManager","inputManager","deltaTime","GameEntityBehavior","entity","GameEntity","type","initialState","behaviors","behaviorCtor","behavior","dt","existingSubscription","unsubscribe","behaviorName","GameEntityManager","bindingManager","existingAction","newAction","entityDef","mergedState","entityID","KeyboardInputPlugin","delta","MouseInputPlugin","targetElement","buttonKey","GamepadInputPlugin","states","indexStr","index","buttons","axes","gamepads","gamepad","currentButtons","currentAxes","newButtons","buttonsChanged","btn","i","prevButton","newAxes","axesChanged","axisValue","axisKey","gamepadDevice","buttonStateObj","axesStateObj","UserInputManager","gameEvent","devices","_buildWebGPUEngine","WebGPUEngine","_buildWebGLEngine","Engine","_buildNullEngine","NullEngine","createEngine","forceEngine","error","createPhysics","hk","HavokPhysics","HavokPlugin","validDeviceTypes","LogLevels","createGameEngine","engineLogger","gameManager"],"mappings":"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"}
package/dist/sage.umd.js CHANGED
@@ -1,2 +1,2 @@
1
- (function(u,h){typeof exports=="object"&&typeof module<"u"?h(exports,require("@babylonjs/core"),require("@babylonjs/havok")):typeof define=="function"&&define.amd?define(["exports","@babylonjs/core","@babylonjs/havok"],h):(u=typeof globalThis<"u"?globalThis:u||self,h(u.SAGameEngine={},u.BABYLON,u.HavokPhysics))})(this,function(u,h,f){"use strict";var Z=Object.defineProperty;var Q=(u,h,f)=>h in u?Z(u,h,{enumerable:!0,configurable:!0,writable:!0,value:f}):u[h]=f;var n=(u,h,f)=>Q(u,typeof h!="symbol"?h+"":h,f);const y="0.3.0";class C{constructor(e,t,s,i,o,a,c){n(this,"canvas");n(this,"renderEngine");n(this,"physics");n(this,"managers");n(this,"engines");n(this,"eventBus");n(this,"logger");n(this,"_log");this.canvas=e,this.renderEngine=t,this.physics=s,this.eventBus=i,this.logger=o,this.engines=a,this.managers=c,this._log=o.getLogger("GameEngine")}async start(){this._log.info(`Starting SkewedAspect Game Engine (Version: ${y})...`),await this.managers.gameManager.start(this.canvas),this._log.info("Game engine started successfully")}async stop(){this._log.info(`Stopping SkewedAspect Game Engine (Version: ${y})...`),await this.managers.gameManager.stop(),this._log.info("Game engine stopped successfully")}}class ${constructor(){n(this,"timers");this.timers=new Map}getStyleForLevel(e){const t={trace:"color: #999999",debug:"color: #00AAAA",info:"color: #00AA00",warn:"color: #AAAA00",error:"color: #AA0000",timer:"color: #AA00AA",none:"color: inherit"};return t[e]||t.none}formatMessage(e,t){const s=new Date,i=s.getHours()%12||12,o=s.getMinutes().toString().padStart(2,"0"),a=s.getSeconds().toString().padStart(2,"0"),c=s.getHours()>=12?"PM":"AM",d=`[${i}:${o}:${a} ${c}]`,l=t.toUpperCase();return[`${d} %c${l}%c (${e}): `,this.getStyleForLevel(t),"",""]}trace(e,t,...s){const[i,o,a,c]=this.formatMessage(e,"trace");console.debug(i,o,a,c,t,...s)}debug(e,t,...s){const[i,o,a,c]=this.formatMessage(e,"debug");console.debug(i,o,a,c,t,...s)}info(e,t,...s){const[i,o,a,c]=this.formatMessage(e,"info");console.info(i,o,a,c,t,...s)}warn(e,t,...s){const[i,o,a,c]=this.formatMessage(e,"warn");console.warn(i,o,a,c,t,...s)}error(e,t,...s){const[i,o,a,c]=this.formatMessage(e,"error");console.error(i,o,a,c,t,...s)}time(e,t){const s=`${e}:${t}`;this.timers.set(s,performance.now())}timeEnd(e,t){const s=`${e}:${t}`,i=this.timers.get(s);if(i!==void 0){const o=performance.now()-i;this.timers.delete(s);const[a,c,d,l]=this.formatMessage(e,"timer");console.info(`${a} Timer '${t}' completed in ${o.toFixed(2)}ms`,c,d,l)}else console.warn(`[${e}]: Timer '${t}' does not exist`)}}class M{trace(e,t,...s){}debug(e,t,...s){}info(e,t,...s){}warn(e,t,...s){}error(e,t,...s){}time(e,t){}timeEnd(e,t){}}class _{constructor(e,t="none",s=new M){n(this,"category");n(this,"backend");n(this,"minLevel");this.category=e,this.backend=s,this.minLevel=t}updateSettings(e,t){this.backend=e,this.minLevel=t}trace(e,...t){this.shouldLog("trace")&&this.backend.trace(this.category,e,...t)}debug(e,...t){this.shouldLog("debug")&&this.backend.debug(this.category,e,...t)}info(e,...t){this.shouldLog("info")&&this.backend.info(this.category,e,...t)}warn(e,...t){this.shouldLog("warn")&&this.backend.warn(this.category,e,...t)}error(e,...t){this.shouldLog("error")&&this.backend.error(this.category,e,...t)}time(e){this.minLevel!=="none"&&this.backend.time(this.category,e)}timeEnd(e){this.minLevel!=="none"&&this.backend.timeEnd(this.category,e)}shouldLog(e){if(this.minLevel==="none")return!1;switch(this.minLevel){case"trace":return!0;case"debug":return e!=="trace";case"info":return e==="info"||e==="warn"||e==="error";case"warn":return e==="warn"||e==="error";case"error":return e==="error";default:return!1}}}class A{constructor(e="debug",t=new $){n(this,"backend");n(this,"level");n(this,"loggers");this.backend=t,this.level=e,this.loggers=new Map}setBackend(e){this.backend=e,this.loggers.forEach(t=>{t instanceof _&&t.updateSettings(this.backend,this.level)})}setLevel(e){this.level=e,this.loggers.forEach(t=>{t instanceof _&&t.updateSettings(this.backend,this.level)})}getLevel(){return this.level}getLogger(e){this.loggers.has(e)||this.loggers.set(e,new _(e,this.level,this.backend));const t=this.loggers.get(e);if(t===void 0)throw new Error(`Failed to create logger for category: ${e}`);return t}}class I{constructor(e){n(this,"directMap",new Map);n(this,"patternSubs",new Set);n(this,"_log");this._log=(e==null?void 0:e.getLogger("EventBus"))||new _("EventBus")}subscribe(e,t){return this._log.trace(`Subscribe request for: ${e.toString()}`),e instanceof RegExp||typeof e=="string"&&e.includes("*")?this.subscribePattern(e,t):this.subscribeExact(e,t)}subscribeExact(e,t){this._log.debug(`Adding exact subscription for: ${e}`);let s=this.directMap.get(e);s||(s=new Set,this.directMap.set(e,s));const i={callback:o=>t(o)};return s.add(i),()=>{this._log.debug(`Removing exact subscription for: ${e}`),s.delete(i),s.size===0&&this.directMap.delete(e)}}subscribePattern(e,t){let s;if(typeof e=="string"){const o=e.replace(/[-/\\^$+?.()|[\]{}]/g,"\\$&").replace(/\*/g,".*");s=new RegExp(`^${o}$`),this._log.debug(`Adding pattern subscription for string: ${e}, regex: ${s.toString()}`)}else s=e,this._log.debug(`Adding pattern subscription for regex: ${s.toString()}`);const i={pattern:s,callback:o=>t(o)};return this.patternSubs.add(i),()=>{this._log.debug(`Removing pattern subscription: ${s.toString()}`),this.patternSubs.delete(i)}}publish(e){this._log.trace(`Publishing event: ${e.type}`,e);let t=0;const s=this.directMap.get(e.type);if(s){t+=s.size;for(const i of s)Promise.resolve().then(()=>i.callback(e))}for(const i of this.patternSubs)i.pattern&&i.pattern.test(e.type)&&(t++,Promise.resolve().then(()=>i.callback(e)));t===0?this._log.debug(`No subscribers found for event: ${e.type}`):this._log.trace(`Event ${e.type} dispatched to ${t} subscribers`)}}class L{constructor(e,t,s){n(this,"_engine");n(this,"_physics");n(this,"_log");this._engine=e,this._physics=t,this._log=(s==null?void 0:s.getLogger("SceneEngine"))||new _("SceneEngine")}async _buildDemoScene(e,t){this._log.debug("Building demo scene..."),this._log.trace("Creating camera...");const s=new h.FreeCamera("camera1",new h.Vector3(0,5,-10),e);s.setTarget(h.Vector3.Zero()),s.attachControl(t,!0),this._log.trace("Creating light...");const i=new h.HemisphericLight("light",new h.Vector3(0,1,0),e);i.intensity=.7,this._log.trace("Creating sphere...");const o=h.MeshBuilder.CreateSphere("sphere",{diameter:2,segments:32},e);o.position.y=4,this._log.trace("Creating ground...");const a=h.MeshBuilder.CreateGround("ground",{width:10,height:10},e);this._log.trace("Adding physics to sphere..."),new h.PhysicsAggregate(o,h.PhysicsShapeType.SPHERE,{mass:1,restitution:.75},e),this._log.trace("Adding physics to ground..."),new h.PhysicsAggregate(a,h.PhysicsShapeType.BOX,{mass:0},e),this._log.debug("Demo scene built successfully")}async loadScene(e){this._log.info("Loading scene..."),this._log.time("sceneLoad"),this._log.debug("Creating new scene...");const t=new h.Scene(this._engine);return this._log.debug("Enabling physics with gravity (0, -9.8, 0)..."),t.enablePhysics(new h.Vector3(0,-9.8,0),this._physics),await this._buildDemoScene(t,e),this._log.timeEnd("sceneLoad"),this._log.info("Scene loaded successfully"),t}}const K=["trigger","toggle","value"];class U{constructor(e,t,s,i={}){n(this,"type","trigger");n(this,"action");n(this,"context");n(this,"deviceID");n(this,"reader");n(this,"_edgeMode");n(this,"_threshold");n(this,"_lastDigitalState",!1);this.action=e,this.deviceID=t,this.reader=s,this.context=i.context,this._edgeMode=i.edgeMode??"rising",this._threshold=i.threshold??.5}get options(){return{edgeMode:this._edgeMode,threshold:this._threshold}}process(e,t){const s=this.reader.getValue(e)??!1,i=typeof s=="boolean"?s:s>=this._threshold;let o=!1;switch(this._edgeMode){case"rising":o=i&&!this._lastDigitalState;break;case"falling":o=!i&&this._lastDigitalState;break;case"both":o=i!==this._lastDigitalState;break}if(this._lastDigitalState=i,o){let a;if(this.action.type==="analog"){let d=typeof s=="number"?s:s?1:0;if(this.action.minValue!==void 0||this.action.maxValue!==void 0){const l=this.action.minValue??0,p=this.action.maxValue??1;d=l+d*(p-l)}a=d}else a=!0;const c={type:`action:${this.action.name}`,payload:{value:a,deviceId:this.deviceID,context:this.context}};t.publish(c)}}toJSON(){return{type:this.type,action:this.action.name,input:{deviceID:this.deviceID,...this.reader.toJSON()},context:this.context,options:this.options}}}class R{constructor(e,t,s,i={}){n(this,"type","toggle");n(this,"action");n(this,"context");n(this,"deviceID");n(this,"reader");n(this,"_invert");n(this,"_threshold");n(this,"_initialState");n(this,"_onValue");n(this,"_offValue");n(this,"_lastDigitalState",!1);n(this,"_toggleState");this.action=e,this.deviceID=t,this.reader=s,this.context=i.context,this._invert=i.invert??!1,this._threshold=i.threshold??.5,this._initialState=i.initialState??!1,this._toggleState=this._initialState,this._onValue=i.onValue??!0,this._offValue=i.offValue??!1}get state(){return this._toggleState}set state(e){this._toggleState=e}get onValue(){return this._onValue}get offValue(){return this._offValue}get value(){return this.action.type==="analog"?this._toggleState?this.action.maxValue??1:this.action.minValue??0:this._toggleState?this._onValue:this._offValue}get options(){return{invert:this._invert,threshold:this._threshold,initialState:this._initialState,onValue:this._onValue,offValue:this._offValue}}process(e,t){const s=this.reader.getValue(e)??!1,i=typeof s=="boolean"?s:s>=this._threshold,o=this._invert?!i&&this._lastDigitalState:i&&!this._lastDigitalState;this._lastDigitalState=i,o&&(this._toggleState=!this._toggleState,t.publish({type:`action:${this.action.name}`,payload:{value:this.value,deviceId:this.deviceID,context:this.context}}))}reset(){this._toggleState=this._initialState}toJSON(){return{type:this.type,action:this.action.name,input:{deviceID:this.deviceID,...this.reader.toJSON()},state:this._toggleState,context:this.context,options:this.options}}}class T{constructor(e,t,s,i={}){n(this,"type","value");n(this,"action");n(this,"context");n(this,"deviceID");n(this,"reader");n(this,"_scale");n(this,"_offset");n(this,"_invert");n(this,"_emitOnChange");n(this,"_deadzone");n(this,"_onValue");n(this,"_offValue");n(this,"_min");n(this,"_max");n(this,"_lastValue");this.action=e,this.deviceID=t,this.reader=s,this.context=i.context,this._scale=i.scale??1,this._offset=i.offset??0,this._invert=i.invert??!1,this._emitOnChange=i.emitOnChange??!0,this._deadzone=i.deadzone??0,this._onValue=i.onValue??!0,this._offValue=i.offValue??!1;const o=this.action.type==="analog"?this.action.minValue??Number.NEGATIVE_INFINITY:Number.NEGATIVE_INFINITY;this._min=i.min??o;const a=this.action.type==="analog"?this.action.maxValue??Number.POSITIVE_INFINITY:Number.POSITIVE_INFINITY;this._max=i.max??a}get options(){return{scale:this._scale,offset:this._offset,invert:this._invert,emitOnChange:this._emitOnChange,deadzone:this._deadzone,onValue:this._onValue,offValue:this._offValue,min:this._min,max:this._max}}process(e,t){const s=this.reader.getValue(e);if(s===void 0)return;const i=typeof s=="boolean"?s?1:0:s;if(i===void 0)return;let o=this._deadzone>0&&Math.abs(i)<this._deadzone?0:i;o=(this._invert?-o:o)*this._scale+this._offset,o=Math.max(this._min,Math.min(this._max,o)),!(this._emitOnChange&&this._lastValue===o)&&(this._lastValue=o,t.publish({type:`action:${this.action.name}`,payload:{value:o,deviceId:this.deviceID,context:this.context}}))}toJSON(){return{type:this.type,action:this.action.name,input:{deviceID:this.deviceID,...this.reader.toJSON()},context:this.context,options:this.options}}}class S{constructor(e,t={}){n(this,"sourceType","key");n(this,"sourceKey");n(this,"useDelta");this.sourceKey=e,this.useDelta=t.useDelta||!1}getValue(e){if(e.type!=="keyboard")return;const t=e;return this.useDelta?t.delta[this.sourceKey]:t.keys[this.sourceKey]}static fromString(e,t={}){return new S(e,t)}toJSON(){return{type:"keyboard",sourceType:this.sourceType,sourceKey:this.sourceKey,options:{useDelta:this.useDelta}}}}class x{constructor(e,t){n(this,"sourceType");n(this,"sourceKey");this.sourceType=e,this.sourceKey=t}getValue(e){if(e.type==="mouse")switch(this.sourceType){case"button":{const t=e.buttons[this.sourceKey];return t?t.pressed:void 0}case"position":{const[t,s]=this.sourceKey.split(":");return!t||!s||t!=="absolute"&&t!=="relative"||s!=="x"&&s!=="y"?void 0:e.position[t][s]}case"wheel":{const t=this.sourceKey==="deltaX"||this.sourceKey==="deltaY"||this.sourceKey==="deltaZ";return e.wheel&&t?e.wheel[this.sourceKey]:void 0}default:return}}static fromString(e){const[t,...s]=e.split(":"),i=s.join(":");if(!t||!i)throw new Error(`Invalid mouse source format: ${e}`);return new x(t,i)}toJSON(){return{type:"mouse",sourceType:this.sourceType,sourceKey:this.sourceKey}}}class E{constructor(e,t,s={}){n(this,"sourceType");n(this,"sourceKey");n(this,"useAnalogValue");n(this,"deadzone");n(this,"invert");this.sourceType=e,this.sourceKey=t,this.useAnalogValue=s.useAnalogValue||!1,this.deadzone=s.deadzone||.1,this.invert=s.invert||!1}getValue(e){if(e.type==="gamepad")switch(this.sourceType){case"button":{const t=e.buttons[this.sourceKey];return t?this.useAnalogValue?t.value:t.pressed:void 0}case"axis":{let t=e.axes[this.sourceKey];return t===void 0?void 0:(Math.abs(t)<this.deadzone&&(t=0),this.invert?-t:t)}default:return}}static fromString(e,t={}){const[s,i]=e.split(":");if(!s||!i)throw new Error(`Invalid gamepad source format: ${e}`);return new E(s,i,t)}toJSON(){return{type:"gamepad",sourceType:this.sourceType,sourceKey:this.sourceKey,options:{useAnalogValue:this.useAnalogValue,deadzone:this.deadzone,invert:this.invert}}}}class z{constructor(e,t){n(this,"_bindings",new Map);n(this,"_actions",new Map);n(this,"_contexts",new Map);n(this,"_activeContexts",new Set);n(this,"_eventBus");n(this,"_log");this._eventBus=e,this._eventBus.subscribe("input:changed",s=>{s.payload&&this.$handleInput(s.payload.device,s.payload.state)}),this._log=(t==null?void 0:t.getLogger("BindingManager"))||new _("BindingManager"),this._log.debug("BindingManager initialized")}_isBindingContextActive(e){return e.context?this._activeContexts.has(e.context):!0}_getOrCreateContext(e,t=!0){let s=this._contexts.get(e);return s||(s={name:e,exclusive:t},this._contexts.set(e,s),this._log.debug(`Auto-created context "${e}" (exclusive: ${t})`)),s}_deactivateExclusiveContexts(e){const t=[];for(const s of this._activeContexts){if(s===e)continue;const i=this._contexts.get(s);i!=null&&i.exclusive&&(this._activeContexts.delete(s),t.push(s))}return t}_createBindingFromDefinition(e){const t=this._actions.get(e.action);if(!t)return this._log.warn(`Cannot create binding: Action "${e.action}" not found.`),null;const{deviceID:s,...i}=e.input;switch(e.type){case"trigger":return new U(t,s,this._createInputSourceFromDefinition(i),{...e.options||{},context:e.context});case"toggle":return new R(t,s,this._createInputSourceFromDefinition(i),{...e.options||{},context:e.context});case"value":return new T(t,s,this._createInputSourceFromDefinition(i),{...e.options||{},context:e.context});default:return this._log.error(`Binding type not implemented: ${e.type}`),null}}_createInputSourceFromDefinition(e){switch(e.type){case"keyboard":return new S(e.sourceKey,e.options);case"mouse":{const t=e.sourceType;if(!(t==="button"||t==="position"||t==="wheel"))throw new Error(`Invalid mouse source type: ${t}`);return new x(t,e.sourceKey)}case"gamepad":{const t=e.sourceType;if(!(t==="button"||t==="axis"))throw new Error(`Invalid gamepad source type: ${t}`);return new E(t,e.sourceKey,e.options)}default:throw new Error(`Unsupported input source type: ${e.type}`)}}$handleInput(e,t){const s=this._bindings.get(e.id);if(!(!s||s.length===0)&&!(this._activeContexts.size===0&&s.some(i=>i.context)))for(const i of s)this._isBindingContextActive(i)&&i.process(t,this._eventBus)}registerAction(e){if(this._log.debug(`Registering action "${e.name}"`),this._actions.has(e.name)){const t=`Action "${e.name}" already registered.`;throw this._log.error(t),new Error(t)}this._actions.set(e.name,e),this._log.debug(`Action "${e.name}" registered successfully`)}getAction(e){this._log.trace(`Getting action "${e}"`);const t=this._actions.get(e)??null;return t||this._log.debug(`Action "${e}" not found`),t}registerContext(e,t=!0){const s=this._getOrCreateContext(e,t);return s.exclusive!==t&&(s.exclusive=t,this._log.info(`Updated context "${e}" exclusivity: ${t}`)),s}activateContext(e){const s=this._getOrCreateContext(e).exclusive;this._log.debug(`Activating context "${e}" (exclusive: ${s})`);const i=this._activeContexts.has(e);if(s){const o=this._deactivateExclusiveContexts(e);o.length>0&&this._log.info(`Deactivated exclusive contexts: ${o.join(", ")}`)}i||(this._activeContexts.add(e),this._log.info(`Context "${e}" activated${s?" as exclusive":""}`))}deactivateContext(e){this._log.debug(`Deactivating context "${e}"`),this._activeContexts.has(e)?(this._activeContexts.delete(e),this._log.info(`Context "${e}" deactivated`)):this._log.debug(`Context "${e}" was not active`)}getActiveContexts(){return[...this._activeContexts]}isContextActive(e){return this._activeContexts.has(e)}getContext(e){return this._contexts.get(e)||null}$registerBinding(e){var t;if(!K.includes(e.type))throw new Error(`Invalid binding type: ${e.type}`);e.context&&!this._contexts.has(e.context)&&this.registerContext(e.context),this._bindings.has(e.deviceID)||this._bindings.set(e.deviceID,[]),(t=this._bindings.get(e.deviceID))==null||t.push(e),this._log.debug(`Registered ${e.type} binding for "${e.action.name}" in context "${e.context||null}"`)}registerBinding(e){const t=this._createBindingFromDefinition(e);t?this.$registerBinding(t):this._log.error(`Failed to create binding for action "${e.action}" with type "${e.type}"`)}unregisterBindings(e,t=null){this._log.debug(`Unregistering all bindings for action "${e}" in context "${t}"`);let s=0;for(const[i,o]of this._bindings.entries()){const a=o.filter(c=>{const d=c.context||null,l=c.action.name!==e||d!==t;return l||s++,l});a.length!==o.length&&this._bindings.set(i,a)}this._log.info(`Removed ${s} bindings for action "${e}" in context "${t}"`)}getBindingsForAction(e,t){const s=[];for(const i of this._bindings.values())for(const o of i){const a=o.context||null;o.action.name===e&&(!t||a===t)&&s.push(o)}return s}exportConfiguration(){this._log.debug("Exporting binding configuration");const e=[...this._actions.values()].map(i=>i.type==="analog"?{name:i.name,type:i.type,minValue:i.minValue??0,maxValue:i.maxValue??1}:i),t=[];for(const i of this._bindings.values())for(const o of i)t.push(o.toJSON());const s=[...this._contexts.values()].map(i=>({name:i.name,exclusive:i.exclusive,active:this._activeContexts.has(i.name)}));return this._log.info(`Configuration exported: ${e.length} actions, ${t.length} bindings, ${s.length} contexts`),{actions:e,bindings:t,contexts:s}}importConfiguration(e){this._log.debug("Importing binding configuration"),this._bindings.clear(),this._actions.clear(),this._contexts.clear(),this._activeContexts.clear();for(const t of e.actions)this.registerAction(t);for(const t of e.contexts)this.registerContext(t.name,t.exclusive),t.active&&this.activateContext(t.name);for(const t of e.bindings)try{this.registerBinding(t)}catch(s){s instanceof Error&&this._log.error(`Failed to import binding for action "${t.action}": ${s.message}`)}this._log.info(`Configuration imported: ${e.actions.length} actions, ${e.bindings.length} bindings, ${e.contexts.length} contexts`)}}function k(){return typeof window<"u"&&typeof window.document<"u"}function G(){return k()&&!!window.navigator.gpu}class P{constructor(e,t,s,i,o){n(this,"_engine");n(this,"_entityManager");n(this,"_inputManager");n(this,"_sceneEngine");n(this,"_currentScene",null);n(this,"_log");n(this,"started",!1);this._engine=e,this._sceneEngine=t,this._entityManager=s,this._inputManager=i,this._log=(o==null?void 0:o.getLogger("GameManager"))||new _("GameManager"),k()&&window.addEventListener("resize",this._resizeHandler.bind(this))}_renderLoop(){const e=this._engine.getDeltaTime();this._entityManager.$frameUpdate(e),this._inputManager&&this._inputManager.pollGamepads(),this._currentScene&&this._currentScene.render()}_resizeHandler(){this.started&&this._engine.resize()}async start(e){this._currentScene=await this._sceneEngine.loadScene(e),this._engine.runRenderLoop(this._renderLoop.bind(this)),this.started=!0,this._log.info("SkewedAspect Game Engine started successfully")}async stop(){this.started=!1,this._engine.stopRenderLoop(),this._log.info("SkewedAspect Game Engine stopped successfully")}}class W{constructor(){n(this,"entity",null)}$emit(e){if(!this.entity)throw new Error("Entity is not set for this behavior.");e.senderID=this.entity.id,this.entity.eventBus.publish(e)}$setEntity(e){this.entity=e}}class V{constructor(e,t,s,i){n(this,"id");n(this,"type");n(this,"state");n(this,"behaviors",new Map);n(this,"eventBus");n(this,"subscriptions",new Map);this.id=crypto.randomUUID(),this.type=e,this.state=s,this.eventBus=t;for(const o of i)this.attachBehavior(new o)}async $processEvent(e){for(const t of this.behaviors.values())if(await t.processEvent(e,this.state))break}$update(e){var t;for(const s of this.behaviors.values())(t=s.update)==null||t.call(s,e,this.state)}async $destroy(){var e;for(const t of this.behaviors.values())(e=t.destroy)==null||e.call(t);for(const t of this.subscriptions.values())t.unsubscribe();this.behaviors.clear(),this.subscriptions.clear()}attachBehavior(e){if(this.behaviors.has(e.name))throw new Error(`Behavior ${e.name} is already attached to this entity.`);for(const t of e.eventSubscriptions){const s=this.subscriptions.get(t);if(s)s.count++;else{const i=this.eventBus.subscribe(t,this.$processEvent.bind(this));this.subscriptions.set(t,{count:1,unsubscribe:i})}}this.behaviors.set(e.name,e),e.$setEntity(this)}detachBehavior(e){const t=this.behaviors.get(e);if(t){for(const s of t.eventSubscriptions){const i=this.subscriptions.get(s);i&&(i.count--,i.count<=0&&(i.unsubscribe(),this.subscriptions.delete(s)))}this.behaviors.delete(t.name),t.$setEntity(null)}}}class O{constructor(e,t,s){n(this,"eventBus");n(this,"entities",new Map);n(this,"entityDefinitions",new Map);n(this,"bindingManager");n(this,"_log");this.eventBus=e,this.bindingManager=s,this._log=(t==null?void 0:t.getLogger("EntityManager"))||new _("EntityManager"),this._log.info("EntityManager initialized")}areActionsCompatible(e,t){return!(e.type!==t.type||e.type==="analog"&&t.type==="analog"&&(t.minValue!==void 0&&e.minValue!==t.minValue||t.maxValue!==void 0&&e.maxValue!==t.maxValue))}registerEntityActions(e){if(e.actions)for(const t of e.actions)try{const s=this.bindingManager.getAction(t.name);s?this.areActionsCompatible(s,t)?this._log.trace(`Action "${t.name}" already registered with compatible options, skipping registration`):this._log.warn(`Action "${t.name}" already registered with different options. Entity "${e.type}" requires: ${JSON.stringify(t)}, but found: ${JSON.stringify(s)}`):(this._log.debug(`Registering action "${t.name}" from entity type "${e.type}"`),this.bindingManager.registerAction(t))}catch(s){this._log.debug(`Failed to register action "${t.name}": ${s instanceof Error?s.message:String(s)}`)}}$frameUpdate(e){this._log.trace(`Updating ${this.entities.size} entities with dt=${e}`);for(const t of this.entities.values())t.$update(e)}registerEntityDefinition(e){this._log.debug(`Registering entity definition: ${e.type}`),this.registerEntityActions(e),this.entityDefinitions.set(e.type,e)}createEntity(e,t={}){var a;this._log.debug(`Creating entity of type: ${e}`);const s=this.entityDefinitions.get(e);if(!s){const c=`Entity type ${e} is not registered.`;throw this._log.error(c),new Error(c)}this._log.trace(`Using entity definition with ${((a=s.behaviors)==null?void 0:a.length)||0} behaviors`);const i={...s.defaultState,...t},o=new V(s.type,this.eventBus,i,s.behaviors);return this.entities.set(o.id,o),this._log.debug(`Entity created with ID: ${o.id}`),o}destroyEntity(e){this._log.debug(`Destroying entity: ${e}`);const t=this.entities.get(e);t?(t.$destroy(),this.entities.delete(e),this._log.debug(`Entity ${e} destroyed`)):this._log.warn(`Attempted to destroy non-existent entity: ${e}`)}getEntity(e){return this._log.trace(`Getting entity: ${e}`),this.entities.get(e)??null}addEntity(e){this._log.debug(`Adding existing entity: ${e.id} (type: ${e.type})`),this.entities.set(e.id,e)}removeEntity(e){this._log.debug(`Removing entity: ${e}`),this.entities.get(e)?(this.entities.delete(e),this._log.debug(`Entity ${e} removed`)):this._log.warn(`Attempted to remove non-existent entity: ${e}`)}}class F{constructor(){n(this,"_keyboardDevice");n(this,"_keysState",{});n(this,"_onDeviceConnected");n(this,"_onInputChanged");this._keyboardDevice={id:"keyboard-0",name:"Keyboard",type:"keyboard",connected:!0},this._setupKeyboardEvents(),setTimeout(()=>this._notifyDeviceConnected(),0)}onDeviceConnected(e){this._onDeviceConnected=e}onInputChanged(e){this._onInputChanged=e}getState(){return{type:"keyboard",keys:{...this._keysState},delta:{}}}getDevice(){return{...this._keyboardDevice}}destroy(){window.removeEventListener("keydown",this._handleKeyDown),window.removeEventListener("keyup",this._handleKeyUp)}_setupKeyboardEvents(){this._handleKeyDown=this._handleKeyDown.bind(this),this._handleKeyUp=this._handleKeyUp.bind(this),window.addEventListener("keydown",this._handleKeyDown),window.addEventListener("keyup",this._handleKeyUp)}_handleKeyDown(e){this._keysState[e.code]=!0;const t={};t[e.code]=!0;const s={type:"keyboard",keys:{...this._keysState},delta:t,event:e};this._notifyInputChanged(s)}_handleKeyUp(e){this._keysState[e.code]=!1;const t={};t[e.code]=!1;const s={type:"keyboard",keys:{...this._keysState},delta:t,event:e};this._notifyInputChanged(s)}_notifyDeviceConnected(){this._onDeviceConnected&&this._onDeviceConnected(this._keyboardDevice)}_notifyInputChanged(e){this._onInputChanged&&this._onInputChanged(this._keyboardDevice,e)}}class N{constructor(e=document.body){n(this,"_targetElement");n(this,"_mouseDevice");n(this,"_buttonState",{});n(this,"_axesState",{});n(this,"_position",{absolute:{x:0,y:0},relative:{x:0,y:0}});n(this,"_wheelState",{deltaX:0,deltaY:0,deltaZ:0,deltaMode:0});n(this,"_onDeviceConnected");n(this,"_onInputChanged");this._targetElement=e,this._mouseDevice={id:"mouse-0",name:"Mouse",type:"mouse",connected:!0},this._setupMouseEvents(),this._axesState["axis-x"]=0,this._axesState["axis-y"]=0,setTimeout(()=>this._notifyDeviceConnected(),0)}onDeviceConnected(e){this._onDeviceConnected=e}onInputChanged(e){this._onInputChanged=e}getState(){return{type:"mouse",buttons:{...this._buttonState},axes:{...this._axesState},position:{absolute:{...this._position.absolute},relative:{...this._position.relative}},wheel:{...this._wheelState}}}getDevice(){return{...this._mouseDevice}}destroy(){this._targetElement.removeEventListener("mousedown",this._handleMouseDown),this._targetElement.removeEventListener("mouseup",this._handleMouseUp),this._targetElement.removeEventListener("mousemove",this._handleMouseMove),this._targetElement.removeEventListener("wheel",this._handleMouseWheel)}_setupMouseEvents(){this._handleMouseDown=this._handleMouseDown.bind(this),this._handleMouseUp=this._handleMouseUp.bind(this),this._handleMouseMove=this._handleMouseMove.bind(this),this._handleMouseWheel=this._handleMouseWheel.bind(this),this._targetElement.addEventListener("mousedown",this._handleMouseDown),this._targetElement.addEventListener("mouseup",this._handleMouseUp),this._targetElement.addEventListener("mousemove",this._handleMouseMove),this._targetElement.addEventListener("wheel",this._handleMouseWheel)}_handleMouseDown(e){const t=`button-${e.button}`,s={pressed:!0};this._buttonState[t]=s,this._notifyInputChanged({type:"mouse",event:e,buttons:{...this._buttonState},axes:{...this._axesState},position:{...this._position}})}_handleMouseUp(e){const t=`button-${e.button}`,s={pressed:!1};this._buttonState[t]=s,this._notifyInputChanged({type:"mouse",event:e,buttons:{...this._buttonState},axes:{...this._axesState},position:{...this._position}})}_handleMouseMove(e){this._position={absolute:{x:e.clientX,y:e.clientY},relative:{x:e.movementX,y:e.movementY}},this._axesState["axis-x"]=e.clientX,this._axesState["axis-y"]=e.clientY,this._notifyInputChanged({type:"mouse",event:e,buttons:{...this._buttonState},axes:{...this._axesState},position:{...this._position}})}_handleMouseWheel(e){this._wheelState={deltaX:e.deltaX,deltaY:e.deltaY,deltaZ:e.deltaZ,deltaMode:e.deltaMode},this._notifyInputChanged({type:"mouse",event:e,buttons:{...this._buttonState},axes:{...this._axesState},position:{...this._position},wheel:{...this._wheelState}})}_notifyDeviceConnected(){this._onDeviceConnected&&this._onDeviceConnected(this._mouseDevice)}_notifyInputChanged(e){this._onInputChanged&&this._onInputChanged(this._mouseDevice,e)}}class j{constructor(){n(this,"_gamepadDevices",{});n(this,"_buttonStates",{});n(this,"_axesStates",{});n(this,"_onDeviceConnected");n(this,"_onDeviceDisconnected");n(this,"_onInputChanged");this._setupGamepadEvents()}onDeviceConnected(e){this._onDeviceConnected=e}onDeviceDisconnected(e){this._onDeviceDisconnected=e}onInputChanged(e){this._onInputChanged=e}getDevices(){return Object.values(this._gamepadDevices).map(e=>({...e}))}getStates(){const e={};return Object.keys(this._buttonStates).forEach(t=>{const s=Number(t),i=this._buttonStates[s]||{},o=this._axesStates[s]||{};e[s]={type:"gamepad",buttons:{...i},axes:{...o}}}),e}getDevice(e){const t=this._gamepadDevices[e];return t?{...t}:null}getState(e){const t=this._buttonStates[e],s=this._axesStates[e];return!t&&!s?null:{type:"gamepad",buttons:t?{...t}:{},axes:s?{...s}:{}}}pollGamepads(){if(!navigator.getGamepads)return;const e=navigator.getGamepads();for(const t of e){if(!t)continue;const s=t.index;if(!this._gamepadDevices[s]){this._handleGamepadConnected(t);continue}const i=this._gamepadDevices[s];if(!i)continue;const o=this._buttonStates[s]||{},a=this._axesStates[s]||{},c={};let d=!1;t.buttons.forEach((g,b)=>{const m=`button-${b}`,v={pressed:g.pressed,touched:g.touched,value:g.value};c[m]=v;const w=o[m];(!w||w.pressed!==v.pressed||w.touched!==v.touched||w.value!==v.value)&&(d=!0)});const l={};let p=!1;if(t.axes.forEach((g,b)=>{const m=`axis-${b}`;l[m]=g,a[m]!==g&&(p=!0)}),this._buttonStates[s]=c,this._axesStates[s]=l,d||p){const g={type:"gamepad",buttons:{...c},axes:{...l}};this._notifyInputChanged(i,g)}}}destroy(){window.removeEventListener("gamepadconnected",this._handleGamepadConnected),window.removeEventListener("gamepaddisconnected",this._handleGamepadDisconnected)}_setupGamepadEvents(){if(this._handleGamepadConnected=this._handleGamepadConnected.bind(this),this._handleGamepadDisconnected=this._handleGamepadDisconnected.bind(this),window.addEventListener("gamepadconnected",this._handleGamepadConnected),window.addEventListener("gamepaddisconnected",this._handleGamepadDisconnected),navigator.getGamepads){const e=navigator.getGamepads();for(const t of e)t&&this._handleGamepadConnected(t)}}_handleGamepadConnected(e){const t=e instanceof GamepadEvent?e.gamepad:e,s=t.index,i={id:`gamepad-${s}`,name:t.id,type:"gamepad",connected:!0,index:s,mapping:t.mapping,axes:Array.from(t.axes),buttons:Array.from(t.buttons)};this._gamepadDevices[s]=i;const o={};Array.from(t.buttons).forEach((c,d)=>{o[`button-${d}`]={pressed:c.pressed,touched:c.touched,value:c.value}}),this._buttonStates[s]=o;const a={};Array.from(t.axes).forEach((c,d)=>{a[`axis-${d}`]=c}),this._axesStates[s]=a,this._notifyDeviceConnected(i),this._notifyInputChanged(i,{type:"gamepad",buttons:{...o},axes:{...a},event:e instanceof GamepadEvent?e:void 0})}_handleGamepadDisconnected(e){const s=e.gamepad.index,i=this._gamepadDevices[s];i&&(i.connected=!1,this._notifyDeviceDisconnected(i),this._gamepadDevices[s]=void 0,this._buttonStates[s]=void 0,this._axesStates[s]=void 0)}_notifyDeviceConnected(e){this._onDeviceConnected&&this._onDeviceConnected(e)}_notifyDeviceDisconnected(e){this._onDeviceDisconnected&&this._onDeviceDisconnected(e)}_notifyInputChanged(e,t){this._onInputChanged&&this._onInputChanged(e,t)}}class J{constructor(e,t,s){n(this,"_eventBus");n(this,"_keyboardRA");n(this,"_mouseRA");n(this,"_gamepadRA");n(this,"_log");this._eventBus=e,this._log=(s==null?void 0:s.getLogger("UserInputManager"))||new _("UserInputManager"),this._log.info("Initializing UserInputManager"),this._log.debug("Initializing input resource access classes"),this._keyboardRA=new F,this._mouseRA=new N(t),this._gamepadRA=new j,this._log.debug("Registering input event callbacks"),this._keyboardRA.onDeviceConnected(this._publishDeviceConnected.bind(this)),this._keyboardRA.onInputChanged(this._publishInputChanged.bind(this)),this._mouseRA.onDeviceConnected(this._publishDeviceConnected.bind(this)),this._mouseRA.onInputChanged(this._publishInputChanged.bind(this)),this._gamepadRA.onDeviceConnected(this._publishDeviceConnected.bind(this)),this._gamepadRA.onDeviceDisconnected(this._publishDeviceDisconnected.bind(this)),this._gamepadRA.onInputChanged(this._publishInputChanged.bind(this)),this._log.info("UserInputManager initialized successfully")}_publishDeviceConnected(e){this._log.debug(`Device connected: ${e.id} (${e.name})`);const t={type:"input:device:connected",payload:{device:e}};this._eventBus.publish(t)}_publishDeviceDisconnected(e){this._log.debug(`Device disconnected: ${e.id} (${e.name})`);const t={type:"input:device:disconnected",payload:{device:e}};this._eventBus.publish(t)}_publishInputChanged(e,t){this._log.trace(`Input changed: ${e.id}`,t);const s={type:"input:changed",payload:{deviceId:e.id,device:e,state:t}};this._eventBus.publish(s)}$destroy(){this._log.info("Destroying UserInputManager"),this._log.debug("Cleaning up input resource access instances"),this._keyboardRA.destroy(),this._mouseRA.destroy(),this._gamepadRA.destroy(),this._log.info("UserInputManager destroyed")}listDevices(){this._log.debug("Getting all connected input devices");const e=[];return e.push(this._keyboardRA.getDevice()),e.push(this._mouseRA.getDevice()),e.push(...this._gamepadRA.getDevices()),this._log.debug(`Found ${e.length} connected devices`),e}getDevice(e){if(this._log.debug(`Getting device: ${e}`),e.startsWith("keyboard-"))return this._keyboardRA.getDevice();if(e.startsWith("mouse-"))return this._mouseRA.getDevice();if(e.startsWith("gamepad-")){const t=parseInt(e.split("-")[1],10);return this._gamepadRA.getDevice(t)}else{const t=this.listDevices();for(const s of t)if(s.id===e)return s}return this._log.warn(`Device not found: ${e}`),null}pollGamepads(){this._gamepadRA.pollGamepads()}}async function B(r,e){const t=new h.WebGPUEngine(r,e);return await t.initAsync(),t}function D(r,e){return new h.Engine(r,e.antialias,e.options,e.adaptToDeviceRatio)}function Y(r){return new h.NullEngine(r)}async function H(r,e){if(r===null)return console.debug("Using Null Engine"),Y(e);const t=e.forceEngine||"auto";if(t==="webgpu")if(G())try{return console.debug("Using forced WebGPU engine"),await B(r,e)}catch(s){throw console.error("Forced WebGPU initialization failed:",s),new Error("Forced WebGPU failed to initialize. If WebGPU is required, check browser compatibility.")}else throw new Error("WebGPU was forced but is not available in this browser.");if(t==="webgl")return console.debug("Using forced WebGL engine"),D(r,e);if(G())try{return console.debug("Using WebGPU"),B(r,e).catch(s=>(console.warn("WebGPU initialization failed, falling back to WebGL:",s),D(r,e)))}catch(s){console.warn("WebGPU initialization failed, falling back to WebGL:",s)}else console.warn("WebGPU not supported, falling back to WebGL.");return console.debug("Using WebGL"),D(r,e)}async function X(){const r=await f();return new h.HavokPlugin(!0,r)}async function q(r,e={}){const t=new A(e.logLevel||"debug"),s=t.getLogger("SAGE");s.info(`Initializing SAGE Game Engine v${y}...`),s.debug("Creating rendering engine...");const i=await H(r,e.renderOptions||{});s.debug("Creating physics engine...");const o=await X();s.debug("Creating event bus...");const a=new I(t);s.debug("Creating scene engine...");const c=new L(i,o,t);s.debug("Creating managers...");const d=new J(a,r,t),l=new z(a,t),p=new O(a,t,l),g=new P(i,c,p,d,t);if(s.info(`SAGE Game Engine v${y} initialized successfully.`),s.debug("Registering default input bindings..."),e.bindings)for(const b of e.bindings)l.registerBinding(b);return new C(r,i,o,a,t,{sceneEngine:c},{bindingManager:l,entityManager:p,gameManager:g,inputManager:d})}u.ConsoleBackend=$,u.GameEntity=V,u.GameEntityBehavior=W,u.GameEventBus=I,u.LoggingUtility=A,u.NullBackend=M,u.SkewedAspectGameEngine=C,u.VERSION=y,u.createGameEngine=q,Object.defineProperty(u,Symbol.toStringTag,{value:"Module"})});
1
+ (function(u,h){typeof exports=="object"&&typeof module<"u"?h(exports,require("@babylonjs/core"),require("@babylonjs/havok")):typeof define=="function"&&define.amd?define(["exports","@babylonjs/core","@babylonjs/havok"],h):(u=typeof globalThis<"u"?globalThis:u||self,h(u.SAGameEngine={},u.BABYLON,u.HavokPhysics))})(this,function(u,h,f){"use strict";var ee=Object.defineProperty;var te=(u,h,f)=>h in u?ee(u,h,{enumerable:!0,configurable:!0,writable:!0,value:f}):u[h]=f;var n=(u,h,f)=>te(u,typeof h!="symbol"?h+"":h,f);const y="0.4.0";class C{constructor(e,t,s,i,o,a,c){n(this,"canvas");n(this,"renderEngine");n(this,"physics");n(this,"managers");n(this,"engines");n(this,"eventBus");n(this,"logger");n(this,"_log");this.canvas=e,this.renderEngine=t,this.physics=s,this.eventBus=i,this.logger=o,this.engines=a,this.managers=c,this._log=o.getLogger("GameEngine")}async start(){this._log.info(`Starting SkewedAspect Game Engine (Version: ${y})...`),await this.managers.gameManager.start(this.canvas),this._log.info("Game engine started successfully")}async stop(){this._log.info(`Stopping SkewedAspect Game Engine (Version: ${y})...`),await this.managers.gameManager.stop(),this._log.info("Game engine stopped successfully")}}class ${constructor(){n(this,"timers");this.timers=new Map}getStyleForLevel(e){const t={trace:"color: #999999",debug:"color: #00AAAA",info:"color: #00AA00",warn:"color: #AAAA00",error:"color: #AA0000",timer:"color: #AA00AA",none:"color: inherit"};return t[e]||t.none}formatMessage(e,t){const s=new Date,i=s.getHours()%12||12,o=s.getMinutes().toString().padStart(2,"0"),a=s.getSeconds().toString().padStart(2,"0"),c=s.getHours()>=12?"PM":"AM",d=`[${i}:${o}:${a} ${c}]`,l=t.toUpperCase();return[`${d} %c${l}%c (${e}): `,this.getStyleForLevel(t),"",""]}trace(e,t,...s){const[i,o,a,c]=this.formatMessage(e,"trace");console.debug(i,o,a,c,t,...s)}debug(e,t,...s){const[i,o,a,c]=this.formatMessage(e,"debug");console.debug(i,o,a,c,t,...s)}info(e,t,...s){const[i,o,a,c]=this.formatMessage(e,"info");console.info(i,o,a,c,t,...s)}warn(e,t,...s){const[i,o,a,c]=this.formatMessage(e,"warn");console.warn(i,o,a,c,t,...s)}error(e,t,...s){const[i,o,a,c]=this.formatMessage(e,"error");console.error(i,o,a,c,t,...s)}time(e,t){const s=`${e}:${t}`;this.timers.set(s,performance.now())}timeEnd(e,t){const s=`${e}:${t}`,i=this.timers.get(s);if(i!==void 0){const o=performance.now()-i;this.timers.delete(s);const[a,c,d,l]=this.formatMessage(e,"timer");console.info(`${a} Timer '${t}' completed in ${o.toFixed(2)}ms`,c,d,l)}else console.warn(`[${e}]: Timer '${t}' does not exist`)}}class M{trace(e,t,...s){}debug(e,t,...s){}info(e,t,...s){}warn(e,t,...s){}error(e,t,...s){}time(e,t){}timeEnd(e,t){}}class g{constructor(e,t="none",s=new M){n(this,"category");n(this,"backend");n(this,"minLevel");this.category=e,this.backend=s,this.minLevel=t}updateSettings(e,t){this.backend=e,this.minLevel=t}trace(e,...t){this.shouldLog("trace")&&this.backend.trace(this.category,e,...t)}debug(e,...t){this.shouldLog("debug")&&this.backend.debug(this.category,e,...t)}info(e,...t){this.shouldLog("info")&&this.backend.info(this.category,e,...t)}warn(e,...t){this.shouldLog("warn")&&this.backend.warn(this.category,e,...t)}error(e,...t){this.shouldLog("error")&&this.backend.error(this.category,e,...t)}time(e){this.minLevel!=="none"&&this.backend.time(this.category,e)}timeEnd(e){this.minLevel!=="none"&&this.backend.timeEnd(this.category,e)}shouldLog(e){if(this.minLevel==="none")return!1;switch(this.minLevel){case"trace":return!0;case"debug":return e!=="trace";case"info":return e==="info"||e==="warn"||e==="error";case"warn":return e==="warn"||e==="error";case"error":return e==="error";default:return!1}}}class A{constructor(e="debug",t=new $){n(this,"backend");n(this,"level");n(this,"loggers");this.backend=t,this.level=e,this.loggers=new Map}setBackend(e){this.backend=e,this.loggers.forEach(t=>{t instanceof g&&t.updateSettings(this.backend,this.level)})}setLevel(e){this.level=e,this.loggers.forEach(t=>{t instanceof g&&t.updateSettings(this.backend,this.level)})}getLevel(){return this.level}getLogger(e){this.loggers.has(e)||this.loggers.set(e,new g(e,this.level,this.backend));const t=this.loggers.get(e);if(t===void 0)throw new Error(`Failed to create logger for category: ${e}`);return t}}class I{constructor(e){n(this,"directMap",new Map);n(this,"patternSubs",new Set);n(this,"_log");this._log=(e==null?void 0:e.getLogger("EventBus"))||new g("EventBus")}subscribe(e,t){return this._log.trace(`Subscribe request for: ${e.toString()}`),e instanceof RegExp||typeof e=="string"&&e.includes("*")?this.subscribePattern(e,t):this.subscribeExact(e,t)}subscribeExact(e,t){this._log.debug(`Adding exact subscription for: ${e}`);let s=this.directMap.get(e);s||(s=new Set,this.directMap.set(e,s));const i={callback:o=>t(o)};return s.add(i),()=>{this._log.debug(`Removing exact subscription for: ${e}`),s.delete(i),s.size===0&&this.directMap.delete(e)}}subscribePattern(e,t){let s;if(typeof e=="string"){const o=e.replace(/[-/\\^$+?.()|[\]{}]/g,"\\$&").replace(/\*/g,".*");s=new RegExp(`^${o}$`),this._log.debug(`Adding pattern subscription for string: ${e}, regex: ${s.toString()}`)}else s=e,this._log.debug(`Adding pattern subscription for regex: ${s.toString()}`);const i={pattern:s,callback:o=>t(o)};return this.patternSubs.add(i),()=>{this._log.debug(`Removing pattern subscription: ${s.toString()}`),this.patternSubs.delete(i)}}publish(e){this._log.trace(`Publishing event: ${e.type}`,e);let t=0;const s=this.directMap.get(e.type);if(s){t+=s.size;for(const i of s)Promise.resolve().then(()=>i.callback(e))}for(const i of this.patternSubs)i.pattern&&i.pattern.test(e.type)&&(t++,Promise.resolve().then(()=>i.callback(e)));t===0?this._log.debug(`No subscribers found for event: ${e.type}`):this._log.trace(`Event ${e.type} dispatched to ${t} subscribers`)}}class K{constructor(e,t,s){n(this,"_engine");n(this,"_physics");n(this,"_log");this._engine=e,this._physics=t,this._log=(s==null?void 0:s.getLogger("SceneEngine"))||new g("SceneEngine")}async _buildDemoScene(e,t){this._log.debug("Building demo scene..."),this._log.trace("Creating camera...");const s=new h.FreeCamera("camera1",new h.Vector3(0,5,-10),e);s.setTarget(h.Vector3.Zero()),s.attachControl(t,!0),this._log.trace("Creating light...");const i=new h.HemisphericLight("light",new h.Vector3(0,1,0),e);i.intensity=.7,this._log.trace("Creating sphere...");const o=h.MeshBuilder.CreateSphere("sphere",{diameter:2,segments:32},e);o.position.y=4,this._log.trace("Creating ground...");const a=h.MeshBuilder.CreateGround("ground",{width:10,height:10},e);this._log.trace("Adding physics to sphere..."),new h.PhysicsAggregate(o,h.PhysicsShapeType.SPHERE,{mass:1,restitution:.75},e),this._log.trace("Adding physics to ground..."),new h.PhysicsAggregate(a,h.PhysicsShapeType.BOX,{mass:0},e),this._log.debug("Demo scene built successfully")}async loadScene(e){this._log.info("Loading scene..."),this._log.time("sceneLoad"),this._log.debug("Creating new scene...");const t=new h.Scene(this._engine);return this._log.debug("Enabling physics with gravity (0, -9.8, 0)..."),t.enablePhysics(new h.Vector3(0,-9.8,0),this._physics),await this._buildDemoScene(t,e),this._log.timeEnd("sceneLoad"),this._log.info("Scene loaded successfully"),t}}const k=["trigger","toggle","value"];class U{constructor(e,t,s,i={}){n(this,"type","trigger");n(this,"action");n(this,"context");n(this,"deviceID");n(this,"reader");n(this,"_edgeMode");n(this,"_threshold");n(this,"_lastDigitalState",!1);this.action=e,this.deviceID=t,this.reader=s,this.context=i.context,this._edgeMode=i.edgeMode??"rising",this._threshold=i.threshold??.5}get options(){return{edgeMode:this._edgeMode,threshold:this._threshold}}process(e,t){const s=this.reader.getValue(e)??!1,i=typeof s=="boolean"?s:s>=this._threshold;let o=!1;switch(this._edgeMode){case"rising":o=i&&!this._lastDigitalState;break;case"falling":o=!i&&this._lastDigitalState;break;case"both":o=i!==this._lastDigitalState;break}if(this._lastDigitalState=i,o){let a;if(this.action.type==="analog"){let d=typeof s=="number"?s:s?1:0;if(this.action.minValue!==void 0||this.action.maxValue!==void 0){const l=this.action.minValue??0,p=this.action.maxValue??1;d=l+d*(p-l)}a=d}else a=!0;const c={type:`action:${this.action.name}`,payload:{value:a,deviceId:this.deviceID,context:this.context}};t.publish(c)}}toJSON(){return{type:this.type,action:this.action.name,input:{deviceID:this.deviceID,...this.reader.toJSON()},context:this.context,options:this.options}}}class R{constructor(e,t,s,i={}){n(this,"type","toggle");n(this,"action");n(this,"context");n(this,"deviceID");n(this,"reader");n(this,"_invert");n(this,"_threshold");n(this,"_initialState");n(this,"_onValue");n(this,"_offValue");n(this,"_lastDigitalState",!1);n(this,"_toggleState");this.action=e,this.deviceID=t,this.reader=s,this.context=i.context,this._invert=i.invert??!1,this._threshold=i.threshold??.5,this._initialState=i.initialState??!1,this._toggleState=this._initialState,this._onValue=i.onValue??!0,this._offValue=i.offValue??!1}get state(){return this._toggleState}set state(e){this._toggleState=e}get onValue(){return this._onValue}get offValue(){return this._offValue}get value(){return this.action.type==="analog"?this._toggleState?this.action.maxValue??1:this.action.minValue??0:this._toggleState?this._onValue:this._offValue}get options(){return{invert:this._invert,threshold:this._threshold,initialState:this._initialState,onValue:this._onValue,offValue:this._offValue}}process(e,t){const s=this.reader.getValue(e)??!1,i=typeof s=="boolean"?s:s>=this._threshold,o=this._invert?!i&&this._lastDigitalState:i&&!this._lastDigitalState;this._lastDigitalState=i,o&&(this._toggleState=!this._toggleState,t.publish({type:`action:${this.action.name}`,payload:{value:this.value,deviceId:this.deviceID,context:this.context}}))}reset(){this._toggleState=this._initialState}toJSON(){return{type:this.type,action:this.action.name,input:{deviceID:this.deviceID,...this.reader.toJSON()},state:this._toggleState,context:this.context,options:this.options}}}class T{constructor(e,t,s,i={}){n(this,"type","value");n(this,"action");n(this,"context");n(this,"deviceID");n(this,"reader");n(this,"_scale");n(this,"_offset");n(this,"_invert");n(this,"_emitOnChange");n(this,"_deadzone");n(this,"_onValue");n(this,"_offValue");n(this,"_min");n(this,"_max");n(this,"_lastValue");this.action=e,this.deviceID=t,this.reader=s,this.context=i.context,this._scale=i.scale??1,this._offset=i.offset??0,this._invert=i.invert??!1,this._emitOnChange=i.emitOnChange??!0,this._deadzone=i.deadzone??0,this._onValue=i.onValue??!0,this._offValue=i.offValue??!1;const o=this.action.type==="analog"?this.action.minValue??Number.NEGATIVE_INFINITY:Number.NEGATIVE_INFINITY;this._min=i.min??o;const a=this.action.type==="analog"?this.action.maxValue??Number.POSITIVE_INFINITY:Number.POSITIVE_INFINITY;this._max=i.max??a}get options(){return{scale:this._scale,offset:this._offset,invert:this._invert,emitOnChange:this._emitOnChange,deadzone:this._deadzone,onValue:this._onValue,offValue:this._offValue,min:this._min,max:this._max}}process(e,t){const s=this.reader.getValue(e);if(s===void 0)return;const i=typeof s=="boolean"?s?1:0:s;if(i===void 0)return;let o=this._deadzone>0&&Math.abs(i)<this._deadzone?0:i;o=(this._invert?-o:o)*this._scale+this._offset,o=Math.max(this._min,Math.min(this._max,o)),!(this._emitOnChange&&this._lastValue===o)&&(this._lastValue=o,t.publish({type:`action:${this.action.name}`,payload:{value:o,deviceId:this.deviceID,context:this.context}}))}toJSON(){return{type:this.type,action:this.action.name,input:{deviceID:this.deviceID,...this.reader.toJSON()},context:this.context,options:this.options}}}class S{constructor(e,t={}){n(this,"sourceType","key");n(this,"sourceKey");n(this,"useDelta");this.sourceKey=e,this.useDelta=t.useDelta||!1}getValue(e){if(e.type!=="keyboard")return;const t=e;return this.useDelta?t.delta[this.sourceKey]:t.keys[this.sourceKey]}static fromString(e,t={}){return new S(e,t)}toJSON(){return{type:"keyboard",sourceType:this.sourceType,sourceKey:this.sourceKey,options:{useDelta:this.useDelta}}}}class x{constructor(e,t){n(this,"sourceType");n(this,"sourceKey");this.sourceType=e,this.sourceKey=t}getValue(e){if(e.type==="mouse")switch(this.sourceType){case"button":{const t=e.buttons[this.sourceKey];return t?t.pressed:void 0}case"position":{const[t,s]=this.sourceKey.split(":");return!t||!s||t!=="absolute"&&t!=="relative"||s!=="x"&&s!=="y"?void 0:e.position[t][s]}case"wheel":{const t=this.sourceKey==="deltaX"||this.sourceKey==="deltaY"||this.sourceKey==="deltaZ";return e.wheel&&t?e.wheel[this.sourceKey]:void 0}default:return}}static fromString(e){const[t,...s]=e.split(":"),i=s.join(":");if(!t||!i)throw new Error(`Invalid mouse source format: ${e}`);return new x(t,i)}toJSON(){return{type:"mouse",sourceType:this.sourceType,sourceKey:this.sourceKey}}}class E{constructor(e,t,s={}){n(this,"sourceType");n(this,"sourceKey");n(this,"useAnalogValue");n(this,"deadzone");n(this,"invert");this.sourceType=e,this.sourceKey=t,this.useAnalogValue=s.useAnalogValue||!1,this.deadzone=s.deadzone||.1,this.invert=s.invert||!1}getValue(e){if(e.type==="gamepad")switch(this.sourceType){case"button":{const t=e.buttons[this.sourceKey];return t?this.useAnalogValue?t.value:t.pressed:void 0}case"axis":{let t=e.axes[this.sourceKey];return t===void 0?void 0:(Math.abs(t)<this.deadzone&&(t=0),this.invert?-t:t)}default:return}}static fromString(e,t={}){const[s,i]=e.split(":");if(!s||!i)throw new Error(`Invalid gamepad source format: ${e}`);return new E(s,i,t)}toJSON(){return{type:"gamepad",sourceType:this.sourceType,sourceKey:this.sourceKey,options:{useAnalogValue:this.useAnalogValue,deadzone:this.deadzone,invert:this.invert}}}}class z{constructor(e,t){n(this,"_bindings",new Map);n(this,"_actions",new Map);n(this,"_contexts",new Map);n(this,"_activeContexts",new Set);n(this,"_eventBus");n(this,"_log");this._eventBus=e,this._eventBus.subscribe("input:changed",s=>{s.payload&&this.$handleInput(s.payload.device,s.payload.state)}),this._log=(t==null?void 0:t.getLogger("BindingManager"))||new g("BindingManager"),this._log.debug("BindingManager initialized")}_isBindingContextActive(e){return e.context?this._activeContexts.has(e.context):!0}_getOrCreateContext(e,t=!0){let s=this._contexts.get(e);return s||(s={name:e,exclusive:t},this._contexts.set(e,s),this._log.debug(`Auto-created context "${e}" (exclusive: ${t})`)),s}_deactivateExclusiveContexts(e){const t=[];for(const s of this._activeContexts){if(s===e)continue;const i=this._contexts.get(s);i!=null&&i.exclusive&&(this._activeContexts.delete(s),t.push(s))}return t}_createBindingFromDefinition(e){const t=this._actions.get(e.action);if(!t)return this._log.warn(`Cannot create binding: Action "${e.action}" not found.`),null;const{deviceID:s,...i}=e.input;switch(e.type){case"trigger":return new U(t,s,this._createInputSourceFromDefinition(i),{...e.options||{},context:e.context});case"toggle":return new R(t,s,this._createInputSourceFromDefinition(i),{...e.options||{},context:e.context});case"value":return new T(t,s,this._createInputSourceFromDefinition(i),{...e.options||{},context:e.context});default:return this._log.error(`Binding type not implemented: ${e.type}`),null}}_createInputSourceFromDefinition(e){switch(e.type){case"keyboard":return new S(e.sourceKey,e.options);case"mouse":{const t=e.sourceType;if(!(t==="button"||t==="position"||t==="wheel"))throw new Error(`Invalid mouse source type: ${t}`);return new x(t,e.sourceKey)}case"gamepad":{const t=e.sourceType;if(!(t==="button"||t==="axis"))throw new Error(`Invalid gamepad source type: ${t}`);return new E(t,e.sourceKey,e.options)}default:throw new Error(`Unsupported input source type: ${e.type}`)}}$handleInput(e,t){const s=this._bindings.get(e.id);if(!(!s||s.length===0)&&!(this._activeContexts.size===0&&s.some(i=>i.context)))for(const i of s)this._isBindingContextActive(i)&&i.process(t,this._eventBus)}registerAction(e){if(this._log.debug(`Registering action "${e.name}"`),this._actions.has(e.name)){const t=`Action "${e.name}" already registered.`;throw this._log.error(t),new Error(t)}this._actions.set(e.name,e),this._log.debug(`Action "${e.name}" registered successfully`)}getAction(e){this._log.trace(`Getting action "${e}"`);const t=this._actions.get(e)??null;return t||this._log.debug(`Action "${e}" not found`),t}registerContext(e,t=!0){const s=this._getOrCreateContext(e,t);return s.exclusive!==t&&(s.exclusive=t,this._log.info(`Updated context "${e}" exclusivity: ${t}`)),s}activateContext(e){const s=this._getOrCreateContext(e).exclusive;this._log.debug(`Activating context "${e}" (exclusive: ${s})`);const i=this._activeContexts.has(e);if(s){const o=this._deactivateExclusiveContexts(e);o.length>0&&this._log.info(`Deactivated exclusive contexts: ${o.join(", ")}`)}i||(this._activeContexts.add(e),this._log.info(`Context "${e}" activated${s?" as exclusive":""}`))}deactivateContext(e){this._log.debug(`Deactivating context "${e}"`),this._activeContexts.has(e)?(this._activeContexts.delete(e),this._log.info(`Context "${e}" deactivated`)):this._log.debug(`Context "${e}" was not active`)}getActiveContexts(){return[...this._activeContexts]}isContextActive(e){return this._activeContexts.has(e)}getContext(e){return this._contexts.get(e)||null}$registerBinding(e){var t;if(!k.includes(e.type))throw new Error(`Invalid binding type: ${e.type}`);e.context&&!this._contexts.has(e.context)&&this.registerContext(e.context),this._bindings.has(e.deviceID)||this._bindings.set(e.deviceID,[]),(t=this._bindings.get(e.deviceID))==null||t.push(e),this._log.debug(`Registered ${e.type} binding for "${e.action.name}" in context "${e.context||null}"`)}registerBinding(e){const t=this._createBindingFromDefinition(e);t?this.$registerBinding(t):this._log.error(`Failed to create binding for action "${e.action}" with type "${e.type}"`)}unregisterBindings(e,t=null){this._log.debug(`Unregistering all bindings for action "${e}" in context "${t}"`);let s=0;for(const[i,o]of this._bindings.entries()){const a=o.filter(c=>{const d=c.context||null,l=c.action.name!==e||d!==t;return l||s++,l});a.length!==o.length&&this._bindings.set(i,a)}this._log.info(`Removed ${s} bindings for action "${e}" in context "${t}"`)}getBindingsForAction(e,t){const s=[];for(const i of this._bindings.values())for(const o of i){const a=o.context||null;o.action.name===e&&(!t||a===t)&&s.push(o)}return s}exportConfiguration(){this._log.debug("Exporting binding configuration");const e=[...this._actions.values()].map(i=>i.type==="analog"?{name:i.name,type:i.type,minValue:i.minValue??0,maxValue:i.maxValue??1}:i),t=[];for(const i of this._bindings.values())for(const o of i)t.push(o.toJSON());const s=[...this._contexts.values()].map(i=>({name:i.name,exclusive:i.exclusive,active:this._activeContexts.has(i.name)}));return this._log.info(`Configuration exported: ${e.length} actions, ${t.length} bindings, ${s.length} contexts`),{actions:e,bindings:t,contexts:s}}importConfiguration(e){this._log.debug("Importing binding configuration"),this._bindings.clear(),this._actions.clear(),this._contexts.clear(),this._activeContexts.clear();for(const t of e.actions)this.registerAction(t);for(const t of e.contexts)this.registerContext(t.name,t.exclusive),t.active&&this.activateContext(t.name);for(const t of e.bindings)try{this.registerBinding(t)}catch(s){s instanceof Error&&this._log.error(`Failed to import binding for action "${t.action}": ${s.message}`)}this._log.info(`Configuration imported: ${e.actions.length} actions, ${e.bindings.length} bindings, ${e.contexts.length} contexts`)}}function G(){return typeof window<"u"&&typeof window.document<"u"}function V(){return G()&&!!window.navigator.gpu}class P{constructor(e,t,s,i,o){n(this,"_engine");n(this,"_entityManager");n(this,"_inputManager");n(this,"_sceneEngine");n(this,"_currentScene",null);n(this,"_log");n(this,"started",!1);this._engine=e,this._sceneEngine=t,this._entityManager=s,this._inputManager=i,this._log=(o==null?void 0:o.getLogger("GameManager"))||new g("GameManager"),G()&&window.addEventListener("resize",this._resizeHandler.bind(this))}_renderLoop(){const e=this._engine.getDeltaTime();this._entityManager.$frameUpdate(e),this._inputManager&&this._inputManager.pollGamepads(),this._currentScene&&this._currentScene.render()}_resizeHandler(){this.started&&this._engine.resize()}async start(e){this._currentScene=await this._sceneEngine.loadScene(e),this._engine.runRenderLoop(this._renderLoop.bind(this)),this.started=!0,this._log.info("SkewedAspect Game Engine started successfully")}async stop(){this.started=!1,this._engine.stopRenderLoop(),this._log.info("SkewedAspect Game Engine stopped successfully")}}class W{constructor(){n(this,"entity",null)}$emit(e){if(!this.entity)throw new Error("Entity is not set for this behavior.");e.senderID=this.entity.id,this.entity.eventBus.publish(e)}$setEntity(e){this.entity=e}}class L{constructor(e,t,s,i){n(this,"id");n(this,"type");n(this,"state");n(this,"behaviors",new Map);n(this,"eventBus");n(this,"subscriptions",new Map);this.id=crypto.randomUUID(),this.type=e,this.state=s,this.eventBus=t;for(const o of i)this.attachBehavior(new o)}async $processEvent(e){for(const t of this.behaviors.values())if(await t.processEvent(e,this.state))break}$update(e){var t;for(const s of this.behaviors.values())(t=s.update)==null||t.call(s,e,this.state)}async $destroy(){var e;for(const t of this.behaviors.values())(e=t.destroy)==null||e.call(t);for(const t of this.subscriptions.values())t.unsubscribe();this.behaviors.clear(),this.subscriptions.clear()}attachBehavior(e){if(this.behaviors.has(e.name))throw new Error(`Behavior ${e.name} is already attached to this entity.`);for(const t of e.eventSubscriptions){const s=this.subscriptions.get(t);if(s)s.count++;else{const i=this.eventBus.subscribe(t,this.$processEvent.bind(this));this.subscriptions.set(t,{count:1,unsubscribe:i})}}this.behaviors.set(e.name,e),e.$setEntity(this)}detachBehavior(e){const t=this.behaviors.get(e);if(t){for(const s of t.eventSubscriptions){const i=this.subscriptions.get(s);i&&(i.count--,i.count<=0&&(i.unsubscribe(),this.subscriptions.delete(s)))}this.behaviors.delete(t.name),t.$setEntity(null)}}}class O{constructor(e,t,s){n(this,"eventBus");n(this,"entities",new Map);n(this,"entityDefinitions",new Map);n(this,"bindingManager");n(this,"_log");this.eventBus=e,this.bindingManager=s,this._log=(t==null?void 0:t.getLogger("EntityManager"))||new g("EntityManager"),this._log.info("EntityManager initialized")}areActionsCompatible(e,t){return!(e.type!==t.type||e.type==="analog"&&t.type==="analog"&&(t.minValue!==void 0&&e.minValue!==t.minValue||t.maxValue!==void 0&&e.maxValue!==t.maxValue))}registerEntityActions(e){if(e.actions)for(const t of e.actions)try{const s=this.bindingManager.getAction(t.name);s?this.areActionsCompatible(s,t)?this._log.trace(`Action "${t.name}" already registered with compatible options, skipping registration`):this._log.warn(`Action "${t.name}" already registered with different options. Entity "${e.type}" requires: ${JSON.stringify(t)}, but found: ${JSON.stringify(s)}`):(this._log.debug(`Registering action "${t.name}" from entity type "${e.type}"`),this.bindingManager.registerAction(t))}catch(s){this._log.debug(`Failed to register action "${t.name}": ${s instanceof Error?s.message:String(s)}`)}}$frameUpdate(e){this._log.trace(`Updating ${this.entities.size} entities with dt=${e}`);for(const t of this.entities.values())t.$update(e)}registerEntityDefinition(e){this._log.debug(`Registering entity definition: ${e.type}`),this.registerEntityActions(e),this.entityDefinitions.set(e.type,e)}createEntity(e,t={}){var a;this._log.debug(`Creating entity of type: ${e}`);const s=this.entityDefinitions.get(e);if(!s){const c=`Entity type ${e} is not registered.`;throw this._log.error(c),new Error(c)}this._log.trace(`Using entity definition with ${((a=s.behaviors)==null?void 0:a.length)||0} behaviors`);const i={...s.defaultState,...t},o=new L(s.type,this.eventBus,i,s.behaviors);return this.entities.set(o.id,o),this._log.debug(`Entity created with ID: ${o.id}`),o}destroyEntity(e){this._log.debug(`Destroying entity: ${e}`);const t=this.entities.get(e);t?(t.$destroy(),this.entities.delete(e),this._log.debug(`Entity ${e} destroyed`)):this._log.warn(`Attempted to destroy non-existent entity: ${e}`)}getEntity(e){return this._log.trace(`Getting entity: ${e}`),this.entities.get(e)??null}addEntity(e){this._log.debug(`Adding existing entity: ${e.id} (type: ${e.type})`),this.entities.set(e.id,e)}removeEntity(e){this._log.debug(`Removing entity: ${e}`),this.entities.get(e)?(this.entities.delete(e),this._log.debug(`Entity ${e} removed`)):this._log.warn(`Attempted to remove non-existent entity: ${e}`)}}class F{constructor(){n(this,"_keyboardDevice");n(this,"_keysState",{});n(this,"_onDeviceConnected");n(this,"_onInputChanged");this._keyboardDevice={id:"keyboard-0",name:"Keyboard",type:"keyboard",connected:!0},this._setupKeyboardEvents(),setTimeout(()=>this._notifyDeviceConnected(),0)}onDeviceConnected(e){this._onDeviceConnected=e}onInputChanged(e){this._onInputChanged=e}getState(){return{type:"keyboard",keys:{...this._keysState},delta:{}}}getDevice(){return{...this._keyboardDevice}}destroy(){window.removeEventListener("keydown",this._handleKeyDown),window.removeEventListener("keyup",this._handleKeyUp)}_setupKeyboardEvents(){this._handleKeyDown=this._handleKeyDown.bind(this),this._handleKeyUp=this._handleKeyUp.bind(this),window.addEventListener("keydown",this._handleKeyDown),window.addEventListener("keyup",this._handleKeyUp)}_handleKeyDown(e){this._keysState[e.code]=!0;const t={};t[e.code]=!0;const s={type:"keyboard",keys:{...this._keysState},delta:t,event:e};this._notifyInputChanged(s)}_handleKeyUp(e){this._keysState[e.code]=!1;const t={};t[e.code]=!1;const s={type:"keyboard",keys:{...this._keysState},delta:t,event:e};this._notifyInputChanged(s)}_notifyDeviceConnected(){this._onDeviceConnected&&this._onDeviceConnected(this._keyboardDevice)}_notifyInputChanged(e){this._onInputChanged&&this._onInputChanged(this._keyboardDevice,e)}}class N{constructor(e=document.body){n(this,"_targetElement");n(this,"_mouseDevice");n(this,"_buttonState",{});n(this,"_axesState",{});n(this,"_position",{absolute:{x:0,y:0},relative:{x:0,y:0}});n(this,"_wheelState",{deltaX:0,deltaY:0,deltaZ:0,deltaMode:0});n(this,"_onDeviceConnected");n(this,"_onInputChanged");this._targetElement=e,this._mouseDevice={id:"mouse-0",name:"Mouse",type:"mouse",connected:!0},this._setupMouseEvents(),this._axesState["axis-x"]=0,this._axesState["axis-y"]=0,setTimeout(()=>this._notifyDeviceConnected(),0)}onDeviceConnected(e){this._onDeviceConnected=e}onInputChanged(e){this._onInputChanged=e}getState(){return{type:"mouse",buttons:{...this._buttonState},axes:{...this._axesState},position:{absolute:{...this._position.absolute},relative:{...this._position.relative}},wheel:{...this._wheelState}}}getDevice(){return{...this._mouseDevice}}destroy(){this._targetElement.removeEventListener("mousedown",this._handleMouseDown),this._targetElement.removeEventListener("mouseup",this._handleMouseUp),this._targetElement.removeEventListener("mousemove",this._handleMouseMove),this._targetElement.removeEventListener("wheel",this._handleMouseWheel)}_setupMouseEvents(){this._handleMouseDown=this._handleMouseDown.bind(this),this._handleMouseUp=this._handleMouseUp.bind(this),this._handleMouseMove=this._handleMouseMove.bind(this),this._handleMouseWheel=this._handleMouseWheel.bind(this),this._targetElement.addEventListener("mousedown",this._handleMouseDown),this._targetElement.addEventListener("mouseup",this._handleMouseUp),this._targetElement.addEventListener("mousemove",this._handleMouseMove),this._targetElement.addEventListener("wheel",this._handleMouseWheel)}_handleMouseDown(e){const t=`button-${e.button}`,s={pressed:!0};this._buttonState[t]=s,this._notifyInputChanged({type:"mouse",event:e,buttons:{...this._buttonState},axes:{...this._axesState},position:{...this._position}})}_handleMouseUp(e){const t=`button-${e.button}`,s={pressed:!1};this._buttonState[t]=s,this._notifyInputChanged({type:"mouse",event:e,buttons:{...this._buttonState},axes:{...this._axesState},position:{...this._position}})}_handleMouseMove(e){this._position={absolute:{x:e.clientX,y:e.clientY},relative:{x:e.movementX,y:e.movementY}},this._axesState["axis-x"]=e.clientX,this._axesState["axis-y"]=e.clientY,this._notifyInputChanged({type:"mouse",event:e,buttons:{...this._buttonState},axes:{...this._axesState},position:{...this._position}})}_handleMouseWheel(e){this._wheelState={deltaX:e.deltaX,deltaY:e.deltaY,deltaZ:e.deltaZ,deltaMode:e.deltaMode},this._notifyInputChanged({type:"mouse",event:e,buttons:{...this._buttonState},axes:{...this._axesState},position:{...this._position},wheel:{...this._wheelState}})}_notifyDeviceConnected(){this._onDeviceConnected&&this._onDeviceConnected(this._mouseDevice)}_notifyInputChanged(e){this._onInputChanged&&this._onInputChanged(this._mouseDevice,e)}}class j{constructor(){n(this,"_gamepadDevices",{});n(this,"_buttonStates",{});n(this,"_axesStates",{});n(this,"_onDeviceConnected");n(this,"_onDeviceDisconnected");n(this,"_onInputChanged");this._setupGamepadEvents()}onDeviceConnected(e){this._onDeviceConnected=e}onDeviceDisconnected(e){this._onDeviceDisconnected=e}onInputChanged(e){this._onInputChanged=e}getDevices(){return Object.values(this._gamepadDevices).map(e=>({...e}))}getStates(){const e={};return Object.keys(this._buttonStates).forEach(t=>{const s=Number(t),i=this._buttonStates[s]||{},o=this._axesStates[s]||{};e[s]={type:"gamepad",buttons:{...i},axes:{...o}}}),e}getDevice(e){const t=this._gamepadDevices[e];return t?{...t}:null}getState(e){const t=this._buttonStates[e],s=this._axesStates[e];return!t&&!s?null:{type:"gamepad",buttons:t?{...t}:{},axes:s?{...s}:{}}}pollGamepads(){if(!navigator.getGamepads)return;const e=navigator.getGamepads();for(const t of e){if(!t)continue;const s=t.index;if(!this._gamepadDevices[s]){this._handleGamepadConnected(t);continue}const i=this._gamepadDevices[s];if(!i)continue;const o=this._buttonStates[s]||{},a=this._axesStates[s]||{},c={};let d=!1;t.buttons.forEach((_,b)=>{const m=`button-${b}`,v={pressed:_.pressed,touched:_.touched,value:_.value};c[m]=v;const w=o[m];(!w||w.pressed!==v.pressed||w.touched!==v.touched||w.value!==v.value)&&(d=!0)});const l={};let p=!1;if(t.axes.forEach((_,b)=>{const m=`axis-${b}`;l[m]=_,a[m]!==_&&(p=!0)}),this._buttonStates[s]=c,this._axesStates[s]=l,d||p){const _={type:"gamepad",buttons:{...c},axes:{...l}};this._notifyInputChanged(i,_)}}}destroy(){window.removeEventListener("gamepadconnected",this._handleGamepadConnected),window.removeEventListener("gamepaddisconnected",this._handleGamepadDisconnected)}_setupGamepadEvents(){if(this._handleGamepadConnected=this._handleGamepadConnected.bind(this),this._handleGamepadDisconnected=this._handleGamepadDisconnected.bind(this),window.addEventListener("gamepadconnected",this._handleGamepadConnected),window.addEventListener("gamepaddisconnected",this._handleGamepadDisconnected),navigator.getGamepads){const e=navigator.getGamepads();for(const t of e)t&&this._handleGamepadConnected(t)}}_handleGamepadConnected(e){const t=e instanceof GamepadEvent?e.gamepad:e,s=t.index,i={id:`gamepad-${s}`,name:t.id,type:"gamepad",connected:!0,index:s,mapping:t.mapping,axes:Array.from(t.axes),buttons:Array.from(t.buttons)};this._gamepadDevices[s]=i;const o={};Array.from(t.buttons).forEach((c,d)=>{o[`button-${d}`]={pressed:c.pressed,touched:c.touched,value:c.value}}),this._buttonStates[s]=o;const a={};Array.from(t.axes).forEach((c,d)=>{a[`axis-${d}`]=c}),this._axesStates[s]=a,this._notifyDeviceConnected(i),this._notifyInputChanged(i,{type:"gamepad",buttons:{...o},axes:{...a},event:e instanceof GamepadEvent?e:void 0})}_handleGamepadDisconnected(e){const s=e.gamepad.index,i=this._gamepadDevices[s];i&&(i.connected=!1,this._notifyDeviceDisconnected(i),this._gamepadDevices[s]=void 0,this._buttonStates[s]=void 0,this._axesStates[s]=void 0)}_notifyDeviceConnected(e){this._onDeviceConnected&&this._onDeviceConnected(e)}_notifyDeviceDisconnected(e){this._onDeviceDisconnected&&this._onDeviceDisconnected(e)}_notifyInputChanged(e,t){this._onInputChanged&&this._onInputChanged(e,t)}}class J{constructor(e,t,s){n(this,"_eventBus");n(this,"_keyboardRA");n(this,"_mouseRA");n(this,"_gamepadRA");n(this,"_log");this._eventBus=e,this._log=(s==null?void 0:s.getLogger("UserInputManager"))||new g("UserInputManager"),this._log.info("Initializing UserInputManager"),this._log.debug("Initializing input resource access classes"),this._keyboardRA=new F,this._mouseRA=new N(t),this._gamepadRA=new j,this._log.debug("Registering input event callbacks"),this._keyboardRA.onDeviceConnected(this._publishDeviceConnected.bind(this)),this._keyboardRA.onInputChanged(this._publishInputChanged.bind(this)),this._mouseRA.onDeviceConnected(this._publishDeviceConnected.bind(this)),this._mouseRA.onInputChanged(this._publishInputChanged.bind(this)),this._gamepadRA.onDeviceConnected(this._publishDeviceConnected.bind(this)),this._gamepadRA.onDeviceDisconnected(this._publishDeviceDisconnected.bind(this)),this._gamepadRA.onInputChanged(this._publishInputChanged.bind(this)),this._log.info("UserInputManager initialized successfully")}_publishDeviceConnected(e){this._log.debug(`Device connected: ${e.id} (${e.name})`);const t={type:"input:device:connected",payload:{device:e}};this._eventBus.publish(t)}_publishDeviceDisconnected(e){this._log.debug(`Device disconnected: ${e.id} (${e.name})`);const t={type:"input:device:disconnected",payload:{device:e}};this._eventBus.publish(t)}_publishInputChanged(e,t){this._log.trace(`Input changed: ${e.id}`,t);const s={type:"input:changed",payload:{deviceId:e.id,device:e,state:t}};this._eventBus.publish(s)}$destroy(){this._log.info("Destroying UserInputManager"),this._log.debug("Cleaning up input resource access instances"),this._keyboardRA.destroy(),this._mouseRA.destroy(),this._gamepadRA.destroy(),this._log.info("UserInputManager destroyed")}listDevices(){this._log.debug("Getting all connected input devices");const e=[];return e.push(this._keyboardRA.getDevice()),e.push(this._mouseRA.getDevice()),e.push(...this._gamepadRA.getDevices()),this._log.debug(`Found ${e.length} connected devices`),e}getDevice(e){if(this._log.debug(`Getting device: ${e}`),e.startsWith("keyboard-"))return this._keyboardRA.getDevice();if(e.startsWith("mouse-"))return this._mouseRA.getDevice();if(e.startsWith("gamepad-")){const t=parseInt(e.split("-")[1],10);return this._gamepadRA.getDevice(t)}else{const t=this.listDevices();for(const s of t)if(s.id===e)return s}return this._log.warn(`Device not found: ${e}`),null}pollGamepads(){this._gamepadRA.pollGamepads()}}async function B(r,e){const t=new h.WebGPUEngine(r,e);return await t.initAsync(),t}function D(r,e){return new h.Engine(r,e.antialias,e.options,e.adaptToDeviceRatio)}function Y(r){return new h.NullEngine(r)}async function H(r,e){if(r===null)return console.debug("Using Null Engine"),Y(e);const t=e.forceEngine||"auto";if(t==="webgpu")if(V())try{return console.debug("Using forced WebGPU engine"),await B(r,e)}catch(s){throw console.error("Forced WebGPU initialization failed:",s),new Error("Forced WebGPU failed to initialize. If WebGPU is required, check browser compatibility.")}else throw new Error("WebGPU was forced but is not available in this browser.");if(t==="webgl")return console.debug("Using forced WebGL engine"),D(r,e);if(V())try{return console.debug("Using WebGPU"),B(r,e).catch(s=>(console.warn("WebGPU initialization failed, falling back to WebGL:",s),D(r,e)))}catch(s){console.warn("WebGPU initialization failed, falling back to WebGL:",s)}else console.warn("WebGPU not supported, falling back to WebGL.");return console.debug("Using WebGL"),D(r,e)}async function X(){const r=await f();return new h.HavokPlugin(!0,r)}const q=["keyboard","mouse","gamepad"],Z=["trace","debug","info","warn","error","none"];async function Q(r,e={}){const t=new A(e.logLevel||"debug"),s=t.getLogger("SAGE");s.info(`Initializing SAGE Game Engine v${y}...`),s.debug("Creating rendering engine...");const i=await H(r,e.renderOptions||{});s.debug("Creating physics engine...");const o=await X();s.debug("Creating event bus...");const a=new I(t);s.debug("Creating scene engine...");const c=new K(i,o,t);s.debug("Creating managers...");const d=new J(a,r,t),l=new z(a,t),p=new O(a,t,l),_=new P(i,c,p,d,t);if(s.info(`SAGE Game Engine v${y} initialized successfully.`),s.debug("Registering default input bindings..."),e.bindings)for(const b of e.bindings)l.registerBinding(b);return new C(r,i,o,a,t,{sceneEngine:c},{bindingManager:l,entityManager:p,gameManager:_,inputManager:d})}u.ConsoleBackend=$,u.GameEntity=L,u.GameEntityBehavior=W,u.GameEventBus=I,u.LogLevels=Z,u.LoggingUtility=A,u.NullBackend=M,u.SAGELogger=g,u.SkewedAspectGameEngine=C,u.VERSION=y,u.bindingTypes=k,u.createGameEngine=Q,u.validDeviceTypes=q,Object.defineProperty(u,Symbol.toStringTag,{value:"Module"})});
2
2
  //# sourceMappingURL=sage.umd.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sage.umd.js","sources":["../src/utils/version.ts","../src/classes/gameEngine.ts","../src/classes/loggers/consoleBackend.ts","../src/classes/loggers/nullBackend.ts","../src/utils/logger.ts","../src/classes/eventBus.ts","../src/engines/scene.ts","../src/interfaces/binding.ts","../src/classes/bindings/trigger.ts","../src/classes/bindings/toggle.ts","../src/classes/bindings/value.ts","../src/classes/input/readers/keyboard.ts","../src/classes/input/readers/mouse.ts","../src/classes/input/readers/gamepad.ts","../src/managers/binding.ts","../src/utils/capabilities.ts","../src/managers/game.ts","../src/classes/entity.ts","../src/managers/entity.ts","../src/classes/input/keyboard.ts","../src/classes/input/mouse.ts","../src/classes/input/gamepad.ts","../src/managers/input.ts","../src/utils/graphics.ts","../src/utils/physics.ts","../src/sage.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["VERSION","SkewedAspectGameEngine","canvas","renderEngine","physics","eventBus","logger","engines","managers","__publicField","ConsoleBackend","level","styles","category","now","hours","minutes","seconds","ampm","timestamp","upperLevel","message","args","format","defaultStyle","levelStyle","resetStyle","label","timerKey","startTime","duration","NullBackend","_category","_message","_args","_label","SAGELogger","minLevel","backend","LoggingUtility","GameEventBus","eventTypeOrPattern","callback","eventType","subs","subscription","event","patternOrRegExp","regex","escaped","callbackCount","directSubs","sub","SceneEngine","engine","scene","camera","FreeCamera","Vector3","light","HemisphericLight","sphere","MeshBuilder","ground","PhysicsAggregate","PhysicsShapeType","Scene","bindingTypes","TriggerBinding","action","deviceID","reader","options","state","rawValue","digitalState","shouldTrigger","outputValue","finalValue","min","max","actionEvent","ToggleBinding","value","shouldToggle","ValueBinding","defaultMin","defaultMax","numericValue","KeyboardValueReader","keyCode","keyboardState","sourceKey","MouseValueReader","sourceType","buttonState","posType","axis","isValidWheelKey","sourceTypeString","keyParts","GamepadValueReader","BindingManager","binding","contextName","exclusive","context","exceptContextName","deactivatedContexts","definition","readerDef","device","bindings","errorMsg","actionName","isExclusive","isAlreadyActive","deactivated","_a","bindingsRemoved","deviceId","deviceBindings","newBindings","bindingContext","shouldKeep","result","actions","contexts","config","contextData","bindingDef","err","isBrowser","hasWebGPU","GameManager","sceneEngine","entityManager","inputManager","deltaTime","GameEntityBehavior","entity","GameEntity","type","initialState","behaviors","behaviorCtor","behavior","dt","existingSubscription","unsubscribe","behaviorName","GameEntityManager","bindingManager","existingAction","newAction","entityDef","mergedState","entityID","KeyboardInputPlugin","delta","MouseInputPlugin","targetElement","buttonKey","GamepadInputPlugin","states","indexStr","index","buttons","axes","gamepads","gamepad","currentButtons","currentAxes","newButtons","buttonsChanged","btn","i","prevButton","newAxes","axesChanged","axisValue","axisKey","gamepadDevice","buttonStateObj","axesStateObj","UserInputManager","gameEvent","devices","_buildWebGPUEngine","WebGPUEngine","_buildWebGLEngine","Engine","_buildNullEngine","NullEngine","createEngine","forceEngine","error","createPhysics","hk","HavokPhysics","HavokPlugin","createGameEngine","engineLogger","gameManager"],"mappings":"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"}
1
+ {"version":3,"file":"sage.umd.js","sources":["../src/utils/version.ts","../src/classes/gameEngine.ts","../src/classes/loggers/consoleBackend.ts","../src/classes/loggers/nullBackend.ts","../src/utils/logger.ts","../src/classes/eventBus.ts","../src/engines/scene.ts","../src/interfaces/binding.ts","../src/classes/bindings/trigger.ts","../src/classes/bindings/toggle.ts","../src/classes/bindings/value.ts","../src/classes/input/readers/keyboard.ts","../src/classes/input/readers/mouse.ts","../src/classes/input/readers/gamepad.ts","../src/managers/binding.ts","../src/utils/capabilities.ts","../src/managers/game.ts","../src/classes/entity.ts","../src/managers/entity.ts","../src/classes/input/keyboard.ts","../src/classes/input/mouse.ts","../src/classes/input/gamepad.ts","../src/managers/input.ts","../src/utils/graphics.ts","../src/utils/physics.ts","../src/interfaces/input.ts","../src/interfaces/logger.ts","../src/sage.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["VERSION","SkewedAspectGameEngine","canvas","renderEngine","physics","eventBus","logger","engines","managers","__publicField","ConsoleBackend","level","styles","category","now","hours","minutes","seconds","ampm","timestamp","upperLevel","message","args","format","defaultStyle","levelStyle","resetStyle","label","timerKey","startTime","duration","NullBackend","_category","_message","_args","_label","SAGELogger","minLevel","backend","LoggingUtility","GameEventBus","eventTypeOrPattern","callback","eventType","subs","subscription","event","patternOrRegExp","regex","escaped","callbackCount","directSubs","sub","SceneEngine","engine","scene","camera","FreeCamera","Vector3","light","HemisphericLight","sphere","MeshBuilder","ground","PhysicsAggregate","PhysicsShapeType","Scene","bindingTypes","TriggerBinding","action","deviceID","reader","options","state","rawValue","digitalState","shouldTrigger","outputValue","finalValue","min","max","actionEvent","ToggleBinding","value","shouldToggle","ValueBinding","defaultMin","defaultMax","numericValue","KeyboardValueReader","keyCode","keyboardState","sourceKey","MouseValueReader","sourceType","buttonState","posType","axis","isValidWheelKey","sourceTypeString","keyParts","GamepadValueReader","BindingManager","binding","contextName","exclusive","context","exceptContextName","deactivatedContexts","definition","readerDef","device","bindings","errorMsg","actionName","isExclusive","isAlreadyActive","deactivated","_a","bindingsRemoved","deviceId","deviceBindings","newBindings","bindingContext","shouldKeep","result","actions","contexts","config","contextData","bindingDef","err","isBrowser","hasWebGPU","GameManager","sceneEngine","entityManager","inputManager","deltaTime","GameEntityBehavior","entity","GameEntity","type","initialState","behaviors","behaviorCtor","behavior","dt","existingSubscription","unsubscribe","behaviorName","GameEntityManager","bindingManager","existingAction","newAction","entityDef","mergedState","entityID","KeyboardInputPlugin","delta","MouseInputPlugin","targetElement","buttonKey","GamepadInputPlugin","states","indexStr","index","buttons","axes","gamepads","gamepad","currentButtons","currentAxes","newButtons","buttonsChanged","btn","i","prevButton","newAxes","axesChanged","axisValue","axisKey","gamepadDevice","buttonStateObj","axesStateObj","UserInputManager","gameEvent","devices","_buildWebGPUEngine","WebGPUEngine","_buildWebGLEngine","Engine","_buildNullEngine","NullEngine","createEngine","forceEngine","error","createPhysics","hk","HavokPhysics","HavokPlugin","validDeviceTypes","LogLevels","createGameEngine","engineLogger","gameManager"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@skewedaspect/sage",
3
- "version": "0.3.0",
3
+ "version": "0.4.0",
4
4
  "main": "dist/sage.umd.js",
5
5
  "module": "dist/sage.es.js",
6
6
  "types": "dist/sage.d.ts",
package/src/sage.ts CHANGED
@@ -104,16 +104,19 @@ export async function createGameEngine(
104
104
  //----------------------------------------------------------------------------------------------------------------------
105
105
 
106
106
  export type { GameCanvas, RenderEngineOptions, SageOptions };
107
- export type { GameEvent, GameEventCallback } from './classes/eventBus.ts';
108
- export type { Action, AnalogAction, DigitalAction } from './interfaces/action.ts';
109
- export type { GameEntityDefinition, GameEntityBehaviorConstructor } from './interfaces/entity.ts';
110
- export type { LogLevel, LoggerInterface } from './interfaces/logger.ts';
107
+
108
+ export * from './interfaces/action.ts';
109
+ export * from './interfaces/binding.ts';
110
+ export * from './interfaces/entity.ts';
111
+ export * from './interfaces/game.ts';
112
+ export * from './interfaces/input.ts';
113
+ export * from './interfaces/logger.ts';
111
114
 
112
115
  // Export base classes
113
116
  export { GameEventBus, SkewedAspectGameEngine };
114
- export { GameEntity } from './classes/entity.ts';
115
- export { LoggingUtility, ConsoleBackend, NullBackend } from './utils/logger.ts';
116
- export { GameEntityBehavior } from './classes/entity.ts';
117
- export { VERSION } from './utils/version.ts';
117
+ export * from './classes/eventBus.ts';
118
+ export * from './classes/entity.ts';
119
+ export * from './utils/logger.ts';
120
+ export * from './utils/version.ts';
118
121
 
119
122
  //----------------------------------------------------------------------------------------------------------------------