3
0
mirror of https://github.com/britzl/monarch.git synced 2025-06-27 18:37:46 +02:00

Compare commits

..

No commits in common. "master" and "5.1.1" have entirely different histories.

7 changed files with 96 additions and 101 deletions

View File

@ -7,13 +7,13 @@ jobs:
name: Build and run name: Build and run
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 - uses: actions/checkout@v1
- uses: actions/setup-java@99b8673ff64fbf99d8d325f52d9a5bdedb8483e9 - uses: actions/setup-java@v1
with: with:
java-version: '21.0.5+11.0.LTS' java-version: '17'
distribution: 'temurin'
- name: Run.sh - name: Run.sh
env: env:
DEFOLD_USER: bjorn.ritzl@gmail.com DEFOLD_USER: bjorn.ritzl@gmail.com
DEFOLD_AUTH: foobar DEFOLD_AUTH: foobar
DEFOLD_BOOSTRAP_COLLECTION: /test/test.collectionc
run: ./.test/run.sh run: ./.test/run.sh

3
.gitignore vendored
View File

@ -9,6 +9,3 @@ build
builtins builtins
.internal .internal
luacov.report.out luacov.report.out
/.editor_settings
manifest.private.der
manifest.public.der

View File

@ -5,6 +5,7 @@ else
PLATFORM="$1" PLATFORM="$1"
fi fi
echo "${PLATFORM}" echo "${PLATFORM}"
# {"version": "1.2.89", "sha1": "5ca3dd134cc960c35ecefe12f6dc81a48f212d40"} # {"version": "1.2.89", "sha1": "5ca3dd134cc960c35ecefe12f6dc81a48f212d40"}
@ -15,28 +16,26 @@ echo "Using Defold dmengine_headless version ${SHA1}"
# Create dmengine_headless and bob.jar URLs # Create dmengine_headless and bob.jar URLs
DMENGINE_URL="http://d.defold.com/archive/${SHA1}/engine/${PLATFORM}/dmengine_headless" DMENGINE_URL="http://d.defold.com/archive/${SHA1}/engine/${PLATFORM}/dmengine_headless"
BOB_URL="http://d.defold.com/archive/${SHA1}/bob/bob.jar" BOB_URL="http://d.defold.com/archive/${SHA1}/bob/bob.jar"
DMENGINE_FILE=dmengine_headless_${SHA1}
BOB_FILE=bob_${SHA1}.jar
# Download dmengine_headless # Download dmengine_headless
if ! [ -f ${DMENGINE_FILE} ]; then echo "Downloading ${DMENGINE_URL}"
echo "Downloading ${DMENGINE_URL} to ${DMENGINE_FILE}" curl -L -o dmengine_headless ${DMENGINE_URL}
curl -L -o ${DMENGINE_FILE} ${DMENGINE_URL} chmod +x dmengine_headless
chmod +x ${DMENGINE_FILE}
fi
# Download bob.jar # Download bob.jar
if ! [ -f ${BOB_FILE} ]; then echo "Downloading ${BOB_URL}"
echo "Downloading ${BOB_URL} to ${BOB_FILE}" curl -L -o bob.jar ${BOB_URL}
curl -L -o ${BOB_FILE} ${BOB_URL}
fi
# Fetch libraries # Fetch libraries
echo "Running ${BOB_FILE} - resolving dependencies" echo "Running bob.jar - resolving dependencies"
java -jar ${BOB_FILE} --auth "foobar" --email "john@doe.com" resolve java -jar bob.jar --auth "foobar" --email "john@doe.com" resolve
echo "Running ${BOB_FILE} - building" echo "Running bob.jar - building"
java -jar ${BOB_FILE} --debug build --settings=test.settings java -jar bob.jar --debug build --keep-unused
echo "Starting ${DMENGINE_FILE}" echo "Starting dmengine_headless"
./${DMENGINE_FILE} if [ -n "${DEFOLD_BOOSTRAP_COLLECTION}" ]; then
./dmengine_headless --config=bootstrap.main_collection=${DEFOLD_BOOSTRAP_COLLECTION}
else
./dmengine_headless
fi

View File

@ -79,9 +79,16 @@ end
gui_template = function(gui_script) gui_template = function(gui_script)
return [[script: "]].. gui_script .. [[" return [[script: "]].. gui_script .. [["
material: "/builtins/materials/gui.material" background_color {
adjust_reference: ADJUST_REFERENCE_PARENT x: 0.0
]] y: 0.0
z: 0.0
w: 0.0
}
material: "/builtins/materials/gui.material"
adjust_reference: ADJUST_REFERENCE_PARENT
max_nodes: 512
]]
end end
gui_script_content = [[local monarch = require "monarch.monarch" gui_script_content = [[local monarch = require "monarch.monarch"
@ -109,8 +116,8 @@ end
collection_template = function(gui_script, name) collection_template = function(gui_script, name)
return [[name: "]].. name .. [[" return [[name: "]].. name .. [["
scale_along_z: 0 scale_along_z: 0
embedded_instances { embedded_instances {
id: "go" id: "go"
data: "components {\n" data: "components {\n"
" id: \"monarch\"\n" " id: \"monarch\"\n"
@ -144,8 +151,8 @@ collection_template = function(gui_script, name)
y: 1.0 y: 1.0
z: 1.0 z: 1.0
} }
} }
]] ]]
end end

View File

@ -1,2 +0,0 @@
[bootstrap]
main_collection = /test/test.collectionc

View File

@ -64,17 +64,5 @@ function M.last(url)
return messages[#messages] return messages[#messages]
end end
function M.filter(url, fn)
local t = {}
local messages = M.messages(url)
for i=1,#messages do
local message = messages[i]
if fn(message) then
t[#t + 1] = message
end
end
return t
end
return M return M

View File

@ -418,37 +418,43 @@ return function()
monarch.show(SCREEN1) monarch.show(SCREEN1)
assert(wait_until_not_busy()) assert(wait_until_not_busy())
assert(mock_msg.messages(URL1)[1].message_id == monarch.SCREEN_TRANSITION_IN_STARTED)
assert(mock_msg.messages(URL1)[1].message.screen == SCREEN1)
assert(mock_msg.messages(URL2)[1].message_id == monarch.SCREEN_TRANSITION_IN_STARTED)
assert(mock_msg.messages(URL2)[1].message.screen == SCREEN1)
assert(mock_msg.messages(URL1)[2].message_id == monarch.SCREEN_TRANSITION_IN_FINISHED)
assert(mock_msg.messages(URL1)[2].message.screen == SCREEN1)
assert(mock_msg.messages(URL2)[2].message_id == monarch.SCREEN_TRANSITION_IN_FINISHED)
assert(mock_msg.messages(URL2)[2].message.screen == SCREEN1)
monarch.remove_listener(URL2) monarch.remove_listener(URL2)
monarch.show(SCREEN2) monarch.show(SCREEN2)
assert(wait_until_not_busy()) assert(wait_until_not_busy())
assert(#mock_msg.messages(URL1) == 6)
assert(#mock_msg.messages(URL2) == 2)
assert(mock_msg.messages(URL1)[3].message_id == monarch.SCREEN_TRANSITION_IN_STARTED)
assert(mock_msg.messages(URL1)[3].message.screen == SCREEN2)
assert(mock_msg.messages(URL1)[4].message_id == monarch.SCREEN_TRANSITION_OUT_STARTED)
assert(mock_msg.messages(URL1)[4].message.screen == SCREEN1)
assert(mock_msg.messages(URL1)[5].message_id == monarch.SCREEN_TRANSITION_IN_FINISHED)
assert(mock_msg.messages(URL1)[5].message.screen == SCREEN2)
assert(mock_msg.messages(URL1)[6].message_id == monarch.SCREEN_TRANSITION_OUT_FINISHED)
assert(mock_msg.messages(URL1)[6].message.screen == SCREEN1)
monarch.back() monarch.back()
assert(wait_until_not_busy()) assert(wait_until_not_busy())
local messages = mock_msg.filter(URL1, function(m) assert(#mock_msg.messages(URL1) == 10)
return m.message.screen == SCREEN1 assert(#mock_msg.messages(URL2) == 2)
end) assert(mock_msg.messages(URL1)[7].message_id == monarch.SCREEN_TRANSITION_IN_STARTED)
assert(messages[1].message_id == monarch.SCREEN_TRANSITION_IN_STARTED) assert(mock_msg.messages(URL1)[7].message.screen == SCREEN1)
assert(messages[2].message_id == monarch.SCREEN_TRANSITION_IN_FINISHED) assert(mock_msg.messages(URL1)[8].message_id == monarch.SCREEN_TRANSITION_OUT_STARTED)
assert(messages[3].message_id == monarch.SCREEN_TRANSITION_OUT_STARTED) assert(mock_msg.messages(URL1)[8].message.screen == SCREEN2)
assert(messages[4].message_id == monarch.SCREEN_TRANSITION_OUT_FINISHED) assert(mock_msg.messages(URL1)[9].message_id == monarch.SCREEN_TRANSITION_IN_FINISHED)
assert(messages[5].message_id == monarch.SCREEN_TRANSITION_IN_STARTED) assert(mock_msg.messages(URL1)[9].message.screen == SCREEN1)
assert(messages[6].message_id == monarch.SCREEN_TRANSITION_IN_FINISHED) assert(mock_msg.messages(URL1)[10].message_id == monarch.SCREEN_TRANSITION_OUT_FINISHED)
assert(mock_msg.messages(URL1)[10].message.screen == SCREEN2)
messages = mock_msg.filter(URL2, function(m)
return m.message.screen == SCREEN1
end)
assert(messages[1].message_id == monarch.SCREEN_TRANSITION_IN_STARTED)
assert(messages[2].message_id == monarch.SCREEN_TRANSITION_IN_FINISHED)
messages = mock_msg.filter(URL1, function(m)
return m.message.screen == SCREEN2
end)
assert(messages[1].message_id == monarch.SCREEN_TRANSITION_IN_STARTED)
assert(messages[2].message_id == monarch.SCREEN_TRANSITION_IN_FINISHED)
assert(messages[3].message_id == monarch.SCREEN_TRANSITION_OUT_STARTED)
assert(messages[4].message_id == monarch.SCREEN_TRANSITION_OUT_FINISHED)
end) end)
it("should be able to show a screen even while it is preloading", function() it("should be able to show a screen even while it is preloading", function()