From c5755b700b2196f38789982dc51b851f3f773279 Mon Sep 17 00:00:00 2001 From: akko Date: Tue, 27 Aug 2024 17:26:35 +0200 Subject: [PATCH] idk --- src/cljs/buddho/core/describe.cljs | 10 +++---- src/cljs/buddho/core/state/protocols.cljs | 2 ++ src/cljs/sekai/core/init.cljs | 4 ++- .../{pixi.cljs => graphics/pixi/canvas.cljs} | 27 +++---------------- src/cljs/sekai/graphics/pixi/setup.cljs | 9 +++++++ src/cljs/sekai/graphics/pixi/sprite.cljs | 9 +++++++ src/cljs/sekai/graphics/state/containers.cljs | 9 +++++++ 7 files changed, 40 insertions(+), 30 deletions(-) rename src/cljs/sekai/{pixi.cljs => graphics/pixi/canvas.cljs} (56%) create mode 100644 src/cljs/sekai/graphics/pixi/setup.cljs create mode 100644 src/cljs/sekai/graphics/pixi/sprite.cljs create mode 100644 src/cljs/sekai/graphics/state/containers.cljs diff --git a/src/cljs/buddho/core/describe.cljs b/src/cljs/buddho/core/describe.cljs index f5743f7..a4e6cab 100644 --- a/src/cljs/buddho/core/describe.cljs +++ b/src/cljs/buddho/core/describe.cljs @@ -1,7 +1,7 @@ (ns buddho.core.describe (:require [clojure.string :as string] [buddho.core.state.memory :refer [state]] - [buddho.core.state.protocols :refer [value reference]] + [buddho.core.state.protocols :refer [value value-safe]] [buddho.core.dhamma.aspects :as asp] [buddho.core.state.property :as prop])) @@ -42,12 +42,12 @@ (defn descr-dhamma-fn [idea] ;;; TODO things this is an aspect of - (let [idea (s/value idea) + (let [idea (value-safe idea) aspects (asp/aspects-of idea) format-singleton #(if (prop/has-property? % [:dhamma :singleton]) "{S} " "{T} ") format-dh (fn [dh] (str "<" (format-singleton dh) - (:name (s/value dh)) " " + (:name (value dh)) " " dh ">")) asp-strs (map (fn [[prop dhs]] (str prop @@ -58,11 +58,11 @@ aspects)] (str "Name:\t\t" (:name idea) "\n" - (s/dh-desc (:name idea)) "\n" + (dh-desc (:name idea)) "\n" "Aspects:\t" (string/join "\n\t\t\t" asp-strs) "\n" "Data:\t\t" (:data idea) "\n" "Meta:\t\t" (:meta idea) "\n" "Transient?:\t" (:transient idea) ))) -(s/describe-property! [:dhamma] "Idea is a dhamma." descr-dhamma-fn) +(describe-property! [:dhamma] "Idea is a dhamma." descr-dhamma-fn) diff --git a/src/cljs/buddho/core/state/protocols.cljs b/src/cljs/buddho/core/state/protocols.cljs index 01282c8..e0d88ff 100644 --- a/src/cljs/buddho/core/state/protocols.cljs +++ b/src/cljs/buddho/core/state/protocols.cljs @@ -32,3 +32,5 @@ mind that keys are functions.") (defn copy [idea] (assoc (value idea) :_reference nil)) (defn apply-fn [fn idea] (fn-liberal idea fn)) + +(def value-safe (fnil value {})) diff --git a/src/cljs/sekai/core/init.cljs b/src/cljs/sekai/core/init.cljs index 507b34d..c4c26b0 100644 --- a/src/cljs/sekai/core/init.cljs +++ b/src/cljs/sekai/core/init.cljs @@ -1,3 +1,5 @@ (ns sekai.core.init) -(defn init []) +(defn init [] + (print "chuu") + ) diff --git a/src/cljs/sekai/pixi.cljs b/src/cljs/sekai/graphics/pixi/canvas.cljs similarity index 56% rename from src/cljs/sekai/pixi.cljs rename to src/cljs/sekai/graphics/pixi/canvas.cljs index aa4697f..7c113d8 100644 --- a/src/cljs/sekai/pixi.cljs +++ b/src/cljs/sekai/graphics/pixi/canvas.cljs @@ -1,16 +1,7 @@ -(ns sekai.pixi +(ns sekai.graphics.pixi.canvas (:require ["pixi.js" :as PIXI] - [buddho.core.state.protocols :refer [value reference]] - [buddho.core.describe :as desc] - [buddho.core.property :as prop] - [buddho.core.state.idea :as idea])) - -(defn describe-properties! [] - (desc/describe-property! [:canvas] "PixiJS Canvas object.") - (desc/describe-property! [:canvas :main] "Main PixiJS canvas") - (desc/describe-property! [:pixi] "PixiJS object.") - (desc/describe-property! [:pixi :container] "PixiJS container object.") - (desc/describe-property! [:world] "PixiJS world container.")) + [buddho.core.state.idea :as idea] + [buddho.core.state.property :as prop])) (defn make-canvas! [width height] (let [canvas (PIXI/Application. #js {:width width :height height @@ -37,15 +28,3 @@ (.removeChild js/document.body cur-canvas)) (when canvas-idea (idea/forget-idea! canvas-idea)))) - -(defn make-sprite! [url] - (-> PIXI .-Sprite (.from url))) - -(defn world [] - (-> (prop/with-property [:world]) - first - value - :object)) - -(defn add-sprite! [sprite] - (.addChild ^js/PIXI.Container (world) sprite)) diff --git a/src/cljs/sekai/graphics/pixi/setup.cljs b/src/cljs/sekai/graphics/pixi/setup.cljs new file mode 100644 index 0000000..acefbdf --- /dev/null +++ b/src/cljs/sekai/graphics/pixi/setup.cljs @@ -0,0 +1,9 @@ +(ns sekai.graphics.pixi.setup + (:require [buddho.core.describe :as desc])) + +(defn setup! [] + (desc/describe-property! [:canvas] "PixiJS Canvas object.") + (desc/describe-property! [:canvas :main] "Main PixiJS canvas") + (desc/describe-property! [:pixi] "PixiJS object.") + (desc/describe-property! [:pixi :container] "PixiJS container object.") + (desc/describe-property! [:world] "PixiJS world container.")) diff --git a/src/cljs/sekai/graphics/pixi/sprite.cljs b/src/cljs/sekai/graphics/pixi/sprite.cljs new file mode 100644 index 0000000..b981bb0 --- /dev/null +++ b/src/cljs/sekai/graphics/pixi/sprite.cljs @@ -0,0 +1,9 @@ +(ns sekai.graphics.pixi.sprite + (:require ["pixi.js" :as PIXI] + [sekai.graphics.state.containers :as cont])) + +(defn make-sprite! [url] + (-> PIXI .-Sprite (.from url))) + +(defn add-sprite! [sprite] + (.addChild ^js/PIXI.Container (cont/world) sprite)) diff --git a/src/cljs/sekai/graphics/state/containers.cljs b/src/cljs/sekai/graphics/state/containers.cljs new file mode 100644 index 0000000..1670898 --- /dev/null +++ b/src/cljs/sekai/graphics/state/containers.cljs @@ -0,0 +1,9 @@ +(ns sekai.graphics.state.containers + (:require [buddho.core.state.property :as prop] + [buddho.core.state.protocols :refer [value]])) + +(defn world [] + (-> (prop/with-property [:world]) + first + value + :object))