update hometown storage on characters
This commit is contained in:
parent
e7a7800caf
commit
6676e67fd2
@ -1870,6 +1870,7 @@ Structure data saving
|
|||||||
Validate race data
|
Validate race data
|
||||||
Shuffle entity data package
|
Shuffle entity data package
|
||||||
Rename structure -> virtualstructure
|
Rename structure -> virtualstructure
|
||||||
|
Update hometown storage on characters
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -196,6 +196,20 @@ public class MacroData {
|
|||||||
public void addTown(Town town){
|
public void addTown(Town town){
|
||||||
towns.add(town);
|
towns.add(town);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets a town by its id
|
||||||
|
* @param id The id of the town
|
||||||
|
* @return The town
|
||||||
|
*/
|
||||||
|
public Town getTown(int id){
|
||||||
|
for(Town town : towns){
|
||||||
|
if(town.getId() == id){
|
||||||
|
return town;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the list of structures
|
* Gets the list of structures
|
||||||
|
|||||||
@ -72,16 +72,21 @@ public class CharacterUtils {
|
|||||||
* @param town The town
|
* @param town The town
|
||||||
*/
|
*/
|
||||||
public static void addHometown(Character character, Town town){
|
public static void addHometown(Character character, Town town){
|
||||||
character.putData(CharacterDataStrings.HOMETOWN, town);
|
character.putData(CharacterDataStrings.HOMETOWN, new CharacterAssociatedId(CharacterDataStrings.HOMETOWN,town.getId()));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the hometown of a character
|
* Gets the hometown of a character
|
||||||
|
* @param macroData The macro data
|
||||||
* @param character The character
|
* @param character The character
|
||||||
* @return The hometown if it exists, null otherwise
|
* @return The hometown if it exists, null otherwise
|
||||||
*/
|
*/
|
||||||
public static Town getHometown(Character character){
|
public static Town getHometown(MacroData macroData, Character character){
|
||||||
return (Town)character.getData(CharacterDataStrings.HOMETOWN);
|
if(!character.containsKey(CharacterDataStrings.HOMETOWN)){
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
int townId = ((CharacterAssociatedId)character.getData(CharacterDataStrings.HOMETOWN)).getId();
|
||||||
|
return macroData.getTown(townId);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -36,6 +36,7 @@ public class CharacterDataSerializer implements JsonDeserializer<CharacterData>,
|
|||||||
|
|
||||||
//a structure
|
//a structure
|
||||||
case CharacterDataStrings.STRUCTURE_ID:
|
case CharacterDataStrings.STRUCTURE_ID:
|
||||||
|
case CharacterDataStrings.HOMETOWN:
|
||||||
case CharacterDataStrings.SHELTER: {
|
case CharacterDataStrings.SHELTER: {
|
||||||
return context.deserialize(json, CharacterAssociatedId.class);
|
return context.deserialize(json, CharacterAssociatedId.class);
|
||||||
}
|
}
|
||||||
@ -72,15 +73,11 @@ public class CharacterDataSerializer implements JsonDeserializer<CharacterData>,
|
|||||||
|
|
||||||
//a structure
|
//a structure
|
||||||
case CharacterDataStrings.STRUCTURE_ID:
|
case CharacterDataStrings.STRUCTURE_ID:
|
||||||
|
case CharacterDataStrings.HOMETOWN:
|
||||||
case CharacterDataStrings.SHELTER: {
|
case CharacterDataStrings.SHELTER: {
|
||||||
return context.serialize((CharacterAssociatedId)src);
|
return context.serialize((CharacterAssociatedId)src);
|
||||||
}
|
}
|
||||||
|
|
||||||
//a town
|
|
||||||
case CharacterDataStrings.TOWN: {
|
|
||||||
return context.serialize((Town)src);
|
|
||||||
}
|
|
||||||
|
|
||||||
//goal
|
//goal
|
||||||
case CharacterDataStrings.ENTITY_GOAL: {
|
case CharacterDataStrings.ENTITY_GOAL: {
|
||||||
return context.serialize((CharacterGoal)src);
|
return context.serialize((CharacterGoal)src);
|
||||||
|
|||||||
@ -1,8 +1,6 @@
|
|||||||
package electrosphere.server.macro.town;
|
package electrosphere.server.macro.town;
|
||||||
|
|
||||||
import electrosphere.server.macro.character.Character;
|
import electrosphere.server.macro.character.Character;
|
||||||
import electrosphere.server.macro.character.data.CharacterData;
|
|
||||||
import electrosphere.server.macro.character.data.CharacterDataStrings;
|
|
||||||
import electrosphere.server.macro.spatial.MacroAreaObject;
|
import electrosphere.server.macro.spatial.MacroAreaObject;
|
||||||
import electrosphere.server.macro.structure.VirtualStructure;
|
import electrosphere.server.macro.structure.VirtualStructure;
|
||||||
|
|
||||||
@ -15,7 +13,7 @@ import org.joml.Vector3d;
|
|||||||
/**
|
/**
|
||||||
* Server representation of a town
|
* Server representation of a town
|
||||||
*/
|
*/
|
||||||
public class Town extends CharacterData implements MacroAreaObject {
|
public class Town implements MacroAreaObject {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The id of the town
|
* The id of the town
|
||||||
@ -51,7 +49,6 @@ public class Town extends CharacterData implements MacroAreaObject {
|
|||||||
* Constructor
|
* Constructor
|
||||||
*/
|
*/
|
||||||
private Town(){
|
private Town(){
|
||||||
super(CharacterDataStrings.TOWN);
|
|
||||||
this.id = idIncrementer;
|
this.id = idIncrementer;
|
||||||
idIncrementer++;
|
idIncrementer++;
|
||||||
}
|
}
|
||||||
@ -101,11 +98,6 @@ public class Town extends CharacterData implements MacroAreaObject {
|
|||||||
return residents;
|
return residents;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public String getDataType() {
|
|
||||||
return CharacterDataStrings.HOMETOWN;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Vector3d getPos() {
|
public Vector3d getPos() {
|
||||||
return this.position;
|
return this.position;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user