Skip to content

Instantly share code, notes, and snippets.

View timsgardner's full-sized avatar

Tims Gardner timsgardner

  • Arcadia Technologies
  • Brooklyn, NY
View GitHub Profile
(use 'arcadia.core
'arcadia.linear
'[magic.api :as m])
(defmacro fast-cmpt [obj bndgs & body]
(let [objsym (with-meta (gensym "obj_") {:tag 'UnityEngine.GameObject})
dcls (->> bndgs
(partition 2)
(mapcat (fn [[sym t]]
(let [sym2 (with-meta sym {:tag t})]
@timsgardner
timsgardner / friendship.clj
Last active May 4, 2017 19:26
example use of roles and keyed hooks
(defn move-towards [obj1, obj2, speed]
(with-cmpt obj1 [tr1 Transform]
(with-cmpt obj2 [tr2 Transform]
(m/faster
(let [diff (v3- (.position tr2) (.position tr1))]
(set! (.position tr1)
(v3+ (.position tr1)
(v3* (.normalized diff)
(Mathf/Min speed (.magnitude diff))))))))))
public void RunFunctions ()
{
if (!_fullyInitialized) {
FullInit();
}
var _go = gameObject;
var _fns = fns;
for (int i = 0; i < _fns.Length; i++) {
_fns[i].invoke(_go);
yes this is bugtter after all my little rodent friend; little to do with me
@timsgardner
timsgardner / better_merge.clj
Last active April 15, 2017 18:41
better merge
(require
'[arcadia.internal.benchmarking :as b]
'[magic.faster :as f])
(defn better-merge [m1 m2]
(persistent!
(reduce-kv assoc! (transient {}) m2)))
(let [m {}
m2 (zipmap (range 1e4) (range))]
@timsgardner
timsgardner / blort
Created April 12, 2017 06:22
quort
squ
(do (require '[arcadia.internal.benchmarking :as b])
(use 'arcadia.core))
(def objo (object-named "Main Camera"))
(b/n-timing 1e6
(cmpt objo UnityEngine.Transform))
;; ~ 0.00026
bla
(defn go-to [^UnityEngine.GameObject obj]
(when-let [^UnityEngine.GameObject target (state obj ::target)]
(let [max-accel (float (or (state obj ::max-accel)
(throw
(Exception.
"Expects :car-scene.movement/max-accel key in state"))))]
(with-cmpt target [targ-tr UnityEngine.Transform]
(with-cmpt obj [tr UnityEngine.Transform
rb UnityEngine.Rigidbody]
(let [^UnityEngine.Transform targ-tr (.GetComponent target UnityEngine.Transform)
(clojure.core/load-file "/Users/timothygardner/code/magic_testbed/Assets/car_scene/cars.clj")
clojure.lang.Compiler+CompilerException: System.ArgumentException: Elements of the parameterTypes array cannot be null
Parameter name: parameterTypes
at System.Reflection.Emit.MethodBuilder..ctor (System.Reflection.Emit.TypeBuilder,string,System.Reflection.MethodAttributes,System.Reflection.CallingConventions,System.Type,System.Type[],System.Type[],System.Type[],System.Type[][],System.Type[][]) [0x0007a] in /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection.Emit/MethodBuilder.cs:103
at System.Reflection.Emit.TypeBuilder.DefineMethod (string,System.Reflection.MethodAttributes,System.Reflection.CallingConventions,System.Type,System.Type[],System.Type[],System.Type[],System.Type[][],System.Type[][]) [0x0005f] in /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection.Emit/TypeBuilder.cs:569
at System.Reflection.Emit.TypeBuilder.DefineMethod (string,System.Reflection.MethodAttribu