Update logic

This commit is contained in:
Bill 2022-03-18 00:59:22 -04:00
parent 2fc1a4ede0
commit c6a7482bcc
3 changed files with 19 additions and 5 deletions

View File

@ -6,6 +6,7 @@ import { IRoomObjectLogicFactory } from '../../room/object/logic/IRoomObjectLogi
import { RoomObjectLogicBase } from '../../room/object/logic/RoomObjectLogicBase';
import { FurnitureEcotronBoxLogic, FurnitureEffectBoxLogic, FurnitureGroupForumTerminalLogic, FurnitureHweenLovelockLogic, FurnitureInternalLinkLogic, FurnitureJukeboxLogic, FurnitureLoveLockLogic, FurnitureMonsterplantSeedLogic, FurnitureMysteryBoxLogic, FurnitureMysteryTrophyLogic, FurniturePlaceholderLogic, FurniturePlanetSystemLogic, FurnitureRandomStateLogic, FurnitureRandomTeleportLogic, FurnitureRentableSpaceLogic, FurnitureSongDiskLogic, FurnitureSoundMachineLogic, FurnitureWelcomeGiftLogic } from './object';
import { AvatarLogic } from './object/logic/avatar/AvatarLogic';
import { FurnitureAchievementResolutionLogic } from './object/logic/furniture/FurnitureAchievementResolutionLogic';
import { FurnitureBadgeDisplayLogic } from './object/logic/furniture/FurnitureBadgeDisplayLogic';
import { FurnitureChangeStateWhenStepOnLogic } from './object/logic/furniture/FurnitureChangeStateWhenStepOnLogic';
import { FurnitureClothingChangeLogic } from './object/logic/furniture/FurnitureClothingChangeLogic';
@ -345,6 +346,9 @@ export class RoomObjectLogicFactory implements IRoomObjectLogicFactory
case RoomObjectLogicType.FURNITURE_WELCOME_GIFT:
logic = FurnitureWelcomeGiftLogic;
break;
case RoomObjectLogicType.FURNITURE_ACHIEVEMENT_RESOLUTION:
logic = FurnitureAchievementResolutionLogic;
break;
default:
logic = FurnitureLogic;
break;

View File

@ -8,7 +8,7 @@ import { RoomObjectVariable } from '../RoomObjectVariable';
export class MovingObjectLogic extends RoomObjectLogicBase
{
public static UPDATE_MOVING_INTERVAL: number = 500;
public static DEFAULT_UPDATE_INTERVAL: number = 500;
private static TEMP_VECTOR: Vector3d = new Vector3d();
private _liftAmount: number;
@ -17,6 +17,7 @@ export class MovingObjectLogic extends RoomObjectLogicBase
private _locationDelta: Vector3d;
private _lastUpdateTime: number;
private _changeTime: number;
private _updateInterval: number;
constructor()
{
@ -28,6 +29,7 @@ export class MovingObjectLogic extends RoomObjectLogicBase
this._locationDelta = new Vector3d();
this._lastUpdateTime = 0;
this._changeTime = 0;
this._updateInterval = MovingObjectLogic.DEFAULT_UPDATE_INTERVAL;
}
protected onDispose(): void
@ -72,14 +74,14 @@ export class MovingObjectLogic extends RoomObjectLogicBase
let difference = (this.time - this._changeTime);
if(difference === (MovingObjectLogic.UPDATE_MOVING_INTERVAL >> 1)) difference++;
if(difference === (this._updateInterval >> 1)) difference++;
if(difference > MovingObjectLogic.UPDATE_MOVING_INTERVAL) difference = MovingObjectLogic.UPDATE_MOVING_INTERVAL;
if(difference > this._updateInterval) difference = this._updateInterval;
if(this._locationDelta.length > 0)
{
vector.assign(this._locationDelta);
vector.multiply((difference / MovingObjectLogic.UPDATE_MOVING_INTERVAL));
vector.multiply((difference / this._updateInterval));
vector.add(this._location);
}
else
@ -91,7 +93,7 @@ export class MovingObjectLogic extends RoomObjectLogicBase
this.object.setLocation(vector);
if(difference === MovingObjectLogic.UPDATE_MOVING_INTERVAL)
if(difference === this._updateInterval)
{
this._locationDelta.x = 0;
this._locationDelta.y = 0;
@ -139,4 +141,11 @@ export class MovingObjectLogic extends RoomObjectLogicBase
{
return this._lastUpdateTime;
}
protected set updateInterval(interval: number)
{
if(interval <= 0) interval = 1;
this._updateInterval = interval;
}
}

View File

@ -1,3 +1,4 @@
export * from './FurnitureAchievementResolutionLogic';
export * from './FurnitureBadgeDisplayLogic';
export * from './FurnitureChangeStateWhenStepOnLogic';
export * from './FurnitureCounterClockLogic';