summaryrefslogtreecommitdiff
path: root/frontend/src/actions/topology/room.js
diff options
context:
space:
mode:
Diffstat (limited to 'frontend/src/actions/topology/room.js')
-rw-r--r--frontend/src/actions/topology/room.js48
1 files changed, 48 insertions, 0 deletions
diff --git a/frontend/src/actions/topology/room.js b/frontend/src/actions/topology/room.js
new file mode 100644
index 00000000..4e0fc3a2
--- /dev/null
+++ b/frontend/src/actions/topology/room.js
@@ -0,0 +1,48 @@
+import { findTileWithPosition } from "../../util/tile-calculations";
+
+export const EDIT_ROOM_NAME = "EDIT_ROOM_NAME";
+export const DELETE_ROOM = "DELETE_ROOM";
+export const START_RACK_CONSTRUCTION = "START_RACK_CONSTRUCTION";
+export const STOP_RACK_CONSTRUCTION = "STOP_RACK_CONSTRUCTION";
+export const ADD_RACK_TO_TILE = "ADD_RACK_TO_TILE";
+
+export function editRoomName(name) {
+ return {
+ type: EDIT_ROOM_NAME,
+ name
+ };
+}
+
+export function startRackConstruction() {
+ return {
+ type: START_RACK_CONSTRUCTION
+ };
+}
+
+export function stopRackConstruction() {
+ return {
+ type: STOP_RACK_CONSTRUCTION
+ };
+}
+
+export function addRackToTile(positionX, positionY) {
+ return (dispatch, getState) => {
+ const { objects, interactionLevel } = getState();
+ const currentRoom = objects.room[interactionLevel.roomId];
+ const tiles = currentRoom.tileIds.map(tileId => objects.tile[tileId]);
+ const tile = findTileWithPosition(tiles, positionX, positionY);
+
+ if (tile !== null) {
+ dispatch({
+ type: ADD_RACK_TO_TILE,
+ tileId: tile.id
+ });
+ }
+ };
+}
+
+export function deleteRoom() {
+ return {
+ type: DELETE_ROOM
+ };
+}