Refactored Starter Clothing, Added CustomizationDelta, basework for Image Design

(Bug) Fixed hair and items on char create not being added to equip list
(Code) Minor change to BuffBuilderMessage
(Code) Added base work for Image Design
(Code) Refactored how starter clothing is assigned
(Code) Added delta for customization data on tangible objects
(Code) Created ProfessionTemplateVisitor for profession template iff's
This commit is contained in:
Waverunner
2014-03-25 22:06:38 -04:00
parent d1a7f20177
commit b9ed655f53
66 changed files with 743 additions and 887 deletions
+23 -2
View File
@@ -33,6 +33,9 @@ import main.NGECore;
import org.apache.mina.core.buffer.IoBuffer;
import org.apache.mina.core.session.IoSession;
import clientdata.visitors.ProfessionTemplateVisitor;
import engine.clientdata.ClientFileManager;
import engine.clientdata.visitors.DatatableVisitor;
import engine.clients.Client;
import engine.resources.common.CRC;
import engine.resources.container.CreatureContainerPermissions;
@@ -279,6 +282,7 @@ public class CharacterService implements INetworkDispatch {
if(clientCreateCharacter.getHairCustomization().length > 0)
hair.setCustomization(clientCreateCharacter.getHairCustomization());
object._add(hair);
object.addObjectToEquipList(hair);
}
TangibleObject inventory = (TangibleObject) core.objectService.createObject("object/tangible/inventory/shared_character_inventory.iff", object.getPlanet());
@@ -324,8 +328,9 @@ public class CharacterService implements INetworkDispatch {
object._add(defaultWeapon);
object.setWeaponId(defaultWeapon.getObjectID());
core.scriptService.callScript("scripts/", "starterclothing", "CreateStarterClothing", core, object, clientCreateCharacter.getStarterProfession(), clientCreateCharacter.getRaceTemplate());
core.scriptService.callScript("scripts/", "demo", "CreateStartingCharacter", core, object);
createStarterClothing(object, sharedRaceTemplate, clientCreateCharacter.getStarterProfession());
//core.scriptService.callScript("scripts/", "demo", "CreateStartingCharacter", core, object);
core.getCreatureODB().put(object, Long.class, CreatureObject.class, object.getTransaction());
// might not need to commit transaction but better safe than sorry
@@ -524,5 +529,21 @@ public class CharacterService implements INetworkDispatch {
}
return false;
}
private void createStarterClothing(CreatureObject creature, String raceTemplate, String profession) {
try {
ProfessionTemplateVisitor visitor = ClientFileManager.loadFile("creation/profession_defaults_" + profession + ".iff", ProfessionTemplateVisitor.class);
TangibleObject inventory = (TangibleObject) creature.getSlottedObject("inventory");
if (inventory == null)
return;
for(String item : visitor.getItems(raceTemplate)) {
TangibleObject createdItem = (TangibleObject) core.objectService.createObject(item, creature.getPlanet());
creature._add(createdItem);
creature.addObjectToEquipList(createdItem);
}
}
catch (InstantiationException | IllegalAccessException e) { e.printStackTrace();}
}
}