From 9651f57a7890c508c1edce07312b1804f1e2b9b0 Mon Sep 17 00:00:00 2001 From: ntr Date: Thu, 22 Nov 2018 12:34:39 +1100 Subject: [PATCH] removed redux --- client/src/events.js | 48 +++++++++++++++++++++++++--------- client/src/keyboard.js | 22 ---------------- client/src/main.js | 31 +++------------------- client/src/scenes/cryp.list.js | 1 + client/src/scenes/cryps.js | 3 +-- client/src/socket.js | 22 +++++++--------- 6 files changed, 50 insertions(+), 77 deletions(-) delete mode 100644 client/src/keyboard.js diff --git a/client/src/events.js b/client/src/events.js index 919fdecd..88dd1d11 100644 --- a/client/src/events.js +++ b/client/src/events.js @@ -1,29 +1,51 @@ -const actions = require('./actions'); +function registerEvents(registry, events) { + function setCryps(cryps) { + console.log('setting cryps'); + registry.set('cryps', cryps); + } -function registerEvents(store, registry, events) { + function setWs(ws) { + registry.set('ws', ws); + } - store.subscribe(() => { - const state = store.getState(); - registry.set('cryps', state.cryps); - registry.set('ws', state.ws); - registry.set('game', state.game); - registry.set('account', state.account); - }); + function setGame(game) { + registry.set('game', game); + } - events.on('CRYP_ACTIVE', (cryp) => { - const { cryps } = store.getState(); + function setAccount(account) { + registry.set('account', account); + } + + function setItems(items) { + registry.set('items', items); + } + + function setGameList(gameList) { + registry.set('gameList', gameList); + } + + events.on('CRYP_ACTIVE', function crypActiveCb(cryp) { + const cryps = registry.get('cryps'); cryps.forEach((c) => { if (c.id === cryp.id) { - console.log(c); if (c.active) return c.active = false; return c.active = true; } return false; }); - store.dispatch(actions.setCryps(cryps)); + return setCryps(cryps); }); + + return { + setAccount, + setCryps, + setGame, + setItems, + setWs, + setGameList, + }; } module.exports = registerEvents; diff --git a/client/src/keyboard.js b/client/src/keyboard.js deleted file mode 100644 index 9866de38..00000000 --- a/client/src/keyboard.js +++ /dev/null @@ -1,22 +0,0 @@ -const key = require('keymaster'); -const actions = require('./actions'); - -function setupKeys(store) { - store.subscribe(() => { - const state = store.getState(); - - key.unbind('esc'); - - if (state.activeItem) { - key('esc', () => store.dispatch(actions.setActiveItem(null))); - } - if (state.activeSkill) { - key('esc', () => store.dispatch(actions.setActiveSkill(null))); - } - if (state.activeIncoming) { - key('esc', () => store.dispatch(actions.setActiveIncoming(null))); - } - }); -} - -module.exports = setupKeys; diff --git a/client/src/main.js b/client/src/main.js index 48142a25..cef96aa6 100644 --- a/client/src/main.js +++ b/client/src/main.js @@ -1,34 +1,11 @@ -const { createStore, combineReducers } = require('redux'); - const renderCryps = require('./scenes/cryps'); -const reducers = require('./reducers'); -const actions = require('./actions'); -const setupKeys = require('./keyboard'); const createSocket = require('./socket'); const registerEvents = require('./events'); -// Redux Store -const store = createStore( - combineReducers({ - activeItem: reducers.activeItemReducer, - activeSkill: reducers.activeSkillReducer, - activeIncoming: reducers.activeIncomingReducer, - account: reducers.accountReducer, - game: reducers.gameReducer, - cryps: reducers.crypsReducer, - items: reducers.itemsReducer, - ws: reducers.wsReducer, - }) -); +const game = renderCryps(); +const events = registerEvents(game.registry, game.events); +const ws = createSocket(events); +events.setWs(ws); -store.subscribe(() => console.log(store.getState())); -setupKeys(store); - -const ws = createSocket(store); -store.dispatch(actions.setWs(ws)); ws.connect(); - -const game = renderCryps(store); - -registerEvents(store, game.registry, game.events); diff --git a/client/src/scenes/cryp.list.js b/client/src/scenes/cryp.list.js index 2b1870d2..951dcd3a 100644 --- a/client/src/scenes/cryp.list.js +++ b/client/src/scenes/cryp.list.js @@ -11,6 +11,7 @@ class CrypList extends Phaser.Scene { create() { this.registry.events.on('changedata', this.updateData, this); + this.registry.events.on('setdata', this.updateData, this); return true; } diff --git a/client/src/scenes/cryps.js b/client/src/scenes/cryps.js index bdeaf7ca..c57350f0 100644 --- a/client/src/scenes/cryps.js +++ b/client/src/scenes/cryps.js @@ -5,10 +5,9 @@ const Menu = require('./menu'); const Combat = require('./combat'); // const Passives = require('./passives'); -function renderCryps(store, socket) { +function renderCryps() { const config = { type: Phaser.AUTO, - // parent: 'cryps', backgroundColor: '#181818', resolution: window.devicePixelRatio, width: window.innerWidth, diff --git a/client/src/socket.js b/client/src/socket.js index b8655eed..8355e101 100644 --- a/client/src/socket.js +++ b/client/src/socket.js @@ -1,8 +1,6 @@ const { toast } = require('bulma-toast'); const cbor = require('borc'); -const actions = require('./actions'); - const SOCKET_URL = process.env.NODE_ENV === 'production' ? 'wss://cryps.gg/ws' : 'ws://localhost:40000'; function errorToast(err) { @@ -17,7 +15,7 @@ function errorToast(err) { // Create WebSocket connection. // requires the redux store in order to push updates // to components -function createSocket(store) { +function createSocket(events) { let ws; let gameStateTimeout; @@ -77,7 +75,7 @@ function createSocket(store) { const [struct, login] = res; account = login; - store.dispatch(actions.setAccount(login)); + events.setAccount(login); send({ method: 'account_cryps', params: {} }); send({ method: 'item_list', params: {} }); console.log(account); @@ -85,21 +83,19 @@ function createSocket(store) { function accountCryps(response) { const [structName, cryps] = response; - store.dispatch(actions.setCryps(cryps)); - console.log('got my cryps', cryps); + events.setCryps(cryps); } function gameState(response) { const [structName, game] = response; clearInterval(gameStateTimeout); gameStateTimeout = setTimeout(() => sendGameState(game.id), 1000); - store.dispatch(actions.setGame(game)); + events.setGame(game); } function gameJoinableList(response) { const [structName, gameList] = response; - gameStateTimeout = setTimeout(() => sendGameState(game.id), 1000); - store.dispatch(actions.setGame(game)); + events.setGameList(gameList); } function crypSpawn(response) { @@ -114,7 +110,7 @@ function createSocket(store) { function itemList(response) { const [structName, items] = response; - store.dispatch(actions.setItems(items)); + events.setItems(items); } // ------------- @@ -174,18 +170,18 @@ function createSocket(store) { game_id: gameId, cryp_id: crypId, target_team_id: targetTeamId, skill, }, }); - store.dispatch(actions.setActiveSkill(null)); + events.setActiveSkill(null); } function sendGameTarget(gameId, crypId, skillId) { send({ method: 'game_target', params: { game_id: gameId, cryp_id: crypId, skill_id: skillId } }); - store.dispatch(actions.setActiveIncoming(null)); + events.setActiveIncoming(null); } function sendItemUse(item, target) { console.log(item, target); send({ method: 'item_use', params: { item, target } }); - store.dispatch(actions.setActiveItem(null)); + events.setActiveItem(null); }