Skip to content

Instantly share code, notes, and snippets.

LP grofit

  • UK
Block or report user

Report or block grofit

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
grofit / AStarPathCalculator.cs
Last active Aug 29, 2015
An example of why inheritance is a poor substitute for composition
View AStarPathCalculator.cs
This is a Path calculator which uses an A* approach
public class AStarPathCalculator : IPathCalculator
IEnumerable<Vector3> FindPathTo(Vector3 startPosition, Vector3 endPosition)
var path = ABPath.Construct(startPosition, endPosition);
return path.vectorList;
grofit / middleware.js
Created Jan 25, 2015
SocketIO + Passport + Cookie-Sessions
View middleware.js
This is just a hacky approach to get things moving, as passport-socketio library
does not support cookie-sessions.
var Promise = require("bluebird");
var passport = require("passport");
var session = require("cookie-session");
var sessionConfig = {
grofit / create-user-view-model.js
Created Apr 16, 2015
Some MVVM class based approach thing
View create-user-view-model.js
// Imagine this is a starting page where the user creates their account
function CreateUserViewModel()
// could be done via IoC to improve testability and reuseability
var someAjaxService = {}; // Imagine it does something
this.user = new User();
var saveDataToServer = function() {
var data = ko.toJS(this.user);
someAjaxService.Post("/users", data);
grofit / SceneExtensions.cs
Created Oct 1, 2015
uFrame MVVM View Instantiation Helpers
View SceneExtensions.cs
public static class SceneExtensions
public static TView InstantiatePrefabView<TView>(this IScene scene, ViewModel viewModel, string prefabName, string instanceName = null, Transform parent = null)
where TView : ViewBase, new()
var prefab = Resources.Load(prefabName) as GameObject;
if (prefab == null)
{ throw new Exception(string.Format("Cannot locate prefab [{0}]", prefabName)); }
var createViewCommand = new InstantiateViewCommand
grofit / app.html
Created Apr 8, 2016 — forked from jdanyow/app.html
Aurelia Gist
View app.html
grofit / AttackAction.cs
Last active Apr 22, 2016
Example of interacting with uFrame from NodeCanvas
View AttackAction.cs
using System.Collections;
using System.Collections.Generic;
using NodeCanvas;
using NodeCanvas.Variables;
using UnityEngine;
Let us assume you have a uFrame Entity which can attack
and when it does it needs to play an animation in the view layer
and also needs to tell the controller to trigger an attack
grofit / validate-property-attribute.js
Created Aug 4, 2016
CommonJS test for validation group failure
View validate-property-attribute.js
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
exports.ValidateProperty = undefined;
var _dec, _dec2, _class;
var _aureliaFramework = require("aurelia-framework");
grofit / CompositionExample.cs
Created May 31, 2015
An example of inheritance woes
View CompositionExample.cs
/* Ok lets start by expressing the intent for a vehicle to move */
public interface IVehicleMovement
public float Speed {get; set;}
public void Move(Vector2 direction);
/* This will implement the most common form of movement */
public class SimpleWheelMovement : IVehicleMovement
grofit / NotUsingIoC.cs
Last active Nov 21, 2016
What is Inversion of Control
View NotUsingIoC.cs
This is worst case scenario
- You are unable to control the dependency or swap it for another without changing the NotUsingIoC source code.
- You are also going to have difficulties testing this as you cannot easily mock _someDependency.
public class NotUsingIoC
private ISomeDependency _someDependency;
grofit / NoCompositionOrSeparationItem.cs
Last active Nov 21, 2016
Example of view separation with composition
View NoCompositionOrSeparationItem.cs
public class NoCompositionOrSeparationItem
public Sprite ItemImage;
public Vector3 InventoryPosition;
public Image ItemOverlay;
public string Name {get;set;}
public ItemType Type {get;set;}
public int Value {get;set;}
You can’t perform that action at this time.