diff --git a/server/database.js b/server/database.js index 81bf6ca..ae064bc 100644 --- a/server/database.js +++ b/server/database.js @@ -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 };