Move to Renderer V2

This commit is contained in:
duckietm
2024-04-03 09:27:56 +02:00
parent 110c3ad393
commit b3134ce50b
4080 changed files with 115593 additions and 66375 deletions
@@ -0,0 +1,10 @@
export interface IPetBreedingResultData
{
readonly stuffId: number;
readonly classId: number;
readonly productCode: string;
readonly userId: number;
readonly userName: string;
readonly rarityLevel: number;
readonly hasMutation: boolean;
}
+21
View File
@@ -0,0 +1,21 @@
import { Point } from 'pixi.js';
import { IVector3D } from '../utils';
export interface IRoomGeometry
{
getCoordinatePosition(_arg_1: IVector3D): IVector3D;
getScreenPoint(_arg_1: IVector3D): Point;
getScreenPosition(_arg_1: IVector3D): IVector3D;
getPlanePosition(_arg_1: Point, _arg_2: IVector3D, _arg_3: IVector3D, _arg_4: IVector3D): Point;
setDisplacement(_arg_1: IVector3D, _arg_2: IVector3D): void;
adjustLocation(_arg_1: IVector3D, _arg_2: number): void;
performZoom(): void;
performZoomOut(): void;
performZoomIn(): void;
isZoomedIn(): boolean;
updateId: number;
z_scale: number;
scale: number;
directionAxis: IVector3D;
direction: IVector3D;
}
+27
View File
@@ -0,0 +1,27 @@
import { IRoomInstanceContainer } from './IRoomInstanceContainer';
import { IRoomObjectManager } from './IRoomObjectManager';
import { IRoomObject, IRoomObjectModel } from './object';
import { IRoomRendererBase } from './renderer';
export interface IRoomInstance
{
dispose(): void;
setRenderer(renderer: IRoomRendererBase): void;
getManager(category: number): IRoomObjectManager;
getTotalObjectsForManager(category: number): number;
getRoomObject(id: number, category: number): IRoomObject;
getRoomObjectsForCategory(category: number): IRoomObject[];
getRoomObjectByIndex(index: number, category: number): IRoomObject;
createRoomObject(id: number, stateCount: number, type: string, category: number): IRoomObject;
createRoomObjectAndInitalize(objectId: number, type: string, category: number): IRoomObject;
removeRoomObject(id: number, category: number): void;
removeAllManagers(): void;
addUpdateCategory(category: number): void;
removeUpdateCategory(category: number): void;
update(time: number, update?: boolean): void;
id: string;
container: IRoomInstanceContainer;
renderer: IRoomRendererBase;
managers: Map<number, IRoomObjectManager>;
model: IRoomObjectModel;
}
@@ -0,0 +1,8 @@
import { IRoomObjectManager } from './IRoomObjectManager';
import { IRoomObject } from './object';
export interface IRoomInstanceContainer
{
createRoomObjectAndInitalize(roomId: string, objectId: number, type: string, category: number): IRoomObject;
createRoomObjectManager(category: number): IRoomObjectManager;
}
+16
View File
@@ -0,0 +1,16 @@
import { IRoomInstance } from './IRoomInstance';
import { IRoomManagerListener } from './IRoomManagerListener';
import { IRoomObject } from './object';
export interface IRoomManager
{
init(listener: IRoomManagerListener): Promise<void>;
getRoomInstance(roomId: string): IRoomInstance;
createRoomInstance(roomId: string): IRoomInstance;
removeRoomInstance(roomId: string): boolean;
addUpdateCategory(category: number): void;
removeUpdateCategory(category: number): void;
createRoomObjectAndInitalize(roomId: string, objectId: number, type: string, category: number): IRoomObject;
update(time: number, update?: boolean): void;
rooms: Map<string, IRoomInstance>;
}
@@ -0,0 +1,5 @@
export interface IRoomManagerListener
{
objectInitialized(roomId: string, objectId: number, category: number): void;
initalizeTemporaryObjectsByType(type: string, _arg_2: boolean): void;
}
@@ -0,0 +1,14 @@
import { IAdvancedMap } from '../utils';
import { IRoomObjectController } from './object';
export interface IRoomObjectManager
{
dispose(): void;
getObject(id: number): IRoomObjectController;
getObjectByIndex(index: number): IRoomObjectController;
createObject(id: number, stateCount: number, type: string): IRoomObjectController;
removeObject(id: number): void;
removeAllObjects(): void;
objects: IAdvancedMap<number, IRoomObjectController>;
totalObjects: number;
}
@@ -0,0 +1,7 @@
import { IVector3D } from '../utils/IVector3D';
export interface IRoomObjectUpdateMessage
{
readonly location: IVector3D;
readonly direction: IVector3D;
}
@@ -0,0 +1,17 @@
export interface IRoomSpriteMouseEvent
{
readonly type: string;
readonly eventId: string;
readonly canvasId: string;
readonly spriteTag: string;
readonly screenX: number;
readonly screenY: number;
readonly localX: number;
readonly localY: number;
readonly ctrlKey: boolean;
readonly altKey: boolean;
readonly shiftKey: boolean;
readonly buttonDown: boolean;
spriteOffsetX: number;
spriteOffsetY: number;
}
@@ -0,0 +1,18 @@
export class RoomObjectSpriteData
{
public objectId: number;
public x: number;
public y: number;
public z: number;
public name: string;
public blendMode: string;
public flipH: boolean;
public skew: number;
public frame: boolean;
public color: string;
public alpha: number;
public width: number;
public height: number;
public type: string;
public posture: string;
}
+15
View File
@@ -0,0 +1,15 @@
export * from './IPetBreedingResultData';
export * from './IRoomGeometry';
export * from './IRoomInstance';
export * from './IRoomInstanceContainer';
export * from './IRoomManager';
export * from './IRoomManagerListener';
export * from './IRoomObjectManager';
export * from './IRoomObjectUpdateMessage';
export * from './IRoomSpriteMouseEvent';
export * from './RoomObjectSpriteData';
export * from './object';
export * from './object/enum';
export * from './object/logic';
export * from './object/visualization';
export * from './renderer';
@@ -0,0 +1,22 @@
import { IVector3D } from '../../utils';
import { IRoomObjectModel } from './IRoomObjectModel';
import { IRoomObjectMouseHandler } from './logic';
import { IRoomObjectVisualization } from './visualization';
export interface IRoomObject
{
dispose(): void;
getLocation(): IVector3D;
getDirection(): IVector3D;
getState(index?: number): number;
id: number;
instanceId: number;
type: string;
model: IRoomObjectModel;
visualization: IRoomObjectVisualization;
mouseHandler: IRoomObjectMouseHandler;
location: IVector3D;
direction: IVector3D;
updateCounter: number;
isReady: boolean;
}
@@ -0,0 +1,18 @@
import { IVector3D } from '../../utils';
import { IRoomObjectUpdateMessage } from '../IRoomObjectUpdateMessage';
import { IRoomObject } from './IRoomObject';
import { IRoomObjectEventHandler } from './logic';
import { IRoomObjectGraphicVisualization } from './visualization';
export interface IRoomObjectController extends IRoomObject
{
setLocation(vector: IVector3D): void;
setDirection(vector: IVector3D): void;
setState(state: number, index?: number): boolean;
setVisualization(visualization: IRoomObjectGraphicVisualization): void;
setLogic(logic: IRoomObjectEventHandler): void;
processUpdateMessage(message: IRoomObjectUpdateMessage): void;
tearDown(): void;
isReady: boolean;
logic: IRoomObjectEventHandler;
}
@@ -0,0 +1,8 @@
export interface IRoomObjectModel
{
dispose(): void;
getValue<T>(key: string): T;
setValue<T>(key: string, value: T): void;
removeKey(key: string): void;
updateCounter: number;
}
@@ -0,0 +1,11 @@
import { IAdvancedMap } from '../../utils';
import { IRoomObjectModel } from './IRoomObjectModel';
export interface IRoomObjectModelController extends IRoomObjectModel
{
setNumber(_arg_1: string, _arg_2: number, _arg_3: boolean): void;
setString(_arg_1: string, _arg_2: string, _arg_3: boolean): void;
setNumberArray(_arg_1: string, _arg_2: [], _arg_3: boolean): void;
setStringArray(_arg_1: string, _arg_2: [], _arg_3: boolean): void;
setStringToStringMap(_arg_1: string, _arg_2: IAdvancedMap<any, any>, _arg_3: boolean): void;
}
@@ -0,0 +1,6 @@
export class AlphaTolerance
{
public static MATCH_ALL_PIXELS: number = -1;
public static MATCH_OPAQUE_PIXELS: number = 128;
public static MATCH_NOTHING: number = 256;
}
@@ -0,0 +1,7 @@
export class RoomObjectSpriteType
{
public static DEFAULT: number = 1;
public static ROOM_PLANE: number = 2;
public static AVATAR: number = 3;
public static AVATAR_OWN: number = 4;
}
@@ -0,0 +1,2 @@
export * from './AlphaTolerance';
export * from './RoomObjectSpriteType';
+7
View File
@@ -0,0 +1,7 @@
export * from './enum';
export * from './IRoomObject';
export * from './IRoomObjectController';
export * from './IRoomObjectModel';
export * from './IRoomObjectModelController';
export * from './logic';
export * from './visualization';
@@ -0,0 +1,20 @@
import { IEventDispatcher } from '../../../common';
import { IRoomObjectUpdateMessage } from '../../IRoomObjectUpdateMessage';
import { IRoomObjectController } from '../IRoomObjectController';
import { IRoomObjectMouseHandler } from './IRoomObjectMouseHandler';
export interface IRoomObjectEventHandler extends IRoomObjectMouseHandler
{
initialize(data: unknown): void;
dispose(): void;
update(totalTimeRunning: number): void;
processUpdateMessage(message: IRoomObjectUpdateMessage): void;
getEventTypes(): string[];
useObject(): void;
setObject(object: IRoomObjectController): void;
tearDown(): void;
object: IRoomObjectController;
eventDispatcher: IEventDispatcher;
widget: string;
contextMenu: string;
}
@@ -0,0 +1,10 @@
import { IEventDispatcher, INitroEvent } from '../../../common';
import { IRoomObjectEventHandler } from './IRoomObjectEventHandler';
export interface IRoomObjectLogicFactory
{
getLogic(type: string): IRoomObjectEventHandler;
registerEventFunction(func: (event: INitroEvent) => void): void;
removeEventFunction(func: (event: INitroEvent) => void): void;
events: IEventDispatcher;
}
@@ -0,0 +1,7 @@
import { IRoomGeometry } from '../../IRoomGeometry';
import { IRoomSpriteMouseEvent } from '../../IRoomSpriteMouseEvent';
export interface IRoomObjectMouseHandler
{
mouseEvent(event: IRoomSpriteMouseEvent, geometry: IRoomGeometry): void;
}
@@ -0,0 +1,3 @@
export * from './IRoomObjectEventHandler';
export * from './IRoomObjectLogicFactory';
export * from './IRoomObjectMouseHandler';
@@ -0,0 +1,14 @@
import { Point } from 'pixi.js';
export interface IPlaneDrawingData
{
isBottomAligned(): boolean;
z: number;
cornerPoints: Point[];
color: number;
maskAssetNames: string[];
maskAssetLocations: Point[];
maskAssetFlipHs: boolean[];
maskAssetFlipVs: boolean[];
assetNameColumns: string[][];
}
@@ -0,0 +1,6 @@
import { IRoomPlane } from './IRoomPlane';
export interface IPlaneVisualization
{
planes: IRoomPlane[];
}
@@ -0,0 +1,7 @@
import { IGraphicAssetCollection } from '../../../asset';
import { IRoomObjectVisualization } from './IRoomObjectVisualization';
export interface IRoomObjectGraphicVisualization extends IRoomObjectVisualization
{
asset: IGraphicAssetCollection;
}
@@ -0,0 +1,32 @@
import { BLEND_MODES, Filter, Texture } from 'pixi.js';
export interface IRoomObjectSprite
{
dispose(): void;
increaseUpdateCounter(): void;
id: number;
name: string;
type: string;
spriteType: number;
texture: Texture;
width: number;
height: number;
offsetX: number;
offsetY: number;
flipH: boolean;
flipV: boolean;
direction: number;
alpha: number;
blendMode: BLEND_MODES;
color: number;
relativeDepth: number;
varyingDepth: boolean;
libraryAssetName: string;
clickHandling: boolean;
visible: boolean;
tag: string;
posture: string;
alphaTolerance: number;
filters: Filter[];
updateCounter: number;
}
@@ -0,0 +1,12 @@
import { RoomObjectSpriteData } from '../../RoomObjectSpriteData';
import { IRoomObjectGraphicVisualization } from './IRoomObjectGraphicVisualization';
import { IRoomObjectSprite } from './IRoomObjectSprite';
export interface IRoomObjectSpriteVisualization extends IRoomObjectGraphicVisualization
{
getSprite(index: number): IRoomObjectSprite;
getSpriteList(): RoomObjectSpriteData[];
sprites: IRoomObjectSprite[];
updateObjectCounter: number;
updateModelCounter: number;
}
@@ -0,0 +1,17 @@
import { Rectangle, Texture } from 'pixi.js';
import { IRoomGeometry } from '../../IRoomGeometry';
import { IRoomObject } from '../IRoomObject';
import { IObjectVisualizationData } from './IRoomObjectVisualizationData';
export interface IRoomObjectVisualization
{
initialize(data: IObjectVisualizationData): boolean;
dispose(): void;
update(geometry: IRoomGeometry, time: number, update: boolean, skipUpdate: boolean): void;
getBoundingRectangle(): Rectangle;
getImage(): Texture;
instanceId: number;
object: IRoomObject;
image: Texture;
updateSpriteCounter: number;
}
@@ -0,0 +1,7 @@
import { IAssetData } from '../../../asset';
export interface IObjectVisualizationData
{
initialize(asset: IAssetData): boolean;
dispose(): void;
}
@@ -0,0 +1,9 @@
import { IAssetData } from '../../../asset';
import { IRoomObjectGraphicVisualization } from './IRoomObjectGraphicVisualization';
import { IObjectVisualizationData } from './IRoomObjectVisualizationData';
export interface IRoomObjectVisualizationFactory
{
getVisualization(type: string): IRoomObjectGraphicVisualization;
getVisualizationData(type: string, visualization: string, asset: IAssetData): IObjectVisualizationData;
}
@@ -0,0 +1,10 @@
import { IVector3D } from '../../../utils';
export interface IRoomPlane
{
uniqueId: number;
location: IVector3D;
leftSide: IVector3D;
rightSide: IVector3D;
color: number;
}
@@ -0,0 +1,9 @@
import { IRoomObjectSprite } from './IRoomObjectSprite';
export interface ISortableSprite
{
x: number;
y: number;
z: number;
sprite: IRoomObjectSprite;
}
@@ -0,0 +1,10 @@
export * from './IPlaneDrawingData';
export * from './IPlaneVisualization';
export * from './IRoomObjectGraphicVisualization';
export * from './IRoomObjectSprite';
export * from './IRoomObjectSpriteVisualization';
export * from './IRoomObjectVisualization';
export * from './IRoomObjectVisualizationData';
export * from './IRoomObjectVisualizationFactory';
export * from './IRoomPlane';
export * from './ISortableSprite';
@@ -0,0 +1,8 @@
import { IRoomGeometry } from '../IRoomGeometry';
import { IRoomSpriteMouseEvent } from '../IRoomSpriteMouseEvent';
import { IRoomObject } from '../object';
export interface IRoomCanvasMouseListener
{
processRoomCanvasMouseEvent(event: IRoomSpriteMouseEvent, object: IRoomObject, geometry: IRoomGeometry): void
}
@@ -0,0 +1,9 @@
import { IRoomRendererBase } from './IRoomRendererBase';
import { IRoomRenderingCanvas } from './IRoomRenderingCanvas';
export interface IRoomRenderer extends IRoomRendererBase
{
getCanvas(id: number): IRoomRenderingCanvas;
createCanvas(id: number, width: number, height: number, scale: number): IRoomRenderingCanvas;
roomObjectVariableAccurateZ: string;
}
@@ -0,0 +1,10 @@
import { IRoomObject } from '../object';
export interface IRoomRendererBase
{
addObject(object: IRoomObject): void;
removeObject(object: IRoomObject): void;
dispose(): void;
reset(): void;
update(time: number, update?: boolean): void;
}
@@ -0,0 +1,36 @@
import { Container, Point, Texture } from 'pixi.js';
import { IRoomGeometry } from '../IRoomGeometry';
import { RoomObjectSpriteData } from '../RoomObjectSpriteData';
import { ISortableSprite } from '../object';
import { IRoomCanvasMouseListener } from './IRoomCanvasMouseListener';
export interface IRoomRenderingCanvas
{
dispose(): void;
initialize(width: number, height: number): void;
setMask(flag: boolean): void;
setScale(scale: number, point?: Point, offsetPoint?: Point, override?: boolean, asDelta?: boolean): void;
render(time: number, update?: boolean): void;
update(): void;
setMouseListener(listener: IRoomCanvasMouseListener): void;
skipSpriteVisibilityChecking(): void;
resumeSpriteVisibilityChecking(): void;
getPlaneSortableSprites(): ISortableSprite[];
handleMouseEvent(x: number, y: number, type: string, altKey: boolean, ctrlKey: boolean, shiftKey: boolean, buttonDown: boolean): boolean;
getSortableSpriteList(): RoomObjectSpriteData[];
getDisplayAsTexture(): Texture;
moveLeft(): void;
moveRight(): void;
moveUp(): void;
moveDown(): void;
id: number;
geometry: IRoomGeometry;
master: Container;
display: Container;
screenOffsetX: number;
screenOffsetY: number;
scale: number;
width: number;
height: number;
canvasUpdated: boolean;
}
@@ -0,0 +1,8 @@
import { IRoomObject } from '../object';
export interface IRoomSpriteCanvasContainer
{
getRoomObject(instanceId: number): IRoomObject;
objects: Map<number, IRoomObject>;
roomObjectVariableAccurateZ: string;
}
+5
View File
@@ -0,0 +1,5 @@
export * from './IRoomCanvasMouseListener';
export * from './IRoomRenderer';
export * from './IRoomRendererBase';
export * from './IRoomRenderingCanvas';
export * from './IRoomSpriteCanvasContainer';