{"version":3,"file":"rogue-engine-user-scripts.js","mappings":"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","sources":["webpack://[name]/webpack/universalModuleDefinition","webpack://[name]/./Assets/Components/DungeonGenerator.re.ts","webpack://[name]/./Assets/Components/EnemyAI.re.ts","webpack://[name]/./Assets/Components/FPSController.re.ts","webpack://[name]/./Assets/Components/Flashlight.re.ts","webpack://[name]/./Assets/Components/MeshGrid.re.ts","webpack://[name]/./Assets/Components/OrbitCamera.re.js","webpack://[name]/./Assets/Components/RaycastReceiver.re.js","webpack://[name]/./Assets/Components/RaycastReporter.re.js","webpack://[name]/./Assets/Components/TileRaycastReceiver.re.js","webpack://[name]/./Assets/Components/WorldFPSController.re.ts","webpack://[name]/external umd {\"commonjs\":\"rogue-engine\",\"commonjs2\":\"rogue-engine\",\"amd\":\"rogue-engine\",\"root\":\"rogue-engine\"}","webpack://[name]/external umd {\"commonjs\":\"three\",\"commonjs2\":\"three\",\"amd\":\"three\",\"root\":\"three\"}","webpack://[name]/webpack/bootstrap","webpack://[name]/webpack/runtime/chunk loaded","webpack://[name]/webpack/runtime/compat get default export","webpack://[name]/webpack/runtime/define property getters","webpack://[name]/webpack/runtime/hasOwnProperty shorthand","webpack://[name]/webpack/runtime/make namespace object","webpack://[name]/webpack/runtime/jsonp chunk loading","webpack://[name]/webpack/before-startup","webpack://[name]/webpack/startup","webpack://[name]/webpack/after-startup"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"rogue-engine\"), require(\"three\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"rogue-engine\", \"three\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"rogue-engine-user-scripts\"] = factory(require(\"rogue-engine\"), require(\"three\"));\n\telse\n\t\troot[\"rogue-engine-user-scripts\"] = factory(root[\"rogue-engine\"], root[\"three\"]);\n})(self, function(__WEBPACK_EXTERNAL_MODULE_rogue_engine__, __WEBPACK_EXTERNAL_MODULE_three__) {\nreturn ","import * as RE from 'rogue-engine';\n\nexport default class DungeonGenerator extends RE.Component {\n awake() {\n\n }\n\n start() {\n\n }\n\n update() {\n\n }\n}\n\nRE.registerComponent(DungeonGenerator);\n","import * as RE from 'rogue-engine';\nimport { Object3D, Vector3 } from 'three';\nimport WorldFPSController from './WorldFPSController.re';\n\nexport default class EnemyAI extends RE.Component {\n @RE.props.object3d() target: Object3D;\n @RE.props.num() movementSpeed: number = 0.3;\n @RE.props.num() attackDistance: number = 0.3;\n\n targetPosition: Vector3 = new Vector3();\n\n awake() {\n\n if(!this.target) {\n let gameLogic = RE.App.currentScene.getObjectByName(\"GameLogic\")\n this.target = RE.App.currentScene.getObjectByName(\"Player\") || new Object3D()\n this.targetPosition = RE.getComponent(WorldFPSController, gameLogic)?.characterOffset.position || this.target.position\n } else {\n this.targetPosition = this.target.position\n }\n\n }\n\n start() {\n\n }\n\n update() {\n const deltaTime = RE.Runtime.deltaTime;\n\n this.object3d.lookAt(this.target.position)\n\n let movementVector = new Vector3(0, 0, 1)\n if(this.object3d.position.distanceTo(this.targetPosition) <= this.attackDistance) {\n movementVector.set(0,0,0)\n }\n\n \n movementVector\n .transformDirection(this.object3d.matrix)\n .multiplyScalar(this.movementSpeed * deltaTime);\n this.object3d.position.x += movementVector.x;\n this.object3d.position.z += movementVector.z;\n\n }\n}\n\nRE.registerComponent(EnemyAI);\n","import * as RE from \"rogue-engine\";\r\nimport { Object3D, PerspectiveCamera, Vector3 } from \"three\";\r\n\r\nconst fwdDirection = new Vector3(0, 0, -1);\r\nconst bwdDirection = new Vector3(0, 0, 1);\r\nconst leftDirection = new Vector3(-1, 0, 0);\r\nconst rightDirection = new Vector3(1, 0, 0);\r\n\r\nexport default class FPSController extends RE.Component {\r\n @RE.props.num() rotSpeed: number = 1;\r\n @RE.props.num(-Math.PI/2, 0) minCameraRotY: number = -1.5708;\r\n @RE.props.num(0, Math.PI/2) maxCameraRotY: number = 1.5708;\r\n @RE.props.num() cameraHeight: number = 0.4;\r\n @RE.props.num() walkSpeed: number = 2;\r\n @RE.props.num() fwdSpeedMultiplier: number = 1.3;\r\n @RE.props.num() runSpeedMultiplier: number = 1.8;\r\n @RE.props.object3d() character: Object3D;\r\n\r\n camera: PerspectiveCamera;\r\n\r\n awake() {\r\n RE.Input.mouse.lock();\r\n\r\n this.camera = new PerspectiveCamera();\r\n RE.App.currentScene.add(this.camera);\r\n\r\n RE.App.activeCamera = this.camera.uuid;\r\n\r\n this.camera.position.copy(this.character.position);\r\n this.camera.position.y += this.cameraHeight;\r\n this.camera.rotation.copy(this.character.rotation);\r\n\r\n const appContainer = document.getElementById(\"rogue-app\");\r\n\r\n if (!appContainer) return;\r\n\r\n appContainer.onmousedown = (e) => {\r\n RE.Input.mouse.lock();\r\n };\r\n\r\n RE.Runtime.onStop(() => {\r\n if (!appContainer) return;\r\n\r\n appContainer.onmousedown = null;\r\n });\r\n\r\n this.camera.rotation.order = \"YXZ\";\r\n this.character.rotation.order = \"YXZ\";\r\n this.camera.up.set(0, 1, 0);\r\n }\r\n\r\n update() {\r\n const deltaTime = RE.Runtime.deltaTime;\r\n\r\n if (RE.Input.mouse.isMoving && document.pointerLockElement) {\r\n const mouseDeltaX = RE.Input.mouse.movementX * this.rotSpeed * deltaTime;\r\n const mouseDeltaY = RE.Input.mouse.movementY * this.rotSpeed * deltaTime;\r\n\r\n this.character.rotation.set(\r\n this.character.rotation.x,\r\n this.character.rotation.y - mouseDeltaX,\r\n this.character.rotation.z\r\n );\r\n\r\n this.camera.rotation.set(\r\n this.camera.rotation.x - mouseDeltaY,\r\n this.character.rotation.y,\r\n this.camera.rotation.z\r\n );\r\n\r\n this.camera.rotation.x = Math.max(\r\n this.minCameraRotY,\r\n Math.min(this.maxCameraRotY, this.camera.rotation.x)\r\n );\r\n }\r\n\r\n RE.Input.keyboard.getKeyPressed(\"Escape\") && RE.Input.mouse.unlock();\r\n\r\n let actualSpeed = this.walkSpeed;\r\n let onlyFwd = true;\r\n\r\n const movementVector = new Vector3();\r\n\r\n if (RE.Input.keyboard.getKeyDown(\"Space\")) {\r\n //jump logic here\r\n }\r\n\r\n if (RE.Input.keyboard.getKeyPressed(\"KeyW\")) {\r\n movementVector.add(fwdDirection);\r\n } else if (RE.Input.keyboard.getKeyPressed(\"KeyS\")) {\r\n movementVector.add(bwdDirection);\r\n onlyFwd = false;\r\n }\r\n\r\n if (RE.Input.keyboard.getKeyPressed(\"KeyA\")) {\r\n movementVector.add(leftDirection);\r\n onlyFwd = false;\r\n } else if (RE.Input.keyboard.getKeyPressed(\"KeyD\")) {\r\n movementVector.add(rightDirection);\r\n onlyFwd = false;\r\n }\r\n\r\n if (onlyFwd) {\r\n if (RE.Input.keyboard.getKeyPressed(\"ShiftLeft\")) {\r\n actualSpeed *= this.runSpeedMultiplier;\r\n } else {\r\n actualSpeed *= this.fwdSpeedMultiplier;\r\n }\r\n }\r\n\r\n movementVector.normalize();\r\n\r\n if (movementVector.length() > 0) {\r\n movementVector.copy(\r\n movementVector\r\n .transformDirection(this.character.matrix)\r\n .multiplyScalar(actualSpeed * deltaTime)\r\n );\r\n this.character.position.x += movementVector.x;\r\n this.character.position.z += movementVector.z;\r\n }\r\n\r\n this.camera.position.set(\r\n this.character.position.x,\r\n this.character.position.y + this.cameraHeight,\r\n this.character.position.z\r\n );\r\n }\r\n}\r\n\r\nRE.registerComponent(FPSController);\r\n","import * as RE from 'rogue-engine';\n\nexport default class Flashlight extends RE.Component {\n awake() {\n \n }\n\n start() {\n this.object3d.getObjectByName(\"Spotlight\")?.lookAt(this.object3d.position.x, this.object3d.position.y -0.4, this.object3d.position.z - 1)\n }\n\n update() {\n\n }\n}\n\nRE.registerComponent(Flashlight);\n","import * as RE from \"rogue-engine\";\nimport { Object3D } from \"three\";\n\nexport default class MeshGrid extends RE.Component {\n\t@RE.props.list.prefab() allModels: RE.Prefab[] = [];\n\n\tawake() {\n\t\tlet x = 0;\n\t\tlet z = 0;\n\t\tif (this.allModels.length > 0) {\n\t\t\tthis.allModels.forEach(prefab => {\n\t\t\t\tlet model = prefab.instantiate(RE.App.currentScene);\n\t\t\t\tmodel.position.set(x + 0.5 * x, 0, z + 0.5 * z);\n\t\t\t\tx++;\n\t\t\t\tif (x == 6) {\n\t\t\t\t\tx = 0;\n\t\t\t\t\tz++;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\n\tstart() {}\n\n\tupdate() {}\n}\n\nRE.registerComponent(MeshGrid);\n","import * as RE from 'rogue-engine'\nimport * as THREE from 'three'\n\nexport default class OrbitCamera extends RE.Component {\n\t@RE.props.object3d() target\n\n\trotateStart = new THREE.Vector2()\n\trotateEnd = new THREE.Vector2()\n\trotateDelta = new THREE.Vector2()\n\t@RE.props.checkbox() enableRotate = true\n\t@RE.props.num() rotateSpeed = 1.0\n\n\t// How far you can orbit horizontally, upper and lower limits.\n\t// If set, the interval [ min, max ] must be a sub-interval of [ - 2 PI, 2 PI ], with ( max - min < 2 PI )\n\t@RE.props.num() minAzimuthAngle = - Infinity // radians\n\t@RE.props.num() maxAzimuthAngle = Infinity // radians\n\n\t// How far you can orbit vertically, upper and lower limits.\n\t// Range is 0 to Math.PI radians.\n\t@RE.props.num() minPolarAngle = 0 // radians\n\t@RE.props.num() maxPolarAngle = Math.PI // radians\n\n\t@RE.props.checkbox() enableDolly = true\n\t@RE.props.num() dollySpeed = 1.0\n\n\t@RE.props.num() minDistance = 1\n\t@RE.props.num() maxDistance = 50\n\n\tscale = 1\n\tEPS = 0.000001\n\ttwoPI = 2 * Math.PI\n\n\tspherical = new THREE.Spherical()\n\tsphericalDelta = new THREE.Spherical()\n\n\t@RE.props.vector3() offset = new THREE.Vector3()\n\n\t@RE.props.num() rotateMouseButton = 2\n\t\n\tquat = new THREE.Quaternion().setFromUnitVectors( new THREE.Vector3( 0, 1, 0 ), new THREE.Vector3( 0, 1, 0 ) )\n\tquatInverse = this.quat.clone().invert()\n\n\tlastPosition = new THREE.Vector3()\n\tlastQuaternion = new THREE.Quaternion()\n\n\tinitialOffset = new THREE.Vector3()\n\n awake() {\n }\n\n start() {\n\n\tRE.Runtime.rogueDOMContainer.addEventListener('contextmenu', event => { event.preventDefault() })\n\t\n\t// so camera.up is the orbit axis\n\tthis.quat = new THREE.Quaternion().setFromUnitVectors( this.object3d.up, new THREE.Vector3( 0, 1, 0 ) )\n\tthis.quatInverse = this.quat.clone().invert()\n\n\tthis.initialOffset.copy(this.object3d.position).sub(this.target.position)\n\tthis.offset.copy(this.initialOffset)\n }\n\n update() {\t\n\tlet normalizedScreenPosition = new THREE.Vector2(0,0)\n\tthis.normalizeScreenInput(RE.Input.mouse, normalizedScreenPosition)\n\n\tif(this.enableRotate && RE.Input.mouse.getButtonDown(this.rotateMouseButton)) {\n\t\tthis.rotateStart.set( normalizedScreenPosition.x, normalizedScreenPosition.y )\n\t}\n\n\tif(this.enableRotate && RE.Input.mouse.getButtonPressed(this.rotateMouseButton)) {\n\t\tthis.rotateEnd.set( normalizedScreenPosition.x, normalizedScreenPosition.y )\n\n\t\tthis.rotateDelta.subVectors( this.rotateEnd, this.rotateStart ).multiplyScalar( this.rotateSpeed )\n\n\t\tthis.rotateLeft(this.twoPI * this.rotateDelta.x)\n\n\t\tthis.rotateUp(this.twoPI * -this.rotateDelta.y)\n\n\t\tthis.rotateStart.copy( this.rotateEnd )\n\t}\n\n\tif(this.enableDolly && RE.Input.mouse.wheelY > 0) {\n\t\tthis.dollyOut()\n\t}\n\n\tif(this.enableDolly && RE.Input.mouse.wheelY < 0) {\n\t\tthis.dollyIn()\n\t}\n\n\tthis.updateCamera()\n}\n\n\trotateLeft(angle) {\n\t\tthis.sphericalDelta.theta -= angle\n\t}\n\n\trotateUp(angle) {\n\t\tthis.sphericalDelta.phi -= angle\n\t}\n\n\tupdateCamera() {\n\t\t// rotate offset to \"y-axis-is-up\" space\n\t\tthis.offset.applyQuaternion(this.quat)\n\n\t\t// angle from z-axis around y-axis\n\t\tthis.spherical.setFromVector3(this.offset)\n\t\tthis.spherical.theta += this.sphericalDelta.theta\n\t\tthis.spherical.phi += this.sphericalDelta.phi\n\n\t\t// restrict theta to be between desired limits\n\t\tlet min = this.minAzimuthAngle\n\t\tlet max = this.maxAzimuthAngle\n\n\t\tif ( isFinite(min) && isFinite(max) ) {\n\n\t\t\tif (min < -Math.PI) {\n\t\t\t\tmin += this.twoPI\n\t\t\t} else if (min > Math.PI) {\n\t\t\t\tmin -= this.twoPI\n\t\t\t}\n\n\t\t\tif (max < - Math.PI) {\n\t\t\t\tmax += this.twoPI\n\t\t\t} else if (max > Math.PI) {\n\t\t\t\tmax -= this.twoPI\n\t\t\t}\n\n\t\t\tif (min <= max) {\n\t\t\t\tthis.spherical.theta = Math.max(min, Math.min(max, this.spherical.theta))\n\t\t\t} else {\n\t\t\t\tthis.spherical.theta = (this.spherical.theta > (min + max) / 2 ) ?\n\t\t\t\t\tMath.max( min, this.spherical.theta ) :\n\t\t\t\t\tMath.min( max, this.spherical.theta )\n\t\t\t}\n\t\t}\n\n\t\t// restrict phi to be between desired limits\n\t\tthis.spherical.phi = Math.max(this.minPolarAngle, Math.min(this.maxPolarAngle, this.spherical.phi))\n\n\t\tthis.spherical.makeSafe()\n\n\n\t\tthis.spherical.radius *= this.scale\n\n\t\t// restrict radius to be between desired limits\n\t\tthis.spherical.radius = Math.max(this.minDistance, Math.min(this.maxDistance, this.spherical.radius))\n\n\t\tthis.offset.setFromSpherical(this.spherical)\n\n\t\t// rotate offset back to \"camera-up-vector-is-up\" space\n\t\tthis.offset.applyQuaternion(this.quatInverse)\n\n\t\tthis.object3d.position.copy(this.target.position).add(this.offset)\n\n\t\tthis.object3d.lookAt(this.target.position)\n\n\t\tthis.sphericalDelta.set(0, 0, 0)\n\n\t\tthis.scale = 1\n\n\t\t// update condition is:\n\t\t// min(camera displacement, camera rotation in radians)^2 > EPS\n\t\t// using small-angle approximation cos(x/2) = 1 - x^2 / 8\n\t\tif (this.lastPosition.distanceToSquared(this.object3d.position) > this.EPS ||\n\t\t\t8 * (1 - this.lastQuaternion.dot(this.object3d.quaternion)) > this.EPS) {\n\n\t\t\tthis.lastPosition.copy(this.object3d.position)\n\t\t\tthis.lastQuaternion.copy(this.object3d.quaternion)\n\t\t}\n\t}\n\n\tdollyOut() {\n\t\tthis.scale /= Math.pow(0.95, this.dollySpeed)\n\t}\n\n\tdollyIn() {\n\t\tthis.scale *= Math.pow(0.95, this.dollySpeed)\n\t}\n\n normalizeScreenInput(browserVector, gameVector) {\n\tconst bounds = RE.Runtime.rogueDOMContainer.getBoundingClientRect()\n\tgameVector.x = ((browserVector.x - bounds.left) / bounds.width) * 2 - 1\n\tgameVector.y = -((browserVector.y - bounds.top) / bounds.height) * 2 + 1\n }\n}\n\nRE.registerComponent(OrbitCamera)\n","import * as RE from 'rogue-engine';\n\nexport default class RaycastReceiver extends RE.Component {\n onMouseOver(intersect) {\n throw new Error(\"Abstract class: Please inherit from this class to use it's behavior\")\n }\n\n onMouseOut(){\n throw new Error(\"Abstract class: Please inherit from this class to use it's behavior\")\n }\n}\n\nRE.registerComponent(RaycastReceiver);","import * as RE from 'rogue-engine';\nimport * as THREE from 'three'\nimport { Vector2 } from 'three';\nimport RaycastReceiver from './RaycastReceiver.re';\n\nexport default class RaycastReporter extends RE.Component {\n\t// @RE.Prop(\"Select\") something;\n\t// somethingOptions = [\"One\", \"Two\"]\n\n\t@RE.PropList(\"String\") receiverClass = [\"RaycastReceiver\"]\n\tallHovered = []\n\tawake() {\n\n\t}\n\n\tstart() {\n\t\tthis.mouse = new THREE.Vector2(0, 0)\n\t\tthis.raycaster = new THREE.Raycaster()\n\t\tthis.updated = false\n\t\tRE.Input.touch.enabled = true\n\t}\n\n\tnormalizeScreenInput(browserVector, gameVector) {\n\t\tconst bounds = RE.Runtime.rogueDOMContainer.getBoundingClientRect();\n\t\tgameVector.x = ((browserVector.x - bounds.left) / bounds.width) * 2 - 1;\n\t\tgameVector.y = -((browserVector.y - bounds.top) / bounds.height) * 2 + 1\n\t}\n\n\tgetMouseInput() {\n\t\tif (!RE.Input.mouse.isMoving) {\n\t\t\treturn\n\t\t}\n\t\tthis.normalizeScreenInput(RE.Input.mouse, this.mouse)\n\t\tthis.updated = true\n\t}\n\n\tgetTouchInput() {\n\t\tif (RE.Input.touch.touches.length == 0) {\n\t\t\treturn\n\t\t}\n\n\t\tthis.normalizeScreenInput(RE.Input.touch.touches[0], this.mouse)\n\t\tthis.updated = true\n\n\t}\n\n\tupdate() {\n\t\tthis.updated = false\n\t\tthis.getMouseInput()\n\t\tthis.getTouchInput()\n\n\t\tif (!this.updated) {\n\t\t\treturn\n\t\t}\n\n\t\tthis.raycaster.setFromCamera(this.mouse, this.object3d)\n\n\t\tlet intersects = this.raycaster.intersectObjects(RE.App.currentScene.children)\n\n\t\tlet listeningComponents = []\n\t\tintersects.forEach(intersect => {\n\t\t\tlet object3d = RE.App.currentScene.getObjectByProperty('uuid', intersect.object.uuid)\n\t\t\tlet component = RE.getComponent(RaycastReceiver, object3d)\n\t\t\twhile (component == null && object3d.parent != null) {\n\t\t\t\tobject3d = object3d.parent\n\t\t\t\tcomponent = RE.getComponent(RaycastReceiver, object3d)\n\t\t\t}\n\t\t\tif (component != null) {\n\t\t\t\tlisteningComponents = listeningComponents.filter((dataThing) => {\n\t\t\t\t\tdataThing.component.object3d.uuid != component.object3d.uuid\n\t\t\t\t})\n\t\t\t\tlisteningComponents.push({ component: component, intersect: intersect })\n\t\t\t}\n\t\t})\n\n\t\tfor (let i = 0; i < this.allHovered.length; i++) {\n\t\t\tlet dataThing = this.allHovered[i]\n\t\t\tif (!listeningComponents.includes(dataThing)) {\n\t\t\t\tdataThing.component.onMouseOut()\n\t\t\t}\n\t\t}\n\n\t\tthis.allHovered = []\n\n\t\tfor (let i = 0; i < listeningComponents.length; i++) {\n\t\t\tlet dataThing = listeningComponents[i]\n\t\t\tthis.allHovered.push(dataThing)\n\t\t\tif (dataThing.component.onMouseOver(dataThing.intersect) === false) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n}\n\nRE.registerComponent(RaycastReporter);\n","import * as RE from 'rogue-engine';\nimport RaycastReceiver from './RaycastReceiver.re';\nimport * as THREE from 'three'\n\nexport default class TileRaycastReceiver extends RaycastReceiver {\n @RE.props.vector2() tileSize = new THREE.Vector2(1.0, 1.0)\n\n isHovered = false\n\n onMouseOver(intersect) {\n this.isHovered = true \n RE.Runtime.rogueDOMContainer.style.cursor = \"pointer\"\n }\n\n onMouseOut(){\n if(this.isHovered) {\n this.isHovered = false\n RE.Runtime.rogueDOMContainer.style.cursor = \"default\"\n } \n }\n\n getPosition() {\n return this.object3d.position\n }\n\n awake() {\n\n }\n\n start() {\n }\n\n update() {\n if(!this.isHovered) {\n return\n }\n\n if(RE.Input.mouse.getButtonDown(0) || RE.Input.touch.touches.length == 1) {\n let target = RE.App.currentScene.getObjectByName(\"CameraTarget\")\n if(!target) {\n RE.Debug.logWarning(\"didn't find CameraTarget Object3D\")\n return\n }\n target.position.set(this.object3d.position.x, this.object3d.position.y, this.object3d.position.z)\n }\n\n }\n}\n\nRE.registerComponent(TileRaycastReceiver);\n","import * as RE from \"rogue-engine\";\nimport { Object3D, Vector3 } from \"three\";\n\nconst fwdDirection = new Vector3(0, 0, -1);\nconst bwdDirection = new Vector3(0, 0, 1);\nconst leftDirection = new Vector3(-1, 0, 0);\nconst rightDirection = new Vector3(1, 0, 0);\nconst upDirection = new Vector3(0, 1, 0);\nconst downDirection = new Vector3(0, -1, 0);\n\nexport default class WorldFPSController extends RE.Component {\n\t@RE.props.object3d() mainCamera: Object3D;\n\t@RE.props.num() horizontalLookSpeed: number = 360;\n\t@RE.props.num() verticalLookSpeed: number = 180;\n\t@RE.props.num(-Math.PI / 2, 0) minCameraRotY: number = -1.5708;\n\t@RE.props.num(0, Math.PI / 2) maxCameraRotY: number = 1.5708;\n\t@RE.props.num() cameraHeight: number = 0.4;\n\t@RE.props.num() walkSpeed: number = 2;\n\t@RE.props.num() fwdSpeedMultiplier: number = 1.3;\n\t@RE.props.num() runSpeedMultiplier: number = 1.8;\n\t@RE.props.object3d() character: Object3D;\n\t@RE.props.list.object3d() worldObjects: Object3D[];\n\t@RE.props.vector3() characterOffsetPosition: Vector3;\n\t@RE.props.vector3() characterRotatePosition: Vector3;\n\n\tcharacterOffset: Object3D = new Object3D();\n\n\tawake() {\n\t\tRE.Input.mouse.lock();\n\n\t\t\n\t\tthis.characterOffset.position.copy(this.character.position);\n\t\tthis.mainCamera.position.set(0,0,0);\n\t\tthis.character.position.set(0,0,0);\n\t\tthis.mainCamera.position.y += this.cameraHeight;\n\t\tthis.mainCamera.rotation.copy(this.character.rotation);\n\n\t\tthis.worldObjects.forEach(worldObject => {\n\t\t\tworldObject.position.set(\n\t\t\t\t-this.characterOffset.position.x,\n\t\t\t\t-this.characterOffset.position.y,\n\t\t\t\t-this.characterOffset.position.z\n\t\t\t);\n\t\t});\n\n\t\tconst appContainer = document.getElementById(\"rogue-app\");\n\n\t\tif (!appContainer) return;\n\n\t\tappContainer.onmousedown = e => {\n\t\t\tRE.Input.mouse.lock();\n\t\t};\n\n\t\tRE.Runtime.onStop(() => {\n\t\t\tif (!appContainer) return;\n\n\t\t\tappContainer.onmousedown = null;\n\t\t});\n\n\t\tthis.mainCamera.rotation.order = \"YXZ\";\n\t\tthis.character.rotation.order = \"YXZ\";\n\t\tthis.mainCamera.up.set(0, 1, 0);\n\t}\n\n\tupdate() {\n\t\tconst deltaTime = RE.Runtime.deltaTime;\n\n\t\tconst appContainer = document.getElementById(\"rogue-app\");\n\t\tif (!appContainer) return;\n\n\t\tif (RE.Input.mouse.isMoving && document.pointerLockElement) {\n\t\t\tconsole.log(\"movement Ratio\", (RE.Input.mouse.movementX / appContainer.clientWidth), (RE.Input.mouse.movementY/ appContainer.clientHeight))\n\t\t\tconst mouseDeltaX = (RE.Input.mouse.movementX / appContainer.clientWidth) * this.horizontalLookSpeed * deltaTime;\n\t\t\tconst mouseDeltaY = (RE.Input.mouse.movementY/ appContainer.clientHeight) * this.verticalLookSpeed * deltaTime;\n\n\t\t\tthis.character.rotation.set(\n\t\t\t\tthis.character.rotation.x,\n\t\t\t\tthis.character.rotation.y - mouseDeltaX,\n\t\t\t\tthis.character.rotation.z\n\t\t\t );\n\t\t\n\t\t\t this.mainCamera.rotation.set(\n\t\t\t\tthis.mainCamera.rotation.x - mouseDeltaY,\n\t\t\t\tthis.character.rotation.y,\n\t\t\t\tthis.mainCamera.rotation.z\n\t\t\t );\n\n\t\t\tthis.mainCamera.rotation.x = Math.max(this.minCameraRotY, Math.min(this.maxCameraRotY, this.mainCamera.rotation.x));\n\t\t}\n\n\t\tRE.Input.keyboard.getKeyPressed(\"Escape\") && RE.Input.mouse.unlock();\n\n\t\tlet actualSpeed = this.walkSpeed;\n\t\tlet onlyFwd = true;\n\n\t\tconst movementVector = new Vector3();\n\n\t\t// if (RE.Input.keyboard.getKeyDown(\"Space\")) {\n\t\t// //jump logic here\n\t\t// movementVector.add(upDirection);\n\t\t// }\n\n\t\tif (RE.Input.keyboard.getKeyPressed(\"Space\")) {\n\t\t\tmovementVector.add(upDirection);\n\t\t}\n\n\t\tif (RE.Input.keyboard.getKeyPressed(\"ControlLeft\")) {\n\t\t\tmovementVector.add(downDirection);\n\t\t}\n\n\t\tif (RE.Input.keyboard.getKeyPressed(\"KeyW\")) {\n\t\t\tmovementVector.add(fwdDirection);\n\t\t} else if (RE.Input.keyboard.getKeyPressed(\"KeyS\")) {\n\t\t\tmovementVector.add(bwdDirection);\n\t\t\tonlyFwd = false;\n\t\t}\n\n\t\tif (RE.Input.keyboard.getKeyPressed(\"KeyA\")) {\n\t\t\tmovementVector.add(leftDirection);\n\t\t\tonlyFwd = false;\n\t\t} else if (RE.Input.keyboard.getKeyPressed(\"KeyD\")) {\n\t\t\tmovementVector.add(rightDirection);\n\t\t\tonlyFwd = false;\n\t\t}\n\n\t\tif (onlyFwd) {\n\t\t\tif (RE.Input.keyboard.getKeyPressed(\"ShiftLeft\")) {\n\t\t\t\tactualSpeed *= this.runSpeedMultiplier;\n\t\t\t} else {\n\t\t\t\tactualSpeed *= this.fwdSpeedMultiplier;\n\t\t\t}\n\t\t}\n\n\t\tmovementVector.normalize();\n\n\t\tif (movementVector.length() > 0) {\n\t\t\tmovementVector.copy(\n\t\t\t\tmovementVector\n\t\t\t\t\t.transformDirection(this.character.matrix)\n\t\t\t\t\t.multiplyScalar(actualSpeed * deltaTime)\n\t\t\t);\n\t\t\tthis.characterOffset.position.x += movementVector.x;\n\t\t\tthis.characterOffset.position.y += movementVector.y;\n\t\t\tthis.characterOffset.position.z += movementVector.z;\n\n\t\t\tthis.worldObjects.forEach(worldObject => {\n\t\t\t\tworldObject.position.set(\n\t\t\t\t\t-this.characterOffset.position.x,\n\t\t\t\t\t-this.characterOffset.position.y,\n\t\t\t\t\t-this.characterOffset.position.z\n\t\t\t\t);\n\t\t\t});\n\t\t}\n\n\t\tthis.characterOffsetPosition.set(\n\t\t\tthis.characterOffset.position.x,\n\t\t\tthis.characterOffset.position.y,\n\t\t\tthis.characterOffset.position.z\n\t\t);\n\n\t\tthis.characterRotatePosition.set(\n\t\t\tthis.characterOffset.rotation.x,\n\t\t\tthis.characterOffset.rotation.y,\n\t\t\tthis.characterOffset.rotation.z\n\t\t);\n\t}\n}\n\nRE.registerComponent(WorldFPSController);\n","module.exports = __WEBPACK_EXTERNAL_MODULE_rogue_engine__;","module.exports = __WEBPACK_EXTERNAL_MODULE_three__;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t\"rogue-engine-user-scripts\": 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunk_name_\"] = self[\"webpackChunk_name_\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","","// startup\n// Load entry module and return exports\n__webpack_require__(\"./Assets/Components/DungeonGenerator.re.ts\");\n__webpack_require__(\"./Assets/Components/EnemyAI.re.ts\");\n__webpack_require__(\"./Assets/Components/Flashlight.re.ts\");\n__webpack_require__(\"./Assets/Components/FPSController.re.ts\");\n__webpack_require__(\"./Assets/Components/MeshGrid.re.ts\");\n__webpack_require__(\"./Assets/Components/OrbitCamera.re.js\");\n// This entry module is referenced by other modules so it can't be inlined\n__webpack_require__(\"./Assets/Components/RaycastReceiver.re.js\");\n__webpack_require__(\"./Assets/Components/RaycastReporter.re.js\");\n__webpack_require__(\"./Assets/Components/TileRaycastReceiver.re.js\");\nvar __webpack_exports__ = __webpack_require__(\"./Assets/Components/WorldFPSController.re.ts\");\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n",""],"names":[],"sourceRoot":""}