├── Infrastructure ├── NuGet.exe ├── Clojure.dll ├── Ionic.Zip.dll ├── BencodeNET.dll ├── clojure.core.clj.dll ├── clojure.data.clj.dll ├── clojure.edn.clj.dll ├── clojure.gvec.clj.dll ├── clojure.main.clj.dll ├── clojure.repl.clj.dll ├── clojure.set.clj.dll ├── clojure.test.clj.dll ├── clojure.uuid.clj.dll ├── clojure.walk.clj.dll ├── clojure.zip.clj.dll ├── Microsoft.Dynamic.dll ├── Microsoft.Scripting.dll ├── clojure.clr.io.clj.dll ├── clojure.instant.clj.dll ├── clojure.pprint.clj.dll ├── clojure.reflect.clj.dll ├── clojure.string.clj.dll ├── clojure.test.check.dll ├── clojure.clr.shell.clj.dll ├── clojure.core_clr.clj.dll ├── clojure.genclass.clj.dll ├── clojure.template.clj.dll ├── clojure.test.tap.clj.dll ├── clojure.core.server.clj.dll ├── clojure.core_deftype.clj.dll ├── clojure.core_print.clj.dll ├── clojure.core_proxy.clj.dll ├── clojure.data.generators.dll ├── clojure.reflect.clr.clj.dll ├── clojure.spec.alpha.clj.dll ├── clojure.stacktrace.clj.dll ├── clojure.test.generative.dll ├── clojure.test.junit.clj.dll ├── clojure.tools.namespace.dll ├── Microsoft.Scripting.AspNet.dll ├── clojure.core.protocols.clj.dll ├── clojure.core.reducers.clj.dll ├── clojure.spec.gen.alpha.clj.dll ├── Microsoft.Scripting.Metadata.dll ├── clojure.core.specs.alpha.clj.dll ├── clojure.pprint.cl_format.clj.dll ├── clojure.pprint.dispatch.clj.dll ├── clojure.pprint.utilities.clj.dll ├── clojure.spec.test.alpha.clj.dll ├── clojure.pprint.pprint_base.clj.dll ├── clojure.pprint.print_table.clj.dll ├── clojure.pprint.column_writer.clj.dll ├── clojure.pprint.pretty_writer.clj.dll ├── NuGet.exe.meta ├── certdata.txt.meta ├── Ionic.Zip.dll.meta ├── BencodeNET.dll.meta ├── Microsoft.Dynamic.dll.meta ├── Microsoft.Scripting.dll.meta ├── clojure.test.check.dll.meta ├── clojure.data.generators.dll.meta ├── clojure.spec.alpha.clj.dll.meta ├── clojure.test.generative.dll.meta ├── clojure.tools.namespace.dll.meta ├── Microsoft.Scripting.AspNet.dll.meta ├── Microsoft.Scripting.Metadata.dll.meta ├── clojure.core.specs.alpha.clj.dll.meta ├── clojure.spec.gen.alpha.clj.dll.meta ├── clojure.spec.test.alpha.clj.dll.meta └── Clojure.dll.meta ├── Editor ├── Menu.cs.meta ├── NRepl.cs.meta ├── Shell.cs.meta ├── Packages.cs.meta ├── ProgressBar.cs.meta ├── repl-client.rb.meta ├── Initialization.cs.meta ├── repl-client.javascript.meta ├── Repl.cs.meta ├── BuildPipeline.cs.meta ├── AssetPostprocessor.cs.meta ├── EditorCallbacks.cs.meta ├── CustomEditorInspectors.cs.meta ├── ArcadiaProjectInitialization.cs.meta ├── EditorCallbacks.cs ├── Menu.cs ├── Packages.cs ├── repl-client.rb ├── ArcadiaProjectInitialization.cs ├── ProgressBar.cs ├── AssetPostprocessor.cs ├── Repl.cs └── repl-client.javascript ├── USAGE.md ├── Source ├── clojure │ ├── samples │ │ ├── deftype │ │ │ ├── testprotocol.clj │ │ │ └── testdeftype.clj │ │ ├── await-test.clj │ │ ├── counter.clj │ │ ├── proxy │ │ │ └── testproxy.clj │ │ ├── genclass │ │ │ ├── testgenclass2.clj │ │ │ ├── testmvc.clj │ │ │ ├── testgenclass3.clj │ │ │ └── testgenclass.clj │ │ ├── attributes │ │ │ └── testattribute.clj │ │ ├── celsius.clj │ │ └── stm │ │ │ └── teststm.clj │ ├── test_clojure │ │ ├── repl │ │ │ └── example.clj │ │ ├── compilation │ │ │ ├── load_ns.clj │ │ │ └── examples.clj │ │ ├── protocols │ │ │ ├── more_examples.clj │ │ │ └── examples.clj │ │ ├── clojure_xml.clj │ │ ├── refs.clj │ │ ├── clr │ │ │ └── added.clj │ │ ├── pprint.clj │ │ ├── clojure_zip.clj │ │ ├── keywords.clj │ │ ├── volatiles.clj │ │ ├── pprint │ │ │ └── test_helper.clj │ │ ├── parallel.clj │ │ ├── server.clj │ │ ├── atoms.clj │ │ ├── edn.clj │ │ ├── data.clj │ │ ├── api.clj │ │ ├── try_catch.clj │ │ ├── main.clj │ │ ├── clojure_walk.clj │ │ ├── fn.clj │ │ └── test_fixtures.clj │ ├── run_test_generative.clj │ ├── run_test_generative_i.clj │ ├── run_test_i.clj │ ├── run_test.clj │ ├── uuid.clj │ ├── dm-test.clj │ ├── pprint │ │ └── print_table.clj │ ├── edn.clj │ ├── template.clj │ └── pprint.clj ├── arcadia │ ├── core.clj.meta │ ├── internal │ │ ├── map_utils.clj.meta │ │ ├── editor_interop.clj.meta │ │ ├── filewatcher_dummy.clj │ │ ├── packages.meta │ │ ├── macro.clj.meta │ │ ├── mozroots.clj.meta │ │ ├── nudge.clj.meta │ │ ├── spec.clj.meta │ │ ├── state.clj.meta │ │ ├── test.clj.meta │ │ ├── thread.clj.meta │ │ ├── tracker.clj.meta │ │ ├── array_utils.clj.meta │ │ ├── asset_watcher.clj.meta │ │ ├── benchmarking.clj.meta │ │ ├── components.clj.meta │ │ ├── file_system.clj.meta │ │ ├── filewatcher.clj.meta │ │ ├── functions.clj.meta │ │ ├── hook_help.clj.meta │ │ ├── leiningen.clj.meta │ │ ├── name_utils.clj.meta │ │ ├── namespace.clj │ │ ├── namespace.clj.meta │ │ ├── state_help.clj.meta │ │ ├── editor_callbacks.clj.meta │ │ ├── filewatcher_dummy.clj.meta │ │ ├── thread.clj │ │ ├── name_utils.clj │ │ ├── benchmarking.clj │ │ ├── nrepl_support.clj │ │ ├── array_utils.clj │ │ ├── mozroots.clj │ │ ├── protocols.clj │ │ ├── packages │ │ │ └── data.clj │ │ ├── state_help.clj │ │ ├── callbacks.clj │ │ ├── nudge.clj │ │ ├── components.clj │ │ └── editor_callbacks.clj │ ├── internal.meta │ ├── linear.clj.meta │ └── introspection.clj.meta ├── arcadia.meta └── clojure.meta ├── Editor.meta ├── Source.meta ├── Infrastructure.meta ├── Components ├── OnGUIHook.cs ├── ResetHook.cs ├── StartHook.cs ├── UpdateHook.cs ├── OnEnableHook.cs ├── LateUpdateHook.cs ├── OnDestroyHook.cs ├── OnDisableHook.cs ├── OnMouseUpHook.cs ├── OnPreCullHook.cs ├── OnValidateHook.cs ├── FixedUpdateHook.cs ├── OnMouseDownHook.cs ├── OnMouseDragHook.cs ├── OnMouseExitHook.cs ├── OnMouseOverHook.cs ├── OnMoveHook.cs ├── OnPreRenderHook.cs ├── OnCancelHook.cs ├── OnDragHook.cs ├── OnDrawGizmosHook.cs ├── OnDropHook.cs ├── OnMouseEnterHook.cs ├── OnPostRenderHook.cs ├── OnSelectHook.cs ├── OnSubmitHook.cs ├── OnAnimatorMoveHook.cs ├── OnBecameVisibleHook.cs ├── OnRenderObjectHook.cs ├── OnScrollHook.cs ├── AwakeHook.cs ├── OnDeselectHook.cs ├── OnEndDragHook.cs ├── OnAnimatorIKHook.cs ├── OnApplicationQuitHook.cs ├── OnBecameInvisibleHook.cs ├── OnBeginDragHook.cs ├── OnJointBreakHook.cs ├── OnMouseUpAsButtonHook.cs ├── OnParticleTriggerHook.cs ├── OnPointerUpHook.cs ├── OnWillRenderObjectHook.cs ├── OnConnectedToServerHook.cs ├── OnDrawGizmosSelectedHook.cs ├── OnPointerDownHook.cs ├── OnPointerExitHook.cs ├── OnServerInitializedHook.cs ├── OnJointBreak2DHook.cs ├── OnLevelWasLoadedHook.cs ├── OnPointerClickHook.cs ├── OnPointerEnterHook.cs ├── OnTriggerEnterHook.cs ├── OnTriggerExitHook.cs ├── OnTriggerStayHook.cs ├── OnUpdateSelectedHook.cs ├── OnCollisionExitHook.cs ├── OnCollisionStayHook.cs ├── OnTriggerExit2DHook.cs ├── OnTriggerStay2DHook.cs ├── OnApplicationFocusHook.cs ├── OnApplicationPauseHook.cs ├── OnCollisionEnterHook.cs ├── OnTransformParentChangedHook.cs ├── OnTriggerEnter2DHook.cs ├── OnCollisionEnter2DHook.cs ├── OnCollisionExit2DHook.cs ├── OnCollisionStay2DHook.cs ├── OnTransformChildrenChangedHook.cs ├── OnParticleCollisionHook.cs ├── OnAudioFilterReadHook.cs ├── OnInitializePotentialDragHook.cs ├── AwakeHook.cs.meta ├── OnDragHook.cs.meta ├── OnDropHook.cs.meta ├── OnGUIHook.cs.meta ├── OnMoveHook.cs.meta ├── OnRenderImageHook.cs ├── ResetHook.cs.meta ├── StartHook.cs.meta ├── UpdateHook.cs.meta ├── FixedUpdateHook.cs.meta ├── LateUpdateHook.cs.meta ├── OnBeginDragHook.cs.meta ├── OnCancelHook.cs.meta ├── OnControllerColliderHitHook.cs ├── OnDeselectHook.cs.meta ├── OnDestroyHook.cs.meta ├── OnDisableHook.cs.meta ├── OnEnableHook.cs.meta ├── OnEndDragHook.cs.meta ├── OnMouseDownHook.cs.meta ├── OnMouseDragHook.cs.meta ├── OnMouseExitHook.cs.meta ├── OnMouseOverHook.cs.meta ├── OnMouseUpHook.cs.meta ├── OnPointerUpHook.cs.meta ├── OnPreCullHook.cs.meta ├── OnPreRenderHook.cs.meta ├── OnScrollHook.cs.meta ├── OnSelectHook.cs.meta ├── OnSubmitHook.cs.meta ├── OnValidateHook.cs.meta ├── OnAnimatorIKHook.cs.meta ├── OnAnimatorMoveHook.cs.meta ├── OnBecameVisibleHook.cs.meta ├── OnCollisionEnterHook.cs.meta ├── OnCollisionExitHook.cs.meta ├── OnCollisionStayHook.cs.meta ├── OnDrawGizmosHook.cs.meta ├── OnJointBreak2DHook.cs.meta ├── OnJointBreakHook.cs.meta ├── OnLevelWasLoadedHook.cs.meta ├── OnMouseEnterHook.cs.meta ├── OnPointerClickHook.cs.meta ├── OnPointerDownHook.cs.meta ├── OnPointerEnterHook.cs.meta ├── OnPointerExitHook.cs.meta ├── OnPostRenderHook.cs.meta ├── OnRenderImageHook.cs.meta ├── OnRenderObjectHook.cs.meta ├── OnTriggerEnter2DHook.cs.meta ├── OnTriggerEnterHook.cs.meta ├── OnTriggerExit2DHook.cs.meta ├── OnTriggerExitHook.cs.meta ├── OnTriggerStay2DHook.cs.meta ├── OnTriggerStayHook.cs.meta ├── OnUpdateSelectedHook.cs.meta ├── OnApplicationFocusHook.cs.meta ├── OnApplicationPauseHook.cs.meta ├── OnApplicationQuitHook.cs.meta ├── OnAudioFilterReadHook.cs.meta ├── OnBecameInvisibleHook.cs.meta ├── OnCollisionEnter2DHook.cs.meta ├── OnCollisionExit2DHook.cs.meta ├── OnCollisionStay2DHook.cs.meta ├── OnConnectedToServerHook.cs.meta ├── OnDrawGizmosSelectedHook.cs.meta ├── OnMouseUpAsButtonHook.cs.meta ├── OnParticleCollisionHook.cs.meta ├── OnParticleTriggerHook.cs.meta ├── OnServerInitializedHook.cs.meta ├── OnWillRenderObjectHook.cs.meta ├── PlayModeInitialization.cs.meta ├── OnControllerColliderHitHook.cs.meta ├── OnInitializePotentialDragHook.cs.meta ├── OnTransformChildrenChangedHook.cs.meta ├── OnTransformParentChangedHook.cs.meta ├── ArcadiaState.cs.meta ├── ArcadiaBehaviour.cs.meta └── PlayModeInitialization.cs ├── Components.meta ├── Helpers.meta ├── Helpers ├── BasicPaths.cs.meta ├── SocketREPLBootstrap.cs.meta ├── JumpMap.cs.meta ├── Util.cs.meta ├── ArrayHelper.cs.meta ├── LinearHelper.cs.meta ├── StringHelper.cs.meta ├── HookStateSystem.cs.meta ├── UnityStatusHelper.cs.meta ├── DefmutableDictionary.cs.meta ├── Callbacks.cs.meta ├── PlayerCallbacks.cs.meta ├── ArrayHelper.cs ├── Callbacks.cs ├── TimeSnap.cs ├── StringHelper.cs └── PlayerCallbacks.cs ├── CONTRIBUTORS.md └── .gitignore /Infrastructure/NuGet.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arcadia-unity/Arcadia/HEAD/Infrastructure/NuGet.exe -------------------------------------------------------------------------------- /Editor/Menu.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3c852ba11a4c4d7086d301e5f7b8e6b6 3 | timeCreated: 1544046420 -------------------------------------------------------------------------------- /Editor/NRepl.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 589f5e4d51d0416cb232a378c998643a 3 | timeCreated: 1542812552 -------------------------------------------------------------------------------- /Editor/Shell.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 523dac789b6149a5a9a50b6c9e7ba2fc 3 | timeCreated: 1539718104 -------------------------------------------------------------------------------- /Infrastructure/Clojure.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arcadia-unity/Arcadia/HEAD/Infrastructure/Clojure.dll -------------------------------------------------------------------------------- /Infrastructure/Ionic.Zip.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arcadia-unity/Arcadia/HEAD/Infrastructure/Ionic.Zip.dll -------------------------------------------------------------------------------- /USAGE.md: -------------------------------------------------------------------------------- 1 | Arcadia's usage is described in [the project wiki](https://github.com/arcadia-unity/Arcadia/wiki). 2 | -------------------------------------------------------------------------------- /Editor/Packages.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 554e83590a9d40fea44d0fe9d70cab5e 3 | timeCreated: 1539806825 -------------------------------------------------------------------------------- /Infrastructure/BencodeNET.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arcadia-unity/Arcadia/HEAD/Infrastructure/BencodeNET.dll -------------------------------------------------------------------------------- /Editor/ProgressBar.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5352ccc4ad6c4fd08e52e5bfddab3437 3 | timeCreated: 1540583070 -------------------------------------------------------------------------------- /Source/clojure/samples/deftype/testprotocol.clj: -------------------------------------------------------------------------------- 1 | (ns clojure.testprotocol) 2 | 3 | (defprotocol P1 (m1 [x])) 4 | 5 | -------------------------------------------------------------------------------- /Infrastructure/clojure.core.clj.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arcadia-unity/Arcadia/HEAD/Infrastructure/clojure.core.clj.dll -------------------------------------------------------------------------------- /Infrastructure/clojure.data.clj.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arcadia-unity/Arcadia/HEAD/Infrastructure/clojure.data.clj.dll -------------------------------------------------------------------------------- /Infrastructure/clojure.edn.clj.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arcadia-unity/Arcadia/HEAD/Infrastructure/clojure.edn.clj.dll -------------------------------------------------------------------------------- /Infrastructure/clojure.gvec.clj.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arcadia-unity/Arcadia/HEAD/Infrastructure/clojure.gvec.clj.dll -------------------------------------------------------------------------------- /Infrastructure/clojure.main.clj.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arcadia-unity/Arcadia/HEAD/Infrastructure/clojure.main.clj.dll -------------------------------------------------------------------------------- /Infrastructure/clojure.repl.clj.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arcadia-unity/Arcadia/HEAD/Infrastructure/clojure.repl.clj.dll -------------------------------------------------------------------------------- /Infrastructure/clojure.set.clj.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arcadia-unity/Arcadia/HEAD/Infrastructure/clojure.set.clj.dll -------------------------------------------------------------------------------- /Infrastructure/clojure.test.clj.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arcadia-unity/Arcadia/HEAD/Infrastructure/clojure.test.clj.dll -------------------------------------------------------------------------------- /Infrastructure/clojure.uuid.clj.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arcadia-unity/Arcadia/HEAD/Infrastructure/clojure.uuid.clj.dll -------------------------------------------------------------------------------- /Infrastructure/clojure.walk.clj.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arcadia-unity/Arcadia/HEAD/Infrastructure/clojure.walk.clj.dll -------------------------------------------------------------------------------- /Infrastructure/clojure.zip.clj.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arcadia-unity/Arcadia/HEAD/Infrastructure/clojure.zip.clj.dll -------------------------------------------------------------------------------- /Editor/repl-client.rb.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 09538a7dd1ca74c079bd7bd91db62de0 3 | DefaultImporter: 4 | userData: 5 | -------------------------------------------------------------------------------- /Infrastructure/Microsoft.Dynamic.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arcadia-unity/Arcadia/HEAD/Infrastructure/Microsoft.Dynamic.dll -------------------------------------------------------------------------------- /Infrastructure/Microsoft.Scripting.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arcadia-unity/Arcadia/HEAD/Infrastructure/Microsoft.Scripting.dll -------------------------------------------------------------------------------- /Infrastructure/clojure.clr.io.clj.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arcadia-unity/Arcadia/HEAD/Infrastructure/clojure.clr.io.clj.dll -------------------------------------------------------------------------------- /Infrastructure/clojure.instant.clj.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arcadia-unity/Arcadia/HEAD/Infrastructure/clojure.instant.clj.dll -------------------------------------------------------------------------------- /Infrastructure/clojure.pprint.clj.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arcadia-unity/Arcadia/HEAD/Infrastructure/clojure.pprint.clj.dll -------------------------------------------------------------------------------- /Infrastructure/clojure.reflect.clj.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arcadia-unity/Arcadia/HEAD/Infrastructure/clojure.reflect.clj.dll -------------------------------------------------------------------------------- /Infrastructure/clojure.string.clj.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arcadia-unity/Arcadia/HEAD/Infrastructure/clojure.string.clj.dll -------------------------------------------------------------------------------- /Infrastructure/clojure.test.check.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arcadia-unity/Arcadia/HEAD/Infrastructure/clojure.test.check.dll -------------------------------------------------------------------------------- /Editor.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: efd556a71242f47bbac4a6e54d1cbf7b 3 | folderAsset: yes 4 | DefaultImporter: 5 | userData: 6 | -------------------------------------------------------------------------------- /Infrastructure/clojure.clr.shell.clj.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arcadia-unity/Arcadia/HEAD/Infrastructure/clojure.clr.shell.clj.dll -------------------------------------------------------------------------------- /Infrastructure/clojure.core_clr.clj.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arcadia-unity/Arcadia/HEAD/Infrastructure/clojure.core_clr.clj.dll -------------------------------------------------------------------------------- /Infrastructure/clojure.genclass.clj.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arcadia-unity/Arcadia/HEAD/Infrastructure/clojure.genclass.clj.dll -------------------------------------------------------------------------------- /Infrastructure/clojure.template.clj.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arcadia-unity/Arcadia/HEAD/Infrastructure/clojure.template.clj.dll -------------------------------------------------------------------------------- /Infrastructure/clojure.test.tap.clj.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arcadia-unity/Arcadia/HEAD/Infrastructure/clojure.test.tap.clj.dll -------------------------------------------------------------------------------- /Source.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1a98cc862e99d423c9a0c32bb6d4227a 3 | folderAsset: yes 4 | DefaultImporter: 5 | userData: 6 | -------------------------------------------------------------------------------- /Source/arcadia/core.clj.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 26808e83cd393426d9caa78d680cbaf2 3 | DefaultImporter: 4 | userData: 5 | -------------------------------------------------------------------------------- /Infrastructure/clojure.core.server.clj.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arcadia-unity/Arcadia/HEAD/Infrastructure/clojure.core.server.clj.dll -------------------------------------------------------------------------------- /Infrastructure/clojure.core_deftype.clj.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arcadia-unity/Arcadia/HEAD/Infrastructure/clojure.core_deftype.clj.dll -------------------------------------------------------------------------------- /Infrastructure/clojure.core_print.clj.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arcadia-unity/Arcadia/HEAD/Infrastructure/clojure.core_print.clj.dll -------------------------------------------------------------------------------- /Infrastructure/clojure.core_proxy.clj.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arcadia-unity/Arcadia/HEAD/Infrastructure/clojure.core_proxy.clj.dll -------------------------------------------------------------------------------- /Infrastructure/clojure.data.generators.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arcadia-unity/Arcadia/HEAD/Infrastructure/clojure.data.generators.dll -------------------------------------------------------------------------------- /Infrastructure/clojure.reflect.clr.clj.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arcadia-unity/Arcadia/HEAD/Infrastructure/clojure.reflect.clr.clj.dll -------------------------------------------------------------------------------- /Infrastructure/clojure.spec.alpha.clj.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arcadia-unity/Arcadia/HEAD/Infrastructure/clojure.spec.alpha.clj.dll -------------------------------------------------------------------------------- /Infrastructure/clojure.stacktrace.clj.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arcadia-unity/Arcadia/HEAD/Infrastructure/clojure.stacktrace.clj.dll -------------------------------------------------------------------------------- /Infrastructure/clojure.test.generative.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arcadia-unity/Arcadia/HEAD/Infrastructure/clojure.test.generative.dll -------------------------------------------------------------------------------- /Infrastructure/clojure.test.junit.clj.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arcadia-unity/Arcadia/HEAD/Infrastructure/clojure.test.junit.clj.dll -------------------------------------------------------------------------------- /Infrastructure/clojure.tools.namespace.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arcadia-unity/Arcadia/HEAD/Infrastructure/clojure.tools.namespace.dll -------------------------------------------------------------------------------- /Infrastructure.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c314706d8cb1b487ba17bfc2d68d9d03 3 | folderAsset: yes 4 | DefaultImporter: 5 | userData: 6 | -------------------------------------------------------------------------------- /Infrastructure/Microsoft.Scripting.AspNet.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arcadia-unity/Arcadia/HEAD/Infrastructure/Microsoft.Scripting.AspNet.dll -------------------------------------------------------------------------------- /Infrastructure/clojure.core.protocols.clj.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arcadia-unity/Arcadia/HEAD/Infrastructure/clojure.core.protocols.clj.dll -------------------------------------------------------------------------------- /Infrastructure/clojure.core.reducers.clj.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arcadia-unity/Arcadia/HEAD/Infrastructure/clojure.core.reducers.clj.dll -------------------------------------------------------------------------------- /Infrastructure/clojure.spec.gen.alpha.clj.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arcadia-unity/Arcadia/HEAD/Infrastructure/clojure.spec.gen.alpha.clj.dll -------------------------------------------------------------------------------- /Source/arcadia.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 87e24b107e56648f7ad4ac275d3526db 3 | folderAsset: yes 4 | DefaultImporter: 5 | userData: 6 | -------------------------------------------------------------------------------- /Source/arcadia/internal/map_utils.clj.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e5a2bd796c3904a18b40e189a823e154 3 | DefaultImporter: 4 | userData: 5 | -------------------------------------------------------------------------------- /Infrastructure/Microsoft.Scripting.Metadata.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arcadia-unity/Arcadia/HEAD/Infrastructure/Microsoft.Scripting.Metadata.dll -------------------------------------------------------------------------------- /Infrastructure/clojure.core.specs.alpha.clj.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arcadia-unity/Arcadia/HEAD/Infrastructure/clojure.core.specs.alpha.clj.dll -------------------------------------------------------------------------------- /Infrastructure/clojure.pprint.cl_format.clj.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arcadia-unity/Arcadia/HEAD/Infrastructure/clojure.pprint.cl_format.clj.dll -------------------------------------------------------------------------------- /Infrastructure/clojure.pprint.dispatch.clj.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arcadia-unity/Arcadia/HEAD/Infrastructure/clojure.pprint.dispatch.clj.dll -------------------------------------------------------------------------------- /Infrastructure/clojure.pprint.utilities.clj.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arcadia-unity/Arcadia/HEAD/Infrastructure/clojure.pprint.utilities.clj.dll -------------------------------------------------------------------------------- /Infrastructure/clojure.spec.test.alpha.clj.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arcadia-unity/Arcadia/HEAD/Infrastructure/clojure.spec.test.alpha.clj.dll -------------------------------------------------------------------------------- /Source/arcadia/internal/editor_interop.clj.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6b1e2be1be4f247aa91e3df736099768 3 | DefaultImporter: 4 | userData: 5 | -------------------------------------------------------------------------------- /Infrastructure/clojure.pprint.pprint_base.clj.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arcadia-unity/Arcadia/HEAD/Infrastructure/clojure.pprint.pprint_base.clj.dll -------------------------------------------------------------------------------- /Infrastructure/clojure.pprint.print_table.clj.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arcadia-unity/Arcadia/HEAD/Infrastructure/clojure.pprint.print_table.clj.dll -------------------------------------------------------------------------------- /Source/arcadia/internal.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a668d20fd2bae4e0d80abd0374f143b6 3 | folderAsset: yes 4 | DefaultImporter: 5 | userData: 6 | -------------------------------------------------------------------------------- /Infrastructure/clojure.pprint.column_writer.clj.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arcadia-unity/Arcadia/HEAD/Infrastructure/clojure.pprint.column_writer.clj.dll -------------------------------------------------------------------------------- /Infrastructure/clojure.pprint.pretty_writer.clj.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arcadia-unity/Arcadia/HEAD/Infrastructure/clojure.pprint.pretty_writer.clj.dll -------------------------------------------------------------------------------- /Source/arcadia/internal/filewatcher_dummy.clj: -------------------------------------------------------------------------------- 1 | (ns arcadia.internal.filewatcher-dummy) 2 | 3 | (println "loading filewatcher-dummy; probably shouldn't be") 4 | -------------------------------------------------------------------------------- /Source/clojure/test_clojure/repl/example.clj: -------------------------------------------------------------------------------- 1 | (ns clojure.test-clojure.repl.example) 2 | 3 | ;; sample namespace for repl tests, don't add anything here 4 | (defn foo []) 5 | (defn bar []) 6 | -------------------------------------------------------------------------------- /Source/clojure/test_clojure/compilation/load_ns.clj: -------------------------------------------------------------------------------- 1 | (ns clojure.test-clojure.compilation.load-ns) 2 | 3 | (defn a [] 1) 4 | (defprotocol p (f [_])) 5 | (deftype x [] 6 | :load-ns true 7 | p (f [_] (a))) -------------------------------------------------------------------------------- /Infrastructure/NuGet.exe.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f0fc6f8fd92d5489fb6f15733ed70ecd 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Source/arcadia/linear.clj.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4611b7900281845b98d34e4637cdfd0f 3 | timeCreated: 1428968039 4 | licenseType: Free 5 | DefaultImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Components/OnGUIHook.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.EventSystems; 3 | using clojure.lang; 4 | 5 | public class OnGUIHook : ArcadiaBehaviour 6 | { 7 | public void OnGUI() 8 | { 9 | RunFunctions(); 10 | } 11 | } -------------------------------------------------------------------------------- /Components/ResetHook.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.EventSystems; 3 | using clojure.lang; 4 | 5 | public class ResetHook : ArcadiaBehaviour 6 | { 7 | public void Reset() 8 | { 9 | RunFunctions(); 10 | } 11 | } -------------------------------------------------------------------------------- /Components/StartHook.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.EventSystems; 3 | using clojure.lang; 4 | 5 | public class StartHook : ArcadiaBehaviour 6 | { 7 | public void Start() 8 | { 9 | RunFunctions(); 10 | } 11 | } -------------------------------------------------------------------------------- /Editor/Initialization.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 04e927c283aaa42ecb94dcc4e580a0c0 3 | MonoImporter: 4 | serializedVersion: 2 5 | defaultReferences: [] 6 | executionOrder: 0 7 | icon: {instanceID: 0} 8 | userData: 9 | -------------------------------------------------------------------------------- /Editor/repl-client.javascript.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ee3d4b1632b0c4c11b72347200bc4814 3 | timeCreated: 1466280767 4 | licenseType: Free 5 | DefaultImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Infrastructure/certdata.txt.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3b1c73b1a0a454dbc8d175f7b504d0c1 3 | timeCreated: 1521573993 4 | licenseType: Free 5 | TextScriptImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Source/arcadia/internal/packages.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 969a5d938304edd49a063f25e0ee4d21 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Components/UpdateHook.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.EventSystems; 3 | using clojure.lang; 4 | 5 | public class UpdateHook : ArcadiaBehaviour 6 | { 7 | public void Update() 8 | { 9 | RunFunctions(); 10 | } 11 | } -------------------------------------------------------------------------------- /Source/arcadia/internal/macro.clj.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bc4e088b2b06347ec9855e26d8a0b219 3 | timeCreated: 1429510514 4 | licenseType: Free 5 | DefaultImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Source/arcadia/internal/mozroots.clj.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5965e715476e647b991caf0c0acd46a7 3 | timeCreated: 1503587702 4 | licenseType: Free 5 | DefaultImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Source/arcadia/internal/nudge.clj.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 56ba4ae03dc4640b4876b698f00df66e 3 | timeCreated: 1497573187 4 | licenseType: Free 5 | DefaultImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Source/arcadia/internal/spec.clj.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b7c40a9baaf6949b6b16f9ebcb974585 3 | timeCreated: 1466952443 4 | licenseType: Free 5 | DefaultImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Source/arcadia/internal/state.clj.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f82ef3ba059a54228bc657459ee13070 3 | timeCreated: 1466722675 4 | licenseType: Free 5 | DefaultImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Source/arcadia/internal/test.clj.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ff79a973be506433fb14d29e97af049d 3 | timeCreated: 1469156438 4 | licenseType: Free 5 | DefaultImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Source/arcadia/internal/thread.clj.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c2b53ccf95ed943e488bbe0e5021e895 3 | timeCreated: 1471321477 4 | licenseType: Free 5 | DefaultImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Source/arcadia/internal/tracker.clj.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d7428a8cc169642c1ac49aee346469b4 3 | timeCreated: 1470284489 4 | licenseType: Free 5 | DefaultImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Source/arcadia/introspection.clj.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 88e5cb6272ced4808bbc78ed0b1a1342 3 | timeCreated: 1429597557 4 | licenseType: Free 5 | DefaultImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Components.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8a15a9c228aa744b78fb4fcbe5a64dcb 3 | folderAsset: yes 4 | timeCreated: 1447646691 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Components/OnEnableHook.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.EventSystems; 3 | using clojure.lang; 4 | 5 | public class OnEnableHook : ArcadiaBehaviour 6 | { 7 | public void OnEnable() 8 | { 9 | RunFunctions(); 10 | } 11 | } -------------------------------------------------------------------------------- /Helpers.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3b7d0a19f510949c1b44676a06bd7ea9 3 | folderAsset: yes 4 | timeCreated: 1466363861 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Source/arcadia/internal/array_utils.clj.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: aa4125e588f9b4458aef58cce482ea69 3 | timeCreated: 1469229219 4 | licenseType: Free 5 | DefaultImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Source/arcadia/internal/asset_watcher.clj.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4412df9e26d00436da9fcaf4f212b584 3 | timeCreated: 1470096171 4 | licenseType: Free 5 | DefaultImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Source/arcadia/internal/benchmarking.clj.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c5b2c31c2362145cfbeaa2a31751e63f 3 | timeCreated: 1466363861 4 | licenseType: Free 5 | DefaultImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Source/arcadia/internal/components.clj.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2d5a826aa67ec4293baeddaa617743d8 3 | timeCreated: 1447650138 4 | licenseType: Free 5 | DefaultImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Source/arcadia/internal/file_system.clj.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1a859d5ceb8b2471695d0d8bf07412a6 3 | timeCreated: 1470096171 4 | licenseType: Free 5 | DefaultImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Source/arcadia/internal/filewatcher.clj.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0ce83f8ab7734431da068ac08a1d08f1 3 | timeCreated: 1467051756 4 | licenseType: Free 5 | DefaultImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Source/arcadia/internal/functions.clj.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f09cae37f77554a359924b32fd12b301 3 | timeCreated: 1470258296 4 | licenseType: Free 5 | DefaultImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Source/arcadia/internal/hook_help.clj.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8b490620522b8494283c488c0502cabc 3 | timeCreated: 1491856289 4 | licenseType: Free 5 | DefaultImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Source/arcadia/internal/leiningen.clj.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 94f28b43295544742a2bd788605594cf 3 | timeCreated: 1466722675 4 | licenseType: Free 5 | DefaultImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Source/arcadia/internal/name_utils.clj.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: dfac9da8988244871855a9c1cb94b97f 3 | timeCreated: 1466966359 4 | licenseType: Free 5 | DefaultImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Source/arcadia/internal/namespace.clj: -------------------------------------------------------------------------------- 1 | (ns arcadia.internal.namespace) 2 | 3 | (defn quickquire 4 | "Bit like require, but fails with fewer allocations" 5 | [ns-sym] 6 | (when-not (contains? (loaded-libs) ns-sym) 7 | (require ns-sym))) 8 | -------------------------------------------------------------------------------- /Source/arcadia/internal/namespace.clj.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8604ffad39a214dc982325f085f3df58 3 | timeCreated: 1499394150 4 | licenseType: Free 5 | DefaultImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Source/arcadia/internal/state_help.clj.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c50a8ee60c1b14b0c99b9fe9d47045aa 3 | timeCreated: 1492043373 4 | licenseType: Free 5 | DefaultImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Components/LateUpdateHook.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.EventSystems; 3 | using clojure.lang; 4 | 5 | public class LateUpdateHook : ArcadiaBehaviour 6 | { 7 | public void LateUpdate() 8 | { 9 | RunFunctions(); 10 | } 11 | } -------------------------------------------------------------------------------- /Components/OnDestroyHook.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.EventSystems; 3 | using clojure.lang; 4 | 5 | public class OnDestroyHook : ArcadiaBehaviour 6 | { 7 | public void OnDestroy() 8 | { 9 | RunFunctions(); 10 | } 11 | } -------------------------------------------------------------------------------- /Components/OnDisableHook.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.EventSystems; 3 | using clojure.lang; 4 | 5 | public class OnDisableHook : ArcadiaBehaviour 6 | { 7 | public void OnDisable() 8 | { 9 | RunFunctions(); 10 | } 11 | } -------------------------------------------------------------------------------- /Components/OnMouseUpHook.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.EventSystems; 3 | using clojure.lang; 4 | 5 | public class OnMouseUpHook : ArcadiaBehaviour 6 | { 7 | public void OnMouseUp() 8 | { 9 | RunFunctions(); 10 | } 11 | } -------------------------------------------------------------------------------- /Components/OnPreCullHook.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.EventSystems; 3 | using clojure.lang; 4 | 5 | public class OnPreCullHook : ArcadiaBehaviour 6 | { 7 | public void OnPreCull() 8 | { 9 | RunFunctions(); 10 | } 11 | } -------------------------------------------------------------------------------- /Components/OnValidateHook.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.EventSystems; 3 | using clojure.lang; 4 | 5 | public class OnValidateHook : ArcadiaBehaviour 6 | { 7 | public void OnValidate() 8 | { 9 | RunFunctions(); 10 | } 11 | } -------------------------------------------------------------------------------- /Source/arcadia/internal/editor_callbacks.clj.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2163d12e3bf4ea844b010d0d530d1202 3 | timeCreated: 1490369974 4 | licenseType: Free 5 | DefaultImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Source/arcadia/internal/filewatcher_dummy.clj.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e9ecc9678dcd9429c8158a09d03ec050 3 | timeCreated: 1466722675 4 | licenseType: Free 5 | DefaultImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Source/clojure.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e92d8dc7ed3fa4735a12a063c87118ca 3 | folderAsset: yes 4 | timeCreated: 1522875988 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Components/FixedUpdateHook.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.EventSystems; 3 | using clojure.lang; 4 | 5 | public class FixedUpdateHook : ArcadiaBehaviour 6 | { 7 | public void FixedUpdate() 8 | { 9 | RunFunctions(); 10 | } 11 | } -------------------------------------------------------------------------------- /Components/OnMouseDownHook.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.EventSystems; 3 | using clojure.lang; 4 | 5 | public class OnMouseDownHook : ArcadiaBehaviour 6 | { 7 | public void OnMouseDown() 8 | { 9 | RunFunctions(); 10 | } 11 | } -------------------------------------------------------------------------------- /Components/OnMouseDragHook.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.EventSystems; 3 | using clojure.lang; 4 | 5 | public class OnMouseDragHook : ArcadiaBehaviour 6 | { 7 | public void OnMouseDrag() 8 | { 9 | RunFunctions(); 10 | } 11 | } -------------------------------------------------------------------------------- /Components/OnMouseExitHook.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.EventSystems; 3 | using clojure.lang; 4 | 5 | public class OnMouseExitHook : ArcadiaBehaviour 6 | { 7 | public void OnMouseExit() 8 | { 9 | RunFunctions(); 10 | } 11 | } -------------------------------------------------------------------------------- /Components/OnMouseOverHook.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.EventSystems; 3 | using clojure.lang; 4 | 5 | public class OnMouseOverHook : ArcadiaBehaviour 6 | { 7 | public void OnMouseOver() 8 | { 9 | RunFunctions(); 10 | } 11 | } -------------------------------------------------------------------------------- /Components/OnMoveHook.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.EventSystems; 3 | using clojure.lang; 4 | 5 | public class OnMoveHook : ArcadiaBehaviour 6 | { 7 | public void OnMove(AxisEventData a) 8 | { 9 | RunFunctions(a); 10 | } 11 | } -------------------------------------------------------------------------------- /Components/OnPreRenderHook.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.EventSystems; 3 | using clojure.lang; 4 | 5 | public class OnPreRenderHook : ArcadiaBehaviour 6 | { 7 | public void OnPreRender() 8 | { 9 | RunFunctions(); 10 | } 11 | } -------------------------------------------------------------------------------- /Components/OnCancelHook.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.EventSystems; 3 | using clojure.lang; 4 | 5 | public class OnCancelHook : ArcadiaBehaviour 6 | { 7 | public void OnCancel(BaseEventData a) 8 | { 9 | RunFunctions(a); 10 | } 11 | } -------------------------------------------------------------------------------- /Components/OnDragHook.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.EventSystems; 3 | using clojure.lang; 4 | 5 | public class OnDragHook : ArcadiaBehaviour 6 | { 7 | public void OnDrag(PointerEventData a) 8 | { 9 | RunFunctions(a); 10 | } 11 | } -------------------------------------------------------------------------------- /Components/OnDrawGizmosHook.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.EventSystems; 3 | using clojure.lang; 4 | 5 | public class OnDrawGizmosHook : ArcadiaBehaviour 6 | { 7 | public void OnDrawGizmos() 8 | { 9 | RunFunctions(); 10 | } 11 | } -------------------------------------------------------------------------------- /Components/OnDropHook.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.EventSystems; 3 | using clojure.lang; 4 | 5 | public class OnDropHook : ArcadiaBehaviour 6 | { 7 | public void OnDrop(PointerEventData a) 8 | { 9 | RunFunctions(a); 10 | } 11 | } -------------------------------------------------------------------------------- /Components/OnMouseEnterHook.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.EventSystems; 3 | using clojure.lang; 4 | 5 | public class OnMouseEnterHook : ArcadiaBehaviour 6 | { 7 | public void OnMouseEnter() 8 | { 9 | RunFunctions(); 10 | } 11 | } -------------------------------------------------------------------------------- /Components/OnPostRenderHook.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.EventSystems; 3 | using clojure.lang; 4 | 5 | public class OnPostRenderHook : ArcadiaBehaviour 6 | { 7 | public void OnPostRender() 8 | { 9 | RunFunctions(); 10 | } 11 | } -------------------------------------------------------------------------------- /Components/OnSelectHook.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.EventSystems; 3 | using clojure.lang; 4 | 5 | public class OnSelectHook : ArcadiaBehaviour 6 | { 7 | public void OnSelect(BaseEventData a) 8 | { 9 | RunFunctions(a); 10 | } 11 | } -------------------------------------------------------------------------------- /Components/OnSubmitHook.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.EventSystems; 3 | using clojure.lang; 4 | 5 | public class OnSubmitHook : ArcadiaBehaviour 6 | { 7 | public void OnSubmit(BaseEventData a) 8 | { 9 | RunFunctions(a); 10 | } 11 | } -------------------------------------------------------------------------------- /Components/OnAnimatorMoveHook.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.EventSystems; 3 | using clojure.lang; 4 | 5 | public class OnAnimatorMoveHook : ArcadiaBehaviour 6 | { 7 | public void OnAnimatorMove() 8 | { 9 | RunFunctions(); 10 | } 11 | } -------------------------------------------------------------------------------- /Components/OnBecameVisibleHook.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.EventSystems; 3 | using clojure.lang; 4 | 5 | public class OnBecameVisibleHook : ArcadiaBehaviour 6 | { 7 | public void OnBecameVisible() 8 | { 9 | RunFunctions(); 10 | } 11 | } -------------------------------------------------------------------------------- /Components/OnRenderObjectHook.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.EventSystems; 3 | using clojure.lang; 4 | 5 | public class OnRenderObjectHook : ArcadiaBehaviour 6 | { 7 | public void OnRenderObject() 8 | { 9 | RunFunctions(); 10 | } 11 | } -------------------------------------------------------------------------------- /Components/OnScrollHook.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.EventSystems; 3 | using clojure.lang; 4 | 5 | public class OnScrollHook : ArcadiaBehaviour 6 | { 7 | public void OnScroll(PointerEventData a) 8 | { 9 | RunFunctions(a); 10 | } 11 | } -------------------------------------------------------------------------------- /Components/AwakeHook.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.EventSystems; 3 | using clojure.lang; 4 | 5 | public class AwakeHook : ArcadiaBehaviour 6 | { 7 | public override void Awake() 8 | { 9 | base.Awake(); 10 | RunFunctions(); 11 | } 12 | } -------------------------------------------------------------------------------- /Components/OnDeselectHook.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.EventSystems; 3 | using clojure.lang; 4 | 5 | public class OnDeselectHook : ArcadiaBehaviour 6 | { 7 | public void OnDeselect(BaseEventData a) 8 | { 9 | RunFunctions(a); 10 | } 11 | } -------------------------------------------------------------------------------- /Components/OnEndDragHook.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.EventSystems; 3 | using clojure.lang; 4 | 5 | public class OnEndDragHook : ArcadiaBehaviour 6 | { 7 | public void OnEndDrag(PointerEventData a) 8 | { 9 | RunFunctions(a); 10 | } 11 | } -------------------------------------------------------------------------------- /Components/OnAnimatorIKHook.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.EventSystems; 3 | using clojure.lang; 4 | 5 | public class OnAnimatorIKHook : ArcadiaBehaviour 6 | { 7 | public void OnAnimatorIK(System.Int32 a) 8 | { 9 | RunFunctions(a); 10 | } 11 | } -------------------------------------------------------------------------------- /Components/OnApplicationQuitHook.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.EventSystems; 3 | using clojure.lang; 4 | 5 | public class OnApplicationQuitHook : ArcadiaBehaviour 6 | { 7 | public void OnApplicationQuit() 8 | { 9 | RunFunctions(); 10 | } 11 | } -------------------------------------------------------------------------------- /Components/OnBecameInvisibleHook.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.EventSystems; 3 | using clojure.lang; 4 | 5 | public class OnBecameInvisibleHook : ArcadiaBehaviour 6 | { 7 | public void OnBecameInvisible() 8 | { 9 | RunFunctions(); 10 | } 11 | } -------------------------------------------------------------------------------- /Components/OnBeginDragHook.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.EventSystems; 3 | using clojure.lang; 4 | 5 | public class OnBeginDragHook : ArcadiaBehaviour 6 | { 7 | public void OnBeginDrag(PointerEventData a) 8 | { 9 | RunFunctions(a); 10 | } 11 | } -------------------------------------------------------------------------------- /Components/OnJointBreakHook.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.EventSystems; 3 | using clojure.lang; 4 | 5 | public class OnJointBreakHook : ArcadiaBehaviour 6 | { 7 | public void OnJointBreak(System.Single a) 8 | { 9 | RunFunctions(a); 10 | } 11 | } -------------------------------------------------------------------------------- /Components/OnMouseUpAsButtonHook.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.EventSystems; 3 | using clojure.lang; 4 | 5 | public class OnMouseUpAsButtonHook : ArcadiaBehaviour 6 | { 7 | public void OnMouseUpAsButton() 8 | { 9 | RunFunctions(); 10 | } 11 | } -------------------------------------------------------------------------------- /Components/OnParticleTriggerHook.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.EventSystems; 3 | using clojure.lang; 4 | 5 | public class OnParticleTriggerHook : ArcadiaBehaviour 6 | { 7 | public void OnParticleTrigger() 8 | { 9 | RunFunctions(); 10 | } 11 | } -------------------------------------------------------------------------------- /Components/OnPointerUpHook.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.EventSystems; 3 | using clojure.lang; 4 | 5 | public class OnPointerUpHook : ArcadiaBehaviour 6 | { 7 | public void OnPointerUp(PointerEventData a) 8 | { 9 | RunFunctions(a); 10 | } 11 | } -------------------------------------------------------------------------------- /Components/OnWillRenderObjectHook.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.EventSystems; 3 | using clojure.lang; 4 | 5 | public class OnWillRenderObjectHook : ArcadiaBehaviour 6 | { 7 | public void OnWillRenderObject() 8 | { 9 | RunFunctions(); 10 | } 11 | } -------------------------------------------------------------------------------- /Source/clojure/test_clojure/protocols/more_examples.clj: -------------------------------------------------------------------------------- 1 | (ns clojure.test-clojure.protocols.more-examples) 2 | 3 | (defprotocol SimpleProtocol 4 | "example protocol used by clojure tests. Note that 5 | foo collides with examples/ExampleProtocol." 6 | 7 | (foo [a] "")) 8 | -------------------------------------------------------------------------------- /Components/OnConnectedToServerHook.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.EventSystems; 3 | using clojure.lang; 4 | 5 | public class OnConnectedToServerHook : ArcadiaBehaviour 6 | { 7 | public void OnConnectedToServer() 8 | { 9 | RunFunctions(); 10 | } 11 | } -------------------------------------------------------------------------------- /Components/OnDrawGizmosSelectedHook.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.EventSystems; 3 | using clojure.lang; 4 | 5 | public class OnDrawGizmosSelectedHook : ArcadiaBehaviour 6 | { 7 | public void OnDrawGizmosSelected() 8 | { 9 | RunFunctions(); 10 | } 11 | } -------------------------------------------------------------------------------- /Components/OnPointerDownHook.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.EventSystems; 3 | using clojure.lang; 4 | 5 | public class OnPointerDownHook : ArcadiaBehaviour 6 | { 7 | public void OnPointerDown(PointerEventData a) 8 | { 9 | RunFunctions(a); 10 | } 11 | } -------------------------------------------------------------------------------- /Components/OnPointerExitHook.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.EventSystems; 3 | using clojure.lang; 4 | 5 | public class OnPointerExitHook : ArcadiaBehaviour 6 | { 7 | public void OnPointerExit(PointerEventData a) 8 | { 9 | RunFunctions(a); 10 | } 11 | } -------------------------------------------------------------------------------- /Components/OnServerInitializedHook.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.EventSystems; 3 | using clojure.lang; 4 | 5 | public class OnServerInitializedHook : ArcadiaBehaviour 6 | { 7 | public void OnServerInitialized() 8 | { 9 | RunFunctions(); 10 | } 11 | } -------------------------------------------------------------------------------- /Source/arcadia/internal/thread.clj: -------------------------------------------------------------------------------- 1 | (ns arcadia.internal.thread 2 | (:import [System.Threading Thread ThreadStart])) 3 | 4 | (defn start-thread [f] 5 | (let [t (Thread. 6 | (gen-delegate ThreadStart [] 7 | (f)))] 8 | (.Start t) 9 | t)) 10 | -------------------------------------------------------------------------------- /Components/OnJointBreak2DHook.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.EventSystems; 3 | using clojure.lang; 4 | 5 | public class OnJointBreak2DHook : ArcadiaBehaviour 6 | { 7 | public void OnJointBreak2D(UnityEngine.Joint2D a) 8 | { 9 | RunFunctions(a); 10 | } 11 | } -------------------------------------------------------------------------------- /Components/OnLevelWasLoadedHook.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.EventSystems; 3 | using clojure.lang; 4 | 5 | public class OnLevelWasLoadedHook : ArcadiaBehaviour 6 | { 7 | public void OnLevelWasLoaded(System.Int32 a) 8 | { 9 | RunFunctions(a); 10 | } 11 | } -------------------------------------------------------------------------------- /Components/OnPointerClickHook.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.EventSystems; 3 | using clojure.lang; 4 | 5 | public class OnPointerClickHook : ArcadiaBehaviour 6 | { 7 | public void OnPointerClick(PointerEventData a) 8 | { 9 | RunFunctions(a); 10 | } 11 | } -------------------------------------------------------------------------------- /Components/OnPointerEnterHook.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.EventSystems; 3 | using clojure.lang; 4 | 5 | public class OnPointerEnterHook : ArcadiaBehaviour 6 | { 7 | public void OnPointerEnter(PointerEventData a) 8 | { 9 | RunFunctions(a); 10 | } 11 | } -------------------------------------------------------------------------------- /Components/OnTriggerEnterHook.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.EventSystems; 3 | using clojure.lang; 4 | 5 | public class OnTriggerEnterHook : ArcadiaBehaviour 6 | { 7 | public void OnTriggerEnter(UnityEngine.Collider a) 8 | { 9 | RunFunctions(a); 10 | } 11 | } -------------------------------------------------------------------------------- /Components/OnTriggerExitHook.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.EventSystems; 3 | using clojure.lang; 4 | 5 | public class OnTriggerExitHook : ArcadiaBehaviour 6 | { 7 | public void OnTriggerExit(UnityEngine.Collider a) 8 | { 9 | RunFunctions(a); 10 | } 11 | } -------------------------------------------------------------------------------- /Components/OnTriggerStayHook.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.EventSystems; 3 | using clojure.lang; 4 | 5 | public class OnTriggerStayHook : ArcadiaBehaviour 6 | { 7 | public void OnTriggerStay(UnityEngine.Collider a) 8 | { 9 | RunFunctions(a); 10 | } 11 | } -------------------------------------------------------------------------------- /Components/OnUpdateSelectedHook.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.EventSystems; 3 | using clojure.lang; 4 | 5 | public class OnUpdateSelectedHook : ArcadiaBehaviour 6 | { 7 | public void OnUpdateSelected(BaseEventData a) 8 | { 9 | RunFunctions(a); 10 | } 11 | } -------------------------------------------------------------------------------- /Components/OnCollisionExitHook.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.EventSystems; 3 | using clojure.lang; 4 | 5 | public class OnCollisionExitHook : ArcadiaBehaviour 6 | { 7 | public void OnCollisionExit(UnityEngine.Collision a) 8 | { 9 | RunFunctions(a); 10 | } 11 | } -------------------------------------------------------------------------------- /Components/OnCollisionStayHook.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.EventSystems; 3 | using clojure.lang; 4 | 5 | public class OnCollisionStayHook : ArcadiaBehaviour 6 | { 7 | public void OnCollisionStay(UnityEngine.Collision a) 8 | { 9 | RunFunctions(a); 10 | } 11 | } -------------------------------------------------------------------------------- /Components/OnTriggerExit2DHook.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.EventSystems; 3 | using clojure.lang; 4 | 5 | public class OnTriggerExit2DHook : ArcadiaBehaviour 6 | { 7 | public void OnTriggerExit2D(UnityEngine.Collider2D a) 8 | { 9 | RunFunctions(a); 10 | } 11 | } -------------------------------------------------------------------------------- /Components/OnTriggerStay2DHook.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.EventSystems; 3 | using clojure.lang; 4 | 5 | public class OnTriggerStay2DHook : ArcadiaBehaviour 6 | { 7 | public void OnTriggerStay2D(UnityEngine.Collider2D a) 8 | { 9 | RunFunctions(a); 10 | } 11 | } -------------------------------------------------------------------------------- /Components/OnApplicationFocusHook.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.EventSystems; 3 | using clojure.lang; 4 | 5 | public class OnApplicationFocusHook : ArcadiaBehaviour 6 | { 7 | public void OnApplicationFocus(System.Boolean a) 8 | { 9 | RunFunctions(a); 10 | } 11 | } -------------------------------------------------------------------------------- /Components/OnApplicationPauseHook.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.EventSystems; 3 | using clojure.lang; 4 | 5 | public class OnApplicationPauseHook : ArcadiaBehaviour 6 | { 7 | public void OnApplicationPause(System.Boolean a) 8 | { 9 | RunFunctions(a); 10 | } 11 | } -------------------------------------------------------------------------------- /Components/OnCollisionEnterHook.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.EventSystems; 3 | using clojure.lang; 4 | 5 | public class OnCollisionEnterHook : ArcadiaBehaviour 6 | { 7 | public void OnCollisionEnter(UnityEngine.Collision a) 8 | { 9 | RunFunctions(a); 10 | } 11 | } -------------------------------------------------------------------------------- /Components/OnTransformParentChangedHook.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.EventSystems; 3 | using clojure.lang; 4 | 5 | public class OnTransformParentChangedHook : ArcadiaBehaviour 6 | { 7 | public void OnTransformParentChanged() 8 | { 9 | RunFunctions(); 10 | } 11 | } -------------------------------------------------------------------------------- /Components/OnTriggerEnter2DHook.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.EventSystems; 3 | using clojure.lang; 4 | 5 | public class OnTriggerEnter2DHook : ArcadiaBehaviour 6 | { 7 | public void OnTriggerEnter2D(UnityEngine.Collider2D a) 8 | { 9 | RunFunctions(a); 10 | } 11 | } -------------------------------------------------------------------------------- /Components/OnCollisionEnter2DHook.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.EventSystems; 3 | using clojure.lang; 4 | 5 | public class OnCollisionEnter2DHook : ArcadiaBehaviour 6 | { 7 | public void OnCollisionEnter2D(UnityEngine.Collision2D a) 8 | { 9 | RunFunctions(a); 10 | } 11 | } -------------------------------------------------------------------------------- /Components/OnCollisionExit2DHook.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.EventSystems; 3 | using clojure.lang; 4 | 5 | public class OnCollisionExit2DHook : ArcadiaBehaviour 6 | { 7 | public void OnCollisionExit2D(UnityEngine.Collision2D a) 8 | { 9 | RunFunctions(a); 10 | } 11 | } -------------------------------------------------------------------------------- /Components/OnCollisionStay2DHook.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.EventSystems; 3 | using clojure.lang; 4 | 5 | public class OnCollisionStay2DHook : ArcadiaBehaviour 6 | { 7 | public void OnCollisionStay2D(UnityEngine.Collision2D a) 8 | { 9 | RunFunctions(a); 10 | } 11 | } -------------------------------------------------------------------------------- /Components/OnTransformChildrenChangedHook.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.EventSystems; 3 | using clojure.lang; 4 | 5 | public class OnTransformChildrenChangedHook : ArcadiaBehaviour 6 | { 7 | public void OnTransformChildrenChanged() 8 | { 9 | RunFunctions(); 10 | } 11 | } -------------------------------------------------------------------------------- /Components/OnParticleCollisionHook.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.EventSystems; 3 | using clojure.lang; 4 | 5 | public class OnParticleCollisionHook : ArcadiaBehaviour 6 | { 7 | public void OnParticleCollision(UnityEngine.GameObject a) 8 | { 9 | RunFunctions(a); 10 | } 11 | } -------------------------------------------------------------------------------- /Components/OnAudioFilterReadHook.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.EventSystems; 3 | using clojure.lang; 4 | 5 | public class OnAudioFilterReadHook : ArcadiaBehaviour 6 | { 7 | public void OnAudioFilterRead(System.Single[] a, System.Int32 b) 8 | { 9 | RunFunctions(a, b); 10 | } 11 | } -------------------------------------------------------------------------------- /Components/OnInitializePotentialDragHook.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.EventSystems; 3 | using clojure.lang; 4 | 5 | public class OnInitializePotentialDragHook : ArcadiaBehaviour 6 | { 7 | public void OnInitializePotentialDrag(PointerEventData a) 8 | { 9 | RunFunctions(a); 10 | } 11 | } -------------------------------------------------------------------------------- /Components/AwakeHook.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 15fa6413ebca64cd195dae0476ff545a 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Components/OnDragHook.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3bff185fca6fd4f07ac801b94d3e0c4f 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Components/OnDropHook.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a28dc6bf125fc4295816a5ece8d26b08 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Components/OnGUIHook.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5c6de780de48142b3ac933f25b4e0fa8 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Components/OnMoveHook.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3db2b3110ccd14cfc9eef5441ce9ee01 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Components/OnRenderImageHook.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.EventSystems; 3 | using clojure.lang; 4 | 5 | public class OnRenderImageHook : ArcadiaBehaviour 6 | { 7 | public void OnRenderImage(UnityEngine.RenderTexture a, UnityEngine.RenderTexture b) 8 | { 9 | RunFunctions(a, b); 10 | } 11 | } -------------------------------------------------------------------------------- /Components/ResetHook.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 532e5287c0cfd447c94d4b9901778ac9 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Components/StartHook.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 98269a5891b3245db82aaf98a8faa9a0 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Components/UpdateHook.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 32c8aedeab7cb421da9a055c86933987 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Helpers/BasicPaths.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 986a64e87ec82b2899d494c74b466cd0 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Components/FixedUpdateHook.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2e89032315b1b47f28fc31121fd6389a 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Components/LateUpdateHook.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b7a9fdcd9d9904607b89c96dfc2b64b9 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Components/OnBeginDragHook.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a3f96d30e1bfc41ec862f7ca761608e0 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Components/OnCancelHook.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0631a17a40d624b4c849f27e340392c0 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Components/OnControllerColliderHitHook.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.EventSystems; 3 | using clojure.lang; 4 | 5 | public class OnControllerColliderHitHook : ArcadiaBehaviour 6 | { 7 | public void OnControllerColliderHit(UnityEngine.ControllerColliderHit a) 8 | { 9 | RunFunctions(a); 10 | } 11 | } -------------------------------------------------------------------------------- /Components/OnDeselectHook.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e67692ddde462446aa858e3176ab731d 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Components/OnDestroyHook.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a019a457852d64992a938c2e29573ac8 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Components/OnDisableHook.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e9a7b3819850641f3bcf719b154fbb0d 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Components/OnEnableHook.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 56481f56c422e4f57899f8f8382e4a8d 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Components/OnEndDragHook.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9e47b466944514058aa581fbec4245cb 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Components/OnMouseDownHook.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b623ed30193db459984eb7dbd0b51619 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Components/OnMouseDragHook.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6424a4c7aceb8456a9863b081a9141b1 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Components/OnMouseExitHook.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d933dbccc6f4344b79d8a552c6909091 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Components/OnMouseOverHook.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b0ae002bb49b847658925c2e0159eeb6 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Components/OnMouseUpHook.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f63ba8ec37e7146e6a45ffd0557b03a6 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Components/OnPointerUpHook.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6f3165f2b92eb42b0bf9c266c9fd8262 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Components/OnPreCullHook.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5772a88ca18c24ca7b7f76543636130f 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Components/OnPreRenderHook.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8d630ac2b303b4b0592b1ec84eb2159c 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Components/OnScrollHook.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e9fa3fe80f1604021b907c8090cc4c05 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Components/OnSelectHook.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a112eba042fcb486a95bbf5a4cdbcb5d 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Components/OnSubmitHook.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2cf5db0f01d34430ab5e3567c4218624 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Components/OnValidateHook.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 288ccf6a97fc64a6d82c8c7e6443c3c1 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Components/OnAnimatorIKHook.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 223a4efcbd068454c8906dc665feeb8a 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Components/OnAnimatorMoveHook.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4d0b5b95bd4a548cca0de4c2d6055ca8 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Components/OnBecameVisibleHook.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 77932ec668e4b4dab8019d838d0f402e 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Components/OnCollisionEnterHook.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9af8d6155edbf41dd8a93a91ae09d0c6 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Components/OnCollisionExitHook.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: adefb013e297b462f99ed974b4abea83 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Components/OnCollisionStayHook.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8708b8dc65d6d4cabadfe993d60441de 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Components/OnDrawGizmosHook.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 75fa00bb1c8694fd08c1fbd937180194 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Components/OnJointBreak2DHook.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d9b6e44fcc57c2348a17307b8caa6f2f 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Components/OnJointBreakHook.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8a0f4fdd528a146d185349f868273c0f 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Components/OnLevelWasLoadedHook.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ba4989bd6237d4e8b9f58bdc7d751774 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Components/OnMouseEnterHook.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4d646408bc84f4451935a78e6ceedabe 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Components/OnPointerClickHook.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 55eb22b05f69b4ff6be9777d23dda242 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Components/OnPointerDownHook.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c7c2b31061dad4a3195bcb84d8a9f6d4 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Components/OnPointerEnterHook.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: eb9f2412b728f4bafa651cdfebbbb2fc 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Components/OnPointerExitHook.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e41a7735d5fe04b35a83974aa90f4da9 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Components/OnPostRenderHook.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 64f74b0de94e8470abb9e90f5f5b41d1 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Components/OnRenderImageHook.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: be4d38cd6c6104ee4af1d29f89f63b62 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Components/OnRenderObjectHook.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8f8af83a7f699466586ac608714a6c72 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Components/OnTriggerEnter2DHook.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4747cbcafb4364608a2bc567e044fb99 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Components/OnTriggerEnterHook.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b50ff89ec98e24e15aeb531c59d60eac 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Components/OnTriggerExit2DHook.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b84eafcd1bcc043e59bf903a879d6093 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Components/OnTriggerExitHook.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8f5218ce8498d43f896a432b8920f824 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Components/OnTriggerStay2DHook.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 827958532698d4835986770c0457a10d 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Components/OnTriggerStayHook.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1daf3461450f84ae5b6fddceae45e057 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Components/OnUpdateSelectedHook.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d369f0756346e4b3baa9811e9774ffe5 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Helpers/SocketREPLBootstrap.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b60fcd09e33d653569c4711a57548fd2 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Components/OnApplicationFocusHook.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: cb099417172b646148c59017cea699a8 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Components/OnApplicationPauseHook.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 67478341d7028410aba57159df2e32f0 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Components/OnApplicationQuitHook.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4c4ada87d77874ddb8bffdf4df4a7207 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Components/OnAudioFilterReadHook.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7847491f2c71d45b38eb4fcfbc928519 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Components/OnBecameInvisibleHook.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0f099183586ce4656a60b828c81260e7 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Components/OnCollisionEnter2DHook.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 12cd0170e73da4589b2a296bc950fb30 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Components/OnCollisionExit2DHook.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9fd4a9e2e73fd41f5b09971cf7c3882b 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Components/OnCollisionStay2DHook.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c5cd299eb0c4b48d79045a54898be4fb 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Components/OnConnectedToServerHook.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 937ccf8667d63463191df64960f75ca6 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Components/OnDrawGizmosSelectedHook.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a143b09b4ff1b497793c6e371b53edf3 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Components/OnMouseUpAsButtonHook.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b6f03d7e1b56c4ae4be58ccae1d8095b 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Components/OnParticleCollisionHook.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8b80ed46e473442029d3920d282143fe 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Components/OnParticleTriggerHook.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e12bcb3756504304b8849ff43072fb55 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Components/OnServerInitializedHook.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 77ffc30ddbb5f490e9b48d4b74f8c9fc 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Components/OnWillRenderObjectHook.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1bfb1c270044c4e1bbc5e27a1d548b2f 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Components/PlayModeInitialization.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 102fc7b4fec6e4e7f87d45f20c857d3d 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Editor/Repl.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 282b0ef247cc3427ca7622c79b581ad4 3 | timeCreated: 1466999408 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Components/OnControllerColliderHitHook.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 56d68180ab5064270a0c6b172d14b7c4 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Components/OnInitializePotentialDragHook.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 05da9223016e949979234de4d005f387 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Components/OnTransformChildrenChangedHook.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 27884d9df38435c43b46703fa1239e5b 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Components/OnTransformParentChangedHook.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b68a5932c92f616419fc2065369a1988 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Helpers/JumpMap.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: cf3b557a97a244499a4bd9264970a746 3 | timeCreated: 1498778750 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Helpers/Util.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a55abbfa63541b84fb79b5e3c0bbb1c6 3 | timeCreated: 1490369987 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Editor/BuildPipeline.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2af83abd992054568add352e04eed277 3 | timeCreated: 1504304024 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Helpers/ArrayHelper.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b320f2ba1fb7448a7a3a07670d9df2d0 3 | timeCreated: 1474322708 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Helpers/LinearHelper.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 77e581926136a4a05a04f566b7127c12 3 | timeCreated: 1466363864 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Helpers/StringHelper.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2c9219956ab254bc3af670d0dd42401c 3 | timeCreated: 1474320170 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Components/ArcadiaState.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 68bab27575ee84411b029b5f5e98734f 3 | timeCreated: 1464761198 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Editor/AssetPostprocessor.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: cae4e16f713ae4650ac2f31e75b3ac04 3 | timeCreated: 1466999410 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Editor/EditorCallbacks.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 84cd33e6401044708852e88468339547 3 | timeCreated: 1486963917 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Helpers/HookStateSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: eaedaba9cf3b24e9690c81d275ef05de 3 | timeCreated: 1498454755 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Helpers/UnityStatusHelper.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f4c326cfd6bf0444fb00649c35f9d7f0 3 | timeCreated: 1475178411 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Components/ArcadiaBehaviour.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1804ee15d8d3e428fb86ac6b778f977a 3 | timeCreated: 1466999408 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Editor/CustomEditorInspectors.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4b1956608524b4156b3d177fe7ad4244 3 | timeCreated: 1466999408 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Helpers/DefmutableDictionary.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a7834051f8b204720a0ddbc7debe30f2 3 | timeCreated: 1505669997 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Editor/ArcadiaProjectInitialization.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 05b9c866bed2b2246819a1506b3984a2 3 | timeCreated: 1491234638 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Helpers/Callbacks.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 466ce73de1bf34cc681a303423a1c996 3 | timeCreated: 1542227558 4 | licenseType: Free 5 | MonoImporter: 6 | externalObjects: {} 7 | serializedVersion: 2 8 | defaultReferences: [] 9 | executionOrder: 0 10 | icon: {instanceID: 0} 11 | userData: 12 | assetBundleName: 13 | assetBundleVariant: 14 | -------------------------------------------------------------------------------- /Helpers/PlayerCallbacks.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 939500cb670234fc3828e2404de1ed25 3 | timeCreated: 1542227408 4 | licenseType: Free 5 | MonoImporter: 6 | externalObjects: {} 7 | serializedVersion: 2 8 | defaultReferences: [] 9 | executionOrder: 0 10 | icon: {instanceID: 0} 11 | userData: 12 | assetBundleName: 13 | assetBundleVariant: 14 | -------------------------------------------------------------------------------- /Helpers/ArrayHelper.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using clojure.lang; 3 | 4 | namespace Arcadia 5 | { 6 | public static class ArrayHelper 7 | { 8 | 9 | public static T[] CountedArray(Counted c){ 10 | T[] ar = new T[c.count()]; 11 | int i = 0; 12 | foreach (T x in (System.Collections.IEnumerable) c) { 13 | ar[i] = x; 14 | i++; 15 | } 16 | return ar; 17 | } 18 | 19 | } 20 | } -------------------------------------------------------------------------------- /Source/arcadia/internal/name_utils.clj: -------------------------------------------------------------------------------- 1 | (ns arcadia.internal.name-utils 2 | (:require [clojure.string :as string])) 3 | 4 | (defn camels-to-hyphens [s] 5 | (string/replace s #"([a-z])([A-Z])" "$1-$2")) 6 | 7 | (defn title-case [s] 8 | (-> s 9 | name 10 | (string/replace #"[-_]" " ") 11 | (string/replace #"([a-z])([A-Z])" "$1 $2") 12 | (string/replace #" [a-z]" string/upper-case) 13 | (string/replace #"^[a-z]" string/upper-case))) -------------------------------------------------------------------------------- /Source/clojure/samples/await-test.clj: -------------------------------------------------------------------------------- 1 | ; Simple test for await 2 | ; Eventually should put in test framework 3 | 4 | (def counter (ref 0)) 5 | 6 | (defn work [state] 7 | (System.Threading.Thread/Sleep 1000) 8 | (dosync (commute counter inc)) 9 | true) 10 | 11 | (def agents (for [x (range 10)] (agent nil))) 12 | 13 | (defn doit [] 14 | (doall (map #(send % work) agents)) 15 | (apply await agents) 16 | [@counter (doall (map deref agents))]) 17 | -------------------------------------------------------------------------------- /Source/arcadia/internal/benchmarking.clj: -------------------------------------------------------------------------------- 1 | (ns arcadia.internal.benchmarking 2 | (:import 3 | [System TimeSpan] 4 | [System.Diagnostics Stopwatch])) 5 | 6 | (defmacro timing [& body] 7 | `(let [^System.Diagnostics.Stopwatch sw# (System.Diagnostics.Stopwatch.)] 8 | (.Start sw#) 9 | (do ~@body) 10 | (.Stop sw#) 11 | (.TotalMilliseconds (.Elapsed sw#)))) 12 | 13 | (defmacro n-timing [n & body] 14 | `(let [n# ~n] 15 | (/ (timing 16 | (dotimes [_# n#] 17 | ~@body)) 18 | n#))) 19 | -------------------------------------------------------------------------------- /Source/clojure/run_test_generative.clj: -------------------------------------------------------------------------------- 1 | (assembly-load-from "clojure.tools.namespace.dll") 2 | (assembly-load-from "clojure.data.generators.dll") 3 | (assembly-load-from "clojure.test.generative.dll") 4 | (assembly-load-from "clojure.test.check.dll") 5 | 6 | (when-not (System.Environment/GetEnvironmentVariable "clojure.test.generative.msec") ;;; System/getProperty 7 | (System.Environment/SetEnvironmentVariable "clojure.test.generative.msec" "60000")) ;;; System/setProperty 8 | (require '[clojure.test.generative.runner :as runner]) 9 | (runner/-main "clojure/test_clojure") -------------------------------------------------------------------------------- /Source/clojure/test_clojure/protocols/examples.clj: -------------------------------------------------------------------------------- 1 | (ns clojure.test-clojure.protocols.examples) 2 | 3 | (defprotocol ExampleProtocol 4 | "example protocol used by clojure tests" 5 | 6 | (foo [a] "method with one arg") 7 | (bar [a b] "method with two args") 8 | (^String baz [a] [a b] "method with multiple arities") 9 | (with-quux [a] "method name with a hyphen")) 10 | 11 | (defprotocol MarkerProtocol 12 | "a protocol with no methods") 13 | 14 | (defprotocol MarkerProtocol2) 15 | 16 | (definterface ExampleInterface 17 | (hinted [^int i]) 18 | (hinted [^String s])) -------------------------------------------------------------------------------- /Infrastructure/Ionic.Zip.dll.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: aa366f490b67947ba826f365bd9ee916 3 | timeCreated: 1431838693 4 | licenseType: Pro 5 | PluginImporter: 6 | serializedVersion: 1 7 | iconMap: {} 8 | executionOrder: {} 9 | isPreloaded: 0 10 | platformData: 11 | Any: 12 | enabled: 1 13 | settings: {} 14 | Editor: 15 | enabled: 0 16 | settings: 17 | DefaultValueInitialized: true 18 | WindowsStoreApps: 19 | enabled: 0 20 | settings: 21 | CPU: AnyCPU 22 | userData: 23 | assetBundleName: 24 | assetBundleVariant: 25 | -------------------------------------------------------------------------------- /Source/arcadia/internal/nrepl_support.clj: -------------------------------------------------------------------------------- 1 | (ns arcadia.internal.nrepl-support 2 | (:require [arcadia.internal.autocompletion :as ac]) 3 | (:import [BList] 4 | [BDictionary])) 5 | 6 | (defn bencode-completion-result 7 | "Converts a seq of completion maps into a BList of BDictionary" 8 | [completions] 9 | (let [blist (BList.)] 10 | (doseq [candidate completions] 11 | (.Add blist (doto (BDictionary.) 12 | (.Add "candidate" candidate)))) 13 | blist)) 14 | 15 | (defn complete [^String prefix] 16 | (bencode-completion-result 17 | (ac/completions prefix))) 18 | 19 | -------------------------------------------------------------------------------- /Source/clojure/test_clojure/compilation/examples.clj: -------------------------------------------------------------------------------- 1 | ;; Copyright (c) Rich Hickey. All rights reserved. 2 | ;; The use and distribution terms for this software are covered by the 3 | ;; Eclipse Public License 1.0 (http://opensource.org/licenses/eclipse-1.0.php) 4 | ;; which can be found in the file epl-v10.html at the root of this distribution. 5 | ;; By using this software in any fashion, you are agreeing to be bound by 6 | ;; the terms of this license. 7 | ;; You must not remove this notice, or any other, from this software. 8 | 9 | (ns clojure.test-clojure.compilation.examples) 10 | 11 | (eval '(deftype X [])) 12 | (deftype T []) -------------------------------------------------------------------------------- /Editor/EditorCallbacks.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using UnityEngine; 3 | using UnityEditor; 4 | using clojure.lang; 5 | 6 | namespace Arcadia 7 | { 8 | public class EditorCallbacks 9 | { 10 | 11 | public static bool initialized = false; 12 | 13 | public static Var callbackRunnerVar; 14 | 15 | public static void Initialize () { 16 | if (!initialized){ 17 | Arcadia.Util.getVar(ref callbackRunnerVar, "arcadia.internal.editor-callbacks", "run-callbacks"); 18 | EditorApplication.update += RunCallbacks; 19 | initialized = true; 20 | } 21 | } 22 | 23 | public static void RunCallbacks() { 24 | callbackRunnerVar.invoke(); 25 | } 26 | 27 | } 28 | } -------------------------------------------------------------------------------- /Source/clojure/run_test_generative_i.clj: -------------------------------------------------------------------------------- 1 | (assembly-load-from "clojure.tools.namespace.dll") 2 | (assembly-load-from "clojure.data.generators.dll") 3 | (assembly-load-from "clojure.test.generative.dll") 4 | (assembly-load-from "clojure.test.check.dll") 5 | 6 | (when-not (System.Environment/GetEnvironmentVariable "clojure.test.generative.msec") ;;; System/getProperty 7 | (System.Environment/SetEnvironmentVariable "clojure.test.generative.msec" "60000")) ;;; System/setProperty 8 | (require '[clojure.test.generative.runner :as runner]) 9 | (runner/-main-no-exit "clojure/test_clojure") 10 | 11 | 12 | ;;; clojure.test-clojure.reflect -- TODO: need to rewrite reflect tests 13 | -------------------------------------------------------------------------------- /Source/arcadia/internal/array_utils.clj: -------------------------------------------------------------------------------- 1 | (ns arcadia.internal.array-utils) 2 | 3 | ;; TODO: should be possible for this 4 | ;; macro to type-hint returned form 5 | 6 | (defmacro lit-array [t & contents] 7 | (let [len (count contents) 8 | arsym (with-meta (gensym "array_") 9 | {:tag (symbol 10 | (.FullName 11 | (type (. Array (CreateInstance (resolve t) 0)))))}) 12 | assgns (->> contents 13 | (map-indexed 14 | (fn [n content] 15 | `(aset ~arsym ~n ~content))))] 16 | `(let [~arsym (. Array (CreateInstance ~t ~len))] 17 | ~@assgns 18 | ~arsym))) 19 | -------------------------------------------------------------------------------- /Infrastructure/BencodeNET.dll.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ecb317d7cc2b7482099f53ab2c7648f4 3 | PluginImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | iconMap: {} 7 | executionOrder: {} 8 | isPreloaded: 0 9 | isOverridable: 0 10 | platformData: 11 | - first: 12 | Any: 13 | second: 14 | enabled: 1 15 | settings: {} 16 | - first: 17 | Editor: Editor 18 | second: 19 | enabled: 0 20 | settings: 21 | DefaultValueInitialized: true 22 | - first: 23 | Windows Store Apps: WindowsStoreApps 24 | second: 25 | enabled: 0 26 | settings: 27 | CPU: AnyCPU 28 | userData: 29 | assetBundleName: 30 | assetBundleVariant: 31 | -------------------------------------------------------------------------------- /Infrastructure/Microsoft.Dynamic.dll.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b78320ca52a124140b5f4e4ee7dd4d66 3 | PluginImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | iconMap: {} 7 | executionOrder: {} 8 | isPreloaded: 0 9 | isOverridable: 0 10 | platformData: 11 | - first: 12 | Any: 13 | second: 14 | enabled: 1 15 | settings: {} 16 | - first: 17 | Editor: Editor 18 | second: 19 | enabled: 0 20 | settings: 21 | DefaultValueInitialized: true 22 | - first: 23 | Windows Store Apps: WindowsStoreApps 24 | second: 25 | enabled: 0 26 | settings: 27 | CPU: AnyCPU 28 | userData: 29 | assetBundleName: 30 | assetBundleVariant: 31 | -------------------------------------------------------------------------------- /Infrastructure/Microsoft.Scripting.dll.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a768709cbe8d646b89844ce603003e0f 3 | PluginImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | iconMap: {} 7 | executionOrder: {} 8 | isPreloaded: 0 9 | isOverridable: 0 10 | platformData: 11 | - first: 12 | Any: 13 | second: 14 | enabled: 1 15 | settings: {} 16 | - first: 17 | Editor: Editor 18 | second: 19 | enabled: 0 20 | settings: 21 | DefaultValueInitialized: true 22 | - first: 23 | Windows Store Apps: WindowsStoreApps 24 | second: 25 | enabled: 0 26 | settings: 27 | CPU: AnyCPU 28 | userData: 29 | assetBundleName: 30 | assetBundleVariant: 31 | -------------------------------------------------------------------------------- /Infrastructure/clojure.test.check.dll.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bfc3d3d4ff50d5d42a8288e2c708567a 3 | PluginImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | iconMap: {} 7 | executionOrder: {} 8 | isPreloaded: 0 9 | isOverridable: 0 10 | platformData: 11 | - first: 12 | Any: 13 | second: 14 | enabled: 1 15 | settings: {} 16 | - first: 17 | Editor: Editor 18 | second: 19 | enabled: 0 20 | settings: 21 | DefaultValueInitialized: true 22 | - first: 23 | Windows Store Apps: WindowsStoreApps 24 | second: 25 | enabled: 0 26 | settings: 27 | CPU: AnyCPU 28 | userData: 29 | assetBundleName: 30 | assetBundleVariant: 31 | -------------------------------------------------------------------------------- /Infrastructure/clojure.data.generators.dll.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 69d347f8cf4abd8498556f292255bfd6 3 | PluginImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | iconMap: {} 7 | executionOrder: {} 8 | isPreloaded: 0 9 | isOverridable: 0 10 | platformData: 11 | - first: 12 | Any: 13 | second: 14 | enabled: 1 15 | settings: {} 16 | - first: 17 | Editor: Editor 18 | second: 19 | enabled: 0 20 | settings: 21 | DefaultValueInitialized: true 22 | - first: 23 | Windows Store Apps: WindowsStoreApps 24 | second: 25 | enabled: 0 26 | settings: 27 | CPU: AnyCPU 28 | userData: 29 | assetBundleName: 30 | assetBundleVariant: 31 | -------------------------------------------------------------------------------- /Infrastructure/clojure.spec.alpha.clj.dll.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bcecc87913e4a4e66b755c7fa74d3ede 3 | PluginImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | iconMap: {} 7 | executionOrder: {} 8 | isPreloaded: 0 9 | isOverridable: 0 10 | platformData: 11 | - first: 12 | Any: 13 | second: 14 | enabled: 1 15 | settings: {} 16 | - first: 17 | Editor: Editor 18 | second: 19 | enabled: 0 20 | settings: 21 | DefaultValueInitialized: true 22 | - first: 23 | Windows Store Apps: WindowsStoreApps 24 | second: 25 | enabled: 0 26 | settings: 27 | CPU: AnyCPU 28 | userData: 29 | assetBundleName: 30 | assetBundleVariant: 31 | -------------------------------------------------------------------------------- /Infrastructure/clojure.test.generative.dll.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3712635835f05a14e80483aed2909657 3 | PluginImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | iconMap: {} 7 | executionOrder: {} 8 | isPreloaded: 0 9 | isOverridable: 0 10 | platformData: 11 | - first: 12 | Any: 13 | second: 14 | enabled: 1 15 | settings: {} 16 | - first: 17 | Editor: Editor 18 | second: 19 | enabled: 0 20 | settings: 21 | DefaultValueInitialized: true 22 | - first: 23 | Windows Store Apps: WindowsStoreApps 24 | second: 25 | enabled: 0 26 | settings: 27 | CPU: AnyCPU 28 | userData: 29 | assetBundleName: 30 | assetBundleVariant: 31 | -------------------------------------------------------------------------------- /Infrastructure/clojure.tools.namespace.dll.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2a3b275cabd83414d9ff501b817dcc3f 3 | PluginImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | iconMap: {} 7 | executionOrder: {} 8 | isPreloaded: 0 9 | isOverridable: 0 10 | platformData: 11 | - first: 12 | Any: 13 | second: 14 | enabled: 1 15 | settings: {} 16 | - first: 17 | Editor: Editor 18 | second: 19 | enabled: 0 20 | settings: 21 | DefaultValueInitialized: true 22 | - first: 23 | Windows Store Apps: WindowsStoreApps 24 | second: 25 | enabled: 0 26 | settings: 27 | CPU: AnyCPU 28 | userData: 29 | assetBundleName: 30 | assetBundleVariant: 31 | -------------------------------------------------------------------------------- /Infrastructure/Microsoft.Scripting.AspNet.dll.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f7356208b4245495196e32fd49d60bf9 3 | PluginImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | iconMap: {} 7 | executionOrder: {} 8 | isPreloaded: 0 9 | isOverridable: 0 10 | platformData: 11 | - first: 12 | Any: 13 | second: 14 | enabled: 1 15 | settings: {} 16 | - first: 17 | Editor: Editor 18 | second: 19 | enabled: 0 20 | settings: 21 | DefaultValueInitialized: true 22 | - first: 23 | Windows Store Apps: WindowsStoreApps 24 | second: 25 | enabled: 0 26 | settings: 27 | CPU: AnyCPU 28 | userData: 29 | assetBundleName: 30 | assetBundleVariant: 31 | -------------------------------------------------------------------------------- /Infrastructure/Microsoft.Scripting.Metadata.dll.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b0c4f6771231b4452a1e931c87e6da7e 3 | PluginImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | iconMap: {} 7 | executionOrder: {} 8 | isPreloaded: 0 9 | isOverridable: 0 10 | platformData: 11 | - first: 12 | Any: 13 | second: 14 | enabled: 1 15 | settings: {} 16 | - first: 17 | Editor: Editor 18 | second: 19 | enabled: 0 20 | settings: 21 | DefaultValueInitialized: true 22 | - first: 23 | Windows Store Apps: WindowsStoreApps 24 | second: 25 | enabled: 0 26 | settings: 27 | CPU: AnyCPU 28 | userData: 29 | assetBundleName: 30 | assetBundleVariant: 31 | -------------------------------------------------------------------------------- /Infrastructure/clojure.core.specs.alpha.clj.dll.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c4bc9645605d548b5af84429ad513ba2 3 | PluginImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | iconMap: {} 7 | executionOrder: {} 8 | isPreloaded: 0 9 | isOverridable: 0 10 | platformData: 11 | - first: 12 | Any: 13 | second: 14 | enabled: 1 15 | settings: {} 16 | - first: 17 | Editor: Editor 18 | second: 19 | enabled: 0 20 | settings: 21 | DefaultValueInitialized: true 22 | - first: 23 | Windows Store Apps: WindowsStoreApps 24 | second: 25 | enabled: 0 26 | settings: 27 | CPU: AnyCPU 28 | userData: 29 | assetBundleName: 30 | assetBundleVariant: 31 | -------------------------------------------------------------------------------- /Infrastructure/clojure.spec.gen.alpha.clj.dll.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e24b0586e46df4267b5664c6d775bd4d 3 | PluginImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | iconMap: {} 7 | executionOrder: {} 8 | isPreloaded: 0 9 | isOverridable: 0 10 | platformData: 11 | - first: 12 | Any: 13 | second: 14 | enabled: 1 15 | settings: {} 16 | - first: 17 | Editor: Editor 18 | second: 19 | enabled: 0 20 | settings: 21 | DefaultValueInitialized: true 22 | - first: 23 | Windows Store Apps: WindowsStoreApps 24 | second: 25 | enabled: 0 26 | settings: 27 | CPU: AnyCPU 28 | userData: 29 | assetBundleName: 30 | assetBundleVariant: 31 | -------------------------------------------------------------------------------- /Infrastructure/clojure.spec.test.alpha.clj.dll.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b05e7fa6b3713460eb8df9f65c3d1884 3 | PluginImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | iconMap: {} 7 | executionOrder: {} 8 | isPreloaded: 0 9 | isOverridable: 0 10 | platformData: 11 | - first: 12 | Any: 13 | second: 14 | enabled: 1 15 | settings: {} 16 | - first: 17 | Editor: Editor 18 | second: 19 | enabled: 0 20 | settings: 21 | DefaultValueInitialized: true 22 | - first: 23 | Windows Store Apps: WindowsStoreApps 24 | second: 25 | enabled: 0 26 | settings: 27 | CPU: AnyCPU 28 | userData: 29 | assetBundleName: 30 | assetBundleVariant: 31 | -------------------------------------------------------------------------------- /Source/clojure/test_clojure/clojure_xml.clj: -------------------------------------------------------------------------------- 1 | ; Copyright (c) Rich Hickey. All rights reserved. 2 | ; The use and distribution terms for this software are covered by the 3 | ; Eclipse Public License 1.0 (http://opensource.org/licenses/eclipse-1.0.php) 4 | ; which can be found in the file epl-v10.html at the root of this distribution. 5 | ; By using this software in any fashion, you are agreeing to be bound by 6 | ; the terms of this license. 7 | ; You must not remove this notice, or any other, from this software. 8 | 9 | ;;Author: Frantisek Sodomka 10 | 11 | 12 | #_(ns clojure.test-clojure.clojure-xml 13 | (:use clojure.test) 14 | (:require [clojure.xml :as xml])) 15 | 16 | 17 | ; parse 18 | 19 | ; emit-element 20 | ; emit 21 | 22 | -------------------------------------------------------------------------------- /CONTRIBUTORS.md: -------------------------------------------------------------------------------- 1 | * Joseph Parker - [selfsame](https://github.com/selfsame) 2 | * Oscar Morante - [spacepluk](https://github.com/spacepluk) 3 | * Jeaye - [jeaye](https://github.com/jeaye) 4 | * Maxim - [2048terrabit](https://github.com/2048terrabit) 5 | * Douglas P. Fields, Jr. [LispEngineer](https://github.com/LispEngineer) 6 | * Joshua Suskalo - [IGJoshua](https://github.com/IGJoshua) 7 | * Pedro Martins - [pjago](https://github.com/pjago) 8 | * Vincent Cantin - [green-coder](https://github.com/green-coder) 9 | * Jeremy Kross - [jeremykross](https://github.com/jeremykross) 10 | * Artur Dębkowski - [ekhart](https://github.com/ekhart) 11 | * Josep Sànchez - [setzer22](https://github.com/setzer22) 12 | * Ulysses Popple - [ulyssesp](https://github.com/ulyssesp) 13 | -------------------------------------------------------------------------------- /Source/clojure/test_clojure/refs.clj: -------------------------------------------------------------------------------- 1 | ; Copyright (c) Rich Hickey. All rights reserved. 2 | ; The use and distribution terms for this software are covered by the 3 | ; Eclipse Public License 1.0 (http://opensource.org/licenses/eclipse-1.0.php) 4 | ; which can be found in the file epl-v10.html at the root of this distribution. 5 | ; By using this software in any fashion, you are agreeing to be bound by 6 | ; the terms of this license. 7 | ; You must not remove this notice, or any other, from this software. 8 | 9 | ; Author: Frantisek Sodomka 10 | 11 | 12 | (ns clojure.test-clojure.refs 13 | (:use clojure.test)) 14 | 15 | ; http://clojure.org/refs 16 | 17 | ; ref 18 | ; deref, @-reader-macro 19 | ; dosync io! 20 | ; ensure ref-set alter commute 21 | ; set-validator get-validator 22 | 23 | -------------------------------------------------------------------------------- /Infrastructure/Clojure.dll.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9b26a7e5a274a48a9ab857dd4607b9e6 3 | timeCreated: 1523388047 4 | licenseType: Free 5 | PluginImporter: 6 | serializedVersion: 2 7 | iconMap: {} 8 | executionOrder: {} 9 | isPreloaded: 0 10 | isOverridable: 0 11 | platformData: 12 | data: 13 | first: 14 | Any: 15 | second: 16 | enabled: 1 17 | settings: {} 18 | data: 19 | first: 20 | Editor: Editor 21 | second: 22 | enabled: 0 23 | settings: 24 | DefaultValueInitialized: true 25 | data: 26 | first: 27 | Windows Store Apps: WindowsStoreApps 28 | second: 29 | enabled: 0 30 | settings: 31 | CPU: AnyCPU 32 | userData: 33 | assetBundleName: 34 | assetBundleVariant: 35 | -------------------------------------------------------------------------------- /Source/clojure/run_test_i.clj: -------------------------------------------------------------------------------- 1 | (assembly-load-from "clojure.tools.namespace.dll") 2 | (assembly-load-from "clojure.data.generators.dll") 3 | (assembly-load-from "clojure.test.generative.dll") 4 | (assembly-load-from "clojure.test.check.dll") 5 | 6 | ;;;(System/setProperty "java.awt.headless" "true") 7 | (require 8 | '[clojure.test :as test] 9 | '[clojure.tools.namespace.find :as ns]) 10 | (def namespaces (remove (read-string (or (System.Environment/GetEnvironmentVariable "clojure.test-clojure.exclude-namespaces") "#{}")) ;;; System/getProperty Added the or 11 | (ns/find-namespaces-in-dir (System.IO.DirectoryInfo. "clojure/test_clojure")))) ;;; (java.io.File. "test") 12 | (doseq [ns namespaces] (require ns)) 13 | (let [summary (apply test/run-tests namespaces)] 14 | (print summary)) -------------------------------------------------------------------------------- /Source/clojure/run_test.clj: -------------------------------------------------------------------------------- 1 | (assembly-load-from "clojure.tools.namespace.dll") 2 | (assembly-load-from "clojure.data.generators.dll") 3 | (assembly-load-from "clojure.test.generative.dll") 4 | (assembly-load-from "clojure.test.check.dll") 5 | 6 | ;;;(System/setProperty "java.awt.headless" "true") 7 | (require 8 | '[clojure.test :as test] 9 | '[clojure.tools.namespace.find :as ns]) 10 | (def namespaces (remove (read-string (System.Environment/GetEnvironmentVariable "clojure.test-clojure.exclude-namespaces")) ;;; System/getProperty 11 | (ns/find-namespaces-in-dir (System.IO.DirectoryInfo. "clojure/test_clojure")))) ;;; (java.io.File. "test") 12 | (doseq [ns namespaces] (require ns)) 13 | (let [summary (apply test/run-tests namespaces)] 14 | (Environment/Exit (if (test/successful? summary) 0 -1))) ;;; System/exit -------------------------------------------------------------------------------- /Editor/Menu.cs: -------------------------------------------------------------------------------- 1 | using UnityEditor; 2 | 3 | namespace Arcadia 4 | { 5 | public class Menu 6 | { 7 | [MenuItem("Arcadia/AOT Compile")] 8 | public static void AOTCompile() 9 | { 10 | Initialization.PurgeAllCompiled(); 11 | BuildPipeline.BuildAll(); 12 | } 13 | 14 | [MenuItem("Arcadia/Prepare for Export")] 15 | public static void PrepareForExport() 16 | { 17 | BuildPipeline.PrepareExport(); 18 | } 19 | 20 | [MenuItem("Arcadia/Clean/Clean All")] 21 | public static void CleanAll() 22 | { 23 | Initialization.PurgeAllCompiled(); 24 | } 25 | 26 | [MenuItem("Arcadia/Clean/Clean Compiled")] 27 | public static void CleanCompiled() 28 | { 29 | BuildPipeline.CleanCompiled(); 30 | } 31 | } 32 | } -------------------------------------------------------------------------------- /Source/arcadia/internal/mozroots.clj: -------------------------------------------------------------------------------- 1 | (ns ^{:doc "Fix for obscure https bug (#175, #245) on Windows and Linux 2 | 3 | Root SSL certificates are not installed by default on Windows, 4 | and Linux, so making web requests to HTTPS URLs will fail. This 5 | breaks our package manager. The solution is a command line tool 6 | called mozroots that downloads the root SLL certificates that 7 | Mozilla uses in Firefox. We load the assembly and simulate a 8 | command line session passing --import --sync as arguments."} 9 | arcadia.internal.mozroots 10 | (:import [Arcadia BasicPaths Shell] 11 | [System.IO Path])) 12 | 13 | ;; TODO fix hardcoded path here 14 | (defn import-sync-mozroots [] 15 | (Shell/MonoRun Shell/MozrootsExePath 16 | (str "--file " (Path/Combine (BasicPaths/ArcadiaFolder) "Infrastructure" "certdata.txt") " --import --sync"))) 17 | -------------------------------------------------------------------------------- /Source/clojure/samples/counter.clj: -------------------------------------------------------------------------------- 1 | (ns clojure.samples.counter) 2 | 3 | (defn tt [x y] (clojure.lang.Util/identical x y)) 4 | 5 | (def s (apply str (repeat 20 "This is a really long string"))) 6 | 7 | (set! *unchecked-math* true) 8 | 9 | (defn count-num-chars ^long [^String s] 10 | (let [l (.Length s) 11 | c \space] 12 | (loop [i 0 acc 0] 13 | (if (< i l) 14 | (recur (inc i) 15 | (if (identical? (.get_Chars s i) c) acc 16 | (inc acc))) 17 | acc)))) 18 | 19 | 20 | (defn cnc [n] 21 | (dotimes [_ n] (count-num-chars s))) 22 | 23 | (defn f [] 24 | (let [sw (System.Diagnostics.Stopwatch.) 25 | nanosec-per-tick (/ 1000000000 System.Diagnostics.Stopwatch/Frequency)] 26 | (.Start sw) 27 | (dotimes [_ 1000] 28 | (count-num-chars s)) 29 | (.Stop sw) 30 | (println "Time (nsec): " (* (.ElapsedTicks sw) nanosec-per-tick)))) 31 | 32 | (defn g [n] 33 | (time (cnc n))) 34 | 35 | -------------------------------------------------------------------------------- /Source/clojure/test_clojure/clr/added.clj: -------------------------------------------------------------------------------- 1 | ; Copyright (c) Rich Hickey. All rights reserved. 2 | ; The use and distribution terms for this software are covered by the 3 | ; Eclipse Public License 1.0 (http://opensource.org/licenses/eclipse-1.0.php) 4 | ; which can be found in the file epl-v10.html at the root of this distribution. 5 | ; By using this software in any fashion, you are agreeing to be bound by 6 | ; the terms of this license. 7 | ; You must not remove this notice, or any other, from this software. 8 | 9 | ;; Tests added for ClojureCLR -- miscellaneoue 10 | 11 | (ns clojure.test-clojure.clr.added 12 | (:use clojure.test 13 | [clojure.test.generative :exclude (is)] 14 | clojure.template) 15 | (:require [clojure.data.generators :as gen] 16 | [clojure.test-helper :as helper])) 17 | 18 | (deftest test-bit-not 19 | (are [x y] (= x y) 20 | -1 (bit-not 0) 21 | Int64/MinValue (bit-not 0x7FFFFFFFFFFFFFFF))) -------------------------------------------------------------------------------- /Source/clojure/samples/proxy/testproxy.clj: -------------------------------------------------------------------------------- 1 | ; Copyright (c) Rich Hickey. All rights reserved. 2 | ; The use and distribution terms for this software are covered by the 3 | ; Eclipse Public License 1.0 (http://opensource.org/licenses/eclipse-1.0.php) 4 | ; which can be found in the file epl-v10.html at the root of this distribution. 5 | ; By using this software in any fashion, you are agreeing to be bound by 6 | ; the terms of this license. 7 | ; You must not remove this notice, or any other, from this software. 8 | ; 9 | ; Author: David Miller 10 | 11 | ; Test of proxy code 12 | ; 13 | ; Place this file in the clojure subdirectory of your main directory. 14 | ; Start Clojure and do: 15 | ; (compile 'clojure.testproxy ') 16 | ; 17 | ; You should then be able to play games such as: 18 | ; 19 | 20 | 21 | 22 | (ns clojure.testproxy) 23 | 24 | (defn cp1 [] 25 | (proxy [Object] [])) 26 | 27 | (defn cp2 [] 28 | (proxy [Object] [] 29 | (ToString [] "abc"))) 30 | 31 | -------------------------------------------------------------------------------- /Source/clojure/uuid.clj: -------------------------------------------------------------------------------- 1 | ; Copyright (c) Rich Hickey. All rights reserved. 2 | ; The use and distribution terms for this software are covered by the 3 | ; Eclipse Public License 1.0 (http://opensource.org/licenses/eclipse-1.0.php) 4 | ; which can be found in the file epl-v10.html at the root of this distribution. 5 | ; By using this software in any fashion, you are agreeing to be bound by 6 | ; the terms of this license. 7 | ; You must not remove this notice, or any other, from this software. 8 | 9 | (ns clojure.uuid) 10 | 11 | (defn- default-uuid-reader [form] 12 | {:pre [(string? form)]} 13 | (System.Guid. form)) ;;; (java.util.UUID/fromString form) 14 | 15 | (defmethod print-method System.Guid [uuid ^System.IO.TextWriter w] ;;; java.util.UUID ^java.io.Writer 16 | (.Write w (str "#uuid \"" (str uuid) "\""))) ;;; .write 17 | 18 | (defmethod print-dup System.Guid [o w] ;;; java.util.UUID 19 | (print-method o w)) -------------------------------------------------------------------------------- /Editor/Packages.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.IO; 3 | using clojure.lang; 4 | using UnityEditor; 5 | using UnityEngine; 6 | 7 | namespace Arcadia 8 | { 9 | public static class Packages 10 | { 11 | private static Var _restoreFromConfigVar = RT.var("arcadia.internal.packages", "restore-from-config"); 12 | private static Var _cleanLibraiesVar = RT.var("arcadia.internal.packages", "clean-libraries"); 13 | private static Var _cleanCacheVar = RT.var("arcadia.internal.packages", "clean-cache"); 14 | 15 | static Packages() 16 | { 17 | Util.require("arcadia.internal.packages"); 18 | } 19 | 20 | public static void Restore() 21 | { 22 | _restoreFromConfigVar.invoke(); 23 | } 24 | 25 | public static void CleanLibraries() 26 | { 27 | _cleanLibraiesVar.invoke(); 28 | } 29 | 30 | public static void CleanCache() 31 | { 32 | _cleanCacheVar.invoke(); 33 | } 34 | } 35 | } -------------------------------------------------------------------------------- /Source/clojure/samples/genclass/testgenclass2.clj: -------------------------------------------------------------------------------- 1 | ; Copyright (c) Rich Hickey. All rights reserved. 2 | ; The use and distribution terms for this software are covered by the 3 | ; Eclipse Public License 1.0 (http://opensource.org/licenses/eclipse-1.0.php) 4 | ; which can be found in the file epl-v10.html at the root of this distribution. 5 | ; By using this software in any fashion, you are agreeing to be bound by 6 | ; the terms of this license. 7 | ; You must not remove this notice, or any other, from this software. 8 | ; 9 | ; 10 | ; Author: David Miller 11 | ; 12 | ; A simple test of the gen-class facility taking defaults for all. 13 | ; 14 | ; 15 | ; Place this file in the clojure subdirectory of your main directory. 16 | ; (compile 'clojure.testgenclass2) 17 | ; 18 | ; You should then find clojure.testgenclass2.exe in your compile path. 19 | ; Executing it should print "Hello, world". 20 | 21 | 22 | (ns clojure.testgenclass2 23 | (:gen-class)) 24 | 25 | 26 | (defn -main [] 27 | (println "Hello, world")) -------------------------------------------------------------------------------- /Source/clojure/test_clojure/pprint.clj: -------------------------------------------------------------------------------- 1 | ; Copyright (c) Rich Hickey. All rights reserved. 2 | ; The use and distribution terms for this software are covered by the 3 | ; Eclipse Public License 1.0 (http://opensource.org/licenses/eclipse-1.0.php) 4 | ; which can be found in the file epl-v10.html at the root of this distribution. 5 | ; By using this software in any fashion, you are agreeing to be bound by 6 | ; the terms of this license. 7 | ; You must not remove this notice, or any other, from this software. 8 | 9 | ;; Author: Tom Faulhaber 10 | 11 | (ns clojure.test-clojure.pprint 12 | (:refer-clojure :exclude [format]) 13 | (:require [clojure.string :as str]) 14 | (:use [clojure.test :only (deftest is are run-tests)] 15 | [clojure.test-helper :only [platform-newlines]] 16 | [clojure.string :only [split]] ;;RJ: Added to include clojure.string/split to replace .Split 17 | clojure.test-clojure.pprint.test-helper 18 | clojure.pprint)) 19 | 20 | (load "pprint/test_cl_format") 21 | (load "pprint/test_pretty") 22 | -------------------------------------------------------------------------------- /Source/clojure/test_clojure/clojure_zip.clj: -------------------------------------------------------------------------------- 1 | ; Copyright (c) Rich Hickey. All rights reserved. 2 | ; The use and distribution terms for this software are covered by the 3 | ; Eclipse Public License 1.0 (http://opensource.org/licenses/eclipse-1.0.php) 4 | ; which can be found in the file epl-v10.html at the root of this distribution. 5 | ; By using this software in any fashion, you are agreeing to be bound by 6 | ; the terms of this license. 7 | ; You must not remove this notice, or any other, from this software. 8 | 9 | ; Author: Frantisek Sodomka 10 | 11 | 12 | (ns clojure.test-clojure.clojure-zip 13 | (:use clojure.test) 14 | (:require [clojure.zip :as zip])) 15 | 16 | 17 | ; zipper 18 | ; 19 | ; seq-zip 20 | ; vector-zip 21 | ; xml-zip 22 | ; 23 | ; node 24 | ; branch? 25 | ; children 26 | ; make-node 27 | ; path 28 | ; lefts 29 | ; rights 30 | ; down 31 | ; up 32 | ; root 33 | ; right 34 | ; rightmost 35 | ; left 36 | ; leftmost 37 | ; 38 | ; insert-left 39 | ; insert-right 40 | ; replace 41 | ; edit 42 | ; insert-child 43 | ; append-child 44 | ; next 45 | ; prev 46 | ; end? 47 | ; remove 48 | 49 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # =============== # 2 | # Arcadia # 3 | # =============== # 4 | *.mdb* 5 | **/Compiled.meta 6 | **/Compiled/*.exe* 7 | **/Compiled/*.dll* 8 | **/Compiled/Editor*.dll* 9 | **/Export.meta 10 | **/Export/*.dll* 11 | Source/clojure/**/*.meta 12 | **/*.clj.meta 13 | **/*.clj.dll.meta 14 | **/*.md.meta 15 | **/*.edn.meta 16 | 17 | # =============== # 18 | # Unity generated # 19 | # =============== # 20 | Temp/ 21 | Obj/ 22 | UnityGenerated/ 23 | Library/ 24 | 25 | # ===================================== # 26 | # Visual Studio / MonoDevelop generated # 27 | # ===================================== # 28 | ExportedObj/ 29 | *.svd 30 | *.userprefs 31 | *.csproj 32 | *.pidb 33 | *.suo 34 | *.sln 35 | *.user 36 | *.unityproj 37 | *.booproj 38 | 39 | # ============ # 40 | # OS generated # 41 | # ============ # 42 | .DS_Store 43 | .DS_Store? 44 | ._* 45 | .Spotlight-V100 46 | .Trashes 47 | Icon? 48 | ehthumbs.db 49 | Thumbs.db 50 | 51 | /Libraries.meta 52 | /Libraries/ 53 | /Helpers/TimeSnap.cs.meta 54 | /Source/arcadia/debug.clj.meta 55 | /Helpers/Garden.cs.meta 56 | /Tests.meta 57 | /Tests/arcadia.meta 58 | /LICENSE.meta 59 | -------------------------------------------------------------------------------- /Helpers/Callbacks.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System; 3 | using System.Collections.Generic; 4 | using UnityEngine; 5 | using clojure.lang; 6 | 7 | namespace Arcadia 8 | { 9 | public static class Callbacks 10 | { 11 | 12 | public class IntervalData 13 | { 14 | // the function 15 | public IFn f; 16 | // interval in milliseconds 17 | public int interval; 18 | 19 | public DateTime lastTrigger; 20 | 21 | public object key; 22 | 23 | public IntervalData (IFn _f, int _interval, object _key) 24 | { 25 | f = _f; 26 | interval = _interval; 27 | key = _key; 28 | } 29 | } 30 | 31 | public static void RunIntervalCallbacks (System.Object[] callbacks, IFn onError) 32 | { 33 | var now = DateTime.Now; 34 | for (int i = 0; i < callbacks.Length; i++) { 35 | IntervalData d = (IntervalData)callbacks[i]; 36 | if (d.lastTrigger == null || (now - d.lastTrigger).TotalMilliseconds >= d.interval) { 37 | d.lastTrigger = now; 38 | try { 39 | d.f.invoke(); 40 | } catch (Exception e) { 41 | onError.invoke(e, d); 42 | } 43 | } 44 | } 45 | } 46 | 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /Helpers/TimeSnap.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | namespace Arcadia 4 | { 5 | public class TimeSnap 6 | { 7 | 8 | //(->> Arcadia.TimeSnap/GlobalTimeSnaps 9 | // (map #(.time %)) 10 | // (partition 2 1) 11 | // (map (fn[[a b]] 12 | // (.TotalMilliseconds 13 | // (System.DateTime/op_Subtraction b a))))) 14 | // ========================================================== 15 | // static state 16 | 17 | public static List GlobalTimeSnaps; 18 | 19 | // ========================================================== 20 | // data 21 | 22 | public readonly DateTime time; 23 | public readonly object message; 24 | 25 | public TimeSnap (DateTime time_, object message_) 26 | { 27 | time = time_; 28 | message = message_; 29 | } 30 | 31 | // ========================================================== 32 | // logging equipment 33 | 34 | public static void snap (object message) 35 | { 36 | if (GlobalTimeSnaps == null) { 37 | GlobalTimeSnaps = new List(); 38 | } 39 | GlobalTimeSnaps.Add(new TimeSnap(DateTime.Now, message)); 40 | } 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /Source/clojure/test_clojure/keywords.clj: -------------------------------------------------------------------------------- 1 | ; Copyright (c) Rich Hickey. All rights reserved. 2 | ; The use and distribution terms for this software are covered by the 3 | ; Eclipse Public License 1.0 (http://opensource.org/licenses/eclipse-1.0.php) 4 | ; which can be found in the file epl-v10.html at the root of this distribution. 5 | ; By using this software in any fashion, you are agreeing to be bound by 6 | ; the terms of this license. 7 | ; You must not remove this notice, or any other, from this software. 8 | 9 | (ns clojure.test-clojure.keywords 10 | (:use clojure.test)) 11 | 12 | (let [this-ns (str (.Name *ns*))] ;;; .name 13 | (deftest test-find-keyword 14 | :foo 15 | ::foo 16 | (let [absent-keyword-sym (gensym "absent-keyword-sym")] 17 | (are [result lookup] (= result (find-keyword lookup)) 18 | :foo :foo 19 | :foo 'foo 20 | :foo "foo" 21 | nil absent-keyword-sym 22 | nil (str absent-keyword-sym)) 23 | (are [result lookup] (= result (find-keyword this-ns lookup)) 24 | ::foo "foo" 25 | nil (str absent-keyword-sym))))) 26 | -------------------------------------------------------------------------------- /Components/PlayModeInitialization.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Reflection; 3 | 4 | 5 | // Purpose of this class is to ensure loadpaths are initialized during 6 | // play mode in the editor. Unfortunately this currently requires running 7 | // Initialization.Initialize, which is an Editor script, and therefore 8 | // apparently unavailable to user defined Components in the normal way. 9 | // We therefore use Reflection to access it. If the script is not running 10 | // in the editor, this is a no-op. 11 | 12 | namespace Arcadia 13 | { 14 | public static class PlayModeInitialization 15 | { 16 | public static bool initialized; 17 | 18 | public static void Initialize1() 19 | { 20 | if (initialized) 21 | return; 22 | 23 | #if UNITY_EDITOR 24 | 25 | System.Type editorInitializationType = Type.GetType("Arcadia.Initialization, Assembly-CSharp-Editor"); 26 | MethodInfo initializeMethod = editorInitializationType.GetMethod("Initialize"); 27 | 28 | initializeMethod.Invoke(null, new object[0]); 29 | 30 | #endif 31 | initialized = true; 32 | } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /Source/arcadia/internal/protocols.clj: -------------------------------------------------------------------------------- 1 | (ns arcadia.internal.protocols) 2 | 3 | (defprotocol IDeleteableElements 4 | (delete! [this key])) 5 | 6 | (defprotocol ISnapshotable 7 | (snapshot [self]) 8 | (snapshotable? [self])) 9 | 10 | (extend-protocol ISnapshotable 11 | 12 | System.Object 13 | (snapshotable? [self] false) 14 | 15 | System.ValueType 16 | (snapshotable? [self] false) 17 | 18 | nil 19 | (snapshotable? [self] false)) 20 | 21 | (defmulti mutable 22 | (fn mutable-dispatch [{t :arcadia.core/mutable-type}] t)) 23 | 24 | (defprotocol IMutable 25 | (mut! 26 | [_] 27 | [_ _] 28 | [_ _ _] 29 | [_ _ _ _] 30 | [_ _ _ _ _] 31 | [_ _ _ _ _ _] 32 | [_ _ _ _ _ _ _] 33 | [_ _ _ _ _ _ _ _] 34 | [_ _ _ _ _ _ _ _ _] 35 | [_ _ _ _ _ _ _ _ _ _] 36 | [_ _ _ _ _ _ _ _ _ _ _] 37 | [_ _ _ _ _ _ _ _ _ _ _ _] 38 | [_ _ _ _ _ _ _ _ _ _ _ _ _] 39 | [_ _ _ _ _ _ _ _ _ _ _ _ _ _] 40 | [_ _ _ _ _ _ _ _ _ _ _ _ _ _ _] 41 | [_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _] 42 | [_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _] 43 | [_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _] 44 | [_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _])) 45 | 46 | 47 | -------------------------------------------------------------------------------- /Source/clojure/test_clojure/volatiles.clj: -------------------------------------------------------------------------------- 1 | ; Copyright (c) Rich Hickey. All rights reserved. 2 | ; The use and distribution terms for this software are covered by the 3 | ; Eclipse Public License 1.0 (http://opensource.org/licenses/eclipse-1.0.php) 4 | ; which can be found in the file epl-v10.html at the root of this distribution. 5 | ; By using this software in any fashion, you are agreeing to be bound by 6 | ; the terms of this license. 7 | ; You must not remove this notice, or any other, from this software. 8 | 9 | ;;Author: Alex Miller 10 | 11 | (ns clojure.test-clojure.volatiles 12 | (:use clojure.test)) 13 | 14 | (deftest volatile-basics 15 | (let [vol (volatile! "abc")] 16 | (is (volatile? vol)) 17 | (is (= "abc" @vol)) 18 | (is (= "def" (vreset! vol "def"))) 19 | (is (= "def" @vol)))) 20 | 21 | (deftest volatile-vswap! 22 | (let [vol (volatile! 10)] 23 | (is (= 11 (vswap! vol inc))) 24 | (is (= 11 @vol))) 25 | (let [vol (volatile! 10)] 26 | (is (= 20 (vswap! vol + 10))) 27 | (is (= 20 @vol))) 28 | (let [vol (volatile! 10)] 29 | (is (= 25 (vswap! vol + 10 5))) 30 | (is (= 25 @vol)))) 31 | -------------------------------------------------------------------------------- /Source/arcadia/internal/packages/data.clj: -------------------------------------------------------------------------------- 1 | (ns arcadia.internal.packages.data 2 | (:require [clojure.spec.alpha :as s] 3 | [arcadia.internal.spec :as as])) 4 | 5 | (s/def ::artifact string?) 6 | 7 | (s/def ::group string?) 8 | 9 | (s/def ::group-artifact symbol?) 10 | 11 | (s/def ::version string?) 12 | 13 | (s/def ::normal-dependency 14 | (s/keys :req [::group ::artifact ::version])) 15 | 16 | (s/def ::vector-dependency 17 | (s/and 18 | vector? 19 | (s/or 20 | :long (as/qwik-cat ::group ::artifact ::version) 21 | :short (as/qwik-cat ::group-artifact ::version)))) 22 | 23 | (s/def ::dependency (as/qwik-or ::vector-dependency ::normal-dependency)) 24 | 25 | (defn normalize-coordinates [coords] 26 | (as/qwik-conform [[k v] ::dependency coords] 27 | (case k 28 | ::vector-dependency 29 | (let [[ary conf] v] 30 | (case ary 31 | :long conf 32 | :short (let [{:keys [::group-artifact ::version]} conf] 33 | {::group (or (namespace group-artifact) (name group-artifact)) 34 | ::artifact (name group-artifact) 35 | ::version version}))) 36 | 37 | ::normal-dependency 38 | v))) 39 | -------------------------------------------------------------------------------- /Helpers/StringHelper.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Arcadia 4 | { 5 | public static class StringHelper 6 | { 7 | public static bool StartsWith(string s, string pat){ 8 | if (s.Length < pat.Length){ 9 | return false; 10 | } 11 | for (int i = 0; i < pat.Length; i++) { 12 | if (s[i] != pat[i]) { 13 | return false; 14 | } 15 | } 16 | return true; 17 | } 18 | 19 | public static bool StartsWithAny(string s, string[] pats){ 20 | foreach (string pat in pats){ 21 | if (StartsWith(s, pat)) { 22 | return true; 23 | } 24 | } 25 | return false; 26 | } 27 | 28 | // considerably faster than the EndsWith method of Strings 29 | public static bool EndsWith(string s, string pat){ 30 | if (s.Length < pat.Length) { 31 | return false; 32 | } 33 | int offset = s.Length - pat.Length; 34 | for (int i = 0; i < pat.Length; i++) { 35 | if(s[i + offset] != pat[i]){ 36 | return false; 37 | } 38 | } 39 | return true; 40 | } 41 | 42 | public static bool EndsWithAny(string s, string[] pats){ 43 | foreach (string pat in pats){ 44 | if (EndsWith(s, pat)) { 45 | return true; 46 | } 47 | } 48 | return false; 49 | } 50 | 51 | } 52 | } 53 | 54 | -------------------------------------------------------------------------------- /Source/clojure/samples/genclass/testmvc.clj: -------------------------------------------------------------------------------- 1 | ; Copyright (c) Rich Hickey. All rights reserved. 2 | ; The use and distribution terms for this software are covered by the 3 | ; Eclipse Public License 1.0 (http://opensource.org/licenses/eclipse-1.0.php) 4 | ; which can be found in the file epl-v10.html at the root of this distribution. 5 | ; By using this software in any fashion, you are agreeing to be bound by 6 | ; the terms of this license. 7 | ; You must not remove this notice, or any other, from this software. 8 | ; 9 | ; Author: David Miller 10 | 11 | ; Test of gen-class facility. 12 | ; 13 | ; Place this file in the clojure subdirectory of your main directory. 14 | ; (compile 'clojure.testmvc) 15 | ; 16 | ; You should then be able to play games such as: 17 | 18 | ; (def v (clojure.testmvc/fy) 19 | ; (.index v) 20 | 21 | 22 | (System.Reflection.Assembly/Load "System.Web.Mvc, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL") 23 | 24 | (ns clojure.testmvc 25 | (:gen-class 26 | :factory fy 27 | :extends System.Web.Mvc.Controller 28 | :methods [ 29 | [index [] System.Web.Mvc.ActionResult] 30 | ])) 31 | 32 | (defn -index [] 33 | (.Content "Hello World, from Clojure Controller")) 34 | -------------------------------------------------------------------------------- /Editor/repl-client.rb: -------------------------------------------------------------------------------- 1 | require "io/wait" 2 | require "socket" 3 | 4 | $input = "" 5 | $input.force_encoding("UTF-8") 6 | $s = UDPSocket.new 7 | 8 | $remote_host = ARGV[0] || "localhost" 9 | $remote_port = ARGV[1] || 11211 10 | 11 | def repl_send code, strip_nil=false 12 | $s.send code, 0, $remote_host, $remote_port 13 | $s.wait(1) 14 | if $s.ready? 15 | out = $s.recv($s.nread) 16 | print strip_nil ? out.gsub(/\s*nil$/, "\n") : out 17 | $stdout.flush 18 | end 19 | end 20 | 21 | def balanced? code 22 | s = code.clone 23 | s.gsub! /[^\(\)\[\]\{\}]/, "" 24 | until s.gsub!(/\(\)|\[\]|\{\}/, "").nil?; end 25 | s.empty? 26 | end 27 | 28 | repl_send DATA.read.strip, true 29 | 30 | while true 31 | got = $stdin.gets.force_encoding("UTF-8") 32 | $input += got 33 | if balanced? $input 34 | repl_send $input 35 | $input = "" 36 | end 37 | end 38 | 39 | at_exit do 40 | $s.close 41 | end 42 | 43 | __END__ 44 | (binding [*warn-on-reflection* false] 45 | (do (println "; Arcadia REPL") 46 | (println (str "; Clojure " (clojure-version))) 47 | (println (str "; Unity " (UnityEditorInternal.InternalEditorUtility/GetFullUnityVersion))) 48 | (println (str "; Mono " (.Invoke (.GetMethod Mono.Runtime "GetDisplayName" (enum-or System.Reflection.BindingFlags/NonPublic System.Reflection.BindingFlags/Static)) nil nil))))) 49 | -------------------------------------------------------------------------------- /Source/clojure/test_clojure/pprint/test_helper.clj: -------------------------------------------------------------------------------- 1 | ;;; test_helper.clj -- part of the pretty printer for Clojure 2 | 3 | ; Copyright (c) Rich Hickey. All rights reserved. 4 | ; The use and distribution terms for this software are covered by the 5 | ; Eclipse Public License 1.0 (http://opensource.org/licenses/eclipse-1.0.php) 6 | ; which can be found in the file epl-v10.html at the root of this distribution. 7 | ; By using this software in any fashion, you are agreeing to be bound by 8 | ; the terms of this license. 9 | ; You must not remove this notice, or any other, from this software. 10 | 11 | ;; Author: Tom Faulhaber 12 | ;; April 3, 2009 13 | 14 | 15 | ;; This is just a macro to make my tests a little cleaner 16 | 17 | (ns clojure.test-clojure.pprint.test-helper 18 | (:use [clojure.test :only (deftest is)] 19 | [clojure.test-helper :only [platform-newlines]])) 20 | 21 | (defn- back-match [x y] (re-matches y x)) 22 | 23 | (defmacro simple-tests [name & test-pairs] 24 | `(deftest ~name 25 | ~@(for [[x y] (partition 2 test-pairs)] 26 | (cond 27 | (instance? System.Text.RegularExpressions.Regex y) ;;; java.util.regex.Pattern 28 | `(is (#'clojure.test-clojure.pprint.test-helper/back-match ~x ~y)) 29 | (instance? String y) `(is (= ~x (platform-newlines ~y))) 30 | :else `(is (= ~x ~y)))))) 31 | 32 | -------------------------------------------------------------------------------- /Editor/ArcadiaProjectInitialization.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEditor; 3 | 4 | namespace Arcadia 5 | { 6 | [InitializeOnLoad] 7 | public class ArcadiaProjectInitialization 8 | // Starts with an "A" because Editor scripts are initialized alphabetically 9 | { 10 | static ArcadiaProjectInitialization() 11 | { 12 | CheckSettings(); 13 | } 14 | 15 | public static void CheckSettings() 16 | { 17 | Debug.Log("Checking Unity Settings..."); 18 | if (!Application.unityVersion.StartsWith("2018")) // gross string comparison, not sure we can avoid 19 | { 20 | Debug.LogWarningFormat("Expected Unity version 2018.x, got {0}. This might cause issues.", Application.unityVersion); 21 | } 22 | 23 | if (PlayerSettings.GetApiCompatibilityLevel(BuildTargetGroup.Standalone) != ApiCompatibilityLevel.NET_4_6) 24 | { 25 | Debug.LogWarning("API Compatibility is not .NET 4.6. Please change your API Compatibility in Edit > Project Settings > Other Settings or you will likely have issues."); 26 | } 27 | 28 | if (!PlayerSettings.runInBackground) 29 | { 30 | Debug.Log("Updating Run In Background to true"); 31 | PlayerSettings.runInBackground = true; 32 | } 33 | } 34 | 35 | } 36 | } -------------------------------------------------------------------------------- /Source/clojure/test_clojure/parallel.clj: -------------------------------------------------------------------------------- 1 | ; Copyright (c) Rich Hickey. All rights reserved. 2 | ; The use and distribution terms for this software are covered by the 3 | ; Eclipse Public License 1.0 (http://opensource.org/licenses/eclipse-1.0.php) 4 | ; which can be found in the file epl-v10.html at the root of this distribution. 5 | ; By using this software in any fashion, you are agreeing to be bound by 6 | ; the terms of this license. 7 | ; You must not remove this notice, or any other, from this software. 8 | 9 | ; Author: Frantisek Sodomka 10 | 11 | 12 | (ns clojure.test-clojure.parallel 13 | (:use clojure.test)) 14 | 15 | ;; !! Tests for the parallel library will be in a separate file clojure_parallel.clj !! 16 | 17 | ; future-call 18 | ; future 19 | ; pmap 20 | ; pcalls 21 | ; pvalues 22 | 23 | ;;; no pmap yet. 24 | ;; pmap 25 | ;; 26 | (deftest pmap-does-its-thing 27 | ;; regression fixed in r1218; was OutOfMemoryError 28 | (is (= '(1) (pmap inc [0])))) 29 | 30 | (def ^:dynamic *test-value* 1) 31 | 32 | (deftest future-fn-properly-retains-conveyed-bindings 33 | (let [a (atom [])] 34 | (binding [*test-value* 2] 35 | @(future (dotimes [_ 3] 36 | ;; we need some binding to trigger binding pop 37 | (binding [*print-dup* false] 38 | (swap! a conj *test-value*)))) 39 | (is (= [2 2 2] @a))))) -------------------------------------------------------------------------------- /Editor/ProgressBar.cs: -------------------------------------------------------------------------------- 1 | using clojure.lang; 2 | using UnityEditor; 3 | 4 | namespace Arcadia 5 | { 6 | public class ProgressBar 7 | { 8 | public static Atom State = new Atom(PersistentHashMap.EMPTY); 9 | private static Keyword _titleKw = Keyword.intern("title"); 10 | private static Keyword _infoKw = Keyword.intern("info"); 11 | private static Keyword _progressKw = Keyword.intern("progress"); 12 | private static bool _stop = true; // bool assignment is atomic on the clr 13 | 14 | public static void Start(object state) 15 | { 16 | State.reset(state); 17 | _stop = false; 18 | EditorApplication.update += Update; 19 | } 20 | 21 | public static void Stop() 22 | { 23 | _stop = true; 24 | } 25 | 26 | private static void Update() 27 | { 28 | var state = (IPersistentMap) State.deref(); 29 | var cancel = EditorUtility.DisplayCancelableProgressBar(state.valAt(_titleKw) as string, state.valAt(_infoKw) as string, 30 | RT.floatCast(state.valAt(_progressKw))); 31 | 32 | if (_stop || cancel) 33 | { 34 | EditorUtility.ClearProgressBar(); 35 | // ReSharper disable once DelegateSubtraction 36 | EditorApplication.update -= Update; 37 | } 38 | } 39 | } 40 | } -------------------------------------------------------------------------------- /Source/clojure/test_clojure/server.clj: -------------------------------------------------------------------------------- 1 | ; Copyright (c) Rich Hickey. All rights reserved. 2 | ; The use and distribution terms for this software are covered by the 3 | ; Eclipse Public License 1.0 (http://opensource.org/licenses/eclipse-1.0.php) 4 | ; which can be found in the file epl-v10.html at the root of this distribution. 5 | ; By using this software in any fashion, you are agreeing to be bound by 6 | ; the terms of this license. 7 | ; You must not remove this notice, or any other, from this software. 8 | 9 | ; Author: Alex Miller 10 | 11 | (ns clojure.test-clojure.server 12 | (:require [clojure.test :refer :all]) 13 | (:require [clojure.core.server :as s])) 14 | 15 | (defn check-invalid-opts 16 | [opts msg] 17 | (try 18 | (#'clojure.core.server/validate-opts opts) 19 | (is nil) 20 | (catch Exception e 21 | (is (= (ex-data e) opts)) 22 | (is (= msg (.Message e)))))) ;;; .getMessage 23 | 24 | (deftest test-validate-opts 25 | (check-invalid-opts {} "Missing required socket server property :name") 26 | (check-invalid-opts {:name "a" :accept 'clojure.core/+} "Missing required socket server property :port") 27 | (doseq [port [-1 "5" 999999]] 28 | (check-invalid-opts {:name "a" :port port :accept 'clojure.core/+} (str "Invalid socket server port: " port))) 29 | (check-invalid-opts {:name "a" :port 5555} "Missing required socket server property :accept")) -------------------------------------------------------------------------------- /Source/clojure/dm-test.clj: -------------------------------------------------------------------------------- 1 | ; Copyright (c) David Miller. All rights reserved. 2 | ; The use and distribution terms for this software are covered by the 3 | ; Eclipse Public License 1.0 (http://opensource.org/licenses/eclipse-1.0.php) 4 | ; which can be found in the file epl-v10.html at the root of this distribution. 5 | ; By using this software in any fashion, you are agreeing to be bound by 6 | ; the terms of this license. 7 | ; You must not remove this notice, or any other, from this software. 8 | 9 | 10 | (ns clojure.test) 11 | 12 | ; check generation of boolean test when test is known to be of type bool. 13 | 14 | (defn test-if [i n] ( if (> i n) 'a 'b)) 15 | 16 | ; check generation of boolean test when test type is not known. 17 | 18 | (defn test-if2-test [i n] (> i n)) 19 | (defn test-if2 [i n] (if (test-if2-test i n) 'a 'b)) 20 | 21 | ; check generation of boolean test when return type is not bool. 22 | (defn test-if3 [i n] (if i n 'b)) 23 | 24 | 25 | ; basic check of type tagging from the Clojure docs: 26 | (defn len [x] (. x Length)) 27 | (defn len2 [^String x] (. x Length)) 28 | 29 | (defn test-len [] (time (reduce + (map len (replicate 10000 "asdf"))))) 30 | (defn test-len2 [] (time (reduce + (map len2 (replicate 10000 "asdf"))))) 31 | 32 | ; my first test ever. It still runs slow 33 | (defn f1 [l n] (if (> (count l) n) nil (recur (cons 'a l) n))) 34 | (defn test-f1 [] (time (f1 nil 10000))) 35 | 36 | (defn f-dotimes [n] (dotimes [i n] (list i))) 37 | (defn test-dotimes [] (time (f-dotimes 100000))) 38 | 39 | 40 | -------------------------------------------------------------------------------- /Source/arcadia/internal/state_help.clj: -------------------------------------------------------------------------------- 1 | (ns arcadia.internal.state-help 2 | (:require arcadia.data 3 | ;; just for deserialized-var-form?, var-form->var 4 | [arcadia.internal.hook-help :as hh] 5 | [clojure.edn :as edn]) 6 | (:import [UnityEngine Debug] 7 | [Arcadia JumpMap JumpMap+KeyVal JumpMap+PartialArrayMapView] 8 | ArcadiaState)) 9 | 10 | (defn jumpmap-to-map [^JumpMap jm] 11 | (persistent! 12 | (reduce (fn [m, ^JumpMap+KeyVal kv] 13 | (assoc! m (.key kv) (.val kv))) 14 | (transient {}) 15 | (.. jm KeyVals)))) 16 | 17 | (defn deserialize [^ArcadiaState as] 18 | (.BuildDatabaseAtom as true) 19 | (let [objdb (.objectDatabase as)] 20 | (binding [arcadia.data/*object-db* objdb] 21 | (try 22 | (let [^JumpMap jm (.state as)] 23 | (.Clear jm) 24 | (.AddAll jm 25 | ;; in the future, switch on (.serializedFormat as) 26 | ;; assuming edn for now 27 | (edn/read-string {:readers *data-readers*} (.serializedData as)))) 28 | (catch Exception e 29 | (Debug/Log "Exception encountered in arcadia.internal.state-help/deserialize:") 30 | (Debug/Log e) 31 | (Debug/Log "arcadia.data/*object-db*:") 32 | (Debug/Log arcadia.data/*object-db*) 33 | (throw (Exception. "wrapper" e))))))) 34 | 35 | ;; TODO: change this up for defmutable 36 | (defn default-conversion [k v source target] 37 | v) 38 | 39 | (defn initialize [^ArcadiaState as] 40 | (deserialize as) 41 | ;;(.RefreshAll as) 42 | ) 43 | -------------------------------------------------------------------------------- /Source/clojure/test_clojure/atoms.clj: -------------------------------------------------------------------------------- 1 | ; Copyright (c) Rich Hickey. All rights reserved. 2 | ; The use and distribution terms for this software are covered by the 3 | ; Eclipse Public License 1.0 (http://opensource.org/licenses/eclipse-1.0.php) 4 | ; which can be found in the file epl-v10.html at the root of this distribution. 5 | ; By using this software in any fashion, you are agreeing to be bound by 6 | ; the terms of this license. 7 | ; You must not remove this notice, or any other, from this software. 8 | 9 | ;;Author: Frantisek Sodomka 10 | 11 | (ns clojure.test-clojure.atoms 12 | (:use clojure.test)) 13 | 14 | ; http://clojure.org/atoms 15 | 16 | ; atom 17 | ; deref, @-reader-macro 18 | ; swap! reset! 19 | ; compare-and-set! 20 | 21 | (deftest swap-vals-returns-old-value 22 | (let [a (atom 0)] 23 | (is (= [0 1] (swap-vals! a inc))) 24 | (is (= [1 2] (swap-vals! a inc))) 25 | (is (= 2 @a)))) 26 | 27 | (deftest deref-swap-arities 28 | (binding [*warn-on-reflection* true] 29 | (let [a (atom 0)] 30 | (is (= [0 1] (swap-vals! a + 1))) 31 | (is (= [1 3] (swap-vals! a + 1 1))) 32 | (is (= [3 6] (swap-vals! a + 1 1 1))) 33 | (is (= [6 10] (swap-vals! a + 1 1 1 1))) 34 | (is (= 10 @a))))) 35 | 36 | (deftest deref-reset-returns-old-value 37 | (let [a (atom 0)] 38 | (is (= [0 :b] (reset-vals! a :b))) 39 | (is (= [:b 45M] (reset-vals! a 45M))) 40 | (is (= 45M @a)))) 41 | 42 | (deftest reset-on-deref-reset-equality 43 | (let [a (atom :usual-value)] 44 | (is (= :usual-value (reset! a (first (reset-vals! a :almost-never-seen-value))))))) -------------------------------------------------------------------------------- /Source/clojure/samples/genclass/testgenclass3.clj: -------------------------------------------------------------------------------- 1 | ; Copyright (c) Rich Hickey. All rights reserved. 2 | ; The use and distribution terms for this software are covered by the 3 | ; Eclipse Public License 1.0 (http://opensource.org/licenses/eclipse-1.0.php) 4 | ; which can be found in the file epl-v10.html at the root of this distribution. 5 | ; By using this software in any fashion, you are agreeing to be bound by 6 | ; the terms of this license. 7 | ; You must not remove this notice, or any other, from this software. 8 | ; 9 | ; 10 | ; Author: David Miller 11 | ; 12 | ; Simple example testing arguments and returns of value type. 13 | ; 14 | ; Place this file in the clojure subdirectory of your main directory. 15 | ; (compile 'clojure.testgenclass3) 16 | ; 17 | ; Tests: 18 | ; 19 | ; (def v (my.TGC3/fy)) 20 | ; (.add v 12) 21 | ; (.add v 13) 22 | ; (.val v) 23 | ; (.zero v) 24 | ; (.val v) 25 | 26 | 27 | (ns clojure.testgenclass3 28 | (:gen-class 29 | :state state 30 | :init init 31 | :main false 32 | :name my.TGC3 33 | :factory fy 34 | :methods [ 35 | [zero [] Int32] 36 | [add [Int32] Int32] 37 | [val [] Int32] ])) 38 | 39 | 40 | (defn -init [] 41 | [[] (ref 0)]) 42 | 43 | (defn -zero [this] 44 | (dosync 45 | (let [state (.state this) 46 | old @state] 47 | (ref-set state 0) 48 | old))) 49 | 50 | (defn -add [this val] 51 | (print (str this)) 52 | (print (str val)) 53 | (dosync 54 | (commute (.state this) + val))) 55 | 56 | (defn -val [this] 57 | @(.state this)) 58 | 59 | 60 | 61 | -------------------------------------------------------------------------------- /Source/clojure/test_clojure/edn.clj: -------------------------------------------------------------------------------- 1 | ; Copyright (c) Rich Hickey. All rights reserved. 2 | ; The use and distribution terms for this software are covered by the 3 | ; Eclipse Public License 1.0 (http://opensource.org/licenses/eclipse-1.0.php) 4 | ; which can be found in the file epl-v10.html at the root of this distribution. 5 | ; By using this software in any fashion, you are agreeing to be bound by 6 | ; the terms of this license. 7 | ; You must not remove this notice, or any other, from this software. 8 | 9 | ; Author: Stuart Halloway 10 | 11 | 12 | (ns clojure.test-clojure.edn 13 | (:require [clojure.test.generative :refer (defspec)] 14 | [clojure.test-clojure.generators :as cgen] 15 | [clojure.edn :as edn])) 16 | 17 | (defn roundtrip 18 | "Print an object and read it back as edn. Returns rather than throws 19 | any exceptions." 20 | [o] 21 | (binding [*print-length* nil 22 | *print-dup* nil 23 | *print-level* nil] 24 | (try 25 | (-> o pr-str edn/read-string) 26 | (catch Exception t t)))) ;;; Throwable 27 | 28 | (defspec types-that-should-roundtrip 29 | roundtrip 30 | [^{:tag cgen/ednable} o] 31 | (when-not (= o %) 32 | (throw (ex-info "Value cannot roundtrip, see ex-data" {:printed o :read %})))) 33 | 34 | (defspec types-that-should-not-roundtrip 35 | roundtrip 36 | [^{:tag cgen/non-ednable} o] 37 | (when-not (instance? Exception %) ;;; Throwable 38 | (throw (ex-info "edn/read should have thrown, see ex-data" {:printed o :read %})))) -------------------------------------------------------------------------------- /Source/clojure/test_clojure/data.clj: -------------------------------------------------------------------------------- 1 | ; Copyright (c) Rich Hickey. All rights reserved. 2 | ; The use and distribution terms for this software are covered by the 3 | ; Eclipse Public License 1.0 (http://opensource.org/licenses/eclipse-1.0.php) 4 | ; which can be found in the file epl-v10.html at the root of this distribution. 5 | ; By using this software in any fashion, you are agreeing to be bound by 6 | ; the terms of this license. 7 | ; You must not remove this notice, or any other, from this software. 8 | 9 | (ns clojure.test-clojure.data 10 | (:use clojure.data clojure.test) 11 | ) ;;;(:import java.util.HashSet) 12 | 13 | (deftest diff-test 14 | (are [d x y] (= d (diff x y)) 15 | [nil nil nil] nil nil 16 | [1 2 nil] 1 2 17 | [nil nil [1 2 3]] [1 2 3] '(1 2 3) 18 | [1 [:a :b] nil] 1 [:a :b] 19 | [{:a 1} :b nil] {:a 1} :b 20 | [:team #{:p1 :p2} nil] :team #{:p1 :p2} 21 | [{0 :a} [:a] nil] {0 :a} [:a] 22 | [nil [nil 2] [1]] [1] [1 2] 23 | [nil nil [1 2]] [1 2] (into-array [1 2]) 24 | [#{:a} #{:b} #{:c :d}] #{:a :c :d} #{:b :c :d} 25 | [nil nil {:a 1}] {:a 1} {:a 1} 26 | [{:a #{2}} {:a #{4}} {:a #{3}}] {:a #{2 3}} {:a #{3 4}} 27 | ;;;[#{1} #{3} #{2}] (|System.Collections.Generic.List`1[System.Object]|. [1 2]) (|System.Collections.Generic.List`1[System.Object]|. [2 3]) ;;; HashSet 28 | [nil nil [1 2]] [1 2] (into-array [1 2]) 29 | [nil nil [1 2]] (into-array [1 2]) [1 2] 30 | [{:a {:c [1]}} {:a {:c [0]}} {:a {:c [nil 2] :b 1}}] {:a {:b 1 :c [1 2]}} {:a {:b 1 :c [0 2]}} 31 | [{:a nil} {:a false} {:b nil :c false}] {:a nil :b nil :c false} {:a false :b nil :c false})) 32 | -------------------------------------------------------------------------------- /Source/clojure/samples/attributes/testattribute.clj: -------------------------------------------------------------------------------- 1 | ; Copyright (c) Rich Hickey. All rights reserved. 2 | ; The use and distribution terms for this software are covered by the 3 | ; Eclipse Public License 1.0 (http://opensource.org/licenses/eclipse-1.0.php) 4 | ; which can be found in the file epl-v10.html at the root of this distribution. 5 | ; By using this software in any fashion, you are agreeing to be bound by 6 | ; the terms of this license. 7 | ; You must not remove this notice, or any other, from this software. 8 | ; 9 | ; Author: David Miller 10 | 11 | ; Test of gen-class facility. 12 | ; 13 | ; Place this file in the clojure subdirectory of your main directory. 14 | ; Compile the file C.cs via: csc /t:library C.cs 15 | ; Place C.dll in your root directory. 16 | ; Start Clojure and do: 17 | ; (System.Reflection.Assembly/LoadFrom "C.dll") 18 | ; (compile 'clojure.testattribute) 19 | ; 20 | ; You should then be able to play games such as: 21 | 22 | (ns clojure.testattribute) 23 | 24 | (def x (dm.Pet/Dog)) 25 | 26 | (gen-interface 27 | :name ^{System.SerializableAttribute {} dm.PetTypeAttribute x} test.I1 28 | :methods [ [m1 [] Object] ]) 29 | 30 | (definterface ^{System.SerializableAttribute {} dm.PetTypeAttribute x} I2 (m2 [])) 31 | 32 | ; (seq (.GetCustomAttributes test.I1 true)) 33 | ; (seq (.GetCustomAttributes I2 true)) 34 | 35 | 36 | (definterface ^{ dm.PetTypeAttribute x } I3 37 | (^{ dm.PetTypeAttribute x } m1 [ x y]) 38 | (m2 [x ^{ dm.PetTypeAttribute x } y])) 39 | 40 | 41 | (deftype ^{System.SerializableAttribute {}} T1 [a ^{ dm.PetTypeAttribute x } b] 42 | I3 43 | (^{ dm.PetTypeAttribute x } m1 [_ p q] p) 44 | (m2 [_ p ^{ dm.PetTypeAttribute x } q] q) 45 | ) -------------------------------------------------------------------------------- /Source/arcadia/internal/callbacks.clj: -------------------------------------------------------------------------------- 1 | (ns arcadia.internal.callbacks 2 | (:require [arcadia.internal.map-utils :as mu]) 3 | (:import [UnityEngine Debug] 4 | [System.Collections Queue] 5 | [Arcadia Callbacks Callbacks+IntervalData])) 6 | 7 | ;; used by arcadia.internal.editor-callbacks and 8 | ;; arcadia.internal.player-callbacks 9 | 10 | ;; ============================================================ 11 | ;; normal callbacks 12 | 13 | (defn safe-dequeue-all [^Queue queue] 14 | (locking queue 15 | (when (> (.Count queue) 0) 16 | (let [objs (.ToArray queue)] 17 | (.Clear queue) 18 | objs)))) 19 | 20 | ;; ============================================================ 21 | ;; repeating callbacks 22 | 23 | (defn build-repeating-callbacks [m] 24 | {:map m, :arr (into-array (vals m))}) 25 | 26 | (defn add-repeating-callback [repeating-callbacks-atom k f interval] 27 | (swap! repeating-callbacks-atom 28 | (fn [rcs] 29 | (build-repeating-callbacks 30 | (assoc (:map rcs) k 31 | (Callbacks+IntervalData. f interval k)))))) 32 | 33 | (defn remove-repeating-callback [repeating-callbacks-atom k] 34 | (swap! repeating-callbacks-atom 35 | (fn [rcs] (build-repeating-callbacks (dissoc (:map rcs) k))))) 36 | 37 | (defn remove-repeating-callback [repeating-callbacks-atom k] 38 | (swap! repeating-callbacks-atom 39 | (fn [rcs] (build-repeating-callbacks (dissoc (:map rcs) k))))) 40 | 41 | ;; ============================================================ 42 | ;; run all 43 | 44 | (defn run-callbacks [work-queue run-repeating-callbacks-fn] 45 | (let [ar (safe-dequeue-all work-queue)] 46 | (loop [i (int 0)] 47 | (when (< i (count ar)) 48 | (do ((aget ar i)) 49 | (recur (inc i)))))) 50 | (run-repeating-callbacks-fn)) 51 | -------------------------------------------------------------------------------- /Source/clojure/pprint/print_table.clj: -------------------------------------------------------------------------------- 1 | ; Copyright (c) Rich Hickey. All rights reserved. 2 | ; The use and distribution terms for this software are covered by the 3 | ; Eclipse Public License 1.0 (http://opensource.org/licenses/eclipse-1.0.php) 4 | ; which can be found in the file epl-v10.html at the root of this distribution. 5 | ; By using this software in any fashion, you are agreeing to be bound by 6 | ; the terms of this license. 7 | ; You must not remove this notice, or any other, from this software. 8 | 9 | (in-ns 'clojure.pprint) 10 | 11 | (defn print-table 12 | "Prints a collection of maps in a textual table. Prints table headings 13 | ks, and then a line of output for each row, corresponding to the keys 14 | in ks. If ks are not specified, use the keys of the first item in rows." 15 | {:added "1.3"} 16 | ([ks rows] 17 | (when (seq rows) 18 | (let [widths (map 19 | (fn [k] 20 | (apply max (count (str k)) (map #(count (str (get % k))) rows))) 21 | ks) 22 | spacers (map #(apply str (repeat % "-")) widths) 23 | fmts (map #(str "%" % "s") widths) 24 | fmt-row (fn [leader divider trailer row] 25 | (str leader 26 | (apply str (interpose divider 27 | (for [[col fmt] (map vector (map #(get row %) ks) fmts)] 28 | (format fmt (str col))))) 29 | trailer))] 30 | (println) 31 | (println (fmt-row "| " " | " " |" (zipmap ks ks))) 32 | (println (fmt-row "|-" "-+-" "-|" (zipmap ks spacers))) 33 | (doseq [row rows] 34 | (println (fmt-row "| " " | " " |" row)))))) 35 | ([rows] (print-table (keys (first rows)) rows))) 36 | -------------------------------------------------------------------------------- /Helpers/PlayerCallbacks.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | using clojure.lang; 5 | 6 | namespace Arcadia 7 | { 8 | 9 | public class PlayerCallbacks : MonoBehaviour 10 | { 11 | // ============================================================ 12 | // data 13 | 14 | public static bool initialized = false; 15 | 16 | public static Var updateCallbackRunnerVar; 17 | 18 | public static Var fixedUpdateCallbackRunnerVar; 19 | 20 | public static Var isActiveCallbackComponentVar; 21 | 22 | // ============================================================ 23 | // initialization 24 | 25 | public static void Initialize () 26 | { 27 | if (!initialized) { 28 | string callbackNs = "arcadia.internal.player-callbacks"; 29 | Arcadia.Util.getVar(ref updateCallbackRunnerVar, callbackNs, "run-update-callbacks"); 30 | Arcadia.Util.getVar(ref fixedUpdateCallbackRunnerVar, callbackNs, "run-fixed-update-callbacks"); 31 | Arcadia.Util.getVar(ref isActiveCallbackComponentVar, callbackNs, "active-callback-component?"); 32 | initialized = true; 33 | } 34 | } 35 | 36 | // ============================================================ 37 | // singleton behavior 38 | 39 | bool CheckIfShouldRun () 40 | { 41 | Initialize(); 42 | if ((bool)(isActiveCallbackComponentVar.invoke(this))) { 43 | return true; 44 | } 45 | Destroy(this.gameObject); 46 | return false; 47 | } 48 | 49 | // ============================================================ 50 | // messages 51 | 52 | void Start () 53 | { 54 | Initialize(); 55 | CheckIfShouldRun(); 56 | } 57 | 58 | void Update () 59 | { 60 | if (CheckIfShouldRun()) { 61 | updateCallbackRunnerVar.invoke(); 62 | } 63 | } 64 | 65 | void FixedUpdate () 66 | { 67 | if (CheckIfShouldRun()) { 68 | fixedUpdateCallbackRunnerVar.invoke(); 69 | } 70 | } 71 | } 72 | } 73 | -------------------------------------------------------------------------------- /Source/arcadia/internal/nudge.clj: -------------------------------------------------------------------------------- 1 | (ns arcadia.internal.nudge 2 | (:require [arcadia.internal.editor-callbacks :as ec] 3 | [arcadia.internal.state :as state] 4 | [arcadia.internal.config :as config] 5 | [arcadia.internal.asset-watcher :as aw]) 6 | (:import [UnityEditor EditorApplication])) 7 | 8 | ;; The repl sometimes becomes unresponsive or very slow when Unity 9 | ;; loses focus. Since Unity loses focus whenever we're using the repl, 10 | ;; this is a major problem. The bug is definitely on the Unity 11 | ;; side. It seems that Unity suspends much of its operation when focus 12 | ;; is lost, and at a deep enough level that this affects at least the 13 | ;; Editor callback loop upon which the repl depends. 14 | 15 | ;; Through experimentation, it seems that Unity can be tricked into 16 | ;; not suspending its operation if visible components of its user 17 | ;; interface are periodically repainted. For this "nudge" to work, it 18 | ;; seems that at least one o the nudged UI components must be 19 | ;; displaying pixels on the monitor. If they are all fully occluded by 20 | ;; other windows, the repl may still be subject to freezing or 21 | ;; slowdown. 22 | 23 | ;; To enable the repainting trick, call `start-nudge`, or set the 24 | ;; `:nudge` option in your configuration.edn file to `true`. `false` 25 | ;; will turn it off. 26 | 27 | (defn nudge [] 28 | (EditorApplication/RepaintProjectWindow) 29 | (UnityEditor.SceneView/RepaintAll)) 30 | 31 | (defn start-nudge [] 32 | (ec/add-repeating-callback ::nudge #'nudge 2000)) 33 | 34 | (defn stop-nudge [] 35 | (ec/remove-repeating-callback ::nudge)) 36 | 37 | ;; ============================================================ 38 | ;; reactive 39 | 40 | (defn- update-reactive [{:keys [nudge]}] 41 | (if nudge 42 | (start-nudge) 43 | (stop-nudge))) 44 | 45 | (update-reactive (config/config)) 46 | 47 | (state/add-listener ::config/on-update ::update-reactive #'update-reactive) 48 | -------------------------------------------------------------------------------- /Source/clojure/edn.clj: -------------------------------------------------------------------------------- 1 | ; Copyright (c) Rich Hickey. All rights reserved. 2 | ; The use and distribution terms for this software are covered by the 3 | ; Eclipse Public License 1.0 (http://opensource.org/licenses/eclipse-1.0.php) 4 | ; which can be found in the file epl-v10.html at the root of this distribution. 5 | ; By using this software in any fashion, you are agreeing to be bound by 6 | ; the terms of this license. 7 | ; You must not remove this notice, or any other, from this software. 8 | 9 | (ns ^{:doc "edn reading." 10 | :author "Rich Hickey"} 11 | clojure.edn 12 | (:refer-clojure :exclude [read read-string])) 13 | 14 | (defn read 15 | "Reads the next object from stream, which must be an instance of 16 | java.io.PushbackReader or some derivee. stream defaults to the 17 | current value of *in*. 18 | 19 | Reads data in the edn format (subset of Clojure data): 20 | http://edn-format.org 21 | 22 | opts is a map that can include the following keys: 23 | :eof - value to return on end-of-file. When not supplied, eof throws an exception. 24 | :readers - a map of tag symbols to data-reader functions to be considered before default-data-readers. 25 | When not supplied, only the default-data-readers will be used. 26 | :default - A function of two args, that will, if present and no reader is found for a tag, 27 | be called with the tag and the value." 28 | 29 | {:added "1.5"} 30 | ([] 31 | (read *in*)) 32 | ([stream] 33 | (read {} stream)) 34 | ([opts stream] 35 | (clojure.lang.EdnReader/read stream opts))) 36 | 37 | (defn read-string 38 | "Reads one object from the string s. Returns nil when s is nil or empty. 39 | 40 | Reads data in the edn format (subset of Clojure data): 41 | http://edn-format.org 42 | 43 | opts is a map as per clojure.edn/read" 44 | {:added "1.5"} 45 | ([s] (read-string {:eof nil} s)) 46 | ([opts s] (when s (clojure.lang.EdnReader/readString s opts)))) -------------------------------------------------------------------------------- /Source/clojure/test_clojure/api.clj: -------------------------------------------------------------------------------- 1 | ; Copyright (c) Rich Hickey. All rights reserved. 2 | ; The use and distribution terms for this software are covered by the 3 | ; Eclipse Public License 1.0 (http://opensource.org/licenses/eclipse-1.0.php) 4 | ; which can be found in the file epl-v10.html at the root of this distribution. 5 | ; By using this software in any fashion, you are agreeing to be bound by 6 | ; the terms of this license. 7 | ; You must not remove this notice, or any other, from this software. 8 | 9 | (ns clojure.test-clojure.api 10 | (:require [clojure.test.generative :refer (defspec)] 11 | [clojure.test-clojure.generators :as cgen]) 12 | (:import clojure.lang.IFn 13 | clojure.clr.api.Clojure ;;; clojure.java.api.Clojure 14 | clojure.lang.Var)) 15 | 16 | (set! *warn-on-reflection* true) 17 | 18 | (defn roundtrip 19 | "Print an object and read it back with Clojure/read" 20 | [o] 21 | (binding [*print-length* nil 22 | *print-dup* nil 23 | *print-level* nil] 24 | (Clojure/read (pr-str o)))) 25 | 26 | (defn api-var-str 27 | [^Var v] 28 | (Clojure/var (str (.Name (.ns v))) ;;; .name 29 | (str (.sym v)))) 30 | 31 | (defn api-var 32 | [^Var v] 33 | (Clojure/var (.Name (.ns v)) ;;; .name 34 | (.sym v))) 35 | 36 | (defspec api-can-read 37 | roundtrip 38 | [^{:tag cgen/ednable} o] 39 | (when-not (= o %) 40 | (throw (ex-info "Value cannot roundtrip with Clojure/read" {:printed o :read %})))) 41 | 42 | (defspec api-can-find-var 43 | api-var 44 | [^{:tag cgen/var} v] 45 | (when-not (= v %) 46 | (throw (ex-info "Var cannot roundtrip through Clojure/var" {:from v :to %})))) 47 | 48 | (defspec api-can-find-var-str 49 | api-var-str 50 | [^{:tag cgen/var} v] 51 | (when-not (= v %) 52 | (throw (ex-info "Var cannot roundtrip strings through Clojure/var" {:from v :to %})))) 53 | 54 | -------------------------------------------------------------------------------- /Editor/AssetPostprocessor.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEditor; 3 | using clojure.lang; 4 | using System; 5 | using System.IO; 6 | using System.Collections.Generic; 7 | using System.Linq; 8 | 9 | namespace Arcadia 10 | { 11 | class AssetPostprocessor : UnityEditor.AssetPostprocessor 12 | { 13 | // HACK waiting on filewatcher 14 | public static HashSet cljFiles; 15 | 16 | static AssetPostprocessor() 17 | { 18 | Util.require("arcadia.internal.compiler"); 19 | // kill repl when exiting unity 20 | AppDomain.CurrentDomain.ProcessExit += (object sender, EventArgs e) => { StopWatchingFiles(); }; 21 | 22 | if (cljFiles == null) 23 | { 24 | cljFiles = new HashSet(); 25 | foreach (var file in Directory.GetFiles("Assets", "*.clj", SearchOption.AllDirectories)) 26 | { 27 | cljFiles.Add(file); 28 | } 29 | } 30 | 31 | } 32 | 33 | static void OnPostprocessAllAssets(string[] importedAssets, string[] deletedAssets, string[] movedAssets, string[] movedFromAssetPaths) 34 | { 35 | foreach (var file in importedAssets.Where(s => s.EndsWith(".clj"))) 36 | { 37 | cljFiles.Add(file); 38 | } 39 | 40 | foreach (var file in deletedAssets.Where(s => s.EndsWith(".clj"))) 41 | { 42 | cljFiles.Remove(file); 43 | } 44 | } 45 | 46 | static public void StartWatchingFiles() 47 | { 48 | RT.var("arcadia.internal.compiler", "start-watching-files").invoke(); 49 | EditorApplication.update += AssetPostprocessor.ImportChangedFiles; 50 | } 51 | 52 | static public void StopWatchingFiles() 53 | { 54 | RT.var("arcadia.internal.compiler", "stop-watching-files").invoke(); 55 | EditorApplication.update -= AssetPostprocessor.ImportChangedFiles; 56 | } 57 | 58 | static public void ImportChangedFiles() 59 | { 60 | RT.var("arcadia.internal.compiler", "import-changed-files").invoke(); 61 | } 62 | 63 | public static void ReloadAssets() 64 | { 65 | AssetDatabase.Refresh(); 66 | } 67 | 68 | public static void ForceReloadAssets() 69 | { 70 | AssetDatabase.Refresh(ImportAssetOptions.ForceUpdate); 71 | } 72 | } 73 | } -------------------------------------------------------------------------------- /Editor/Repl.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEditor; 3 | using clojure.lang; 4 | using System; 5 | using System.Net; 6 | using System.Text; 7 | using System.Net.Sockets; 8 | using System.Collections.Generic; 9 | using System.Threading; 10 | using System.Runtime.InteropServices; 11 | 12 | namespace Arcadia 13 | { 14 | public class Repl : EditorWindow 15 | { 16 | private static UdpClient replSocket; 17 | 18 | static Repl() 19 | { 20 | Util.require("arcadia.internal.repl"); 21 | } 22 | 23 | public static void Init() 24 | { 25 | Repl window = (Repl)EditorWindow.GetWindow(typeof(Repl)); 26 | } 27 | 28 | public static void Update() 29 | { 30 | if (EditorApplication.isCompiling || (!EditorApplication.isPlaying && EditorApplication.isPlayingOrWillChangePlaymode)) 31 | { 32 | // kill the repl when entering play mode 33 | StopREPL(); 34 | } 35 | else { 36 | RT.var("arcadia.internal.repl", "eval-queue").invoke(); 37 | } 38 | } 39 | 40 | public static void StartREPL() 41 | { 42 | replSocket = (UdpClient)RT.var("arcadia.internal.repl", "start-server").invoke(11211); 43 | EditorApplication.update += Repl.Update; 44 | } 45 | 46 | public static void StopREPL() 47 | { 48 | RT.var("arcadia.internal.repl", "stop-server").invoke(replSocket); 49 | replSocket = null; 50 | EditorApplication.update -= Repl.Update; 51 | } 52 | 53 | void OnGUI() 54 | { 55 | bool serverRunning = RT.booleanCast(((Atom)RT.var("arcadia.internal.repl", "server-running").deref()).deref()); 56 | Color oldColor = GUI.color; 57 | if (serverRunning) 58 | { 59 | GUI.color = Color.red; 60 | if (GUILayout.Button("Stop REPL")) 61 | { 62 | Repl.StopREPL(); 63 | } 64 | GUI.color = oldColor; 65 | 66 | if (replSocket != null) 67 | GUILayout.Label("REPL is listening on " + replSocket.Client.LocalEndPoint); 68 | 69 | } 70 | else { 71 | GUI.color = Color.green; 72 | if (GUILayout.Button("Start REPL")) 73 | { 74 | Repl.StartREPL(); 75 | } 76 | GUI.color = oldColor; 77 | 78 | GUILayout.Label("REPL is not running"); 79 | } 80 | } 81 | } 82 | } -------------------------------------------------------------------------------- /Source/clojure/test_clojure/try_catch.clj: -------------------------------------------------------------------------------- 1 | ; Copyright (c) Rich Hickey. All rights reserved. 2 | ; The use and distribution terms for this software are covered by the 3 | ; Eclipse Public License 1.0 (http://opensource.org/licenses/eclipse-1.0.php) 4 | ; which can be found in the file epl-v10.html at the root of this distribution. 5 | ; By using this software in any fashion, you are agreeing to be bound by 6 | ; the terms of this license. 7 | ; You must not remove this notice, or any other, from this software. 8 | 9 | ; Author: Paul M Bauer 10 | (assembly-load-from "Clojure.Tests.dll") ;;; DM: Added 11 | (ns clojure.test-clojure.try-catch 12 | (:use clojure.test) 13 | (:import [clojure.test ReflectorTryCatchFixture 14 | ReflectorTryCatchFixture+Cookies])) ;;; ReflectorTryCatchFixture$Cookies 15 | 16 | (defn- get-exception [expression] 17 | (try (eval expression) 18 | nil 19 | (catch System.Exception t ;;; java.lang.Throwable 20 | t))) 21 | 22 | (deftest catch-receives-checked-exception 23 | (are [expression expected-exception] (= expected-exception 24 | (type (get-exception expression))) 25 | "Eh, I'm pretty safe" nil 26 | '(System.IO.StreamReader. "CAFEBABEx0/idonotexist") System.IO.DirectoryNotFoundException)) ;;; java.io.FileReader. java.io.FileNotFoundException 27 | 28 | 29 | (defn fail [x] 30 | (ReflectorTryCatchFixture/fail x)) 31 | 32 | (defn make-instance [] 33 | (ReflectorTryCatchFixture.)) 34 | 35 | (deftest catch-receives-checked-exception-from-reflective-call 36 | (is (thrown-with-msg? ReflectorTryCatchFixture+Cookies #"Long" (fail 1))) ;;; ReflectorTryCatchFixture$Cookies 37 | (is (thrown-with-msg? ReflectorTryCatchFixture+Cookies #"Double" (fail 1.0))) ;;; ReflectorTryCatchFixture$Cookies 38 | (is (thrown-with-msg? ReflectorTryCatchFixture+Cookies #"Wrapped" ;;; ReflectorTryCatchFixture$Cookies 39 | (.failWithCause (make-instance) 1.0)))) -------------------------------------------------------------------------------- /Source/clojure/samples/celsius.clj: -------------------------------------------------------------------------------- 1 | ; Copyright (c) David Miller. All rights reserved. 2 | ; The use and distribution terms for this software are covered by the 3 | ; Eclipse Public License 1.0 (http://opensource.org/licenses/eclipse-1.0.php) 4 | ; which can be found in the file epl-v10.html at the root of this distribution. 5 | ; By using this software in any fashion, you are agreeing to be bound by 6 | ; the terms of this license. 7 | ; You must not remove this notice, or any other, from this software. 8 | 9 | 10 | ;;; A Celsius/Fahrenheit converter 11 | ;;; A WinForms equivalent to the Swing app shown here: http://clojure.org/jvm_hosted 12 | 13 | ; If you are running on .Net 4, you will have to change this. 14 | (System.Reflection.Assembly/Load "System.Windows.Forms,Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089") 15 | 16 | (import 17 | '(System.Drawing Size) 18 | '(System.Windows.Forms 19 | Form TableLayoutPanel Label Button TextBox 20 | PaintEventHandler PaintEventArgs) 21 | ) 22 | 23 | 24 | (defn celsius [] 25 | (let [form (Form.) 26 | panel (TableLayoutPanel.) 27 | p-controls (.Controls panel) 28 | tb (TextBox.) 29 | c-label (Label.) 30 | button (Button.) 31 | f-label (Label.)] 32 | 33 | (.set_Text form "Celsius Converter") 34 | (.set_Text c-label "Celsius") 35 | (.set_Text f-label "Fahrenheit") 36 | (.set_Text button "Convert") 37 | 38 | (.. form (Controls) (Add panel)) 39 | 40 | (.add_Click button 41 | (gen-delegate EventHandler [sender args] 42 | (let [c (Double/Parse (.Text tb)) ] 43 | (.set_Text f-label (str (+ 32 (* 1.8 c)) " Fahrenheit"))))) 44 | 45 | (doto panel 46 | (.set_ColumnCount 2) 47 | (.set_RowCount 2)) 48 | 49 | (doto p-controls 50 | (.Add tb) 51 | (.Add c-label) 52 | (.Add button) 53 | (.Add f-label)) 54 | 55 | (doto form 56 | (.set_Size (Size. 300 120)) 57 | .ShowDialog))) 58 | 59 | 60 | (celsius) -------------------------------------------------------------------------------- /Source/clojure/template.clj: -------------------------------------------------------------------------------- 1 | ; Copyright (c) Rich Hickey. All rights reserved. 2 | ; The use and distribution terms for this software are covered by the 3 | ; Eclipse Public License 1.0 (http://opensource.org/licenses/eclipse-1.0.php) 4 | ; which can be found in the file epl-v10.html at the root of this distribution. 5 | ; By using this software in any fashion, you are agreeing to be bound by 6 | ; the terms of this license. 7 | ; You must not remove this notice, or any other, from this software. 8 | 9 | ;;; template.clj - anonymous functions that pre-evaluate sub-expressions 10 | 11 | ;; By Stuart Sierra 12 | ;; June 23, 2009 13 | 14 | ;; CHANGE LOG 15 | ;; 16 | ;; June 23, 2009: complete rewrite, eliminated _1,_2,... argument 17 | ;; syntax 18 | ;; 19 | ;; January 20, 2009: added "template?" and checks for valid template 20 | ;; expressions. 21 | ;; 22 | ;; December 15, 2008: first version 23 | 24 | 25 | (ns ^{:doc "Macros that expand to repeated copies of a template expression." 26 | :author "Stuart Sierra"} 27 | clojure.template 28 | (:require [clojure.walk :as walk])) 29 | 30 | (defn apply-template 31 | "For use in macros. argv is an argument list, as in defn. expr is 32 | a quoted expression using the symbols in argv. values is a sequence 33 | of values to be used for the arguments. 34 | 35 | apply-template will recursively replace argument symbols in expr 36 | with their corresponding values, returning a modified expr. 37 | 38 | Example: (apply-template '[x] '(+ x x) '[2]) 39 | ;=> (+ 2 2)" 40 | [argv expr values] 41 | (assert (vector? argv)) 42 | (assert (every? symbol? argv)) 43 | (walk/postwalk-replace (zipmap argv values) expr)) 44 | 45 | (defmacro do-template 46 | "Repeatedly copies expr (in a do block) for each group of arguments 47 | in values. values are automatically partitioned by the number of 48 | arguments in argv, an argument vector as in defn. 49 | 50 | Example: (macroexpand '(do-template [x y] (+ y x) 2 4 3 5)) 51 | ;=> (do (+ 4 2) (+ 5 3))" 52 | [argv expr & values] 53 | (let [c (count argv)] 54 | `(do ~@(map (fn [a] (apply-template argv expr a)) 55 | (partition c values))))) 56 | -------------------------------------------------------------------------------- /Source/clojure/samples/genclass/testgenclass.clj: -------------------------------------------------------------------------------- 1 | ; Copyright (c) Rich Hickey. All rights reserved. 2 | ; The use and distribution terms for this software are covered by the 3 | ; Eclipse Public License 1.0 (http://opensource.org/licenses/eclipse-1.0.php) 4 | ; which can be found in the file epl-v10.html at the root of this distribution. 5 | ; By using this software in any fashion, you are agreeing to be bound by 6 | ; the terms of this license. 7 | ; You must not remove this notice, or any other, from this software. 8 | ; 9 | ; Author: David Miller 10 | 11 | ; Test of gen-class facility. 12 | ; 13 | ; Place this file in the clojure subdirectory of your main directory. 14 | ; Compile the file C.cs via: csc /t:library C.cs 15 | ; Place C.dll in your root directory. 16 | ; Start Clojure and do: 17 | ; (System.Reflection.Assembly/LoadFrom "C.dll") 18 | ; (compile 'clojure.testgenclass) 19 | ; 20 | ; You should then be able to play games such as: 21 | ; 22 | ; (def v (test.my.gen/fy 12 "test" "thingy")) 23 | ; (.m2 v 12) 24 | ; (.State v) 25 | ; (.getx v) 26 | ; (.setx v 99) 27 | ; (.getx v) 28 | ; 29 | ; Also, you should be able to go to your root directory and execute test.my.gen.exe. 30 | ; It will load everything and call the main routine listed below. 31 | 32 | (gen-interface :name test.my.I2 33 | :methods [ [m10 [Int32 String] Int32] ]) 34 | 35 | (ns clojure.testgenclass 36 | (:gen-class 37 | :name test.my.gen 38 | :main true 39 | :implements [ dm.I1 test.my.I2 ] 40 | :extends dm.C1 41 | :factory fy 42 | :init init 43 | :post-init pinit 44 | :state State 45 | :constructors {[Int32 String Object][String Int32]} 46 | :methods [ [f [Object] Object] [g [Int32] Int32] ] 47 | :exposes { x { :get getx :set setx } } 48 | :exposes-methods { m4 do-m4 } 49 | ) 50 | ) 51 | 52 | 53 | (defn -init [x y z] [[y x] z]) 54 | 55 | (defn -pinit [this x y z] nil) 56 | 57 | (defn -f [x] x) 58 | (defn -g [x] (inc x)) 59 | 60 | (defn -main [& args] 61 | (let [ v (test.my.gen/fy 12 "test" "thingy")] 62 | (println (str (.State v))))) 63 | 64 | 65 | -------------------------------------------------------------------------------- /Source/clojure/samples/stm/teststm.clj: -------------------------------------------------------------------------------- 1 | ; Copyright (c) Rich Hickey. All rights reserved. 2 | ; The use and distribution terms for this software are covered by the 3 | ; Eclipse Public License 1.0 (http://opensource.org/licenses/eclipse-1.0.php) 4 | ; which can be found in the file epl-v10.html at the root of this distribution. 5 | ; By using this software in any fashion, you are agreeing to be bound by 6 | ; the terms of this license. 7 | ; You must not remove this notice, or any other, from this software. 8 | ; 9 | ; Author: Shawn Hoover 10 | 11 | ; Simple test of the STM. 12 | ; (f1) 13 | 14 | 15 | (ns clojure.teststm) 16 | 17 | 18 | (defn sleep [time-ms] (System.Threading.Thread/Sleep time-ms)) 19 | 20 | (def a (ref #{})) 21 | (def b (ref #{})) 22 | 23 | (def cycle-continue true) 24 | 25 | (defn make-future [id] 26 | (future 27 | (try 28 | (loop [n 0] 29 | ;; join the party 30 | (dosync 31 | (alter a conj id) 32 | (alter b conj id)) 33 | 34 | ;; validate the refs 35 | (dosync 36 | (let [current-a @a 37 | current-b @b] 38 | (if (not (= current-a current-b)) 39 | (throw (Exception. (str (format "\n%s\n%s" current-a current-b))))))) 40 | 41 | ;; leave 42 | (dosync 43 | (alter a disj id) 44 | (alter b disj id)) 45 | 46 | (if cycle-continue 47 | (recur (inc n)))) 48 | (catch Exception ex 49 | (def cycle-continue false) 50 | (sleep 100) 51 | (println ex))))) 52 | 53 | ; (f1 3 30) 54 | ; should see 30 dots, then done, unless an error occurs. Then you will see an error message printed. 55 | 56 | (defn f1 [nagts dur] 57 | (future 58 | (do 59 | (def a (ref #{})) 60 | (def b (ref #{})) 61 | (def cycle-continue true) 62 | (let [n-agents nagts 63 | duration dur 64 | futures (doall (map make-future (range n-agents)))] 65 | (loop [i 0] 66 | (sleep 1000) 67 | (print ".") (flush) 68 | (if (and (<= i duration) cycle-continue) 69 | (recur (inc i))))) 70 | (println "done") 71 | (def cycle-continue false)))) 72 | -------------------------------------------------------------------------------- /Source/arcadia/internal/components.clj: -------------------------------------------------------------------------------- 1 | (ns 2 | ^{:doc "Generates the C# implementation of the Arcadia hooks"} 3 | arcadia.internal.components 4 | (:require [clojure.string :as string] 5 | [arcadia.internal.events :as events]) 6 | (:import [clojure.lang RT] 7 | [Arcadia BasicPaths] 8 | [System.IO Path])) 9 | 10 | (def path (Path/Combine BasicPaths/ArcadiaFolder "Components")) 11 | 12 | (defn component-name [event] 13 | (str event "Hook")) 14 | 15 | (defn component-file [event] 16 | (Path/Combine path (str (component-name event) ".cs"))) 17 | 18 | (def alphabet 19 | (->> (range \a \z) 20 | (map (comp str char)))) 21 | 22 | (def overrides 23 | "Which methods of ArcadiaBehaviour should be overriden/hidden." 24 | '{Awake override}) 25 | 26 | (def call-base 27 | "Which overriden methods should call the base method." 28 | '{Awake true}) 29 | 30 | (defn component-source 31 | ([event args] (component-source event args nil)) 32 | ([event args interface] 33 | (let [arg-names (take (count args) alphabet)] 34 | (str 35 | "using UnityEngine; 36 | using UnityEngine.EventSystems; 37 | " (if interface 38 | (str "using " (.Namespace (RT/classForName interface)) ";\n")) 39 | "using clojure.lang; 40 | 41 | public class " (component-name event) " : ArcadiaBehaviour" (if interface (str ", " interface)) 42 | " 43 | { 44 | " (string/join " " (filter some? ['public (overrides event) 'void])) " " 45 | event "(" (string/join ", " (map #(str %1 " " %2) args arg-names)) ") 46 | { 47 | " (if (call-base event) 48 | (str " base." event "(" (string/join ", " arg-names) ");\n")) 49 | " RunFunctions(" (string/join ", " arg-names) "); 50 | } 51 | }")))) 52 | 53 | (defn write-component! 54 | ([event args] (write-component! event args nil)) 55 | ([event args interface] 56 | (spit (component-file event) 57 | (component-source event args interface) 58 | :encoding "UTF-8" 59 | :write true))) 60 | 61 | (defn write-components! [] 62 | (doseq [[event args] events/events] 63 | (write-component! event args)) 64 | 65 | (doseq [[event args] events/interface-events] 66 | (let [interface (namespace event) 67 | event (name event)] 68 | (write-component! event args interface)))) 69 | -------------------------------------------------------------------------------- /Source/clojure/test_clojure/main.clj: -------------------------------------------------------------------------------- 1 | ; Copyright (c) Rich Hickey. All rights reserved. 2 | ; The use and distribution terms for this software are covered by the 3 | ; Eclipse Public License 1.0 (http://opensource.org/licenses/eclipse-1.0.php) 4 | ; which can be found in the file epl-v10.html at the root of this distribution. 5 | ; By using this software in any fashion, you are agreeing to be bound by 6 | ; the terms of this license. 7 | ; You must not remove this notice, or any other, from this software. 8 | 9 | ; Author: Stuart Halloway 10 | 11 | 12 | (ns clojure.test-clojure.main 13 | (:use clojure.test 14 | [clojure.test-helper :only [platform-newlines]]) 15 | (:require [clojure.main :as main])) 16 | 17 | (deftest eval-opt 18 | (testing "evals and prints forms" 19 | (is (= (platform-newlines "2\n4\n") (with-out-str (#'clojure.main/eval-opt "(+ 1 1) (+ 2 2)"))))) 20 | 21 | (testing "skips printing nils" 22 | (is (= (platform-newlines ":a\n:c\n") (with-out-str (#'clojure.main/eval-opt ":a nil :c"))))) 23 | 24 | (testing "does not block access to *in* (#299)" 25 | (with-in-str "(+ 1 1)" 26 | (is (= (platform-newlines "(+ 1 1)\n") (with-out-str (#'clojure.main/eval-opt "(read)"))))))) 27 | 28 | (defmacro with-err-str 29 | "Evaluates exprs in a context in which *err* is bound to a fresh 30 | StringWriter. Returns the string created by any nested printing 31 | calls." 32 | [& body] 33 | `(let [s# (new System.IO.StringWriter) ;;; (new java.io.StringWriter) 34 | p# s#] ;;; (new java.io.PrintWriter s#)] 35 | (binding [*err* p#] 36 | ~@body 37 | (str s#)))) 38 | 39 | (defn run-repl-and-return-err 40 | "Run repl, swallowing stdout and returing stderr." 41 | [in-str] 42 | (with-err-str 43 | (with-out-str 44 | (with-in-str in-str 45 | (main/repl))))) 46 | 47 | ;argh - test fragility, please fix 48 | #_(deftest repl-exception-safety 49 | (testing "catches and prints exception on bad equals" 50 | (is (re-find #"^System.MissingMethodException" ;;; (is (= "java.lang.NullPointerException\n" 51 | (run-repl-and-return-err 52 | "(proxy [Object] [] (Equals [o] (.ToString nil)))"))))) ;;; equals .toString 53 | -------------------------------------------------------------------------------- /Source/clojure/pprint.clj: -------------------------------------------------------------------------------- 1 | ;;; pprint.clj -- Pretty printer and Common Lisp compatible format function (cl-format) for Clojure 2 | 3 | ; Copyright (c) Rich Hickey. All rights reserved. 4 | ; The use and distribution terms for this software are covered by the 5 | ; Eclipse Public License 1.0 (http://opensource.org/licenses/eclipse-1.0.php) 6 | ; which can be found in the file epl-v10.html at the root of this distribution. 7 | ; By using this software in any fashion, you are agreeing to be bound by 8 | ; the terms of this license. 9 | ; You must not remove this notice, or any other, from this software. 10 | 11 | ;; Author: Tom Faulhaber 12 | ;; April 3, 2009 13 | 14 | (ns 15 | ^{:author "Tom Faulhaber", 16 | :doc "A Pretty Printer for Clojure 17 | 18 | clojure.pprint implements a flexible system for printing structured data 19 | in a pleasing, easy-to-understand format. Basic use of the pretty printer is 20 | simple, just call pprint instead of println. More advanced users can use 21 | the building blocks provided to create custom output formats. 22 | 23 | Out of the box, pprint supports a simple structured format for basic data 24 | and a specialized format for Clojure source code. More advanced formats, 25 | including formats that don't look like Clojure data at all like XML and 26 | JSON, can be rendered by creating custom dispatch functions. 27 | 28 | In addition to the pprint function, this module contains cl-format, a text 29 | formatting function which is fully compatible with the format function in 30 | Common Lisp. Because pretty printing directives are directly integrated with 31 | cl-format, it supports very concise custom dispatch. It also provides 32 | a more powerful alternative to Clojure's standard format function. 33 | 34 | See documentation for pprint and cl-format for more information or 35 | complete documentation on the Clojure web site on GitHub.", 36 | :added "1.2"} 37 | clojure.pprint 38 | (:refer-clojure :exclude (deftype)) 39 | (:use [clojure.walk :only [walk]])) 40 | 41 | (set! *warn-on-reflection* true) 42 | 43 | (load "pprint/utilities") 44 | (load "pprint/column_writer") 45 | (load "pprint/pretty_writer") 46 | (load "pprint/pprint_base") 47 | (load "pprint/cl_format") 48 | (load "pprint/dispatch") 49 | (load "pprint/print_table") 50 | 51 | nil 52 | -------------------------------------------------------------------------------- /Source/clojure/test_clojure/clojure_walk.clj: -------------------------------------------------------------------------------- 1 | (ns clojure.test-clojure.clojure-walk 2 | (:require [clojure.walk :as w]) 3 | (:use clojure.test)) 4 | 5 | (deftest t-prewalk-replace 6 | (is (= (w/prewalk-replace {:a :b} [:a {:a :a} (list 3 :c :a)]) 7 | [:b {:b :b} (list 3 :c :b)]))) 8 | 9 | (deftest t-postwalk-replace 10 | (is (= (w/postwalk-replace {:a :b} [:a {:a :a} (list 3 :c :a)]) 11 | [:b {:b :b} (list 3 :c :b)]))) 12 | 13 | (deftest t-stringify-keys 14 | (is (= (w/stringify-keys {:a 1, nil {:b 2 :c 3}, :d 4}) 15 | {"a" 1, nil {"b" 2 "c" 3}, "d" 4}))) 16 | 17 | (deftest t-prewalk-order 18 | (is (= (let [a (atom [])] 19 | (w/prewalk (fn [form] (swap! a conj form) form) 20 | [1 2 {:a 3} (list 4 [5])]) 21 | @a) 22 | [[1 2 {:a 3} (list 4 [5])] 23 | 1 2 {:a 3} [:a 3] :a 3 (list 4 [5]) 24 | 4 [5] 5]))) 25 | 26 | (deftest t-postwalk-order 27 | (is (= (let [a (atom [])] 28 | (w/postwalk (fn [form] (swap! a conj form) form) 29 | [1 2 {:a 3} (list 4 [5])]) 30 | @a) 31 | [1 2 32 | :a 3 [:a 3] {:a 3} 33 | 4 5 [5] (list 4 [5]) 34 | [1 2 {:a 3} (list 4 [5])]]))) 35 | 36 | (defrecord Foo [a b c]) 37 | 38 | (deftest walk 39 | "Checks that walk returns the correct result and type of collection" 40 | (let [colls ['(1 2 3) 41 | [1 2 3] 42 | #{1 2 3} 43 | (sorted-set-by > 1 2 3) 44 | {:a 1, :b 2, :c 3} 45 | (sorted-map-by > 1 10, 2 20, 3 30) 46 | (->Foo 1 2 3) 47 | (map->Foo {:a 1 :b 2 :c 3 :extra 4})]] 48 | (doseq [c colls] 49 | (let [walked (w/walk identity identity c)] 50 | (is (= c walked)) 51 | ;;(is (= (type c) (type walked))) 52 | (if (map? c) 53 | (is (= (w/walk #(update-in % [1] inc) #(reduce + (vals %)) c) 54 | (reduce + (map (comp inc val) c)))) 55 | (is (= (w/walk inc #(reduce + %) c) 56 | (reduce + (map inc c))))) 57 | (when (or (instance? clojure.lang.PersistentTreeMap c) 58 | (instance? clojure.lang.PersistentTreeSet c)) 59 | (is (= (.comparator c) (.comparator walked)))))))) 60 | 61 | -------------------------------------------------------------------------------- /Source/clojure/test_clojure/fn.clj: -------------------------------------------------------------------------------- 1 | ; Copyright (c) Rich Hickey. All rights reserved. 2 | ; The use and distribution terms for this software are covered by the 3 | ; Eclipse Public License 1.0 (http://opensource.org/licenses/eclipse-1.0.php) 4 | ; which can be found in the file epl-v10.html at the root of this distribution. 5 | ; By using this software in any fashion, you are agreeing to be bound by 6 | ; the terms of this license. 7 | ; You must not remove this notice, or any other, from this software. 8 | 9 | ; Author: Ambrose Bonnaire-Sergeant 10 | 11 | (ns clojure.test-clojure.fn 12 | (:use clojure.test clojure.test-helper)) 13 | 14 | (deftest fn-error-checking 15 | (testing "bad arglist" 16 | (is (fails-with-cause? clojure.lang.ExceptionInfo 17 | #"Call to clojure.core/fn did not conform to spec" 18 | (eval '(fn "a" a))))) 19 | 20 | (testing "treat first param as args" 21 | (is (fails-with-cause? clojure.lang.ExceptionInfo 22 | #"Call to clojure.core/fn did not conform to spec" 23 | (eval '(fn "a" []))))) 24 | 25 | (testing "looks like listy signature, but malformed declaration" 26 | (is (fails-with-cause? clojure.lang.ExceptionInfo 27 | #"Call to clojure.core/fn did not conform to spec" 28 | (eval '(fn (1)))))) 29 | 30 | (testing "checks each signature" 31 | (is (fails-with-cause? clojure.lang.ExceptionInfo 32 | #"Call to clojure.core/fn did not conform to spec" 33 | (eval '(fn 34 | ([a] 1) 35 | ("a" 2)))))) 36 | 37 | (testing "correct name but invalid args" 38 | (is (fails-with-cause? clojure.lang.ExceptionInfo 39 | #"Call to clojure.core/fn did not conform to spec" 40 | (eval '(fn a "a"))))) 41 | 42 | (testing "first sig looks multiarity, rest of sigs should be lists" 43 | (is (fails-with-cause? clojure.lang.ExceptionInfo 44 | #"Call to clojure.core/fn did not conform to spec" 45 | (eval '(fn a 46 | ([a] 1) 47 | [a b]))))) 48 | 49 | (testing "missing parameter declaration" 50 | (is (fails-with-cause? clojure.lang.ExceptionInfo 51 | #"Call to clojure.core/fn did not conform to spec" 52 | (eval '(fn a)))) 53 | (is (fails-with-cause? clojure.lang.ExceptionInfo 54 | #"Call to clojure.core/fn did not conform to spec" 55 | (eval '(fn)))))) -------------------------------------------------------------------------------- /Source/clojure/samples/deftype/testdeftype.clj: -------------------------------------------------------------------------------- 1 | ; Copyright (c) Rich Hickey. All rights reserved. 2 | ; The use and distribution terms for this software are covered by the 3 | ; Eclipse Public License 1.0 (http://opensource.org/licenses/eclipse-1.0.php) 4 | ; which can be found in the file epl-v10.html at the root of this distribution. 5 | ; By using this software in any fashion, you are agreeing to be bound by 6 | ; the terms of this license. 7 | ; You must not remove this notice, or any other, from this software. 8 | ; 9 | ; Author: David Miller 10 | 11 | ; Test of gen-class facility. 12 | ; 13 | ; Place this file in the clojure subdirectory of your main directory. 14 | ; load or compile, depending on your mood 15 | 16 | (ns clojure.testdeftype) 17 | 18 | (definterface I1 19 | (^Int32 m1 [^Int32 x ^String y]) 20 | (^Int32 m1 [^String x ^Int32 y]) 21 | (^Int32 m2 [^Int32 x ^String y])) 22 | 23 | (definterface I2 24 | (^Int32 m1 [^Int32 x ^String y]) 25 | (^String m2 [^Int32 x ^String y]) 26 | (m3 [x y]) 27 | ) 28 | 29 | (deftype T1 [a b] 30 | I1 31 | (^Int32 m1 [_ ^Int32 x ^String y] (unchecked-add x (.Length y))) 32 | (^Int32 m1 [_ ^String x ^Int32 y] (unchecked-multiply (.Length x) y)) 33 | (^Int32 m2 [this ^Int32 x ^String y] (unchecked-multiply (int 2) (.m1 this x y))) 34 | ) 35 | 36 | (deftype T2 [a b] 37 | I1 38 | (^Int32 m1 [_ ^Int32 x ^String y] (unchecked-add x (.Length y))) 39 | (^Int32 m1 [_ ^String x ^Int32 y] (unchecked-multiply (.Length x) y)) 40 | (^Int32 m2 [this ^Int32 x ^String y] (unchecked-multiply (int 2) (.m1 this x y))) 41 | I2 42 | (m3 [_ x y] (list a b x y)) 43 | (^String user.I2.m2 [this ^Int32 x ^String y] (str y " " x)) 44 | ) 45 | 46 | (deftype T3 [a b] 47 | I1 48 | (^Int32 m1 [_ ^Int32 x ^String y] (unchecked-add x (.Length y))) 49 | (^Int32 m1 [_ ^String x ^Int32 y] (unchecked-multiply (.Length x) y)) 50 | I2 51 | (m3 [_ x y] (list a b x y)) 52 | ) 53 | 54 | 55 | 56 | 57 | 58 | (deftype VecNode [edit arr]) 59 | 60 | (def EMPTY-NODE (VecNode nil (object-array 32))) 61 | 62 | (definterface IVecImpl 63 | (^int tailoff []) 64 | (arrayFor [^int i]) 65 | (pushTail [^int level parent tailnode]) 66 | (popTail [^int level node]) 67 | (newPath [edit ^int level node]) 68 | (doAssoc [^int level node ^int i val])) 69 | 70 | (definterface ArrayManager 71 | (array [^int size]) 72 | (^int alength [arr]) 73 | (aclone [arr]) 74 | (aget [arr ^int i]) 75 | (aset [arr ^int i val])) -------------------------------------------------------------------------------- /Source/clojure/test_clojure/test_fixtures.clj: -------------------------------------------------------------------------------- 1 | ; Copyright (c) Rich Hickey. All rights reserved. 2 | ; The use and distribution terms for this software are covered by the 3 | ; Eclipse Public License 1.0 (http://opensource.org/licenses/eclipse-1.0.php) 4 | ; which can be found in the file epl-v10.html at the root of this distribution. 5 | ; By using this software in any fashion, you are agreeing to be bound by 6 | ; the terms of this license. 7 | ; You must not remove this notice, or any other, from this software. 8 | ; 9 | ;;; test_fixtures.clj: unit tests for fixtures in test.clj 10 | 11 | ;; by Stuart Sierra 12 | ;; March 28, 2009 13 | 14 | (ns clojure.test-clojure.test-fixtures 15 | (:use clojure.test)) 16 | 17 | (declare ^:dynamic *a* ^:dynamic *b* ^:dynamic *c* ^:dynamic *d*) 18 | 19 | (def ^:dynamic *n* 0) 20 | 21 | (defn fixture-a [f] 22 | (binding [*a* 3] (f))) 23 | 24 | (defn fixture-b [f] 25 | (binding [*b* 5] (f))) 26 | 27 | (defn fixture-c [f] 28 | (binding [*c* 7] (f))) 29 | 30 | (defn fixture-d [f] 31 | (binding [*d* 11] (f))) 32 | 33 | (defn inc-n-fixture [f] 34 | (binding [*n* (inc *n*)] (f))) 35 | 36 | (def side-effects (atom 0)) 37 | (defn side-effecting-fixture [f] 38 | (swap! side-effects inc) 39 | (f)) 40 | 41 | (use-fixtures :once fixture-a fixture-b) 42 | 43 | (use-fixtures :each fixture-c fixture-d inc-n-fixture side-effecting-fixture) 44 | (use-fixtures :each fixture-c fixture-d inc-n-fixture side-effecting-fixture) 45 | 46 | (deftest can-use-once-fixtures 47 | (is (= 3 *a*)) 48 | (is (= 5 *b*))) 49 | 50 | (deftest can-use-each-fixtures 51 | (is (= 7 *c*)) 52 | (is (= 11 *d*))) 53 | 54 | (deftest use-fixtures-replaces 55 | (is (= *n* 1))) 56 | 57 | (deftest can-run-a-single-test-with-fixtures 58 | ;; We have to use a side-effecting fixture to test that the fixtures are 59 | ;; running, in order to distinguish fixtures run because of our call to 60 | ;; test-vars below from the same fixtures running prior to this test 61 | (let [side-effects-so-far @side-effects 62 | reported (atom [])] 63 | (binding [report (fn [m] (swap! reported conj (:type m)))] 64 | (test-vars [#'can-use-each-fixtures])) 65 | (is (= [:begin-test-var :pass :pass :end-test-var] @reported)) 66 | (is (= (inc side-effects-so-far) @side-effects)))) 67 | 68 | (defn should-not-trigger-fixtures []) 69 | 70 | (deftest a-var-lacking-test-meta-should-not-trigger-fixtures 71 | (let [side-effects-so-far @side-effects] 72 | (test-vars [#'should-not-trigger-fixtures]) 73 | (is (= side-effects-so-far @side-effects)))) -------------------------------------------------------------------------------- /Editor/repl-client.javascript: -------------------------------------------------------------------------------- 1 | const dgram = require('dgram'); 2 | const readline = require('readline'); 3 | 4 | const server = dgram.createSocket('udp4'); 5 | const rl = readline.createInterface({ 6 | input: process.stdin, 7 | output: process.stdout 8 | }); 9 | 10 | const arcadiaPort = process.argv[2] || 11211; 11 | const arcadiaHost = process.argv[3] || "localhost"; 12 | 13 | var input = ""; 14 | 15 | rl.on('line', (cmd) => { 16 | // always grow input 17 | input += cmd + "\n"; 18 | if(parenthesesAreBalanced(input)) { 19 | // send balanced form to server 20 | server.send(input, arcadiaPort, arcadiaHost); 21 | // reset input 22 | input = ""; 23 | // pause prompt until message event 24 | rl.pause(); 25 | } 26 | }); 27 | 28 | rl.on('close', () => { 29 | process.exit(0); 30 | }); 31 | 32 | server.on('message', (msg, rinfo) => { 33 | var msg = msg.toString(); 34 | var msgLines = msg.split("\n"); 35 | 36 | // set last line as prompt 37 | rl.setPrompt(msgLines.pop()); 38 | // display all other lines 39 | console.log(msgLines.join("\n")); 40 | // result prompt 41 | rl.prompt(); 42 | }); 43 | 44 | // send header form to start prompt 45 | server.send('(binding [*warn-on-reflection* false] (do (println "; Arcadia REPL") (println (str "; Clojure " (clojure-version))) (println (str "; Unity " (UnityEditorInternal.InternalEditorUtility/GetFullUnityVersion))) (println (str "; Mono " (.Invoke (.GetMethod Mono.Runtime "GetDisplayName" (enum-or System.Reflection.BindingFlags/NonPublic System.Reflection.BindingFlags/Static)) nil nil)))))', arcadiaPort, arcadiaHost) 46 | 47 | // http://codereview.stackexchange.com/questions/45991/balanced-parentheses 48 | function parenthesesAreBalanced(s) 49 | { 50 | var parentheses = "[]{}()", 51 | stack = [], //Parentheses stack 52 | i, //Index in the string 53 | c; //Character in the string 54 | 55 | for (i = 0; c = s[i++];) 56 | { 57 | var bracePosition = parentheses.indexOf(c), 58 | braceType; 59 | //~ is truthy for any number but -1 60 | if (!~bracePosition) 61 | continue; 62 | 63 | braceType = bracePosition % 2 ? 'closed' : 'open'; 64 | 65 | if (braceType === 'closed') 66 | { 67 | //If there is no open parenthese at all, return false OR 68 | //if the opening parenthese does not match ( they should be neighbours ) 69 | if (!stack.length || parentheses.indexOf(stack.pop()) != bracePosition - 1) 70 | return false; 71 | } 72 | else 73 | { 74 | stack.push(c); 75 | } 76 | } 77 | //If anything is left on the stack <- not balanced 78 | return !stack.length; 79 | } -------------------------------------------------------------------------------- /Source/arcadia/internal/editor_callbacks.clj: -------------------------------------------------------------------------------- 1 | (ns arcadia.internal.editor-callbacks 2 | (:require [arcadia.internal.map-utils :as mu] 3 | [arcadia.internal.callbacks :as cb]) 4 | (:import [UnityEngine Debug] 5 | [System.Collections Queue] 6 | [Arcadia EditorCallbacks Callbacks Callbacks+IntervalData])) 7 | 8 | ;; ============================================================ 9 | ;; normal callbacks 10 | 11 | ;; Queue of functions, each of which will be run and then removed from 12 | ;; the queue in order every time run-callbacks is called. 13 | (defonce ^Queue work-queue 14 | (Queue/Synchronized (Queue.))) 15 | 16 | (defn add-callback [f] 17 | (.Enqueue work-queue f)) 18 | 19 | ;; ============================================================ 20 | ;; repeating callbacks 21 | 22 | (defonce repeating-callbacks 23 | (atom (cb/build-repeating-callbacks {}))) 24 | 25 | (defn add-repeating-callback [k f interval] 26 | (cb/add-repeating-callback repeating-callbacks k f interval)) 27 | 28 | (defn remove-repeating-callback [k] 29 | (cb/remove-repeating-callback repeating-callbacks k)) 30 | 31 | (defn handle-repeating-callback-error [^System.Exception e, ^Callbacks+IntervalData ecd] 32 | (Debug/LogError e) 33 | (Debug/Log (str "Removing callback at key " (.key ecd))) 34 | (remove-repeating-callback (.key ecd))) 35 | 36 | (defn run-repeating-callbacks [] 37 | (Callbacks/RunIntervalCallbacks 38 | (:arr @repeating-callbacks) 39 | handle-repeating-callback-error)) 40 | 41 | ;; ============================================================ 42 | ;; crude timeout 43 | ;; Extremely coarse-grained, only useful for scheduling stuff 44 | ;; roughly later 45 | 46 | (defn add-timeout [k f timeout] 47 | (let [state (volatile! true)] 48 | (arcadia.internal.editor-callbacks/add-repeating-callback 49 | k 50 | (fn timeout-callback [] 51 | (if @state 52 | (vreset! state false) 53 | (do (remove-repeating-callback k) 54 | (f)))) 55 | timeout))) 56 | 57 | (defn add-editor-frame-timeout [k f editor-frame-timeout] 58 | (assert (number? editor-frame-timeout)) 59 | (let [frames (volatile! 0)] 60 | (arcadia.internal.editor-callbacks/add-repeating-callback 61 | k 62 | (fn editor-frame-timeout-callback [] 63 | (when (<= editor-frame-timeout (vswap! frames inc)) 64 | (remove-repeating-callback k) 65 | (f))) 66 | 0))) 67 | 68 | ;; ============================================================ 69 | ;; run all 70 | 71 | ;; Gets run by EditorCallbacks.cs on the main thread 72 | (defn run-callbacks [] 73 | (cb/run-callbacks work-queue run-repeating-callbacks)) 74 | --------------------------------------------------------------------------------