feat: Add turtle state persistence functions for saving, retrieving, and deleting turtle states
This commit is contained in:
@@ -666,5 +666,40 @@ export function deleteBlocksInArea(fromX, fromY, fromZ, toX, toY, toZ) {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ========== BLOCK DELETION ==========
|
||||||
|
|
||||||
|
export function deleteBlock(x, y, z) {
|
||||||
|
const stmt = db.prepare('DELETE FROM world_blocks WHERE x = ? AND y = ? AND z = ?');
|
||||||
|
return stmt.run(x, y, z);
|
||||||
|
}
|
||||||
|
|
||||||
|
// ========== TURTLE STATE PERSISTENCE ==========
|
||||||
|
|
||||||
|
export function saveTurtleState(turtleId, stateName, stateData = {}) {
|
||||||
|
const stmt = db.prepare(`
|
||||||
|
INSERT OR REPLACE INTO turtle_state (turtle_id, state_name, state_data, updated_at)
|
||||||
|
VALUES (?, ?, ?, ?)
|
||||||
|
`);
|
||||||
|
stmt.run(turtleId, stateName, JSON.stringify(stateData), Date.now());
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getTurtleState(turtleId) {
|
||||||
|
const stmt = db.prepare('SELECT * FROM turtle_state WHERE turtle_id = ?');
|
||||||
|
const row = stmt.get(turtleId);
|
||||||
|
if (row) {
|
||||||
|
return {
|
||||||
|
stateName: row.state_name,
|
||||||
|
stateData: JSON.parse(row.state_data),
|
||||||
|
updatedAt: row.updated_at,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
export function deleteTurtleState(turtleId) {
|
||||||
|
const stmt = db.prepare('DELETE FROM turtle_state WHERE turtle_id = ?');
|
||||||
|
return stmt.run(turtleId);
|
||||||
|
}
|
||||||
|
|
||||||
// Export database instance for custom queries if needed
|
// Export database instance for custom queries if needed
|
||||||
export { db };
|
export { db };
|
||||||
|
|||||||
Reference in New Issue
Block a user