Merge latest duckie renderer main

This commit is contained in:
Lorenzune
2026-04-21 11:53:28 +02:00
29 changed files with 522 additions and 18 deletions
@@ -58,6 +58,7 @@ export * from './room/furniture';
export * from './room/furniture/floor';
export * from './room/furniture/wall';
export * from './room/furniture/youtube';
export * from './room/youtube';
export * from './room/mapping';
export * from './room/pet';
export * from './room/session';
@@ -13,4 +13,3 @@ export * from './pet';
export * from './session';
export * from './unit';
export * from './unit/chat';
export * from './youtube';
@@ -4,9 +4,9 @@ export class CatalogAdminCreateOfferComposer implements IMessageComposer<Constru
{
private _data: ConstructorParameters<typeof CatalogAdminCreateOfferComposer>;
constructor(pageId: number, itemId: number, catalogName: string, costCredits: number, costPoints: number, pointsType: number, amount: number, clubOnly: number, extradata: string, haveOffer: boolean, offerIdGroup: number, limitedStack: number, orderNumber: number, catalogMode: string = 'NORMAL')
constructor(pageId: number, itemIds: string, catalogName: string, costCredits: number, costPoints: number, pointsType: number, amount: number, clubOnly: number, extradata: string, haveOffer: boolean, offerIdGroup: number, limitedStack: number, orderNumber: number, catalogMode: string = 'NORMAL')
{
this._data = [ pageId, itemId, catalogName, costCredits, costPoints, pointsType, amount, clubOnly, extradata, haveOffer, offerIdGroup, limitedStack, orderNumber, catalogMode ];
this._data = [ pageId, itemIds, catalogName, costCredits, costPoints, pointsType, amount, clubOnly, extradata, haveOffer, offerIdGroup, limitedStack, orderNumber, catalogMode ];
}
dispose(): void
@@ -4,9 +4,9 @@ export class CatalogAdminSaveOfferComposer implements IMessageComposer<Construct
{
private _data: ConstructorParameters<typeof CatalogAdminSaveOfferComposer>;
constructor(offerId: number, pageId: number, itemId: number, catalogName: string, costCredits: number, costPoints: number, pointsType: number, amount: number, clubOnly: number, extradata: string, haveOffer: boolean, offerIdGroup: number, limitedStack: number, orderNumber: number, catalogMode: string = 'NORMAL')
constructor(offerId: number, pageId: number, itemIds: string, catalogName: string, costCredits: number, costPoints: number, pointsType: number, amount: number, clubOnly: number, extradata: string, haveOffer: boolean, offerIdGroup: number, limitedStack: number, orderNumber: number, catalogMode: string = 'NORMAL')
{
this._data = [ offerId, pageId, itemId, catalogName, costCredits, costPoints, pointsType, amount, clubOnly, extradata, haveOffer, offerIdGroup, limitedStack, orderNumber, catalogMode ];
this._data = [ offerId, pageId, itemIds, catalogName, costCredits, costPoints, pointsType, amount, clubOnly, extradata, haveOffer, offerIdGroup, limitedStack, orderNumber, catalogMode ];
}
dispose(): void
@@ -0,0 +1,21 @@
import { IMessageComposer } from '@nitrots/api';
export class CatalogAdminSavePageIconComposer implements IMessageComposer<ConstructorParameters<typeof CatalogAdminSavePageIconComposer>>
{
private _data: ConstructorParameters<typeof CatalogAdminSavePageIconComposer>;
constructor(pageId: number, iconId: number)
{
this._data = [ pageId, iconId ];
}
dispose(): void
{
this._data = null;
}
public getMessageArray()
{
return this._data;
}
}
@@ -0,0 +1,21 @@
import { IMessageComposer } from '@nitrots/api';
export class CatalogAdminSavePageImagesComposer implements IMessageComposer<ConstructorParameters<typeof CatalogAdminSavePageImagesComposer>>
{
private _data: ConstructorParameters<typeof CatalogAdminSavePageImagesComposer>;
constructor(pageId: number, headerImage: string, teaserImage: string)
{
this._data = [ pageId, headerImage, teaserImage ];
}
dispose(): void
{
this._data = null;
}
public getMessageArray()
{
return this._data;
}
}
@@ -55,6 +55,7 @@ export * from './room/furniture/presents';
export * from './room/furniture/toner';
export * from './room/furniture/wall';
export * from './room/furniture/youtube';
export * from './room/youtube';
export * from './room/layout';
export * from './room/pets';
export * from './room/session';
@@ -17,4 +17,3 @@ export * from './RedeemItemClothingComposer';
export * from './session';
export * from './unit';
export * from './unit/chat';
export * from './youtube';
@@ -6,8 +6,6 @@ export class YouTubeRoomWatchingComposer implements IMessageComposer<any[]>
constructor(watching: boolean)
{
// Send as int (0/1) instead of bare boolean to avoid
// serialization ambiguity in the Nitro wire protocol.
this._data = [watching ? 1 : 0];
}
@@ -14,6 +14,8 @@ export class CatalogPageMessageOfferData
private _bundlePurchaseAllowed: boolean;
private _isPet: boolean;
private _previewImage: string;
private _itemIds: string;
private _haveOffer: boolean;
private _products: CatalogPageMessageProductData[];
constructor(wrapper: IMessageDataWrapper)
@@ -41,6 +43,8 @@ export class CatalogPageMessageOfferData
this._bundlePurchaseAllowed = wrapper.readBoolean();
this._isPet = wrapper.readBoolean();
this._previewImage = wrapper.readString();
this._itemIds = wrapper.readString();
this._haveOffer = wrapper.readBoolean();
}
public get offerId(): number
@@ -102,4 +106,14 @@ export class CatalogPageMessageOfferData
{
return this._products;
}
public get itemIds(): string
{
return this._itemIds;
}
public get haveOffer(): boolean
{
return this._haveOffer;
}
}
@@ -59,6 +59,7 @@ export * from './room/furniture';
export * from './room/furniture/floor';
export * from './room/furniture/wall';
export * from './room/furniture/youtube';
export * from './room/youtube';
export * from './room/mapping';
export * from './room/pet';
export * from './room/session';
@@ -1,4 +1,4 @@
import { IMessageDataWrapper, IMessageParser } from '@nitrots/api';
import { IMessageDataWrapper, IMessageParser } from '@nitrots/api';
export class BadgeReceivedParser implements IMessageParser
{
@@ -21,9 +21,6 @@ export class BadgeReceivedParser implements IMessageParser
this._badgeId = wrapper.readInt();
this._badgeCode = wrapper.readString();
// Extra field appended by the Arcturus-Nitro fork: sender username for
// badges awarded by a staff member via the `:badge` command. Read
// defensively so older servers that don't send it still parse cleanly.
this._senderName = wrapper.bytesAvailable ? wrapper.readString() : '';
return true;
@@ -43,4 +40,4 @@ export class BadgeReceivedParser implements IMessageParser
{
return this._senderName;
}
}
}
@@ -13,4 +13,3 @@ export * from './pet';
export * from './session';
export * from './unit';
export * from './unit/chat';
export * from './youtube';