Support global tile item event.

This commit is contained in:
Major-
2014-02-22 21:52:32 +00:00
parent e55b8ad0e6
commit 0801d53e28
5 changed files with 141 additions and 0 deletions
@@ -0,0 +1,82 @@
package org.apollo.game.event.impl;
import org.apollo.game.event.Event;
import org.apollo.game.model.Item;
public final class AddGlobalTileItemEvent extends Event {
/**
* The item to add to the tile.
*/
private final Item item;
/**
* The position offset
*/
private final int positionOffset;
/**
* The index of the player who dropped the item.
*/
private final int index;
/**
* Creates the add global tile item event.
*
* @param item The item to add to the tile.
* @param index The index of the player who dropped the item.
*/
public AddGlobalTileItemEvent(Item item, int index) {
this(item, index, 0);
}
/**
* Creates the add global tile item event.
*
* @param item The item to add to the tile.
* @param index The index of the player who dropped the item.
* @param positionOffset The offset from the 'base' position.
*/
public AddGlobalTileItemEvent(Item item, int index, int positionOffset) {
this.item = item;
this.index = index;
this.positionOffset = positionOffset;
}
/**
* Gets the id of the item.
*
* @return The id.
*/
public int getId() {
return item.getId();
}
/**
* Gets the amount of the item.
*
* @return The amount.
*/
public int getAmount() {
return item.getAmount();
}
/**
* Gets the index of the player who dropped the item.
*
* @return The index.
*/
public int getIndex() {
return index;
}
/**
* Gets the offset from the 'base' position.
*
* @return The offset.
*/
public int getPositionOffset() {
return positionOffset;
}
}
@@ -0,0 +1,27 @@
package org.apollo.net.release.r317;
import org.apollo.game.event.impl.AddGlobalTileItemEvent;
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.EventEncoder;
/**
* An {@link EventEncoder} for the {@link AddGlobalTileItemEvent}.
*
* @author Major
*/
public final class AddGlobalTileItemEventEncoder extends EventEncoder<AddGlobalTileItemEvent> {
@Override
public GamePacket encode(AddGlobalTileItemEvent event) {
GamePacketBuilder builder = new GamePacketBuilder(215);
builder.put(DataType.SHORT, DataTransformation.ADD, event.getId());
builder.put(DataType.BYTE, DataTransformation.SUBTRACT, event.getPositionOffset());
builder.put(DataType.SHORT, DataTransformation.ADD, event.getIndex());
builder.put(DataType.SHORT, event.getAmount());
return builder.toGamePacket();
}
}
@@ -1,5 +1,6 @@
package org.apollo.net.release.r317;
import org.apollo.game.event.impl.AddGlobalTileItemEvent;
import org.apollo.game.event.impl.AddTileItemEvent;
import org.apollo.game.event.impl.CloseInterfaceEvent;
import org.apollo.game.event.impl.ConfigEvent;
@@ -174,6 +175,7 @@ public final class Release317 extends Release {
register(PrivacyOptionEvent.class, new PrivacyOptionEventEncoder());
register(OpenDialogueInterfaceEvent.class, new OpenDialogueInterfaceEventEncoder());
register(UpdateWeightEvent.class, new UpdateWeightEventEncoder());
register(AddGlobalTileItemEvent.class, new AddGlobalTileItemEventEncoder());
register(AddTileItemEvent.class, new AddTileItemEventEncoder());
register(UpdateTileItemEvent.class, new UpdateTileItemEventEncoder());
@@ -0,0 +1,28 @@
package org.apollo.net.release.r377;
import org.apollo.game.event.impl.AddGlobalTileItemEvent;
import org.apollo.net.codec.game.DataOrder;
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.EventEncoder;
/**
* An {@link EventEncoder} for the {@link AddGlobalTileItemEvent}.
*
* @author Major
*/
public final class AddGlobalTileItemEventEncoder extends EventEncoder<AddGlobalTileItemEvent> {
@Override
public GamePacket encode(AddGlobalTileItemEvent event) {
GamePacketBuilder builder = new GamePacketBuilder(106);
builder.put(DataType.BYTE, DataTransformation.ADD, event.getPositionOffset());
builder.put(DataType.SHORT, DataOrder.LITTLE, DataTransformation.ADD, event.getAmount());
builder.put(DataType.SHORT, DataTransformation.ADD, event.getId());
builder.put(DataType.SHORT, DataTransformation.ADD, event.getIndex());
return builder.toGamePacket();
}
}
@@ -1,5 +1,6 @@
package org.apollo.net.release.r377;
import org.apollo.game.event.impl.AddGlobalTileItemEvent;
import org.apollo.game.event.impl.AddTileItemEvent;
import org.apollo.game.event.impl.CloseInterfaceEvent;
import org.apollo.game.event.impl.ConfigEvent;
@@ -171,6 +172,7 @@ public final class Release377 extends Release {
register(PrivacyOptionEvent.class, new PrivacyOptionEventEncoder());
register(OpenDialogueInterfaceEvent.class, new OpenDialogueInterfaceEventEncoder());
register(UpdateWeightEvent.class, new UpdateWeightEventEncoder());
register(AddGlobalTileItemEvent.class, new AddGlobalTileItemEventEncoder());
register(AddTileItemEvent.class, new AddTileItemEventEncoder());
register(UpdateTileItemEvent.class, new UpdateTileItemEventEncoder());