Skip to content

Instantly share code, notes, and snippets.

@bonzaiferroni
Created June 2, 2017 17:33
Show Gist options
  • Save bonzaiferroni/f4f3eca1567675fcddbe9ec7727f33b8 to your computer and use it in GitHub Desktop.
Save bonzaiferroni/f4f3eca1567675fcddbe9ec7727f33b8 to your computer and use it in GitHub Desktop.
Serialization in Traveler
private deserializeState(travelData: TravelData, destination: RoomPosition): TravelState {
let state = {} as TravelState;
if (travelData.state) {
let parse = travelData.state.split("_");
state.lastCoord = {x: Number.parseInt(parse[STATE_LAST_X]), y: Number.parseInt(parse[STATE_LAST_Y]) };
state.cpu = Number.parseInt(parse[STATE_CPU]);
state.stuckCount = Number.parseInt(parse[STATE_STUCK]);
let destX = Number.parseInt(parse[STATE_DEST_X]);
let destY = Number.parseInt(parse[STATE_DEST_Y]);
let destRoomName = parse[STATE_DEST_ROOMNAME];
state.destination = new RoomPosition(destX, destY, destRoomName);
} else {
state.cpu = 0;
state.destination = destination;
}
return state;
}
private serializeState(creep: Creep, destination: RoomPosition, state: TravelState, travelData: TravelData) {
let str = `${creep.pos.x}_${creep.pos.y}_${state.stuckCount}_${state.cpu}_${destination.x}_${destination.y}_${
destination.roomName}`;
travelData.state = str;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment