diff --git a/.gitignore b/.gitignore index 7e819cf..f583146 100644 --- a/.gitignore +++ b/.gitignore @@ -5,10 +5,13 @@ pom.xml *.jar *.class +/.calva/ /.lein-* /.env *.log +.nrepl-port + # Links to other places: resources/public/docs/mw-*/uberdoc.html # Artefacts: diff --git a/project.clj b/project.clj index 2fee3f8..582373c 100644 --- a/project.clj +++ b/project.clj @@ -1,49 +1,49 @@ (defproject mw-ui "0.1.6-SNAPSHOT" :description "Web-based user interface for MicroWorld" - :url "http://www.journeyman.cc/microworld" - :manifest { - "build-signature-version" "unset" - "build-signature-user" "unset" - "build-signature-email" "unset" - "build-signature-timestamp" "unset" - "Implementation-Version" "unset" - } - :dependencies [[org.clojure/clojure "1.8.0"] + :dependencies [[org.clojure/clojure "1.10.3"] [mw-engine "0.1.6-SNAPSHOT"] [mw-parser "0.1.6-SNAPSHOT"] [lib-noir "0.9.9"] [ring-server "0.5.0"] - [selmer "1.12.25"] + [selmer "1.12.45"] [hiccup "1.0.5"] - [com.taoensso/timbre "4.10.0"] + [com.taoensso/timbre "5.1.2"] [com.taoensso/tower "3.0.2"] - [markdown-clj "1.10.4"] + [markdown-clj "1.10.7"] [environ "1.2.0"] [noir-exception "0.2.5"]] + :docker {:image-name "simonbrooke/microworld" + :dockerfile "Dockerfile"} + :main mw-ui.repl + :manifest {"build-signature-version" "0.1.6-SNAPSHOT" + "build-signature-user" "Simon Brooke" + "build-signature-email" "unset" + "build-signature-timestamp" "2021-05-17 13:31:22+01:00" + "Implementation-Version" "0.1.6-SNAPSHOT built by Simon Brooke on 2021-05-17 13:31:22+01:00"} + :min-lein-version "2.0.0" - :repl-options {:init-ns mw-ui.repl} :plugins [[lein-ring "0.8.11"] [lein-environ "0.5.0"] [lein-marginalia "0.7.1"] [io.sarnowski/lein-docker "1.1.0"]] - :docker {:image-name "simonbrooke/microworld" - :dockerfile "Dockerfile"} - :ring {:handler mw-ui.handler/app - :init mw-ui.handler/init - :destroy mw-ui.handler/destroy - :resources-path "resources" - :war-resources-path "war-resources" - :uberwar-name "microworld.war" - } :profiles {:uberjar {:aot :all} :production {:ring {:open-browser? false :stacktraces? false :auto-reload? false}} :dev {:dependencies [[ring-mock "0.1.5"] - [ring/ring-devel "1.8.1"] - [pjstadig/humane-test-output "0.10.0"]] + [ring/ring-devel "1.9.4"] + [pjstadig/humane-test-output "0.11.0"]] :injections [(require 'pjstadig.humane-test-output) (pjstadig.humane-test-output/activate!)] :env {:dev true}}} - :min-lein-version "2.0.0") + :repl-options {:init-ns mw-ui.repl} +:ring {:handler mw-ui.handler/app + :init mw-ui.handler/init + :destroy mw-ui.handler/destroy + :resources-path "resources" + :war-resources-path "war-resources" + :uberwar-name "microworld.war"} + + :url "http://www.journeyman.cc/microworld" +) diff --git a/resources/public/img/heightmaps/barra.png b/resources/public/img/heightmaps/barra.png new file mode 100644 index 0000000..b5f0799 Binary files /dev/null and b/resources/public/img/heightmaps/barra.png differ diff --git a/resources/public/img/heightmaps/barra.xcf b/resources/public/img/heightmaps/barra.xcf new file mode 100644 index 0000000..766fe52 Binary files /dev/null and b/resources/public/img/heightmaps/barra.xcf differ diff --git a/resources/public/img/tiles/harbour.png b/resources/public/img/tiles/harbour.png new file mode 100644 index 0000000..2fe5133 Binary files /dev/null and b/resources/public/img/tiles/harbour.png differ diff --git a/resources/public/img/tiles/harbour.xcf b/resources/public/img/tiles/harbour.xcf new file mode 100644 index 0000000..04fca67 Binary files /dev/null and b/resources/public/img/tiles/harbour.xcf differ diff --git a/resources/public/rulesets/harbours.txt b/resources/public/rulesets/harbours.txt new file mode 100644 index 0000000..2e944a9 --- /dev/null +++ b/resources/public/rulesets/harbours.txt @@ -0,0 +1,4 @@ +;; 'run once' ruleset to be run after (e.g.) settlement to establish harbours +;; Doesn't work yet, need to find out why and fix it! + +if state is water and more than four neighbours are not water and some neighbours are house then state should be harbour diff --git a/src/mw_ui/handler.clj b/src/mw_ui/handler.clj index 66d7fe7..322aadf 100644 --- a/src/mw_ui/handler.clj +++ b/src/mw_ui/handler.clj @@ -8,7 +8,7 @@ [noir.util.middleware :refer [app-handler]] [compojure.route :as route] [taoensso.timbre :as timbre] - [taoensso.timbre.appenders.rotor :as rotor] + ;; [taoensso.timbre.appenders.rotor :as rotor] [selmer.parser :as parser] [environ.core :refer [env]])) @@ -46,19 +46,19 @@ an app server such as Tomcat put any initialization code here" [] - (timbre/set-config! - [:appenders :rotor] - {:min-level :info - :enabled? true - :async? false ; should be always false for rotor - :max-message-per-msecs nil - :fn rotor/appender-fn}) - (timbre/set-config! - [:shared-appender-config :rotor] - {:path "mw_ui.log" :max-size (* 512 1024) :backlog 10}) + ;; (timbre/set-config! + ;; [:appenders :rotor] + ;; {:min-level :info + ;; :enabled? true + ;; :async? false ; should be always false for rotor + ;; :max-message-per-msecs nil + ;; :fn rotor/appender-fn}) + ;; (timbre/set-config! + ;; [:shared-appender-config :rotor] + ;; {:path "mw_ui.log" :max-size (* 512 1024) :backlog 10}) - (if (env :dev) (parser/cache-off!)) + (when (env :dev) (parser/cache-off!)) (timbre/info "mw-ui started successfully")) diff --git a/src/mw_ui/middleware.clj b/src/mw_ui/middleware.clj index 99c1a34..05c414f 100644 --- a/src/mw_ui/middleware.clj +++ b/src/mw_ui/middleware.clj @@ -1,12 +1,11 @@ (ns ^{:doc "In truth, boilerplate from Luminus." :author "Simon Brooke"} - mw-ui.middleware + mw-ui.middleware (:require [taoensso.timbre :as timbre] - [selmer.parser :as parser] [environ.core :refer [env]] [selmer.middleware :refer [wrap-error-page]] [noir-exception.core - :refer [wrap-internal-error wrap-exceptions]])) + :refer [wrap-internal-error wrap-exceptions]])) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;; diff --git a/src/mw_ui/repl.clj b/src/mw_ui/repl.clj index e034f28..a851e60 100644 --- a/src/mw_ui/repl.clj +++ b/src/mw_ui/repl.clj @@ -1,9 +1,10 @@ (ns ^{:doc "In truth, boilerplate from Luminus." :author "Simon Brooke"} mw-ui.repl - (:use mw-ui.handler - ring.server.standalone - [ring.middleware file-info file]) + (:require [mw-ui.handler :as handler] + [ring.server.standalone :refer [serve]] + [ring.middleware.file :refer [wrap-file]] + [ring.middleware.file-info :refer [wrap-file-info]]) (:gen-class)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @@ -37,7 +38,7 @@ ;; the server is forced to re-resolve the symbol in the var ;; rather than having its own copy. When the root binding ;; changes, the server picks it up without having to restart. - (-> #'app + (-> #'handler/app ; Makes static assets in $PROJECT_DIR/resources/public/ available. (wrap-file "resources") ; Content-Type, Content-Length, and Last Modified headers for files in body @@ -50,9 +51,9 @@ (reset! server (serve (get-handler) {:port port - :init init + :init handler/init :auto-reload? true - :destroy destroy + :destroy handler/destroy :join? false})) (println (str "You can view the site at http://localhost:" port)))) @@ -62,3 +63,4 @@ (defn -main [] (start-server)) +