mirror of
https://github.com/2006-Scape/apollo.git
synced 2026-07-03 16:49:11 +00:00
Add RemoveObjectMessage.
This commit is contained in:
@@ -0,0 +1,76 @@
|
||||
package org.apollo.game.message.impl;
|
||||
|
||||
import org.apollo.game.message.Message;
|
||||
import org.apollo.game.model.entity.GameObject;
|
||||
|
||||
/**
|
||||
* A {@link Message} sent to the client to remove an object from a tile.
|
||||
*
|
||||
* @author Major
|
||||
*/
|
||||
public final class RemoveObjectMessage extends Message {
|
||||
|
||||
/**
|
||||
* The orientation of the object.
|
||||
*/
|
||||
private final int orientation;
|
||||
|
||||
/**
|
||||
* The position of the object.
|
||||
*/
|
||||
private final int positionOffset;
|
||||
|
||||
/**
|
||||
* The type of the object.
|
||||
*/
|
||||
private final int type;
|
||||
|
||||
/**
|
||||
* Creates the RemoveObjectMessage.
|
||||
*
|
||||
* @param object The {@link GameObject} to send.
|
||||
*/
|
||||
public RemoveObjectMessage(GameObject object) {
|
||||
this(object, 0);
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates the RemoveObjectMessage.
|
||||
*
|
||||
* @param object The {@link GameObject} to send.
|
||||
* @param positionOffset The offset of the object's position from the sector's central position.
|
||||
*/
|
||||
public RemoveObjectMessage(GameObject object, int positionOffset) {
|
||||
this.positionOffset = positionOffset;
|
||||
this.type = object.getType();
|
||||
this.orientation = object.getOrientation();
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the orientation of the object.
|
||||
*
|
||||
* @return The orientation.
|
||||
*/
|
||||
public int getOrientation() {
|
||||
return orientation;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the position offset of the object.
|
||||
*
|
||||
* @return The position offset.
|
||||
*/
|
||||
public int getPositionOffset() {
|
||||
return positionOffset;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the orientation of the object.
|
||||
*
|
||||
* @return The type.
|
||||
*/
|
||||
public int getType() {
|
||||
return type;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -31,15 +31,25 @@ public final class SendObjectMessage extends Message {
|
||||
private final int type;
|
||||
|
||||
/**
|
||||
* Creates the send object message.
|
||||
* Creates the SendObjectMessage.
|
||||
*
|
||||
* @param object The {@link GameObject} to send.
|
||||
*/
|
||||
public SendObjectMessage(GameObject object) {
|
||||
this(object, 0);
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates the SendObjectMessage.
|
||||
*
|
||||
* @param object The {@link GameObject} to send.
|
||||
* @param positionOffset The offset of the object's position from the sector's central position.
|
||||
*/
|
||||
public SendObjectMessage(GameObject object, int positionOffset) {
|
||||
this.id = object.getId();
|
||||
this.positionOffset = 0;
|
||||
this.positionOffset = positionOffset;
|
||||
this.type = object.getType();
|
||||
this.orientation = object.getRotation();
|
||||
this.orientation = object.getOrientation();
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -69,7 +69,7 @@ public final class GameObject extends Entity {
|
||||
*
|
||||
* @return The orientation.
|
||||
*/
|
||||
public int getRotation() {
|
||||
public int getOrientation() {
|
||||
return packed & 0x3;
|
||||
}
|
||||
|
||||
@@ -89,7 +89,7 @@ public final class GameObject extends Entity {
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return MoreObjects.toStringHelper(this).add("id", getId()).add("type", getType()).add("rotation", getRotation()).toString();
|
||||
return MoreObjects.toStringHelper(this).add("id", getId()).add("type", getType()).add("orientation", getOrientation()).toString();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -24,6 +24,7 @@ import org.apollo.game.message.impl.OpenSidebarMessage;
|
||||
import org.apollo.game.message.impl.PlayerSynchronizationMessage;
|
||||
import org.apollo.game.message.impl.PositionMessage;
|
||||
import org.apollo.game.message.impl.PrivacyOptionMessage;
|
||||
import org.apollo.game.message.impl.RemoveObjectMessage;
|
||||
import org.apollo.game.message.impl.RemoveTileItemMessage;
|
||||
import org.apollo.game.message.impl.SectorChangeMessage;
|
||||
import org.apollo.game.message.impl.SendFriendMessage;
|
||||
@@ -206,6 +207,7 @@ public final class Release317 extends Release {
|
||||
register(UpdateTileItemMessage.class, new UpdateTileItemMessageEncoder());
|
||||
register(RemoveTileItemMessage.class, new RemoveTileItemMessageEncoder());
|
||||
register(SendObjectMessage.class, new SendObjectMessageEncoder());
|
||||
register(RemoveObjectMessage.class, new RemoveObjectMessageEncoder());
|
||||
|
||||
register(ForwardPrivateChatMessage.class, new ForwardPrivateChatMessageEncoder());
|
||||
register(FriendServerStatusMessage.class, new FriendServerStatusMessageEncoder());
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
package org.apollo.net.release.r317;
|
||||
|
||||
import org.apollo.game.message.impl.RemoveObjectMessage;
|
||||
import org.apollo.net.codec.game.DataTransformation;
|
||||
import org.apollo.net.codec.game.DataType;
|
||||
import org.apollo.net.codec.game.GamePacket;
|
||||
import org.apollo.net.codec.game.GamePacketBuilder;
|
||||
import org.apollo.net.release.MessageEncoder;
|
||||
|
||||
/**
|
||||
* A {@link MessageEncoder} for the {@link RemoveObjectMessage}.
|
||||
*
|
||||
* @author Major
|
||||
*/
|
||||
public final class RemoveObjectMessageEncoder extends MessageEncoder<RemoveObjectMessage> {
|
||||
|
||||
@Override
|
||||
public GamePacket encode(RemoveObjectMessage message) {
|
||||
GamePacketBuilder builder = new GamePacketBuilder(101);
|
||||
builder.put(DataType.BYTE, DataTransformation.SUBTRACT, message.getType() << 2 | message.getOrientation());
|
||||
builder.put(DataType.BYTE, message.getPositionOffset());
|
||||
return builder.toGamePacket();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -20,7 +20,7 @@ public final class SendObjectMessageEncoder extends MessageEncoder<SendObjectMes
|
||||
GamePacketBuilder builder = new GamePacketBuilder(151);
|
||||
builder.put(DataType.BYTE, DataTransformation.ADD, message.getPositionOffset());
|
||||
builder.put(DataType.SHORT, DataOrder.LITTLE, message.getId());
|
||||
builder.put(DataType.BYTE, DataTransformation.SUBTRACT, message.getType() << 2 + message.getOrientation());
|
||||
builder.put(DataType.BYTE, DataTransformation.SUBTRACT, message.getType() << 2 | message.getOrientation());
|
||||
return builder.toGamePacket();
|
||||
}
|
||||
|
||||
|
||||
@@ -24,6 +24,7 @@ import org.apollo.game.message.impl.OpenSidebarMessage;
|
||||
import org.apollo.game.message.impl.PlayerSynchronizationMessage;
|
||||
import org.apollo.game.message.impl.PositionMessage;
|
||||
import org.apollo.game.message.impl.PrivacyOptionMessage;
|
||||
import org.apollo.game.message.impl.RemoveObjectMessage;
|
||||
import org.apollo.game.message.impl.RemoveTileItemMessage;
|
||||
import org.apollo.game.message.impl.SectorChangeMessage;
|
||||
import org.apollo.game.message.impl.SendFriendMessage;
|
||||
@@ -202,6 +203,7 @@ public final class Release377 extends Release {
|
||||
register(UpdateTileItemMessage.class, new UpdateTileItemMessageEncoder());
|
||||
register(RemoveTileItemMessage.class, new RemoveTileItemMessageEncoder());
|
||||
register(SendObjectMessage.class, new SendObjectMessageEncoder());
|
||||
register(RemoveObjectMessage.class, new RemoveObjectMessageEncoder());
|
||||
|
||||
register(ForwardPrivateChatMessage.class, new ForwardPrivateChatMessageEncoder());
|
||||
register(FriendServerStatusMessage.class, new FriendServerStatusMessageEncoder());
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
package org.apollo.net.release.r377;
|
||||
|
||||
import org.apollo.game.message.impl.RemoveObjectMessage;
|
||||
import org.apollo.net.codec.game.DataTransformation;
|
||||
import org.apollo.net.codec.game.DataType;
|
||||
import org.apollo.net.codec.game.GamePacket;
|
||||
import org.apollo.net.codec.game.GamePacketBuilder;
|
||||
import org.apollo.net.release.MessageEncoder;
|
||||
|
||||
/**
|
||||
* A {@link MessageEncoder} for the {@link RemoveObjectMessage}.
|
||||
*
|
||||
* @author Major
|
||||
*/
|
||||
public final class RemoveObjectMessageEncoder extends MessageEncoder<RemoveObjectMessage> {
|
||||
|
||||
@Override
|
||||
public GamePacket encode(RemoveObjectMessage message) {
|
||||
GamePacketBuilder builder = new GamePacketBuilder(101);
|
||||
builder.put(DataType.BYTE, DataTransformation.SUBTRACT, message.getPositionOffset());
|
||||
builder.put(DataType.BYTE, DataTransformation.SUBTRACT, message.getType() << 2 | message.getOrientation());
|
||||
return builder.toGamePacket();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -18,7 +18,7 @@ public final class SendObjectMessageEncoder extends MessageEncoder<SendObjectMes
|
||||
@Override
|
||||
public GamePacket encode(SendObjectMessage message) {
|
||||
GamePacketBuilder builder = new GamePacketBuilder(152);
|
||||
builder.put(DataType.BYTE, DataTransformation.NEGATE, message.getType() << 2 + message.getOrientation());
|
||||
builder.put(DataType.BYTE, DataTransformation.NEGATE, message.getType() << 2 | message.getOrientation());
|
||||
builder.put(DataType.SHORT, DataOrder.LITTLE, DataTransformation.ADD, message.getId());
|
||||
builder.put(DataType.BYTE, DataTransformation.ADD, message.getPositionOffset());
|
||||
return builder.toGamePacket();
|
||||
|
||||
Reference in New Issue
Block a user