feat: Enhance turtle management by broadcasting removal notifications and cleaning up stale turtles

This commit is contained in:
MayaTheShy
2026-02-16 02:31:05 -05:00
parent e76477f38d
commit e87ee43822
2 changed files with 49 additions and 12 deletions

View File

@@ -49,11 +49,21 @@ export const useTurtleStore = create((set, get) => ({
if (data.turtle.surroundings && data.turtle.position && data.turtle.facing !== undefined) {
get().updateBlocksFromSurroundings(data.turtle);
}
} else if (data.type === 'turtle_disconnected') {
} else if (data.type === 'turtle_removed' || data.type === 'turtle_disconnected') {
console.log(`🔌 Turtle ${data.turtleID} removed`);
set(state => {
const newTurtles = { ...state.turtles };
delete newTurtles[data.turtleID];
return { turtles: newTurtles };
// If the removed turtle was selected, deselect it
const newSelectedId = state.selectedTurtleId === data.turtleID
? null
: state.selectedTurtleId;
return {
turtles: newTurtles,
selectedTurtleId: newSelectedId
};
});
}
} catch (error) {