From efa2bee08c01b1c33cafce8bbaccfed28b5f775c Mon Sep 17 00:00:00 2001 From: Jayant Jain <jayantjain1992@gmail.com> Date: Sun, 22 Jun 2014 19:11:15 +0530 Subject: [PATCH 01/10] Adds shortcuts for undo/redo for thangs tab view --- app/views/editor/level/thangs_tab_view.coffee | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/app/views/editor/level/thangs_tab_view.coffee b/app/views/editor/level/thangs_tab_view.coffee index 8e905654a..e2d0d4ac8 100644 --- a/app/views/editor/level/thangs_tab_view.coffee +++ b/app/views/editor/level/thangs_tab_view.coffee @@ -57,6 +57,8 @@ module.exports = class ThangsTabView extends View 'delete, del, backspace': 'deleteSelectedExtantThang' 'left': -> @moveAddThangSelection -1 'right': -> @moveAddThangSelection 1 + 'ctrl+z': 'undoAction' + 'ctrl+shift+z': 'redoAction' constructor: (options) -> super options @@ -450,6 +452,12 @@ module.exports = class ThangsTabView extends View $('#add-thangs-column').toggle() @onWindowResize e + undoAction: (e) -> + @thangsTreema.undo() + + redoAction: (e) -> + @thangsTreema.redo() + class ThangsNode extends TreemaNode.nodeMap.array valueClass: 'treema-array-replacement' getChildren: -> From c40da260f04d68e4fc185404a3a42b1788addfe5 Mon Sep 17 00:00:00 2001 From: Jayant Jain <jayantjain1992@gmail.com> Date: Tue, 24 Jun 2014 16:00:29 +0530 Subject: [PATCH 02/10] Adds initial modal and view for terrain generator --- app/styles/terrain_randomise.sass | 148 ++++++++++++++++++ app/templates/modal/terrain_randomise.jade | 14 ++ .../modal/terrain_randomise_modal.coffee | 29 ++++ 3 files changed, 191 insertions(+) create mode 100644 app/styles/terrain_randomise.sass create mode 100644 app/templates/modal/terrain_randomise.jade create mode 100644 app/views/modal/terrain_randomise_modal.coffee diff --git a/app/styles/terrain_randomise.sass b/app/styles/terrain_randomise.sass new file mode 100644 index 000000000..3022f10c1 --- /dev/null +++ b/app/styles/terrain_randomise.sass @@ -0,0 +1,148 @@ +#terrain-randomise-modal + #noob-view p + font-size: 30px + + #skip-tutorial-button + font-size: 16px + + .tutorial-suggestion + text-align: center + font-size: 18px + margin: 10px 0 30px + + .play-option + margin-bottom: 15px + width: 100% + height: 100px + overflow: hidden + background: white + border: 1px solid #333 + position: relative + + -webkit-transition: opacity 0.3s ease-in-out + -moz-transition: opacity 0.3s ease-in-out + -ms-transition: opacity 0.3s ease-in-out + -o-transition: opacity 0.3s ease-in-out + transition: opacity 0.3s ease-in-out + + opacity: 0.4 + + border-radius: 5px + .only-one + -webkit-transition: opacity 0.3s ease-in-out + -moz-transition: opacity 0.3s ease-in-out + -ms-transition: opacity 0.3s ease-in-out + -o-transition: opacity 0.3s ease-in-out + transition: opacity 0.3s ease-in-out + opacity: 0 + + .play-option:hover + opacity: 1 + .only-one + opacity: 1 + + .my-icon + position: relative + left: 0 + top: -10px + z-index: 1 + + .my-team-icon + height: 60px + position: relative + top: -10px + left: 10px + z-index: 0 + + .opponent-team-icon + height: 60px + position: relative + top: 10px + right: 10px + z-index: 0 + float: right + -moz-transform: scaleX(-1) + -o-transform: scaleX(-1) + -webkit-transform: scaleX(-1) + transform: scaleX(-1) + filter: FlipH + -ms-filter: "FlipH" + + .opponent-icon + position: relative + float: right + right: 0 + top: -10px + -moz-transform: scaleX(-1) + -o-transform: scaleX(-1) + -webkit-transform: scaleX(-1) + transform: scaleX(-1) + filter: FlipH + -ms-filter: "FlipH" + z-index: 1 + + .name-label + border-bottom: 20px solid lightslategray + height: 0 + width: 40% + position: absolute + bottom: 0 + color: black + font-weight: bold + text-align: center + z-index: 2 + + span + position: relative + top: 1px + + .my-name + border-right: 15px solid transparent + left: 0 + span + left: 3px + + .preset-size + border-left: 15px solid transparent + right: 0 + //text-align: right + span + right: 3px + + .preset-name + border-top: 25px solid darkgray + border-left: 20px solid transparent + border-right: 20px solid transparent + height: 0 + width: 30% + position: absolute + left: 35% + top: 0 + color: black + text-align: center + font-size: 18px + font-weight: bold + + span + position: relative + top: -25px + + .easy-option .preset-name + border-top: 25px solid limegreen + + .medium-option .preset-name + border-top: 25px solid darkorange + + .hard-option .preset-name + border-top: 25px solid black + color: white + + .vs + position: absolute + left: 40% + right: 40% + text-align: center + top: 35px + font-size: 40px + font-weight: bolder + color: black \ No newline at end of file diff --git a/app/templates/modal/terrain_randomise.jade b/app/templates/modal/terrain_randomise.jade new file mode 100644 index 000000000..e2bbd23f6 --- /dev/null +++ b/app/templates/modal/terrain_randomise.jade @@ -0,0 +1,14 @@ +extends /templates/modal/modal_base + +block modal-header-content + h3(data-i18n="editor.pick_a_terrain") Pick a Terrain + +block modal-body-content + div#normal-view + a(href="#") + div.play-option(data-preset-type="grassy", data-preset-size="small") + div.preset-size.name-label + span(data-i18n="ladder.small") Small + div.preset-name + span(data-i18n="ladder.grassy") Grassy + //- for model in models \ No newline at end of file diff --git a/app/views/modal/terrain_randomise_modal.coffee b/app/views/modal/terrain_randomise_modal.coffee new file mode 100644 index 000000000..6dba35042 --- /dev/null +++ b/app/views/modal/terrain_randomise_modal.coffee @@ -0,0 +1,29 @@ +ModalView = require 'views/kinds/ModalView' +template = require 'templates/modal/terrain_randomise' +CocoModel = require 'models/CocoModel' + +module.exports = class TerrainRandomiseModal extends ModalView + id: 'terrain-randomise-modal' + template: template + thangs = [] + + events: + 'click .play-option': 'onRandomise' + + onRevertModel: (e) -> + id = $(e.target).val() + CocoModel.backedUp[id].revert() + $(e.target).closest('tr').remove() + @reloadOnClose = true + + onRandomise: (e) -> + + getRenderData: -> + c = super() + models = _.values CocoModel.backedUp + models = (m for m in models when m.hasLocalChanges()) + c.models = models + c + + onHidden: -> + location.reload() if @reloadOnClose From 813ecaa59c1350f05b2dd350bbf920b9ba6ff1f7 Mon Sep 17 00:00:00 2001 From: Jayant Jain <jayantjain1992@gmail.com> Date: Tue, 24 Jun 2014 16:05:14 +0530 Subject: [PATCH 03/10] Adds randomise option to dropdown on editor page --- app/templates/editor/level/edit.jade | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/templates/editor/level/edit.jade b/app/templates/editor/level/edit.jade index d04b8f4bd..e446f7613 100644 --- a/app/templates/editor/level/edit.jade +++ b/app/templates/editor/level/edit.jade @@ -79,6 +79,8 @@ block header a(data-i18n="common.fork")#fork-level-start-button Fork li(class=anonymous ? "disabled": "") a(data-toggle="coco-modal", data-target="modal/revert", data-i18n="editor.revert")#revert-button Revert + li(class=anonymous ? "disabled": "") + a(data-toggle="coco-modal", data-target="modal/terrain_randomise", data-i18n="editor.randomise")#randomise-button Randomise li(class=anonymous ? "disabled": "") a(data-i18n="editor.pop_i18n")#pop-level-i18n-button Populate i18n li.divider From 1436a4dac75b9157218e0bfab278248c7e017ae8 Mon Sep 17 00:00:00 2001 From: Jayant Jain <jayantjain1992@gmail.com> Date: Tue, 24 Jun 2014 16:15:39 +0530 Subject: [PATCH 04/10] Cleans up some css for terrain generator modal --- app/styles/terrain_randomise.sass | 28 ++++------------------ app/templates/modal/terrain_randomise.jade | 2 +- 2 files changed, 5 insertions(+), 25 deletions(-) diff --git a/app/styles/terrain_randomise.sass b/app/styles/terrain_randomise.sass index 3022f10c1..e6cf29bec 100644 --- a/app/styles/terrain_randomise.sass +++ b/app/styles/terrain_randomise.sass @@ -1,16 +1,6 @@ #terrain-randomise-modal - #noob-view p - font-size: 30px - - #skip-tutorial-button - font-size: 16px - - .tutorial-suggestion - text-align: center - font-size: 18px - margin: 10px 0 30px - - .play-option + + .choose-option margin-bottom: 15px width: 100% height: 100px @@ -36,7 +26,7 @@ transition: opacity 0.3s ease-in-out opacity: 0 - .play-option:hover + .choose-option:hover opacity: 1 .only-one opacity: 1 @@ -135,14 +125,4 @@ .hard-option .preset-name border-top: 25px solid black - color: white - - .vs - position: absolute - left: 40% - right: 40% - text-align: center - top: 35px - font-size: 40px - font-weight: bolder - color: black \ No newline at end of file + color: white \ No newline at end of file diff --git a/app/templates/modal/terrain_randomise.jade b/app/templates/modal/terrain_randomise.jade index e2bbd23f6..680af187c 100644 --- a/app/templates/modal/terrain_randomise.jade +++ b/app/templates/modal/terrain_randomise.jade @@ -6,7 +6,7 @@ block modal-header-content block modal-body-content div#normal-view a(href="#") - div.play-option(data-preset-type="grassy", data-preset-size="small") + div.choose-option(data-preset-type="grassy", data-preset-size="small") div.preset-size.name-label span(data-i18n="ladder.small") Small div.preset-name From 74205b31d2ce69a3558798f9bf1e259600947e66 Mon Sep 17 00:00:00 2001 From: Jayant Jain <jayantjain1992@gmail.com> Date: Thu, 26 Jun 2014 18:32:31 +0530 Subject: [PATCH 05/10] Adds code for passing randomised thangs to thang view --- app/views/editor/level/thangs_tab_view.coffee | 6 ++++++ app/views/modal/terrain_randomise_modal.coffee | 13 ++++++++++++- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/app/views/editor/level/thangs_tab_view.coffee b/app/views/editor/level/thangs_tab_view.coffee index e2d0d4ac8..f68965bc3 100644 --- a/app/views/editor/level/thangs_tab_view.coffee +++ b/app/views/editor/level/thangs_tab_view.coffee @@ -43,6 +43,7 @@ module.exports = class ThangsTabView extends View 'sprite:mouse-up': 'onSpriteMouseUp' 'sprite:double-clicked': 'onSpriteDoubleClicked' 'surface:stage-mouse-up': 'onStageMouseUp' + 'randomise:terrain-generated': 'onRandomiseTerrain' events: 'click #extant-thangs-filter button': 'onFilterExtantThangs' @@ -223,6 +224,11 @@ module.exports = class ThangsTabView extends View return unless e.thang @editThang thangID: e.thang.id + onRandomiseTerrain: (e) -> + console.log e + for thang in e.thangs + console.log thang.id, thang.pos + # TODO: figure out a good way to have all Surface clicks and Treema clicks just proxy in one direction, so we can maintain only one way of handling selection and deletion onExtantThangSelected: (e) -> @selectedExtantSprite?.setNameLabel? null unless @selectedExtantSprite is e.sprite diff --git a/app/views/modal/terrain_randomise_modal.coffee b/app/views/modal/terrain_randomise_modal.coffee index 6dba35042..0b5f96426 100644 --- a/app/views/modal/terrain_randomise_modal.coffee +++ b/app/views/modal/terrain_randomise_modal.coffee @@ -8,7 +8,7 @@ module.exports = class TerrainRandomiseModal extends ModalView thangs = [] events: - 'click .play-option': 'onRandomise' + 'click .choose-option': 'onRandomise' onRevertModel: (e) -> id = $(e.target).val() @@ -17,6 +17,17 @@ module.exports = class TerrainRandomiseModal extends ModalView @reloadOnClose = true onRandomise: (e) -> + @thangs = [] + @thangs.push { + 'id':'Grass01' + 'pos':{ + 'x':20 + 'y':20 + } + } + Backbone.Mediator.publish('randomise:terrain-generated', + 'thangs': @thangs + ) getRenderData: -> c = super() From 38bed0ee93649b8e67cc65416c25fa57f857a30c Mon Sep 17 00:00:00 2001 From: Jayant Jain <jayantjain1992@gmail.com> Date: Thu, 26 Jun 2014 21:40:11 +0530 Subject: [PATCH 06/10] Random thangs are now created and positioned in the thangs view --- app/views/editor/level/thangs_tab_view.coffee | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/app/views/editor/level/thangs_tab_view.coffee b/app/views/editor/level/thangs_tab_view.coffee index f68965bc3..bcc398bbc 100644 --- a/app/views/editor/level/thangs_tab_view.coffee +++ b/app/views/editor/level/thangs_tab_view.coffee @@ -228,6 +228,8 @@ module.exports = class ThangsTabView extends View console.log e for thang in e.thangs console.log thang.id, thang.pos + @selectAddThangType thang.id + @addThang @addThangType, thang.pos # TODO: figure out a good way to have all Surface clicks and Treema clicks just proxy in one direction, so we can maintain only one way of handling selection and deletion onExtantThangSelected: (e) -> @@ -280,6 +282,7 @@ module.exports = class ThangsTabView extends View @selectAddThang {target: icons[nextSelectedIndex]} selectAddThangType: (type, @cloneSourceThang) -> + console.log type if _.isString type type = _.find @supermodel.getModels(ThangType), (m) -> m.get('name') is type pos = @addThangSprite?.thang.pos # Maintain old sprite's pos if we have it @@ -397,6 +400,7 @@ module.exports = class ThangsTabView extends View @editThang thangID: id if id addThang: (thangType, pos) -> + console.log thangType, pos thangID = Thang.nextID(thangType.get('name'), @world) until thangID and not @thangsTreema.get "id=#{thangID}" if @cloneSourceThang components = _.cloneDeep @thangsTreema.get "id=#{@cloneSourceThang.id}/components" From b401b0489378d7b82d96615280e12b6dff0d0e41 Mon Sep 17 00:00:00 2001 From: Jayant Jain <jayantjain1992@gmail.com> Date: Sat, 28 Jun 2014 10:20:55 +0530 Subject: [PATCH 07/10] Adds randomiseFloor and randomiseBorder functions --- app/templates/modal/terrain_randomise.jade | 2 +- .../modal/terrain_randomise_modal.coffee | 94 +++++++++++++++++-- 2 files changed, 88 insertions(+), 8 deletions(-) diff --git a/app/templates/modal/terrain_randomise.jade b/app/templates/modal/terrain_randomise.jade index 680af187c..799b4312c 100644 --- a/app/templates/modal/terrain_randomise.jade +++ b/app/templates/modal/terrain_randomise.jade @@ -6,7 +6,7 @@ block modal-header-content block modal-body-content div#normal-view a(href="#") - div.choose-option(data-preset-type="grassy", data-preset-size="small") + div.choose-option(data-preset-type="dungeon", data-preset-size="small") div.preset-size.name-label span(data-i18n="ladder.small") Small div.preset-name diff --git a/app/views/modal/terrain_randomise_modal.coffee b/app/views/modal/terrain_randomise_modal.coffee index 0b5f96426..35562ef81 100644 --- a/app/views/modal/terrain_randomise_modal.coffee +++ b/app/views/modal/terrain_randomise_modal.coffee @@ -2,6 +2,34 @@ ModalView = require 'views/kinds/ModalView' template = require 'templates/modal/terrain_randomise' CocoModel = require 'models/CocoModel' +presets = { + 'dungeon': { + 'type':'dungeon' + 'borders':['Dungeon Wall'] + 'floors':['Dungeon Floor'] + 'decorations':[] + } +} + +sizes = { + 'small': { + 'x':80 + 'y':68 + } + 'large': { + 'x':160 + 'y':136 + } + 'floorSize': { + 'x':20 + 'y':20 + } + 'borderSize': { + 'x':4 + 'y':4 + } +} + module.exports = class TerrainRandomiseModal extends ModalView id: 'terrain-randomise-modal' template: template @@ -18,16 +46,68 @@ module.exports = class TerrainRandomiseModal extends ModalView onRandomise: (e) -> @thangs = [] - @thangs.push { - 'id':'Grass01' - 'pos':{ - 'x':20 - 'y':20 - } - } + target = $(e.target) + presetType = target.attr 'data-preset-type' + presetSize = target.attr 'data-preset-size' + @randomiseThangs presetType, presetSize + Backbone.Mediator.publish('randomise:terrain-generated', 'thangs': @thangs ) + + randomiseThangs: (presetName, presetSize) -> + preset = presets[presetName] + presetSize = sizes[presetSize] + @thangs = [] + @randomiseFloor preset, presetSize + @randomiseBorder preset, presetSize + + randomiseFloor: (preset, presetSize) -> + for i in _.range(0, presetSize.x, sizes.floorSize.x) + for j in _.range(0, presetSize.y, sizes.floorSize.y) + @thangs.push { + 'id': @getRandomThang(preset.floors) + 'pos': { + 'x': i + 'y': j + } + } + + randomiseBorder: (preset, presetSize) -> + for i in _.range(0-sizes.floorSize.x/2+sizes.borderSize.x, presetSize.x-sizes.floorSize.x/2, sizes.borderSize.x) + @thangs.push { + 'id': @getRandomThang(preset.borders) + 'pos': { + 'x': i + 'y': 0-sizes.floorSize.x/2 + } + } + @thangs.push { + 'id': @getRandomThang(preset.borders) + 'pos': { + 'x': i + 'y': presetSize.y - sizes.borderSize.y + } + } + + for i in _.range(0-sizes.floorSize.y/2, presetSize.y-sizes.borderSize.y, sizes.borderSize.y) + @thangs.push { + 'id': @getRandomThang(preset.borders) + 'pos': { + 'x': 0-sizes.floorSize.x/2+sizes.borderSize.x + 'y': i + } + } + @thangs.push { + 'id': @getRandomThang(preset.borders) + 'pos': { + 'x': presetSize.x - sizes.borderSize.x - sizes.floorSize.x/2 + 'y': i + } + } + + getRandomThang: (thangList) -> + return thangList[_.random(0, thangList.length-1)] getRenderData: -> c = super() From dbe464df1637b490a1933a3d1de700624c6d83ca Mon Sep 17 00:00:00 2001 From: Jayant Jain <jayantjain1992@gmail.com> Date: Sat, 28 Jun 2014 10:22:15 +0530 Subject: [PATCH 08/10] Removes console logs --- app/views/editor/level/thangs_tab_view.coffee | 4 ---- 1 file changed, 4 deletions(-) diff --git a/app/views/editor/level/thangs_tab_view.coffee b/app/views/editor/level/thangs_tab_view.coffee index bcc398bbc..010b38b50 100644 --- a/app/views/editor/level/thangs_tab_view.coffee +++ b/app/views/editor/level/thangs_tab_view.coffee @@ -225,9 +225,7 @@ module.exports = class ThangsTabView extends View @editThang thangID: e.thang.id onRandomiseTerrain: (e) -> - console.log e for thang in e.thangs - console.log thang.id, thang.pos @selectAddThangType thang.id @addThang @addThangType, thang.pos @@ -282,7 +280,6 @@ module.exports = class ThangsTabView extends View @selectAddThang {target: icons[nextSelectedIndex]} selectAddThangType: (type, @cloneSourceThang) -> - console.log type if _.isString type type = _.find @supermodel.getModels(ThangType), (m) -> m.get('name') is type pos = @addThangSprite?.thang.pos # Maintain old sprite's pos if we have it @@ -400,7 +397,6 @@ module.exports = class ThangsTabView extends View @editThang thangID: id if id addThang: (thangType, pos) -> - console.log thangType, pos thangID = Thang.nextID(thangType.get('name'), @world) until thangID and not @thangsTreema.get "id=#{thangID}" if @cloneSourceThang components = _.cloneDeep @thangsTreema.get "id=#{@cloneSourceThang.id}/components" From da0b0d9830d1c748ac35271ce73877995d1fdd31 Mon Sep 17 00:00:00 2001 From: Jayant Jain <jayantjain1992@gmail.com> Date: Fri, 4 Jul 2014 01:04:21 +0530 Subject: [PATCH 09/10] Big terrain generator commit - 1.Adds method for randomising decorations/doodads 2.Creates presets 3.Adds thang clusters which can be used to create presets easily --- app/templates/modal/terrain_randomise.jade | 2 +- .../modal/terrain_randomise_modal.coffee | 89 +++++++++++++++++-- 2 files changed, 82 insertions(+), 9 deletions(-) diff --git a/app/templates/modal/terrain_randomise.jade b/app/templates/modal/terrain_randomise.jade index 799b4312c..680af187c 100644 --- a/app/templates/modal/terrain_randomise.jade +++ b/app/templates/modal/terrain_randomise.jade @@ -6,7 +6,7 @@ block modal-header-content block modal-body-content div#normal-view a(href="#") - div.choose-option(data-preset-type="dungeon", data-preset-size="small") + div.choose-option(data-preset-type="grassy", data-preset-size="small") div.preset-size.name-label span(data-i18n="ladder.small") Small div.preset-name diff --git a/app/views/modal/terrain_randomise_modal.coffee b/app/views/modal/terrain_randomise_modal.coffee index 35562ef81..e7bdc4a73 100644 --- a/app/views/modal/terrain_randomise_modal.coffee +++ b/app/views/modal/terrain_randomise_modal.coffee @@ -2,12 +2,51 @@ ModalView = require 'views/kinds/ModalView' template = require 'templates/modal/terrain_randomise' CocoModel = require 'models/CocoModel' +clusters = { + 'rocks': ['Rock 1', 'Rock 2', 'Rock 3', 'Rock 4', 'Rock 5', 'Rock Cluster 1', 'Rock Cluster 2', 'Rock Cluster 3'] + 'trees': ['Tree 1', 'Tree 2', 'Tree 3', 'Tree 4'] + 'shrubs': ['Shrub 1', 'Shrub 2', 'Shrub 3'] + 'houses': ['House 1', 'House 2', 'House 3', 'House 4'] + 'animals': ['Cow', 'Horse'] + 'wood': ['Firewood 1', 'Firewood 2', 'Firewood 3', 'Barrel'] + 'farm': ['Farm'] +} + presets = { - 'dungeon': { - 'type':'dungeon' - 'borders':['Dungeon Wall'] - 'floors':['Dungeon Floor'] - 'decorations':[] + # 'dungeon': { + # 'type':'dungeon' + # 'borders':['Dungeon Wall'] + # 'floors':['Dungeon Floor'] + # 'decorations':[] + # } + 'grassy': { + 'type':'grassy' + 'borders':['Tree 1', 'Tree 2', 'Tree 3'] + 'floors':['Grass01', 'Grass02', 'Grass03'] + 'decorations': { + 'house': { + 'num':[1,2] #min-max + 'width': 20 + 'height': 20 + 'clusters': { + 'houses':[1,1] + 'trees':[1,2] + 'shrubs':[0,3] + 'rocks':[1,2] + } + } + 'farm': { + 'num':[1,2] #min-max + 'width': 20 + 'height': 20 + 'clusters': { + 'farm':[1,1] + 'shrubs':[2,3] + 'wood':[2,4] + 'animals':[2,3] + } + } + } } } @@ -45,12 +84,12 @@ module.exports = class TerrainRandomiseModal extends ModalView @reloadOnClose = true onRandomise: (e) -> - @thangs = [] target = $(e.target) presetType = target.attr 'data-preset-type' presetSize = target.attr 'data-preset-size' @randomiseThangs presetType, presetSize - + # console.log target, target.attr 'data-preset-type' + # console.log target.attr 'data-preset-size' Backbone.Mediator.publish('randomise:terrain-generated', 'thangs': @thangs ) @@ -61,6 +100,8 @@ module.exports = class TerrainRandomiseModal extends ModalView @thangs = [] @randomiseFloor preset, presetSize @randomiseBorder preset, presetSize + @randomiseDecorations preset, presetSize + # console.log _.range(0, presetSize.x, sizes.floorSize) randomiseFloor: (preset, presetSize) -> for i in _.range(0, presetSize.x, sizes.floorSize.x) @@ -106,9 +147,41 @@ module.exports = class TerrainRandomiseModal extends ModalView } } + randomiseDecorations: (preset, presetSize)-> + console.log preset.decorations + for name, decoration of preset.decorations + console.log 'here', decoration + for num in _.range(_.random(decoration.num[0], decoration.num[1])) + center = + { + 'x':_.random(decoration.width, presetSize.x - decoration.width), + 'y':_.random(decoration.height, presetSize.y - decoration.height) + } + min = + { + 'x':center.x - decoration.width/2 + 'y':center.y - decoration.height/2 + } + max = + { + 'x':center.x + decoration.width/2 + 'y':center.y + decoration.height/2 + } + console.log center, min, max + for cluster, range of decoration.clusters + for i in _.range(_.random(range[0], range[1])) + @thangs.push { + 'id':@getRandomThang(clusters[cluster]) + 'pos':{ + 'x':_.random(min.x, max.x) + 'y':_.random(min.y, max.y) + } + } + + getRandomThang: (thangList) -> return thangList[_.random(0, thangList.length-1)] - + getRenderData: -> c = super() models = _.values CocoModel.backedUp From 5fb4f161d0e99c950ad1d08222095a9a5e9b0913 Mon Sep 17 00:00:00 2001 From: Jayant Jain <jayantjain1992@gmail.com> Date: Thu, 10 Jul 2014 21:18:51 +0530 Subject: [PATCH 10/10] Removes console logs --- app/views/modal/terrain_randomise_modal.coffee | 6 ------ 1 file changed, 6 deletions(-) diff --git a/app/views/modal/terrain_randomise_modal.coffee b/app/views/modal/terrain_randomise_modal.coffee index e7bdc4a73..94b4676fb 100644 --- a/app/views/modal/terrain_randomise_modal.coffee +++ b/app/views/modal/terrain_randomise_modal.coffee @@ -88,8 +88,6 @@ module.exports = class TerrainRandomiseModal extends ModalView presetType = target.attr 'data-preset-type' presetSize = target.attr 'data-preset-size' @randomiseThangs presetType, presetSize - # console.log target, target.attr 'data-preset-type' - # console.log target.attr 'data-preset-size' Backbone.Mediator.publish('randomise:terrain-generated', 'thangs': @thangs ) @@ -101,7 +99,6 @@ module.exports = class TerrainRandomiseModal extends ModalView @randomiseFloor preset, presetSize @randomiseBorder preset, presetSize @randomiseDecorations preset, presetSize - # console.log _.range(0, presetSize.x, sizes.floorSize) randomiseFloor: (preset, presetSize) -> for i in _.range(0, presetSize.x, sizes.floorSize.x) @@ -148,9 +145,7 @@ module.exports = class TerrainRandomiseModal extends ModalView } randomiseDecorations: (preset, presetSize)-> - console.log preset.decorations for name, decoration of preset.decorations - console.log 'here', decoration for num in _.range(_.random(decoration.num[0], decoration.num[1])) center = { @@ -167,7 +162,6 @@ module.exports = class TerrainRandomiseModal extends ModalView 'x':center.x + decoration.width/2 'y':center.y + decoration.height/2 } - console.log center, min, max for cluster, range of decoration.clusters for i in _.range(_.random(range[0], range[1])) @thangs.push {