Added ObjectClickedIntent for when objects are single clicked

This commit is contained in:
Obique PSWG
2016-01-17 22:55:34 -06:00
parent d1dbcba1fc
commit 1061adee39
6 changed files with 163 additions and 12 deletions
+28 -4
View File
@@ -8,9 +8,11 @@ import resources.control.Intent;
import resources.control.Service;
import network.packets.Packet;
import network.packets.swg.zone.ObjectMenuSelect;
import network.packets.swg.zone.object_controller.IntendedTarget;
import network.packets.swg.zone.object_controller.ObjectMenuRequest;
import network.packets.swg.zone.object_controller.ObjectMenuResponse;
import intents.network.GalacticPacketIntent;
import intents.radial.ObjectClickedIntent;
import intents.radial.RadialRegisterIntent;
import intents.radial.RadialRequestIntent;
import intents.radial.RadialResponseIntent;
@@ -44,6 +46,8 @@ public class RadialService extends Service {
onRequest(gpi.getObjectManager(), (ObjectMenuRequest) p);
} else if (p instanceof ObjectMenuSelect) {
onSelection(gpi.getGalacticManager(), gpi.getNetworkId(), (ObjectMenuSelect) p);
} else if (p instanceof IntendedTarget) {
onObjectClicked(gpi.getObjectManager(), (IntendedTarget) p);
}
} else if (i instanceof RadialResponseIntent) {
onResponse((RadialResponseIntent) i);
@@ -61,11 +65,8 @@ public class RadialService extends Service {
private void onRequest(ObjectManager objectManager, ObjectMenuRequest request) {
SWGObject requestor = objectManager.getObjectById(request.getRequestorId());
SWGObject target = objectManager.getObjectById(request.getTargetId());
if (target == null) {
System.err.println(requestor + " requested a null target! ID: " + request.getTargetId());
Log.w("RadialService", "%s requested a null target! ID: %d", requestor, request.getTargetId());
if (target == null)
return;
}
if (!(requestor instanceof CreatureObject)) {
System.err.println("Requestor of target: " + target + " is not a creature object!");
Log.w("RadialService", "Requestor of target: %s is not a creature object! %s", target, requestor);
@@ -110,6 +111,29 @@ public class RadialService extends Service {
new RadialSelectionIntent(player, target, selection).broadcast();
}
private void onObjectClicked(ObjectManager objectManager, IntendedTarget it) {
SWGObject requestor = objectManager.getObjectById(it.getObjectId());
SWGObject target = objectManager.getObjectById(it.getTargetId());
if (target == null)
return;
if (!(requestor instanceof CreatureObject)) {
System.err.println("Requestor of target: " + target + " is not a creature object!");
Log.w("RadialService", "Requestor of target: %s is not a creature object! %s", target, requestor);
return;
}
Player player = requestor.getOwner();
if (player == null) {
System.err.println("Requestor of target: " + target + " does not have an owner!");
Log.w("RadialService", "Requestor of target: %s does not have an owner! %s", target, requestor);
return;
}
synchronized (templatesRegistered) {
if (templatesRegistered.contains(target.getTemplate())) {
new ObjectClickedIntent((CreatureObject) requestor, target).broadcast();
}
}
}
private void sendResponse(Player player, SWGObject target, List<RadialOption> options, int counter) {
ObjectMenuResponse menuResponse = new ObjectMenuResponse(player.getCreatureObject().getObjectId());
menuResponse.setTargetId(target.getObjectId());