Skip to content

Commit

Permalink
Moves CommandMapConfig and SignalMapConfig
Browse files Browse the repository at this point in the history
Adds an AppConfig for storing application-level configuration data
  • Loading branch information
Alec McEachran committed Mar 26, 2013
1 parent bbfc10f commit d9e8fc1
Show file tree
Hide file tree
Showing 27 changed files with 187 additions and 91 deletions.
12 changes: 9 additions & 3 deletions build/lib/dust.rb
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,14 @@ def make(target)
nme.make 'flash'
when 'html5'
haxe.html5
when 'ios'
when 'iphone'
nme.make 'ios'
when 'iphone_simulator'
nme.make 'ios', '-simulator'
when 'ipad'
nme.make 'ios', '-ipad'
when 'ipad_simulator'
nme.make 'ios', '-ipad -simulator'
else
puts "dust unable to make #{target} - unsupported target"
end
Expand All @@ -47,8 +53,8 @@ def run(target)
nme.run 'flash'
when 'html5'
puts 'TODO running html5 target not implemented yet!'
when 'ios'
nme.run 'ios'
when 'ipad'
nme.run 'ios', '-ipad'
when 'iphone_simulator'
nme.run 'ios', '-simulator'
when 'ipad_simulator'
Expand Down
5 changes: 3 additions & 2 deletions build/lib/nme.rb
Original file line number Diff line number Diff line change
Expand Up @@ -17,13 +17,14 @@ def attributes_hash(attributes)
hash
end

def make(target)
def make(target, flags = nil)
@target = target
write_nmml
test target, flags
end

def test(target, flags)
command = "nme test #{target}.nmml #{target} #{flags}"
command = "nme build #{target}.nmml #{target} #{flags.nil? ? '' : flags}"
execute command
end

Expand Down
31 changes: 23 additions & 8 deletions rakefile.rb
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,7 @@
task :all => [:build, :clients]

task :clients do
puts dust.test %w(as3 js)
#puts munit.test %w(as3 js cpp)
puts dust.test %w(as3 js) #%w(as3 js cpp)
end

task :as3 do
Expand Down Expand Up @@ -57,8 +56,20 @@
dust.make 'html5'
end

task :ios do
dust.make 'ios'
task :iphone do
dust.make 'iphone'
end

task :iphone_simulator do
dust.make 'iphone_simulator'
end

task :ipad do
dust.make 'ipad'
end

task :ipad_simulator do
dust.make 'ipad_simulator'
end

end
Expand All @@ -73,15 +84,19 @@

end

task :ios => :'make:ios' do
dust.run 'ios-simulator'
task :iphone => :'make:iphone' do
dust.run 'ipad'
end

task :iphone_simulator => :'make:ios' do
task :iphone_simulator => :'make:iphone_simulator' do
dust.run 'iphone_simulator'
end

task :ipad_simulator => :'make:ios' do
task :ipad => :'make:ipad' do
dust.run 'ipad'
end

task :ipad_simulator => :'make:ipad_simulator' do
dust.run 'ipad_simulator'
end

Expand Down
37 changes: 37 additions & 0 deletions src/dust/app/AppConfig.hx
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
package dust.app;

import nme.Vector;
import nme.ui.Multitouch;
import dust.app.data.AppData;
import minject.Injector;
import dust.context.Config;

class AppConfig implements Config
{
@inject public var injector:Injector;

public function configure()
injector.mapValue(AppData, makeApp())

function makeApp():AppData
{
var app = new AppData();
app.deviceWidth = Std.int(nme.system.Capabilities.screenResolutionX);
app.deviceHeight = Std.int(nme.system.Capabilities.screenResolutionY);
app.isMultiTouch = nme.ui.Multitouch.supportsTouchEvents;
app.hasGestures = nme.ui.Multitouch.supportsGestureEvents;
app.supportedGestures = toArray(nme.ui.Multitouch.supportedGestures);
return app;
}

function toArray(list:Vector<String>):Array<String>
{
var output = new Array<String>();
if (list == null)
return output;

for (item in list)
output.push(item);
return output;
}
}
12 changes: 12 additions & 0 deletions src/dust/app/data/AppData.hx
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package dust.app.data;

class AppData
{
public var deviceWidth:Int;
public var deviceHeight:Int;
public var isMultiTouch:Bool;
public var hasGestures:Bool;
public var supportedGestures:Array<String>;

public function new() {}
}
9 changes: 6 additions & 3 deletions src/dust/camera/CameraConfig.hx
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package dust.camera;

