mirror of
https://github.com/billsonnn/nitro-renderer.git
synced 2025-02-21 12:02:36 +01:00
Pet updates
This commit is contained in:
parent
4490edde13
commit
a62df1f59a
@ -1,5 +1,5 @@
|
|||||||
import { IMessageConfiguration } from '../../core/communication/messages/IMessageConfiguration';
|
import { IMessageConfiguration } from '../../core/communication/messages/IMessageConfiguration';
|
||||||
import { ApproveNameMessageComposer, CatalogApproveNameResultEvent, FurnitureGuildInfoComposer, PetMountComposer, PetSupplementComposer, RoomUnitGiveHandItemPetComposer, RoomWidgetCameraPublishedEvent, RoomWidgetCameraPurchaseComposer, SellablePetPalettesEvent } from './messages';
|
import { ApproveNameMessageComposer, CatalogApproveNameResultEvent, FurnitureGuildInfoComposer, PetMountComposer, PetSupplementComposer, RemovePetSaddleComposer, RoomUnitGiveHandItemPetComposer, RoomWidgetCameraPublishedEvent, RoomWidgetCameraPurchaseComposer, SellablePetPalettesEvent, TogglePetBreedingComposer, TogglePetRidingComposer, UsePetProductComposer } from './messages';
|
||||||
import { AvailabilityStatusMessageEvent } from './messages/incoming/availability/AvailabilityStatusMessageEvent';
|
import { AvailabilityStatusMessageEvent } from './messages/incoming/availability/AvailabilityStatusMessageEvent';
|
||||||
import { CatalogClubEvent } from './messages/incoming/catalog/CatalogClubEvent';
|
import { CatalogClubEvent } from './messages/incoming/catalog/CatalogClubEvent';
|
||||||
import { CatalogClubGiftsEvent } from './messages/incoming/catalog/CatalogClubGiftsEvent';
|
import { CatalogClubGiftsEvent } from './messages/incoming/catalog/CatalogClubGiftsEvent';
|
||||||
@ -859,7 +859,11 @@ export class NitroMessages implements IMessageConfiguration
|
|||||||
this._composers.set(OutgoingHeader.PET_MOUNT, PetMountComposer);
|
this._composers.set(OutgoingHeader.PET_MOUNT, PetMountComposer);
|
||||||
this._composers.set(OutgoingHeader.PET_RESPECT, PetRespectComposer);
|
this._composers.set(OutgoingHeader.PET_RESPECT, PetRespectComposer);
|
||||||
this._composers.set(OutgoingHeader.PET_SUPPLEMENT, PetSupplementComposer);
|
this._composers.set(OutgoingHeader.PET_SUPPLEMENT, PetSupplementComposer);
|
||||||
|
this._composers.set(OutgoingHeader.REMOVE_PET_SADDLE, RemovePetSaddleComposer);
|
||||||
this._composers.set(OutgoingHeader.PET_INFO, RequestPetInfoComposer);
|
this._composers.set(OutgoingHeader.PET_INFO, RequestPetInfoComposer);
|
||||||
|
this._composers.set(OutgoingHeader.TOGGLE_PET_BREEDING, TogglePetBreedingComposer);
|
||||||
|
this._composers.set(OutgoingHeader.TOGGLE_PET_RIDING, TogglePetRidingComposer);
|
||||||
|
this._composers.set(OutgoingHeader.USE_PET_PRODUCT, UsePetProductComposer);
|
||||||
|
|
||||||
// ROOM
|
// ROOM
|
||||||
this._composers.set(OutgoingHeader.ROOM_CREATE, RoomCreateComposer);
|
this._composers.set(OutgoingHeader.ROOM_CREATE, RoomCreateComposer);
|
||||||
|
@ -240,4 +240,8 @@ export class OutgoingHeader
|
|||||||
public static PET_SUPPLEMENT = 749;
|
public static PET_SUPPLEMENT = 749;
|
||||||
public static FURNITURE_GUILD_INFO = 2651;
|
public static FURNITURE_GUILD_INFO = 2651;
|
||||||
public static ACHIEVEMENT_RESOLUTION_OPEN = 359;
|
public static ACHIEVEMENT_RESOLUTION_OPEN = 359;
|
||||||
|
public static USE_PET_PRODUCT = 1328;
|
||||||
|
public static REMOVE_PET_SADDLE = 186;
|
||||||
|
public static TOGGLE_PET_RIDING = 1472;
|
||||||
|
public static TOGGLE_PET_BREEDING = 3379;
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,21 @@
|
|||||||
|
import { IMessageComposer } from '../../../../../core/communication/messages/IMessageComposer';
|
||||||
|
|
||||||
|
export class RemovePetSaddleComposer implements IMessageComposer<ConstructorParameters<typeof RemovePetSaddleComposer>>
|
||||||
|
{
|
||||||
|
private _data: ConstructorParameters<typeof RemovePetSaddleComposer>;
|
||||||
|
|
||||||
|
constructor(petId: number)
|
||||||
|
{
|
||||||
|
this._data = [ petId ];
|
||||||
|
}
|
||||||
|
|
||||||
|
public getMessageArray()
|
||||||
|
{
|
||||||
|
return this._data;
|
||||||
|
}
|
||||||
|
|
||||||
|
public dispose(): void
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,21 @@
|
|||||||
|
import { IMessageComposer } from '../../../../../core/communication/messages/IMessageComposer';
|
||||||
|
|
||||||
|
export class TogglePetBreedingComposer implements IMessageComposer<ConstructorParameters<typeof TogglePetBreedingComposer>>
|
||||||
|
{
|
||||||
|
private _data: ConstructorParameters<typeof TogglePetBreedingComposer>;
|
||||||
|
|
||||||
|
constructor(petId: number)
|
||||||
|
{
|
||||||
|
this._data = [ petId ];
|
||||||
|
}
|
||||||
|
|
||||||
|
public getMessageArray()
|
||||||
|
{
|
||||||
|
return this._data;
|
||||||
|
}
|
||||||
|
|
||||||
|
public dispose(): void
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,21 @@
|
|||||||
|
import { IMessageComposer } from '../../../../../core/communication/messages/IMessageComposer';
|
||||||
|
|
||||||
|
export class TogglePetRidingComposer implements IMessageComposer<ConstructorParameters<typeof TogglePetRidingComposer>>
|
||||||
|
{
|
||||||
|
private _data: ConstructorParameters<typeof TogglePetRidingComposer>;
|
||||||
|
|
||||||
|
constructor(petId: number)
|
||||||
|
{
|
||||||
|
this._data = [ petId ];
|
||||||
|
}
|
||||||
|
|
||||||
|
public getMessageArray()
|
||||||
|
{
|
||||||
|
return this._data;
|
||||||
|
}
|
||||||
|
|
||||||
|
public dispose(): void
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,21 @@
|
|||||||
|
import { IMessageComposer } from '../../../../../core/communication/messages/IMessageComposer';
|
||||||
|
|
||||||
|
export class UsePetProductComposer implements IMessageComposer<ConstructorParameters<typeof UsePetProductComposer>>
|
||||||
|
{
|
||||||
|
private _data: ConstructorParameters<typeof UsePetProductComposer>;
|
||||||
|
|
||||||
|
constructor(itemId: number, petId: number)
|
||||||
|
{
|
||||||
|
this._data = [ itemId, petId ];
|
||||||
|
}
|
||||||
|
|
||||||
|
public getMessageArray()
|
||||||
|
{
|
||||||
|
return this._data;
|
||||||
|
}
|
||||||
|
|
||||||
|
public dispose(): void
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
@ -1,4 +1,8 @@
|
|||||||
export * from './PetMountComposer';
|
export * from './PetMountComposer';
|
||||||
export * from './PetRespectComposer';
|
export * from './PetRespectComposer';
|
||||||
export * from './PetSupplementComposer';
|
export * from './PetSupplementComposer';
|
||||||
|
export * from './RemovePetSaddleComposer';
|
||||||
export * from './RequestPetInfoComposer';
|
export * from './RequestPetInfoComposer';
|
||||||
|
export * from './TogglePetBreedingComposer';
|
||||||
|
export * from './TogglePetRidingComposer';
|
||||||
|
export * from './UsePetProductComposer';
|
||||||
|
@ -58,7 +58,7 @@ export class PetData
|
|||||||
return this._figureData.figuredata;
|
return this._figureData.figuredata;
|
||||||
}
|
}
|
||||||
|
|
||||||
public get figureData():PetFigureDataParser
|
public get figureData(): PetFigureDataParser
|
||||||
{
|
{
|
||||||
return this._figureData;
|
return this._figureData;
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
import { DisplayObject, Point, Rectangle } from 'pixi.js';
|
import { DisplayObject, Point, Rectangle } from 'pixi.js';
|
||||||
import { INitroManager } from '../../core/common/INitroManager';
|
import { INitroManager } from '../../core/common/INitroManager';
|
||||||
|
import { IRoomObject } from '../../room';
|
||||||
import { IRoomManager } from '../../room/IRoomManager';
|
import { IRoomManager } from '../../room/IRoomManager';
|
||||||
import { IRoomObjectController } from '../../room/object/IRoomObjectController';
|
import { IRoomObjectController } from '../../room/object/IRoomObjectController';
|
||||||
import { IRoomObjectLogicFactory } from '../../room/object/logic/IRoomObjectLogicFactory';
|
import { IRoomObjectLogicFactory } from '../../room/object/logic/IRoomObjectLogicFactory';
|
||||||
@ -46,6 +47,7 @@ export interface IRoomEngine extends INitroManager
|
|||||||
removeRoomObjectFloor(roomId: number, objectId: number, userId?: number, _arg_4?: boolean): void;
|
removeRoomObjectFloor(roomId: number, objectId: number, userId?: number, _arg_4?: boolean): void;
|
||||||
removeRoomObjectWall(roomId: number, objectId: number, userId?: number): void;
|
removeRoomObjectWall(roomId: number, objectId: number, userId?: number): void;
|
||||||
removeRoomObjectUser(roomId: number, objectId: number): void;
|
removeRoomObjectUser(roomId: number, objectId: number): void;
|
||||||
|
getRoomObjects(roomId: number, category: number): IRoomObject[];
|
||||||
getRoomObjectCount(roomId: number, categoryId: number): number;
|
getRoomObjectCount(roomId: number, categoryId: number): number;
|
||||||
getRoomObjectBoundingRectangle(roomId: number, objectId: number, category: number, canvasId: number): Rectangle;
|
getRoomObjectBoundingRectangle(roomId: number, objectId: number, category: number, canvasId: number): Rectangle;
|
||||||
getRoomObjectScreenLocation(roomId: number, objectId: number, objectType: number, canvasId?: number): Point;
|
getRoomObjectScreenLocation(roomId: number, objectId: number, objectType: number, canvasId?: number): Point;
|
||||||
|
@ -3366,15 +3366,15 @@ export class RoomEngine extends NitroManager implements IRoomEngine, IRoomCreato
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public getRoomObjects(k: number, _arg_2: number): IRoomObject[]
|
public getRoomObjects(roomId: number, category: number): IRoomObject[]
|
||||||
{
|
{
|
||||||
if(this._ready)
|
if(this._ready)
|
||||||
{
|
{
|
||||||
const _local_3 = this.getRoomId(k);
|
const _local_3 = this.getRoomId(roomId);
|
||||||
const _local_4 = this._roomManager.getRoomInstance(_local_3);
|
const _local_4 = this._roomManager.getRoomInstance(_local_3);
|
||||||
|
|
||||||
|
|
||||||
if(_local_4) return _local_4.getRoomObjectsForCategory(_arg_2);
|
if(_local_4) return _local_4.getRoomObjectsForCategory(category);
|
||||||
}
|
}
|
||||||
|
|
||||||
return [];
|
return [];
|
||||||
|
@ -35,6 +35,10 @@ export interface IRoomSession extends IDisposable
|
|||||||
requestMoodlightSettings(): void;
|
requestMoodlightSettings(): void;
|
||||||
mountPet(id: number): void;
|
mountPet(id: number): void;
|
||||||
dismountPet(id: number): void;
|
dismountPet(id: number): void;
|
||||||
|
usePetProduct(itemId: number, petId: number): void;
|
||||||
|
removePetSaddle(id: number): void;
|
||||||
|
togglePetBreeding(id: number): void;
|
||||||
|
togglePetRiding(id: number): void;
|
||||||
connection: IConnection;
|
connection: IConnection;
|
||||||
userDataManager: UserDataManager;
|
userDataManager: UserDataManager;
|
||||||
roomId: number;
|
roomId: number;
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import { Disposable } from '../../core/common/disposable/Disposable';
|
import { Disposable } from '../../core/common/disposable/Disposable';
|
||||||
import { IConnection } from '../../core/communication/connections/IConnection';
|
import { IConnection } from '../../core/communication/connections/IConnection';
|
||||||
import { PetMountComposer } from '../communication';
|
import { PetMountComposer, RemovePetSaddleComposer, TogglePetBreedingComposer, TogglePetRidingComposer, UsePetProductComposer } from '../communication';
|
||||||
import { RoomDoorbellAccessComposer } from '../communication/messages/outgoing/room/access/RoomDoorbellAccessComposer';
|
import { RoomDoorbellAccessComposer } from '../communication/messages/outgoing/room/access/RoomDoorbellAccessComposer';
|
||||||
import { RoomEnterComposer } from '../communication/messages/outgoing/room/access/RoomEnterComposer';
|
import { RoomEnterComposer } from '../communication/messages/outgoing/room/access/RoomEnterComposer';
|
||||||
import { RoomAmbassadorAlertComposer } from '../communication/messages/outgoing/room/action/RoomAmbassadorAlertComposer';
|
import { RoomAmbassadorAlertComposer } from '../communication/messages/outgoing/room/action/RoomAmbassadorAlertComposer';
|
||||||
@ -273,6 +273,26 @@ export class RoomSession extends Disposable implements IRoomSession
|
|||||||
this._connection.send(new PetMountComposer(id, false));
|
this._connection.send(new PetMountComposer(id, false));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public usePetProduct(itemId: number, petId: number): void
|
||||||
|
{
|
||||||
|
this._connection.send(new UsePetProductComposer(itemId, petId));
|
||||||
|
}
|
||||||
|
|
||||||
|
public removePetSaddle(id: number): void
|
||||||
|
{
|
||||||
|
this._connection.send(new RemovePetSaddleComposer(id));
|
||||||
|
}
|
||||||
|
|
||||||
|
public togglePetBreeding(id: number): void
|
||||||
|
{
|
||||||
|
this._connection.send(new TogglePetBreedingComposer(id));
|
||||||
|
}
|
||||||
|
|
||||||
|
public togglePetRiding(id: number): void
|
||||||
|
{
|
||||||
|
this._connection.send(new TogglePetRidingComposer(id));
|
||||||
|
}
|
||||||
|
|
||||||
public get connection(): IConnection
|
public get connection(): IConnection
|
||||||
{
|
{
|
||||||
return this._connection;
|
return this._connection;
|
||||||
|
@ -8,9 +8,9 @@ export class RoomSessionPetFigureUpdateEvent extends RoomSessionEvent
|
|||||||
private _petId: number;
|
private _petId: number;
|
||||||
private _figure: string;
|
private _figure: string;
|
||||||
|
|
||||||
constructor(k: IRoomSession, id: number, figure: string)
|
constructor(roomSession: IRoomSession, id: number, figure: string)
|
||||||
{
|
{
|
||||||
super(RoomSessionPetFigureUpdateEvent.PET_FIGURE_UPDATE, k);
|
super(RoomSessionPetFigureUpdateEvent.PET_FIGURE_UPDATE, roomSession);
|
||||||
|
|
||||||
this._petId = id;
|
this._petId = id;
|
||||||
this._figure = figure;
|
this._figure = figure;
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
import { IConnection } from '../../../core/communication/connections/IConnection';
|
import { IConnection } from '../../../core/communication/connections/IConnection';
|
||||||
|
import { PetFigureUpdateEvent } from '../../communication';
|
||||||
import { NewFriendRequestEvent } from '../../communication/messages/incoming/friendlist/NewFriendRequestEvent';
|
import { NewFriendRequestEvent } from '../../communication/messages/incoming/friendlist/NewFriendRequestEvent';
|
||||||
import { BotErrorEvent } from '../../communication/messages/incoming/notifications/BotErrorEvent';
|
import { BotErrorEvent } from '../../communication/messages/incoming/notifications/BotErrorEvent';
|
||||||
import { PetPlacingErrorEvent } from '../../communication/messages/incoming/notifications/PetPlacingErrorEvent';
|
import { PetPlacingErrorEvent } from '../../communication/messages/incoming/notifications/PetPlacingErrorEvent';
|
||||||
@ -10,6 +11,7 @@ import { RoomUnitInfoEvent } from '../../communication/messages/incoming/room/un
|
|||||||
import { RoomUnitRemoveEvent } from '../../communication/messages/incoming/room/unit/RoomUnitRemoveEvent';
|
import { RoomUnitRemoveEvent } from '../../communication/messages/incoming/room/unit/RoomUnitRemoveEvent';
|
||||||
import { UserCurrentBadgesEvent } from '../../communication/messages/incoming/user/data/UserCurrentBadgesEvent';
|
import { UserCurrentBadgesEvent } from '../../communication/messages/incoming/user/data/UserCurrentBadgesEvent';
|
||||||
import { UserNameChangeMessageEvent } from '../../communication/messages/incoming/user/data/UserNameChangeMessageEvent';
|
import { UserNameChangeMessageEvent } from '../../communication/messages/incoming/user/data/UserNameChangeMessageEvent';
|
||||||
|
import { RoomSessionPetFigureUpdateEvent } from '../events';
|
||||||
import { RoomSessionDanceEvent } from '../events/RoomSessionDanceEvent';
|
import { RoomSessionDanceEvent } from '../events/RoomSessionDanceEvent';
|
||||||
import { RoomSessionDoorbellEvent } from '../events/RoomSessionDoorbellEvent';
|
import { RoomSessionDoorbellEvent } from '../events/RoomSessionDoorbellEvent';
|
||||||
import { RoomSessionErrorMessageEvent } from '../events/RoomSessionErrorMessageEvent';
|
import { RoomSessionErrorMessageEvent } from '../events/RoomSessionErrorMessageEvent';
|
||||||
@ -37,6 +39,7 @@ export class RoomUsersHandler extends BaseHandler
|
|||||||
connection.addMessageEvent(new UserNameChangeMessageEvent(this.onUserNameChangeMessageEvent.bind(this)));
|
connection.addMessageEvent(new UserNameChangeMessageEvent(this.onUserNameChangeMessageEvent.bind(this)));
|
||||||
connection.addMessageEvent(new NewFriendRequestEvent(this.onNewFriendRequestEvent.bind(this)));
|
connection.addMessageEvent(new NewFriendRequestEvent(this.onNewFriendRequestEvent.bind(this)));
|
||||||
connection.addMessageEvent(new PetInfoEvent(this.onPetInfoEvent.bind(this)));
|
connection.addMessageEvent(new PetInfoEvent(this.onPetInfoEvent.bind(this)));
|
||||||
|
connection.addMessageEvent(new PetFigureUpdateEvent(this.onPetFigureUpdateEvent.bind(this)));
|
||||||
connection.addMessageEvent(new PetPlacingErrorEvent(this.onPetPlacingError.bind(this)));
|
connection.addMessageEvent(new PetPlacingErrorEvent(this.onPetPlacingError.bind(this)));
|
||||||
connection.addMessageEvent(new BotErrorEvent(this.onBotError.bind(this)));
|
connection.addMessageEvent(new BotErrorEvent(this.onBotError.bind(this)));
|
||||||
}
|
}
|
||||||
@ -247,6 +250,25 @@ export class RoomUsersHandler extends BaseHandler
|
|||||||
this.listener.events.dispatchEvent(new RoomSessionPetInfoUpdateEvent(session, petData));
|
this.listener.events.dispatchEvent(new RoomSessionPetInfoUpdateEvent(session, petData));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private onPetFigureUpdateEvent(event: PetFigureUpdateEvent): void
|
||||||
|
{
|
||||||
|
if(!this.listener) return;
|
||||||
|
|
||||||
|
const parser = event.getParser();
|
||||||
|
|
||||||
|
if(!parser) return;
|
||||||
|
|
||||||
|
const session = this.listener.getSession(this.roomId);
|
||||||
|
|
||||||
|
if(!session) return;
|
||||||
|
|
||||||
|
const figure = parser.figureData.figuredata;
|
||||||
|
|
||||||
|
session.userDataManager.updateFigure(parser.roomIndex, figure, '', parser.hasSaddle, parser.isRiding);
|
||||||
|
|
||||||
|
this.listener.events.dispatchEvent(new RoomSessionPetFigureUpdateEvent(session, parser.petId, figure));
|
||||||
|
}
|
||||||
|
|
||||||
private onPetPlacingError(event: PetPlacingErrorEvent): void
|
private onPetPlacingError(event: PetPlacingErrorEvent): void
|
||||||
{
|
{
|
||||||
if(!event) return;
|
if(!event) return;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user