Skip to content

Instantly share code, notes, and snippets.

@lucas-jones
lucas-jones / Spring.ts
Created December 14, 2022 09:08
Spring
import { Vector3 } from "@milk-ecs/core";
import { System } from "typescript";
export type SpringParams = {
posPosCoef: number;
positionVelCoef: number;
velPosCoef: number;
velocityVelCoef: number;
};
[
{
"backcolor": "#b0b0b0",
"name": "M65 SA/DSA Template"
},
[
{
"c": "#ff6b6b",
"t": "464646",
"p": "SA",
open /Applications/Google\ Chrome.app --args --disable-3d-apis
enum Opcodes {
NAME_CHANGE = "nameChange",
POSITION = "position"
}
type NameChangePacket = {
opcode: Opcodes.NAME_CHANGE,
name: string
};
abstract class System<T extends { [index:string]:Component[] }> {
query: { [P in keyof T]?: QueryCollection<T[P][]> }
}
class QueryCollection<T> {
components:T;
listen?: {
added?: (value:T) => void;
removed?: (value:T) => void;
}
interface Config {
boxColor: number,
backgroundColor: number,
modelUrl: string,
}
class Game {
options: Config;
constructor(options: Config) {
/* ============================================================
* jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/
*
* Open source under the BSD License.
*
* Copyright © 2008 George McGinley Smith
* All rights reserved.
* https://raw.github.com/danro/jquery-easing/master/LICENSE
* ======================================================== */
function createGameObject<T>(string id, object data, string ?parentId)
{
var parent = (parentId == null) ? stage : networkObject.get(parentId);
var gameObject = new T(id, data);
networkObjects.set(id, gameObject);
package ;
import events.BaseEventHandler;
import events.EventHandler;
import externs.math.Matrix;
import externs.Player;
import luaxe.lib.LuaTable;
@:native("_G") @dotpath
extern class Globals
@lucas-jones
lucas-jones / gist:e21df1c8eb4dcc6d5bc4
Created January 5, 2015 16:04
Haxe JSChannel Macro Idea
package ;
import haxe.macro.Context;
import haxe.macro.Expr.Field;
import haxe.macro.Printer;
import haxe.macro.*;
import haxe.macro.Expr;
using Lambda;
using haxe.macro.Tools;