Merge pull request #3 from Lorenzune/pr/wired-renderer-click-user-overlay-clean-20260318

feat(renderer): add click-user packet and refine wired overlay
This commit is contained in:
DuckieTM
2026-03-19 09:53:00 +01:00
committed by GitHub
6 changed files with 38 additions and 7 deletions
File diff suppressed because one or more lines are too long
@@ -1,6 +1,7 @@
export class OutgoingHeader
{
public static CLICK_FURNI = 6002;
public static CLICK_USER = 10020;
public static ACHIEVEMENT_LIST = 219;
public static AUTHENTICATION = -1;
@@ -0,0 +1,21 @@
import { IMessageComposer } from '@nitrots/api';
export class ClickUserMessageComposer implements IMessageComposer<ConstructorParameters<typeof ClickUserMessageComposer>>
{
private _data: ConstructorParameters<typeof ClickUserMessageComposer>;
constructor(roomUnitId: number)
{
this._data = [ roomUnitId ];
}
public getMessageArray()
{
return this._data;
}
public dispose(): void
{
return;
}
}
@@ -2,6 +2,7 @@ export * from './BotPlaceComposer';
export * from './BotRemoveComposer';
export * from './BotSkillSaveComposer';
export * from './ClickFurniMessageComposer';
export * from './ClickUserMessageComposer';
export * from './CompostPlantMessageComposer';
export * from './GetItemDataComposer';
export * from './HarvestPetMessageComposer';
+9 -4
View File
@@ -1,5 +1,5 @@
import { IFurnitureStackingHeightMap, ILegacyWallGeometry, IObjectData, IRoomCanvasMouseListener, IRoomEngineServices, IRoomGeometry, IRoomObject, IRoomObjectController, IRoomObjectEventManager, ISelectedRoomObjectData, IVector3D, MouseEventType, RoomObjectCategory, RoomObjectOperationType, RoomObjectPlacementSource, RoomObjectType, RoomObjectUserType, RoomObjectVariable } from '@nitrots/api';
import { BotPlaceComposer, ClickFurniMessageComposer, FurnitureColorWheelComposer, FurnitureDiceActivateComposer, FurnitureDiceDeactivateComposer, FurnitureFloorUpdateComposer, FurnitureGroupInfoComposer, FurnitureMultiStateComposer, FurnitureOneWayDoorComposer, FurniturePickupComposer, FurniturePlaceComposer, FurniturePostItPlaceComposer, FurnitureRandomStateComposer, FurnitureWallMultiStateComposer, FurnitureWallUpdateComposer, GetCommunication, GetItemDataComposer, GetResolutionAchievementsMessageComposer, PetMoveComposer, PetPlaceComposer, RemoveWallItemComposer, RoomUnitLookComposer, RoomUnitWalkComposer, SetItemDataMessageComposer, SetObjectDataMessageComposer } from '@nitrots/communication';
import { BotPlaceComposer, ClickFurniMessageComposer, ClickUserMessageComposer, FurnitureColorWheelComposer, FurnitureDiceActivateComposer, FurnitureDiceDeactivateComposer, FurnitureFloorUpdateComposer, FurnitureGroupInfoComposer, FurnitureMultiStateComposer, FurnitureOneWayDoorComposer, FurniturePickupComposer, FurniturePlaceComposer, FurniturePostItPlaceComposer, FurnitureRandomStateComposer, FurnitureWallMultiStateComposer, FurnitureWallUpdateComposer, GetCommunication, GetItemDataComposer, GetResolutionAchievementsMessageComposer, PetMoveComposer, PetPlaceComposer, RemoveWallItemComposer, RoomUnitLookComposer, RoomUnitWalkComposer, SetItemDataMessageComposer, SetObjectDataMessageComposer } from '@nitrots/communication';
import { GetConfiguration } from '@nitrots/configuration';
import { GetEventDispatcher, RoomEngineDimmerStateEvent, RoomEngineObjectEvent, RoomEngineObjectPlacedEvent, RoomEngineObjectPlacedOnUserEvent, RoomEngineObjectPlaySoundEvent, RoomEngineRoomAdEvent, RoomEngineSamplePlaybackEvent, RoomEngineTriggerWidgetEvent, RoomEngineUseProductEvent, RoomObjectBadgeAssetEvent, RoomObjectDataRequestEvent, RoomObjectDimmerStateUpdateEvent, RoomObjectEvent, RoomObjectFloorHoleEvent, RoomObjectFurnitureActionEvent, RoomObjectHSLColorEnableEvent, RoomObjectHSLColorEnabledEvent, RoomObjectMouseEvent, RoomObjectMoveEvent, RoomObjectPlaySoundIdEvent, RoomObjectRoomAdEvent, RoomObjectSamplePlaybackEvent, RoomObjectSoundMachineEvent, RoomObjectStateChangedEvent, RoomObjectTileMouseEvent, RoomObjectWallMouseEvent, RoomObjectWidgetRequestEvent, RoomSpriteMouseEvent } from '@nitrots/events';
import { GetRoomSessionManager, GetSessionDataManager } from '@nitrots/session';
@@ -297,7 +297,7 @@ export class RoomObjectEventHandler implements IRoomCanvasMouseListener, IRoomOb
}
}
private clickRoomObject(event: RoomObjectMouseEvent): void
private clickRoomObject(event: RoomObjectMouseEvent, operation: string): void
{
if(!event || event.altKey || event.ctrlKey || event.shiftKey) return;
@@ -319,20 +319,25 @@ export class RoomObjectEventHandler implements IRoomCanvasMouseListener, IRoomOb
return;
}
if((category === RoomObjectCategory.UNIT) && (operation === RoomObjectOperationType.OBJECT_UNDEFINED) && (objectType === RoomObjectUserType.USER))
{
GetCommunication().connection.send(new ClickUserMessageComposer(objectId));
}
}
private handleRoomObjectMouseClickEvent(event: RoomObjectMouseEvent, roomId: number): void
{
if(!event) return;
this.clickRoomObject(event);
let operation = RoomObjectOperationType.OBJECT_UNDEFINED;
const selectedData = this.getSelectedRoomObjectData(roomId);
if(selectedData) operation = selectedData.operation;
this.clickRoomObject(event, operation);
let didWalk = false;
let didMove = false;
+4 -3
View File
@@ -63,13 +63,14 @@ export class WiredFilter extends Filter
void main(void) {
vec4 currentColor = texture(uTexture, vTextureCoord);
vec3 colorLine = uLineColor * currentColor.a;
vec3 colorOverlay = uColor * currentColor.a;
vec3 colorLine = uLineColor;
vec3 colorOverlay = uColor;
if(currentColor.r == 0.0 && currentColor.g == 0.0 && currentColor.b == 0.0 && currentColor.a > 0.0) {
finalColor = vec4(colorLine.r, colorLine.g, colorLine.b, currentColor.a);
} else if(currentColor.a > 0.0) {
finalColor = vec4(colorOverlay.r, colorOverlay.g, colorOverlay.b, currentColor.a);
vec3 blendedOverlay = mix(currentColor.rgb, colorOverlay, 0.28);
finalColor = vec4(blendedOverlay.r, blendedOverlay.g, blendedOverlay.b, currentColor.a);
}
}
`,