From 5a1965bf2ed9a54601ca16fd67555335c510ce08 Mon Sep 17 00:00:00 2001 From: hwc487 Date: Thu, 26 Apr 2012 16:40:05 -0700 Subject: Update materials to the new texture model. Create local world for deleted source canvases --- js/lib/rdge/materials/bump-metal-material.js | 1 - js/lib/rdge/materials/deform-material.js | 13 ++-- js/lib/rdge/materials/flag-material.js | 27 +++---- js/lib/rdge/materials/fly-material.js | 21 +++--- js/lib/rdge/materials/julia-material.js | 18 ++--- js/lib/rdge/materials/keleidoscope-material.js | 18 ++--- js/lib/rdge/materials/linear-gradient-material.js | 18 ++++- js/lib/rdge/materials/mandel-material.js | 19 ++--- js/lib/rdge/materials/pulse-material.js | 19 ++--- js/lib/rdge/materials/radial-blur-material.js | 10 +-- js/lib/rdge/materials/relief-tunnel-material.js | 13 ++-- js/lib/rdge/materials/square-tunnel-material.js | 13 ++-- js/lib/rdge/materials/star-material.js | 13 ++-- js/lib/rdge/materials/tunnel-material.js | 13 ++-- js/lib/rdge/materials/twist-material.js | 13 ++-- js/lib/rdge/materials/uber-material.js | 16 +++-- js/lib/rdge/materials/water-material.js | 10 +-- js/lib/rdge/materials/z-invert-material.js | 13 ++-- js/lib/rdge/texture.js | 9 ++- js/mediators/element-mediator.js | 26 ++++--- js/models/materials-model.js | 62 ++++++++-------- js/panels/Materials/materials-data.json | 84 ++++++++++++++++++++-- .../materials-popup.reel/materials-popup.js | 56 ++++++++++----- 23 files changed, 325 insertions(+), 180 deletions(-) diff --git a/js/lib/rdge/materials/bump-metal-material.js b/js/lib/rdge/materials/bump-metal-material.js index 981edbfd..4bc5dfe8 100755 --- a/js/lib/rdge/materials/bump-metal-material.js +++ b/js/lib/rdge/materials/bump-metal-material.js @@ -22,7 +22,6 @@ var BumpMetalMaterial = function BumpMetalMaterial() { this._lightDiff = [0.3, 0.3, 0.3, 1.0]; this._diffuseTexture = "assets/images/metal.png"; - //this._diffuseTexture = "texture"; this._specularTexture = "assets/images/silver.png"; this._normalTexture = "assets/images/normalMap.png"; diff --git a/js/lib/rdge/materials/deform-material.js b/js/lib/rdge/materials/deform-material.js index a7a0c178..c7f9cadc 100644 --- a/js/lib/rdge/materials/deform-material.js +++ b/js/lib/rdge/materials/deform-material.js @@ -37,13 +37,16 @@ var DeformMaterial = function DeformMaterial() { // Methods /////////////////////////////////////////////////////////////////////// // duplcate method requirde - this.dup = function (world) { - // allocate a new uber material - var newMat = new DeformMaterial(); - - // copy over the current values; + this.dup = function (world) + { + // get the current values; var propNames = [], propValues = [], propTypes = [], propLabels = []; this.getAllProperties(propNames, propValues, propTypes, propLabels); + + // allocate a new material + var newMat = new DeformMaterial(); + + // copy over the current values; var n = propNames.length; for (var i = 0; i < n; i++) newMat.setProperty(propNames[i], propValues[i]); diff --git a/js/lib/rdge/materials/flag-material.js b/js/lib/rdge/materials/flag-material.js index 8d4d1ee3..312ca1c1 100644 --- a/js/lib/rdge/materials/flag-material.js +++ b/js/lib/rdge/materials/flag-material.js @@ -5,6 +5,7 @@ */ +var Material = require("js/lib/rdge/materials/material").Material; var PulseMaterial = require("js/lib/rdge/materials/pulse-material").PulseMaterial; var Texture = require("js/lib/rdge/texture").Texture; @@ -47,19 +48,21 @@ var FlagMaterial = function FlagMaterial() { // Methods /////////////////////////////////////////////////////////////////////// // duplcate method requirde - this.dup = function( world ) { - // allocate a new uber material - var newMat = new FlagMaterial(); + this.dup = function( world ) + { + // get the current values; + var propNames = [], propValues = [], propTypes = [], propLabels = []; + this.getAllProperties(propNames, propValues, propTypes, propLabels); + + // allocate a new uber material + var newMat = new FlagMaterial(); // copy over the current values; - var propNames = [], propValues = [], propTypes = [], propLabels = []; - this.getAllProperties( propNames, propValues, propTypes, propLabels); - var n = propNames.length; - for (var i=0; i One should have been created"); - NJUtils.makeElementModel(el, "Div", "block"); + this._NJUtils.makeElementModel(el, "Div", "block"); } if(valueMutator && typeof valueMutator === "function") { @@ -119,7 +125,7 @@ exports.ElementMediator = Montage.create(Component, { value: function(el, prop) { if(!el.elementModel) { console.log("Element has no Model -> One should have been created"); - NJUtils.makeElementModel(el, "Canvas", "block", true); + this._NJUtils.makeElementModel(el, "Canvas", "block", true); } return el.elementModel.controller["getShapeProperty"](el, prop); @@ -130,7 +136,7 @@ exports.ElementMediator = Montage.create(Component, { value: function(el, prop, value) { if(!el.elementModel) { console.log("Element has no Model -> One should have been created"); - NJUtils.makeElementModel(el, "Canvas", "block", true); + this._NJUtils.makeElementModel(el, "Canvas", "block", true); } return el.elementModel.controller["setShapeProperty"](el, prop, value); @@ -298,7 +304,7 @@ exports.ElementMediator = Montage.create(Component, { getColor: { value: function(el, isFill, borderSide) { if(!el.elementModel) { - NJUtils.makeModelFromElement(el); + this._NJUtils.makeModelFromElement(el); } return el.elementModel.controller["getColor"](el, isFill, borderSide); } @@ -375,7 +381,7 @@ exports.ElementMediator = Montage.create(Component, { getStroke: { value: function(el) { if(!el.elementModel) { - NJUtils.makeElementModel(el, "Div", "block"); + this._NJUtils.makeElementModel(el, "Div", "block"); } return el.elementModel.controller["getStroke"](el); } @@ -453,7 +459,7 @@ exports.ElementMediator = Montage.create(Component, { get3DProperty: { value: function(el, prop) { if(!el.elementModel) { - NJUtils.makeModelFromElement(el); + this._NJUtils.makeModelFromElement(el); } return el.elementModel.controller["get3DProperty"](el, prop); } @@ -462,7 +468,7 @@ exports.ElementMediator = Montage.create(Component, { get3DProperties: { value: function(el) { if(!el.elementModel) { - NJUtils.makeModelFromElement(el); + this._NJUtils.makeModelFromElement(el); } // var mat = this.getMatrix(el); // var dist = this.getPerspectiveDist(el); @@ -475,7 +481,7 @@ exports.ElementMediator = Montage.create(Component, { getMatrix: { value: function(el) { if(!el.elementModel) { - NJUtils.makeModelFromElement(el); + this._NJUtils.makeModelFromElement(el); } return el.elementModel.controller["getMatrix"](el); } @@ -484,7 +490,7 @@ exports.ElementMediator = Montage.create(Component, { getPerspectiveDist: { value: function(el) { if(!el.elementModel) { - NJUtils.makeModelFromElement(el); + this._NJUtils.makeModelFromElement(el); } return el.elementModel.controller["getPerspectiveDist"](el); } diff --git a/js/models/materials-model.js b/js/models/materials-model.js index a083dc54..20ef317a 100755 --- a/js/models/materials-model.js +++ b/js/models/materials-model.js @@ -45,37 +45,37 @@ exports.MaterialsModel = Montage.create(Component, { value: false }, - deserializedFromTemplate: { - value: function() { - // Load all the materials - this.addMaterial(new FlatMaterial()); - this.addMaterial(new LinearGradientMaterial()); - this.addMaterial(new RadialGradientMaterial()); - this.addMaterial(new BumpMetalMaterial()); - this.addMaterial(new UberMaterial()); - this.addMaterial(new CloudMaterial()); - this.addMaterial(new RadialBlurMaterial()); - this.addMaterial(new RaidersMaterial()); - this.addMaterial(new PlasmaMaterial()); - this.addMaterial(new PulseMaterial()); - this.addMaterial(new TunnelMaterial()); - this.addMaterial(new ReliefTunnelMaterial()); - this.addMaterial(new FlagMaterial()); - this.addMaterial(new SquareTunnelMaterial()); - this.addMaterial(new FlyMaterial()); - this.addMaterial(new WaterMaterial()); - this.addMaterial(new ParisMaterial()); - this.addMaterial(new ZInvertMaterial()); - this.addMaterial(new DeformMaterial()); - this.addMaterial(new StarMaterial()); - this.addMaterial(new TwistMaterial()); - this.addMaterial(new TwistVertMaterial()); - this.addMaterial(new TaperMaterial()); - this.addMaterial(new JuliaMaterial()); - this.addMaterial(new KeleidoscopeMaterial()); - this.addMaterial(new MandelMaterial()); - } - }, + deserializedFromTemplate: { + value: function() { + // Load all the materials + this.addMaterial(new BumpMetalMaterial()); + this.addMaterial(new CloudMaterial()); + this.addMaterial(new DeformMaterial()); + this.addMaterial(new FlagMaterial()); + this.addMaterial(new FlatMaterial()); + this.addMaterial(new FlyMaterial()); + this.addMaterial(new JuliaMaterial()); + this.addMaterial(new KeleidoscopeMaterial()); + this.addMaterial(new LinearGradientMaterial()); + this.addMaterial(new MandelMaterial()); + this.addMaterial(new PlasmaMaterial()); + this.addMaterial(new PulseMaterial()); + this.addMaterial(new ParisMaterial()); + this.addMaterial(new RadialGradientMaterial()); + this.addMaterial(new RadialBlurMaterial()); + this.addMaterial(new RaidersMaterial()); + this.addMaterial(new ReliefTunnelMaterial()); + this.addMaterial(new SquareTunnelMaterial()); + this.addMaterial(new StarMaterial()); + this.addMaterial(new TaperMaterial()); + this.addMaterial(new TunnelMaterial()); + this.addMaterial(new TwistMaterial()); + this.addMaterial(new TwistVertMaterial()); + this.addMaterial(new WaterMaterial()); + this.addMaterial(new ZInvertMaterial()); + this.addMaterial(new UberMaterial()); + } + }, _materials : { value: AppModel.materials diff --git a/js/panels/Materials/materials-data.json b/js/panels/Materials/materials-data.json index f06ab6c8..5e86793e 100644 --- a/js/panels/Materials/materials-data.json +++ b/js/panels/Materials/materials-data.json @@ -4,25 +4,97 @@ { "label": "Ninja Materials", "children": [ - { - "label": "Uber", - "id" : "UberMaterial" - }, { "label": "Bump Metal", "id" : "BumpMetalMaterial" }, + { + "label": "Deform", + "id" : "DeformMaterial" + }, + { + "label": "Flat", + "id" : "FlatMaterial" + }, + { + "label": "Flag", + "id" : "FlagMaterial" + }, + { + "label": "Fly", + "id" : "FlyMaterial" + }, + { + "label": "Julia", + "id" : "JuliaMaterial" + }, + { + "label": "Keleidoscope", + "id" : "KeleidoscopeMaterial" + }, { "label": "Linear Gradient", "id" : "LinearGradientMaterial" }, + { + "label": "Mandel", + "id" : "MandelMaterial" + }, + { + "label": "Plasma", + "id" : "PlasmaMaterial" + }, + { + "label": "Pulse", + "id" : "PulseMaterial" + }, + { + "label": "Radial Blur", + "id" : "RadialBlurMaterial" + }, { "label": "Radial Gradient", "id" : "RadialGradientMaterial" }, { - "label": "Flat", - "id" : "FlatMaterial" + "label": "Relief Tunnel", + "id" : "ReliefTunnelMaterial" + }, + { + "label": "Square Tunnel", + "id" : "SquareTunnelMaterial" + }, + { + "label": "Star", + "id" : "StarMaterial" + }, + { + "label": "Taper", + "id" : "TaperMaterial" + }, + { + "label": "Tunnel", + "id" : "TunnelMaterial" + }, + { + "label": "Twist", + "id" : "TwistMaterial" + }, + { + "label": "Twist Vertex", + "id" : "TwistVertMaterial" + }, + { + "label": "Uber", + "id" : "UberMaterial" + }, + { + "label": "Water", + "id" : "WaterMaterial" + }, + { + "label": "Z-Invert", + "id" : "ZInvertMaterial" } ] }, diff --git a/js/panels/Materials/materials-popup.reel/materials-popup.js b/js/panels/Materials/materials-popup.reel/materials-popup.js index bd10f7a5..9220659e 100755 --- a/js/panels/Materials/materials-popup.reel/materials-popup.js +++ b/js/panels/Materials/materials-popup.reel/materials-popup.js @@ -164,8 +164,10 @@ exports.MaterialsPopup = Montage.create(Component, { var index = value.lastIndexOf( "/" ); if (index < 0) index = value.lastIndexOf( "\\" ); if (index >= 0) + { value = value.substr( index+1 ); - value = "assets\\images\\" + value; + value = "assets\\images\\" + value; + } rtnValue = value.slice(0); } break; @@ -214,30 +216,48 @@ exports.MaterialsPopup = Montage.create(Component, { enumerable: true, value: function(materialID) { - //TODO - Hack to force repetition to draw. Setting .length = 0 did not work. - this.materialsData = []; - - this._materialName = materialID; - if( - (materialID === "UberMaterial") || - (materialID === "FlatMaterial") || - (materialID === "BumpMetalMaterial") || - (materialID === "LinearGradientMaterial") || - (materialID === "RadialGradientMaterial") + //TODO - Hack to force repetition to draw. Setting .length = 0 did not work. + this.materialsData = []; + + this._materialName = materialID; + if( + (materialID === "BumpMetalMaterial") || + (materialID === "DeformMaterial") || + (materialID === "FlatMaterial") || + (materialID === "FlagMaterial") || + (materialID === "FlyMaterial") || + (materialID === "JuliaMaterial") || + (materialID === "KeleidoscopeMaterial") || + (materialID === "LinearGradientMaterial") || + (materialID === "MandelMaterial") || + (materialID === "PlasmaMaterial") || + (materialID === "PulseMaterial") || + (materialID === "RadialBlurMaterial") || + (materialID === "RadialGradientMaterial") || + (materialID === "ReliefTunnelMaterial") || + (materialID === "SquareTunnelMaterial") || + (materialID === "StarMaterial") || + (materialID === "TaperMaterial") || + (materialID === "TunnelMaterial") || + (materialID === "TwistMaterial") || + (materialID === "TwistVertMaterial") || + (materialID === "UberMaterial") || + (materialID === "WaterMaterial") || + (materialID === "ZInvertMaterial") ) { var material = MaterialsModel.getMaterial( materialID ); if (material) { this._material = material; - this.materialsData = this.getMaterialData( material ); + this.materialsData = this.getMaterialData( material ); } - } - else - { - this.materialsData = this[materialID]; - } - this.needsDraw = true; + } + else + { + this.materialsData = this[materialID]; + } + this.needsDraw = true; } }, -- cgit v1.2.3