@needle-tools/engine 2.38.0-pre.1 → 2.39.0-pre

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/CHANGELOG.md CHANGED
@@ -4,6 +4,17 @@ All notable changes to this package will be documented in this file.
4
4
  The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
5
5
  and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
6
6
 
7
+ ## [2.39.0-pre] - 2022-11-04
8
+ - Add: physics FixedJoint
9
+ - Change: CharacterController now rotates with camera
10
+ - Change: scaled mesh colliders are now cached
11
+ - Change: disable OrbitControls when in XR
12
+ - Change: first enabled camera component sets itself as rendering camera if no camera is yet assigned (mainCamera still overrides that)
13
+ - Change: package module field now shows to ``src/needle-engine``
14
+ - Change: ``Camera.backgroundColor`` assigning Color without alpha sets alpha to 1 now
15
+ - Fix: improved missing ``serializable`` detection / warning: now only shows warning for members actually declared in script
16
+ - Fix: wrong light intensity in VR when light is child of WebARSessionRoot [issue 103](https://github.com/needle-tools/needle-engine-support/issues/103)
17
+
7
18
  ## [2.38.0-pre] - 2022-11-02
8
19
  - Add ``context.isInAR`` and ``context.isInVR`` properties
9
20
  - Add physics capsule collider support
@@ -346,6 +346,14 @@ declare module "engine/engine_serialization_core" {
346
346
  export interface ITypeInformation {
347
347
  type?: Constructor<any>;
348
348
  }
349
+ /** holds information if a field was undefined before serialization. This gives us info if we might want to warn the user about missing attributes */
350
+ export class ImplementationInformation {
351
+ private isDevMode;
352
+ private cache;
353
+ /** only call when assigning values for the very first time */
354
+ registerDefinedKeys(typeName: string, type: object): void;
355
+ getDefinedKey(typeName: string, key: string): boolean;
356
+ }
349
357
  export class SerializationContext {
350
358
  root: THREE.Object3D;
351
359
  gltf?: GLTF;
@@ -357,6 +365,8 @@ declare module "engine/engine_serialization_core" {
357
365
  objectToNode?: ObjectToNodeMap;
358
366
  context?: Context;
359
367
  path?: string;
368
+ /** holds information if a field was undefined before serialization. This gives us info if we might want to warn the user about missing attributes */
369
+ implementationInformation?: ImplementationInformation;
360
370
  constructor(root: THREE.Object3D);
361
371
  }
362
372
  export interface ISerializable {
@@ -374,7 +384,7 @@ declare module "engine/engine_serialization_core" {
374
384
  * Used for validate decorator to not invoke callbacks on components that are currently in the process of being built */
375
385
  export const $isAssigningProperties: unique symbol;
376
386
  /** Object.assign behaviour but check if property is writeable (e.g. getter only properties are skipped) */
377
- export function assign(target: any, source: any): void;
387
+ export function assign(target: any, source: any, info?: ImplementationInformation): void;
378
388
  }
379
389
  declare module "engine/engine_input" {
380
390
  import * as THREE from 'three';