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 { db };
|
||||
|
||||
Reference in New Issue
Block a user