feat: Add turtle state persistence functions for saving, retrieving, and deleting turtle states

This commit is contained in:
MayaTheShy
2026-02-20 02:27:44 -05:00
parent b9023758a6
commit 58cc909de8

View File

@@ -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 };