public CubeWrapper(MathScramble app, Cube cube, int seq) { mApp = app; mCube = cube; mCube.userData = this; mSpriteIndex = 0; //mRectColor = new Color (36, 182, 255); //mSelectColor = new Color (255, 0, 0); mRotation = 0; mCube.TiltEvent += OnTilt; mIndex = seq; mCube.ButtonEvent += HandleCubeButtonEvent; mCube.ShakeStartedEvent += HandleMCubeShakeStartedEvent; //Init the State Machine mRole = mApp.cubeStates [seq - 1]; InitStateMachine (); // mValue = mRole.GenerateValue (); mColor = mRole.mColor; mSize = mRole.mSize; /* if (mCubeStateMachine.Current == Constants.HintState) { mNeedDraw = true; Tick (); }*/ // }
// called during intitialization, before the game has started to run public override void Setup() { Log.Debug ("Setup()"); //Initially, check all the cubes mNeedCheck = true; System.Version myVersion = System.Reflection.Assembly.GetExecutingAssembly ().GetName ().Version; Log.Debug (myVersion.ToString ()); //Init Cube roles cubeStates = new CubeRole[6]; cubeStates [0] = new CubeRole (Constants.HintState, Constants.tTitleToHintState, -1, -1, System.Drawing.Color.Black); cubeStates [1] = new CubeRole (Constants.OperandState, Constants.tTitleToOperandState, Constants.kOperandMin, Constants.kOperandMax, System.Drawing.Color.Orange); cubeStates [2] = new CubeRole (Constants.OperatorState, Constants.tTitleToOperatorState, Constants.kOperatorMin, Constants.kOperatorMax, System.Drawing.Color.Black); cubeStates [3] = new CubeRole (Constants.OperandState, Constants.tTitleToOperandState, Constants.kOperandMin, Constants.kOperandMax, System.Drawing.Color.Red); cubeStates [4] = new CubeRole (Constants.ResultState, Constants.tTitleToResultState, 5, 5, System.Drawing.Color.Blue); cubeStates [5] = new CubeRole (Constants.OperandState, Constants.tTitleToOperandState, Constants.kOperandMin, Constants.kOperandMax, System.Drawing.Color.Green); // Loop through all the cubes and set them up. lastIndex = 1; foreach (Cube cube in CubeSet) { CubeWrapper wrapper = new CubeWrapper (this, cube, lastIndex); lastIndex += 1; mWrappers.Add (wrapper); } //Event Listeners this.PauseEvent += OnPause; this.UnpauseEvent += OnUnpause; CubeSet.NewCubeEvent += OnNewCube; CubeSet.LostCubeEvent += OnLostCube; CubeSet.NeighborAddEvent += OnNeighborAdd; CubeSet.NeighborRemoveEvent += OnNeighborRemove; }