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