Fixed animal hide rack, added Bio-Linking for all objects

Dropping schematics is prevented by :
https://github.com/projectswg/engine/blob/master/src/engine/resources/objects/Baseline.java#L446

All objects can be bio-linked now
This commit is contained in:
CharonInferar
2014-06-03 20:48:53 +02:00
parent 32fcf9fbf3
commit 1886b6ca93
21 changed files with 91 additions and 235 deletions
+47 -1
View File
@@ -129,6 +129,9 @@ import services.command.CombatCommand;
import services.bazaar.AuctionItem;
import services.chat.ChatRoom;
import services.equipment.EquipmentService;
import services.sui.SUIWindow;
import services.sui.SUIWindow.SUICallback;
import services.sui.SUIWindow.Trigger;
@SuppressWarnings("unused")
public class ObjectService implements INetworkDispatch {
@@ -669,11 +672,54 @@ public class ObjectService implements INetworkDispatch {
return objectId;
}
public void useObject(CreatureObject creature, SWGObject object) {
public void useObject(CreatureObject creature, final SWGObject object) {
if (creature == null || object == null) {
return;
}
// Bio-Linking
String bl = object.getStringAttribute("bio_link");
if (bl!=null){
if (! object.getContainer().getTemplate().contains("shared_character_inventory")){
creature.sendSystemMessage("@base_player:must_biolink_to_use_from_inventory", (byte)1);
return;
}
if (! bl.contains("@obj_attr_n:bio_link_pending") && ! bl.contains(creature.getCustomName())){
creature.sendSystemMessage("@base_player:not_linked_to_holder", (byte)1);
return;
}
if (bl.contains("@obj_attr_n:bio_link_pending")){
creature.setAttachment("BioLinkItemCandidate", object.getObjectID());
SUIWindow window = core.suiService.createSUIWindow("Script.messageBox", creature, creature, 0);
window.setProperty("bg.caption.lblTitle:Text", "@sui:bio_link_item_title");
window.setProperty("Prompt.lblPrompt:Text", "@sui:bio_link_item_prompt");
window.setProperty("btnCancel:visible", "True");
window.setProperty("btnOk:visible", "True");
window.setProperty("btnUpdate:visible", "False");
window.setProperty("btnCancel:Text", "@cancel");
window.setProperty("btnOk:Text", "@ui_radial:bio_link");
Vector<String> returnList = new Vector<String>();
returnList.add("List.lstList:SelectedRow");
window.addHandler(0, "", Trigger.TRIGGER_OK, returnList, new SUICallback() {
@Override
public void process(SWGObject owner, int eventType, Vector<String> returnList) {
((CreatureObject)owner).sendSystemMessage("@base_player:item_bio_linked", (byte)1);
object.setStringAttribute("bio_link", owner.getCustomName());
object.setAttachment("bio_link_PlayerID", owner.getObjectID());
return;
}
});
window.addHandler(1, "", Trigger.TRIGGER_CANCEL, returnList, new SUICallback() {
@Override
public void process(SWGObject owner, int eventType, Vector<String> returnList) {
return;
}
});
core.suiService.openSUIWindow(window);
return;
}
}
creature.setUseTarget(object);
int reuse_time;