import dust.app.data.AppData;
import dust.app.AppConfig;
import dust.collections.CollectionsConfig;
import dust.camera.config.CameraDecorator;
import dust.entities.EntitiesConfig;
Expand All @@ -13,14 +15,15 @@ import minject.Injector;
class CameraConfig implements DependentConfig
{
@inject public var injector:Injector;
@inject public var app:AppData;
@inject public var entities:Entities;

var screenCenterX:Int;
var screenCenterY:Int;
var camera:Camera;

public function dependencies():Array<Class<Config>>
return [CollectionsConfig]
return [AppConfig, CollectionsConfig]

public function configure()
{
Expand All @@ -35,8 +38,8 @@ class CameraConfig implements DependentConfig
function makeCamera():Camera
{
var stage = nme.Lib.current.stage;
screenCenterX = Std.int(stage.stageWidth * 0.5);
screenCenterY = Std.int(stage.stageHeight * 0.5);
screenCenterX = Std.int(app.deviceWidth * 0.5);
screenCenterY = Std.int(app.deviceHeight * 0.5);

return new Camera(screenCenterX, screenCenterY);
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package dust.app;
package dust.commands;

import dust.signals.SignalMapConfig;
import dust.context.DependentConfig;
import dust.commands.CommandMap;
import minject.Injector;
Expand Down
19 changes: 10 additions & 9 deletions src/dust/console/ConsoleConfig.hx
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
package dust.console;

import dust.app.CommandMapConfig;
import dust.app.SignalMapConfig;
import dust.app.AppConfig;
import dust.commands.CommandMapConfig;
import dust.signals.SignalMapConfig;
import dust.commands.CommandMap;
import dust.context.Context;
import dust.console.control.MapConsoleMethodsCommand;
Expand All @@ -10,8 +11,8 @@ import dust.console.ui.ConsoleFormat;
import dust.console.ui.ConsoleOutput;
import dust.console.ui.ConsoleInput;
import dust.console.control.DefaultConsoleListeners;
import dust.console.control.HideConfigSignal;
import dust.console.control.ShowConfigSignal;
import dust.console.control.HideConsoleSignal;
import dust.console.control.ShowConsoleSignal;
import dust.console.impl.Console;
import dust.console.impl.ConsoleMap;
import dust.context.DependentConfig;
Expand Down Expand Up @@ -40,7 +41,7 @@ class ConsoleConfig implements DependentConfig, implements UnconfigConfig
var listeners:DefaultConsoleListeners;

public function dependencies():Array<Class<Config>>
return [SignalMapConfig, CommandMapConfig]
return [AppConfig, SignalMapConfig, CommandMapConfig]

public function configure()
{
Expand All @@ -64,8 +65,8 @@ class ConsoleConfig implements DependentConfig, implements UnconfigConfig
function mapSignals()
{
console = injector.getInstance(Console);
signalMap.mapVoid(ShowConfigSignal, console.enable);
signalMap.mapVoid(HideConfigSignal, console.disable);
signalMap.mapVoid(ShowConsoleSignal, console.enable);
signalMap.mapVoid(HideConsoleSignal, console.disable);
}

function mapCommands()
Expand All @@ -89,8 +90,8 @@ class ConsoleConfig implements DependentConfig, implements UnconfigConfig
console.disable();
listeners.disable();

signalMap.unmapVoid(ShowConfigSignal, console.enable);
signalMap.unmapVoid(HideConfigSignal, console.disable);
signalMap.unmapVoid(ShowConsoleSignal, console.enable);
signalMap.unmapVoid(HideConsoleSignal, console.disable);
injector.unmap(ConsoleMap);
injector.unmap(Console);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@ package dust.console.control;

import dust.signals.SignalVoid;

class HideConfigSignal extends SignalVoid {}
class HideConsoleSignal extends SignalVoid {}
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@ package dust.console.control;

import dust.signals.SignalVoid;

class ShowConfigSignal extends SignalVoid {}
class ShowConsoleSignal extends SignalVoid {}
14 changes: 6 additions & 8 deletions src/dust/console/ui/ConsoleInput.hx
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package dust.console.ui;

import dust.app.data.AppData;
import nme.display.BlendMode;
import dust.signals.Signal;

Expand All @@ -17,22 +18,19 @@ class ConsoleInput extends Sprite
var input:TextField;

@inject
public function new(format:ConsoleFormat)
public function new(app:AppData, format:ConsoleFormat)
{
super();
this.format = format;
this.input = makeInput();
this.input = makeInput(app);
command = new Signal<String>();
}

function makeInput()
function makeInput(app:AppData)
{
var width = nme.Lib.current.stage.stageWidth;
var height = nme.Lib.current.stage.stageHeight;

var input = new TextField();
input.y = height - 20;
input.width = width;
input.y = app.deviceHeight - 20;
input.width = app.deviceWidth;
input.height = 20;
input.background = true;
input.backgroundColor = 0x006600;
Expand Down
23 changes: 9 additions & 14 deletions src/dust/console/ui/ConsoleOutput.hx
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package dust.console.ui;

import dust.app.data.AppData;
import nme.display.Shape;
import nme.display.Sprite;
import nme.display.BlendMode;
Expand All @@ -17,37 +18,31 @@ class ConsoleOutput extends Sprite
var previous:Int;

@inject
public function new(format:ConsoleFormat)
public function new(app:AppData, format:ConsoleFormat)
{
super();
this.lines = new Array<String>();
this.format = format;
this.background = makeBackground();
this.textfield = makeTextfield();
this.background = makeBackground(app);
this.textfield = makeTextfield(app);
this.previous = 0;
}

function makeBackground():Shape
function makeBackground(app:AppData):Shape
{
var width = nme.Lib.current.stage.stageWidth;
var height = nme.Lib.current.stage.stageHeight;

var shape = new Shape();
shape.graphics.beginFill(0x006600, 0.8);
shape.graphics.drawRect(0, 0, width, height);
shape.graphics.drawRect(0, 0, app.deviceWidth, app.deviceHeight);
shape.graphics.endFill();
addChild(shape);
return shape;
}

function makeTextfield():TextField
function makeTextfield(app:AppData):TextField
{
var width = nme.Lib.current.stage.stageWidth;
var height = nme.Lib.current.stage.stageHeight;

var textfield = new TextField();
textfield.width = width;
textfield.height = height - 20;
textfield.width = app.deviceWidth;
textfield.height = app.deviceHeight - 20;
textfield.background = false;
textfield.defaultTextFormat = format;
textfield.multiline = true;
Expand Down
2 changes: 1 addition & 1 deletion src/dust/entities/EntitiesConfig.hx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package dust.entities;

import dust.app.SignalMapConfig;
import dust.signals.SignalMapConfig;
import dust.commands.CommandMap;
import dust.components.BitfieldFactory;
import dust.context.Config;
Expand Down
Loading

0 comments on commit d9e8fc1

Please sign in to comment.